00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkImageShrink3D_h
00026 #define __vtkImageShrink3D_h
00027
00028
00029 #include "vtkThreadedImageAlgorithm.h"
00030
00031 class VTK_IMAGING_EXPORT vtkImageShrink3D : public vtkThreadedImageAlgorithm
00032 {
00033 public:
00034 static vtkImageShrink3D *New();
00035 vtkTypeRevisionMacro(vtkImageShrink3D,vtkThreadedImageAlgorithm);
00036 void PrintSelf(ostream& os, vtkIndent indent);
00037
00039
00040 vtkSetVector3Macro(ShrinkFactors,int);
00041 vtkGetVector3Macro(ShrinkFactors,int);
00043
00045
00046 vtkSetVector3Macro(Shift,int);
00047 vtkGetVector3Macro(Shift,int);
00049
00051
00056 void SetAveraging(int);
00057 int GetAveraging() {return this->GetMean();};
00058 vtkBooleanMacro(Averaging,int);
00060
00061 void SetMean(int);
00062 vtkGetMacro(Mean,int);
00063 vtkBooleanMacro(Mean,int);
00064
00065 void SetMinimum(int);
00066 vtkGetMacro(Minimum,int);
00067 vtkBooleanMacro(Minimum,int);
00068
00069 void SetMaximum(int);
00070 vtkGetMacro(Maximum,int);
00071 vtkBooleanMacro(Maximum,int);
00072
00073 void SetMedian(int);
00074 vtkGetMacro(Median,int);
00075 vtkBooleanMacro(Median,int);
00076
00077 protected:
00078 vtkImageShrink3D();
00079 ~vtkImageShrink3D() {};
00080
00081 int ShrinkFactors[3];
00082 int Shift[3];
00083 int Mean;
00084 int Minimum;
00085 int Maximum;
00086 int Median;
00087
00088 virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00089 virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00090
00091 void ThreadedRequestData(vtkInformation *request,
00092 vtkInformationVector **inputVector,
00093 vtkInformationVector *outputVector,
00094 vtkImageData ***inData, vtkImageData **outData,
00095 int ext[6], int id);
00096
00097 void InternalRequestUpdateExtent(int *inExt, int *outExt);
00098
00099 private:
00100 vtkImageShrink3D(const vtkImageShrink3D&);
00101 void operator=(const vtkImageShrink3D&);
00102 };
00103
00104 #endif
00105
00106
00107