00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageSpatialFilter.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 =========================================================================*/ 00026 #ifndef __vtkImageSpatialFilter_h 00027 #define __vtkImageSpatialFilter_h 00028 00029 00030 #include "vtkImageToImageFilter.h" 00031 00032 class VTK_IMAGING_EXPORT vtkImageSpatialFilter : public vtkImageToImageFilter 00033 { 00034 public: 00035 static vtkImageSpatialFilter *New(); 00036 vtkTypeRevisionMacro(vtkImageSpatialFilter,vtkImageToImageFilter); 00037 void PrintSelf(ostream& os, vtkIndent indent); 00038 00040 int *GetKernelSize() {return this->KernelSize;} 00041 00043 int *GetKernelMiddle() {return this->KernelMiddle;} 00044 00045 protected: 00046 vtkImageSpatialFilter(); 00047 ~vtkImageSpatialFilter() {}; 00048 00049 int KernelSize[3]; 00050 int KernelMiddle[3]; // Index of kernel origin 00051 int Strides[3]; // Shrink factor 00052 int HandleBoundaries; // Output shrinks if boundaries aren't handled 00053 00054 // Called by the superclass 00055 void ExecuteInformation(); 00056 // Override this method if you have to. 00057 virtual void ExecuteInformation(vtkImageData *inData, vtkImageData *outData); 00058 00059 void ComputeOutputWholeExtent(int extent[6], int handleBoundaries); 00060 void ComputeInputUpdateExtent(int extent[6], int wholeExtent[6]); 00061 00062 private: 00063 vtkImageSpatialFilter(const vtkImageSpatialFilter&); // Not implemented. 00064 void operator=(const vtkImageSpatialFilter&); // Not implemented. 00065 }; 00066 00067 #endif 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077