1 #ifndef __FPA__BASE__MINIMUMSPANNINGTREE__H__
2 #define __FPA__BASE__MINIMUMSPANNINGTREE__H__
5 #include <itkSmartPointer.h>
13 template< class V, class C, class B >
14 class MinimumSpanningTree
18 typedef MinimumSpanningTree Self;
20 typedef itk::SmartPointer< Self > Pointer;
21 typedef itk::SmartPointer< const Self > ConstPointer;
24 typedef C TCollisions;
27 typedef std::vector< unsigned long > _TRow;
28 typedef std::vector< _TRow > _TMatrix;
31 itkTypeMacro( MinimumSpanningTree, B );
33 itkGetConstMacro( Collisions, TCollisions );
36 void SetCollisions( const TCollisions& collisions );
39 std::vector< V >& path, const V& a, const V& b
43 MinimumSpanningTree( );
44 virtual ~MinimumSpanningTree( );
46 virtual void _Path( std::vector< V >& path, const V& a ) const;
47 virtual long _FrontId( const V& v ) const = 0;
48 virtual V _Parent( const V& v ) const = 0;
51 // Purposely not implemented
52 MinimumSpanningTree( const Self& other );
53 Self& operator=( const Self& other );
56 TCollisions m_Collisions;
57 _TMatrix m_FrontPaths;
58 static const unsigned long INF_VALUE;
65 #include <fpa/Base/MinimumSpanningTree.hxx>
67 #endif // __FPA__BASE__MINIMUMSPANNINGTREE__H__