25#ifndef vtkHyperOctreeCursor_h
26#define vtkHyperOctreeCursor_h
28#include "vtkCommonDataModelModule.h"
Objects that can traverse hyperoctree nodes.
virtual int SameTree(vtkHyperOctreeCursor *other)=0
Are ‘this’ and ‘other’ pointing on the same hyperoctree?
virtual vtkHyperOctreeCursor * Clone()=0
Create a copy of ‘this’.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int CurrentIsLeaf()=0
Is the node pointed by the cursor a leaf?
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 CurrentIsTerminalNode()=0
virtual int GetCurrentLevel()=0
Return the level of the node pointed by the cursor.
~vtkHyperOctreeCursor() override
virtual int GetNumberOfChildren()=0
Return the number of children for each node of the tree.
virtual void ToSameNode(vtkHyperOctreeCursor *other)=0
Move the cursor to the same node pointed by ‘other’.
virtual void ToRoot()=0
Move the cursor the root node.
virtual void ToParent()=0
Move the cursor to the parent of the current node.
virtual int GetDimension()=0
Return the dimension of the tree.
virtual int CurrentIsRoot()=0
Is the node pointed by the cursor the root?
virtual void ToChild(int child)=0
Move the cursor to child ‘child’ of the current node.
virtual int IsEqual(vtkHyperOctreeCursor *other)=0
Is ‘this’ equal to ‘other’?
virtual int GetChildIndex()=0
Return the child number of the current node relative to its parent.
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 GetLeafId()=0
Return the index of the current leaf in the data arrays.
virtual int Found()=0
Did the last call to MoveToNode succeed?
a simple class to control print indentation
abstract base class for most VTK objects
const int VTK_QUADTREE_CHILD_SW
const int VTK_BINARY_TREE_CHILD_LEFT
@ VTK_OCTREE_CHILD_ZMIN_YMIN_XMIN
@ VTK_OCTREE_CHILD_ZMAX_YMIN_XMIN
@ VTK_OCTREE_CHILD_ZMIN_YMIN_XMAX
@ VTK_OCTREE_CHILD_ZMIN_YMAX_XMAX
@ VTK_OCTREE_CHILD_ZMAX_YMIN_XMAX
@ VTK_OCTREE_CHILD_ZMAX_YMAX_XMIN
@ VTK_OCTREE_CHILD_ZMAX_YMAX_XMAX
@ VTK_OCTREE_CHILD_ZMIN_YMAX_XMIN
const int VTK_BINARY_TREE_CHILD_RIGHT
const int VTK_QUADTREE_CHILD_NE
const int VTK_QUADTREE_CHILD_SE
const int VTK_QUADTREE_CHILD_NW