 |
VTK
9.1.0
|
Go to the documentation of this file.
135 #ifndef vtkHyperTree_h
136 #define vtkHyperTree_h
138 #include "vtkCommonDataModelModule.h"
147 class vtkTypeInt64Array;
191 unsigned char branchFactor,
unsigned char dimension,
unsigned char numberOfChildren);
277 vtkTypeInt64Array* numberOfVerticesPerDepth,
vtkBitArray* descriptor,
310 assert(
"post: result_greater_or_equal_to_one" && this->Datas->NumberOfLevels >= 1);
311 return this->Datas->NumberOfLevels;
329 return this->Datas->NumberOfVertices - this->Datas->NumberOfNodes;
364 const double* scales,
bool reinitialize =
false)
const;
390 return static_cast<unsigned int>(this->GetActualMemorySizeBytes() / 1024);
501 void SetScales(std::shared_ptr<vtkHyperTreeGridScales> scales)
const { this->Scales = scales; }
508 bool HasScales()
const {
return (this->Scales !=
nullptr); }
515 std::shared_ptr<vtkHyperTreeGridScales>
GetScales()
const
517 assert(this->Scales !=
nullptr);
543 std::shared_ptr<vtkHyperTreeData>
Datas;
549 mutable std::shared_ptr<vtkHyperTreeGridScales>
Scales;
553 unsigned char branchFactor,
unsigned char dimension,
unsigned char numberOfChildren);
vtkIdType GlobalIndexStart
virtual vtkIdType GetGlobalIndexFromLocal(vtkIdType index) const =0
Get the global id of a local node identified by index.
void CopyStructure(vtkHyperTree *ht)
Copy the structure by sharing the decomposition description of the tree.
void SetTreeIndex(vtkIdType treeIndex)
Set/Get tree index in hypertree grid.
virtual bool IsGlobalIndexImplicit()=0
Return if implicit global index maping has been used.
vtkIdType GetNumberOfVertices() const
Return the number of all vertices (coarse and fine) in the tree.
unsigned int GetNumberOfLevels() const
Return the number of levels.
virtual unsigned long GetActualMemorySizeBytes()=0
Return memory used in bytes.
std::shared_ptr< vtkHyperTreeData > Datas
virtual vtkIdType GetElderChildIndex(unsigned int index_parent) const =0
Return the elder child index, local index node of first child, of node, coarse cell,...
virtual void InitializePrivate()=0
int GetDimension() const
Return the spatial dimension of the tree.
void GetScale(double s[3]) const
Set/Get scale of the tree in each direction for the ground level (0).
virtual const unsigned int * GetElderChildIndexArray(size_t &nbElements) const =0
Return the elder child index array, internals of the tree structure Should be used with great care,...
virtual void SetGlobalIndexFromLocal(vtkIdType index, vtkIdType global)=0
Set the mapping between a node index in tree and a explicit global index mapping.
~vtkHyperTree() override=default
abstract base class for most VTK objects
vtkIdType NumberOfVertices
vtkIdType GetTreeIndex() const
Set/Get tree index in hypertree grid.
vtkIdType GetNumberOfNodes() const
Return the number of nodes (coarse) in the tree.
unsigned int GetActualMemorySize()
Return memory used in kibibytes (1024 bytes).
unsigned char NumberOfChildren
virtual void ComputeBreadthFirstOrderDescriptor(vtkBitArray *inputMask, vtkTypeInt64Array *numberOfVerticesPerDepth, vtkBitArray *descriptor, vtkIdList *breadthFirstIdMap)=0
This method computes the breadth first order descriptor of the current tree.
virtual bool IsLeaf(vtkIdType index) const =0
Return if a vertice identified by index in tree as being leaf.
A specifalized type of vtkHyperTreeGrid for the case when root cells have uniform sizes in each direc...
virtual void CopyStructurePrivate(vtkHyperTree *ht)=0
virtual void PrintSelfPrivate(ostream &os, vtkIndent indent)=0
virtual bool IsTerminalNode(vtkIdType index) const =0
Return if a vertice identified by index in tree as a terminal node.
virtual void SetGlobalIndexStart(vtkIdType start)=0
Set the start implicit global index mapping for the first cell in the current tree.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
unsigned int NumberOfLevels
a simple class to control print indentation
list of point or cell ids
A data object structured as a tree.
std::shared_ptr< vtkHyperTreeGridScales > GetScales() const
Return all scales.
double GetScale(unsigned int d) const
Set/Get scale of the tree in each direction for the ground level (0).
virtual vtkHyperTree * Freeze(const char *mode)=0
Return a freeze instance (a priori compact but potentially unmodifiable).
virtual void SubdivideLeaf(vtkIdType index, unsigned int level)=0
Subdivide a vertice, only if its a leaf.
int GetBranchFactor() const
Return the branch factor of the tree.
std::shared_ptr< vtkHyperTreeGridScales > InitializeScales(const double *scales, bool reinitialize=false) const
In an hypertree, all cells are the same size by level.
std::shared_ptr< vtkHyperTreeGridScales > Scales
bool HasScales() const
Return the existence scales.
vtkIdType GetNumberOfLeaves() const
Return the number of leaf (fine) in the tree.
virtual vtkIdType GetGlobalNodeIndexMax() const =0
Return the maximum value reached by global index mapping (implicit or explicit).
vtkIdType GetGlobalIndexStart() const
Get the start global index for the current tree for implicit global index mapping.
void Initialize(unsigned char branchFactor, unsigned char dimension, unsigned char numberOfChildren)
Restore the initial state: only one vertice is then a leaf: the root cell for the hypertree.
unsigned char BranchFactor
dynamic, self-adjusting array of bits
vtkIdType GetNumberOfChildren() const
Return the number of children per node of the tree.
virtual void BuildFromBreadthFirstOrderDescriptor(vtkBitArray *descriptor, vtkIdType numberOfBits, vtkIdType startIndex=0)=0
This method builds the indexing of this tree given a breadth first order descriptor.
static vtkHyperTree * CreateInstance(unsigned char branchFactor, unsigned char dimension)
Return an instance of an implementation of a hypertree for given branch factor and dimension.
void SetScales(std::shared_ptr< vtkHyperTreeGridScales > scales) const
In an hypertree, all cells are the same size by level.
virtual void InitializeForReader(vtkIdType numberOfLevels, vtkIdType nbVertices, vtkIdType nbVerticesOfLastLevel, vtkBitArray *isParent, vtkBitArray *isMasked, vtkBitArray *outIsMasked)=0
Restore a state from read data, without using a cursor Call after create hypertree with initialize.