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 "vtkImagingCoreModule.h" // For export macro 00033 #include "vtkThreadedImageAlgorithm.h" 00034 00035 class VTKIMAGINGCORE_EXPORT vtkImageShrink3D : public vtkThreadedImageAlgorithm 00036 { 00037 public: 00038 static vtkImageShrink3D *New(); 00039 vtkTypeMacro(vtkImageShrink3D,vtkThreadedImageAlgorithm); 00040 void PrintSelf(ostream& os, vtkIndent indent); 00041 00043 00044 vtkSetVector3Macro(ShrinkFactors,int); 00045 vtkGetVector3Macro(ShrinkFactors,int); 00047 00049 00050 vtkSetVector3Macro(Shift,int); 00051 vtkGetVector3Macro(Shift,int); 00053 00055 00060 void SetAveraging(int); 00061 int GetAveraging() {return this->GetMean();}; 00062 vtkBooleanMacro(Averaging,int); 00064 00065 void SetMean(int); 00066 vtkGetMacro(Mean,int); 00067 vtkBooleanMacro(Mean,int); 00068 00069 void SetMinimum(int); 00070 vtkGetMacro(Minimum,int); 00071 vtkBooleanMacro(Minimum,int); 00072 00073 void SetMaximum(int); 00074 vtkGetMacro(Maximum,int); 00075 vtkBooleanMacro(Maximum,int); 00076 00077 void SetMedian(int); 00078 vtkGetMacro(Median,int); 00079 vtkBooleanMacro(Median,int); 00080 00081 protected: 00082 vtkImageShrink3D(); 00083 ~vtkImageShrink3D() {} 00084 00085 int ShrinkFactors[3]; 00086 int Shift[3]; 00087 int Mean; 00088 int Minimum; 00089 int Maximum; 00090 int Median; 00091 00092 virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00093 virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00094 00095 void ThreadedRequestData(vtkInformation *request, 00096 vtkInformationVector **inputVector, 00097 vtkInformationVector *outputVector, 00098 vtkImageData ***inData, vtkImageData **outData, 00099 int ext[6], int id); 00100 00101 void InternalRequestUpdateExtent(int *inExt, int *outExt); 00102 00103 private: 00104 vtkImageShrink3D(const vtkImageShrink3D&); // Not implemented. 00105 void operator=(const vtkImageShrink3D&); // Not implemented. 00106 }; 00107 00108 #endif 00109 00110 00111