VTK: vtkHyperTreeGridEntry Class Reference

| VTK 9.3.1

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 (vtkIdType index)
| Constructor. More...
| ~vtkHyperTreeGridEntry ()=default
| Destructor. More...
vtkHyperTree * | Initialize (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 childrens 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/2]

vtkHyperTreeGridEntry::vtkHyperTreeGridEntry | ( |  | ) |
| inline

Constructor.

Definition at line 77 of file vtkHyperTreeGridEntry.h.

## ◆ vtkHyperTreeGridEntry() [2/2]

vtkHyperTreeGridEntry::vtkHyperTreeGridEntry | ( | vtkIdType | index | ) |
| inline

Constructor.

Definition at line 82 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.

## ◆ 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 97 of file vtkHyperTreeGridEntry.h.

## ◆ Copy()

void vtkHyperTreeGridEntry::Copy | ( | const vtkHyperTreeGridEntry * | entry | ) |
| inline

Copy function.

Definition at line 102 of file vtkHyperTreeGridEntry.h.

## ◆ GetVertexId()

vtkIdType vtkHyperTreeGridEntry::GetVertexId | ( |  | ) | const
| inline

Return the index of the current vertex in the tree.

Definition at line 107 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 childrens being leaves?

Precondition
  not_tree: tree

## ◆ IsRoot()

bool vtkHyperTreeGridEntry::IsRoot | ( |  | ) | const
| inline

Is the cursor at HyperTree root?

Definition at line 165 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 182 of file vtkHyperTreeGridEntry.h.

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

- Common/DataModel/vtkHyperTreeGridEntry.h