VTK  9.1.0
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=========================================================================*/
39#ifndef vtkHyperTreeGridNonOrientedGeometryCursor_h
40#define vtkHyperTreeGridNonOrientedGeometryCursor_h
41
42#include "vtkCommonDataModelModule.h" // For export macro
43#include "vtkObject.h"
44
45#include "vtkHyperTreeGridGeometryEntry.h" // Used internally
46#include "vtkHyperTreeGridTools.h" // for HasTree
47#include "vtkSmartPointer.h" // Used internally
48#include <memory> // std::shared_ptr
49#include <vector> // std::vector
50
51class vtkHyperTree;
55
56class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGridNonOrientedGeometryCursor : public vtkObject
57{
58public:
60 void PrintSelf(ostream& os, vtkIndent indent) override;
62
63 void Dump(ostream& os);
64
65 // JB TODO 102018 On autorise le ToParent que jusqu'à ce que Level soit celui de la creation...
66 // mais sans toRoot ? Une variante... qui serait utile aussi au niveau des SC
67
73
77 void Initialize(vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create = false);
78
82 void Initialize(vtkHyperTreeGrid* grid, vtkHyperTree* tree, unsigned int level,
84
88 void Initialize(vtkHyperTreeGrid* grid, vtkHyperTree* tree, unsigned int level, vtkIdType index,
89 double* origin);
90
95
97
100 bool HasTree() const { return vtk::hypertreegrid::HasTree(*this); }
102
104
107 vtkHyperTree* GetTree() const { return this->Tree; }
109
114
120
125 unsigned char GetDimension();
126
131 unsigned char GetNumberOfChildren();
132
137
142
146 double* GetOrigin();
147 double* GetSize();
148
152 void GetBounds(double bounds[6]);
153 void GetPoint(double point[3]);
154
159 void SetMask(bool state);
160
164 bool IsMasked();
165
169 bool IsLeaf();
170
175
179 bool IsRoot();
180
184 unsigned int GetLevel();
185
193 void ToChild(unsigned char ichild);
194
200 void ToRoot();
201
207 void ToParent();
208
214 vtkHyperTreeGrid* grid);
215
216protected:
222
228
233
238
242 std::shared_ptr<vtkHyperTreeGridScales> Scales;
243
247 unsigned int Level;
248
253
254 // Hyper tree grid to which the cursor is attached
255 std::vector<vtkHyperTreeGridGeometryEntry> Entries;
256
257private:
260 void operator=(const vtkHyperTreeGridNonOrientedGeometryCursor&) = delete;
261};
262#endif
void ToParent()
Move the cursor to the parent of the current vertex.
static vtkHyperTreeGridNonOrientedGeometryCursor * New()
vtkSmartPointer< vtkHyperTreeGridOrientedGeometryCursor > GetHyperTreeGridOrientedGeometryCursor(vtkHyperTreeGrid *grid)
JB Create a vtkHyperTreeGridOrientedGeometryCursor from input grid and current entry data.
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.
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.
vtkHyperTreeGridNonOrientedGeometryCursor()
Constructor JB Just pour vtkHyperTreeGridNonOrientedVonNeumannSuperCursor et Moore.
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.
virtual vtkHyperTreeGridNonOrientedGeometryCursor * Clone()
Create a copy of ‘this’.
bool IsMasked()
Determine whether blanking mask is empty or not.
vtkHyperTree * GetTree() const
Set the hyper tree to which the cursor is pointing.
~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?
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:177
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract base class for most VTK objects
Definition: vtkObject.h:82
Hold a reference to a vtkObjectBase instance.
bool HasTree(const T &e)
int vtkIdType
Definition: vtkType.h:332