]> Creatis software - FrontAlgorithms.git/blob - libs/fpa/Base/SeedsInterface.hxx
4e20760a7408fd036b36ace4ec99e3d38add2fdb
[FrontAlgorithms.git] / libs / fpa / Base / SeedsInterface.hxx
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Base__SeedsInterface__hxx__
7 #define __fpa__Base__SeedsInterface__hxx__
8
9 // -------------------------------------------------------------------------
10 template< class _TVertex, class _TCompare >
11 unsigned int fpa::Base::SeedsInterface< _TVertex, _TCompare >::
12 GetNumberOfSeeds( ) const
13 {
14   return( this->m_Seeds.size( ) );
15 }
16
17 // -------------------------------------------------------------------------
18 template< class _TVertex, class _TCompare >
19 const typename fpa::Base::SeedsInterface< _TVertex, _TCompare >::
20 TSeeds& fpa::Base::SeedsInterface< _TVertex, _TCompare >::
21 GetSeeds( ) const
22 {
23   return( this->m_Seeds );
24 }
25
26 // -------------------------------------------------------------------------
27 template< class _TVertex, class _TCompare >
28 typename fpa::Base::SeedsInterface< _TVertex, _TCompare >::
29 TSeeds::const_iterator fpa::Base::SeedsInterface< _TVertex, _TCompare >::
30 BeginSeeds( ) const
31 {
32   return( this->m_Seeds.begin( ) );
33 }
34
35 // -------------------------------------------------------------------------
36 template< class _TVertex, class _TCompare >
37 typename fpa::Base::SeedsInterface< _TVertex, _TCompare >::
38 TSeeds::const_iterator fpa::Base::SeedsInterface< _TVertex, _TCompare >::
39 EndSeeds( ) const
40 {
41   return( this->m_Seeds.end( ) );
42 }
43
44 // -------------------------------------------------------------------------
45 template< class _TVertex, class _TCompare >
46 void fpa::Base::SeedsInterface< _TVertex, _TCompare >::
47 AddSeed( const TVertex& seed )
48 {
49   if( this->m_Seeds.insert( seed ).second && this->m_Filter != NULL )
50     this->m_Filter->Modified( );
51 }
52
53 // -------------------------------------------------------------------------
54 template< class _TVertex, class _TCompare >
55 void fpa::Base::SeedsInterface< _TVertex, _TCompare >::
56 RemoveSeed( const TVertex& seed )
57 {
58   typename TSeeds::const_iterator i = this->m_Seeds.find( seed );
59   if( i != this->m_Seeds.end( ) )
60   {
61     this->m_Seeds.erase( i );
62     if( this->m_Filter != NULL )
63       this->m_Filter->Modified( );
64
65   } // fi
66 }
67
68 // -------------------------------------------------------------------------
69 template< class _TVertex, class _TCompare >
70 void fpa::Base::SeedsInterface< _TVertex, _TCompare >::
71 ClearSeeds( )
72 {
73   if( this->m_Seeds.size( ) > 0 )
74   {
75     this->m_Seeds.clear( );
76     if( this->m_Filter != NULL )
77       this->m_Filter->Modified( );
78
79   } // fi
80 }
81
82 // -------------------------------------------------------------------------
83 template< class _TVertex, class _TCompare >
84 fpa::Base::SeedsInterface< _TVertex, _TCompare >::
85 SeedsInterface( itk::ProcessObject* filter )
86   : m_Filter( filter )
87 {
88 }
89
90 // -------------------------------------------------------------------------
91 template< class _TVertex, class _TCompare >
92 fpa::Base::SeedsInterface< _TVertex, _TCompare >::
93 ~SeedsInterface( )
94 {
95   this->m_Seeds.clear( );
96 }
97
98 #endif // __fpa__Base__SeedsInterface__hxx__
99
100 // eof - $RCSfile$