00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkImageSpatialAlgorithm_h
00027 #define __vtkImageSpatialAlgorithm_h
00028
00029
00030 #include "vtkThreadedImageAlgorithm.h"
00031
00032 class VTK_IMAGING_EXPORT vtkImageSpatialAlgorithm : public vtkThreadedImageAlgorithm
00033 {
00034 public:
00035 static vtkImageSpatialAlgorithm *New();
00036 vtkTypeMacro(vtkImageSpatialAlgorithm,vtkThreadedImageAlgorithm);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040
00041 vtkGetVector3Macro(KernelSize,int);
00043
00045
00046 vtkGetVector3Macro(KernelMiddle,int);
00048
00049 protected:
00050 vtkImageSpatialAlgorithm();
00051 ~vtkImageSpatialAlgorithm() {};
00052
00053 int KernelSize[3];
00054 int KernelMiddle[3];
00055 int HandleBoundaries;
00056
00057 virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00058
00059 void ComputeOutputWholeExtent(int extent[6], int handleBoundaries);
00060 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00061 void InternalRequestUpdateExtent(int *extent, int *inExtent, int *wholeExtent);
00062
00063 private:
00064 vtkImageSpatialAlgorithm(const vtkImageSpatialAlgorithm&);
00065 void operator=(const vtkImageSpatialAlgorithm&);
00066 };
00067
00068 #endif
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078