#include <sstream>
// -------------------------------------------------------------------------
-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(
}
// -------------------------------------------------------------------------
-template< class _TPolyLine >
+template< class _TPolyLine, class _TImage >
const _TPolyLine*
-cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >::
+cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >::
GetInput( )
{
return(
}
// -------------------------------------------------------------------------
-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( ) );
}
// -------------------------------------------------------------------------
-template< class _TPolyLine >
-cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine >::
+template< class _TPolyLine, class _TImage >
+cpExtensions::Algorithms::PolyLineParametricPathWriter< _TPolyLine, _TImage >::
PolyLineParametricPathWriter( )
: Superclass( ),
m_FileName( "" ),
}
// -------------------------------------------------------------------------
-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;
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