VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageShrink3D.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 vtkTypeMacro(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&); // Not implemented. 00104 void operator=(const vtkImageShrink3D&); // Not implemented. 00105 }; 00106 00107 #endif 00108 00109 00110