]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/DijkstraCostFunctionBase.h
d3a86b266d6573b2c2466161f2316c02e00d296f
[FrontAlgorithms.git] / lib / fpa / Base / DijkstraCostFunctionBase.h
1 #ifndef __fpa__Base__DijkstraCostFunctionBase__h__
2 #define __fpa__Base__DijkstraCostFunctionBase__h__
3
4 #include <itkObject.h>
5 #include <itkObjectFactory.h>
6
7 namespace fpa
8 {
9   namespace Base
10   {
11     /**
12      */
13     template< class _TVertex, class _TOutput >
14     class DijkstraCostFunctionBase
15       : public itk::Object
16     {
17     public:
18       typedef DijkstraCostFunctionBase        Self;
19       typedef itk::Object                     Superclass;
20       typedef itk::SmartPointer< Self >       Pointer;
21       typedef itk::SmartPointer< const Self > ConstPointer;
22
23       typedef _TVertex TVertex;
24       typedef _TOutput TOutput;
25
26     public:
27       itkTypeMacro( DijkstraCostFunctionBase, itk::Object );
28
29     public:
30       virtual TOutput Evaluate( const TVertex& a, const TVertex& b ) const = 0;
31
32     protected:
33       DijkstraCostFunctionBase( )
34         : Superclass( )
35         { }
36       virtual ~DijkstraCostFunctionBase( )
37         { }
38
39     private:
40       // Purposely not defined
41       DijkstraCostFunctionBase( const Self& other );
42       Self& operator=( const Self& other );
43     };
44
45   } // ecapseman
46
47 } // ecapseman
48
49 #endif // __fpa__Base__DijkstraCostFunctionBase__h__
50
51 // eof - $RCSfile$