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