X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FAlgorithms%2FSkeletonWriter.hxx;fp=lib%2FcpExtensions%2FAlgorithms%2FSkeletonWriter.hxx;h=0000000000000000000000000000000000000000;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=15093f66301660e4b3999864814c293eed9bbf21;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpExtensions/Algorithms/SkeletonWriter.hxx b/lib/cpExtensions/Algorithms/SkeletonWriter.hxx deleted file mode 100644 index 15093f6..0000000 --- a/lib/cpExtensions/Algorithms/SkeletonWriter.hxx +++ /dev/null @@ -1,159 +0,0 @@ -// ------------------------------------------------------------------------- -// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) -// ------------------------------------------------------------------------- - -#ifndef __cpExtensions__Algorithms__SkeletonWriter__hxx__ -#define __cpExtensions__Algorithms__SkeletonWriter__hxx__ - -#include - -// ------------------------------------------------------------------------- -template< class _TSkeleton > -const _TSkeleton* cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >:: -GetInput( ) const -{ - return( - dynamic_cast< const TSkeleton* >( - this->itk::ProcessObject::GetInput( 0 ) - ) - ); -} - -// ------------------------------------------------------------------------- -template< class _TSkeleton > -void cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >:: -SetInput( const _TSkeleton* skeleton ) -{ - this->itk::ProcessObject::SetNthInput( - 0, const_cast< TSkeleton* >( skeleton ) - ); -} - -// ------------------------------------------------------------------------- -template< class _TSkeleton > -void cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >:: -Update( ) -{ - TSkeleton* input = const_cast< TSkeleton* >( this->GetInput( ) ); - if( input != NULL ) - { - input->UpdateOutputInformation( ); - input->UpdateOutputData( ); - this->GenerateData( ); - this->ReleaseInputs( ); - - } // fi -} - -// ------------------------------------------------------------------------- -template< class _TSkeleton > -cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >:: -SkeletonWriter( ) - : Superclass( ), - m_FileName( "" ) -{ - this->SetNumberOfRequiredInputs( 1 ); -} - -// ------------------------------------------------------------------------- -template< class _TSkeleton > -cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >:: -~SkeletonWriter( ) -{ -} - -// ------------------------------------------------------------------------- -template< class _TSkeleton > -void cpExtensions::Algorithms::SkeletonWriter< _TSkeleton >:: -GenerateData( ) -{ - const TSkeleton* sk = this->GetInput( ); - auto mIt = sk->BeginEdgesRows( ); - auto rIt = mIt->second.begin( ); - auto eIt = rIt->second.begin( ); - auto path = *eIt; - - // Write base information - std::stringstream out1, out2; - out1 << TSkeleton::Dimension << std::endl; - auto spa = path->GetSpacing( ); - for( unsigned int d = 0; d < TSkeleton::Dimension; ++d ) - out1 << spa[ d ] << " "; - out1 << std::endl; - auto dir = path->GetDirection( ); - for( unsigned int d = 0; d < TSkeleton::Dimension; ++d ) - for( unsigned int e = 0; e < TSkeleton::Dimension; ++e ) - out1 << dir[ d ][ e ] << " "; - out1 << std::endl; - auto ori = path->GetOrigin( ); - for( unsigned int d = 0; d < TSkeleton::Dimension; ++d ) - out1 << ori[ d ] << " "; - out1 << std::endl; - - // End points - auto end_points = sk->GetEndPoints( ); - out1 << end_points.size( ) << std::endl; - for( auto point : end_points ) - { - for( unsigned int d = 0; d < TSkeleton::Dimension; ++d ) - out1 << point[ d ] << " "; - out1 << std::endl; - - } // rof - - // Bifurcations - auto bifurcations = sk->GetBifurcations( ); - out1 << bifurcations.size( ) << std::endl; - for( auto point : bifurcations ) - { - for( unsigned int d = 0; d < TSkeleton::Dimension; ++d ) - out1 << point[ d ] << " "; - out1 << std::endl; - - } // rof - - // Write paths - unsigned long pathCount = 0; - 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; - pathCount++; - unsigned int size = path->GetSize( ); - out2 << size << std::endl; - for( unsigned int i = 0; i < path->GetSize( ); ++i ) - { - auto v = path->GetVertex( i ); - for( unsigned int d = 0; d < TSkeleton::Dimension; ++d ) - out2 << v[ d ] << " "; - - } // rof - out2 << std::endl; - - } // rof - - } // rof - - } // rof - out1 << pathCount << std::endl << out2.str( ); - - // Real write - std::ofstream file_stream( this->m_FileName.c_str( ), std::ofstream::binary ); - if( !file_stream ) - itkExceptionMacro( - << "Unable to write skeleton to \"" - << this->m_FileName - << "\"" - ); - file_stream.write( out1.str( ).c_str( ), out1.str( ).size( ) ); -} - -#endif // __cpExtensions__Algorithms__SkeletonWriter__hxx__ - -// eof - $RCSfile$