X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FAlgorithms%2FPolyLineParametricPathWriter.hxx;h=d71c6e3aa640eb7d2d118b967883edac9ff6c4ac;hb=9af34b55ea1d60eef3608aede00f9ef5a16dccdf;hp=8e9db8eeab926a28e6c1d04bb6226cad0c825045;hpb=d976f28fd3120d75c30a521bb5987d25e78f72c2;p=cpPlugins.git diff --git a/lib/cpExtensions/Algorithms/PolyLineParametricPathWriter.hxx b/lib/cpExtensions/Algorithms/PolyLineParametricPathWriter.hxx index 8e9db8e..d71c6e3 100644 --- a/lib/cpExtensions/Algorithms/PolyLineParametricPathWriter.hxx +++ b/lib/cpExtensions/Algorithms/PolyLineParametricPathWriter.hxx @@ -8,8 +8,8 @@ #include // ------------------------------------------------------------------------- -template< class _TPolyLine > -void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >:: +template< class _TPolyLine, class _TImage > +void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: SetInput( const _TPolyLine* input ) { this->itk::ProcessObject::SetNthInput( @@ -18,9 +18,9 @@ SetInput( const _TPolyLine* input ) } // ------------------------------------------------------------------------- -template< class _TPolyLine > +template< class _TPolyLine, class _TImage > const _TPolyLine* -cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >:: +cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: GetInput( ) { return( @@ -31,8 +31,30 @@ GetInput( ) } // ------------------------------------------------------------------------- -template< class _TPolyLine > -void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >:: +template< class _TPolyLine, class _TImage > +void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: +SetImage( const _TImage* image ) +{ + this->itk::ProcessObject::SetNthInput( + 1, const_cast< _TImage* >( image ) + ); +} + +// ------------------------------------------------------------------------- +template< class _TPolyLine, class _TImage > +const _TImage* cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: +GetImage( ) +{ + return( + dynamic_cast< const _TImage* >( + this->itk::ProcessObject::GetInput( 1 ) + ) + ); +} + +// ------------------------------------------------------------------------- +template< class _TPolyLine, class _TImage > +void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: Update( ) { _TPolyLine* input = const_cast< _TPolyLine* >( this->GetInput( ) ); @@ -47,8 +69,8 @@ Update( ) } // ------------------------------------------------------------------------- -template< class _TPolyLine > -cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >:: +template< class _TPolyLine, class _TImage > +cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: PolyLineParametricPathWriter( ) : Superclass( ), m_FileName( "" ), @@ -58,21 +80,22 @@ PolyLineParametricPathWriter( ) } // ------------------------------------------------------------------------- -template< class _TPolyLine > -cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >:: +template< class _TPolyLine, class _TImage > +cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: ~PolyLineParametricPathWriter( ) { } // ------------------------------------------------------------------------- -template< class _TPolyLine > -void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >:: +template< class _TPolyLine, class _TImage > +void cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >:: GenerateData( ) { typedef typename _TPolyLine::TContinuousIndex _TContinuousIndex; // "Serialize" data const _TPolyLine* input = this->GetInput( ); + const _TImage* image = this->GetImage( ); unsigned int dim = _TPolyLine::PathDimension; std::stringstream buffer; long step = input->GetSize( ) / this->m_NumberOfPoints; @@ -102,6 +125,15 @@ GenerateData( ) buffer << idx[ 0 ]; for( unsigned int d = 1; d < dim; ++d ) buffer << " " << idx[ d ]; + if( image != NULL ) + { + typename _TImage::PointType pidx; + typename _TImage::IndexType iidx; + image->TransformContinuousIndexToPhysicalPoint( idx, pidx ); + image->TransformPhysicalPointToIndex( pidx, iidx ); + buffer << " " << image->GetPixel( iidx ); + + } // fi buffer << std::endl; } // rof