VTK
dox/Common/DataModel/vtkHyperTree.h
Go to the documentation of this file.
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