X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FFunctors%2FDijkstra%2FImage%2FIdentity.h;fp=lib%2Ffpa%2FFunctors%2FDijkstra%2FImage%2FIdentity.h;h=f69948665413c0d1ae71106aab99fa801d0983b2;hb=2047276c8f1a02432fbcc7014722d460d6c1e60f;hp=0000000000000000000000000000000000000000;hpb=3c639e5da479c7216a0a302ffa156ac6762caeed;p=FrontAlgorithms.git diff --git a/lib/fpa/Functors/Dijkstra/Image/Identity.h b/lib/fpa/Functors/Dijkstra/Image/Identity.h new file mode 100644 index 0000000..f699486 --- /dev/null +++ b/lib/fpa/Functors/Dijkstra/Image/Identity.h @@ -0,0 +1,77 @@ +// ========================================================================= +// @author Leonardo Florez Valencia +// @email florez-l@javeriana.edu.co +// ========================================================================= +#ifndef __fpa__Functors__Dijkstra__Image__Identity__h__ +#define __fpa__Functors__Dijkstra__Image__Identity__h__ + +#include + +namespace fpa +{ + namespace Functors + { + namespace Dijkstra + { + namespace Image + { + /** + */ + template< class _TImage, class _TValue > + class Identity + : public fpa::Functors::BaseVertexFunction< typename _TImage::IndexType, _TValue > + { + public: + typedef _TImage TImage; + typedef _TValue TValue; + typedef typename TImage::IndexType TVertex; + typedef fpa::Functors::BaseVertexFunction< TVertex, TValue > Superclass; + typedef Identity Self; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + public: + itkNewMacro( Self ); + itkTypeMacro( + fpa::Functors::Dijkstra::Image::Identity, + fpa::Functors::BaseVertexFunction + ); + + public: + virtual TValue Evaluate( const TVertex& v, const TVertex& p ) const override + { + const TImage* image = + dynamic_cast< const TImage* >( + this->m_DataObject.GetPointer( ) + ); + if( image != NULL ) + return( TValue( image->GetPixel( v ) ) ); + else + return( TValue( -1 ) ); + } + + protected: + Identity( ) + : Superclass( ) + { + } + virtual ~Identity( ) + { + } + + private: + // Purposely not implemented. + Identity( const Self& other ); + Self& operator=( const Self& other ); + }; + + } // ecapseman + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#endif // __fpa__Functors__Dijkstra__Identity__h__ +// eof - $RCSfile$