X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FDataStructures%2FImage%2FMinimumSpanningTree.hxx;fp=lib%2Ffpa%2FDataStructures%2FImage%2FMinimumSpanningTree.hxx;h=3cba74caef3af8ea0c5b847c7245d9cd9fee2c85;hb=2047276c8f1a02432fbcc7014722d460d6c1e60f;hp=0000000000000000000000000000000000000000;hpb=3c639e5da479c7216a0a302ffa156ac6762caeed;p=FrontAlgorithms.git diff --git a/lib/fpa/DataStructures/Image/MinimumSpanningTree.hxx b/lib/fpa/DataStructures/Image/MinimumSpanningTree.hxx new file mode 100644 index 0000000..3cba74c --- /dev/null +++ b/lib/fpa/DataStructures/Image/MinimumSpanningTree.hxx @@ -0,0 +1,75 @@ +// ========================================================================= +// @author Leonardo Florez Valencia +// @email florez-l@javeriana.edu.co +// ========================================================================= +#ifndef __fpa__DataStructures__Image__MinimumSpanningTree__hxx__ +#define __fpa__DataStructures__Image__MinimumSpanningTree__hxx__ + +// ------------------------------------------------------------------------- +template< unsigned int _VDim > +typename fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +TVertex fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +GetParent( const TVertex& v ) const +{ + return( v + this->GetPixel( v ) ); +} + +// ------------------------------------------------------------------------- +template< unsigned int _VDim > +void fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +SetParent( const TVertex& v, const TVertex& p ) +{ + this->SetPixel( v, p - v ); +} + +// ------------------------------------------------------------------------- +template< unsigned int _VDim > +void fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +GetPolyLineParametricPath( + typename TPolyLineParametricPath::Pointer& path, + const TVertex& a + ) const +{ + TVertices v = this->GetPath( a ); + if( path.IsNull( ) ) + path = TPolyLineParametricPath::New( ); + path->SetReferenceImage( this ); + typename TVertices::const_iterator vIt = v.begin( ); + for( ; vIt != v.end( ); ++vIt ) + path->AddVertex( *vIt ); +} + +// ------------------------------------------------------------------------- +template< unsigned int _VDim > +void fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +GetPolyLineParametricPath( + typename TPolyLineParametricPath::Pointer& path, + const TVertex& a, const TVertex& b + ) const +{ + TVertices v = this->GetPath( a, b ); + if( path.IsNull( ) ) + path = TPolyLineParametricPath::New( ); + path->SetReferenceImage( this ); + typename TVertices::const_iterator vIt = v.begin( ); + for( ; vIt != v.end( ); ++vIt ) + path->AddVertex( *vIt ); +} + +// ------------------------------------------------------------------------- +template< unsigned int _VDim > +fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +MinimumSpanningTree( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< unsigned int _VDim > +fpa::DataStructures::Image::MinimumSpanningTree< _VDim >:: +~MinimumSpanningTree( ) +{ +} + +#endif // __fpa__DataStructures__Image__MinimumSpanningTree__hxx__ +// eof - $RCSfile$