// ========================================================================= // @author Leonardo Florez Valencia // @email florez-l@javeriana.edu.co // ========================================================================= #ifndef __fpa__Functors__BaseVertexFunction__h__ #define __fpa__Functors__BaseVertexFunction__h__ #include #include namespace fpa { namespace Functors { /** */ template< class _TVertex > class BaseVertexFunction : public itk::Object { public: typedef _TVertex TVertex; typedef itk::Object Superclass; typedef BaseVertexFunction Self; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkTypeMacro( fpa::Functors::BaseVertexFunction, itk::Object ); itkSetConstObjectMacro( DataObject, itk::DataObject ); public: template< class _TDataObject = itk::DataObject > const _TDataObject* GetDataObject( ) const { return( dynamic_cast< const _TDataObject* >( this->m_DataObject.GetPointer( ) ) ); } protected: BaseVertexFunction( ) : Superclass( ), m_DataObject( NULL ) { } virtual ~BaseVertexFunction( ) { } private: // Purposely not implemented. BaseVertexFunction( const Self& other ); Self& operator=( const Self& other ); protected: itk::DataObject::ConstPointer m_DataObject; }; } // ecapseman } // ecapseman #endif // __fpa__Functors__BaseVertexFunction__h__ // eof - $RCSfile$