00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkImageAlgorithm_h
00028 #define __vtkImageAlgorithm_h
00029
00030 #include "vtkAlgorithm.h"
00031
00032 class vtkDataSet;
00033 class vtkImageData;
00034
00035 class VTK_FILTERING_EXPORT vtkImageAlgorithm : public vtkAlgorithm
00036 {
00037 public:
00038 vtkTypeMacro(vtkImageAlgorithm,vtkAlgorithm);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00042
00043 vtkImageData* GetOutput();
00044 vtkImageData* GetOutput(int);
00045 virtual void SetOutput(vtkDataObject* d);
00047
00049
00050 virtual int ProcessRequest(vtkInformation*,
00051 vtkInformationVector**,
00052 vtkInformationVector*);
00054
00056
00063 void SetInput(vtkDataObject *);
00064 void SetInput(int, vtkDataObject*);
00066
00067
00068
00069 vtkDataObject *GetInput(int port);
00070 vtkDataObject *GetInput() { return this->GetInput(0); };
00071 vtkImageData *GetImageDataInput(int port);
00072
00074
00078 virtual void AddInput(vtkDataObject *);
00079 virtual void AddInput(int, vtkDataObject*);
00081
00082 protected:
00083 vtkImageAlgorithm();
00084 ~vtkImageAlgorithm();
00085
00086
00087 virtual int RequestInformation(vtkInformation* request,
00088 vtkInformationVector** inputVector,
00089 vtkInformationVector* outputVector);
00090 virtual int RequestUpdateExtent(vtkInformation*,
00091 vtkInformationVector**,
00092 vtkInformationVector*);
00093
00094
00095
00096 virtual void CopyInputArrayAttributesToOutput(vtkInformation* request,
00097 vtkInformationVector** inputVector,
00098 vtkInformationVector* outputVector);
00099
00100
00102
00104 virtual int RequestData(vtkInformation *request,
00105 vtkInformationVector** inputVector,
00106 vtkInformationVector* outputVector);
00108
00110
00111 virtual void ExecuteData(vtkDataObject *output);
00112 virtual void Execute();
00114
00115
00116 virtual void AllocateOutputData(vtkImageData *out,
00117 int *uExtent);
00118 virtual vtkImageData *AllocateOutputData(vtkDataObject *out);
00119
00120
00121 virtual void CopyAttributeData(vtkImageData *in, vtkImageData *out,
00122 vtkInformationVector** inputVector);
00123
00124
00125 virtual int FillOutputPortInformation(int port, vtkInformation* info);
00126 virtual int FillInputPortInformation(int port, vtkInformation* info);
00127
00128 private:
00129 vtkImageAlgorithm(const vtkImageAlgorithm&);
00130 void operator=(const vtkImageAlgorithm&);
00131 };
00132
00133 #endif
00134
00135
00136
00137
00138
00139
00140