38 #ifndef vtkPolyhedron_h
39 #define vtkPolyhedron_h
41 #include "vtkCommonDataModelModule.h"
52 class vtkIdToIdVectorMapType;
53 class vtkIdToIdMapType;
75 void GetEdgePoints(
int vtkNotUsed(edgeId),
int* &vtkNotUsed(pts)) VTK_OVERRIDE {}
76 void GetFacePoints(
int vtkNotUsed(faceId),
int* &vtkNotUsed(pts)) VTK_OVERRIDE {}
95 int GetNumberOfEdges() VTK_OVERRIDE;
97 int GetNumberOfFaces() VTK_OVERRIDE;
98 vtkCell *GetFace(
int faceId) VTK_OVERRIDE;
125 int insideOut) VTK_OVERRIDE;
134 int EvaluatePosition(
double x[3],
double* closestPoint,
135 int& subId,
double pcoords[3],
136 double& dist2,
double *weights) VTK_OVERRIDE;
142 void EvaluateLocation(
int& subId,
double pcoords[3],
double x[3],
143 double *weights) VTK_OVERRIDE;
151 int IntersectWithLine(
double p1[3],
double p2[3],
double tol,
double& t,
152 double x[3],
double pcoords[3],
int& subId) VTK_OVERRIDE;
178 void Derivatives(
int subId,
double pcoords[3],
double *values,
179 int dim,
double *derivs) VTK_OVERRIDE;
185 int CellBoundary(
int subId,
double pcoords[3],
vtkIdList *pts) VTK_OVERRIDE;
191 int GetParametricCenter(
double pcoords[3]) VTK_OVERRIDE;
196 int IsPrimaryCell() VTK_OVERRIDE {
return 1;}
228 int IsInside(
double x[3],
double tolerance);
261 vtkPointIdMap *PointIdMap;
277 void GenerateFaces();
281 void ComputeBounds();
282 void ComputeParametricCoordinate(
double x[3],
double pc[3]);
283 void ComputePositionFromParametricCoordinate(
double pc[3],
double x[3]);
286 int PolyDataConstructed;
290 void ConstructPolyData();
291 int LocatorConstructed;
293 void ConstructLocator();
307 vtkIdToIdVectorMapType & faceToPointsMap,
308 vtkIdToIdVectorMapType & pointToFacesMap,
309 vtkIdToIdMapType & pointIdMap);
315 int IntersectWithContour(
double value,
324 vtkInternal * Internal;
331 pcoords[0] = pcoords[1] = pcoords[2] = 0.5;
abstract class to specify 3D cell interface
object to represent cell connectivity
represent and manipulate cell attribute data
octree-based spatial search object to quickly locate cells
abstract class to specify cell behavior
abstract superclass for arrays of numeric data
keep track of edges (edge is pair of integer id's)
provides thread-safe access to cells
list of point or cell ids
dynamic, self-adjusting array of vtkIdType
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
cell represents a 1D line
represent and manipulate point attribute data
quickly locate points in 3-space
represent and manipulate 3D points
concrete dataset represents vertices, lines, polygons, and triangle strips
a cell that represents an n-sided polygon
a 3D cell defined by a set of polygonal faces
int RequiresExplicitFaceRepresentation() override
Methods supporting the definition of faces.
void SetFaces(vtkIdType *faces) override
void InterpolateDerivs(double x[3], double *derivs) override
static vtkPolyhedron * New()
Standard new methods.
void GetEdgePoints(int vtkNotUsed(edgeId), int *&vtkNotUsed(pts)) override
See vtkCell3D API for description of these methods.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
double * GetParametricCoords() override
Return a contiguous array of parametric coordinates of the points defining this cell.
void GetFacePoints(int vtkNotUsed(faceId), int *&vtkNotUsed(pts)) override
int RequiresInitialization() override
This cell requires that it be initialized prior to access.
vtkIdType * GetFaces() override
void InterpolateFunctions(double x[3], double *sf) override
Compute the interpolation functions/derivatives (aka shape functions/derivatives).
void Initialize() override
a cell that represents a 2D quadrilateral
a 3D cell that represents a tetrahedron
a cell that represents a triangle
int Contour(vtkDataSet *input, vtkPolyData *output, vtkDataArray *field, float isoValue, bool computeScalars)