]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/Dijkstra.h
...
[FrontAlgorithms.git] / lib / fpa / Base / Dijkstra.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Base__Dijkstra__h__
7 #define __fpa__Base__Dijkstra__h__
8
9 #include <fpa/Base/DijkstraBase.h>
10
11 namespace fpa
12 {
13   namespace Base
14   {
15     /**
16      */
17     template< class _TAlgorithm, class _TMST >
18     class Dijkstra
19       : public fpa::Base::DijkstraBase< _TAlgorithm >
20     {
21     public:
22       typedef Dijkstra                               Self;
23       typedef fpa::Base::DijkstraBase< _TAlgorithm > Superclass;
24       typedef itk::SmartPointer< Self >              Pointer;
25       typedef itk::SmartPointer< const Self >        ConstPointer;
26
27       typedef _TMST TMST;
28
29       typedef typename Superclass::TTraits      TTraits;
30       typedef typename Superclass::TNode        TNode;
31       typedef typename Superclass::TNodes       TNodes;
32       typedef typename Superclass::TInputValue  TInputValue;
33       typedef typename Superclass::TOutputValue TOutputValue;
34       typedef typename Superclass::TFrontId     TFrontId;
35       typedef typename Superclass::TVertex      TVertex;
36       typedef typename Superclass::TSeeds       TSeeds;
37
38       typedef typename Superclass::TQueue          TQueue;
39       typedef typename Superclass::TQueueOrder     TQueueOrder;
40       typedef typename Superclass::TWeightFunction TWeightFunction;
41
42     public:
43       TMST* GetMinimumSpanningTree( );
44       const TMST* GetMinimumSpanningTree( ) const;
45
46     protected:
47       Dijkstra( );
48       virtual ~Dijkstra( );
49
50       virtual void _AfterGenerateData( ) override;
51       virtual void _UpdateOutputValue( TNode& n ) override;
52
53     private:
54       // Purposely not implemented.
55       Dijkstra( const Self& other );
56       Self& operator=( const Self& other );
57
58     protected:
59       unsigned int m_MSTIdx;
60     };
61
62   } // ecapseman
63
64 } // ecapseman
65
66 #ifndef ITK_MANUAL_INSTANTIATION
67 #  include <fpa/Base/Dijkstra.hxx>
68 #endif // ITK_MANUAL_INSTANTIATION
69
70 #endif // __fpa__Base__Dijkstra__h__
71
72 // eof - $RCSfile$