00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkGroup_h
00026 #define __vtkGroup_h
00027
00028 #include "vtkSource.h"
00029
00030 class vtkDataSet;
00031
00032 class VTK_EXPORT vtkGroup : public vtkSource
00033 {
00034 public:
00035 static vtkGroup *New();
00036
00037 vtkTypeRevisionMacro(vtkGroup,vtkSource);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00041 void AddInput(vtkDataSet *in);
00042
00044
00045 vtkDataSet *GetInput(int idx);
00046 vtkDataSet *GetInput()
00047 {return this->GetInput( 0 );}
00049
00051
00052 virtual int GetNumberOfOutputs();
00053 vtkDataSet *GetOutput(int idx);
00054 vtkDataSet *GetOutput()
00055 {return this->GetOutput( 0 );}
00057
00059 virtual void ComputeInputUpdateExtents( vtkDataObject *output );
00060
00061 protected:
00062 vtkGroup();
00063 ~vtkGroup();
00064
00065
00066 virtual void Execute();
00067 virtual void ExecuteInformation();
00068 virtual void PropagateUpdateExtent(vtkDataObject *output);
00069
00070 private:
00071
00072
00073 void AddInput(vtkDataObject *)
00074 { vtkErrorMacro( << "AddInput() must be called with a vtkDataSet not a vtkDataObject."); };
00075 void RemoveInput(vtkDataObject *input)
00076 { this->vtkProcessObject::RemoveInput(input); };
00077 private:
00078 vtkGroup(const vtkGroup&);
00079 void operator=(const vtkGroup&);
00080 };
00081
00082
00083 #endif
00084
00085