00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00047 #ifndef __vtkImageEuclideanDistance_h
00048 #define __vtkImageEuclideanDistance_h
00049
00050 #include "vtkImageDecomposeFilter.h"
00051
00052 #define VTK_EDT_SAITO_CACHED 0
00053 #define VTK_EDT_SAITO 1
00054
00055 class VTK_IMAGING_EXPORT vtkImageEuclideanDistance : public vtkImageDecomposeFilter
00056 {
00057 public:
00058 static vtkImageEuclideanDistance *New();
00059 vtkTypeRevisionMacro(vtkImageEuclideanDistance,vtkImageDecomposeFilter);
00060 void PrintSelf(ostream& os, vtkIndent indent);
00061
00063
00069 int SplitExtent(int splitExt[6], int startExt[6],
00070 int num, int total);
00072
00074
00078 vtkSetMacro(Initialize, int);
00079 vtkGetMacro(Initialize, int);
00080 vtkBooleanMacro(Initialize, int);
00082
00084
00086 vtkSetMacro(ConsiderAnisotropy, int);
00087 vtkGetMacro(ConsiderAnisotropy, int);
00088 vtkBooleanMacro(ConsiderAnisotropy, int);
00090
00092
00094 vtkSetMacro(MaximumDistance, double);
00095 vtkGetMacro(MaximumDistance, double);
00097
00099
00101 vtkSetMacro(Algorithm, int);
00102 vtkGetMacro(Algorithm, int);
00103 void SetAlgorithmToSaito ()
00104 { this->SetAlgorithm(VTK_EDT_SAITO); }
00105 void SetAlgorithmToSaitoCached ()
00106 { this->SetAlgorithm(VTK_EDT_SAITO_CACHED); }
00108
00109 virtual int IterativeRequestData(vtkInformation*,
00110 vtkInformationVector**,
00111 vtkInformationVector*);
00112
00113 protected:
00114 vtkImageEuclideanDistance();
00115 ~vtkImageEuclideanDistance() {}
00116
00117 double MaximumDistance;
00118 int Initialize;
00119 int ConsiderAnisotropy;
00120 int Algorithm;
00121
00122
00123 virtual void AllocateOutputScalars(vtkImageData *outData);
00124
00125 virtual int IterativeRequestInformation(vtkInformation* in,
00126 vtkInformation* out);
00127 virtual int IterativeRequestUpdateExtent(vtkInformation* in,
00128 vtkInformation* out);
00129
00130 private:
00131 vtkImageEuclideanDistance(const vtkImageEuclideanDistance&);
00132 void operator=(const vtkImageEuclideanDistance&);
00133 };
00134
00135 #endif
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145