00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00033 #ifndef __vtkImageGradientMagnitude_h
00034 #define __vtkImageGradientMagnitude_h
00035 
00036 
00037 #include "vtkThreadedImageAlgorithm.h"
00038 
00039 class VTK_IMAGING_EXPORT vtkImageGradientMagnitude : public vtkThreadedImageAlgorithm
00040 {
00041 public:
00042   static vtkImageGradientMagnitude *New();
00043   vtkTypeMacro(vtkImageGradientMagnitude,vtkThreadedImageAlgorithm);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045   
00047 
00049   vtkSetMacro(HandleBoundaries, int);
00050   vtkGetMacro(HandleBoundaries, int);
00051   vtkBooleanMacro(HandleBoundaries, int);
00053 
00055 
00056   vtkSetClampMacro(Dimensionality,int,2,3);
00057   vtkGetMacro(Dimensionality,int);
00059   
00060 protected:
00061   vtkImageGradientMagnitude();
00062   ~vtkImageGradientMagnitude() {};
00063 
00064   int HandleBoundaries;
00065   int Dimensionality;
00066 
00067   virtual int RequestInformation (vtkInformation*,
00068                                   vtkInformationVector**,
00069                                   vtkInformationVector*);
00070   virtual int RequestUpdateExtent(vtkInformation*,
00071                                   vtkInformationVector**,
00072                                   vtkInformationVector*);
00073 
00074   void ThreadedExecute (vtkImageData *inData, vtkImageData *outData,
00075                        int extent[6], int id);
00076 private:
00077   vtkImageGradientMagnitude(const vtkImageGradientMagnitude&);  
00078   void operator=(const vtkImageGradientMagnitude&);  
00079 };
00080 
00081 #endif
00082 
00083 
00084