]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Base/Mori.h
...
[FrontAlgorithms.git] / lib / fpa / Base / Mori.h
index d9277845fd365a80541769d891c7bbceda872aa0..ef8d7cc475d7e286e2392b394bbd6c7dcb494f76 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <deque>
 #include <set>
+#include <map>
 #include <itkConceptChecking.h>
 #include <itkFunctionBase.h>
 #include <fpa/Base/Functors/RegionGrow/BinaryThreshold.h>
@@ -37,6 +38,8 @@ namespace fpa
 
       typedef std::deque< TNode >     TQueue;
       typedef std::set< TInputValue > TThresholds;
+      typedef std::pair< TInputValue, unsigned long > TSignalData;
+      typedef std::map< TFrontId, TSignalData >       TSignal;
       typedef fpa::Base::Functors::RegionGrow::BinaryThreshold< TInputValue > TPredicate;
 
     public:
@@ -59,7 +62,7 @@ namespace fpa
       void SetThresholds(
         const TInputValue& init,
         const TInputValue& end,
-        unsigned long number_of_thresholds
+        const TInputValue& delta
         );
 
     protected:
@@ -68,7 +71,9 @@ namespace fpa
 
       virtual void _BeforeGenerateData( ) override;
       virtual void _AfterGenerateData( ) override;
-      virtual TOutputValue _ComputeOutputValue( const TNode& n ) override;
+      virtual void _FinishOneLoop( ) override;
+      virtual void _ComputeOutputValue( TNode& n ) override;
+      virtual void _UpdateOutputValue( TNode& n ) override;
       virtual void _QueueClear( ) override;
       virtual TNode _QueuePop( ) override;
       virtual void _QueuePush( const TNode& node ) override;
@@ -83,8 +88,11 @@ namespace fpa
     protected:
       typename TPredicate::Pointer m_Predicate;
       TThresholds m_Thresholds;
+      typename TThresholds::const_iterator m_CurrentThreshold;
       TQueue m_Queues[ 2 ];
       unsigned int m_CurrentQueue;
+      unsigned long m_Count;
+      TSignal m_Signal;
 
       TOutputValue m_InsideValue;
     };