]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Algorithms/GulsunTekMedialness.h
First dump for version 0.1.0
[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 #ifndef ITK_MANUAL_INSTANTIATION
80 #include <cpExtensions/Algorithms/GulsunTekMedialness.hxx>
81 #endif // ITK_MANUAL_INSTANTIATION
82
83 #endif // __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
84
85 // eof - $RCSfile$