00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00028 #ifndef __vtkHierarchicalDataSet_h
00029 #define __vtkHierarchicalDataSet_h
00030
00031 #include "vtkCompositeDataSet.h"
00032
00033
00034 struct vtkHierarchicalDataSetInternal;
00035
00036 class vtkDataObject;
00037 class vtkHDSNode;
00038 class vtkHierarchicalDataInformation;
00039
00040 class VTK_FILTERING_EXPORT vtkHierarchicalDataSet : public vtkCompositeDataSet
00041 {
00042 public:
00043 static vtkHierarchicalDataSet *New();
00044
00045 vtkTypeRevisionMacro(vtkHierarchicalDataSet,vtkCompositeDataSet);
00046 virtual void PrintSelf(ostream& os, vtkIndent indent);
00047
00050 virtual vtkCompositeDataIterator* NewIterator();
00051
00054 virtual int GetDataObjectType() {return VTK_HIERARCHICAL_DATA_SET;}
00055
00057 virtual void Initialize();
00058
00061 void SetNumberOfLevels(unsigned int numLevels);
00062
00064 unsigned int GetNumberOfLevels();
00065
00069 void SetNumberOfDataSets(unsigned int level, unsigned int numDataSets);
00070
00072 unsigned int GetNumberOfDataSets(unsigned int level);
00073
00076 void InitializeNode(unsigned int level, unsigned int id);
00077
00081 void SetDataSet(unsigned int level, unsigned int id, vtkDataObject* dataSet);
00082
00084 virtual void AddDataSet(vtkInformation* index, vtkDataObject* dobj);
00085
00087 vtkDataObject* GetDataSet(unsigned int level, unsigned int id);
00088
00090 virtual vtkDataObject* GetDataSet(vtkInformation* index);
00091
00093
00094 virtual void ShallowCopy(vtkDataObject *src);
00095 virtual void DeepCopy(vtkDataObject *src);
00097
00099
00100 vtkGetObjectMacro(HierarchicalDataInformation,vtkHierarchicalDataInformation);
00102
00104 void SetHierarchicalDataInformation(vtkHierarchicalDataInformation* info);
00105
00109 virtual vtkIdType GetNumberOfPoints();
00110
00111
00112 friend class vtkHierarchicalDataIterator;
00113
00114
00115 static vtkInformationIntegerKey* LEVEL();
00116
00117
00119
00120 static vtkHierarchicalDataSet* GetData(vtkInformation* info);
00121 static vtkHierarchicalDataSet* GetData(vtkInformationVector* v, int i=0);
00122
00124
00125 protected:
00126 vtkHierarchicalDataSet();
00127 ~vtkHierarchicalDataSet();
00128
00129 vtkHierarchicalDataSetInternal* Internal;
00130
00131 void InitializeDataSets();
00132
00133 virtual vtkHDSNode* NewNode();
00134
00135 vtkHierarchicalDataInformation* HierarchicalDataInformation;
00136
00137 private:
00138 vtkHierarchicalDataSet(const vtkHierarchicalDataSet&);
00139 void operator=(const vtkHierarchicalDataSet&);
00140 };
00141
00142 #endif
00143