VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageShrink3D.h,v $ 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 =========================================================================*/ 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&); // Not implemented. 00101 void operator=(const vtkImageShrink3D&); // Not implemented. 00102 }; 00103 00104 #endif 00105 00106 00107