]> Creatis software - clitk.git/blobdiff - common/clitkFilterBase.h
make difference between 2D and 3D with a single slice image (Dim obtained from ITK...
[clitk.git] / common / clitkFilterBase.h
index 7c3922a95a2822e625e5ee6e7421c105a589bc28..089fa52a60097dd7ee447fa8a6caea4dfc635fa7 100644 (file)
@@ -20,7 +20,7 @@
 #define CLITKFILTERBASE_H
 
 // clitk
-#include "clitkCommon.h"
+#include "clitkTimer.h"
 #include "clitkFilterMacros.txx"
 #include "clitkLabelizeParameters.h"
 
@@ -31,10 +31,11 @@ namespace clitk {
   
   //--------------------------------------------------------------------
   /*
-    Convenient class to manage options from GGO gengetopt) to filter
+    Convenient class to manage options from GGO (gengetopt) to filter
   */
   //--------------------------------------------------------------------
-  class FilterBase {
+  class FilterBase
+  {
 
   public:
     // Standard class typedefs
@@ -60,6 +61,8 @@ namespace clitk {
     GGO_DefineOption_Flag(verboseOption, SetVerboseOption);
 
     // Steps management
+    itkSetMacro(NumberOfSteps, int);
+    itkGetConstMacro(NumberOfSteps, int);
     itkSetMacro(VerboseStep, bool);
     itkGetConstMacro(VerboseStep, bool);
     itkBooleanMacro(VerboseStep);
@@ -76,6 +79,8 @@ namespace clitk {
     itkGetConstMacro(CurrentStepId, std::string);
     itkSetMacro(CurrentStepBaseId, std::string);
     itkGetConstMacro(CurrentStepBaseId, std::string);
+    itkSetMacro(CurrentStepName, std::string);
+    itkGetConstMacro(CurrentStepName, std::string);
 
     // Convenient function for verbose option
     template<class OptionType>
@@ -85,15 +90,6 @@ namespace clitk {
     template<class OptionType>
     void VerboseOptionV(std::string name, int nb, OptionType * value);
 
-    // Error 
-    void SetLastError(std::string e);
-    void ResetLastError();
-    itkGetConstMacro(LastError, std::string);
-    bool HasError() { return (GetLastError() != ""); }
-    itkSetMacro(StopOnError, bool);
-    itkGetConstMacro(StopOnError, bool);
-    itkBooleanMacro(StopOnError);    
-
     void SetWarning(std::string e);
     itkGetConstMacro(Warning, std::string);
     itkSetMacro(VerboseWarningOff, bool);
@@ -101,6 +97,10 @@ namespace clitk {
     itkBooleanMacro(VerboseWarningOff);
     GGO_DefineOption_Flag(verboseWarningOff, SetVerboseWarningOff);
     
+    // Use this function to cancel the filter between step
+    void Cancel();
+    bool Cancelled();
+
   protected:
     FilterBase();
     virtual ~FilterBase() {}    
@@ -113,12 +113,15 @@ namespace clitk {
     bool m_VerboseStep;
     bool m_WriteStep;
     int m_CurrentStepNumber;
+    int m_NumberOfSteps;
     std::string m_CurrentStepId;
     std::string m_CurrentStepBaseId;
-    std::string m_LastError;
-    bool m_StopOnError;
+    std::string m_CurrentStepName;
     std::string m_Warning;
     bool m_VerboseWarningOff;
+    bool m_IsCancelled;
+    Timer m_CurrentStepTimer;
+    
 
   private:
     FilterBase(const Self&); //purposely not implemented