36 #ifndef vtkSimpleCellTessellator_h
37 #define vtkSimpleCellTessellator_h
39 #include "vtkCommonDataModelModule.h"
42 VTK_ABI_NAMESPACE_BEGIN
43 class vtkTriangleTile;
140 int GetFixedSubdivisions();
150 int GetMaxSubdivisionLevel();
156 int GetMaxAdaptiveSubdivisions();
164 void SetFixedSubdivisions(
int level);
172 void SetMaxSubdivisionLevel(
int level);
183 void SetSubdivisionLevels(
int fixed,
int maxLevel);
200 void InsertEdgesIntoEdgeTable(vtkTriangleTile& tri);
201 void RemoveEdgesFromEdgeTable(vtkTriangleTile& tri);
202 void InsertPointsIntoEdgeTable(vtkTriangleTile& tri);
204 void InsertEdgesIntoEdgeTable(vtkTetraTile& tetra);
205 void RemoveEdgesFromEdgeTable(vtkTetraTile& tetra);
224 vtkTetraTile& root,
const vtkIdType* localIds,
vtkIdType* ids,
int* edgeIds,
int* faceIds);
257 void AllocateScalars(
int size);
301 int GetNumberOfCellsUsingFace(
int faceId);
302 int GetNumberOfCellsUsingEdge(
int edgeId);
312 int IsEdgeOnFace(
double p1[3],
double p2[3]);
322 int FindEdgeParent2D(
double p1[3],
double p2[3],
int& localId);
333 int FindEdgeParent(
double p1[3],
double p2[3],
int& localId);
339 void AllocatePointIds(
int size);
394 friend class vtkTetraTile;
395 friend class vtkTriangleTile;
398 VTK_ABI_NAMESPACE_END
vtkOrderedTriangulator * Triangulator
double * Scalars
Scalar buffer used to save the interpolate values of the attributes The capacity is at least the numb...
represent and manipulate point attribute data
helper class to perform cell tessellation
a collection of attributes
vtkGenericCellIterator * CellIterator
Used to iterate over edges boundaries in GetNumberOfCellsUsingEdges()
virtual void TessellateFace(vtkGenericAdaptorCell *cell, vtkGenericAttributeCollection *att, vtkIdType index, vtkDoubleArray *points, vtkCellArray *cellArray, vtkPointData *internalPd)=0
Tessellate a face of a 3D `cell'.
vtkGenericAdaptorCell * GenericCell
To access the higher order cell from third party library.
helper class to perform cell tessellation
keep track of edges (defined by pair of integer id's)
vtkGenericEdgeTable * EdgeTable
HashTable instead of vtkPointLocator.
vtkCellArray * TessellateCellArray
To avoid New/Delete.
helper class to generate triangulations
vtkGenericAttributeCollection * AttributeCollection
To access the higher order field from third party library.
virtual void Triangulate(vtkGenericAdaptorCell *cell, vtkGenericAttributeCollection *att, vtkDoubleArray *points, vtkCellArray *cellArray, vtkPointData *internalPd)=0
Triangulate a 2D `cell'.
dynamic, self-adjusting array of double
iterator used to traverse cells
vtkIdType NumberOfPoints
Number of points in the dataset to be tessellated.
const vtkIdType * EdgeIds
For each edge (6) of the sub-tetra, there is the id of the original edge or -1 if the edge is not an ...
vtkDoubleArray * TessellatePoints
To avoid New/Delete.
vtkPointData * TessellatePointData
To avoid New/Delete.
vtkCellArray * Connectivity
a simple class to control print indentation
virtual void Tessellate(vtkGenericAdaptorCell *cell, vtkGenericAttributeCollection *att, vtkDoubleArray *points, vtkCellArray *cellArray, vtkPointData *internalPd)=0
Tessellate a 3D `cell'.
list of point or cell ids
const vtkIdType * FaceIds
For each face (4) of the sub-tetra, there is the id of the original face or -1 if the face is not an ...
a cell that represents an n-sided polygon
virtual void Initialize(vtkGenericDataSet *ds)=0
Initialize the tessellator with a data set `ds'.
int CurrentSubdivisionLevel
Objects that compute error during cell tessellation.
object to represent cell connectivity
int PointOffset
Number of double value to skip to go to the next point into Scalars array It is 6+attributeCollection...
defines dataset interface
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.