+// =========================================================================
+// @author Leonardo Florez Valencia
+// @email florez-l@javeriana.edu.co
+// =========================================================================
+
+#ifndef __fpa__Base__SeedsInterface__hxx__
+#define __fpa__Base__SeedsInterface__hxx__
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+unsigned int fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+GetNumberOfSeeds( ) const
+{
+ return( this->m_Seeds.size( ) );
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+const typename fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+TSeeds& fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+GetSeeds( ) const
+{
+ return( this->m_Seeds );
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+typename fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+TSeeds::const_iterator fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+BeginSeeds( ) const
+{
+ return( this->m_Seeds.begin( ) );
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+typename fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+TSeeds::const_iterator fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+EndSeeds( ) const
+{
+ return( this->m_Seeds.end( ) );
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+void fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+AddSeed( const TVertex& seed )
+{
+ if( this->m_Seeds.insert( seed ).second && this->m_Filter != NULL )
+ this->m_Filter->Modified( );
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+void fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+RemoveSeed( const TVertex& seed )
+{
+ typename TSeeds::const_iterator i = this->m_Seeds.find( seed );
+ if( i != this->m_Seeds.end( ) )
+ {
+ this->m_Seeds.erase( i );
+ if( this->m_Filter != NULL )
+ this->m_Filter->Modified( );
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+void fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+ClearSeeds( )
+{
+ if( this->m_Seeds.size( ) > 0 )
+ {
+ this->m_Seeds.clear( );
+ if( this->m_Filter != NULL )
+ this->m_Filter->Modified( );
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+SeedsInterface( itk::ProcessObject* filter )
+ : m_Filter( filter )
+{
+}
+
+// -------------------------------------------------------------------------
+template< class _TVertex, class _TCompare >
+fpa::Base::SeedsInterface< _TVertex, _TCompare >::
+~SeedsInterface( )
+{
+ this->m_Seeds.clear( );
+}
+
+#endif // __fpa__Base__SeedsInterface__hxx__
+
+// eof - $RCSfile$