00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00078 #ifndef __vtkImageEuclideanDistance_h
00079 #define __vtkImageEuclideanDistance_h
00080
00081 #include "vtkImageDecomposeFilter.h"
00082
00083 #define VTK_EDT_SAITO_CACHED 0
00084 #define VTK_EDT_SAITO 1
00085
00086 class VTK_IMAGING_EXPORT vtkImageEuclideanDistance : public vtkImageDecomposeFilter
00087 {
00088 public:
00089 static vtkImageEuclideanDistance *New();
00090 vtkTypeMacro(vtkImageEuclideanDistance,vtkImageDecomposeFilter);
00091 void PrintSelf(ostream& os, vtkIndent indent);
00092
00094
00100 int SplitExtent(int splitExt[6], int startExt[6],
00101 int num, int total);
00103
00105
00109 vtkSetMacro(Initialize, int);
00110 vtkGetMacro(Initialize, int);
00111 vtkBooleanMacro(Initialize, int);
00113
00115
00117 vtkSetMacro(ConsiderAnisotropy, int);
00118 vtkGetMacro(ConsiderAnisotropy, int);
00119 vtkBooleanMacro(ConsiderAnisotropy, int);
00121
00123
00125 vtkSetMacro(MaximumDistance, float);
00126 vtkGetMacro(MaximumDistance, float);
00128
00130
00132 vtkSetMacro(Algorithm, int);
00133 vtkGetMacro(Algorithm, int);
00134 void SetAlgorithmToSaito ()
00135 { this->SetAlgorithm(VTK_EDT_SAITO); }
00136 void SetAlgorithmToSaitoCached ()
00137 { this->SetAlgorithm(VTK_EDT_SAITO_CACHED); }
00139
00140 void IterativeExecuteData(vtkImageData *in, vtkImageData *out);
00141
00142 protected:
00143 vtkImageEuclideanDistance();
00144 ~vtkImageEuclideanDistance() {}
00145
00146 float MaximumDistance;
00147 int Initialize;
00148 int ConsiderAnisotropy;
00149 int Algorithm;
00150
00151
00152 virtual void AllocateOutputScalars(vtkImageData *outData);
00153
00154 void ExecuteInformation(vtkImageData *input, vtkImageData *output);
00155 void ExecuteInformation()
00156 {this->vtkImageIterateFilter::ExecuteInformation();}
00157 void ComputeInputUpdateExtent(int inExt[6], int outExt[6]);
00158 private:
00159 vtkImageEuclideanDistance(const vtkImageEuclideanDistance&);
00160 void operator=(const vtkImageEuclideanDistance&);
00161 };
00162
00163 #endif
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173