]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Filters/Image/Mori.h
...
[FrontAlgorithms.git] / lib / fpa / Filters / Image / Mori.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__Image__Mori__h__
6 #define __fpa__Filters__Image__Mori__h__
7
8 #include <fpa/Filters/Mori.h>
9 #include <fpa/Filters/Image/Algorithm.h>
10 #include <fpa/Filters/Image/DefaultTraits.h>
11 #include <fpa/Filters/MarksInterface.h>
12 #include <fpa/Filters/SingleSeedInterface.h>
13
14 namespace fpa
15 {
16   namespace Filters
17   {
18     namespace Image
19     {
20       /**
21        */
22       template< class _TInputImage, class _TOutputImage >
23       class MoriTraits
24         : public fpa::Filters::Image::DefaultTraits< _TInputImage, _TOutputImage, unsigned long >
25       {
26       public:
27         typedef _TInputImage  TInputImage;
28         typedef _TOutputImage TOutputImage;
29         typedef fpa::Filters::Image::DefaultTraits< TInputImage, TOutputImage, unsigned long > Superclass;
30
31         typedef typename Superclass::TInternalTraits TInternalTraits;
32         typedef typename Superclass::TFilter TFilter;
33         typedef fpa::Filters::MarksInterface< TInternalTraits >  TMarksInterface;
34         typedef fpa::Filters::SingleSeedInterface< TInternalTraits > TSeedsInterface;
35       };
36
37       /**
38        */
39       template< class _TInputImage, class _TOutputImage, class _TTraits = fpa::Filters::Image::MoriTraits< _TInputImage, _TOutputImage > >
40       class Mori
41         : public fpa::Filters::Image::Algorithm< fpa::Filters::Mori< _TTraits > >
42       {
43       public:
44         typedef _TInputImage  TInputImage;
45         typedef _TOutputImage TOutputImage;
46         typedef _TTraits      TTraits;
47         fpaTraitsMacro( typename, TTraits );
48
49         typedef fpa::Filters::Mori< TTraits >                TAlgorithm;
50         typedef fpa::Filters::Image::Algorithm< TAlgorithm > Superclass;
51         typedef Mori                                         Self;
52         typedef itk::SmartPointer< Self >                    Pointer;
53         typedef itk::SmartPointer< const Self >              ConstPointer;
54
55       public:
56         itkNewMacro( Self );
57         itkTypeMacro(
58           fpa::Filters::Image::Mori, fpa::Filters::Image::Algorithm
59           );
60
61       protected:
62         Mori( );
63         virtual ~Mori( );
64
65         virtual void _AfterGenerateData( ) override;
66
67       private:
68         // Purposely not implemented.
69         Mori( const Self& other );
70         Self& operator=( const Self& other );
71       };
72
73     } // ecapseman
74
75   } // ecapseman
76
77 } // ecapseman
78
79 #ifndef ITK_MANUAL_INSTANTIATION
80 #  include <fpa/Filters/Image/Mori.hxx>
81 #endif // ITK_MANUAL_INSTANTIATION
82 #endif // __fpa__Filters__Image__Mori__h__
83 // eof - $RCSfile$