VTK  9.1.0
vtkHyperTreeGridLevelEntry.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperTreeGridLevelEntry.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 =========================================================================*/
36 #ifndef vtkHyperTreeGridLevelEntry_h
37 #define vtkHyperTreeGridLevelEntry_h
38 
39 #ifndef __VTK_WRAP__
40 
41 #include "vtkObject.h"
42 #include "vtkSmartPointer.h" // Used internally
43 
44 class vtkHyperTree;
45 class vtkHyperTreeGrid;
47 
49 {
50 public:
54  void PrintSelf(ostream& os, vtkIndent indent);
55 
59  void Dump(ostream& os);
60 
65  : Tree(nullptr)
66  , Level(0)
67  , Index(0)
68  {
69  }
70 
75  : Tree(entry->Tree)
76  , Level(entry->Level)
77  , Index(entry->Index)
78  {
79  }
80 
85  : Tree(tree)
86  , Level(level)
87  , Index(index)
88  {
89  }
90 
94  vtkHyperTreeGridLevelEntry(vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create = false);
95 
100 
104  void Reset()
105  {
106  this->Tree = nullptr;
107  this->Level = 0;
108  this->Index = 0;
109  }
110 
114  void Initialize(vtkHyperTree* tree, unsigned int level, vtkIdType index)
115  {
116  this->Tree = tree;
117  this->Level = level;
118  this->Index = index;
119  }
120 
124  vtkHyperTree* Initialize(vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create = false);
125 
129  void Copy(const vtkHyperTreeGridLevelEntry* entry)
130  {
131  this->Tree = entry->Tree;
132  this->Level = entry->Level;
133  this->Index = entry->Index;
134  }
135 
141  vtkHyperTreeGrid* grid);
142 
146  vtkIdType GetVertexId() const { return this->Index; }
147 
153 
159 
165 
170  void SetMask(const vtkHyperTreeGrid* grid, bool state);
171 
176  bool IsMasked(const vtkHyperTreeGrid* grid) const;
177 
183  bool IsLeaf(const vtkHyperTreeGrid* grid) const;
184 
192  void SubdivideLeaf(const vtkHyperTreeGrid* grid);
193 
198  bool IsTerminalNode(const vtkHyperTreeGrid* grid) const;
199 
203  bool IsRoot() const { return (this->Index == 0); }
204 
213  void ToChild(const vtkHyperTreeGrid* grid, unsigned char ichild);
214 
218  vtkHyperTree* GetTree() const { return this->Tree; }
219 
223  unsigned int GetLevel() const { return this->Level; }
224 
225 protected:
230 
234  unsigned int Level;
235 
240 };
241 
242 #endif // __VTK_WRAP__
243 
244 #endif // vtkHyperTreeGridLevelEntry_h
245 // VTK-HeaderTest-Exclude: vtkHyperTreeGridLevelEntry.h
LevelEntry is a cache data for cursors requiring level info.
bool IsLeaf(const vtkHyperTreeGrid *grid) const
Is the cursor pointing to a leaf?
~vtkHyperTreeGridLevelEntry()=default
Destructor.
bool IsMasked(const vtkHyperTreeGrid *grid) const
Determine whether blanking mask is empty or not.
vtkIdType GetGlobalNodeIndex() const
Return the global index (relative to the grid) of the current vertex in the tree.
unsigned int GetLevel() const
Get level info from current cache entry.
vtkIdType GetVertexId() const
Return the index of the current vertex in the tree.
void Initialize(vtkHyperTree *tree, unsigned int level, vtkIdType index)
Initialize cursor from explicit required data.
void SetGlobalIndexStart(vtkIdType index)
Set the global index for the root cell of the HyperTree.
vtkIdType Index
index of the current cell in the HyperTree.
vtkHyperTree * Tree
pointer to the HyperTree containing the current cell.
vtkHyperTreeGridLevelEntry(vtkHyperTreeGridLevelEntry *entry)
Constructor.
bool IsRoot() const
Is the cursor at tree root?
vtkHyperTree * GetTree() const
Get HyperTree from current cache entry.
void SetMask(const vtkHyperTreeGrid *grid, bool state)
Set the blanking mask is empty or not.
void PrintSelf(ostream &os, vtkIndent indent)
Display info about the entry.
vtkHyperTreeGridLevelEntry(vtkHyperTreeGrid *grid, vtkIdType treeIndex, bool create=false)
Constructor.
void ToChild(const vtkHyperTreeGrid *grid, unsigned char ichild)
Move the cursor to child ‘child’ of the current vertex.
void SetGlobalIndexFromLocal(vtkIdType index)
Set the global index for the current cell of the HyperTree.
void Dump(ostream &os)
Dump information.
bool IsTerminalNode(const vtkHyperTreeGrid *grid) const
Is the cursor pointing to a coarse with all childrens being leaves ?
vtkHyperTreeGridLevelEntry(vtkHyperTree *tree, unsigned int level, vtkIdType index)
Constructor.
void Copy(const vtkHyperTreeGridLevelEntry *entry)
Copy function.
unsigned int Level
level of the current cell in the HyperTree.
void SubdivideLeaf(const vtkHyperTreeGrid *grid)
Change the current cell's status: if leaf then becomes coarse and all its children are created,...
vtkHyperTree * Initialize(vtkHyperTreeGrid *grid, vtkIdType treeIndex, bool create=false)
Initialize cursor at root of given tree index in grid.
vtkSmartPointer< vtkHyperTreeGridNonOrientedCursor > GetHyperTreeGridNonOrientedCursor(vtkHyperTreeGrid *grid)
Create a vtkHyperTreeGridNonOrientedCursor from input grid and current entry data.
Objects for traversal a HyperTreeGrid.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
A data object structured as a tree.
Definition: vtkHyperTree.h:177
a simple class to control print indentation
Definition: vtkIndent.h:34
Hold a reference to a vtkObjectBase instance.
@ level
Definition: vtkX3D.h:401
@ index
Definition: vtkX3D.h:252
int vtkIdType
Definition: vtkType.h:332