X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkFilterBase.h;h=1019b7b76aa49f9b28e8796151a2e60c7c89672b;hb=d55f025b18f68066a52b8f33c2dc6481e82c2580;hp=a53f655d527a5bdcea53e6d955eb2ed0490d39da;hpb=f425f2bbd6a8c36a91965bc5a6a6bc28a0912ce3;p=clitk.git diff --git a/common/clitkFilterBase.h b/common/clitkFilterBase.h index a53f655..1019b7b 100644 --- a/common/clitkFilterBase.h +++ b/common/clitkFilterBase.h @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,13 +14,12 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html - ======================================================================-====*/ + ===========================================================================**/ #ifndef CLITKFILTERBASE_H #define CLITKFILTERBASE_H // clitk -//#include "clitkCommon.h" #include "clitkTimer.h" #include "clitkFilterMacros.txx" #include "clitkLabelizeParameters.h" @@ -32,7 +31,7 @@ namespace clitk { //-------------------------------------------------------------------- /* - Convenient class to manage options from GGO (gengetopt) to filter + Convenient class to manage frequent options */ //-------------------------------------------------------------------- class FilterBase @@ -43,7 +42,10 @@ namespace clitk { typedef FilterBase Self; // Run-time type information (and related methods) - itkTypeMacro(FilterBase, Object); + virtual const char *GetNameOfClass() const + { + return "FilterBase"; + } // Needed by itkSetMacro (cannot inherit from itkObject because of // multiple inheritance) @@ -56,23 +58,35 @@ namespace clitk { virtual bool GetDebug() const { return Superclass::GetDebug(); } // Verbose options management - itkSetMacro(VerboseOption, bool); - itkGetConstMacro(VerboseOption, bool); - itkBooleanMacro(VerboseOption); - GGO_DefineOption_Flag(verboseOption, SetVerboseOption); + itkSetMacro(VerboseFlag, bool); + itkGetConstMacro(VerboseFlag, bool); + itkBooleanMacro(VerboseFlag); + + // Verbose Options + itkSetMacro(VerboseOptionFlag, bool); + itkGetConstMacro(VerboseOptionFlag, bool); + itkBooleanMacro(VerboseOptionFlag); + + // Verbose Memory + itkSetMacro(VerboseMemoryFlag, bool); + itkGetConstMacro(VerboseMemoryFlag, bool); + itkBooleanMacro(VerboseMemoryFlag); + + // Verbose ImageSize + itkSetMacro(VerboseImageSizeFlag, bool); + itkGetConstMacro(VerboseImageSizeFlag, bool); + itkBooleanMacro(VerboseImageSizeFlag); // Steps management itkSetMacro(NumberOfSteps, int); itkGetConstMacro(NumberOfSteps, int); - itkSetMacro(VerboseStep, bool); - itkGetConstMacro(VerboseStep, bool); - itkBooleanMacro(VerboseStep); - GGO_DefineOption_Flag(verboseStep, SetVerboseStep); + itkSetMacro(VerboseStepFlag, bool); + itkGetConstMacro(VerboseStepFlag, bool); + itkBooleanMacro(VerboseStepFlag); - itkSetMacro(WriteStep, bool); - itkGetConstMacro(WriteStep, bool); - itkBooleanMacro(WriteStep); - GGO_DefineOption_Flag(writeStep, SetWriteStep); + itkSetMacro(WriteStepFlag, bool); + itkGetConstMacro(WriteStepFlag, bool); + itkBooleanMacro(WriteStepFlag); itkSetMacro(CurrentStepNumber, int); itkGetConstMacro(CurrentStepNumber, int); @@ -82,7 +96,10 @@ namespace clitk { itkGetConstMacro(CurrentStepBaseId, std::string); itkSetMacro(CurrentStepName, std::string); itkGetConstMacro(CurrentStepName, std::string); - + + void StartSubStep(); + void StopSubStep(); + // Convenient function for verbose option template void VerboseOption(std::string name, OptionType value); @@ -93,10 +110,9 @@ namespace clitk { void SetWarning(std::string e); itkGetConstMacro(Warning, std::string); - itkSetMacro(VerboseWarningOff, bool); - itkGetConstMacro(VerboseWarningOff, bool); - itkBooleanMacro(VerboseWarningOff); - GGO_DefineOption_Flag(verboseWarningOff, SetVerboseWarningOff); + itkSetMacro(VerboseWarningFlag, bool); + itkGetConstMacro(VerboseWarningFlag, bool); + itkBooleanMacro(VerboseWarningFlag); // Use this function to cancel the filter between step void Cancel(); @@ -105,25 +121,30 @@ namespace clitk { protected: FilterBase(); virtual ~FilterBase() {} - void StartNewStep(std::string s); + void StartNewStep(std::string s, bool endl=true); template - void StopCurrentStep(typename TInternalImageType::Pointer p); + void StopCurrentStep(typename TInternalImageType::Pointer p, std::string txt=""); void StopCurrentStep(); - bool m_VerboseOption; - bool m_VerboseStep; - bool m_WriteStep; + bool m_VerboseFlag; + bool m_VerboseOptionFlag; + bool m_VerboseStepFlag; + bool m_VerboseMemoryFlag; + bool m_VerboseImageSizeFlag; + bool m_WriteStepFlag; int m_CurrentStepNumber; int m_NumberOfSteps; std::string m_CurrentStepId; std::string m_CurrentStepBaseId; std::string m_CurrentStepName; std::string m_Warning; - bool m_VerboseWarningOff; + bool m_VerboseWarningFlag; bool m_IsCancelled; Timer m_CurrentStepTimer; - + std::vector m_SubstepNumbers; + std::vector m_SubstepID; + private: FilterBase(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented