VTK
vtkHyperOctreeCursor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperOctreeCursor.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 notice for more information.
13 
14 =========================================================================*/
24 #ifndef __vtkHyperOctreeCursor_h
25 #define __vtkHyperOctreeCursor_h
26 
27 #include "vtkObject.h"
28 
29 enum
30 {
39 };
40 
45 
48 
50 {
51 public:
53  void PrintSelf(ostream& os, vtkIndent indent);
54 
57  virtual int GetLeafId()=0;
58 
60  virtual int CurrentIsLeaf()=0;
61 
63  virtual int CurrentIsRoot()=0;
64 
67  virtual int GetCurrentLevel()=0;
68 
72  virtual int GetChildIndex()=0;
73 
74  // Are the children of the current node all leaves?
75  // This query can be called also on a leaf node.
76  // \post compatible: result implies !CurrentIsLeaf()
77  virtual int CurrentIsTerminalNode()=0;
78 
81  virtual void ToRoot()=0;
82 
85  virtual void ToParent()=0;
86 
90  virtual void ToChild(int child)=0;
91 
95  virtual void ToSameNode(vtkHyperOctreeCursor *other)=0;
96 
99  virtual int IsEqual(vtkHyperOctreeCursor *other)=0;
100 
103  virtual vtkHyperOctreeCursor *Clone()=0;
104 
107  virtual int SameTree(vtkHyperOctreeCursor *other)=0;
108 
113  virtual int GetIndex(int d)=0;
114 
117  virtual int GetNumberOfChildren()=0;
118 
120  virtual int GetDimension()=0;
121 
123 
129  virtual void MoveToNode(int *indices,
130  int level)=0;
132 
134  virtual int Found()=0;
135 
136 protected:
137  // Constructor.
139  virtual ~vtkHyperOctreeCursor();
140 private:
141  vtkHyperOctreeCursor(const vtkHyperOctreeCursor&); // Not implemented.
142  void operator=(const vtkHyperOctreeCursor&); // Not implemented.
143 };
144 #endif
const int VTK_QUADTREE_CHILD_NE
abstract base class for most VTK objects
Definition: vtkObject.h:60
#define VTK_FILTERING_EXPORT
const int VTK_QUADTREE_CHILD_NW
const int VTK_QUADTREE_CHILD_SW
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
Definition: vtkIndent.h:37
const int VTK_QUADTREE_CHILD_SE
const int VTK_BINARY_TREE_CHILD_RIGHT
Objects that can traverse hyperoctree nodes.
const int VTK_BINARY_TREE_CHILD_LEFT