1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __ivq__ITK__ImageMinimumSpanningTree__h__
6 #define __ivq__ITK__ImageMinimumSpanningTree__h__
9 #include <ivq/ITK/MinimumSpanningTree.h>
10 #include <ivq/ITK/ImagePath.h>
18 template< unsigned int _VDim >
19 class ImageMinimumSpanningTree
20 : public ivq::ITK::MinimumSpanningTree< itk::Index< _VDim >, itk::Image< itk::Offset< _VDim >, _VDim > >
23 typedef itk::Index< _VDim > TVertex;
24 typedef itk::Image< itk::Offset< _VDim >, _VDim > TITKImage;
26 typedef ImageMinimumSpanningTree Self;
27 typedef itk::SmartPointer< Self > Pointer;
28 typedef itk::SmartPointer< const Self > ConstPointer;
29 typedef ivq::ITK::MinimumSpanningTree< TVertex, TITKImage > Superclass;
31 typedef typename Superclass::TCollision TCollision;
32 typedef typename Superclass::TCollisionsRow TCollisionsRow;
33 typedef typename Superclass::TCollisions TCollisions;
34 typedef typename Superclass::TVertices TVertices;
36 typedef ivq::ITK::ImagePath< _VDim > TPath;
41 ivq::ITK::ImageMinimumSpanningTree,
42 ivq::ITK::MinimumSpanningTree
46 virtual TVertex GetParent( const TVertex& v ) const override;
47 virtual void SetParent( const TVertex& v, const TVertex& p ) override;
49 void GetPath( typename TPath::Pointer& path, const TVertex& a ) const;
51 typename TPath::Pointer& path,
52 const TVertex& a, const TVertex& b
56 ImageMinimumSpanningTree( );
57 virtual ~ImageMinimumSpanningTree( );
60 MinimumSpanningTree( const Self& other );
61 Self& operator=( const Self& other );
68 #ifndef ITK_MANUAL_INSTANTIATION
69 # include <ivq/ITK/Image/MinimumSpanningTree.hxx>
70 #endif // ITK_MANUAL_INSTANTIATION
71 #endif // __ivq__ITK__ImageMinimumSpanningTree__h__