X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkImageToImageGenericFilterBase.h;h=3a568c6d03924b3e3e2c90aaea7bea4af9bb06a2;hb=543b72e23ad001ac2a7743b9beacf48e2d0054ac;hp=2d624baecef67ecb87d25124528c9c4f5940f09f;hpb=28a696a732734608d0c32608c80c890a164872c4;p=clitk.git diff --git a/common/clitkImageToImageGenericFilterBase.h b/common/clitkImageToImageGenericFilterBase.h index 2d624ba..3a568c6 100644 --- a/common/clitkImageToImageGenericFilterBase.h +++ b/common/clitkImageToImageGenericFilterBase.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,14 +14,15 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ + #ifndef CLITKIMAGETOIMAGEGENERICFILTERBASE_H #define CLITKIMAGETOIMAGEGENERICFILTERBASE_H // clitk -#include "clitkCommon.h" #include "clitkImageCommon.h" #include "clitkCommonGenericFilter.h" +#include "clitkFilterBase.h" // itk #include @@ -51,23 +52,19 @@ namespace clitk { const std::string & GetFilterName(); void SetFilterName(std::string & n); - // Error management - itkSetMacro(LastError, std::string); - itkGetConstMacro(LastError, std::string); - bool HasError() { return (GetLastError() != ""); } - // Generic IO /// Returns the dimension and pixel type of the *first* input void GetInputImageDimensionAndPixelType(unsigned int& dim, std::string& pixeltype, unsigned int & components); - // File IO void SetInputFilename(const std::string & filename); void AddInputFilename(const std::string & filename); void SetInputFilenames(const std::vector & filenames); void EnableReadOnDisk(bool b); + void EnableWriteOnDisk(bool b); + void EnableWriteCompression(bool b); void SetOutputFilename(const std::string & filename); - void AddOutputFilename(const std::string & filename); + void AddOutputFilename(const std::string filename); void SetOutputFilenames(const std::vector & filenames); std::string GetOutputFilename(); void SetIOVerbose(bool b); @@ -89,8 +86,17 @@ namespace clitk { // Main function to call for using the filter. virtual bool Update() = 0; + // Get the associated filter + FilterBase * GetFilterBase() { return m_FilterBase; } + + // Indicate that the filter must stop as soon as possible (if threaded) + void DeleteLastOutputImage(); + protected: bool m_ReadOnDisk; + bool m_WriteOnDisk; + bool m_WriteCompression; + /// Call this function to dispatch an output towards the correct sink template void SetNextOutput(typename ImageType::Pointer output); @@ -101,7 +107,7 @@ namespace clitk { std::vector m_InputFilenames; std::list m_OutputFilenames; - + bool m_IOVerbose; unsigned int m_Dim; std::string m_PixelTypeName; @@ -115,7 +121,10 @@ namespace clitk { void SetImageTypeError(); bool m_FailOnImageTypeError; - std::string m_LastError; + // std::string m_LastError; + void SetFilterBase(FilterBase * f) { m_FilterBase = f; } + FilterBase * m_FilterBase; + // bool m_StopOnError; }; // end class clitk::ImageToImageGenericFilter @@ -128,6 +137,9 @@ namespace clitk { ADD_IMAGE_TYPE(DIM, int); \ ADD_IMAGE_TYPE(DIM, float); \ ADD_IMAGE_TYPE(DIM, double); +#define ADD_DEFAULT_VEC_IMAGE_TYPES ADD_VEC_IMAGE_TYPE(2,2,float); \ + ADD_VEC_IMAGE_TYPE(2,3,float); \ + ADD_VEC_IMAGE_TYPE(3,3,float); //#include "clitkImageToImageGenericFilterBase.txx"