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 00040 class VTK_FILTERING_EXPORT vtkCompositeDataSet : public vtkDataObject 00041 { 00042 public: 00043 vtkTypeRevisionMacro(vtkCompositeDataSet, vtkDataObject); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 virtual vtkCompositeDataIterator* NewIterator(); 00048 00050 virtual int GetDataObjectType() {return VTK_COMPOSITE_DATA_SET;} 00051 00053 virtual vtkAlgorithmOutput* GetProducerPort(); 00054 00058 virtual void CopyStructure(vtkCompositeDataSet* input); 00059 00064 virtual void SetDataSet(vtkCompositeDataIterator* iter, vtkDataObject* dataObj); 00065 00070 virtual vtkDataObject* GetDataSet(vtkCompositeDataIterator* iter); 00071 00078 virtual vtkInformation* GetMetaData(vtkCompositeDataIterator* iter); 00079 00084 virtual int HasMetaData(vtkCompositeDataIterator* iter); 00085 00086 //BTX 00088 00089 static vtkCompositeDataSet* GetData(vtkInformation* info); 00090 static vtkCompositeDataSet* GetData(vtkInformationVector* v, int i=0); 00091 //ETX 00093 00095 virtual void Initialize(); 00096 00098 00099 virtual void ShallowCopy(vtkDataObject *src); 00100 virtual void DeepCopy(vtkDataObject *src); 00102 00106 virtual vtkIdType GetNumberOfPoints(); 00107 00108 //BTX 00109 protected: 00110 vtkCompositeDataSet(); 00111 ~vtkCompositeDataSet(); 00112 00114 void SetNumberOfChildren(unsigned int num); 00115 00117 unsigned int GetNumberOfChildren(); 00118 00121 void SetChild(unsigned int index, vtkDataObject*); 00122 00124 vtkDataObject* GetChild(unsigned int num); 00125 00129 vtkInformation* GetChildMetaData(unsigned int index); 00130 00132 void SetChildMetaData(unsigned int index, vtkInformation* info); 00133 00136 int HasChildMetaData(unsigned int index); 00137 00138 // The internal datastructure. Subclasses need not access this directly. 00139 vtkCompositeDataSetInternals* Internals; 00140 00141 friend class vtkCompositeDataIterator; 00142 private: 00143 vtkCompositeDataSet(const vtkCompositeDataSet&); // Not implemented. 00144 void operator=(const vtkCompositeDataSet&); // Not implemented. 00145 //ETX 00146 }; 00147 00148 #endif 00149 00150