// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Filters__SingleSeedInterface__hxx__ #define __fpa__Filters__SingleSeedInterface__hxx__ // ------------------------------------------------------------------------- template< class _TTraits > fpa::Filters::SingleSeedInterface< _TTraits >:: SingleSeedInterface( itk::ProcessObject* f ) : m_Filter( f ) { } // ------------------------------------------------------------------------- template< class _TTraits > fpa::Filters::SingleSeedInterface< _TTraits >:: ~SingleSeedInterface( ) { } // ------------------------------------------------------------------------- template< class _TTraits > void fpa::Filters::SingleSeedInterface< _TTraits >:: SetSeed( const TPoint& s ) { this->m_InputSeed.Point = s; this->m_InputSeed.IsPoint = true; if( this->m_Filter.IsNotNull( ) ) this->m_Filter->Modified( ); } // ------------------------------------------------------------------------- template< class _TTraits > void fpa::Filters::SingleSeedInterface< _TTraits >:: SetSeed( const TVertex& s ) { this->m_InputSeed.Vertex = s; this->m_InputSeed.IsPoint = false; if( this->m_Filter.IsNotNull( ) ) this->m_Filter->Modified( ); } // ------------------------------------------------------------------------- template< class _TTraits > const typename fpa::Filters::SingleSeedInterface< _TTraits >:: TNodes& fpa::Filters::SingleSeedInterface< _TTraits >:: GetSeeds( ) const { return( this->m_UnifiedSeed ); } // ------------------------------------------------------------------------- template< class _TTraits > void fpa::Filters::SingleSeedInterface< _TTraits >:: _PrepareSeeds( const itk::DataObject* input ) { // Input object is an image? typedef itk::ImageBase< Self::Dimension > _TImageBase; const _TImageBase* image = dynamic_cast< const _TImageBase* >( input ); if( image != NULL ) { this->m_UnifiedSeed.clear( ); TSeed iSeed = this->m_InputSeed; 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_UnifiedSeed.insert( node ); } // fi } #endif // __fpa__Filters__SingleSeedInterface__hxx__ // eof - $RCSfile$