00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageSpatialFilter.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00041 #ifndef __vtkImageSpatialFilter_h 00042 #define __vtkImageSpatialFilter_h 00043 00044 00045 #include "vtkImageToImageFilter.h" 00046 00047 class VTK_IMAGING_EXPORT vtkImageSpatialFilter : public vtkImageToImageFilter 00048 { 00049 public: 00050 static vtkImageSpatialFilter *New(); 00051 vtkTypeRevisionMacro(vtkImageSpatialFilter,vtkImageToImageFilter); 00052 void PrintSelf(ostream& os, vtkIndent indent); 00053 00055 int *GetKernelSize() {return this->KernelSize;} 00056 00058 int *GetKernelMiddle() {return this->KernelMiddle;} 00059 00060 protected: 00061 vtkImageSpatialFilter(); 00062 ~vtkImageSpatialFilter() {}; 00063 00064 int KernelSize[3]; 00065 int KernelMiddle[3]; // Index of kernel origin 00066 int Strides[3]; // Shrink factor 00067 int HandleBoundaries; // Output shrinks if boundaries aren't handled 00068 00069 // Called by the superclass 00070 void ExecuteInformation(); 00071 // Override this method if you have to. 00072 virtual void ExecuteInformation(vtkImageData *inData, vtkImageData *outData); 00073 00074 void ComputeOutputWholeExtent(int extent[6], int handleBoundaries); 00075 void ComputeInputUpdateExtent(int extent[6], int wholeExtent[6]); 00076 00077 private: 00078 vtkImageSpatialFilter(const vtkImageSpatialFilter&); // Not implemented. 00079 void operator=(const vtkImageSpatialFilter&); // Not implemented. 00080 }; 00081 00082 #endif 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092