VTK  9.2.6
vtkHyperTreeGridNonOrientedGeometryCursor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperTreeGridNonOrientedGeometryCursor.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 Nonice for more information.
13 
14 =========================================================================*/
42 #ifndef vtkHyperTreeGridNonOrientedGeometryCursor_h
43 #define vtkHyperTreeGridNonOrientedGeometryCursor_h
44 
45 #include "vtkCommonDataModelModule.h" // For export macro
46 #include "vtkObject.h"
47 
48 #include "vtkHyperTreeGridGeometryEntry.h" // Used internally
49 #include "vtkHyperTreeGridTools.h" // for HasTree
50 #include "vtkSmartPointer.h" // Used internally
51 #include <memory> // std::shared_ptr
52 #include <vector> // std::vector
53 
54 class vtkHyperTree;
55 class vtkHyperTreeGrid;
58 
59 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGridNonOrientedGeometryCursor : public vtkObject
60 {
61 public:
63  void PrintSelf(ostream& os, vtkIndent indent) override;
65 
66  void Dump(ostream& os);
67 
68  // JB TODO 102018 On autorise le ToParent que jusqu'à ce que Level soit celui de la creation...
69  // mais sans toRoot ? Une variante... qui serait utile aussi au niveau des SC
70 
76 
80  void Initialize(vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create = false);
81 
85  void Initialize(vtkHyperTreeGrid* grid, vtkHyperTree* tree, unsigned int level,
87 
91  void Initialize(vtkHyperTreeGrid* grid, vtkHyperTree* tree, unsigned int level, vtkIdType index,
92  double* origin);
93 
98 
100 
103  bool HasTree() const { return vtk::hypertreegrid::HasTree(*this); }
105 
107 
110  vtkHyperTree* GetTree() const { return this->Tree; }
112 
117 
123 
128  unsigned char GetDimension();
129 
134  unsigned char GetNumberOfChildren();
135 
140 
145 
149  double* GetOrigin();
150  double* GetSize();
151 
155  void GetBounds(double bounds[6]);
156  void GetPoint(double point[3]);
157 
162  void SetMask(bool state);
163 
167  bool IsMasked();
168 
172  bool IsLeaf();
173 
178 
182  bool IsRoot();
183 
187  unsigned int GetLevel();
188 
196  void ToChild(unsigned char ichild);
197 
203  void ToRoot();
204 
210  void ToParent();
211 
217  vtkHyperTreeGrid* grid);
218 
219 protected:
225 
231 
236 
241 
245  std::shared_ptr<vtkHyperTreeGridScales> Scales;
246 
250  unsigned int Level;
251 
256 
257  // Hyper tree grid to which the cursor is attached
258  std::vector<vtkHyperTreeGridGeometryEntry> Entries;
259 
260 private:
263  void operator=(const vtkHyperTreeGridNonOrientedGeometryCursor&) = delete;
264 };
265 #endif
void ToParent()
Move the cursor to the parent of the current vertex.
void SetMask(bool state)
Set the blanking mask is empty or not.
std::shared_ptr< vtkHyperTreeGridScales > Scales
JB Storage of pre-computed per-level cell scales.
vtkIdType GetVertexId()
Return the index of the current vertex in the tree.
void ToChild(unsigned char ichild)
Move the cursor to child ‘child’ of the current vertex.
unsigned char GetDimension()
Return the dimension of the tree.
bool IsRoot()
Is the cursor at tree root?
void SetGlobalIndexFromLocal(vtkIdType index)
JB.
void Initialize(vtkHyperTreeGrid *grid, vtkIdType treeIndex, bool create=false)
Initialize cursor at root of given tree index in grid.
void Initialize(vtkHyperTreeGridNonOrientedGeometryCursor *cursor)
JB.
virtual vtkHyperTreeGridNonOrientedGeometryCursor * Clone()
Create a copy of ‘this’.
vtkHyperTreeGrid * Grid
JB Reference sur l'hyper tree grid parcouru actuellement.
void Initialize(vtkHyperTreeGrid *grid, vtkHyperTree *tree, unsigned int level, vtkHyperTreeGridGeometryEntry &entry)
Initialize cursor at root of given tree index in grid.
void ToRoot()
Move the cursor to the root vertex.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkHyperTree * GetTree() const
Set the hyper tree to which the cursor is pointing.
vtkHyperTreeGridNonOrientedGeometryCursor()
Constructor JB Just pour vtkHyperTreeGridNonOrientedVonNeumannSuperCursor et Moore.
vtkSmartPointer< vtkHyperTreeGridOrientedGeometryCursor > GetHyperTreeGridOrientedGeometryCursor(vtkHyperTreeGrid *grid)
JB Create a vtkHyperTreeGridOrientedGeometryCursor from input grid and current entry data.
vtkIdType GetGlobalNodeIndex()
Return the global index (relative to the grid) of the current vertex in the tree.
void GetBounds(double bounds[6])
JB.
unsigned int GetLevel()
Get the level of the tree vertex pointed by the cursor.
bool IsMasked()
Determine whether blanking mask is empty or not.
~vtkHyperTreeGridNonOrientedGeometryCursor() override
Destructor JB Just pour vtkHyperTreeGridNonOrientedVonNeumannSuperCursor et Moore.
void SetGlobalIndexStart(vtkIdType index)
JB.
void SubdivideLeaf()
JB Fait chier normalement on devrait passer par GetEntry.
void Initialize(vtkHyperTreeGrid *grid, vtkHyperTree *tree, unsigned int level, vtkIdType index, double *origin)
JB.
bool IsLeaf()
Is the cursor pointing to a leaf?
static vtkHyperTreeGridNonOrientedGeometryCursor * New()
unsigned char GetNumberOfChildren()
Return the number of children for each node (non-vertex leaf) of the tree.
A specifalized type of vtkHyperTreeGrid for the case when root cells have uniform sizes in each direc...
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
A data object structured as a tree.
Definition: vtkHyperTree.h:180
a simple class to control print indentation
Definition: vtkIndent.h:119
abstract base class for most VTK objects
Definition: vtkObject.h:82
Hold a reference to a vtkObjectBase instance.
@ point
Definition: vtkX3D.h:242
@ level
Definition: vtkX3D.h:401
@ index
Definition: vtkX3D.h:252
bool HasTree(const T &e)
int vtkIdType
Definition: vtkType.h:332