VTK
vtkHyperTreeGrid.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperTreeGrid.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
46 #ifndef vtkHyperTreeGrid_h
47 #define vtkHyperTreeGrid_h
48 
49 #include "vtkCommonDataModelModule.h" // For export macro
50 #include "vtkDataSet.h"
51 
52 #include <map> // STL header for dual point coordinates adjustment
53 
54 class vtkHyperTree;
55 class vtkHyperTreeCursor;
57 
58 class vtkBitArray;
59 class vtkBoundingBox;
60 class vtkCellLinks;
61 class vtkCollection;
62 class vtkDataArray;
64 class vtkIdTypeArray;
65 class vtkLine;
66 class vtkPixel;
67 class vtkPoints;
68 class vtkVoxel;
69 
70 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGrid : public vtkDataSet
71 {
72 public:
74  class vtkHyperTreePositionCursor;
77 
82  static vtkHyperTreeGrid* New();
83 
84  vtkTypeMacro(vtkHyperTreeGrid, vtkDataSet);
85  void PrintSelf( ostream&, vtkIndent ) override;
86 
90  int GetDataObjectType() override;
91 
96  void CopyStructure( vtkDataSet* ) override;
97 
99 
102  void SetGridSize( unsigned int[3] );
103  void SetGridSize( unsigned int, unsigned int, unsigned int );
104  vtkGetVector3Macro(GridSize, unsigned int);
106 
108 
112  void SetGridExtent(int extent[6]);
113  void SetGridExtent(int, int, int, int, int, int );
115 
117 
121  vtkSetMacro(TransposedRootIndexing, bool);
122  vtkGetMacro(TransposedRootIndexing, bool);
124  { this->SetTransposedRootIndexing( false ); }
126  { this->SetTransposedRootIndexing( true ); }
128 
130 
133  void SetDimension( unsigned int );
134  vtkGetMacro(Dimension, unsigned int);
136 
138 
144  virtual void SetOrientation(unsigned int);
145  vtkGetMacro(Orientation, unsigned int);
147 
149 
152  void SetBranchFactor( unsigned int );
153  vtkGetMacro(BranchFactor, unsigned int);
155 
160 
165 
170 
175 
180 
185 
190 
192 
196  vtkGetObjectMacro(XCoordinates, vtkDataArray);
198 
200 
204  vtkGetObjectMacro(YCoordinates, vtkDataArray);
206 
208 
212  vtkGetObjectMacro(ZCoordinates, vtkDataArray);
214 
216 
220  vtkGetObjectMacro(MaterialMask, vtkBitArray);
222 
227 
229 
233  vtkGetObjectMacro(MaterialMaskIndex, vtkIdTypeArray);
235 
237 
240  vtkSetMacro( HasInterface, bool );
241  vtkGetMacro( HasInterface, bool );
242  vtkBooleanMacro( HasInterface, bool );
244 
246 
249  vtkSetStringMacro(InterfaceNormalsName);
250  vtkGetStringMacro(InterfaceNormalsName);
252 
254 
257  vtkSetStringMacro(InterfaceInterceptsName);
258  vtkGetStringMacro(InterfaceInterceptsName);
260 
264  virtual void GenerateTrees();
265 
272  vtkHyperTreeCursor* NewCursor( vtkIdType, bool create=false );
273 
282  bool create=false );
283 
292  bool create=false );
293 
303  bool create=false );
304 
314  bool create=false );
315 
323 
330  double* GetPoint( vtkIdType ) override;
331 
340  void GetPoint( vtkIdType, double[3] ) override;
341 
348  vtkCell* GetCell( vtkIdType ) override;
349 
354  vtkCell* GetCell( int i, int j, int k) override {
355  return this->Superclass::GetCell(i,j,k);
356  };
357 
367  void GetCell( vtkIdType, vtkGenericCell* ) override;
368 
375  int GetCellType( vtkIdType ) override;
376 
384  void GetCellPoints( vtkIdType, vtkIdList* ) override;
385 
391 
399  void GetPointCells( vtkIdType, vtkIdList* ) override;
400 
412 
419  vtkIdType FindPoint( double x[3] ) override;
420 
434  vtkIdType FindCell( double x[3], vtkCell *cell, vtkIdType cellId,
435  double tol2, int& subId, double pcoords[3],
436  double *weights ) override;
437 
445  vtkIdType FindCell( double x[3], vtkCell *cell,
446  vtkGenericCell *gencell, vtkIdType cellId,
447  double tol2, int& subId, double pcoords[3],
448  double *weights ) override;
449 
453  void Initialize() override;
454 
460 
466 
472 
479  int GetMaxCellSize() override;
480 
484  void ShallowCopy( vtkDataObject* ) override;
485 
489  void DeepCopy( vtkDataObject* ) override;
490 
494  int GetExtentType() override { return VTK_3D_EXTENT; }
495 
504  unsigned long GetActualMemorySize() override;
505 
507 
510  vtkGetMacro(NumberOfChildren, unsigned int);
512 
517 
522 
573  unsigned int GetChildMask( unsigned int );
574 
579  unsigned int&,
580  unsigned int&,
581  unsigned int& );
582 
587  unsigned int,
588  unsigned int,
589  unsigned int );
590 
597  int,
598  int,
599  int );
600 
602 
606  class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeSimpleCursor
607  {
608  public:
612 
614 
617  vtkHyperTree* GetTree() { return this->Tree; }
619 
623  vtkIdType GetLeafIndex() { return this->Index; }
624 
628  unsigned short GetLevel() { return this->Level; }
629 
630  private:
631  vtkHyperTree* Tree;
632  vtkIdType Index;
633  unsigned short Level;
634  };
635 
643  {
644  double Origin[3];
645  double Size[3];
648  vtkHyperTreeSimpleCursor Cursors[3*3*3];
650  };
651 
655  class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGridIterator
656  {
657  public:
659 
664 
670 
676 
677  protected:
678  std::map<vtkIdType, vtkHyperTree*>::iterator Iterator;
680  };
681 
683 
689 
690 protected:
695 
699  ~vtkHyperTreeGrid() override;
700 
701  void ComputeBounds() override;
702 
710 
713 
714  unsigned int BranchFactor; // 2 or 3
715  unsigned int Dimension; // 1, 2, or 3
716  unsigned int Orientation; // 0, 1, or 2
717  unsigned int GridSize[3];
718  int Extent[6];
719  unsigned int NumberOfChildren;
721 
726 
730 
734 
735  std::map<vtkIdType, vtkHyperTree*> HyperTrees;
736 
739  std::map<vtkIdType, bool> PointShifted;
740  std::map<vtkIdType, double> PointShifts[3];
741  std::map<vtkIdType, double> ReductionFactors;
742 
747 
751  void DeleteTrees();
752 
756  void ResetDual();
757 
766 
771 
777 
782 
788 
793 
799 
804 
810 
815 
820 
826  double*,
827  double* );
828 
829 #if !defined(__VTK_WRAP__) && !defined(__WRAP_GCCXML__)
831 #endif
832 
834 
841 
843 
847  void BuildLinks();
849 
850 private:
851  vtkHyperTreeGrid(const vtkHyperTreeGrid&) = delete;
852  void operator=(const vtkHyperTreeGrid&) = delete;
853 
854  void GetCellImplementation( vtkIdType, vtkCell* );
855 };
856 
857 #endif
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:40
vtkHyperTreeGridCursor
Objects for depth-first traversal HyperTreeGrids.
Definition: vtkHyperTreeGridCursor.h:46
vtkHyperTreeGrid::EvaluateDualCorner
void EvaluateDualCorner(vtkHyperTreeSimpleCursor *)
vtkHyperTreeGrid::vtkHyperTreeSimpleCursor::GetLeafIndex
vtkIdType GetLeafIndex()
Only valid for leaves.
Definition: vtkHyperTreeGrid.h:623
vtkHyperTreeGrid::Links
vtkCellLinks * Links
Not really needed.
Definition: vtkHyperTreeGrid.h:846
vtkHyperTreeGrid::BranchFactor
unsigned int BranchFactor
Definition: vtkHyperTreeGrid.h:714
vtkHyperTreeGrid::ZCoordinates
vtkDataArray * ZCoordinates
Definition: vtkHyperTreeGrid.h:733
vtkHyperTreeGrid::NewCursor
vtkHyperTreeCursor * NewCursor(vtkIdType, bool create=false)
Create a new hyper tree cursor: an object that can traverse the cells of an individual hyper tree at ...
vtkHyperTreeGrid::TraverseDualRecursively
void TraverseDualRecursively(vtkHyperTreeGridCursor *, vtkBitArray *)
Recursively descend into tree down to leaves to generate dual, when a mask array is present.
vtkHyperTreeGrid::SetTree
void SetTree(vtkIdType, vtkHyperTree *)
Assign given tree to given index of hyper tree grid NB: This will create a new slot in the grid if ne...
vtkHyperTreeGrid::GetConnectivity
vtkIdTypeArray * GetConnectivity()
vtkHyperTreeGrid::vtkHyperTreeGridIterator::GetNextTree
vtkHyperTree * GetNextTree(vtkIdType &index)
Get the next tree and set its index then increment the iterator.
vtkHyperTreeGrid::GetActualMemorySize
unsigned long GetActualMemorySize() override
Return the actual size of the data in kibibytes (1024 bytes).
vtkHyperTreeGrid::vtkHyperTreeGridIterator::Initialize
void Initialize(vtkHyperTreeGrid *)
Initialize the iterator on the tree set of the given grid.
vtkHyperTreeGrid::TransposedRootIndexing
bool TransposedRootIndexing
Definition: vtkHyperTreeGrid.h:720
vtkHyperTreeGrid::GetNumberOfLevels
vtkIdType GetNumberOfLevels(vtkIdType)
Return the number of levels in an individual (primal) tree.
vtkHyperTreeGrid::NewGeometricCursor
vtkHyperTreeGridCursor * NewGeometricCursor(vtkIdType, bool create=false)
Create a new hyper tree grid geometric cursor: an object that can traverse the cells of a hyper tree ...
vtkHyperTreeGrid::GetNumberOfVertices
vtkIdType GetNumberOfVertices()
Get the number of vertices in the primal tree grid.
vtkHyperTreeGrid::Connectivity
vtkIdTypeArray * Connectivity
Definition: vtkHyperTreeGrid.h:738
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkHyperTreeGrid::SetDimension
void SetDimension(unsigned int)
Set/Get the dimensionality of the grid.
vtkHyperTreeGrid::GetPointCells
void GetPointCells(vtkIdType, vtkIdList *) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::LEVELS
static vtkInformationIntegerKey * LEVELS()
vtkDataSetAttributes
represent and manipulate attribute data in a dataset
Definition: vtkDataSetAttributes.h:60
vtkHyperTreeGrid::vtkHyperTreeSimpleCursor::vtkHyperTreeSimpleCursor
vtkHyperTreeSimpleCursor()
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:42
vtkHyperTreeGrid::Points
vtkPoints * Points
Definition: vtkHyperTreeGrid.h:737
vtkHyperTreeGrid::GetTree
vtkHyperTree * GetTree(vtkIdType)
Return tree located at given index of hyper tree grid NB: This will return nullptr if grid slot is em...
vtkHyperTreeGrid::ReductionFactors
std::map< vtkIdType, double > ReductionFactors
Definition: vtkHyperTreeGrid.h:741
vtkHyperTreeGrid::vtkHyperTreeGridSuperCursor::NumberOfCursors
int NumberOfCursors
Definition: vtkHyperTreeGrid.h:646
vtkHyperTreeGrid::vtkHyperTreeGridIterator::Iterator
std::map< vtkIdType, vtkHyperTree * >::iterator Iterator
Definition: vtkHyperTreeGrid.h:678
vtkHyperTreeGrid::GetShiftedLevelZeroIndex
unsigned int GetShiftedLevelZeroIndex(vtkIdType, int, int, int)
Return the root index of a root cell with given index displaced.
vtkHyperTreeGrid::DeepCopy
void DeepCopy(vtkDataObject *) override
Create deep copy of hyper tree grid.
vtkHyperTreeGrid::Line
vtkLine * Line
These are needed by the GetCell() method.
Definition: vtkHyperTreeGrid.h:837
vtkHyperTreeGrid::GetCell
void GetCell(vtkIdType, vtkGenericCell *) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::InterfaceNormalsName
char * InterfaceNormalsName
Definition: vtkHyperTreeGrid.h:728
vtkHyperTreeGrid::TraverseDualRecursively
void TraverseDualRecursively(vtkHyperTreeGridCursor *)
Recursively descend into tree down to leaves to generate dual.
vtkHyperTreeGrid::SetOrientation
virtual void SetOrientation(unsigned int)
Set/Get the orientation of 1D or 2D grids:
vtkHyperTreeGrid::FindCell
vtkIdType FindCell(double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
This is a version of the above method that can be used with multithreaded applications.
vtkHyperTreeGrid::vtkHyperTreeGridSuperCursor::MiddleCursorId
int MiddleCursorId
Definition: vtkHyperTreeGrid.h:647
vtkHyperTreeGrid::GetChildMask
unsigned int GetChildMask(unsigned int)
Return hard-coded bitcode correspondng to child mask Dimension 1: Factor 2: 0: 100,...
vtkHyperTreeGrid::ShiftDualCornerFromMaskedLeaf2D
void ShiftDualCornerFromMaskedLeaf2D(vtkHyperTreeGridCursor *, vtkBitArray *)
Compute appropriate shifts for dual corners of masked cells in 2D.
vtkHyperTreeGrid::SetBranchFactor
void SetBranchFactor(unsigned int)
Set/Get the subdivision factor in the grid refinement scheme.
vtkHyperTreeGrid::vtkHyperTreeSimpleCursor
A simplified hyper tree cursor, to be used by the hyper tree.
Definition: vtkHyperTreeGrid.h:607
vtkHyperTreeGrid::InitPureMaterialMask
bool InitPureMaterialMask
Definition: vtkHyperTreeGrid.h:725
vtkHyperTreeGrid::SetIndexingModeToKJI
void SetIndexingModeToKJI()
Definition: vtkHyperTreeGrid.h:123
vtkHyperTreeGrid::Dimension
unsigned int Dimension
Definition: vtkHyperTreeGrid.h:715
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkHyperTreeGrid::vtkHyperTreeGridSuperCursor
Public structure used by filters to move around the hyper tree grid and easily access neighbors to le...
Definition: vtkHyperTreeGrid.h:643
vtkHyperTreeGrid::GetNumberOfPoints
vtkIdType GetNumberOfPoints() override
Return the number of points in the dual grid.
vtkHyperTreeGrid::vtkHyperTreeSimpleCursor::GetTree
vtkHyperTree * GetTree()
Methods that belong to the vtkHyperTreeCursor API.
Definition: vtkHyperTreeGrid.h:617
vtkHyperTreeGrid::FindCell
vtkIdType FindCell(double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights) override
Locate cell based on global coordinate x and tolerance squared.
vtkHyperTreeGrid::ORIENTATION
static vtkInformationIntegerKey * ORIENTATION()
vtkHyperTreeGrid::vtkHyperTreeSimpleCursor::GetLevel
unsigned short GetLevel()
Return level at which cursor is positioned.
Definition: vtkHyperTreeGrid.h:628
vtkHyperTreeGrid::SetMaterialMask
void SetMaterialMask(vtkBitArray *)
Set/Get the blanking mask of primal leaf cells.
vtkHyperTreeGrid::GetLevelZeroCoordinatesFromIndex
void GetLevelZeroCoordinatesFromIndex(vtkIdType, unsigned int &, unsigned int &, unsigned int &)
Convert the global index of a root to its Cartesian coordinates in the grid.
vtkHyperTreeGrid::DeleteTrees
void DeleteTrees()
Remove existing trees.
vtkHyperTreeGrid::vtkHyperTreeSimpleCursor::~vtkHyperTreeSimpleCursor
~vtkHyperTreeSimpleCursor()
vtkHyperTreeGrid::vtkHyperTreeGridIterator
An iterator object to iteratively access trees in the grid.
Definition: vtkHyperTreeGrid.h:656
vtkHyperTreeGrid::vtkHyperTreeGridSuperCursor::GetCursor
vtkHyperTreeSimpleCursor * GetCursor(int)
vtkHyperTreeGrid::MaterialMask
vtkBitArray * MaterialMask
Definition: vtkHyperTreeGrid.h:722
vtkHyperTreeGrid::GenerateDualCornerFromLeaf3D
void GenerateDualCornerFromLeaf3D(vtkHyperTreeGridCursor *, vtkBitArray *)
Process leaf cell and issue corresponding dual corner point in 3D, when a mask array is present.
vtkHyperTreeGrid::ResetSuperCursor
void ResetSuperCursor()
A convenience method to reset all cursors in a super cursor, either Von Neumann or Moore.
vtkHyperTreeGrid::GetExtentType
int GetExtentType() override
Structured extent.
Definition: vtkHyperTreeGrid.h:494
vtkHyperTreeGrid::GetNumberOfLevels
vtkIdType GetNumberOfLevels()
Return the number of levels in the hyper tree grid.
vtkLine
cell represents a 1D line
Definition: vtkLine.h:36
vtkHyperTreeGrid::GetPoints
vtkPoints * GetPoints()
vtkHyperTreeGrid::RecursivelyFindPoint
vtkIdType RecursivelyFindPoint(double x[3], vtkHyperTreeGridCursor *, double *, double *)
Recursive method called under the hood by FindPoint().
vtkHyperTreeGrid::vtkHyperTreeGridIterator::vtkHyperTreeGridIterator
vtkHyperTreeGridIterator()
Definition: vtkHyperTreeGrid.h:658
VTK_3D_EXTENT
#define VTK_3D_EXTENT
Definition: vtkDataObject.h:61
vtkHyperTreeGrid::GenerateDualCornerFromLeaf2D
void GenerateDualCornerFromLeaf2D(vtkHyperTreeGridCursor *)
Process leaf cell and issue corresponding dual corner point in 2D.
vtkHyperTreeGrid::HasMaterialMask
bool HasMaterialMask()
Determine whether blanking mask is empty or not.
vtkBoundingBox
Fast Simple Class for dealing with 3D bounds.
Definition: vtkBoundingBox.h:36
vtkHyperTreeGrid::~vtkHyperTreeGrid
~vtkHyperTreeGrid() override
Destructor.
vtkHyperTreeGrid::NumberOfChildren
unsigned int NumberOfChildren
Definition: vtkHyperTreeGrid.h:719
vtkHyperTreeGrid::GetData
static vtkHyperTreeGrid * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
vtkHyperTreeGrid::GetMaxCellSize
int GetMaxCellSize() override
Convenience method to return largest cell size in dataset.
vtkHyperTreeGrid::GetNumberOfLeaves
vtkIdType GetNumberOfLeaves()
Get the number of leaves in the primal tree grid.
vtkCollection
create and manipulate ordered lists of objects
Definition: vtkCollection.h:52
vtkHyperTreeGrid::DeepCopyCursors
void DeepCopyCursors(vtkHyperTreeCursor *, vtkHyperTreeCursor *)
Perform left to right deep copy of hyper tree cursors.
vtkHyperTreeGrid::GetCellNeighbors
void GetCellNeighbors(vtkIdType, vtkIdList *, vtkIdList *) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::GetCellPoints
void GetCellPoints(vtkIdType, vtkIdList *) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::SetYCoordinates
void SetYCoordinates(vtkDataArray *)
Set/Get the grid coordinates in the y-direction.
vtkHyperTreeGrid::Pixel
vtkPixel * Pixel
Definition: vtkHyperTreeGrid.h:838
vtkHyperTreeGrid::XCoordinates
vtkDataArray * XCoordinates
Definition: vtkHyperTreeGrid.h:731
vtkCell
abstract class to specify cell behavior
Definition: vtkCell.h:60
vtkHyperTreeCursor
Objects for depth-first traversal HyperTrees.
Definition: vtkHyperTreeCursor.h:43
vtkInformationIntegerKey
Key for integer values in vtkInformation.
Definition: vtkInformationIntegerKey.h:35
vtkHyperTreeGrid::HyperTrees
std::map< vtkIdType, vtkHyperTree * > HyperTrees
Definition: vtkHyperTreeGrid.h:735
vtkHyperTreeGrid::GetPoint
void GetPoint(vtkIdType, double[3]) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::BuildLinks
void BuildLinks()
vtkHyperTreeGrid::GetIndexFromLevelZeroCoordinates
void GetIndexFromLevelZeroCoordinates(vtkIdType &, unsigned int, unsigned int, unsigned int)
Convert the Cartesian coordinates of a root in the grid to its global index.
vtkHyperTreeGrid::GetPoint
double * GetPoint(vtkIdType) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::SetZCoordinates
void SetZCoordinates(vtkDataArray *)
Set/Get the grid coordinates in the z-direction.
vtkHyperTreeGrid::CopyStructure
void CopyStructure(vtkDataSet *) override
Copy the internal geometric and topological structure of a vtkHyperTreeGrid object.
vtkHyperTreeGrid::GenerateDualCornerFromLeaf1D
void GenerateDualCornerFromLeaf1D(vtkHyperTreeGridCursor *)
Process leaf cell and issue corresponding dual corner point in 1D.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkHyperTreeGrid::SetGridExtent
void SetGridExtent(int extent[6])
Set/Get extent of the underlying rectilinear grid dataset.
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:37
vtkHyperTreeGrid::SetGridSize
void SetGridSize(unsigned int[3])
Set/Get the number of local cells in each direction for the underlying rectilinear grid dataset.
vtkHyperTreeGrid::GetNumberOfTrees
vtkIdType GetNumberOfTrees()
Return the number of trees in the level 0 grid.
vtkHyperTree
An object structured as a tree where each node has exactly either 2^d or 3^d children.
Definition: vtkHyperTree.h:143
vtkHyperTreeGrid::GenerateDualCornerFromLeaf1D
void GenerateDualCornerFromLeaf1D(vtkHyperTreeGridCursor *, vtkBitArray *)
Process leaf cell and issue corresponding dual corner point in 1D, when a mask array is present.
vtkHyperTreeGrid::GetCell
vtkCell * GetCell(int i, int j, int k) override
Overridden so as no not unintentionally hide parent class.
Definition: vtkHyperTreeGrid.h:354
vtkHyperTreeGrid::NewVonNeumannSuperCursor
vtkHyperTreeGridCursor * NewVonNeumannSuperCursor(vtkIdType, bool create=false)
Create a new hyper tree grid Von Neumann super cursor: an object that can traverse the cells of a hyp...
vtkHyperTreeGrid::SetXCoordinates
void SetXCoordinates(vtkDataArray *)
Set/Get the grid coordinates in the x-direction.
vtkHyperTreeGrid::GetCellPoints
void GetCellPoints(vtkIdType, vtkIdType &, vtkIdType *&)
Return a pointer to a list of point ids defining cell.
vtkHyperTreeGrid::SetGridExtent
void SetGridExtent(int, int, int, int, int, int)
vtkHyperTreeGrid::GetCellType
int GetCellType(vtkIdType) override
All cell types are 2: quadrilaters,3d: hexahedrons.
vtkHyperTreeGrid::PureMaterialMask
vtkBitArray * PureMaterialMask
Definition: vtkHyperTreeGrid.h:723
vtkHyperTreeGrid::FindPoint
vtkIdType FindPoint(double x[3]) override
Find cell to which this point belongs, or at least closest one, even if the point is outside the grid...
vtkDataSet.h
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:87
vtkHyperTreeGrid::HasInterface
bool HasInterface
Definition: vtkHyperTreeGrid.h:727
vtkHyperTreeGrid::RecursivelyInitializePureMaterialMask
bool RecursivelyInitializePureMaterialMask(vtkHyperTreeGridCursor *cursor)
Recursively initialize pure material mask.
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkHyperTreeGrid::GenerateDualCornerFromLeaf3D
void GenerateDualCornerFromLeaf3D(vtkHyperTreeGridCursor *)
Process leaf cell and issue corresponding dual corner point in 3D.
vtkHyperTreeGrid::InitializeTreeIterator
void InitializeTreeIterator(vtkHyperTreeGridIterator &)
Initialize an iterator to browse level 0 trees.
vtkHyperTreeGrid::GetPureMaterialMask
vtkBitArray * GetPureMaterialMask()
Get or create pure material mask.
vtkHyperTreeGrid::ResetDual
void ResetDual()
Reset dual mesh.
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:42
vtkHyperTreeGrid::SetMaterialMaskIndex
virtual void SetMaterialMaskIndex(vtkIdTypeArray *)
Set/Get the visibility mask of primal leaf cells.
vtkHyperTreeGrid::Voxel
vtkVoxel * Voxel
Definition: vtkHyperTreeGrid.h:839
vtkPixel
a cell that represents an orthogonal quadrilateral
Definition: vtkPixel.h:41
vtkInformationDoubleVectorKey
Key for double vector values.
Definition: vtkInformationDoubleVectorKey.h:35
vtkHyperTreeGrid::InterfaceInterceptsName
char * InterfaceInterceptsName
Definition: vtkHyperTreeGrid.h:729
vtkHyperTreeGrid::ComputeDualGrid
void ComputeDualGrid()
Traverse tree with 3x3x3 super cursor.
vtkHyperTreeGrid::MaterialMaskIndex
vtkIdTypeArray * MaterialMaskIndex
Definition: vtkHyperTreeGrid.h:724
vtkHyperTreeGrid::vtkHyperTreeGrid
vtkHyperTreeGrid()
Constructor with default bounds (0,1, 0,1, 0,1).
vtkHyperTreeGrid::NewMooreSuperCursor
vtkHyperTreeGridCursor * NewMooreSuperCursor(vtkIdType, bool create=false)
Create a new hyper tree grid Moore super cursor: an object that can traverse the cells of a hyper tre...
vtkGenericCell
provides thread-safe access to cells
Definition: vtkGenericCell.h:40
vtkHyperTreeGrid::New
static vtkHyperTreeGrid * New()
vtkHyperTreeGrid::NewGridCursor
vtkHyperTreeGridCursor * NewGridCursor(vtkIdType, bool create=false)
Create a new hyper tree grid cursor: an object that can traverse the cells of a hyper tree grid,...
vtkHyperTreeGrid::SubdivideLeaf
void SubdivideLeaf(vtkHyperTreeCursor *, vtkIdType)
Subdivide node pointed by cursor, only if its a leaf.
vtkHyperTreeGrid::GetData
static vtkHyperTreeGrid * GetData(vtkInformationVector *v, int i=0)
vtkHyperTreeGrid::DIMENSION
static vtkInformationIntegerKey * DIMENSION()
vtkHyperTreeGrid::SetGridSize
void SetGridSize(unsigned int, unsigned int, unsigned int)
vtkBitArray
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:37
vtkHyperTreeGrid::GetNumberOfCells
vtkIdType GetNumberOfCells() override
Return the number of cells in the dual grid.
vtkHyperTreeGrid::GenerateDualCornerFromLeaf2D
void GenerateDualCornerFromLeaf2D(vtkHyperTreeGridCursor *, vtkBitArray *)
Process leaf cell and issue corresponding dual corner point in 2D, when a mask array is present.
vtkHyperTreeGrid::vtkHyperTreeGridIterator::Tree
vtkHyperTreeGrid * Tree
Definition: vtkHyperTreeGrid.h:679
vtkX3D::extent
@ extent
Definition: vtkX3D.h:345
vtkHyperTreeGrid::ShallowCopy
void ShallowCopy(vtkDataObject *) override
Create shallow copy of hyper tree grid.
vtkHyperTreeGrid::vtkHyperTreeGridIterator::GetNextTree
vtkHyperTree * GetNextTree()
Get the next tree and set its index then increment the iterator.
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkHyperTreeGrid::SIZES
static vtkInformationDoubleVectorKey * SIZES()
vtkHyperTreeGrid::PrintSelf
void PrintSelf(ostream &, vtkIndent) override
Methods invoked by print to print information about the object including superclasses.
vtkX3D::index
@ index
Definition: vtkX3D.h:246
vtkHyperTreeGrid::YCoordinates
vtkDataArray * YCoordinates
Definition: vtkHyperTreeGrid.h:732
vtkHyperTreeGrid::Orientation
unsigned int Orientation
Definition: vtkHyperTreeGrid.h:716
vtkHyperTreeGrid::GetCell
vtkCell * GetCell(vtkIdType) override
This method should be avoided in favor of cell/point iterators.
vtkHyperTreeGrid::ShiftDualCornerFromMaskedLeaf3D
void ShiftDualCornerFromMaskedLeaf3D(vtkHyperTreeGridCursor *, vtkBitArray *)
Compute appropriate shifts for dual corners of masked cells in 3D.
vtkHyperTreeGrid::PointShifted
std::map< vtkIdType, bool > PointShifted
Definition: vtkHyperTreeGrid.h:739
vtkHyperTreeGrid::GetDataObjectType
int GetDataObjectType() override
Return what type of dataset this is.
vtkHyperTreeGrid
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
Definition: vtkHyperTreeGrid.h:71
vtkHyperTreeGrid::Initialize
void Initialize() override
Restore data object to initial state.
vtkHyperTreeGrid::ComputeBounds
void ComputeBounds() override
Compute the data bounding box from data points.
vtkHyperTreeGrid::SetIndexingModeToIJK
void SetIndexingModeToIJK()
Definition: vtkHyperTreeGrid.h:125
vtkHyperTreeGrid::GenerateTrees
virtual void GenerateTrees()
This method must be called once the tree settings change.
vtkVoxel
a cell that represents a 3D orthogonal parallelepiped
Definition: vtkVoxel.h:45