VTK
vtkHyperTreeCursor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperTreeCursor.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 =========================================================================*/
29 #ifndef vtkHyperTreeCursor_h
30 #define vtkHyperTreeCursor_h
31 
32 #include "vtkCommonDataModelModule.h" // For export macro
33 #include "vtkObject.h"
34 
35 enum
36 {
45 };
46 
51 
54 
55 class vtkHyperTree;
56 
57 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeCursor : public vtkObject
58 {
59 public:
61  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
62 
66  virtual vtkHyperTree* GetTree() = 0;
67 
72  virtual vtkIdType GetLeafId() = 0;
73 
77  virtual vtkIdType GetNodeId() = 0;
78 
82  virtual bool IsLeaf() = 0;
83 
84  // Are the children of the current node all leaves?
85  // This query can be called also on a leaf node.
86  // \post compatible: result implies !IsLeaf()
87  virtual bool IsTerminalNode() = 0;
88 
92  virtual bool IsRoot() = 0;
93 
98  virtual int GetCurrentLevel() = 0;
99 
105  virtual int GetChildIndex() = 0;
106 
112  virtual void ToRoot() = 0;
113 
118  virtual void ToParent() = 0;
119 
125  virtual void ToChild( int child ) = 0;
126 
133  virtual void ToSameNode( vtkHyperTreeCursor* other ) = 0;
134 
140  virtual bool IsEqual( vtkHyperTreeCursor* other ) = 0;
141 
147  virtual vtkHyperTreeCursor* Clone() = 0;
148 
153  virtual int SameTree( vtkHyperTreeCursor* other ) = 0;
154 
161  virtual int GetIndex( int d ) = 0;
162 
167  virtual int GetNumberOfChildren() = 0;
168 
173  virtual int GetDimension() = 0;
174 
185  virtual void MoveToNode( int* indices, int level ) = 0;
186 
190  virtual bool Found() = 0;
191 
192 protected:
193  // Constructor.
195  ~vtkHyperTreeCursor() VTK_OVERRIDE;
196 
197 private:
198  vtkHyperTreeCursor(const vtkHyperTreeCursor&) VTK_DELETE_FUNCTION;
199  void operator=(const vtkHyperTreeCursor&) VTK_DELETE_FUNCTION;
200 };
201 #endif
const int VTK_2TREE_CHILD_NE
abstract base class for most VTK objects
Definition: vtkObject.h:59
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
const int VTK_2TREE_CHILD_SW
int vtkIdType
Definition: vtkType.h:287
Objects that can traverse hypertree nodes.
a simple class to control print indentation
Definition: vtkIndent.h:39
const int VTK_2TREE_CHILD_SE
An object structured as a tree where each node has exactly either 2^n or 3^n children.
Definition: vtkHyperTree.h:134
const int VTK_1TREE_TREE_CHILD_LEFT
const int VTK_2TREE_CHILD_NW
const int VTK_1TREE_TREE_CHILD_RIGHT