118 #ifndef __vtkHyperOctree_h
119 #define __vtkHyperOctree_h
125 class vtkHyperOctreeInternal;
128 class vtkHyperOctreeIdSet;
132 class vtkPointLocator;
173 void SetDimension(
int dim);
203 vtkIdType GetMaxNumberOfPoints(
int level);
215 vtkIdType GetMaxNumberOfPointsOnBoundary(
int level);
221 vtkIdType GetMaxNumberOfCellsOnBoundary(
int level);
231 vtkSetVector3Macro(Size,
double);
236 vtkGetVector3Macro(Size,
double);
241 vtkSetVector3Macro(Origin,
double);
243 vtkGetVector3Macro(Origin,
double);
322 double tol2,
int& subId,
double pcoords[3],
334 double tol2,
int& subId,
double pcoords[3],
370 void GetPointsOnParentFaces(
int faces[3],
444 void SetDualGridFlag(
int flag);
445 vtkGetMacro(DualGridFlag,
int);
484 void UpdateDualArrays();
490 void UpdateGridArrays();
496 void DeleteInternalArrays();
499 unsigned short *xyzIds,
int level);
501 unsigned char* visited,
502 double* origin,
double* size);
505 unsigned char* visited,
int* cornerNeighborIds);
513 int NeighborhoodTraversalTable[216];
514 void GenerateGridNeighborhoodTraversalTable();
515 void GenerateDualNeighborhoodTraversalTable();
525 vtkIdType RecursiveFindPoint(
double x[3],
527 double *origin,
double *size);
549 void ToChild(
int child);
550 unsigned short GetIsLeaf();
557 unsigned short IsLeaf;
558 unsigned short Level;
virtual vtkIdType GetNumberOfCells()=0
virtual void GetPointCells(vtkIdType ptId, vtkIdList *cellIds)=0
vtkIdTypeArray * CornerLeafIds
unsigned long GetActualMemorySize()
object represents upward pointers from points to list of cells using each point
virtual vtkIdType FindCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)=0
virtual vtkIdType GetNumberOfPoints()=0
abstract class to specify dataset behavior
unsigned short GetLevel()
virtual void ComputeBounds()
An object used by filters to store points computed on face or edge of an hyperoctant. It is an abstract class. vtkClipHyperOctree and vtkHyperOctreeCutter use vtkHyperOctreeClipCutPointsGrabber vtkHyperOctreeContourFilter use an internal one: vtkHyperOctreeContourFilterPointsGrabber.
vtkHyperOctree * GetTree()
helper class to generate triangulations
dynamic, self-adjusting array of vtkIdType
A dataset structured as a tree where each node has exactly 2^n children.
static vtkDataSet * GetData(vtkInformation *info)
provides thread-safe access to cells
cell represents a 1D line
void PrintSelf(ostream &os, vtkIndent indent)
a cell that represents a 3D orthogonal parallelepiped
a simple class to control print indentation
virtual int GetMaxCellSize()=0
list of point or cell ids
virtual void GetCellPoints(vtkIdType cellId, vtkIdList *ptIds)=0
a cell that represents an n-sided polygon
represent and manipulate attribute data in a dataset
virtual void GetCellNeighbors(vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds)
void DeepCopy(vtkDataObject *src)
Objects that can traverse hyperoctree nodes.
vtkHyperOctreeInternal * CellTree
virtual void CopyStructure(vtkDataSet *ds)=0
virtual double * GetPoint(vtkIdType ptId)=0
vtkIdTypeArray * LeafCornerIds
vtkHyperOctreeCursor * TmpChild
helper class to get VTK data object types as string and instantiate them
vtkIdType FindPoint(double x, double y, double z)
virtual vtkCell * GetCell(vtkIdType cellId)=0
represent and manipulate 3D points
virtual int GetCellType(vtkIdType cellId)=0
void ShallowCopy(vtkDataObject *src)