VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkHyperTree.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00125 #ifndef __vtkHyperTree_h 00126 #define __vtkHyperTree_h 00127 00128 #include "vtkCommonDataModelModule.h" // For export macro 00129 #include "vtkObject.h" 00130 00131 class vtkHyperTreeCursor; 00132 00133 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTree : public vtkObject 00134 { 00135 public: 00136 vtkTypeMacro(vtkHyperTree, vtkObject); 00137 virtual void Initialize() = 0; 00138 virtual vtkHyperTreeCursor* NewCursor() = 0; 00139 virtual vtkIdType GetNumberOfLeaves() = 0; 00140 virtual vtkIdType GetNumberOfNodes() = 0; 00141 virtual vtkIdType GetNumberOfIndex() = 0; 00142 virtual int GetBranchFactor() = 0; 00143 virtual int GetDimension() = 0; 00144 virtual void SetScale( double[3] ) = 0; 00145 virtual void GetScale( double[3] ) = 0; 00146 virtual double GetScale( unsigned int ) = 0; 00147 00150 virtual vtkIdType GetNumberOfLevels() = 0; 00151 00155 virtual void SubdivideLeaf( vtkHyperTreeCursor* leaf ) = 0; 00156 00159 virtual unsigned int GetActualMemorySize() = 0; 00160 00162 00164 static vtkHyperTree* CreateInstance( unsigned int branchFactor, 00165 unsigned int dimension ); 00167 00170 virtual void FindChildParameters( int, vtkIdType&, bool& ); 00171 00174 virtual void SetGlobalIndexStart( vtkIdType ) = 0; 00175 00177 virtual void SetGlobalIndexFromLocal( vtkIdType local, vtkIdType global ) = 0; 00178 00181 virtual vtkIdType GetGlobalIndexFromLocal( vtkIdType local ) = 0; 00182 00183 protected: 00184 vtkHyperTree() 00185 { 00186 } 00187 00188 private: 00189 vtkHyperTree(const vtkHyperTree&); // Not implemented. 00190 void operator=(const vtkHyperTree&); // Not implemented. 00191 }; 00192 00193 00194 #endif