VTK
|
a 3D cell defined by a set of polygonal faces More...
#include <vtkPolyhedron.h>
Public Member Functions | |
void | GetEdgePoints (int vtkNotUsed(edgeId), int *&vtkNotUsed(pts)) override |
See vtkCell3D API for description of these methods. More... | |
void | GetFacePoints (int vtkNotUsed(faceId), int *&vtkNotUsed(pts)) override |
double * | GetParametricCoords () override |
Return a contiguous array of parametric coordinates of the points defining this cell. More... | |
int | GetCellType () override |
See the vtkCell API for descriptions of these methods. More... | |
int | RequiresInitialization () override |
This cell requires that it be initialized prior to access. More... | |
void | Initialize () override |
void | Contour (double value, vtkDataArray *scalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd) override |
Satisfy the vtkCell API. More... | |
void | Clip (double value, vtkDataArray *scalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) override |
Satisfy the vtkCell API. More... | |
int | EvaluatePosition (const double x[3], double closestPoint[3], int &subId, double pcoords[3], double &dist2, double weights[]) override |
Satisfy the vtkCell API. More... | |
void | EvaluateLocation (int &subId, const double pcoords[3], double x[3], double *weights) override |
The inverse of EvaluatePosition. More... | |
int | IntersectWithLine (const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId) override |
Intersect the line (p1,p2) with a given tolerance tol to determine a point of intersection x[3] with parametric coordinate t along the line. More... | |
int | Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts) override |
Use vtkOrderedTriangulator to tetrahedralize the polyhedron mesh. More... | |
void | Derivatives (int subId, const double pcoords[3], const double *values, int dim, double *derivs) override |
Computes derivatives at the point specified by the parameter coordinate. More... | |
int | CellBoundary (int subId, const double pcoords[3], vtkIdList *pts) override |
Find the boundary face closest to the point defined by the pcoords[3] and subId of the cell (subId can be ignored). More... | |
int | GetParametricCenter (double pcoords[3]) override |
Return the center of the cell in parametric coordinates. More... | |
int | IsPrimaryCell () override |
A polyhedron is a full-fledged primary cell. More... | |
int | IsInside (const double x[3], double tolerance) |
A method particular to vtkPolyhedron. More... | |
bool | IsConvex () |
Determine whether or not a polyhedron is convex. More... | |
vtkPolyData * | GetPolyData () |
Construct polydata if no one exist, then return this->PolyData. More... | |
int | GetNumberOfEdges () override |
A polyhedron is represented internally by a set of polygonal faces. More... | |
vtkCell * | GetEdge (int) override |
A polyhedron is represented internally by a set of polygonal faces. More... | |
int | GetNumberOfFaces () override |
A polyhedron is represented internally by a set of polygonal faces. More... | |
vtkCell * | GetFace (int faceId) override |
A polyhedron is represented internally by a set of polygonal faces. More... | |
void | InterpolateFunctions (const double x[3], double *sf) override |
Compute the interpolation functions/derivatives (aka shape functions/derivatives). More... | |
void | InterpolateDerivs (const double x[3], double *derivs) override |
Compute the interpolation functions/derivatives (aka shape functions/derivatives). More... | |
int | RequiresExplicitFaceRepresentation () override |
Methods supporting the definition of faces. More... | |
void | SetFaces (vtkIdType *faces) override |
Methods supporting the definition of faces. More... | |
vtkIdType * | GetFaces () override |
Methods supporting the definition of faces. More... | |
Public Member Functions inherited from vtkCell3D | |
vtkCell3D * | NewInstance () const |
virtual void | GetEdgePoints (int edgeId, int *&pts)=0 |
Get the pair of vertices that define an edge. More... | |
virtual void | GetFacePoints (int faceId, int *&pts)=0 |
Get the list of vertices that define a face. More... | |
int | GetCellDimension () override |
The topological dimension of the cell. More... | |
virtual void | SetMergeTolerance (double) |
Set the tolerance for merging clip intersection points that are near the vertices of cells. More... | |
virtual double | GetMergeTolerance () |
Set the tolerance for merging clip intersection points that are near the vertices of cells. More... | |
Public Member Functions inherited from vtkCell | |
vtkCell * | NewInstance () const |
void | Initialize (int npts, vtkIdType *pts, vtkPoints *p) |
Initialize cell from outside with point ids and point coordinates specified. More... | |
void | Initialize (int npts, vtkPoints *p) |
Initialize the cell with point coordinates specified. More... | |
virtual void | ShallowCopy (vtkCell *c) |
Copy this cell by reference counting the internal data structures. More... | |
virtual void | DeepCopy (vtkCell *c) |
Copy this cell by completely copying internal data structures. More... | |
virtual int | IsLinear () |
Non-linear cells require special treatment beyond the usual cell type and connectivity list information. More... | |
virtual int | IsExplicitCell () |
Explicit cells require additional representational information beyond the usual cell type and connectivity list information. More... | |
virtual void | SetFaces (vtkIdType *vtkNotUsed(faces)) |
vtkPoints * | GetPoints () |
Get the point coordinates for the cell. More... | |
vtkIdType | GetNumberOfPoints () |
Return the number of points in the cell. More... | |
vtkIdList * | GetPointIds () |
Return the list of point ids defining the cell. More... | |
vtkIdType | GetPointId (int ptId) |
For cell point i, return the actual point id. More... | |
void | GetBounds (double bounds[6]) |
Compute cell bounding box (xmin,xmax,ymin,ymax,zmin,zmax). More... | |
double * | GetBounds () |
Compute cell bounding box (xmin,xmax,ymin,ymax,zmin,zmax). More... | |
double | GetLength2 () |
Compute Length squared of cell (i.e., bounding box diagonal squared). More... | |
virtual double | GetParametricDistance (const double pcoords[3]) |
Return the distance of the parametric coordinate provided to the cell. More... | |
virtual void | InterpolateFunctions (const double vtkNotUsed(pcoords)[3], double *vtkNotUsed(weight)) |
Compute the interpolation functions/derivatives (aka shape functions/derivatives) No-ops at this level. More... | |
virtual void | InterpolateDerivs (const double vtkNotUsed(pcoords)[3], double *vtkNotUsed(derivs)) |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. More... | |
virtual void | DebugOff () |
Turn debugging output off. More... | |
bool | GetDebug () |
Get the value of the debug flag. More... | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. More... | |
virtual void | Modified () |
Update the modification time for this object. More... | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. More... | |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
vtkTypeBool | HasObserver (unsigned long event) |
vtkTypeBool | HasObserver (const char *event) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More... | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Allow user to set the AbortFlagOn() with the return value of the callback method. More... | |
int | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
int | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. More... | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. More... | |
virtual void | Delete () |
Delete a VTK object. More... | |
virtual void | FastDelete () |
Delete a reference to this object. More... | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. More... | |
virtual void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). More... | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). More... | |
int | GetReferenceCount () |
Return the current reference count of this object. More... | |
void | SetReferenceCount (int) |
Sets the reference count. More... | |
void | PrintRevisions (ostream &) |
Legacy. More... | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. More... | |
Protected Member Functions | |
vtkPolyhedron () | |
~vtkPolyhedron () override | |
int | GenerateEdges () |
void | GenerateFaces () |
void | ComputeBounds () |
void | ComputeParametricCoordinate (const double x[3], double pc[3]) |
void | ComputePositionFromParametricCoordinate (const double pc[3], double x[3]) |
void | ConstructPolyData () |
void | ConstructLocator () |
Protected Member Functions inherited from vtkCell3D | |
vtkCell3D () | |
~vtkCell3D () override | |
Protected Member Functions inherited from vtkCell | |
vtkCell () | |
~vtkCell () override | |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
~vtkObject () override | |
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) |
These methods allow a command to exclusively grab all events. More... | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. More... | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Additional Inherited Members | |
Public Types inherited from vtkCell3D | |
typedef vtkCell | Superclass |
Public Types inherited from vtkCell | |
typedef vtkObject | Superclass |
Static Public Member Functions inherited from vtkCell3D | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkCell3D * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkCell | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkCell * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkObject | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. More... | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
Static Public Member Functions inherited from vtkObjectBase | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. More... | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
Public Attributes inherited from vtkCell | |
vtkPoints * | Points |
vtkIdList * | PointIds |
a 3D cell defined by a set of polygonal faces
vtkPolyhedron is a concrete implementation that represents a 3D cell defined by a set of polygonal faces. The polyhedron should be watertight, non-self-intersecting and manifold (each edge is used twice).
Interpolation functions and weights are defined / computed using the method of Mean Value Coordinates (MVC). See the VTK class vtkMeanValueCoordinatesInterpolator for more information.
The class does not require the polyhedron to be convex. However, the polygonal faces must be planar. Non-planar polygonal faces will definitely cause problems, especially in severely warped situations.
Definition at line 60 of file vtkPolyhedron.h.
typedef vtkCell3D vtkPolyhedron::Superclass |
Standard new methods.
Definition at line 68 of file vtkPolyhedron.h.
|
protected |
|
overrideprotected |
|
static |
Standard new methods.
|
static |
Standard new methods.
|
virtual |
Standard new methods.
Reimplemented from vtkCell3D.
|
static |
Standard new methods.
|
protectedvirtual |
Standard new methods.
Reimplemented from vtkCell3D.
vtkPolyhedron* vtkPolyhedron::NewInstance | ( | ) | const |
Standard new methods.
|
overridevirtual |
Standard new methods.
Reimplemented from vtkCell3D.
See vtkCell3D API for description of these methods.
Definition at line 75 of file vtkPolyhedron.h.
Definition at line 76 of file vtkPolyhedron.h.
|
overridevirtual |
Return a contiguous array of parametric coordinates of the points defining this cell.
In other words, (px,py,pz, px,py,pz, etc..) The coordinates are ordered consistent with the definition of the point ordering for the cell. This method returns a non-nullptr pointer when the cell is a primary type (i.e., IsPrimaryCell() is true). Note that 3D parametric coordinates are returned no matter what the topological dimension of the cell.
Reimplemented from vtkCell.
|
inlineoverridevirtual |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 82 of file vtkPolyhedron.h.
|
inlineoverridevirtual |
This cell requires that it be initialized prior to access.
Reimplemented from vtkCell.
Definition at line 87 of file vtkPolyhedron.h.
|
overridevirtual |
Reimplemented from vtkCell.
|
overridevirtual |
A polyhedron is represented internally by a set of polygonal faces.
These faces can be processed to explicitly determine edges.
Implements vtkCell.
A polyhedron is represented internally by a set of polygonal faces.
These faces can be processed to explicitly determine edges.
Implements vtkCell.
|
overridevirtual |
A polyhedron is represented internally by a set of polygonal faces.
These faces can be processed to explicitly determine edges.
Implements vtkCell.
A polyhedron is represented internally by a set of polygonal faces.
These faces can be processed to explicitly determine edges.
Implements vtkCell.
|
overridevirtual |
|
overridevirtual |
Satisfy the vtkCell API.
This method clips the input polyhedron and outputs a new polyhedron. The face information of the output polyhedron is encoded in the output vtkCellArray using a special format: CellLength [nCellFaces, nFace0Pts, i, j, k, nFace1Pts, i, j, k, ...]. Use the static method vtkUnstructuredGrid::DecomposePolyhedronCellArray to convert it into a standard format. Note: the algorithm assumes water-tight polyhedron cells.
Reimplemented from vtkCell3D.
|
overridevirtual |
Satisfy the vtkCell API.
The subId is ignored and zero is always returned. The parametric coordinates pcoords are normalized values in the bounding box of the polyhedron. The weights are determined by evaluating the MVC coordinates. The dist is always zero if the point x[3] is inside the polyhedron; otherwise it's the distance to the surface.
Implements vtkCell.
|
overridevirtual |
Intersect the line (p1,p2) with a given tolerance tol to determine a point of intersection x[3] with parametric coordinate t along the line.
The parametric coordinates are returned as well (subId can be ignored). Returns true if the line intersects a face.
Implements vtkCell.
Use vtkOrderedTriangulator to tetrahedralize the polyhedron mesh.
This method works well for a convex polyhedron but may return wrong result in a concave case. Once triangulation has been performed, the results are saved in ptIds and pts. The ptIds is a vtkIdList with 4xn number of ids (n is the number of result tetrahedrons). The first 4 represent the point ids of the first tetrahedron, the second 4 represents the point ids of the second tetrahedron and so on. The point ids represent global dataset ids. The points of result tetrahedons are stored in pts. Note that there are 4xm output points (m is the number of points in the original polyhedron). A point may be stored multiple times when it is shared by more than one tetrahedrons. The points stored in pts are ordered the same as they are listed in ptIds.
Implements vtkCell.
|
overridevirtual |
Computes derivatives at the point specified by the parameter coordinate.
Current implementation uses all vertices and subId is not used. To accelerate the speed, the future implementation can triangulate and extract the local tetrahedron from subId and pcoords, then evaluate derivatives on the local tetrahedron.
Implements vtkCell.
|
overridevirtual |
Find the boundary face closest to the point defined by the pcoords[3] and subId of the cell (subId can be ignored).
Implements vtkCell.
Return the center of the cell in parametric coordinates.
In this cell, the center of the bounding box is returned.
Reimplemented from vtkCell.
Definition at line 304 of file vtkPolyhedron.h.
|
inlineoverridevirtual |
A polyhedron is a full-fledged primary cell.
Reimplemented from vtkCell.
Definition at line 196 of file vtkPolyhedron.h.
Compute the interpolation functions/derivatives (aka shape functions/derivatives).
Here we use the MVC calculation process to compute the interpolation functions.
Compute the interpolation functions/derivatives (aka shape functions/derivatives).
Here we use the MVC calculation process to compute the interpolation functions.
|
inlineoverridevirtual |
Methods supporting the definition of faces.
Note that the GetFaces() returns a list of faces in vtkCellArray form; use the method GetNumberOfFaces() to determine the number of faces in the list. The SetFaces() method is also in vtkCellArray form, except that it begins with a leading count indicating the total number of faces in the list.
Reimplemented from vtkCell.
Definition at line 217 of file vtkPolyhedron.h.
|
override |
Methods supporting the definition of faces.
Note that the GetFaces() returns a list of faces in vtkCellArray form; use the method GetNumberOfFaces() to determine the number of faces in the list. The SetFaces() method is also in vtkCellArray form, except that it begins with a leading count indicating the total number of faces in the list.
|
overridevirtual |
Methods supporting the definition of faces.
Note that the GetFaces() returns a list of faces in vtkCellArray form; use the method GetNumberOfFaces() to determine the number of faces in the list. The SetFaces() method is also in vtkCellArray form, except that it begins with a leading count indicating the total number of faces in the list.
Reimplemented from vtkCell.
A method particular to vtkPolyhedron.
It determines whether a point x[3] is inside the polyhedron or not (returns 1 is the point is inside, 0 otherwise). The tolerance is expressed in normalized space; i.e., a fraction of the size of the bounding box.
bool vtkPolyhedron::IsConvex | ( | ) |
Determine whether or not a polyhedron is convex.
This method is adapted from Devillers et al., "Checking the Convexity of Polytopes and the Planarity of Subdivisions", Computational Geometry, Volume 11, Issues 3 - 4, December 1998, Pages 187 - 208.
vtkPolyData* vtkPolyhedron::GetPolyData | ( | ) |
Construct polydata if no one exist, then return this->PolyData.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 248 of file vtkPolyhedron.h.
|
protected |
Definition at line 249 of file vtkPolyhedron.h.
|
protected |
Definition at line 250 of file vtkPolyhedron.h.
|
protected |
Definition at line 251 of file vtkPolyhedron.h.
|
protected |
Definition at line 252 of file vtkPolyhedron.h.
|
protected |
Definition at line 253 of file vtkPolyhedron.h.
|
protected |
Definition at line 254 of file vtkPolyhedron.h.
|
protected |
Definition at line 261 of file vtkPolyhedron.h.
|
protected |
Definition at line 265 of file vtkPolyhedron.h.
|
protected |
Definition at line 266 of file vtkPolyhedron.h.
|
protected |
Definition at line 267 of file vtkPolyhedron.h.
|
protected |
Definition at line 268 of file vtkPolyhedron.h.
|
protected |
Definition at line 275 of file vtkPolyhedron.h.
|
protected |
Definition at line 276 of file vtkPolyhedron.h.
|
protected |
Definition at line 280 of file vtkPolyhedron.h.
|
protected |
Definition at line 286 of file vtkPolyhedron.h.
|
protected |
Definition at line 287 of file vtkPolyhedron.h.
|
protected |
Definition at line 288 of file vtkPolyhedron.h.
|
protected |
Definition at line 289 of file vtkPolyhedron.h.
|
protected |
Definition at line 291 of file vtkPolyhedron.h.
|
protected |
Definition at line 292 of file vtkPolyhedron.h.
|
protected |
Definition at line 294 of file vtkPolyhedron.h.
|
protected |
Definition at line 295 of file vtkPolyhedron.h.