From 597222c3d0a34f5fcf7dd2cecca265e309ee6613 Mon Sep 17 00:00:00 2001 From: Guillaume Pasero <guillaume.pasero@c-s.fr> Date: Mon, 20 Aug 2018 10:16:00 +0200 Subject: [PATCH] BUG: #1628: don't mess with user flag outside ApplicationEngine --- .../app/otbOrthoRectification.cxx | 82 ++----------------- 1 file changed, 8 insertions(+), 74 deletions(-) diff --git a/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx b/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx index 1d42d243f5..546ce9d1ad 100644 --- a/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx +++ b/Modules/Applications/AppProjection/app/otbOrthoRectification.cxx @@ -269,30 +269,14 @@ private: genericRSEstimator->SetOutputProjectionRef(m_OutputProjectionRef); genericRSEstimator->Compute(); - // Fill the Gui with the computed parameters - if (!HasUserValue("outputs.sizex")) - SetParameterInt("outputs.sizex",genericRSEstimator->GetOutputSize()[0]); - - if (!HasUserValue("outputs.sizey")) - SetParameterInt("outputs.sizey",genericRSEstimator->GetOutputSize()[1]); - - if (!HasUserValue("outputs.spacingx")) - SetParameterFloat("outputs.spacingx",genericRSEstimator->GetOutputSpacing()[0]); - - if (!HasUserValue("outputs.spacingy")) - SetParameterFloat("outputs.spacingy",genericRSEstimator->GetOutputSpacing()[1]); - - if (!HasUserValue("outputs.ulx")) - SetParameterFloat("outputs.ulx",genericRSEstimator->GetOutputOrigin()[0] - 0.5 * genericRSEstimator->GetOutputSpacing()[0]); - - if (!HasUserValue("outputs.uly")) - SetParameterFloat("outputs.uly",genericRSEstimator->GetOutputOrigin()[1] - 0.5 * genericRSEstimator->GetOutputSpacing()[1]); - - if (!HasUserValue("outputs.lrx")) - SetParameterFloat("outputs.lrx",GetParameterFloat("outputs.ulx") + GetParameterFloat("outputs.spacingx") * static_cast<double>(GetParameterInt("outputs.sizex"))); - - if (!HasUserValue("outputs.lry")) - SetParameterFloat("outputs.lry",GetParameterFloat("outputs.uly") + GetParameterFloat("outputs.spacingy") * static_cast<double>(GetParameterInt("outputs.sizey"))); + SetDefaultParameterInt("outputs.sizex", genericRSEstimator->GetOutputSize()[0]); + SetDefaultParameterInt("outputs.sizey", genericRSEstimator->GetOutputSize()[1]); + SetDefaultParameterFloat("outputs.spacingx", genericRSEstimator->GetOutputSpacing()[0]); + SetDefaultParameterFloat("outputs.spacingy", genericRSEstimator->GetOutputSpacing()[1]); + SetDefaultParameterFloat("outputs.ulx", genericRSEstimator->GetOutputOrigin()[0] - 0.5 * genericRSEstimator->GetOutputSpacing()[0]); + SetDefaultParameterFloat("outputs.uly", genericRSEstimator->GetOutputOrigin()[1] - 0.5 * genericRSEstimator->GetOutputSpacing()[1]); + SetDefaultParameterFloat("outputs.lrx", GetParameterFloat("outputs.ulx") + GetParameterFloat("outputs.spacingx") * static_cast<double>(GetParameterInt("outputs.sizex"))); + SetDefaultParameterFloat("outputs.lry", GetParameterFloat("outputs.uly") + GetParameterFloat("outputs.spacingy") * static_cast<double>(GetParameterInt("outputs.sizey"))); // Handle the spacing and size field following the mode // chose by the user @@ -300,16 +284,6 @@ private: { case Mode_UserDefined: { - // Automatic set to off except lower right coordinates - AutomaticValueOff("outputs.ulx"); - AutomaticValueOff("outputs.uly"); - AutomaticValueOff("outputs.sizex"); - AutomaticValueOff("outputs.sizey"); - AutomaticValueOff("outputs.spacingx"); - AutomaticValueOff("outputs.spacingy"); - AutomaticValueOn("outputs.lrx"); - AutomaticValueOn("outputs.lry"); - // Enable all the parameters except lower right coordinates EnableParameter("outputs.ulx"); EnableParameter("outputs.uly"); @@ -350,16 +324,6 @@ private: DisableParameter("outputs.lry"); DisableParameter("outputs.ortho"); - // Update the automatic value mode of each filed - AutomaticValueOn("outputs.ulx"); - AutomaticValueOn("outputs.uly"); - AutomaticValueOn("outputs.sizex"); - AutomaticValueOn("outputs.sizey"); - AutomaticValueOff("outputs.spacingx"); - AutomaticValueOff("outputs.spacingy"); - AutomaticValueOn("outputs.lrx"); - AutomaticValueOn("outputs.lry"); - // Adapat the status of the param to this mode MandatoryOff("outputs.ulx"); MandatoryOff("outputs.uly"); @@ -404,16 +368,6 @@ private: DisableParameter("outputs.lry"); DisableParameter("outputs.ortho"); - // Update the automatic value mode of each filed - AutomaticValueOn("outputs.ulx"); - AutomaticValueOn("outputs.uly"); - AutomaticValueOn("outputs.spacingx"); - AutomaticValueOn("outputs.spacingy"); - AutomaticValueOff("outputs.sizex"); - AutomaticValueOff("outputs.sizey"); - AutomaticValueOn("outputs.lrx"); - AutomaticValueOn("outputs.lry"); - // Adapat the status of the param to this mode MandatoryOff("outputs.ulx"); MandatoryOff("outputs.uly"); @@ -459,16 +413,6 @@ private: EnableParameter("outputs.lry"); DisableParameter("outputs.ortho"); - // Update the automatic value mode of each filed - AutomaticValueOff("outputs.ulx"); - AutomaticValueOff("outputs.uly"); - AutomaticValueOn("outputs.sizex"); - AutomaticValueOn("outputs.sizey"); - AutomaticValueOff("outputs.spacingx"); - AutomaticValueOff("outputs.spacingy"); - AutomaticValueOff("outputs.lrx"); - AutomaticValueOff("outputs.lry"); - // Adapt the status of the param to this mode MandatoryOn("outputs.ulx"); MandatoryOn("outputs.uly"); @@ -517,16 +461,6 @@ private: if (HasValue("outputs.ortho")) { - // Automatic set to on - AutomaticValueOn("outputs.ulx"); - AutomaticValueOn("outputs.uly"); - AutomaticValueOn("outputs.sizex"); - AutomaticValueOn("outputs.sizey"); - AutomaticValueOn("outputs.spacingx"); - AutomaticValueOn("outputs.spacingy"); - AutomaticValueOn("outputs.lrx"); - AutomaticValueOn("outputs.lry"); - // input image FloatVectorImageType::Pointer inOrtho = GetParameterImage("outputs.ortho"); -- GitLab