29#ifndef vtkHyperTreeCursor_h
30#define vtkHyperTreeCursor_h
32#include "vtkCommonDataModelModule.h"
Objects that can traverse hypertree nodes.
virtual int SameTree(vtkHyperTreeCursor *other)=0
Are ‘this’ and ‘other’ pointing on the same hyper3TREE?
virtual void ToParent()=0
Move the cursor to the parent of the current node.
virtual bool IsRoot()=0
Is the node pointed by the cursor the root?
virtual vtkHyperTree * GetTree()=0
Return the HyperTree on which the cursor points to.
virtual vtkIdType GetLeafId()=0
Return the index of the current leaf in the data arrays.
~vtkHyperTreeCursor() override
virtual vtkHyperTreeCursor * Clone()=0
Create a copy of ‘this’.
virtual void ToChild(int child)=0
Move the cursor to child ‘child’ of the current node.
virtual void ToSameNode(vtkHyperTreeCursor *other)=0
Move the cursor to the same node pointed by ‘other’.
virtual int GetIndex(int d)=0
Return the index in dimension ‘d’, as if the node was a cell of a uniform grid of 1<<GetCurrentLevel(...
virtual int GetChildIndex()=0
Return the child number of the current node relative to its parent.
virtual bool IsEqual(vtkHyperTreeCursor *other)=0
Is ‘this’ equal to ‘other’?
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void MoveToNode(int *indices, int level)=0
Move to the node described by its indices in each dimension and at a given level.
virtual int GetDimension()=0
Return the dimension of the tree.
virtual void ToRoot()=0
Move the cursor to the root node.
virtual bool Found()=0
Did the last call to MoveToNode succeed?
virtual bool IsTerminalNode()=0
virtual int GetNumberOfChildren()=0
Return the number of children for each node of the tree.
virtual bool IsLeaf()=0
Is the node pointed by the cursor a leaf?
virtual vtkIdType GetNodeId()=0
Return the index of the current node in the data arrays.
virtual int GetCurrentLevel()=0
Return the level of the node pointed by the cursor.
An object structured as a tree where each node has exactly either 2^n or 3^n children.
a simple class to control print indentation
abstract base class for most VTK objects
const int VTK_2TREE_CHILD_NW
const int VTK_1TREE_TREE_CHILD_LEFT
@ VTK_3TREE_CHILD_ZMAX_YMIN_XMAX
@ VTK_3TREE_CHILD_ZMIN_YMAX_XMAX
@ VTK_3TREE_CHILD_ZMIN_YMAX_XMIN
@ VTK_3TREE_CHILD_ZMAX_YMIN_XMIN
@ VTK_3TREE_CHILD_ZMIN_YMIN_XMIN
@ VTK_3TREE_CHILD_ZMIN_YMIN_XMAX
@ VTK_3TREE_CHILD_ZMAX_YMAX_XMIN
@ VTK_3TREE_CHILD_ZMAX_YMAX_XMAX
const int VTK_2TREE_CHILD_SW
const int VTK_2TREE_CHILD_NE
const int VTK_1TREE_TREE_CHILD_RIGHT
const int VTK_2TREE_CHILD_SE