]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/MarksInterface.h
...
[FrontAlgorithms.git] / lib / fpa / Image / MarksInterface.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Image__MarksInterface__h__
7 #define __fpa__Image__MarksInterface__h__
8
9 #include <fpa/Base/MarksInterface.h>
10 #include <itkIndex.h>
11 #include <itkImage.h>
12
13 namespace fpa
14 {
15   namespace Image
16   {
17     /**
18      */
19     template< unsigned int _VDim >
20     class MarksInterface
21       : public fpa::Base::MarksInterface< itk::Index< _VDim > >
22     {
23     public:
24       typedef MarksInterface Self;
25       typedef fpa::Base::MarksInterface< itk::Index< _VDim > > Superclass;
26
27       typedef typename Superclass::TVertex        TVertex;
28       typedef typename Superclass::TCollision     TCollision;
29       typedef typename Superclass::TCollisionsRow TCollisionsRow;
30       typedef typename Superclass::TCollisions    TCollisions;
31
32       typedef itk::Image< unsigned long, _VDim > TMarks;
33
34     protected:
35       virtual bool _IsMarked( const TVertex& v ) const override;
36       virtual unsigned long _GetMark( const TVertex& v ) const override;
37       virtual void _Mark( const TVertex& v, unsigned long frontId ) override;
38       virtual void _FreeMarks( ) override;
39       virtual void _InitMarks( unsigned long nSeeds ) override;
40
41     protected:
42       MarksInterface( itk::ProcessObject* filter );
43       virtual ~MarksInterface( );
44
45     private:
46       typename TMarks::Pointer m_Marks;
47     };
48
49   } // ecapseman
50
51 } // ecapseman
52
53 #ifndef ITK_MANUAL_INSTANTIATION
54 #  include <fpa/Image/MarksInterface.hxx>
55 #endif // ITK_MANUAL_INSTANTIATION
56
57 #endif // __fpa__Image__MarksInterface__h__
58
59 // eof - $RCSfile$