#define __fpa__Base__MinimumSpanningTree__h__
#include <fpa/Config.h>
-#include <deque>
#include <vector>
#include <utility>
#include <itkObject.h>
{
/**
*/
- template< class _TVertex, class _TSuperclass >
+ template< class _TVertex, class _TPath, class _TSuperclass >
class MinimumSpanningTree
: public _TSuperclass
{
typedef itk::SmartPointer< const Self > ConstPointer;
typedef _TVertex TVertex;
- typedef std::deque< _TVertex > TVertices;
+ typedef _TPath TPath;
typedef std::pair< _TVertex, bool > TCollision;
typedef std::vector< TCollision > TCollisionsRow;
typedef std::vector< TCollisionsRow > TCollisions;
virtual _TVertex GetParent( const _TVertex& v ) const = 0;
virtual void SetParent( const _TVertex& v, const _TVertex& p ) = 0;
- virtual TVertices GetPath( const _TVertex& a ) const;
- virtual TVertices GetPath( const _TVertex& a, const _TVertex& b ) const;
+ virtual void GetPath(
+ typename _TPath::Pointer& path, const _TVertex& a
+ ) const;
+ virtual void GetPath(
+ typename _TPath::Pointer& path, const _TVertex& a, const _TVertex& b
+ ) const;
protected:
MinimumSpanningTree( );
protected:
TCollisions m_Collisions;
_TMatrix m_FrontPaths;
- TVertices m_Seeds;
+ std::vector< _TVertex > m_Seeds;
};
} // ecapseman