147#ifndef vtkPolyhedron_h
148#define vtkPolyhedron_h
152#include "vtkCommonDataModelModule.h"
156VTK_ABI_NAMESPACE_BEGIN
195 vtkWarningMacro(<<
"vtkPolyhedron::GetEdgePoints Not Implemented");
201 vtkWarningMacro(<<
"vtkPolyhedron::GetEdgeToAdjacentFaces Not Implemented");
206 vtkWarningMacro(<<
"vtkPolyhedron::GetFaceToAdjacentFaces Not Implemented");
212 vtkWarningMacro(<<
"vtkPolyhedron::GetPointToIncidentEdges Not Implemented");
219 vtkWarningMacro(<<
"vtkPolyhedron::GetPointToOneRingPoints Not Implemented");
309 int EvaluatePosition(
const double x[3],
double closestPoint[3],
int& subId,
double pcoords[3],
310 double& dist2,
double weights[])
override;
316 void EvaluateLocation(
int& subId,
const double pcoords[3],
double x[3],
double* weights)
override;
324 int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
double x[3],
325 double pcoords[3],
int& subId)
override;
368 int subId,
const double pcoords[3],
const double* values,
int dim,
double* derivs)
override;
570 void GeneratePointToIncidentFaces();
object to represent cell connectivity
represent and manipulate cell attribute data
octree-based spatial search object to quickly locate cells
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
Allocate and hold a VTK object.
represent and manipulate point attribute data
concrete dataset represents vertices, lines, polygons, and triangle strips
a cell that represents an n-sided polygon
Isosurface extraction using López polygon tracing algorithm.
vtkIdType GetFacePoints(vtkIdType faceId, const vtkIdType *&pts) override
See vtkCell3D API for description of these methods.
void GetEdgePoints(vtkIdType edgeId, const vtkIdType *&pts) override
See vtkCell3D API for description of these methods.
vtkIdType GetPointToIncidentFaces(vtkIdType pointId, const vtkIdType *&faceIds) override
See vtkCell3D API for description of these methods.
vtkCellArray * GetCellFaces()
Get the faces of the polyhedron.
vtkNew< vtkCellArray > GlobalFaces
int SetCellFaces(vtkCellArray *faces)
Set the faces of the polyhedron.
void SetFaces(vtkIdType *faces)
Set the faces of the polyhedron.
void ShallowCopy(vtkCell *c) override
Shallow copy of a polyhedron.
vtkIdType GetFaceToAdjacentFaces(vtkIdType faceId, const vtkIdType *&faceIds) override
See vtkCell3D API for description of these methods.
int GetNumberOfFaces() override
A polyhedron is represented internally by a set of polygonal faces.
int EvaluatePosition(const double x[3], double closestPoint[3], int &subId, double pcoords[3], double &dist2, double weights[]) override
Satisfy the vtkCell API.
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 ...
vtkCellStatus Status
Adopt vtkCellStatus to describe degenerate polyhedral cells.
vtkNew< vtkTriangle > Triangle
std::map< vtkIdType, vtkIdType > vtkPointIdMap
int TriangulateLocalIds(int index, vtkIdList *ptIds) override
Use vtkOrderedTriangulator to tetrahedralize the polyhedron mesh.
friend class vtkPolyhedronContour
void ComputeParametricCoordinate(const double x[3], double pc[3])
vtkNew< vtkPolyData > PolyData
int TriangulateFaces(vtkIdList *newFaces)
Triangulate each face of the polyhedron.
vtkIdType GetPointToIncidentEdges(vtkIdType pointId, const vtkIdType *&edgeIds) override
See vtkCell3D API for description of these methods.
vtkNew< vtkGenericCell > Cell
void EvaluateLocation(int &subId, const double pcoords[3], double x[3], double *weights) override
The inverse of EvaluatePosition.
vtkNew< vtkPolygon > Polygon
void InterpolateFunctions(const double x[3], double *sf) override
Compute the interpolation functions/derivatives (aka shape functions/derivatives).
int RequiresExplicitFaceRepresentation() VTK_FUTURE_CONST override
Satisfy the vtkCell API.
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.
vtkIdType * GetFaces()
Get the faces of the polyhedron.
int IsInside(const double x[3], double tolerance)
A method particular to vtkPolyhedron.
vtkNew< vtkIdTypeArray > LegacyGlobalFaces
bool GetCentroid(double centroid[3]) const override
See vtkCell3D API for description of these methods.
int GetParametricCenter(double pcoords[3]) override
Return the center of the cell in parametric coordinates.
int TriangulateFaces(vtkCellArray *newFaces)
Triangulate each face of the polyhedron.
void InterpolateDerivs(const double x[3], double *derivs) override
Compute the interpolation functions/derivatives (aka shape functions/derivatives).
bool IsConvex()
Determine whether or not a polyhedron is convex.
int IsPrimaryCell() VTK_FUTURE_CONST override
A polyhedron is a full-fledged primary cell.
vtkNew< vtkIdTypeArray > EdgeFaces
void ClipWithContext(double value, vtkDataArray *scalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut, vtkCellArray *outFaces, vtkCellArray *outFaceLocs)
Clip this polyhedron and write faces directly into outFaces and outFaceLocs, bypassing the embedded f...
int GetNumberOfEdges() override
A polyhedron is represented internally by a set of polygonal faces.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard new methods.
void GetEdgeToAdjacentFaces(vtkIdType edgeId, const vtkIdType *&pts) override
See vtkCell3D API for description of these methods.
vtkPolyData * GetPolyData()
Construct polydata if no one exist, then return this->PolyData.
vtkNew< vtkCellArray > Faces
vtkIdType GetPointToOneRingPoints(vtkIdType pointId, const vtkIdType *&pts) override
See vtkCell3D API for description of these methods.
vtkCell * GetEdge(int) override
A polyhedron is represented internally by a set of polygonal faces.
void ClipWithContext(double value, vtkDataArray *scalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut, vtkUnstructuredGrid *outUG)
Convenience overload of ClipWithContext that extracts outFaces and outFaceLocs from the given output ...
vtkCell * GetFace(int faceId) override
A polyhedron is represented internally by a set of polygonal faces.
void DeepCopy(vtkCell *c) override
Deep copy of a polyhedron.
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.
vtkNew< vtkIdList > CellIds
int RequiresInitialization() override
This cell requires that it be initialized prior to access.
friend class vtkPolyhedronUtilities
void ComputePositionFromParametricCoordinate(const double pc[3], double x[3])
static vtkPolyhedron * New()
Standard new methods.
vtkNew< vtkCellLocator > CellLocator
double ComputeVolume()
Compute the volume of the polyhedron using the divergence theorem.
int GetCellType() override
See the vtkCell API for descriptions of these methods.
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 ca...
vtkNew< vtkEdgeTable > EdgeTable
vtkNew< vtkIdTypeArray > Edges
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.
void Initialize() override
The Initialize method builds up internal structures of vtkPolyhedron.
a cell that represents a 2D quadrilateral
a 3D cell that represents a tetrahedron
a cell that represents a triangle
dataset represents arbitrary combinations of all possible cell types
vtkCellStatus
Diagnostic values indicating how well-specified a cell is.
#define VTK_DEPRECATED_IN_9_6_0(reason)