From f5808672252af376da506d23ab64646fed8fc716 Mon Sep 17 00:00:00 2001 From: Leonardo Florez-Valencia Date: Mon, 15 Feb 2016 21:20:11 -0500 Subject: [PATCH] ... --- .../ExtractBranchesFromMinimumSpanningTree.h | 7 +++---- .../ExtractBranchesFromMinimumSpanningTree.hxx | 18 +++++++----------- lib/fpa/Base/MinimumSpanningTree.hxx | 3 --- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.h b/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.h index 985d339..183a7fa 100644 --- a/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.h +++ b/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.h @@ -4,6 +4,7 @@ #include #include #include +#include namespace fpa { @@ -24,10 +25,8 @@ namespace fpa typedef T TMinimumSpanningTree; typedef typename T::TVertex TVertex; typedef typename T::TVertexCompare TVertexCompare; - typedef std::vector< TVertex > TPath; - typedef - fpa::Base::MatrixValuesContainer< TVertex, TPath, TVertexCompare > - TBranches; + typedef itk::PolyLineParametricPath< TVertex::Dimension > TPath; + typedef fpa::Base::MatrixValuesContainer< TVertex, typename TPath::Pointer, TVertexCompare > TBranches; typedef std::set< TVertex, TVertexCompare > TEndPoints; diff --git a/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx b/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx index f8793c9..9dd96ed 100644 --- a/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx +++ b/lib/fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx @@ -93,32 +93,28 @@ template< class T > void fpa::Base::ExtractBranchesFromMinimumSpanningTree< T >:: GenerateData( ) { - const T* tree = this->GetInput( ); - TBranches* branches = this->GetOutput( ); + auto tree = this->GetInput( ); + auto branches = this->GetOutput( ); // Find bifurcations - TEndPoints all_points, marks; + TEndPoints bifurcations, marks; auto e0It = this->m_EndPoints.begin( ); for( ; e0It != this->m_EndPoints.end( ); ++e0It ) { - all_points.insert( *e0It ); auto e1It = e0It; e1It++; for( ; e1It != this->m_EndPoints.end( ); ++e1It ) { - all_points.insert( *e0It ); auto path = tree->GetPath( *e0It, *e1It ); + std::cout << "path" << std::endl; auto pIt = path.begin( ); for( ; pIt != path.end( ); ++pIt ) { - if( *pIt == *e0It || *pIt == *e1It ) - continue; - if( marks.find( *pIt ) == marks.end( ) ) marks.insert( *pIt ); else - all_points.insert( *pIt ); - + bifurcations.insert( *pIt ); + } // rof } // rof @@ -126,7 +122,7 @@ GenerateData( ) } // rof // Construct branches - std::cout << all_points.size( ) << std::endl; + std::cout << bifurcations.size( ) << std::endl; } #endif // __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__HXX__ diff --git a/lib/fpa/Base/MinimumSpanningTree.hxx b/lib/fpa/Base/MinimumSpanningTree.hxx index 9d0939d..6bf9be2 100644 --- a/lib/fpa/Base/MinimumSpanningTree.hxx +++ b/lib/fpa/Base/MinimumSpanningTree.hxx @@ -238,9 +238,6 @@ _Path( std::vector< V >& path, const V& a ) const } while( dIt->first != dIt->second.first && dIt != this->Get( ).end( ) ); - if( dIt != this->Get( ).end( ) ) - path.push_back( dIt->first ); - } // fi } -- 2.45.1