From b531882002904341d2fa77461e163846276b7c1c Mon Sep 17 00:00:00 2001 From: Antoine Regimbeau <antoine.regimbeau@c-s.fr> Date: Thu, 16 Nov 2017 15:26:07 +0100 Subject: [PATCH] ENH: add support for ComplexInputImageParameter --- .../include/otbWrapperApplication.h | 9 ++++-- .../otbWrapperComplexInputImageParameter.h | 21 ++++++++++++++ .../otbWrapperComplexInputImageParameter.cxx | 29 +++++++++++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h index fb5a84f2ab..57452dbb4a 100644 --- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h +++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h @@ -592,11 +592,16 @@ public: { \ Image##Type::Pointer ret; \ Parameter* param = GetParameterByKey(parameter); \ - if (dynamic_cast<InputImageParameter*>(param)) \ + InputImageParameter* paramDown = dynamic_cast<InputImageParameter*>(param); \ + ComplexInputImageParameter* paramDownC = dynamic_cast<ComplexInputImageParameter*>(param); \ + if ( paramDown ) \ { \ - InputImageParameter* paramDown = dynamic_cast<InputImageParameter*>(param); \ ret = paramDown->Get##Image(); \ } \ + else if ( paramDownC ) /* Support of ComplexInputImageParameter */ \ + { \ + ret = paramDownC->Get##Image(); \ + } \ return ret; \ } diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h index 1fa00dd77d..938736eb14 100644 --- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h +++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperComplexInputImageParameter.h @@ -66,6 +66,27 @@ public: ComplexFloatVectorImageType* GetComplexFloatVectorImage(); ComplexDoubleVectorImageType* GetComplexDoubleVectorImage(); +/* Support for ComplexInputImageParameter. This has been done to support +the macro otbGetParameterImageMacro of otbWrapperApplication.h */ + UInt8ImageType* GetUInt8Image(); + UInt16ImageType* GetUInt16Image(); + Int16ImageType* GetInt16Image(); + UInt32ImageType* GetUInt32Image(); + Int32ImageType* GetInt32Image(); + FloatImageType* GetFloatImage(); + DoubleImageType* GetDoubleImage(); + + UInt8VectorImageType* GetUInt8VectorImage(); + UInt16VectorImageType* GetUInt16VectorImage(); + Int16VectorImageType* GetInt16VectorImage(); + UInt32VectorImageType* GetUInt32VectorImage(); + Int32VectorImageType* GetInt32VectorImage(); + FloatVectorImageType* GetFloatVectorImage(); + DoubleVectorImageType* GetDoubleVectorImage(); + + UInt8RGBImageType* GetUInt8RGBImage(); + UInt8RGBAImageType* GetUInt8RGBAImage(); + /** Get the input image as templated image type. */ template <class TImageType> TImageType* GetImage(); diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx index 6c59ad4c83..0eda88fb9d 100644 --- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx +++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperComplexInputImageParameter.cxx @@ -133,6 +133,35 @@ ComplexInputImageParameter::ClearValue() m_UseFilename = true; } +/* Support for ComplexInputImageParameter. This has been done to support +the macro otbGetParameterImageMacro of otbWrapperApplication.h */ +#define otbGetFalseImageMacro(image) \ + image##Type * \ + ComplexInputImageParameter::Get##image () \ + { \ + return nullptr; \ + } + +otbGetFalseImageMacro(DoubleImage); +otbGetFalseImageMacro(DoubleVectorImage); + +otbGetFalseImageMacro(FloatImage); +otbGetFalseImageMacro(FloatVectorImage); + +otbGetFalseImageMacro(Int16Image); +otbGetFalseImageMacro(Int16VectorImage); + +otbGetFalseImageMacro(UInt16Image); +otbGetFalseImageMacro(UInt16VectorImage); + +otbGetFalseImageMacro(Int32Image); +otbGetFalseImageMacro(Int32VectorImage); + +otbGetFalseImageMacro(UInt32Image); +otbGetFalseImageMacro(UInt32VectorImage); + +otbGetFalseImageMacro(UInt8Image); +otbGetFalseImageMacro(UInt8VectorImage); } } -- GitLab