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;
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 
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 
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
Objects that can traverse hypertree nodes.
An object structured as a tree where each node has exactly either 2^n or 3^n children.
Definition: vtkHyperTree.h:135
virtual void SetGlobalIndexFromLocal(vtkIdType local, vtkIdType global)=0
Set the mapping between local & global ids used by HyperTreeGrids.
virtual int GetDimension()=0
virtual int GetBranchFactor()=0
virtual vtkIdType GetGlobalIndexFromLocal(vtkIdType local)=0
Get the global id of a local node.
static VTK_NEWINSTANCE vtkHyperTree * CreateInstance(unsigned int branchFactor, unsigned int dimension)
Return an instance of a templated hypertree for given branch factor and dimension This is done to hid...
virtual void SetScale(double[3])=0
virtual vtkIdType GetNumberOfLeaves()=0
virtual void FindChildParameters(int, vtkIdType &, bool &)
Find the Index, Parent Index and IsLeaf() parameters of a child for hypertree.
virtual unsigned int GetActualMemorySize()=0
Return the actual memory size in kibibytes (1024 bytes).
virtual void Initialize()=0
virtual vtkIdType GetNumberOfIndex()=0
virtual double GetScale(unsigned int)=0
virtual void SubdivideLeaf(vtkHyperTreeCursor *leaf)=0
Subdivide node pointed by cursor, only if its a leaf.
virtual vtkHyperTreeCursor * NewCursor()=0
virtual void SetGlobalIndexStart(vtkIdType)=0
Set the start global index for the current tree.
virtual vtkIdType GetNumberOfLevels()=0
Return the number of levels.
virtual void GetScale(double[3])=0
virtual vtkIdType GetNumberOfNodes()=0
abstract base class for most VTK objects
Definition: vtkObject.h:60
int vtkIdType
Definition: vtkType.h:287
#define VTK_NEWINSTANCE