-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __cpExtensions__Algorithms__SkeletonToImageFilter__hxx__
-#define __cpExtensions__Algorithms__SkeletonToImageFilter__hxx__
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-const typename
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-TImageBase*
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-GetTemplateImage( ) const
-{
- return(
- dynamic_cast< const TImageBase* >(
- this->itk::ProcessObject::GetInput( 0 )
- )
- );
-}
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-void
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-SetTemplateImage( const TImageBase* image )
-{
- this->itk::ProcessObject::SetNthInput(
- 0, const_cast< TImageBase* >( image )
- );
-}
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-const typename
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-TSkeleton*
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-GetSkeleton( ) const
-{
- return(
- dynamic_cast< const TSkeleton* >(
- this->itk::ProcessObject::GetInput( 1 )
- )
- );
-}
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-void
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-SetSkeleton( const TSkeleton* skeleton )
-{
- this->itk::ProcessObject::SetNthInput(
- 1, const_cast< TSkeleton* >( skeleton )
- );
-}
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-SkeletonToImageFilter( )
- : Superclass( ),
- m_InsideValue( TPixel( 1 ) ),
- m_OutsideValue( TPixel( 0 ) )
-{
- this->SetNumberOfRequiredInputs( 2 );
-}
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-~SkeletonToImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TSkeleton, class _TImage >
-void cpExtensions::Algorithms::SkeletonToImageFilter< _TSkeleton, _TImage >::
-GenerateData( )
-{
- const TSkeleton* sk = this->GetSkeleton( );
- const TImageBase* im = this->GetTemplateImage( );
- TImage* out = this->GetOutput( 0 );
-
- out->SetLargestPossibleRegion( im->GetLargestPossibleRegion( ) );
- out->SetRequestedRegion( im->GetRequestedRegion( ) );
- out->SetBufferedRegion( im->GetBufferedRegion( ) );
- out->SetSpacing( im->GetSpacing( ) );
- out->SetOrigin( im->GetOrigin( ) );
- out->SetDirection( im->GetDirection( ) );
- out->Allocate( );
- out->FillBuffer( this->m_OutsideValue );
-
- // Fill skeleton
- auto mIt = sk->BeginEdgesRows( );
- for( ; mIt != sk->EndEdgesRows( ); ++mIt )
- {
- auto rIt = mIt->second.begin( );
- for( ; rIt != mIt->second.end( ); ++rIt )
- {
- auto eIt = rIt->second.begin( );
- for( ; eIt != rIt->second.end( ); ++eIt )
- {
- auto path = *eIt;
- for( unsigned int i = 0; i < path->GetSize( ); ++i )
- out->SetPixel( path->GetVertex( i ), this->m_InsideValue );
-
- } // rof
-
- } // rof
-
- } // rof
-}
-
-#endif // __cpExtensions__Algorithms__SkeletonToImageFilter__hxx__
-
-// eof - $RCSfile$