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
133
134class VTKCOMMONDATAMODEL_EXPORT vtkHyperTree : public vtkObject
135{
136public:
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
194
200
201protected:
203 {
204 }
205
206private:
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 vtkHyperTreeCursor * NewCursor()=0
virtual vtkIdType GetGlobalIndexFromLocal(vtkIdType local)=0
Get the global id of a local node.
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 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
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 vtkIdType GetNumberOfNodes()=0
abstract base class for most VTK objects
Definition: vtkObject.h:60
int vtkIdType
Definition: vtkType.h:287
#define VTK_NEWINSTANCE