]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Functors/VertexFunction.h
43fd538ac52a2063b099f4e52d0f96ba5098363f
[FrontAlgorithms.git] / lib / fpa / Functors / VertexFunction.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Functors__VertexFunction__h__
6 #define __fpa__Functors__VertexFunction__h__
7
8 #include <fpa/Functors/BaseVertexFunction.h>
9
10 namespace fpa
11 {
12   namespace Functors
13   {
14     /**
15      */
16     template< class _TVertex, class _TValue >
17     class VertexFunction
18       : public fpa::Functors::BaseVertexFunction< _TVertex >
19     {
20     public:
21       typedef _TVertex TVertex;
22       typedef _TValue  TValue;
23       typedef fpa::Functors::BaseVertexFunction< TVertex > Superclass;
24       typedef VertexFunction                               Self;
25       typedef itk::SmartPointer< Self >                    Pointer;
26       typedef itk::SmartPointer< const Self >              ConstPointer;
27
28     public:
29       itkTypeMacro(
30         fpa::Functors::VertexFunction, fpa::Functors::BaseVertexFunction
31         );
32
33     public:
34       virtual TValue Evaluate(
35         const TVertex& vertex, const TVertex& parent
36         ) const = 0;
37
38     protected:
39       VertexFunction( )
40         : Superclass( )
41         {
42         }
43
44       virtual ~VertexFunction( )
45         {
46         }
47
48     private:
49       // Purposely not implemented.
50       VertexFunction( const Self& other );
51       Self& operator=( const Self& other );
52     };
53
54   } // ecapseman
55
56 } // ecapseman
57
58 #endif // __fpa__Functors__VertexFunction__h__
59 // eof - $RCSfile$