VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkEnsembleSource.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 =========================================================================*/ 00029 #ifndef vtkEnsembleSource_h 00030 #define vtkEnsembleSource_h 00031 00032 #include "vtkCommonExecutionModelModule.h" // For export macro 00033 #include "vtkAlgorithm.h" 00034 00035 struct vtkEnsembleSourceInternal; 00036 class vtkTable; 00037 class vtkInformationDataObjectMetaDataKey; 00038 class vtkInformationIntegerRequestKey; 00039 class vtkInformationIntegerKey; 00040 00041 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkEnsembleSource : public vtkAlgorithm 00042 { 00043 public: 00044 static vtkEnsembleSource *New(); 00045 vtkTypeMacro(vtkEnsembleSource,vtkAlgorithm); 00046 void PrintSelf(ostream& os, vtkIndent indent); 00047 00051 void AddMember(vtkAlgorithm*); 00052 00054 void RemoveAllMembers(); 00055 00057 unsigned int GetNumberOfMembers(); 00058 00060 00065 vtkSetMacro(CurrentMember, unsigned int); 00066 vtkGetMacro(CurrentMember, unsigned int); 00068 00072 void SetMetaData(vtkTable*); 00073 00075 static vtkInformationDataObjectMetaDataKey* META_DATA(); 00076 00078 static vtkInformationIntegerRequestKey* UPDATE_MEMBER(); 00079 00080 protected: 00081 vtkEnsembleSource(); 00082 ~vtkEnsembleSource(); 00083 00084 static vtkInformationIntegerKey* DATA_MEMBER(); 00085 00086 friend class vtkInformationEnsembleMemberRequestKey; 00087 00088 virtual int ProcessRequest(vtkInformation *request, 00089 vtkInformationVector **inputVector, 00090 vtkInformationVector *outputVector); 00091 virtual int FillOutputPortInformation(int, vtkInformation*); 00092 00093 vtkAlgorithm* GetCurrentReader(vtkInformation*); 00094 00095 vtkEnsembleSourceInternal* Internal; 00096 unsigned int CurrentMember; 00097 00098 vtkTable* MetaData; 00099 00100 private: 00101 vtkEnsembleSource(const vtkEnsembleSource&); // Not implemented. 00102 void operator=(const vtkEnsembleSource&); // Not implemented. 00103 }; 00104 00105 #endif