00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00026 #ifndef __vtkImageRange3D_h
00027 #define __vtkImageRange3D_h
00028 
00029 
00030 #include "vtkImageSpatialAlgorithm.h"
00031 
00032 class vtkImageEllipsoidSource;
00033 
00034 class VTK_IMAGING_EXPORT vtkImageRange3D : public vtkImageSpatialAlgorithm
00035 {
00036 public:
00037   static vtkImageRange3D *New();
00038   vtkTypeMacro(vtkImageRange3D,vtkImageSpatialAlgorithm);
00039   void PrintSelf(ostream& os, vtkIndent indent);
00040   
00044   void SetKernelSize(int size0, int size1, int size2);
00045   
00046 protected:
00047   vtkImageRange3D();
00048   ~vtkImageRange3D();
00049 
00050   vtkImageEllipsoidSource *Ellipse;
00051     
00052   virtual int RequestInformation (vtkInformation *request,
00053                                   vtkInformationVector **inputVector,
00054                                   vtkInformationVector *outputVector);
00055   void ThreadedRequestData(vtkInformation *request,
00056                            vtkInformationVector **inputVector,
00057                            vtkInformationVector *outputVector,
00058                            vtkImageData ***inData, vtkImageData **outData, 
00059                            int extent[6], int id);
00060   virtual int RequestData(vtkInformation *request,
00061                           vtkInformationVector **inputVector,
00062                           vtkInformationVector *outputVector);
00063 
00064 private:
00065   vtkImageRange3D(const vtkImageRange3D&);  
00066   void operator=(const vtkImageRange3D&);  
00067 };
00068 
00069 #endif