118 #ifndef __vtkHyperOctree_h
119 #define __vtkHyperOctree_h
125 class vtkHyperOctreeInternal;
126 class vtkHyperOctreePointsGrabber;
128 class vtkHyperOctreeIdSet;
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],
361 vtkHyperOctreePointsGrabber *grabber);
370 void GetPointsOnParentFaces(
int faces[3],
373 vtkHyperOctreePointsGrabber *grabber);
393 vtkHyperOctreePointsGrabber *grabber);
411 vtkHyperOctreePointsGrabber *grabber);
423 vtkHyperOctreePointsGrabber *grabber);
435 vtkHyperOctreePointsGrabber *grabber);
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
quickly locate points in 3-space
virtual vtkIdType GetNumberOfPoints()=0
abstract class to specify dataset behavior
unsigned short GetLevel()
a cell that represents an orthogonal quadrilateral
virtual void ComputeBounds()
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
abstract class to specify cell behavior
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)