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