--- /dev/null
+// =========================================================================
+// @author Leonardo Florez Valencia
+// @email florez-l@javeriana.edu.co
+// =========================================================================
+#ifndef __fpa__Filters__MultipleSeedsInterface__hxx__
+#define __fpa__Filters__MultipleSeedsInterface__hxx__
+
+#include <itkImageBase.h>
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+void fpa::Filters::MultipleSeedsInterface< _TTraits >::
+AddSeed( const TPoint& s )
+{
+ TSeed seed( this->m_InputSeeds.size( ) + 1 );
+ seed.Point = s;
+ seed.IsPoint = true;
+ this->m_InputSeeds.push_back( seed );
+ if( this->m_Filter.IsNotNull( ) )
+ this->m_Filter->Modified( );
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+void fpa::Filters::MultipleSeedsInterface< _TTraits >::
+AddSeed( const TVertex& s )
+{
+ TSeed seed( this->m_InputSeeds.size( ) + 1 );
+ seed.Vertex = s;
+ seed.IsPoint = false;
+ this->m_InputSeeds.push_back( seed );
+ if( this->m_Filter.IsNotNull( ) )
+ this->m_Filter->Modified( );
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+void fpa::Filters::MultipleSeedsInterface< _TTraits >::
+ClearSeeds( )
+{
+ this->m_InputSeeds.clear( );
+ this->m_UnifiedSeeds.clear( );
+ if( this->m_Filter.IsNotNull( ) )
+ this->m_Filter->Modified( );
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+unsigned long fpa::Filters::MultipleSeedsInterface< _TTraits >::
+GetNumberOfSeeds( ) const
+{
+ return( this->m_InputSeeds.size( ) );
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+fpa::Filters::MultipleSeedsInterface< _TTraits >::
+MultipleSeedsInterface( itk::ProcessObject* f )
+ : Superclass( f )
+{
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+fpa::Filters::MultipleSeedsInterface< _TTraits >::
+~MultipleSeedsInterface( )
+{
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits >
+void fpa::Filters::MultipleSeedsInterface< _TTraits >::
+_PrepareSeeds( const itk::DataObject* reference )
+{
+ // Input object is an image?
+ typedef itk::ImageBase< TTraits::Dimension > _TImageBase;
+ const _TImageBase* image =
+ dynamic_cast< const _TImageBase* >( reference );
+ if( image != NULL )
+ {
+ this->m_UnifiedSeeds.clear( );
+ for( TSeed iSeed: this->m_InputSeeds )
+ {
+ if( iSeed.IsPoint )
+ image->TransformPhysicalPointToIndex( iSeed.Point, iSeed.Vertex );
+ TNode node;
+ node.Vertex = iSeed.Vertex;
+ node.Parent = iSeed.Vertex;
+ node.FrontId = iSeed.FrontId;
+ this->m_UnifiedSeeds.insert( node );
+
+ } // rof
+
+ } // fi
+}
+
+#endif // __fpa__Filters__MultipleSeedsInterface__hxx__
+// eof - $RCSfile$