142#ifndef vtkPolyhedron_h 
  143#define vtkPolyhedron_h 
  147#include "vtkCommonDataModelModule.h"  
  151VTK_ABI_NAMESPACE_BEGIN
 
  190    vtkWarningMacro(<< 
"vtkPolyhedron::GetEdgePoints Not Implemented");
 
  194    vtkWarningMacro(<< 
"vtkPolyhedron::GetFacePoints Not Implemented");
 
  200    vtkWarningMacro(<< 
"vtkPolyhedron::GetEdgeToAdjacentFaces Not Implemented");
 
  205    vtkWarningMacro(<< 
"vtkPolyhedron::GetFaceToAdjacentFaces Not Implemented");
 
  211    vtkWarningMacro(<< 
"vtkPolyhedron::GetPointToIncidentEdges Not Implemented");
 
  218    vtkWarningMacro(<< 
"vtkPolyhedron::GetPointToOneRingPoints Not Implemented");
 
  286  int EvaluatePosition(
const double x[3], 
double closestPoint[3], 
int& subId, 
double pcoords[3],
 
  287    double& dist2, 
double weights[]) 
override;
 
  293  void EvaluateLocation(
int& subId, 
const double pcoords[3], 
double x[3], 
double* weights) 
override;
 
  301  int IntersectWithLine(
const double p1[3], 
const double p2[3], 
double tol, 
double& t, 
double x[3],
 
  302    double pcoords[3], 
int& subId) 
override;
 
  345    int subId, 
const double pcoords[3], 
const double* values, 
int dim, 
double* derivs) 
override;
 
  446  int IsInside(const 
double x[3], 
double tolerance);
 
  502  int EdgesGenerated = 0;           
 
  513  void GenerateFaces();
 
  515  int FacesGenerated = 0;     
 
  518  int BoundsComputed = 0;
 
  519  void ComputeBounds();
 
  520  void ComputeParametricCoordinate(const 
double x[3], 
double pc[3]);
 
  521  void ComputePositionFromParametricCoordinate(const 
double pc[3], 
double x[3]);
 
  524  int PolyDataConstructed = 0;
 
  526  void ConstructPolyData();
 
  527  int LocatorConstructed = 0;
 
  529  void ConstructLocator();
 
  546  void GeneratePointToIncidentFaces();
 
  552  std::atomic<
bool> IsRandomSequenceSeedInitialized{ 
false };
 
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
 
Park and Miller Sequence of pseudo random numbers.
 
Allocate and hold a VTK object.
 
represent and manipulate point attribute data
 
quickly locate points in 3-space
 
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.
 
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.
 
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 ...
 
std::map< vtkIdType, vtkIdType > vtkPointIdMap
 
int TriangulateLocalIds(int index, vtkIdList *ptIds) override
Use vtkOrderedTriangulator to tetrahedralize the polyhedron mesh.
 
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.
 
void EvaluateLocation(int &subId, const double pcoords[3], double x[3], double *weights) override
The inverse of EvaluatePosition.
 
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.
 
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.
 
double * GetParametricCoords() override
See vtkCell3D API for description of this method.
 
void InterpolateDerivs(const double x[3], double *derivs) override
Compute the interpolation functions/derivatives (aka shape functions/derivatives).
 
int IsPrimaryCell() VTK_FUTURE_CONST override
A polyhedron is a full-fledged primary cell.
 
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.
 
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.
 
vtkCell * GetFace(int faceId) override
A polyhedron is represented internally by a set of polygonal faces.
 
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.
 
int RequiresInitialization() override
This cell requires that it be initialized prior to access.
 
static vtkPolyhedron * New()
Standard new methods.
 
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...
 
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
 
vtkCellStatus
Diagnostic values indicating how well-specified a cell is.
 
#define VTK_DEPRECATED_IN_9_6_0(reason)