00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00036 #ifndef __vtkDataObjectAlgorithm_h
00037 #define __vtkDataObjectAlgorithm_h
00038
00039 #include "vtkAlgorithm.h"
00040 #include "vtkDataObject.h"
00041
00042 class vtkDataSet;
00043 class vtkDataObject;
00044
00045 class VTK_FILTERING_EXPORT vtkDataObjectAlgorithm : public vtkAlgorithm
00046 {
00047 public:
00048 static vtkDataObjectAlgorithm *New();
00049 vtkTypeMacro(vtkDataObjectAlgorithm,vtkAlgorithm);
00050 void PrintSelf(ostream& os, vtkIndent indent);
00051
00053
00054 vtkDataObject* GetOutput();
00055 vtkDataObject* GetOutput(int);
00056 virtual void SetOutput(vtkDataObject* d);
00058
00060
00061 virtual int ProcessRequest(vtkInformation*,
00062 vtkInformationVector**,
00063 vtkInformationVector*);
00065
00066
00067
00068 vtkDataObject* GetInput();
00069 vtkDataObject *GetInput(int port);
00070
00072
00079 void SetInput(vtkDataObject *);
00080 void SetInput(int, vtkDataObject*);
00082
00084
00088 void AddInput(vtkDataObject *);
00089 void AddInput(int, vtkDataObject*);
00091
00092 protected:
00093 vtkDataObjectAlgorithm();
00094 ~vtkDataObjectAlgorithm();
00095
00096
00097 virtual int RequestInformation(vtkInformation* request,
00098 vtkInformationVector** inputVector,
00099 vtkInformationVector* outputVector);
00100
00102
00104 virtual int RequestDataObject(vtkInformation*,
00105 vtkInformationVector**,
00106 vtkInformationVector*)
00107 {
00108 return 1;
00109 }
00111
00112 virtual int RequestData(vtkInformation* request,
00113 vtkInformationVector** inputVector,
00114 vtkInformationVector* outputVector);
00115
00117
00119 virtual int RequestUpdateExtent(vtkInformation*,
00120 vtkInformationVector**,
00121 vtkInformationVector*)
00122 {
00123 return 1;
00124 };
00126
00131 int UpdateExtentIsEmpty(vtkDataObject *output);
00132
00134
00135 virtual void ExecuteData(vtkDataObject *output);
00136 virtual void Execute();
00138
00139
00140 virtual int FillOutputPortInformation(int port, vtkInformation* info);
00141 virtual int FillInputPortInformation(int port, vtkInformation* info);
00142
00143 private:
00144 vtkDataObjectAlgorithm(const vtkDataObjectAlgorithm&);
00145 void operator=(const vtkDataObjectAlgorithm&);
00146 };
00147
00148 #endif