47 #ifndef vtkHyperTreeGrid_h
48 #define vtkHyperTreeGrid_h
50 #include "vtkCommonDataModelModule.h"
87 int GetDataObjectType() VTK_OVERRIDE;
93 void CopyStructure(
vtkDataSet* ) VTK_OVERRIDE;
99 void SetGridSize(
unsigned int[3] );
100 void SetGridSize(
unsigned int i,
unsigned int j,
unsigned int k );
101 vtkGetVector3Macro(GridSize,
unsigned int);
108 void SetGridExtent(
int extent[6]);
109 void SetGridExtent(
int iMin,
int iMax,
int jMin,
int jMax,
119 vtkGetMacro(TransposedRootIndexing,
bool);
120 void SetIndexingModeToKJI()
121 { this->SetTransposedRootIndexing(
false ); }
123 { this->SetTransposedRootIndexing(
true ); }
131 void SetBranchFactor(
unsigned int );
132 vtkGetMacro(BranchFactor,
unsigned int);
140 void SetDimension(
unsigned int );
141 vtkGetMacro(Dimension,
unsigned int);
152 vtkIdType GetNumberOfPoints() VTK_OVERRIDE;
167 vtkIdType GetNumberOfTrees();
174 vtkGetObjectMacro(XCoordinates, vtkDataArray);
181 void SetYCoordinates( vtkDataArray* );
182 vtkGetObjectMacro(YCoordinates, vtkDataArray);
189 void SetZCoordinates( vtkDataArray* );
190 vtkGetObjectMacro(ZCoordinates, vtkDataArray);
198 vtkGetObjectMacro(MaterialMask, vtkBitArray);
206 vtkGetObjectMacro(MaterialMaskIndex, vtkIdTypeArray);
212 virtual
void GenerateTrees();
235 double*
GetPoint( vtkIdType ) VTK_OVERRIDE;
245 void GetPoint( vtkIdType,
double[3] ) VTK_OVERRIDE;
253 vtkCell* GetCell( vtkIdType ) VTK_OVERRIDE;
272 int GetCellType( vtkIdType ) VTK_OVERRIDE;
281 void GetCellPoints( vtkIdType,
vtkIdList* ) VTK_OVERRIDE;
287 virtual
void GetCellPoints( vtkIdType, vtkIdType&, vtkIdType*& );
296 void GetPointCells( vtkIdType,
vtkIdList* ) VTK_OVERRIDE;
308 void GetCellNeighbors( vtkIdType,
vtkIdList*, vtkIdList* ) VTK_OVERRIDE;
316 vtkIdType FindPoint(
double x[3] ) VTK_OVERRIDE;
331 vtkIdType FindCell(
double x[3],
vtkCell *cell, vtkIdType cellId,
332 double tol2,
int& subId,
double pcoords[3],
333 double *weights ) VTK_OVERRIDE;
342 vtkIdType FindCell(
double x[3],
vtkCell *cell,
344 double tol2,
int& subId,
double pcoords[3],
345 double *weights ) VTK_OVERRIDE;
351 void Initialize() VTK_OVERRIDE;
356 void InitializeTreeIterator( vtkHyperTreeIterator& );
364 int GetMaxCellSize() VTK_OVERRIDE;
392 void GenerateSuperCursorTraversalTable();
401 void InitializeSuperCursor( vtkHyperTreeGridSuperCursor*,
406 void InitializeSuperCursor( vtkHyperTreeGridSuperCursor*,
413 void InitializeSuperCursorChild( vtkHyperTreeGridSuperCursor* parent,
414 vtkHyperTreeGridSuperCursor* child,
415 unsigned int childIdx );
422 vtkGetMacro(NumberOfChildren,
unsigned int);
438 void ComputeBounds() VTK_OVERRIDE;
442 void ComputeDualGrid();
446 unsigned int Dimension;
447 unsigned int GridSize[3];
449 unsigned int BranchFactor;
450 unsigned int NumberOfChildren;
451 bool TransposedRootIndexing;
464 std::map<vtkIdType,
bool> PointShifted;
465 std::map<vtkIdType,
double> PointShifts[3];
466 std::map<vtkIdType,
double> ReductionFactors;
468 void DeleteInternalArrays();
471 #if !defined(__VTK_WRAP__) && !defined(__WRAP_GCCXML__)
507 vtkIdType RecursiveFindPoint(
double x[3],
509 double* origin,
double*
size);
527 vtkIdType GetGlobalNodeIndex();
533 unsigned short Level;
560 std::map<vtkIdType, vtkHyperTree*>::iterator
Iterator;
579 return this->Cursors + this->MiddleCursorId + idx;
virtual vtkIdType GetNumberOfCells()=0
Determine the number of cells composing the dataset.
object represents upward pointers from points to list of cells using each point
static vtkDataObject * New()
abstract class to specify dataset behavior
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
a cell that represents an orthogonal quadrilateral
unsigned short GetLevel()
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
dynamic, self-adjusting array of vtkIdType
void SetIndexingModeToIJK()
Specify whether indexing mode of grid root cells must be transposed to x-axis first, z-axis last, instead of the default z-axis first, k-axis last.
provides thread-safe access to cells
void GetPoint(const int i, const int j, const int k, double pnt[3])
Objects that can traverse hypertree nodes.
cell represents a 1D line
abstract class to specify cell behavior
a cell that represents a 3D orthogonal parallelepiped
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
a simple class to control print indentation
list of point or cell ids
abstract superclass for arrays of numeric data
represent and manipulate attribute data in a dataset
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
dynamic, self-adjusting array of bits
create and manipulate unsorted lists of objects
An object structured as a tree where each node has exactly either 2^n or 3^n children.
vtkHyperTreeSimpleCursor * GetCursor(int idx)
general representation of visualization data
std::map< vtkIdType, vtkHyperTree * >::iterator Iterator
represent and manipulate 3D points
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.