VTK  9.3.20240328
Public Member Functions | Protected Attributes | List of all members
vtkHyperTreeGridEntry Class Reference

Entries are cache data for cursors. More...

#include <vtkHyperTreeGridEntry.h>

Public Member Functions

void PrintSelf (ostream &os, vtkIndent indent)
 Display info about the entry. More...
 
void Dump (ostream &os)
 Dump information. More...
 
 vtkHyperTreeGridEntry ()
 Constructor. More...
 
 vtkHyperTreeGridEntry (vtkHyperTreeGridEntry const &)=default
 
vtkHyperTreeGridEntryoperator= (vtkHyperTreeGridEntry const &)=default
 
 vtkHyperTreeGridEntry (vtkIdType index)
 Constructor. More...
 
 ~vtkHyperTreeGridEntry ()=default
 Destructor. More...
 
vtkHyperTreeInitialize (vtkHyperTreeGrid *grid, vtkIdType treeIndex, bool create=false)
 Initialize cursor at root of given tree index in grid. More...
 
void Initialize (vtkIdType index)
 Initialize cursor at root of given tree index in grid. More...
 
void Copy (const vtkHyperTreeGridEntry *entry)
 Copy function. More...
 
vtkIdType GetVertexId () const
 Return the index of the current vertex in the tree. More...
 
