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