]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/MarksInterface.h
b4a84234b0539a4bacd7ce626a1ef66d5c98089b
[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 <fpa/Config.h>
10 #include <itkProcessObject.h>
11
12 namespace fpa
13 {
14   namespace Base
15   {
16     /**
17      */
18     template< class _TTraits >
19     class MarksInterface
20     {
21     public:
22       typedef _TTraits TTraits;
23       typedef MarksInterface Self;
24       fpa_Base_TraitTypes( typename TTraits );
25
26     protected:
27       MarksInterface( itk::ProcessObject* filter );
28       virtual ~MarksInterface( );
29
30       virtual bool _IsMarked( const TVertex& v ) const = 0;
31       virtual unsigned long _GetMark( const TVertex& v ) const = 0;
32       virtual void _Mark( const TVertex& v, unsigned long frontId ) = 0;
33
34       virtual void _InitMarks( unsigned long nSeeds );
35       virtual bool _Collisions( const TVertex& a, const TVertex& b );
36
37     protected:
38       unsigned int m_NumberOfSeeds;
39       itk::ProcessObject* m_Filter;
40     };
41
42   } // ecapseman
43
44 } // ecapseman
45
46 #ifndef ITK_MANUAL_INSTANTIATION
47 #  include <fpa/Base/MarksInterface.hxx>
48 #endif // ITK_MANUAL_INSTANTIATION
49
50 #endif // __fpa__Base__MarksInterface__h__
51
52 // eof - $RCSfile$