VTK
|
a 3D cell defined by a set of polygonal faces More...
#include <vtkPolyhedron.h>
Public Member Functions | |
virtual int | GetCellType () |
virtual int | Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts) |
virtual int | CellBoundary (int subId, double pcoords[3], vtkIdList *pts) |
virtual int | GetParametricCenter (double pcoords[3]) |
int | IsPrimaryCell () |
int | IsInside (double x[3], double tolerance) |
vtkPolyData * | GetPolyData () |
virtual void | GetEdgePoints (int vtkNotUsed(edgeId), int *&vtkNotUsed(pts)) |
virtual void | GetFacePoints (int vtkNotUsed(faceId), int *&vtkNotUsed(pts)) |
virtual double * | GetParametricCoords () |
virtual int | RequiresInitialization () |
virtual void | Initialize () |
virtual int | GetNumberOfEdges () |
virtual vtkCell * | GetEdge (int) |
virtual int | GetNumberOfFaces () |
virtual vtkCell * | GetFace (int faceId) |
virtual void | Contour (double value, vtkDataArray *scalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd) |
virtual void | Clip (double value, vtkDataArray *scalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) |
virtual int | EvaluatePosition (double x[3], double *closestPoint, int &subId, double pcoords[3], double &dist2, double *weights) |
virtual void | EvaluateLocation (int &subId, double pcoords[3], double x[3], double *weights) |
virtual int | IntersectWithLine (double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId) |
virtual void | Derivatives (int subId, double pcoords[3], double *values, int dim, double *derivs) |
virtual void | InterpolateFunctions (double x[3], double *sf) |
virtual void | InterpolateDerivs (double x[3], double *derivs) |
virtual int | RequiresExplicitFaceRepresentation () |
virtual void | SetFaces (vtkIdType *faces) |
virtual vtkIdType * | GetFaces () |
Public Member Functions inherited from vtkCell3D | |
vtkCell3D * | NewInstance () const |
virtual void | GetEdgePoints (int edgeId, int *&pts)=0 |
virtual void | GetFacePoints (int faceId, int *&pts)=0 |
virtual int | GetCellDimension () |
virtual void | SetMergeTolerance (double) |
virtual double | GetMergeTolerance () |
Public Member Functions inherited from vtkCell | |
vtkCell * | NewInstance () const |
void | Initialize (int npts, vtkIdType *pts, vtkPoints *p) |
virtual void | ShallowCopy (vtkCell *c) |
virtual void | DeepCopy (vtkCell *c) |
virtual int | IsLinear () |
virtual int | IsExplicitCell () |
vtkPoints * | GetPoints () |
vtkIdType | GetNumberOfPoints () |
vtkIdList * | GetPointIds () |
vtkIdType | GetPointId (int ptId) |
void | GetBounds (double bounds[6]) |
double * | GetBounds () |
double | GetLength2 () |
virtual double | GetParametricDistance (double pcoords[3]) |
virtual void | SetFaces (vtkIdType *vtkNotUsed(faces)) |
virtual void | InterpolateFunctions (double vtkNotUsed(pcoords)[3], double *vtkNotUsed(weight)) |
virtual void | InterpolateDerivs (double vtkNotUsed(pcoords)[3], double *vtkNotUsed(derivs)) |
Public Member Functions inherited from vtkObject | |
vtkObject * | NewInstance () const |
virtual void | DebugOn () |
virtual void | DebugOff () |
bool | GetDebug () |
void | SetDebug (bool debugFlag) |
virtual void | Modified () |
virtual unsigned long | GetMTime () |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
int | HasObserver (unsigned long event, vtkCommand *) |
int | HasObserver (const char *event, vtkCommand *) |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
int | HasObserver (unsigned long event) |
int | HasObserver (const char *event) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
int | InvokeEvent (unsigned long event, void *callData) |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
virtual void | Delete () |
virtual void | FastDelete () |
void | Print (ostream &os) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
void | SetReferenceCount (int) |
void | PrintRevisions (ostream &) |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
int | GetReferenceCount () |
Protected Member Functions | |
vtkPolyhedron () | |
~vtkPolyhedron () | |
int | GenerateEdges () |
void | GenerateFaces () |
void | ComputeBounds () |
void | ComputeParametricCoordinate (double x[3], double pc[3]) |
void | ComputePositionFromParametricCoordinate (double pc[3], double x[3]) |
void | ConstructPolyData () |
void | ConstructLocator () |
int | InternalContour (double value, int insideOut, vtkIncrementalPointLocator *locator, vtkDataArray *inScalars, vtkDataArray *outScalars, vtkPointData *inPd, vtkPointData *outPd, vtkCellArray *contourPolys, vtkIdToIdVectorMapType &faceToPointsMap, vtkIdToIdVectorMapType &pointToFacesMap, vtkIdToIdMapType &pointIdMap) |
int | IntersectWithContour (double value, int insideOut, vtkDataArray *inScalars) |
Protected Member Functions inherited from vtkCell3D | |
vtkCell3D () | |
~vtkCell3D () | |
Protected Member Functions inherited from vtkCell | |
vtkCell () | |
~vtkCell () | |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
virtual | ~vtkObject () |
virtual void | RegisterInternal (vtkObjectBase *, int check) |
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
void | InternalReleaseFocus () |
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 |
Public Types inherited from vtkObject | |
typedef vtkObjectBase | Superclass |
Static Public Member Functions inherited from vtkCell3D | |
static int | IsTypeOf (const char *type) |
static vtkCell3D * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkCell | |
static int | IsTypeOf (const char *type) |
static vtkCell * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkObject | |
static int | IsTypeOf (const char *type) |
static vtkObject * | SafeDownCast (vtkObjectBase *o) |
static vtkObject * | New () |
static void | BreakOnError () |
static void | SetGlobalWarningDisplay (int val) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static int | GetGlobalWarningDisplay () |
Static Public Member Functions inherited from vtkObjectBase | |
static int | IsTypeOf (const char *name) |
static vtkObjectBase * | New () |
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 59 of file vtkPolyhedron.h.
typedef vtkCell3D vtkPolyhedron::Superclass |
Standard new methods.
Definition at line 65 of file vtkPolyhedron.h.
|
protected |
|
protected |
|
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.
|
virtual |
Standard new methods.
Reimplemented from vtkCell3D.
|
inlinevirtual |
See vtkCell3D API for description of these methods.
Definition at line 71 of file vtkPolyhedron.h.
|
inlinevirtual |
See vtkCell3D API for description of these methods.
Definition at line 72 of file vtkPolyhedron.h.
|
virtual |
|
inlinevirtual |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 77 of file vtkPolyhedron.h.
|
inlinevirtual |
This cell requires that it be initialized prior to access.
Reimplemented from vtkCell.
Definition at line 81 of file vtkPolyhedron.h.
|
virtual |
This cell requires that it be initialized prior to access.
Reimplemented from vtkCell.
|
virtual |
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.
|
virtual |
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.
|
virtual |
|
virtual |
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.
|
virtual |
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.
|
virtual |
The inverse of EvaluatePosition. Note the weights should be the MVC weights.
Implements vtkCell.
|
virtual |
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 the number of intersection points.
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.
|
virtual |
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.
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 301 of file vtkPolyhedron.h.
|
inlinevirtual |
A polyhedron is a full-fledged primary cell.
Reimplemented from vtkCell.
Definition at line 184 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.
|
inlinevirtual |
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 201 of file vtkPolyhedron.h.
|
virtual |
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.
|
virtual |
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.
vtkPolyData* vtkPolyhedron::GetPolyData | ( | ) |
Construct polydata if no one exist, then return this->PolyData
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 221 of file vtkPolyhedron.h.
|
protected |
Definition at line 222 of file vtkPolyhedron.h.
|
protected |
Definition at line 223 of file vtkPolyhedron.h.
|
protected |
Definition at line 224 of file vtkPolyhedron.h.
|
protected |
Definition at line 225 of file vtkPolyhedron.h.
|
protected |
Definition at line 226 of file vtkPolyhedron.h.
|
protected |
Definition at line 227 of file vtkPolyhedron.h.
|
protected |
Definition at line 234 of file vtkPolyhedron.h.
|
protected |
Definition at line 238 of file vtkPolyhedron.h.
|
protected |
Definition at line 239 of file vtkPolyhedron.h.
|
protected |
Definition at line 240 of file vtkPolyhedron.h.
|
protected |
Definition at line 246 of file vtkPolyhedron.h.
|
protected |
Definition at line 247 of file vtkPolyhedron.h.
|
protected |
Definition at line 251 of file vtkPolyhedron.h.
|
protected |
Definition at line 257 of file vtkPolyhedron.h.
|
protected |
Definition at line 258 of file vtkPolyhedron.h.
|
protected |
Definition at line 259 of file vtkPolyhedron.h.
|
protected |
Definition at line 260 of file vtkPolyhedron.h.
|
protected |
Definition at line 262 of file vtkPolyhedron.h.
|
protected |
Definition at line 263 of file vtkPolyhedron.h.
|
protected |
Definition at line 265 of file vtkPolyhedron.h.
|
protected |
Definition at line 266 of file vtkPolyhedron.h.