#ifndef __fpa__Filters__Mori__h__
#define __fpa__Filters__Mori__h__
-#include <deque>
-#include <set>
-#include <itkConceptChecking.h>
-#include <fpa/Common/PeakDetector.h>
-#include <fpa/Filters/Algorithm.h>
+#include <fpa/Config.h>
+#include <fpa/Filters/QueueAlgorithm.h>
#include <fpa/Functors/RegionGrow/BinaryThreshold.h>
+#include <ivq/ITK/PeakDetector.h>
+
namespace fpa
{
namespace Filters
{
/**
*/
- template< class _TTraits >
+ template< class _TDataInterface >
class Mori
- : public fpa::Filters::Algorithm< _TTraits >
+ : public fpa::Filters::QueueAlgorithm< _TDataInterface >
{
public:
- typedef _TTraits TTraits;
- fpaTraitsMacro( typename, TTraits );
+ typedef _TDataInterface TDataInterface;
+ typedef fpa::Filters::QueueAlgorithm< TDataInterface > Superclass;
+ typedef Mori Self;
+ typedef itk::SmartPointer< Self > Pointer;
+ typedef itk::SmartPointer< const Self > ConstPointer;
- typedef fpa::Filters::Algorithm< TTraits > Superclass;
- typedef Mori Self;
- typedef itk::SmartPointer< Self > Pointer;
- typedef itk::SmartPointer< const Self > ConstPointer;
+ typedef typename TDataInterface::TTraits TTraits;
+ fpaTraitsMacro( typename TTraits );
- typedef std::deque< TNode > TQueue;
typedef std::set< TInputValue > TThresholds;
- typedef fpa::Common::PeakDetector TPeakDetector;
+ typedef ivq::ITK::PeakDetector TPeakDetector;
typedef TPeakDetector::TPeak TPeak;
typedef fpa::Functors::RegionGrow::BinaryThreshold< TInputValue > TPredicate;
- protected:
- itkConceptMacro(
- Check_TOutputValue,
- ( itk::Concept::IsUnsignedInteger< TOutputValue > )
- );
-
public:
- itkTypeMacro( fpa::Filters::Image::Mori, fpa::Filters::Algorithm );
+ itkTypeMacro( fpa::Filters::Mori, fpa::Filters::QueueAlgorithm );
itkGetConstMacro( InsideValue, TOutputValue );
itkSetMacro( InsideValue, TOutputValue );
Mori( );
virtual ~Mori( );
- virtual void _BeforeGenerateData( );
- virtual void _Reinitialize( );
- virtual void _UpdateOutputValue( TNode& n ) override;
- virtual void _QueueClear( ) override;
- virtual TNode _QueuePop( ) override;
- virtual void _QueuePush( const TNode& n ) override;
- virtual unsigned long _QueueSize( ) const override;
- virtual void _ComputeOutputValue( TNode& n ) override;
+ // Pipeline related methods
+ virtual void _BeforeGenerateData( ) override;
+
+ // Algoritm related methods
+ virtual void _PostComputeOutputValue( TNode& n ) override;
+ virtual void _PreComputeOutputValue( TNode& n ) override;
+ virtual void _Reinitialize( ) override;
private:
- // Purposely not implemented.
Mori( const Self& other );
Self& operator=( const Self& other );
TInputValue m_MinimumThreshold;
TThresholds m_Thresholds;
typename TThresholds::const_iterator m_CurrThr;
-
- TQueue m_Queues[ 2 ];
- unsigned int m_CurrQueue;
- double m_CurrCount;
+ double m_CurrCount;
TPeakDetector m_PeakDetector;
};
#ifndef ITK_MANUAL_INSTANTIATION
# include <fpa/Filters/Mori.hxx>
#endif // ITK_MANUAL_INSTANTIATION
-
#endif // __fpa__Filters__Mori__h__
// eof - $RCSfile$