Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Imaging/vtkImageSeparableConvolution.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageSeparableConvolution.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 =========================================================================*/ 00035 #ifndef __vtkImageSeparableConvolution_h 00036 #define __vtkImageSeparableConvolution_h 00037 00038 00039 #include "vtkImageDecomposeFilter.h" 00040 00041 class vtkFloatArray; 00042 00043 class VTK_IMAGING_EXPORT vtkImageSeparableConvolution : public vtkImageDecomposeFilter 00044 { 00045 public: 00046 static vtkImageSeparableConvolution *New(); 00047 vtkTypeRevisionMacro(vtkImageSeparableConvolution,vtkImageDecomposeFilter); 00048 00049 00050 // Set the X convolution kernel, a null value indicates no convolution to be done. 00051 // The kernel must be of odd length 00052 virtual void SetXKernel(vtkFloatArray*); 00053 vtkGetObjectMacro ( XKernel, vtkFloatArray ); 00054 00055 // Set the Y convolution kernel, a null value indicates no convolution to be done 00056 // The kernel must be of odd length 00057 virtual void SetYKernel(vtkFloatArray*); 00058 vtkGetObjectMacro ( YKernel, vtkFloatArray ); 00059 00060 // Set the Z convolution kernel, a null value indicates no convolution to be done 00061 // The kernel must be of odd length 00062 virtual void SetZKernel(vtkFloatArray*); 00063 vtkGetObjectMacro ( ZKernel, vtkFloatArray ); 00064 00065 void PrintSelf(ostream& os, vtkIndent indent); 00066 00069 unsigned long int GetMTime(); 00070 00071 protected: 00072 vtkImageSeparableConvolution(); 00073 ~vtkImageSeparableConvolution(); 00074 00075 vtkFloatArray* XKernel; 00076 vtkFloatArray* YKernel; 00077 vtkFloatArray* ZKernel; 00078 00079 // void AllocateOutputScalars(vtkImageData *outData); 00080 void ComputeInputUpdateExtent(int inExt[6], int outExt[6]); 00081 void IterativeExecuteData(vtkImageData *inData, vtkImageData *outData); 00082 void ExecuteInformation(vtkImageData *input, vtkImageData *output); 00083 void ExecuteInformation() 00084 {this->vtkImageIterateFilter::ExecuteInformation();} 00085 00086 00087 //void AllocateOutputScalars(vtkImageData *outData); 00088 00089 00090 private: 00091 vtkImageSeparableConvolution(const vtkImageSeparableConvolution&); // Not implemented. 00092 void operator=(const vtkImageSeparableConvolution&); // Not implemented. 00093 }; 00094 00095 #endif 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105