1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__SingleSeedInterface__hxx__
6 #define __fpa__Filters__SingleSeedInterface__hxx__
8 // -------------------------------------------------------------------------
9 template< class _TTraits >
10 fpa::Filters::SingleSeedInterface< _TTraits >::
11 SingleSeedInterface( itk::ProcessObject* f )
16 // -------------------------------------------------------------------------
17 template< class _TTraits >
18 fpa::Filters::SingleSeedInterface< _TTraits >::
19 ~SingleSeedInterface( )
23 // -------------------------------------------------------------------------
24 template< class _TTraits >
25 void fpa::Filters::SingleSeedInterface< _TTraits >::
26 SetSeed( const TPoint& s )
28 this->m_InputSeed.Point = s;
29 this->m_InputSeed.IsPoint = true;
30 if( this->m_Filter.IsNotNull( ) )
31 this->m_Filter->Modified( );
34 // -------------------------------------------------------------------------
35 template< class _TTraits >
36 void fpa::Filters::SingleSeedInterface< _TTraits >::
37 SetSeed( const TVertex& s )
39 this->m_InputSeed.Vertex = s;
40 this->m_InputSeed.IsPoint = false;
41 if( this->m_Filter.IsNotNull( ) )
42 this->m_Filter->Modified( );
45 // -------------------------------------------------------------------------
46 template< class _TTraits >
47 const typename fpa::Filters::SingleSeedInterface< _TTraits >::
48 TNodes& fpa::Filters::SingleSeedInterface< _TTraits >::
51 return( this->m_UnifiedSeed );
54 // -------------------------------------------------------------------------
55 template< class _TTraits >
56 void fpa::Filters::SingleSeedInterface< _TTraits >::
57 _PrepareSeeds( const itk::DataObject* input )
59 // Input object is an image?
60 typedef itk::ImageBase< Self::Dimension > _TImageBase;
61 const _TImageBase* image = dynamic_cast< const _TImageBase* >( input );
64 this->m_UnifiedSeed.clear( );
65 TSeed iSeed = this->m_InputSeed;
67 image->TransformPhysicalPointToIndex( iSeed.Point, iSeed.Vertex );
69 node.Vertex = iSeed.Vertex;
70 node.Parent = iSeed.Vertex;
71 node.FrontId = iSeed.FrontId;
72 this->m_UnifiedSeed.insert( node );
77 #endif // __fpa__Filters__SingleSeedInterface__hxx__