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 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00051 #ifndef __vtkImageEuclideanDistance_h 00052 #define __vtkImageEuclideanDistance_h 00053 00054 #include "vtkImageDecomposeFilter.h" 00055 00056 #define VTK_EDT_SAITO_CACHED 0 00057 #define VTK_EDT_SAITO 1 00058 00059 class VTK_IMAGING_EXPORT vtkImageEuclideanDistance : public vtkImageDecomposeFilter 00060 { 00061 public: 00062 static vtkImageEuclideanDistance *New(); 00063 vtkTypeRevisionMacro(vtkImageEuclideanDistance,vtkImageDecomposeFilter); 00064 void PrintSelf(ostream& os, vtkIndent indent); 00065 00067 00073 int SplitExtent(int splitExt[6], int startExt[6], 00074 int num, int total); 00076 00078 00082 vtkSetMacro(Initialize, int); 00083 vtkGetMacro(Initialize, int); 00084 vtkBooleanMacro(Initialize, int); 00086 00088 00090 vtkSetMacro(ConsiderAnisotropy, int); 00091 vtkGetMacro(ConsiderAnisotropy, int); 00092 vtkBooleanMacro(ConsiderAnisotropy, int); 00094 00096 00098 vtkSetMacro(MaximumDistance, float); 00099 vtkGetMacro(MaximumDistance, float); 00101 00103 00105 vtkSetMacro(Algorithm, int); 00106 vtkGetMacro(Algorithm, int); 00107 void SetAlgorithmToSaito () 00108 { this->SetAlgorithm(VTK_EDT_SAITO); } 00109 void SetAlgorithmToSaitoCached () 00110 { this->SetAlgorithm(VTK_EDT_SAITO_CACHED); } 00112 00113 void IterativeExecuteData(vtkImageData *in, vtkImageData *out); 00114 00115 protected: 00116 vtkImageEuclideanDistance(); 00117 ~vtkImageEuclideanDistance() {} 00118 00119 float MaximumDistance; 00120 int Initialize; 00121 int ConsiderAnisotropy; 00122 int Algorithm; 00123 00124 // Replaces "EnlargeOutputUpdateExtent" 00125 virtual void AllocateOutputScalars(vtkImageData *outData); 00126 00127 void ExecuteInformation(vtkImageData *input, vtkImageData *output); 00128 void ExecuteInformation() 00129 {this->vtkImageIterateFilter::ExecuteInformation();} 00130 void ComputeInputUpdateExtent(int inExt[6], int outExt[6]); 00131 private: 00132 vtkImageEuclideanDistance(const vtkImageEuclideanDistance&); // Not implemented. 00133 void operator=(const vtkImageEuclideanDistance&); // Not implemented. 00134 }; 00135 00136 #endif 00137 00138 00139 00140 00141 00142 00143 00144 00145 00146