1 #ifndef __fpa__Base__PriorityQueueAlgorithm__h__
2 #define __fpa__Base__PriorityQueueAlgorithm__h__
12 template< class _TSuperclass >
13 class PriorityQueueAlgorithm
17 typedef PriorityQueueAlgorithm Self;
18 typedef _TSuperclass Superclass;
19 typedef itk::SmartPointer< Self > Pointer;
20 typedef itk::SmartPointer< const Self > ConstPointer;
23 typedef typename Superclass::_TQueueNode _TQueueNode;
24 struct _TQueueNodeCompare
26 bool operator( )( const _TQueueNode& a, const _TQueueNode& b )
28 return( b.Result < a.Result );
31 typedef std::vector< _TQueueNode > _TQueue;
34 itkTypeMacro( PriorityQueueAlgorithm, Algorithm );
37 PriorityQueueAlgorithm( );
38 virtual ~PriorityQueueAlgorithm( );
40 virtual unsigned long _QueueSize( ) const override;
41 virtual void _QueueClear( ) override;
42 virtual void _QueuePush( const _TQueueNode& node ) override;
43 virtual _TQueueNode _QueuePop( ) override;
46 // Purposely not defined
47 PriorityQueueAlgorithm( const Self& other );
48 Self& operator=( const Self& other );
58 #ifndef ITK_MANUAL_INSTANTIATION
59 # include <fpa/Base/PriorityQueueAlgorithm.hxx>
60 #endif // ITK_MANUAL_INSTANTIATION
62 #endif // __fpa__Base__PriorityQueueAlgorithm__h__