+++ /dev/null
-// =========================================================================
-// @author Leonardo Florez Valencia
-// @email florez-l@javeriana.edu.co
-// =========================================================================
-
-#ifndef __fpa__Base__DijkstraBase__h__
-#define __fpa__Base__DijkstraBase__h__
-
-#include <vector>
-
-#include <itkConceptChecking.h>
-#include <fpa/Base/Functors/Dijkstra/Function.h>
-
-namespace fpa
-{
- namespace Base
- {
- /**
- */
- template< class _TAlgorithm >
- class DijkstraBase
- : public _TAlgorithm
- {
- public:
- typedef DijkstraBase Self;
- typedef _TAlgorithm Superclass;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
-
- typedef typename _TAlgorithm::TNode TNode;
- typedef typename _TAlgorithm::TNodes TNodes;
- typedef typename _TAlgorithm::TInputValue TInputValue;
- typedef typename _TAlgorithm::TOutputValue TOutputValue;
- typedef typename _TAlgorithm::TVertex TVertex;
-
- typedef std::vector< TNode > TQueue;
- struct TQueueOrder
- {
- bool operator()( const TNode& a, const TNode& b ) const
- {
- return( b.Value < a.Value );
- }
- };
- typedef fpa::Base::Functors::Dijkstra::Function< TVertex, TOutputValue > TWeightFunction;
-
- public:
- itkConceptMacro(
- Check_TOutputValue,
- ( itk::Concept::IsFloatingPoint< TOutputValue > )
- );
-
- public:
- itkGetObjectMacro( WeightFunction, TWeightFunction );
- itkSetObjectMacro( WeightFunction, TWeightFunction );
-
- public:
- virtual itk::ModifiedTimeType GetMTime( ) const override;
-
- protected:
- DijkstraBase( );
- virtual ~DijkstraBase( );
-
- virtual void _ComputeOutputValue( TNode& n ) override;
- virtual void _QueueClear( ) override;
- virtual TNode _QueuePop( ) override;
- virtual void _QueuePush( const TNode& node ) override;
- virtual unsigned long _QueueSize( ) const override;
- virtual void _PrepareSeeds( TNodes& nodes ) override;
-
- private:
- // Purposely not implemented.
- DijkstraBase( const Self& other );
- Self& operator=( const Self& other );
-
- protected:
- typename TWeightFunction::Pointer m_WeightFunction;
-
- TQueue m_Queue;
- TQueueOrder m_QueueOrder;
- };
-
- } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-# include <fpa/Base/DijkstraBase.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __fpa__Base__DijkstraBase__h__
-
-// eof - $RCSfile$