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 =========================================================================*/
125 #ifndef vtkHyperTree_h
126 #define vtkHyperTree_h
127 
128 #include "vtkCommonDataModelModule.h" // For export macro
129 #include "vtkObject.h"
130 
131 class vtkHyperTreeCursor;
132 
134 {
135 public:
136  vtkTypeMacro(vtkHyperTree, vtkObject);
137  virtual void Initialize() = 0;
138  virtual vtkHyperTreeCursor* NewCursor() = 0;
139  virtual vtkIdType GetNumberOfLeaves() = 0;
140  virtual vtkIdType GetNumberOfNodes() = 0;
141  virtual vtkIdType GetNumberOfIndex() = 0;
142  virtual int GetBranchFactor() = 0;
143  virtual int GetDimension() = 0;
144  virtual void SetScale( double[3] ) = 0;
145  virtual void GetScale( double[3] ) = 0;
146  virtual double GetScale( unsigned int ) = 0;
147 
150  virtual vtkIdType GetNumberOfLevels() = 0;
151 
155  virtual void SubdivideLeaf( vtkHyperTreeCursor* leaf ) = 0;
156 
159  virtual unsigned int GetActualMemorySize() = 0;
160 
162 
164  static vtkHyperTree* CreateInstance( unsigned int branchFactor,
165  unsigned int dimension );
167 
170  virtual void FindChildParameters( int, vtkIdType&, bool& );
171 
174  virtual void SetGlobalIndexStart( vtkIdType ) = 0;
175 
177  virtual void SetGlobalIndexFromLocal( vtkIdType local, vtkIdType global ) = 0;
178 
181  virtual vtkIdType GetGlobalIndexFromLocal( vtkIdType local ) = 0;
182 
183 protected:
185  {
186  }
187 
188 private:
189  vtkHyperTree(const vtkHyperTree&); // Not implemented.
190  void operator=(const vtkHyperTree&); // Not implemented.
191 };
192 
193 
194 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:61
int vtkIdType
Definition: vtkType.h:247
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:133
#define VTKCOMMONDATAMODEL_EXPORT