00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00033 #ifndef __vtkImageButterworthLowPass_h
00034 #define __vtkImageButterworthLowPass_h
00035 
00036 
00037 #include "vtkThreadedImageAlgorithm.h"
00038 
00039 class VTK_IMAGING_EXPORT vtkImageButterworthLowPass : public vtkThreadedImageAlgorithm
00040 {
00041 public:
00042   static vtkImageButterworthLowPass *New();
00043   vtkTypeRevisionMacro(vtkImageButterworthLowPass,vtkThreadedImageAlgorithm);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047 
00050   vtkSetVector3Macro(CutOff,double);
00051   void SetCutOff(double v) {this->SetCutOff(v, v, v);}
00052   void SetXCutOff(double v);
00053   void SetYCutOff(double v);
00054   void SetZCutOff(double v);
00055   vtkGetVector3Macro(CutOff,double);
00056   double GetXCutOff() {return this->CutOff[0];}
00057   double GetYCutOff() {return this->CutOff[1];}
00058   double GetZCutOff() {return this->CutOff[2];}
00060 
00062 
00063   vtkSetMacro(Order, int);
00064   vtkGetMacro(Order, int);
00066   
00067   
00068 protected:
00069   vtkImageButterworthLowPass();
00070   ~vtkImageButterworthLowPass() {};
00071 
00072   int Order;
00073   double CutOff[3];
00074   
00075   void ThreadedRequestData( vtkInformation *request,
00076                             vtkInformationVector **inputVector,
00077                             vtkInformationVector *outputVector,
00078                             vtkImageData ***inData, vtkImageData **outData,
00079                             int outExt[6], int id);
00080 private:
00081   vtkImageButterworthLowPass(const vtkImageButterworthLowPass&);  
00082   void operator=(const vtkImageButterworthLowPass&);  
00083 };
00084 
00085 #endif
00086 
00087 
00088