Orfeo Toolbox  3.16
itkMinMaxCurvatureFlowFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkMinMaxCurvatureFlowFunction.h,v $
5  Language: C++
6  Date: $Date: 2009-01-24 20:03:00 $
7  Version: $Revision: 1.16 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkMinMaxCurvatureFlowFunction_h
18 #define __itkMinMaxCurvatureFlowFunction_h
19 
21 #include "itkMacro.h"
23 
24 namespace itk {
25 
40 template <class TImage>
42  public CurvatureFlowFunction<TImage>
43 {
44 public:
50 
52  itkNewMacro(Self);
53 
55  itkTypeMacro( MinMaxCurvatureFlowFunction,
57 
59  typedef typename Superclass::ImageType ImageType;
60  typedef typename Superclass::PixelType PixelType;
64 
66  itkStaticConstMacro(ImageDimension, unsigned int,
67  Superclass::ImageDimension);
68 
71 
73  void SetStencilRadius( const RadiusValueType radius );
74  const RadiusValueType &GetRadiusValueType() const
75  { return m_StencilRadius; }
76 
79  virtual PixelType ComputeUpdate(const NeighborhoodType &neighborhood,
80  void * globalData,
81  const FloatOffsetType& offset = FloatOffsetType(0.0)
82  );
83 
84 protected:
87 
90 
93  void InitializeStencilOperator();
94 
95 
96 private:
97  MinMaxCurvatureFlowFunction(const Self&); //purposely not implemented
98  void operator=(const Self&); //purposely not implemented
99 
101 
102  // To control overloaded versions of ComputeThreshold
103  struct DispatchBase {};
104  template<signed int VDimension>
105  struct Dispatch : DispatchBase {};
106 
109  virtual PixelType ComputeThreshold( const Dispatch<2> &,
110  const NeighborhoodType & neighborhood ) const;
111  virtual PixelType ComputeThreshold( const Dispatch<3> &,
112  const NeighborhoodType & neighborhood ) const;
113  virtual PixelType ComputeThreshold( const DispatchBase &,
114  const NeighborhoodType & neighborhood ) const;
115 };
116 
117 }// end namespace itk
118 
119 #ifndef ITK_MANUAL_INSTANTIATION
121 #endif
122 
123 #endif

Generated at Sat Feb 2 2013 23:52:51 for Orfeo Toolbox with doxygen 1.8.1.1