VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkCompositeDataSet.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 =========================================================================*/ 00038 #ifndef __vtkCompositeDataSet_h 00039 #define __vtkCompositeDataSet_h 00040 00041 #include "vtkDataObject.h" 00042 00043 class vtkCompositeDataIterator; 00044 class vtkCompositeDataSetInternals; 00045 class vtkInformation; 00046 class vtkInformationStringKey; 00047 00048 class VTK_FILTERING_EXPORT vtkCompositeDataSet : public vtkDataObject 00049 { 00050 public: 00051 vtkTypeMacro(vtkCompositeDataSet, vtkDataObject); 00052 void PrintSelf(ostream& os, vtkIndent indent); 00053 00055 virtual vtkCompositeDataIterator* NewIterator(); 00056 00058 virtual int GetDataObjectType() {return VTK_COMPOSITE_DATA_SET;} 00059 00061 virtual vtkAlgorithmOutput* GetProducerPort(); 00062 00066 virtual void CopyStructure(vtkCompositeDataSet* input); 00067 00072 virtual void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj); 00073 00078 virtual vtkDataObject* GetDataSet(vtkCompositeDataIterator* iter); 00079 00086 virtual vtkInformation* GetMetaData(vtkCompositeDataIterator* iter); 00087 00092 virtual int HasMetaData(vtkCompositeDataIterator* iter); 00093 00096 virtual unsigned long GetActualMemorySize(); 00097 00098 //BTX 00100 00101 static vtkCompositeDataSet* GetData(vtkInformation* info); 00102 static vtkCompositeDataSet* GetData(vtkInformationVector* v, int i=0); 00103 //ETX 00105 00107 virtual void Initialize(); 00108 00110 00111 virtual void ShallowCopy(vtkDataObject *src); 00112 virtual void DeepCopy(vtkDataObject *src); 00114 00118 virtual vtkIdType GetNumberOfPoints(); 00119 00121 static vtkInformationStringKey* NAME(); 00122 00123 //BTX 00124 protected: 00125 vtkCompositeDataSet(); 00126 ~vtkCompositeDataSet(); 00127 00129 void SetNumberOfChildren(unsigned int num); 00130 00132 unsigned int GetNumberOfChildren(); 00133 00136 void SetChild(unsigned int index, vtkDataObject*); 00137 00139 void RemoveChild(unsigned int index); 00140 00142 vtkDataObject* GetChild(unsigned int num); 00143 00147 vtkInformation* GetChildMetaData(unsigned int index); 00148 00150 void SetChildMetaData(unsigned int index, vtkInformation* info); 00151 00154 int HasChildMetaData(unsigned int index); 00155 00156 // The internal datastructure. Subclasses need not access this directly. 00157 vtkCompositeDataSetInternals* Internals; 00158 00159 friend class vtkCompositeDataIterator; 00160 private: 00161 vtkCompositeDataSet(const vtkCompositeDataSet&); // Not implemented. 00162 void operator=(const vtkCompositeDataSet&); // Not implemented. 00163 //ETX 00164 }; 00165 00166 #endif 00167 00168