1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Functors__BaseVertexFunction__h__
6 #define __fpa__Functors__BaseVertexFunction__h__
8 #include <itkDataObject.h>
17 template< class _TVertex >
18 class LightBaseVertexFunction
22 typedef _TVertex TVertex;
23 typedef itk::Object Superclass;
24 typedef LightBaseVertexFunction Self;
25 typedef itk::SmartPointer< Self > Pointer;
26 typedef itk::SmartPointer< const Self > ConstPointer;
29 itkTypeMacro( fpa::Functors::LightBaseVertexFunction, itk::Object );
31 itkSetConstObjectMacro( DataObject, itk::DataObject );
34 template< class _TDataObject = itk::DataObject >
35 const _TDataObject* GetDataObject( ) const
38 dynamic_cast< const _TDataObject* >(
39 this->m_DataObject.GetPointer( )
45 LightBaseVertexFunction( )
51 virtual ~LightBaseVertexFunction( )
56 // Purposely not implemented.
57 LightBaseVertexFunction( const Self& other );
58 Self& operator=( const Self& other );
61 itk::DataObject::ConstPointer m_DataObject;
66 template< class _TVertex, class _TValue >
67 class BaseVertexFunction
68 : public LightBaseVertexFunction< _TVertex >
71 typedef _TVertex TVertex;
72 typedef _TValue TValue;
73 typedef LightBaseVertexFunction< _TVertex > Superclass;
74 typedef BaseVertexFunction Self;
75 typedef itk::SmartPointer< Self > Pointer;
76 typedef itk::SmartPointer< const Self > ConstPointer;
80 fpa::Functors::RegionGrow::BaseVertexFunction,
81 fpa::Functors::RegionGrow::LightBaseVertexFunction
85 virtual TValue Evaluate(
86 const TVertex& vertex, const TVertex& parent
95 virtual ~BaseVertexFunction( )
100 // Purposely not implemented.
101 BaseVertexFunction( const Self& other );
102 Self& operator=( const Self& other );
109 #endif // __fpa__Functors__BaseVertexFunction__h__