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

# 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 =========================================================================*/
    00062 #ifndef __vtkImageEuclideanDistance_h
    00063 #define __vtkImageEuclideanDistance_h
    00064
    00065 #include "vtkImageDecomposeFilter.h"
    00066
    00067 #define VTK_EDT_SAITO_CACHED 0
    00068 #define VTK_EDT_SAITO 1
    00069
    00070 class VTK_IMAGING_EXPORT vtkImageEuclideanDistance : public vtkImageDecomposeFilter
    00071 {
    00072 public:
    00073   static vtkImageEuclideanDistance *New();
    00074   vtkTypeRevisionMacro(vtkImageEuclideanDistance,vtkImageDecomposeFilter);
    00075   void PrintSelf(ostream& os, vtkIndent indent);
    00076
    00078
    00084   int SplitExtent(int splitExt[6], int startExt[6],
    00085                   int num, int total);
    00087
    00089
    00093   vtkSetMacro(Initialize, int);
    00094   vtkGetMacro(Initialize, int);
    00095   vtkBooleanMacro(Initialize, int);
    00097
    00099
    00101   vtkSetMacro(ConsiderAnisotropy, int);
    00102   vtkGetMacro(ConsiderAnisotropy, int);
    00103   vtkBooleanMacro(ConsiderAnisotropy, int);
    00105
    00107
    00109   vtkSetMacro(MaximumDistance, float);
    00110   vtkGetMacro(MaximumDistance, float);
    00112
    00114
    00116   vtkSetMacro(Algorithm, int);
    00117   vtkGetMacro(Algorithm, int);
    00118   void SetAlgorithmToSaito ()
    00119     { this->SetAlgorithm(VTK_EDT_SAITO); }
    00120   void SetAlgorithmToSaitoCached ()
    00121     { this->SetAlgorithm(VTK_EDT_SAITO_CACHED); }
    00123
    00124   void IterativeExecuteData(vtkImageData *in, vtkImageData *out);
    00125
    00126 protected:
    00127   vtkImageEuclideanDistance();
    00128   ~vtkImageEuclideanDistance() {}
    00129
    00130   float MaximumDistance;
    00131   int Initialize;
    00132   int ConsiderAnisotropy;
    00133   int Algorithm;
    00134
    00135   // Replaces "EnlargeOutputUpdateExtent"
    00136   virtual void AllocateOutputScalars(vtkImageData *outData);
    00137
    00138   void ExecuteInformation(vtkImageData *input, vtkImageData *output);
    00139   void ExecuteInformation()
    00140     {this->vtkImageIterateFilter::ExecuteInformation();}
    00141   void ComputeInputUpdateExtent(int inExt[6], int outExt[6]);
    00142 private:
    00143   vtkImageEuclideanDistance(const vtkImageEuclideanDistance&);  // Not implemented.
    00144   void operator=(const vtkImageEuclideanDistance&);  // Not implemented.
    00145 };
    00146
    00147 #endif
    00148
    00149
    00150
    00151
    00152
    00153
    00154
    00155
    00156
    00157