An object structured as a tree where each node has exactly either 2^d or 3^d children.
More...
|
virtual vtkTypeBool | IsA (const char *type) |
| Return 1 if this class is the same type of (or a subclass of) the named class. More...
|
|
vtkHyperTree * | NewInstance () const |
|
void | PrintSelf (ostream &, vtkIndent) override |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
virtual void | Initialize ()=0 |
| Restore the initial state: only one node and one leaf: the root. More...
|
|
virtual vtkIdType | GetNumberOfLevels ()=0 |
| Return the number of levels. More...
|
|
virtual vtkIdType | GetNumberOfVertices ()=0 |
| Return the number of vertices in the tree. More...
|
|
virtual vtkIdType | GetNumberOfNodes ()=0 |
| Return the number of nodes (non-leaf vertices) in the tree. More...
|
|
virtual vtkIdType | GetNumberOfLeaves ()=0 |
| Return the number of leaf vertices in the tree. More...
|
|
virtual int | GetBranchFactor ()=0 |
| Return the branch factor of the tree. More...
|
|
virtual int | GetDimension ()=0 |
| Return the dimension of the tree. More...
|
|
virtual vtkIdType | GetNumberOfChildren ()=0 |
| Return the number of children per node of the tree. More...
|
|
virtual void | FindParentIndex (vtkIdType &) |
| Find the Index of the parent of a vertex in the hypertree. More...
|
|
virtual void | FindChildParameters (int, vtkIdType &, bool &) |
| Find the Index, Parent Index and IsLeaf() parameters of the child of a node in the hypertree. More...
|
|
virtual vtkHyperTreeCursor * | NewCursor ()=0 |
| Return pointer to new instance of hyper tree cursor. More...
|
|
virtual void | SubdivideLeaf (vtkHyperTreeCursor *leaf)=0 |
| Subdivide node pointed by cursor, only if its a leaf. More...
|
|
virtual unsigned int | GetActualMemorySize ()=0 |
| Return memory used in kibibytes (1024 bytes). More...
|
|
virtual void | SetGlobalIndexStart (vtkIdType)=0 |
| Set the start global index for the current tree. More...
|
|
virtual void | SetGlobalIndexFromLocal (vtkIdType local, vtkIdType global)=0 |
| Set the mapping between local & global Ids used by HyperTreeGrids. More...
|
|
virtual vtkIdType | GetGlobalIndexFromLocal (vtkIdType local)=0 |
| Get the global id of a local node. More...
|
|
|
virtual void | SetScale (double[3])=0 |
| Set/Get scale of the tree in each direction. More...
|
|
virtual void | GetScale (double[3])=0 |
| Set/Get scale of the tree in each direction. More...
|
|
virtual double | GetScale (unsigned int)=0 |
| Set/Get scale of the tree in each direction. More...
|
|
| vtkBaseTypeMacro (vtkObject, vtkObjectBase) |
|
virtual void | DebugOn () |
| Turn debugging output on. More...
|
|
virtual void | DebugOff () |
| Turn debugging output off. More...
|
|
bool | GetDebug () |
| Get the value of the debug flag. More...
|
|
void | SetDebug (bool debugFlag) |
| Set the value of the debug flag. More...
|
|
virtual void | Modified () |
| Update the modification time for this object. More...
|
|
virtual vtkMTimeType | GetMTime () |
| Return this object's modified time. More...
|
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
vtkTypeBool | HasObserver (unsigned long event) |
|
vtkTypeBool | HasObserver (const char *event) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkCommand * | GetCommand (unsigned long tag) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObserver (vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObservers (const char *event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| Allow user to set the AbortFlagOn() with the return value of the callback method. More...
|
|
int | InvokeEvent (unsigned long event, void *callData) |
| This method invokes an event and return whether the event was aborted or not. More...
|
|
int | InvokeEvent (const char *event, void *callData) |
| This method invokes an event and return whether the event was aborted or not. More...
|
|
const char * | GetClassName () const |
| Return the class name as a string. More...
|
|
virtual void | Delete () |
| Delete a VTK object. More...
|
|
virtual void | FastDelete () |
| Delete a reference to this object. More...
|
|
void | InitializeObjectBase () |
|
void | Print (ostream &os) |
| Print an object to an ostream. More...
|
|
virtual void | Register (vtkObjectBase *o) |
| Increase the reference count (mark as used by another object). More...
|
|
virtual void | UnRegister (vtkObjectBase *o) |
| Decrease the reference count (release by another object). More...
|
|
int | GetReferenceCount () |
| Return the current reference count of this object. More...
|
|
void | SetReferenceCount (int) |
| Sets the reference count. More...
|
|
void | PrintRevisions (ostream &) |
| Legacy. More...
|
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
An object structured as a tree where each node has exactly either 2^d or 3^d children.
A hypertree is a dataset where each node has either exactly f^d children or no child at all if the node is a leaf, where f in {2,3} is the branching factor of the tree and d in {1,2,3} is the dimension of the dataset. Such trees have particular names when f=2: bintree (d=1), quadtree (d=2), and octree (d=3). When f=3, we respectively call them 3-tree, 9-tree, and 27-tree.
The original octree class name came from the following paper:
* @ARTICLE{yau-srihari-1983,
* author={Mann-May Yau and Sargur N. Srihari},
* title={A Hierarchical Data Structure for Multidimensional Digital Images},
* journal={Communications of the ACM},
* month={July},
* year={1983},
* volume={26},
* number={7},
* pages={504--515}
* }
*
Each node is a cell. Attributes are associated with cells, not with points. The geometry is implicitly given by the size of the root node on each axis and position of the center and the orientation. (TODO: review center position and orientation). The geometry is then not limited to a hybercube but can have a rectangular shape. Attributes are associated with leaves. For LOD (Level-Of-Detail) purpose, attributes can be computed on none-leaf nodes by computing the average values from its children (which can be leaves or not).
By construction, a hypertree is efficient in memory usage when the geometry is sparse. The LOD feature allows for quick culling of part of the dataset.
This is an abstract class used as a superclass by a templated compact class. All methods are pure virtual. This is done to hide templates.
- Case with f=2:
-
- Case with f=2:
- +z side is last, in counter-clockwise order: 4: -y -x sides 5: -y +x sides 6: +y -x sides 7: +y +x sides
* +y
* +-+-+ ^
* |6|7| |
* +-+-+ O +z +-> +x
* |4|5|
* +-+-+
*
- Case with f=2:
- The cases with fewer dimensions are consistent with the octree case:
- Case with f=2:
-
- Case with f=2:
- d=1 case (bintree):
* +0+1+ O+-> +x
*
- Warning
- It is not a spatial search object. If you are looking for this kind of octree see vtkCellLocator instead.
- Thanks:
- This class was written by Philippe Pebay, Joachim Pouderoux, and Charles Law, Kitware 2013 This class was modified by Guenole Harel and Jacques-Bernard Lekien 2014 This class was modified by Philippe Pebay, 2016 This work was supported by Commissariat a l'Energie Atomique (CEA/DIF)
Definition at line 142 of file vtkHyperTree.h.