1 #ifndef __FPA__IMAGE__MINIMUMSPANNINGTREE__H__
2 #define __FPA__IMAGE__MINIMUMSPANNINGTREE__H__
6 #include <fpa/Base/MinimumSpanningTree.h>
12 template< unsigned int _NDim >
13 struct MinimumSpanningTreeData
15 typedef itk::Offset< _NDim > TOffset;
23 template< unsigned int _NDim >
24 class MinimumSpanningTree
25 : public fpa::Base::MinimumSpanningTree< itk::Image< MinimumSpanningTreeData< _NDim >, _NDim >, itk::Index< _NDim > >
28 typedef MinimumSpanningTreeData< _NDim > TInfo;
29 typedef itk::Image< TInfo, _NDim > TBase;
30 typedef itk::Index< _NDim > TVertex;
31 typedef fpa::Base::MinimumSpanningTree< TBase, TVertex > Superclass;
32 typedef MinimumSpanningTree Self;
33 typedef itk::SmartPointer< Self > Pointer;
34 typedef itk::SmartPointer< const Self > ConstPointer;
36 typedef typename Superclass::TVertices TVertices;
37 typedef typename Superclass::TPoint TPoint;
38 typedef typename Superclass::TPoints TPoints;
39 itkStaticConstMacro( Dimension, unsigned int, _NDim );
43 itkTypeMacro( MinimumSpanningTree, _TSuperclass );
46 void CopyMetaData( itk::ImageBase< _NDim >* infoImage );
53 virtual void Clear( ) override;
55 virtual TPoints GetEuclideanPath( const TVertex& a ) const override;
56 virtual TPoints GetEuclideanPath(
57 const TVertex& a, const TVertex& b
59 virtual bool IsDefinedInEuclideanSpace( ) const override;
62 MinimumSpanningTree( );
63 virtual ~MinimumSpanningTree( );
65 virtual bool _HasVertex( const TVertex& a ) const override;
66 virtual short _FrontId( const TVertex& a ) const override;
67 virtual void _Path( TVertices& path, const TVertex& a ) const override;
70 // Purposely not implemented
71 MinimumSpanningTree( const Self& other );
72 Self& operator=( const Self& other );
79 #ifndef ITK_MANUAL_INSTANTIATION
80 #include <fpa/Image/MinimumSpanningTree.hxx>
81 #endif // ITK_MANUAL_INSTANTIATION
83 #endif // __FPA__IMAGE__MINIMUMSPANNINGTREE__H__