VTK
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkHyperTreeGrid Class Reference

A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid. More...

#include <vtkHyperTreeGrid.h>

Inheritance diagram for vtkHyperTreeGrid:
Inheritance graph
[legend]
Collaboration diagram for vtkHyperTreeGrid:
Collaboration graph
[legend]

List of all members.

Classes

struct  vtkHyperTreeGridSuperCursor
class  vtkHyperTreeIterator
class  vtkHyperTreeSimpleCursor
struct  vtkSuperCursorEntry

Public Types

typedef vtkDataSet Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkHyperTreeGridNewInstance () const
void PrintSelf (ostream &, vtkIndent)
int GetDataObjectType ()
void CopyStructure (vtkDataSet *)
vtkIdType GetNumberOfCells ()
vtkIdType GetNumberOfPoints ()
vtkIdType GetNumberOfLeaves ()
vtkIdType GetNumberOfLevels (vtkIdType)
vtkIdType GetNumberOfTrees ()
virtual void GenerateTrees ()
vtkHyperTreeCursorNewCursor (vtkIdType)
void SubdivideLeaf (vtkHyperTreeCursor *, vtkIdType)
virtual doubleGetPoint (vtkIdType)
virtual void GetPoint (vtkIdType, double[3])
virtual vtkCellGetCell (vtkIdType)
virtual void GetCell (vtkIdType, vtkGenericCell *)
virtual int GetCellType (vtkIdType)
virtual void GetCellPoints (vtkIdType, vtkIdList *)
virtual void GetCellPoints (vtkIdType, vtkIdType &, vtkIdType *&)
virtual void GetPointCells (vtkIdType, vtkIdList *)
virtual void GetCellNeighbors (vtkIdType, vtkIdList *, vtkIdList *)
virtual vtkIdType FindPoint (double x[3])
void Initialize ()
void InitializeTreeIterator (vtkHyperTreeIterator &)
virtual int GetMaxCellSize ()
unsigned long GetActualMemorySize ()
void GenerateSuperCursorTraversalTable ()
void SetGridSize (unsigned int[3])
virtual unsigned intGetGridSize ()
virtual void GetGridSize (unsigned int &, unsigned int &, unsigned int &)
virtual void GetGridSize (unsigned int[3])
virtual void SetTransposedRootIndexing (bool)
virtual bool GetTransposedRootIndexing ()
void SetIndexingModeToKJI ()
void SetIndexingModeToIJK ()
void SetBranchFactor (unsigned int)
virtual unsigned int GetBranchFactor ()
void SetDimension (unsigned int)
virtual unsigned int GetDimension ()
void SetXCoordinates (vtkDataArray *)
virtual vtkDataArrayGetXCoordinates ()
void SetYCoordinates (vtkDataArray *)
virtual vtkDataArrayGetYCoordinates ()
void SetZCoordinates (vtkDataArray *)
virtual vtkDataArrayGetZCoordinates ()
void SetMaterialMask (vtkBitArray *)
virtual vtkBitArrayGetMaterialMask ()
virtual void SetMaterialMaskIndex (vtkIdTypeArray *)
virtual vtkIdTypeArrayGetMaterialMaskIndex ()
virtual vtkIdType FindCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
virtual vtkIdType FindCell (double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
void ShallowCopy (vtkDataObject *)
void DeepCopy (vtkDataObject *)
void InitializeSuperCursor (vtkHyperTreeGridSuperCursor *, unsigned int, unsigned int, unsigned int, vtkIdType)
void InitializeSuperCursor (vtkHyperTreeGridSuperCursor *, vtkIdType)
void InitializeSuperCursorChild (vtkHyperTreeGridSuperCursor *parent, vtkHyperTreeGridSuperCursor *child, unsigned int childIdx)
virtual unsigned int GetNumberOfChildren ()
void GetLevelZeroCoordsFromIndex (vtkIdType index, unsigned int &i, unsigned int &j, unsigned int &k)

Static Public Member Functions

static vtkInformationIntegerKeyLEVELS ()
static vtkInformationIntegerKeyDIMENSION ()
static
vtkInformationDoubleVectorKey
SIZES ()
static vtkHyperTreeGridNew ()
static int IsTypeOf (const char *type)
static vtkHyperTreeGridSafeDownCast (vtkObjectBase *o)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkHyperTreeGrid ()
 ~vtkHyperTreeGrid ()
void ComputeBounds ()
void GetCell (vtkIdType, vtkCell *)
void ComputeDualGrid ()
vtkPointsGetPoints ()
vtkIdTypeArrayGetConnectivity ()
void DeleteInternalArrays ()
void DeleteTrees ()
void TraverseDualRecursively (vtkHyperTreeGridSuperCursor *, unsigned int)
void TraverseDualMaskedLeaf (vtkHyperTreeGridSuperCursor *)
void TraverseDualLeaf (vtkHyperTreeGridSuperCursor *)
void EvaluateDualCorner (vtkHyperTreeSimpleCursor *)
void BuildLinks ()
vtkIdType RecursiveFindPoint (double x[3], vtkHyperTreeSimpleCursor *cursor, double *origin, double *size)

Protected Attributes

unsigned int Dimension
unsigned int GridSize [3]
unsigned int BranchFactor
unsigned int NumberOfChildren
bool TransposedRootIndexing
vtkBitArrayMaterialMask
vtkIdTypeArrayMaterialMaskIndex
vtkDataArrayXCoordinates
vtkDataArrayYCoordinates
vtkDataArrayZCoordinates
std::map< vtkIdType,
vtkHyperTree * > 
HyperTrees
vtkPointsPoints
vtkIdTypeArrayConnectivity
std::map< vtkIdType, bool > PointShifted
std::map< vtkIdType, doublePointShifts [3]
std::map< vtkIdType, doubleReductionFactors
vtkSuperCursorEntry SuperCursorTraversalTable [27 *27]
vtkLineLine
vtkPixelPixel
vtkVoxelVoxel
vtkCellLinksLinks

Detailed Description

A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.

An hypertree grid is a dataset containing a rectilinear grid of root nodes, each of which can be refined as a vtkHyperTree grid. This organization of the root nodes allows for the definition of tree-based AMR grids that do not have uniform geometry. Some filters can be applied on this dataset: contour, outline, geometry.

Warning:
It is not a spatial search object. If you are looking for this kind of octree see vtkCellLocator instead.
See also:
vtkHyperTree vtkRectilinearGrid
Thanks:
This class was written by Philippe Pebay, Joachim Pouderoux and Charles Law, Kitware 2013 This work was supported in part by Commissariat a l'Energie Atomique (CEA/DIF)
Examples:
vtkHyperTreeGrid (Examples)
Tests:
vtkHyperTreeGrid (Tests)

Definition at line 66 of file vtkHyperTreeGrid.h.


Member Typedef Documentation

Reimplemented from vtkDataSet.

Definition at line 80 of file vtkHyperTreeGrid.h.


Constructor & Destructor Documentation


Member Function Documentation

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkDataObject.

static int vtkHyperTreeGrid::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSet.

virtual int vtkHyperTreeGrid::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDataSet.

Reimplemented from vtkDataSet.

virtual vtkObjectBase* vtkHyperTreeGrid::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkDataSet.

Reimplemented from vtkDataSet.

void vtkHyperTreeGrid::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkDataSet.

Return what type of dataset this is.

Reimplemented from vtkDataSet.

Copy the internal geometric and topological structure of a vtkHyperTreeGrid object.

Implements vtkDataSet.

void vtkHyperTreeGrid::SetGridSize ( unsigned  int[3])

Set/Get sizes of this rectilinear grid dataset

virtual unsigned int* vtkHyperTreeGrid::GetGridSize ( ) [virtual]

Set/Get sizes of this rectilinear grid dataset

virtual void vtkHyperTreeGrid::GetGridSize ( unsigned int ,
unsigned int ,
unsigned int  
) [virtual]

Set/Get sizes of this rectilinear grid dataset

virtual void vtkHyperTreeGrid::GetGridSize ( unsigned  int[3]) [virtual]

Set/Get sizes of this rectilinear grid dataset

virtual void vtkHyperTreeGrid::SetTransposedRootIndexing ( bool  ) [virtual]

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

virtual bool vtkHyperTreeGrid::GetTransposedRootIndexing ( ) [virtual]

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

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

Definition at line 102 of file vtkHyperTreeGrid.h.

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

Definition at line 104 of file vtkHyperTreeGrid.h.

void vtkHyperTreeGrid::SetBranchFactor ( unsigned  int)

Set/Get the subdivision factor in the grid refinement scheme NB: Can only be 2 or 3

virtual unsigned int vtkHyperTreeGrid::GetBranchFactor ( ) [virtual]

Set/Get the subdivision factor in the grid refinement scheme NB: Can only be 2 or 3

void vtkHyperTreeGrid::SetDimension ( unsigned  int)

Set/Get the dimensionality of the grid NB: Can only be 1, 2 or 3

virtual unsigned int vtkHyperTreeGrid::GetDimension ( ) [virtual]

Set/Get the dimensionality of the grid NB: Can only be 1, 2 or 3

Return the number of cells in the dual grid.

Implements vtkDataSet.

Return the number of points in the dual grid.

Implements vtkDataSet.

Get the number of leaves in the primal tree grid.

Return the number of levels in an individual (primal) tree

Return the number of trees in the level 0 grid.

Specify the grid coordinates in the x-direction.

Specify the grid coordinates in the x-direction.

Specify the grid coordinates in the y-direction.

Specify the grid coordinates in the y-direction.

Specify the grid coordinates in the z-direction.

Specify the grid coordinates in the z-direction.

Specify the blanking mask of primal leaf cells

Specify the blanking mask of primal leaf cells

Specify the visibility mask of primal leaf cells

Specify the visibility mask of primal leaf cells

virtual void vtkHyperTreeGrid::GenerateTrees ( ) [virtual]

This method must be called once the tree settings change

Create a new cursor: an object that can traverse the cells of an individual hyper tree.

Postcondition:
result_exists: result!=0

Subdivide node pointed by cursor, only if its a leaf. At the end, cursor points on the node that used to be leaf.

Precondition:
leaf_exists: leaf!=0
is_a_leaf: leaf->CurrentIsLeaf()
virtual double* vtkHyperTreeGrid::GetPoint ( vtkIdType  ) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to points requires that arrays are created explicitly. Get point coordinates with ptId such that: 0 <= ptId < NumberOfPoints. THIS METHOD IS NOT THREAD SAFE.

Implements vtkDataSet.

virtual void vtkHyperTreeGrid::GetPoint ( vtkIdType  ,
double  [3] 
) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to points requires that arrays are created explicitly. Copy point coordinates into user provided array x[3] for specified point id. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Reimplemented from vtkDataSet.

virtual vtkCell* vtkHyperTreeGrid::GetCell ( vtkIdType  ) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to cells requires that connectivity arrays are created explicitly. Get cell with cellId such that: 0 <= cellId < NumberOfCells. THIS METHOD IS NOT THREAD SAFE.

Implements vtkDataSet.

virtual void vtkHyperTreeGrid::GetCell ( vtkIdType  ,
vtkGenericCell  
) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to cells requires that connectivity arrays are created explicitly. Get cell with cellId such that: 0 <= cellId < NumberOfCells. This is a thread-safe alternative to the previous GetCell() method. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implements vtkDataSet.

virtual int vtkHyperTreeGrid::GetCellType ( vtkIdType  ) [virtual]

All cell types are 2: quadrilaters,3d: hexahedrons. They may be degenerate though. Get type of cell with cellId such that: 0 <= cellId < NumberOfCells. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implements vtkDataSet.

virtual void vtkHyperTreeGrid::GetCellPoints ( vtkIdType  ,
vtkIdList  
) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to cells requires that connectivity arrays are created explicitly. Topological inquiry to get points defining cell. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implements vtkDataSet.

virtual void vtkHyperTreeGrid::GetCellPoints ( vtkIdType  ,
vtkIdType ,
vtkIdType *&   
) [virtual]

Return a pointer to a list of point ids defining cell. NB: More efficient than alternative method.

virtual void vtkHyperTreeGrid::GetPointCells ( vtkIdType  ,
vtkIdList  
) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to cells requires that connectivity arrays are created explicitly. Topological inquiry to get cells using point. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implements vtkDataSet.

virtual void vtkHyperTreeGrid::GetCellNeighbors ( vtkIdType  ,
vtkIdList ,
vtkIdList  
) [virtual]

This method should be avoided in favor of cell/point iterators. Random access to cells requires that connectivity arrays are created explicitly. Topological inquiry to get all cells using list of points exclusive of cell specified (e.g., cellId). Note that the list consists of only cells that use ALL the points provided. This is exactly the same as GetCellNeighbors in unstructured grid. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Reimplemented from vtkDataSet.

virtual vtkIdType vtkHyperTreeGrid::FindPoint ( double  x[3]) [virtual]

Find cell to which this point belongs, or at least closest one, even if the point is outside the grid. Since dual points are leaves, use the structure of the Tree instead of a point locator.

Implements vtkDataSet.

virtual vtkIdType vtkHyperTreeGrid::FindCell ( double  x[3],
vtkCell cell,
vtkIdType  cellId,
double  tol2,
int subId,
double  pcoords[3],
double weights 
) [virtual]

Locate cell based on global coordinate x and tolerance squared. If cell and cellId is non-NULL, then search starts from this cell and looks at immediate neighbors. Returns cellId >= 0 if inside, < 0 otherwise. The parametric coordinates are provided in pcoords[3]. The interpolation weights are returned in weights[]. (The number of weights is equal to the number of points in the found cell). Tolerance is used to control how close the point is to be considered "in" the cell. NB: There is actually no need for a starting cell, just use the point, as the tree structure is efficient enough. THIS METHOD IS NOT THREAD SAFE.

Implements vtkDataSet.

virtual vtkIdType vtkHyperTreeGrid::FindCell ( double  x[3],
vtkCell cell,
vtkGenericCell gencell,
vtkIdType  cellId,
double  tol2,
int subId,
double  pcoords[3],
double weights 
) [virtual]

This is a version of the above method that can be used with multithreaded applications. A vtkGenericCell must be passed in to be used in internal calls that might be made to GetCell() THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implements vtkDataSet.

void vtkHyperTreeGrid::Initialize ( ) [virtual]

Restore data object to initial state, THIS METHOD IS NOT THREAD SAFE.

Reimplemented from vtkDataSet.

Initialize an iterator to browse level 0 trees.

virtual int vtkHyperTreeGrid::GetMaxCellSize ( ) [virtual]

Convenience method returns largest cell size in dataset. This is generally used to allocate memory for supporting data structures. This is the number of points of a cell. THIS METHOD IS THREAD SAFE

Implements vtkDataSet.

Shallow and Deep copy.

Reimplemented from vtkDataSet.

void vtkHyperTreeGrid::DeepCopy ( vtkDataObject ) [virtual]

Shallow and Deep copy.

Reimplemented from vtkDataSet.

unsigned long vtkHyperTreeGrid::GetActualMemorySize ( ) [virtual]

Return the actual size of the data in kilobytes. This number is valid only after the pipeline has updated. The memory size returned is guaranteed to be greater than or equal to the memory required to represent the data (e.g., extra space in arrays, etc. are not included in the return value). THIS METHOD IS THREAD SAFE.

Reimplemented from vtkDataSet.

Generate the table before calling InitializeSuperCursorChild.

void vtkHyperTreeGrid::InitializeSuperCursor ( vtkHyperTreeGridSuperCursor ,
unsigned  int,
unsigned  int,
unsigned  int,
vtkIdType   
)

Initialize a super cursor to point to one of the root trees in the grid. The super cursor points to a node in a tree and also keeps pointers to the 26 neighbors of said node.

Initialize a super cursor to point to one of the root trees in the grid. The super cursor points to a node in a tree and also keeps pointers to the 26 neighbors of said node.

Initialize a cursor to point to a child of an existing super cursor. This will not work in place.

virtual unsigned int vtkHyperTreeGrid::GetNumberOfChildren ( ) [virtual]

The number of children each node can have.

void vtkHyperTreeGrid::GetLevelZeroCoordsFromIndex ( vtkIdType  index,
unsigned int i,
unsigned int j,
unsigned int k 
)

Convert a level 0 index to its ijk coordinates according the grid size.

void vtkHyperTreeGrid::ComputeBounds ( ) [protected, virtual]

Compute the data bounding box from data points. THIS METHOD IS NOT THREAD SAFE.

Reimplemented from vtkDataSet.

void vtkHyperTreeGrid::GetCell ( vtkIdType  ,
vtkCell  
) [protected]
void vtkHyperTreeGrid::ComputeDualGrid ( ) [protected]
void vtkHyperTreeGrid::DeleteTrees ( ) [protected]
void vtkHyperTreeGrid::TraverseDualRecursively ( vtkHyperTreeGridSuperCursor ,
unsigned  int 
) [protected]
void vtkHyperTreeGrid::BuildLinks ( ) [protected]
vtkIdType vtkHyperTreeGrid::RecursiveFindPoint ( double  x[3],
vtkHyperTreeSimpleCursor cursor,
double origin,
double size 
) [protected]

Member Data Documentation

unsigned int vtkHyperTreeGrid::Dimension [protected]

Definition at line 350 of file vtkHyperTreeGrid.h.

unsigned int vtkHyperTreeGrid::GridSize[3] [protected]

Definition at line 351 of file vtkHyperTreeGrid.h.

unsigned int vtkHyperTreeGrid::BranchFactor [protected]

Definition at line 352 of file vtkHyperTreeGrid.h.

Definition at line 353 of file vtkHyperTreeGrid.h.

Definition at line 354 of file vtkHyperTreeGrid.h.

Definition at line 356 of file vtkHyperTreeGrid.h.

Definition at line 357 of file vtkHyperTreeGrid.h.

Definition at line 359 of file vtkHyperTreeGrid.h.

Definition at line 360 of file vtkHyperTreeGrid.h.

Definition at line 361 of file vtkHyperTreeGrid.h.

Definition at line 363 of file vtkHyperTreeGrid.h.

Definition at line 365 of file vtkHyperTreeGrid.h.

Definition at line 366 of file vtkHyperTreeGrid.h.

std::map<vtkIdType, bool> vtkHyperTreeGrid::PointShifted [protected]

Definition at line 367 of file vtkHyperTreeGrid.h.

std::map<vtkIdType, double> vtkHyperTreeGrid::PointShifts[3] [protected]

Definition at line 368 of file vtkHyperTreeGrid.h.

Definition at line 369 of file vtkHyperTreeGrid.h.

Definition at line 400 of file vtkHyperTreeGrid.h.

Definition at line 403 of file vtkHyperTreeGrid.h.

Definition at line 404 of file vtkHyperTreeGrid.h.

Definition at line 405 of file vtkHyperTreeGrid.h.

Definition at line 409 of file vtkHyperTreeGrid.h.


The documentation for this class was generated from the following file: