X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FFilters%2FSingleSeedInterface.hxx;fp=lib%2Ffpa%2FFilters%2FSingleSeedInterface.hxx;h=c82b6b45aee863f741100c45353797359b0fa94e;hb=2047276c8f1a02432fbcc7014722d460d6c1e60f;hp=0000000000000000000000000000000000000000;hpb=3c639e5da479c7216a0a302ffa156ac6762caeed;p=FrontAlgorithms.git diff --git a/lib/fpa/Filters/SingleSeedInterface.hxx b/lib/fpa/Filters/SingleSeedInterface.hxx new file mode 100644 index 0000000..c82b6b4 --- /dev/null +++ b/lib/fpa/Filters/SingleSeedInterface.hxx @@ -0,0 +1,78 @@ +// ========================================================================= +// @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$