00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCompositeDataSet.h,v $ 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 =========================================================================*/ 00031 #ifndef __vtkCompositeDataSet_h 00032 #define __vtkCompositeDataSet_h 00033 00034 #include "vtkDataObject.h" 00035 00036 class vtkCompositeDataIterator; 00037 class vtkCompositeDataSetInternals; 00038 class vtkInformation; 00039 class vtkInformationStringKey; 00040 00041 class VTK_FILTERING_EXPORT vtkCompositeDataSet : public vtkDataObject 00042 { 00043 public: 00044 vtkTypeRevisionMacro(vtkCompositeDataSet, vtkDataObject); 00045 void PrintSelf(ostream& os, vtkIndent indent); 00046 00048 virtual vtkCompositeDataIterator* NewIterator(); 00049 00051 virtual int GetDataObjectType() {return VTK_COMPOSITE_DATA_SET;} 00052 00054 virtual vtkAlgorithmOutput* GetProducerPort(); 00055 00059 virtual void CopyStructure(vtkCompositeDataSet* input); 00060 00065 virtual void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj); 00066 00071 virtual vtkDataObject* GetDataSet(vtkCompositeDataIterator* iter); 00072 00079 virtual vtkInformation* GetMetaData(vtkCompositeDataIterator* iter); 00080 00085 virtual int HasMetaData(vtkCompositeDataIterator* iter); 00086 00087 //BTX 00089 00090 static vtkCompositeDataSet* GetData(vtkInformation* info); 00091 static vtkCompositeDataSet* GetData(vtkInformationVector* v, int i=0); 00092 //ETX 00094 00096 virtual void Initialize(); 00097 00099 00100 virtual void ShallowCopy(vtkDataObject *src); 00101 virtual void DeepCopy(vtkDataObject *src); 00103 00107 virtual vtkIdType GetNumberOfPoints(); 00108 00110 static vtkInformationStringKey* NAME(); 00111 00112 //BTX 00113 protected: 00114 vtkCompositeDataSet(); 00115 ~vtkCompositeDataSet(); 00116 00118 void SetNumberOfChildren(unsigned int num); 00119 00121 unsigned int GetNumberOfChildren(); 00122 00125 void SetChild(unsigned int index, vtkDataObject*); 00126 00128 void RemoveChild(unsigned int index); 00129 00131 vtkDataObject* GetChild(unsigned int num); 00132 00136 vtkInformation* GetChildMetaData(unsigned int index); 00137 00139 void SetChildMetaData(unsigned int index, vtkInformation* info); 00140 00143 int HasChildMetaData(unsigned int index); 00144 00145 // The internal datastructure. Subclasses need not access this directly. 00146 vtkCompositeDataSetInternals* Internals; 00147 00148 friend class vtkCompositeDataIterator; 00149 private: 00150 vtkCompositeDataSet(const vtkCompositeDataSet&); // Not implemented. 00151 void operator=(const vtkCompositeDataSet&); // Not implemented. 00152 //ETX 00153 }; 00154 00155 #endif 00156 00157