00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageSpatialFilter.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 =========================================================================*/ 00033 #ifndef __vtkImageSpatialFilter_h 00034 #define __vtkImageSpatialFilter_h 00035 00036 00037 #include "vtkImageToImageFilter.h" 00038 00039 class VTK_IMAGING_EXPORT vtkImageSpatialFilter : public vtkImageToImageFilter 00040 { 00041 public: 00042 static vtkImageSpatialFilter *New(); 00043 vtkTypeMacro(vtkImageSpatialFilter,vtkImageToImageFilter); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00048 vtkGetVector3Macro(KernelSize,int); 00050 00052 00053 vtkGetVector3Macro(KernelMiddle,int); 00055 00056 protected: 00057 vtkImageSpatialFilter(); 00058 ~vtkImageSpatialFilter() {}; 00059 00060 int KernelSize[3]; 00061 int KernelMiddle[3]; // Index of kernel origin 00062 int HandleBoundaries; // Output shrinks if boundaries aren't handled 00063 00064 // Called by the superclass 00065 void ExecuteInformation(); 00066 // Override this method if you have to. 00067 virtual void ExecuteInformation(vtkImageData *inData, vtkImageData *outData); 00068 00069 void ComputeOutputWholeExtent(int extent[6], int handleBoundaries); 00070 void ComputeInputUpdateExtent(int extent[6], int wholeExtent[6]); 00071 00072 private: 00073 vtkImageSpatialFilter(const vtkImageSpatialFilter&); // Not implemented. 00074 void operator=(const vtkImageSpatialFilter&); // Not implemented. 00075 }; 00076 00077 #endif 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087