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 =========================================================================*/
134 #ifndef vtkHyperTree_h
135 #define vtkHyperTree_h
136 
137 #include "vtkCommonDataModelModule.h" // For export macro
138 #include "vtkObject.h"
139 
140 class vtkHyperTreeCursor;
141 
142 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTree : public vtkObject
143 {
144 public:
145  vtkTypeMacro(vtkHyperTree, vtkObject);
146  void PrintSelf( ostream&, vtkIndent ) override;
147 
151  virtual void Initialize() = 0;
152 
156  virtual vtkIdType GetNumberOfLevels() = 0;
157 
161  virtual vtkIdType GetNumberOfVertices() = 0;
162 
166  virtual vtkIdType GetNumberOfNodes() = 0;
167 
171  virtual vtkIdType GetNumberOfLeaves() = 0;
172 
176  virtual int GetBranchFactor() = 0;
177 
181  virtual int GetDimension() = 0;
182 
186  virtual vtkIdType GetNumberOfChildren() = 0;
187 
189 
192  virtual void SetScale( double[3] ) = 0;
193  virtual void GetScale( double[3] ) = 0;
194  virtual double GetScale( unsigned int ) = 0;
196 
203  static vtkHyperTree* CreateInstance( unsigned int branchFactor,
204  unsigned int dimension );
205 
210  virtual void FindParentIndex( vtkIdType& );
211 
217  virtual void FindChildParameters( int, vtkIdType&, bool& );
218 
222  virtual vtkHyperTreeCursor* NewCursor() = 0;
223 
230  virtual void SubdivideLeaf( vtkHyperTreeCursor* leaf ) = 0;
231 
236  virtual unsigned int GetActualMemorySize() = 0;
237 
242  virtual void SetGlobalIndexStart( vtkIdType ) = 0;
243 
247  virtual void SetGlobalIndexFromLocal( vtkIdType local, vtkIdType global ) = 0;
248 
253  virtual vtkIdType GetGlobalIndexFromLocal( vtkIdType local ) = 0;
254 
255 protected:
257  {
258  }
259 
260 private:
261  vtkHyperTree(const vtkHyperTree&) = delete;
262  void operator=(const vtkHyperTree&) = delete;
263 };
264 
265 #endif
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.
int vtkIdType
Definition: vtkType.h:347
Objects for depth-first traversal HyperTrees.
a simple class to control print indentation
Definition: vtkIndent.h:39
#define VTK_NEWINSTANCE
An object structured as a tree where each node has exactly either 2^d or 3^d children.
Definition: vtkHyperTree.h:142