00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkHierarchicalDataSet.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00029 #ifndef __vtkHierarchicalDataSet_h 00030 #define __vtkHierarchicalDataSet_h 00031 00032 #include "vtkCompositeDataSet.h" 00033 00034 //BTX 00035 struct vtkHierarchicalDataSetInternal; 00036 //ETX 00037 class vtkDataObject; 00038 class vtkHDSNode; 00039 00040 class VTK_COMMON_EXPORT vtkHierarchicalDataSet : public vtkCompositeDataSet 00041 { 00042 public: 00043 vtkTypeRevisionMacro(vtkHierarchicalDataSet,vtkCompositeDataSet); 00044 virtual void PrintSelf(ostream& os, vtkIndent indent); 00045 00048 virtual vtkCompositeDataIterator* NewIterator(); 00049 00052 virtual int GetDataObjectType() {return VTK_HIERARCHICAL_DATA_SET;} 00053 00055 virtual void Initialize(); 00056 00059 void SetNumberOfLevels(unsigned int numLevels); 00060 00062 unsigned int GetNumberOfLevels(); 00063 00067 void SetNumberOfDataSets(unsigned int level, unsigned int numDataSets); 00068 00070 unsigned int GetNumberOfDataSets(unsigned int level); 00071 00074 void InitializeNode(unsigned int level, unsigned int id); 00075 00080 int IsNodePresent(unsigned int level, unsigned int id); 00081 00085 void SetDataSet(unsigned int level, unsigned int id, vtkDataObject* dataSet); 00086 00088 vtkDataObject* GetDataSet(unsigned int level, unsigned int id); 00089 00091 00092 virtual void ShallowCopy(vtkDataObject *src); 00093 virtual void DeepCopy(vtkDataObject *src); 00095 00096 //BTX 00097 friend class vtkHierarchicalDataIterator; 00098 //ETX 00099 00100 protected: 00101 vtkHierarchicalDataSet(); 00102 ~vtkHierarchicalDataSet(); 00103 00104 vtkHierarchicalDataSetInternal* Internal; 00105 00106 void InitializeDataSets(); 00107 00108 virtual vtkHDSNode* NewNode(); 00109 00110 private: 00111 vtkHierarchicalDataSet(const vtkHierarchicalDataSet&); // Not implemented. 00112 void operator=(const vtkHierarchicalDataSet&); // Not implemented. 00113 }; 00114 00115 #endif 00116