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