]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/MarksInterface.h
...
[FrontAlgorithms.git] / lib / fpa / Base / MarksInterface.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Base__MarksInterface__h__
7 #define __fpa__Base__MarksInterface__h__
8
9 #include <itkProcessObject.h>
10
11 namespace fpa
12 {
13   namespace Base
14   {
15     /**
16      */
17     template< class _TVertex >
18     class MarksInterface
19     {
20     public:
21       typedef _TVertex       TVertex;
22       typedef MarksInterface Self;
23
24     protected:
25       MarksInterface( itk::ProcessObject* filter );
26       virtual ~MarksInterface( );
27
28       virtual bool _IsMarked( const TVertex& v ) const = 0;
29       virtual unsigned long _GetMark( const TVertex& v ) const = 0;
30       virtual void _Mark( const TVertex& v, unsigned long frontId ) = 0;
31
32       virtual void _InitMarks( unsigned long nSeeds );
33       virtual bool _Collisions( const TVertex& a, const TVertex& b );
34
35     protected:
36       unsigned int m_NumberOfSeeds;
37       itk::ProcessObject* m_Filter;
38     };
39
40   } // ecapseman
41
42 } // ecapseman
43
44 #ifndef ITK_MANUAL_INSTANTIATION
45 #  include <fpa/Base/MarksInterface.hxx>
46 #endif // ITK_MANUAL_INSTANTIATION
47
48 #endif // __fpa__Base__MarksInterface__h__
49
50 // eof - $RCSfile$