]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/Dijkstra.h
...
[FrontAlgorithms.git] / lib / fpa / Image / Dijkstra.h
1 #ifndef __fpa__Image__Dijkstra__h__
2 #define __fpa__Image__Dijkstra__h__
3
4 #include <fpa/Base/Dijkstra.h>
5 #include <fpa/Image/Algorithm.h>
6 #include <fpa/Image/MinimumSpanningTree.h>
7 #include <fpa/Image/Functors/Base.h>
8
9 namespace fpa
10 {
11   namespace Image
12   {
13     /**
14      */
15     template< class _TInputImage, class _TOutputImage >
16     class Dijkstra
17       : public fpa::Base::Dijkstra< fpa::Image::Algorithm< _TInputImage, _TOutputImage >, fpa::Image::MinimumSpanningTree< _TInputImage::ImageDimension > >
18     {
19     public:
20       typedef Dijkstra                                             Self;
21       typedef fpa::Image::Algorithm< _TInputImage, _TOutputImage > TAlgorithm;
22       typedef fpa::Image::MinimumSpanningTree< _TInputImage::ImageDimension > TMST;
23       typedef fpa::Base::Dijkstra< TAlgorithm, TMST > Superclass;
24       typedef itk::SmartPointer< Self >               Pointer;
25       typedef itk::SmartPointer< const Self >         ConstPointer;
26
27       typedef typename Superclass::TOutput TOutput;
28       typedef typename Superclass::TVertex TVertex;
29
30       typedef fpa::Image::Functors::Base< _TInputImage, fpa::Base::DijkstraCostFunctionBase< TVertex, TOutput > > TCostFunction;
31
32     protected:
33       typedef typename Superclass::_TQueueNode _TQueueNode;
34
35     public:
36       itkNewMacro( Self );
37       itkTypeMacro( fpa::Image::Dijkstra, fpa::Base::Dijkstra );
38
39     protected:
40       Dijkstra( );
41       virtual ~Dijkstra( );
42
43       virtual void _BeforeGenerateData( ) fpa_OVERRIDE;
44
45     private:
46       // Purposely not defined
47       Dijkstra( const Self& other );
48       Self& operator=( const Self& other );
49     };
50
51   } // ecapseman
52
53 } // ecapseman
54
55 #ifndef ITK_MANUAL_INSTANTIATION
56 #  include <fpa/Image/Dijkstra.hxx>
57 #endif // ITK_MANUAL_INSTANTIATION
58
59 #endif // __fpa__Image__Dijkstra__h__
60
61 // eof - $RCSfile$