1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__MultipleSeedsInterface__hxx__
6 #define __fpa__Filters__MultipleSeedsInterface__hxx__
8 #include <itkImageBase.h>
10 // -------------------------------------------------------------------------
11 template< class _TTraits >
12 void fpa::Filters::MultipleSeedsInterface< _TTraits >::
13 AddSeed( const TPoint& s )
15 TSeed seed( this->m_InputSeeds.size( ) + 1 );
18 this->m_InputSeeds.push_back( seed );
19 if( this->m_Filter.IsNotNull( ) )
20 this->m_Filter->Modified( );
23 // -------------------------------------------------------------------------
24 template< class _TTraits >
25 void fpa::Filters::MultipleSeedsInterface< _TTraits >::
26 AddSeed( const TVertex& s )
28 TSeed seed( this->m_InputSeeds.size( ) + 1 );
31 this->m_InputSeeds.push_back( seed );
32 if( this->m_Filter.IsNotNull( ) )
33 this->m_Filter->Modified( );
36 // -------------------------------------------------------------------------
37 template< class _TTraits >
38 void fpa::Filters::MultipleSeedsInterface< _TTraits >::
41 this->m_InputSeeds.clear( );
42 this->m_UnifiedSeeds.clear( );
43 if( this->m_Filter.IsNotNull( ) )
44 this->m_Filter->Modified( );
47 // -------------------------------------------------------------------------
48 template< class _TTraits >
49 unsigned long fpa::Filters::MultipleSeedsInterface< _TTraits >::
50 GetNumberOfSeeds( ) const
52 return( this->m_InputSeeds.size( ) );
55 // -------------------------------------------------------------------------
56 template< class _TTraits >
57 fpa::Filters::MultipleSeedsInterface< _TTraits >::
58 MultipleSeedsInterface( itk::ProcessObject* f )
63 // -------------------------------------------------------------------------
64 template< class _TTraits >
65 fpa::Filters::MultipleSeedsInterface< _TTraits >::
66 ~MultipleSeedsInterface( )
70 // -------------------------------------------------------------------------
71 template< class _TTraits >
72 void fpa::Filters::MultipleSeedsInterface< _TTraits >::
73 _PrepareSeeds( const itk::DataObject* reference )
75 // Input object is an image?
76 typedef itk::ImageBase< TTraits::Dimension > _TImageBase;
77 const _TImageBase* image =
78 dynamic_cast< const _TImageBase* >( reference );
81 this->m_UnifiedSeeds.clear( );
82 for( TSeed iSeed: this->m_InputSeeds )
85 image->TransformPhysicalPointToIndex( iSeed.Point, iSeed.Vertex );
87 node.Vertex = iSeed.Vertex;
88 node.Parent = iSeed.Vertex;
89 node.FrontId = iSeed.FrontId;
90 this->m_UnifiedSeeds.insert( node );
97 #endif // __fpa__Filters__MultipleSeedsInterface__hxx__