Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Imaging/vtkImageEuclideanDistance.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageEuclideanDistance.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 void IterativeExecuteData(vtkImageData *in, vtkImageData *out); 00110 00111 protected: 00112 vtkImageEuclideanDistance(); 00113 ~vtkImageEuclideanDistance() {} 00114 00115 double MaximumDistance; 00116 int Initialize; 00117 int ConsiderAnisotropy; 00118 int Algorithm; 00119 00120 // Replaces "EnlargeOutputUpdateExtent" 00121 virtual void AllocateOutputScalars(vtkImageData *outData); 00122 00123 void ExecuteInformation(vtkImageData *input, vtkImageData *output); 00124 void ExecuteInformation() 00125 {this->vtkImageIterateFilter::ExecuteInformation();} 00126 void ComputeInputUpdateExtent(int inExt[6], int outExt[6]); 00127 private: 00128 vtkImageEuclideanDistance(const vtkImageEuclideanDistance&); // Not implemented. 00129 void operator=(const vtkImageEuclideanDistance&); // Not implemented. 00130 }; 00131 00132 #endif 00133 00134 00135 00136 00137 00138 00139 00140 00141 00142