]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Filters/Mori.h
...
[FrontAlgorithms.git] / lib / fpa / Filters / Mori.h
index 0bda0ff6537fd79e16abd02a749ca6589770af44..df99fb78af2074362a476835b932cc759d6899b3 100644 (file)
@@ -5,46 +5,39 @@
 #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 );
@@ -83,17 +76,15 @@ namespace fpa
       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 );
 
@@ -104,10 +95,7 @@ namespace fpa
       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;
     };
@@ -119,6 +107,5 @@ namespace fpa
 #ifndef ITK_MANUAL_INSTANTIATION
 #  include <fpa/Filters/Mori.hxx>
 #endif // ITK_MANUAL_INSTANTIATION
-
 #endif // __fpa__Filters__Mori__h__
 // eof - $RCSfile$