1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
6 #ifndef __fpa__Image__MinimumSpanningTree__h__
7 #define __fpa__Image__MinimumSpanningTree__h__
9 #include <fpa/Base/MinimumSpanningTree.h>
11 #include <fpa/Image/PolyLineParametricPath.h>
19 template< unsigned int _VDim >
20 class MinimumSpanningTree
21 : public fpa::Base::MinimumSpanningTree< itk::Index< _VDim >, itk::Image< itk::Offset< _VDim >, _VDim > >
24 typedef itk::Index< _VDim > TVertex;
25 typedef itk::Image< itk::Offset< _VDim >, _VDim > TBaseImage;
27 typedef MinimumSpanningTree Self;
28 typedef itk::SmartPointer< Self > Pointer;
29 typedef itk::SmartPointer< const Self > ConstPointer;
30 typedef fpa::Base::MinimumSpanningTree< TVertex, TBaseImage > Superclass;
32 typedef typename Superclass::TCollision TCollision;
33 typedef typename Superclass::TCollisionsRow TCollisionsRow;
34 typedef typename Superclass::TCollisions TCollisions;
35 typedef typename Superclass::TVertices TVertices;
37 typedef fpa::Image::PolyLineParametricPath< _VDim > TPolyLineParametricPath;
42 fpa::Image::MinimumSpanningTree,
43 fpa::Base::MinimumSpanningTree
47 virtual TVertex GetParent( const TVertex& v ) const override
49 return( v + this->GetPixel( v ) );
51 virtual void SetParent( const TVertex& v, const TVertex& p ) override
53 this->SetPixel( v, p - v );
57 typename TPolyLineParametricPath::Pointer& path,
61 typename TPolyLineParametricPath::Pointer& path,
62 const TVertex& a, const TVertex& b
66 MinimumSpanningTree( )
69 virtual ~MinimumSpanningTree( )
73 MinimumSpanningTree( const Self& other );
74 Self& operator=( const Self& other );
81 #ifndef ITK_MANUAL_INSTANTIATION
82 # include <fpa/Image/MinimumSpanningTree.hxx>
83 #endif // ITK_MANUAL_INSTANTIATION
85 #endif // __fpa__Image__MinimumSpanningTree__h__