vtkIdType GetGlobalNodeIndex (const vtkHyperTree *tree) const
 Return the global index for the current cell (cf. More...
 
void SetGlobalIndexStart (vtkHyperTree *tree, vtkIdType index)
 Set the global index for the root cell of the HyperTree. More...
 
void SetGlobalIndexFromLocal (vtkHyperTree *tree, vtkIdType index)
 Set the global index for the current cell of the HyperTree. More...
 
void SetMask (const vtkHyperTreeGrid *grid, const vtkHyperTree *tree, bool state)
 Set the blanking mask is empty or not. More...
 
bool IsMasked (const vtkHyperTreeGrid *grid, const vtkHyperTree *tree) const
 Determine whether blanking mask is empty or not. More...
 
bool IsLeaf (const vtkHyperTreeGrid *grid, const vtkHyperTree *tree, unsigned int level) const
 Is the cursor pointing to a leaf? More...
 
void SubdivideLeaf (const vtkHyperTreeGrid *grid, vtkHyperTree *tree, unsigned int level)
 Change the current cell's status: if leaf then becomes coarse and all its children are created, cf. More...
 
bool IsTerminalNode (const vtkHyperTreeGrid *grid, const vtkHyperTree *tree, unsigned int level) const
 Is the cursor pointing to a coarse with all children being leaves? More...
 
bool IsRoot () const
 Is the cursor at HyperTree root? More...
 
void ToChild (const vtkHyperTreeGrid *grid, const vtkHyperTree *tree, unsigned int level, unsigned char ichild)
 Move the cursor to i-th child of the current cell. More...
 

Protected Attributes

vtkIdType Index
 index of the current cell in the HyperTree. More...
 

Detailed Description

Entries are cache data for cursors.

Entries are relevant for cursor/supercursor developers. Filters developers should have a look at cursors/supercursors documentation. (cf. vtkHyperTreeGridNonOrientedCursor). When writing a new cursor or supercursor the choice of the entry is very important: it will drive the performance and memory cost. This is even more important for supercursors which have several neighbors: 6x for VonNeuman and 26x for Moore.

Several types of Entries exist:

  1. vtkHyperTreeGridEntry This cache only memorizes the current cell index in one HyperTree. Using the index, this entry provides several services such as: is the cell coarse or leaf, get or set global index (to access field value, cf. vtkHyperTree), descend into selected child, subdivise the cell. Equivalent services are available for all entries.
  2. vtkHyperTreeGridGeometryEntry This cache adds the origin coordinates of the cell atop vtkHyperTreeGridEntry. Getter is provided, as well as services related to the bounding box and cell center.
  3. vtkHyperTreeGridLevelEntry This cache adds the following information with their getters atop vtkHyperTreeGridEntry: pointer to the HyperTree, level of the current cell.
  4. vtkHyperTreeGridGeometryLevelEntry This cache is a combination of vtkHyperTreeGridLevelEntry and vtkHyperTreeGridLevelEntry: it provides all combined services.
See also
vtkHyperTreeGridEntry vtkHyperTreeGridLevelEntry vtkHyperTreeGridGeometryEntry vtkHyperTreeGridGeometryLevelEntry vtkHyperTreeGridOrientedCursor vtkHyperTreeGridNonOrientedCursor
Thanks:
This class was written by Jacques-Bernard Lekien, Jerome Dubois and Guenole Harel, CEA 2018. This work was supported by Commissariat a l'Energie Atomique CEA, DAM, DIF, F-91297 Arpajon, France.

Definition at line 61 of file vtkHyperTreeGridEntry.h.

Constructor & Destructor Documentation

◆ vtkHyperTreeGridEntry() [1/3]

vtkHyperTreeGridEntry::vtkHyperTreeGridEntry ( )
inline

Constructor.

Definition at line 77 of file vtkHyperTreeGridEntry.h.

◆ vtkHyperTreeGridEntry() [2/3]

vtkHyperTreeGridEntry::vtkHyperTreeGridEntry ( vtkHyperTreeGridEntry const &  )
default

◆ vtkHyperTreeGridEntry() [3/3]

vtkHyperTreeGridEntry::vtkHyperTreeGridEntry ( vtkIdType  index)
inline

Constructor.

Definition at line 85 of file vtkHyperTreeGridEntry.h.

◆ ~vtkHyperTreeGridEntry()

vtkHyperTreeGridEntry::~vtkHyperTreeGridEntry ( )
default

Destructor.

Member Function Documentation

◆ PrintSelf()

void vtkHyperTreeGridEntry::PrintSelf ( ostream &  os,
vtkIndent  indent 
)

Display info about the entry.

◆ Dump()

void vtkHyperTreeGridEntry::Dump ( ostream &  os)

Dump information.

◆ operator=()

vtkHyperTreeGridEntry& vtkHyperTreeGridEntry::operator= ( vtkHyperTreeGridEntry const &  )
default

◆ Initialize() [1/2]

vtkHyperTree* vtkHyperTreeGridEntry::Initialize ( vtkHyperTreeGrid grid,
vtkIdType  treeIndex,
bool  create = false 
)

Initialize cursor at root of given tree index in grid.

◆ Initialize() [2/2]

void vtkHyperTreeGridEntry::Initialize ( vtkIdType  index)
inline

Initialize cursor at root of given tree index in grid.

Definition at line 100 of file vtkHyperTreeGridEntry.h.

◆ Copy()

void vtkHyperTreeGridEntry::Copy ( const vtkHyperTreeGridEntry entry)
inline

Copy function.

Definition at line 105 of file vtkHyperTreeGridEntry.h.

◆ GetVertexId()

vtkIdType vtkHyperTreeGridEntry::GetVertexId ( ) const
inline

Return the index of the current vertex in the tree.

Definition at line 110 of file vtkHyperTreeGridEntry.h.

◆ GetGlobalNodeIndex()

vtkIdType vtkHyperTreeGridEntry::GetGlobalNodeIndex ( const vtkHyperTree tree) const

Return the global index for the current cell (cf.

vtkHyperTree).

Precondition
not_tree: tree

◆ SetGlobalIndexStart()

void vtkHyperTreeGridEntry::SetGlobalIndexStart ( vtkHyperTree tree,
vtkIdType  index 
)

Set the global index for the root cell of the HyperTree.

Precondition
not_tree: tree

◆ SetGlobalIndexFromLocal()

void vtkHyperTreeGridEntry::SetGlobalIndexFromLocal ( vtkHyperTree tree,
vtkIdType  index 
)

Set the global index for the current cell of the HyperTree.

Precondition
not_tree: tree

◆ SetMask()

void vtkHyperTreeGridEntry::SetMask ( const vtkHyperTreeGrid grid,
const vtkHyperTree tree,
bool  state 
)

Set the blanking mask is empty or not.

Precondition
not_tree: tree

◆ IsMasked()

bool vtkHyperTreeGridEntry::IsMasked ( const vtkHyperTreeGrid grid,
const vtkHyperTree tree 
) const

Determine whether blanking mask is empty or not.

Precondition
not_tree: tree

◆ IsLeaf()

bool vtkHyperTreeGridEntry::IsLeaf ( const vtkHyperTreeGrid grid,
const vtkHyperTree tree,
unsigned int  level 
) const

Is the cursor pointing to a leaf?

Precondition
not_tree: tree Return true if level == grid->GetDepthLimiter()

◆ SubdivideLeaf()

void vtkHyperTreeGridEntry::SubdivideLeaf ( const vtkHyperTreeGrid grid,
vtkHyperTree tree,
unsigned int  level 
)

Change the current cell's status: if leaf then becomes coarse and all its children are created, cf.

HyperTree.

Precondition
not_tree: tree
depth_limiter: level == grid->GetDepthLimiter()
is_masked: IsMasked

◆ IsTerminalNode()

bool vtkHyperTreeGridEntry::IsTerminalNode ( const vtkHyperTreeGrid grid,
const vtkHyperTree tree,
unsigned int  level 
) const

Is the cursor pointing to a coarse with all children being leaves?

Precondition
not_tree: tree

◆ IsRoot()

bool vtkHyperTreeGridEntry::IsRoot ( ) const
inline

Is the cursor at HyperTree root?

Definition at line 168 of file vtkHyperTreeGridEntry.h.

◆ ToChild()

void vtkHyperTreeGridEntry::ToChild ( const vtkHyperTreeGrid grid,
const vtkHyperTree tree,
unsigned int  level,
unsigned char  ichild 
)

Move the cursor to i-th child of the current cell.

Precondition
not_tree: tree
not_leaf: !IsLeaf()
valid_child: ichild>=0 && ichild<this->GetNumberOfChildren()
depth_limiter: level == grid->GetDepthLimiter()
is_masked: !IsMasked()

Member Data Documentation

◆ Index

vtkIdType vtkHyperTreeGridEntry::Index
protected

index of the current cell in the HyperTree.

Definition at line 185 of file vtkHyperTreeGridEntry.h.


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