]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Algorithms/GulsunTekMedialness.h
...
[cpPlugins.git] / lib / cpExtensions / Algorithms / GulsunTekMedialness.h
1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
4
5 #ifndef __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
6 #define __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
7
8 #include <vector>
9 #include <cpExtensions/Algorithms/GradientFunctionBase.h>
10
11 namespace cpExtensions
12   {
13     namespace Algorithms
14     {
15       /**
16        */
17       template< class G >
18       class GulsunTekMedialness
19         : public GradientFunctionBase< G >
20       {
21       public:
22         // Standard itk types
23         typedef GulsunTekMedialness             Self;
24         typedef GradientFunctionBase< G >       Superclass;
25         typedef itk::SmartPointer< Self >       Pointer;
26         typedef itk::SmartPointer< const Self > ConstPointer;
27
28         // Types from superclass
29         typedef typename Superclass::TGradient  TGradient;
30         typedef typename Superclass::TVector    TVector;
31         typedef typename Superclass::TScalar    TScalar;
32         typedef typename Superclass::TInput     TInput;
33         typedef typename Superclass::TOutput    TOutput;
34         typedef typename Superclass::TPoint     TPoint;
35         typedef typename Superclass::TContIndex TContIndex;
36         typedef typename Superclass::TIndex     TIndex;
37         typedef typename Superclass::TBuffer    TBuffer;
38
39         typedef typename TIndex::OffsetType TOffset;
40         typedef std::vector< double >       TProfile;
41         typedef std::vector< TOffset >      TOffsets;
42
43       public:
44         itkNewMacro( Self );
45         itkTypeMacro( GulsunTekMedialness, GradientFunctionBase );
46
47         itkGetConstMacro( MinRadius, double );
48         itkGetConstMacro( MaxRadius, double );
49         itkGetConstMacro( ProfileSampling, unsigned int );
50         itkGetConstMacro( RadialSampling, unsigned int );
51
52         itkSetMacro( MinRadius, double );
53         itkSetMacro( MaxRadius, double );
54         itkSetMacro( ProfileSampling, unsigned int );
55         itkSetMacro( RadialSampling, unsigned int );
56
57       protected:
58         GulsunTekMedialness( );
59         virtual ~GulsunTekMedialness( );
60
61         virtual TOutput _Evaluate( const TIndex& i ) const;
62
63       private:
64         // Purposely not implemented.
65         GulsunTekMedialness( const Self& );
66         void operator=( const Self& );
67
68       protected:
69         double       m_MinRadius;
70         double       m_MaxRadius;
71         unsigned int m_ProfileSampling;
72         unsigned int m_RadialSampling;
73       };
74
75     } // ecapseman
76
77 } // ecapseman
78
79 #include <cpExtensions/Algorithms/GulsunTekMedialness.hxx>
80
81 #endif // __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
82
83 // eof - $RCSfile$