1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__SeedsInterface__hxx__
6 #define __fpa__Filters__SeedsInterface__hxx__
8 #include <itkImageBase.h>
10 // -------------------------------------------------------------------------
11 template< class _TTraits >
12 fpa::Filters::SeedsInterface< _TTraits >::
13 SeedsInterface( itk::ProcessObject* f )
18 // -------------------------------------------------------------------------
19 template< class _TTraits >
20 fpa::Filters::SeedsInterface< _TTraits >::
25 // -------------------------------------------------------------------------
26 template< class _TTraits >
27 void fpa::Filters::SeedsInterface< _TTraits >::
28 AddSeed( const TPoint& s )
30 TSeed seed( this->m_InputSeeds.size( ) + 1 );
33 this->m_InputSeeds.push_back( seed );
34 if( this->m_Filter.IsNotNull( ) )
35 this->m_Filter->Modified( );
38 // -------------------------------------------------------------------------
39 template< class _TTraits >
40 void fpa::Filters::SeedsInterface< _TTraits >::
41 AddSeed( const TVertex& s )
43 TSeed seed( this->m_InputSeeds.size( ) + 1 );
46 this->m_InputSeeds.push_back( seed );
47 if( this->m_Filter.IsNotNull( ) )
48 this->m_Filter->Modified( );
51 // -------------------------------------------------------------------------
52 template< class _TTraits >
53 void fpa::Filters::SeedsInterface< _TTraits >::
56 this->m_InputSeeds.clear( );
57 this->m_UnifiedSeeds.clear( );
58 if( this->m_Filter.IsNotNull( ) )
59 this->m_Filter->Modified( );
62 // -------------------------------------------------------------------------
63 template< class _TTraits >
64 const typename fpa::Filters::SeedsInterface< _TTraits >::
65 TNodes& fpa::Filters::SeedsInterface< _TTraits >::
68 return( this->m_UnifiedSeeds );
71 // -------------------------------------------------------------------------
72 template< class _TTraits >
73 void fpa::Filters::SeedsInterface< _TTraits >::
74 _PrepareSeeds( const itk::DataObject* input )
76 // Input object is an image?
77 typedef itk::ImageBase< Self::Dimension > _TImageBase;
78 const _TImageBase* image = dynamic_cast< const _TImageBase* >( input );
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__SeedsInterface__hxx__