VTK  9.7.1
vtkHyperTreeGridNonOrientedCursor.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
31 #ifndef vtkHyperTreeGridNonOrientedCursor_h
32 #define vtkHyperTreeGridNonOrientedCursor_h
33 
34 #include "vtkCommonDataModelModule.h" // For export macro
35 #include "vtkObject.h"
36 
37 #include <vector> // For std::vector
38 
39 VTK_ABI_NAMESPACE_BEGIN
40 class vtkHyperTree;
41 class vtkHyperTreeGrid;
43 
44 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGridNonOrientedCursor : public vtkObject
45 {
46 public:
48  void PrintSelf(ostream& os, vtkIndent indent) override;
50 
57 
63  vtkHyperTreeGridNonOrientedCursor* CloneFromCurrentEntry();
64 
68  void Initialize(vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create = false);
69 
73  void Initialize(
74  vtkHyperTreeGrid* grid, vtkHyperTree* tree, unsigned int level, vtkHyperTreeGridEntry& entry);
75 
79  void Initialize(vtkHyperTreeGrid* grid, vtkHyperTree* tree, unsigned int level, vtkIdType index);
80 
82 
85  vtkHyperTreeGrid* GetGrid();
87 
89 
92  bool HasTree() const;
94 
96 
99  vtkHyperTree* GetTree() const;
101 
105  vtkIdType GetVertexId();
106 
111  vtkIdType GetGlobalNodeIndex();
112 
117  unsigned char GetDimension();
118 
123  unsigned char GetNumberOfChildren();
124 
125  void SetGlobalIndexStart(vtkIdType index);
126 
127  void SetGlobalIndexFromLocal(vtkIdType index);
128 
133  void SetMask(bool state);
134 
138  bool IsMasked();
139 
143  bool IsLeaf();
144 
145  void SubdivideLeaf();
146 
150  bool IsRoot();
151 
155  unsigned int GetLevel();
156 
164  void ToChild(unsigned char ichild);
165 
171  void ToRoot();
172 
178  void ToParent();
179 
180 protected:
185 
190 
195 
197  unsigned int Level;
199 
203  std::vector<vtkHyperTreeGridEntry> Entries;
204 
205 private:
207  void operator=(const vtkHyperTreeGridNonOrientedCursor&) = delete;
208 };
209 VTK_ABI_NAMESPACE_END
210 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkHyperTreeGrid * Grid
Reference to the HTG currently processed.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
int vtkIdType
Definition: vtkType.h:363
Objects for traversal a HyperTreeGrid.
a simple class to control print indentation
Definition: vtkIndent.h:28
Entries are cache data for cursors.
A data object structured as a tree.
Definition: vtkHyperTree.h:170
bool HasTree(const T &e)
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
std::vector< vtkHyperTreeGridEntry > Entries
Hyper tree grid to which the cursor is attached.