]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/SeedsInterface.h
...
[FrontAlgorithms.git] / lib / fpa / Base / SeedsInterface.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Base__SeedsInterface__h__
7 #define __fpa__Base__SeedsInterface__h__
8
9 #include <itkProcessObject.h>
10 #include <set>
11
12 namespace fpa
13 {
14   namespace Base
15   {
16     /**
17      */
18     template< class _TVertex, class _TCompare >
19     class SeedsInterface
20     {
21     public:
22       typedef _TVertex  TVertex;
23       typedef _TCompare TCompare;
24       typedef SeedsInterface Self;
25       typedef std::set< TVertex, TCompare > TSeeds;
26
27     public:
28       unsigned int GetNumberOfSeeds( ) const;
29       const TSeeds& GetSeeds( ) const;
30       typename TSeeds::const_iterator BeginSeeds( ) const;
31       typename TSeeds::const_iterator EndSeeds( ) const;
32
33       void AddSeed( const TVertex& seed );
34       void RemoveSeed( const TVertex& seed );
35       void ClearSeeds( );
36
37     protected:
38       SeedsInterface( itk::ProcessObject* filter );
39       virtual ~SeedsInterface( );
40
41     protected:
42       TSeeds m_Seeds;
43       itk::ProcessObject* m_Filter;
44     };
45
46   } // ecapseman
47
48 } // ecapseman
49
50 #ifndef ITK_MANUAL_INSTANTIATION
51 #  include <fpa/Base/SeedsInterface.hxx>
52 #endif // ITK_MANUAL_INSTANTIATION
53
54 #endif // __fpa__Base__SeedsInterface__h__
55
56 // eof - $RCSfile$