]> 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::TNode        TNode;
30       typedef typename Superclass::TNodes       TNodes;
31       typedef typename Superclass::TInputValue  TInputValue;
32       typedef typename Superclass::TOutputValue TOutputValue;
33       typedef typename Superclass::TFrontId     TFrontId;
34       typedef typename Superclass::TVertex      TVertex;
35       typedef typename Superclass::TSeeds       TSeeds;
36
37       typedef typename Superclass::TQueue          TQueue;
38       typedef typename Superclass::TQueueOrder     TQueueOrder;
39       typedef typename Superclass::TWeightFunction TWeightFunction;
40
41     public:
42       TMST* GetMinimumSpanningTree( );
43       const TMST* GetMinimumSpanningTree( ) const;
44
45     protected:
46       Dijkstra( );
47       virtual ~Dijkstra( );
48
49       virtual void _AfterGenerateData( ) override;
50       virtual void _UpdateOutputValue( const TNode& n ) override;
51
52     private:
53       // Purposely not implemented.
54       Dijkstra( const Self& other );
55       Self& operator=( const Self& other );
56
57     protected:
58       unsigned int m_MSTIdx;
59     };
60
61   } // ecapseman
62
63 } // ecapseman
64
65 #ifndef ITK_MANUAL_INSTANTIATION
66 #  include <fpa/Base/Dijkstra.hxx>
67 #endif // ITK_MANUAL_INSTANTIATION
68
69 #endif // __fpa__Base__Dijkstra__h__
70
71 // eof - $RCSfile$