VTK
vtkHyperTree.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHyperTree.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 =========================================================================*/
126 #ifndef vtkHyperTree_h
127 #define vtkHyperTree_h
128 
129 #include "vtkCommonDataModelModule.h" // For export macro
130 #include "vtkObject.h"
131 
132 class vtkHyperTreeCursor;
133 
134 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTree : public vtkObject
135 {
136 public:
137  vtkTypeMacro(vtkHyperTree, vtkObject);
138  virtual void Initialize() = 0;
139  virtual vtkHyperTreeCursor* NewCursor() = 0;
140  virtual vtkIdType GetNumberOfLeaves() = 0;
141  virtual vtkIdType GetNumberOfNodes() = 0;
142  virtual vtkIdType GetNumberOfIndex() = 0;
143  virtual int GetBranchFactor() = 0;
144  virtual int GetDimension() = 0;
145  virtual void SetScale( double[3] ) = 0;
146  virtual void GetScale( double[3] ) = 0;
147  virtual double GetScale( unsigned int ) = 0;
148 
153  virtual vtkIdType GetNumberOfLevels() = 0;
154 
161  virtual void SubdivideLeaf( vtkHyperTreeCursor* leaf ) = 0;
162 
167  virtual unsigned int GetActualMemorySize() = 0;
168 
175  static vtkHyperTree* CreateInstance( unsigned int branchFactor,
176  unsigned int dimension );
177 
182  virtual void FindChildParameters( int, vtkIdType&, bool& );
183 
188  virtual void SetGlobalIndexStart( vtkIdType ) = 0;
189 
193  virtual void SetGlobalIndexFromLocal( vtkIdType local, vtkIdType global ) = 0;
194 
199  virtual vtkIdType GetGlobalIndexFromLocal( vtkIdType local ) = 0;
200 
201 protected:
203  {
204  }
205 
206 private:
207  vtkHyperTree(const vtkHyperTree&) VTK_DELETE_FUNCTION;
208  void operator=(const vtkHyperTree&) VTK_DELETE_FUNCTION;
209 };
210 
211 
212 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:59
int vtkIdType
Definition: vtkType.h:287
Objects that can traverse hypertree nodes.
#define VTK_NEWINSTANCE
An object structured as a tree where each node has exactly either 2^n or 3^n children.
Definition: vtkHyperTree.h:134