00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00031 #ifndef __vtkImageGradient_h
00032 #define __vtkImageGradient_h
00033 
00034 #include "vtkThreadedImageAlgorithm.h"
00035 
00036 class VTK_IMAGING_EXPORT vtkImageGradient : public vtkThreadedImageAlgorithm
00037 {
00038 public:
00039   static vtkImageGradient *New();
00040   vtkTypeMacro(vtkImageGradient,vtkThreadedImageAlgorithm);
00041   void PrintSelf(ostream& os, vtkIndent indent);
00042 
00044 
00045   vtkSetClampMacro(Dimensionality,int,2,3);
00046   vtkGetMacro(Dimensionality,int);
00048 
00050 
00054   vtkSetMacro(HandleBoundaries, int);
00055   vtkGetMacro(HandleBoundaries, int);
00056   vtkBooleanMacro(HandleBoundaries, int);
00058 
00059 protected:
00060   vtkImageGradient();
00061   ~vtkImageGradient() {};
00062 
00063   int HandleBoundaries;
00064   int Dimensionality;
00065 
00066   virtual int RequestInformation (vtkInformation*,
00067                                   vtkInformationVector**,
00068                                   vtkInformationVector*);
00069   virtual int RequestUpdateExtent(vtkInformation*,
00070                                   vtkInformationVector**,
00071                                   vtkInformationVector*);
00072   virtual int RequestData(vtkInformation*,
00073                           vtkInformationVector**,
00074                           vtkInformationVector*);
00075 
00076   void ThreadedRequestData(vtkInformation*,
00077                            vtkInformationVector**,
00078                            vtkInformationVector*,
00079                            vtkImageData*** inData,
00080                            vtkImageData** outData,
00081                            int outExt[6],
00082                            int threadId);
00083 private:
00084   vtkImageGradient(const vtkImageGradient&);  
00085   void operator=(const vtkImageGradient&);  
00086 };
00087 
00088 #endif
00089 
00090 
00091