Commit c08ace5d authored by Victor Poughon's avatar Victor Poughon

MRG: Merge branch 'release-6.2' into develop

parents e07f287d f29e512d
......@@ -67,75 +67,51 @@ macro(otb_create_application)
endif()
else()
install(TARGETS ${APPLICATION_TARGET_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
LIBRARY DESTINATION lib
COMPONENT RuntimeLibraries)
endif()
# Generate a quickstart script in the build dir
#if (NOT WIN32)
# What is the path to the applications
# a MODULE target is always treated as LIBRARY
get_target_property(APPLICATION_BINARY_PATH ${APPLICATION_TARGET_NAME} LIBRARY_OUTPUT_DIRECTORY)
if (NOT APPLICATION_BINARY_PATH)
set(APPLICATION_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
endif()
if (WIN32)
set(SCRIPT_CLI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbcli_app.bat.in)
set(SCRIPT_CLI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli_${APPLICATION_NAME}.bat)
set(SCRIPT_CLI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbcli_${APPLICATION_NAME}.bat)
else()
set(SCRIPT_CLI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbcli_app.sh.in)
set(SCRIPT_CLI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli_${APPLICATION_NAME})
set(SCRIPT_CLI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbcli_${APPLICATION_NAME})
endif()
if (EXISTS ${SCRIPT_CLI_SOURCE})
# Generate a script in the build dir, next to the cli launcher
configure_file( ${SCRIPT_CLI_SOURCE}
${SCRIPT_CLI_INTERMEDIATE}
@ONLY )
# Copy it next to the application shared lib, and give executable rights
file(COPY ${SCRIPT_CLI_INTERMEDIATE}
DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
# Install a version of this script if we are inside the OTB build
install(PROGRAMS ${SCRIPT_CLI_INSTALLABLE}
DESTINATION ${OTB_INSTALL_RUNTIME_DIR}
COMPONENT Runtime)
endif()
if (WIN32)
set(SCRIPT_GUI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbgui_app.bat.in)
set(SCRIPT_GUI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui_${APPLICATION_NAME}.bat)
set(SCRIPT_GUI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbgui_${APPLICATION_NAME}.bat)
else()
set(SCRIPT_GUI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbgui_app.sh.in)
set(SCRIPT_GUI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui_${APPLICATION_NAME})
set(SCRIPT_GUI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbgui_${APPLICATION_NAME})
endif()
if (EXISTS ${SCRIPT_GUI_SOURCE})
# Generate a script in the build dir, next to the cli launcher
configure_file( ${SCRIPT_GUI_SOURCE}
${SCRIPT_GUI_INTERMEDIATE}
@ONLY )
# Copy it next to the application shared lib, and give executable rights
file(COPY ${SCRIPT_GUI_INTERMEDIATE}
DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
# Install a version of this script if we are inside the OTB build
install(PROGRAMS ${SCRIPT_GUI_INSTALLABLE}
DESTINATION ${OTB_INSTALL_RUNTIME_DIR}
COMPONENT Runtime)
endif()
#endif()
# What is the path to the applications
# a MODULE target is always treated as LIBRARY
get_target_property(APPLICATION_BINARY_PATH ${APPLICATION_TARGET_NAME} LIBRARY_OUTPUT_DIRECTORY)
if (NOT APPLICATION_BINARY_PATH)
set(APPLICATION_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
endif()
if(CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(_script_output_dir ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
else()
set(_script_output_dir ${CMAKE_BINARY_DIR}/bin)
endif()
if(OTB_INSTALL_RUNTIME_DIR)
set(_script_install_dir ${OTB_INSTALL_RUNTIME_DIR})
else()
set(_script_install_dir bin)
endif()
set(INTERMEDIATE_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
set(SCRIPT_EXT "")
if(WIN32)
set(SCRIPT_EXT ".bat")
endif()
# ----- Create and install launcher scripts ------
foreach(type CLI GUI)
string(TOLOWER "${type}" type_lower)
set(SCRIPT_NAME otb${type_lower}_${APPLICATION_NAME}${SCRIPT_EXT})
otb_write_app_launcher(
NAME ${APPLICATION_NAME}
OUTPUT ${INTERMEDIATE_DIR}/${SCRIPT_NAME}
TYPE ${type})
# Copy it next to the application shared lib, and give executable rights
file(COPY ${INTERMEDIATE_DIR}/${SCRIPT_NAME}
DESTINATION ${_script_output_dir}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
# Install a version of this script if we are inside the OTB build
install(PROGRAMS ${_script_output_dir}/${SCRIPT_NAME}
DESTINATION ${_script_install_dir}
COMPONENT Runtime)
endforeach()
list(APPEND OTB_APPLICATIONS_NAME_LIST ${APPLICATION_NAME})
list(REMOVE_DUPLICATES OTB_APPLICATIONS_NAME_LIST)
......@@ -170,3 +146,56 @@ macro(otb_test_application)
-testenv ${TESTAPPLICATION_TESTENVOPTIONS})
endif()
endmacro()
macro(otb_write_app_launcher)
cmake_parse_arguments(APPLAUNCHER "" "NAME;OUTPUT;TYPE" "" ${ARGN} )
if("${APPLAUNCHER_TYPE}" STREQUAL "CLI")
set(_launcher_type "otbcli")
elseif("${APPLAUNCHER_TYPE}" STREQUAL "GUI")
set(_launcher_type "otbgui")
else()
message(FATAL_ERROR "Unknown launcher type : ${APPLAUNCHER_TYPE}, only support CLI and GUI")
endif()
if(WIN32)
# Launcher script in Batch format
file(WRITE "${APPLAUNCHER_OUTPUT}"
"@echo off
::
:: Autogenerated by OTB installation process
:: DO NOT MODIFY
::
set CURRENT_SCRIPT_DIR=%~dp0
if exist %CURRENT_SCRIPT_DIR%${_launcher_type}.bat (
:: Prefer using the launcher inside the script dir
set OTB_LAUNCHER=%CURRENT_SCRIPT_DIR%${_launcher_type}.bat
) else (
:: Use the one from the PATH
set OTB_LAUNCHER=${_launcher_type}.bat
)
:: start the application
%OTB_LAUNCHER% ${APPLAUNCHER_NAME} %*
")
else()
# Launcher script in Shell format
file(WRITE "${APPLAUNCHER_OUTPUT}"
"#!/bin/sh
#
# Autogenerated by OTB installation process
# DO NOT MODIFY
#
CURRENT_SCRIPT_DIR=$(dirname \"\$0\")
if [ -e \"\$CURRENT_SCRIPT_DIR/${_launcher_type}\" ] ; then
# Prefer using the launcher inside the script dir
OTB_LAUNCHER=$CURRENT_SCRIPT_DIR/${_launcher_type}
else
# Use the one from the PATH
OTB_LAUNCHER=${_launcher_type}
fi
# start the application
\$OTB_LAUNCHER ${APPLAUNCHER_NAME} \"$@\"
")
endif()
endmacro()
......@@ -76,6 +76,9 @@ else()
if(NOT OTB_INSTALL_PACKAGE_DIR)
set(OTB_INSTALL_PACKAGE_DIR "lib/cmake/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}")
endif()
if(NOT OTB_INSTALL_APP_DIR)
set(OTB_INSTALL_APP_DIR lib/otb/applications)
endif()
# Use OTB's flags.
set(CMAKE_C_FLAGS "${OTB_REQUIRED_C_FLAGS} ${CMAKE_C_FLAGS}")
......
......@@ -262,7 +262,7 @@ macro(otb_module_impl)
set(OTBAPP_BASELINE ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Images)
set(OTBAPP_BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Files)
if(${BUILD_TESTING})
if(BUILD_TESTING)
enable_testing()
endif()
......
@echo off
::
:: Autogenerated by OTB installation process
:: DO NOT MODIFY
::
set CURRENT_SCRIPT_DIR=%~dp0
if exist %CURRENT_SCRIPT_DIR%otbcli.bat (
:: Prefer using the launcher inside the script dir
set OTB_CLI_LAUNCHER=%CURRENT_SCRIPT_DIR%otbcli.bat
) else (
:: Use the one from the PATH
set OTB_CLI_LAUNCHER=otbcli.bat
)
:: start the application
%OTB_CLI_LAUNCHER% @APPLICATION_NAME@ %*
#!/bin/sh
#
# Autogenerated by OTB installation process
# DO NOT MODIFY
#
CURRENT_SCRIPT_DIR=$(dirname "$0")
if [ -e "$CURRENT_SCRIPT_DIR/otbcli" ]
then
# Prefer using the launcher inside the script dir
OTB_CLI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbcli
else
# Use the one from the PATH
OTB_CLI_LAUNCHER=otbcli
fi
# start the application
$OTB_CLI_LAUNCHER @APPLICATION_NAME@ "$@"
@echo off
::
:: Autogenerated by OTB installation process
:: DO NOT MODIFY
::
set CURRENT_SCRIPT_DIR=%~dp0
if exist %CURRENT_SCRIPT_DIR%otbgui.bat (
:: Prefer using the launcher inside the script dir
set OTB_GUI_LAUNCHER=%CURRENT_SCRIPT_DIR%otbgui.bat
) else (
:: Use the one from the PATH
set OTB_GUI_LAUNCHER=otbgui.bat
)
:: start the application
%OTB_GUI_LAUNCHER% @APPLICATION_NAME@ %*
#!/bin/sh
#
# Autogenerated by OTB installation process
# DO NOT MODIFY
#
CURRENT_SCRIPT_DIR=$(dirname "$0")
if [ -e "$CURRENT_SCRIPT_DIR/otbgui" ]
then
# Prefer using the launcher inside the script dir
OTB_GUI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbgui
else
# Use the one from the PATH
OTB_GUI_LAUNCHER=otbgui
fi
# start the application
$OTB_GUI_LAUNCHER @APPLICATION_NAME@ "$@"
......@@ -36,10 +36,14 @@ archive is extracted, the directory structure consists of:
- ``share``: A folder containing common resources and copyright
mentions.
- ``tool``: A folder containing usefull scripts to test the installation or
to uninstall OTB libraries and headers while keeping all the depedencies.
In order to run the command line launchers, this package doesn’t require
any special library that is not present in most modern Linux
distributions. There is a small caveat for "expat" though as these binaries depend
on "libexpat.so", which can be supplied by most package managers (apt, yum, ...).
Note that this problem only affects versions 6.0 and older.
If not already present, it is necessary to install one of the following packages:
::
......@@ -108,9 +112,9 @@ A: This is due to a conflict with system Qt4 (usually seen on KDE) and Qt4 + gtk
Q: Monteverdi and Mapla applications look different from my other applications.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A: By default, Monteverdi, Mapla and otbapplication (otbgui\_\*) uses a the
system gtk theme. If you can't install GTK on your system you can use the
distributed with the OTB package. Note that using system GTK is the preferred
A: In versions 6.0 and older, Monteverdi, Mapla and otbapplication (otbgui\_\*)
use the system gtk theme. If you can't install GTK on your system you can use the
one distributed with the OTB package. Note that using system GTK is the preferred
way with the OTB standalone package as the distributed version of GTK do not
work on recent Linux distributions.
......@@ -122,3 +126,6 @@ To use the distributed GTK libraries you need to set the OTB_USE_LOCAL_GTK:
And now start ``monteverdi.sh`` or ``mapla.sh`` from OTB-|release|-Linux64
To get back default behaviour, unset OTB_USE_LOCAL_GTK=1 or set OTB_USE_LOCAL_GTK=0
In version 6.2, the Linux binaries are built without GTK support to cut some
dependencies.
......@@ -25,6 +25,9 @@ Contents of OTB-|release|-Darwin64 is briefly listed below:
- ``share``: A folder containing common resources and copyright
mentions.
- ``tool``: A folder containing usefull scripts to test the installation or
to uninstall OTB libraries and headers while keeping all the depedencies.
Python bindings
~~~~~~~~~~~~~~~
......
......@@ -18,6 +18,9 @@ and their launchers (both command line and graphical launchers are provided):
- ``lib``: A folder containing application DLLs.
- ``tool``: A folder containing usefull scripts to test the installation or
to uninstall OTB libraries and headers while keeping all the depedencies.
The applications can be launched from the Mapla launcher. If you want to
use the otbcli and otbgui launchers, you can initialize a command prompt
with ``otbenv.bat``.
......
......@@ -195,9 +195,16 @@ std::string MapProjectionAdapter::GetParameter(const std::string& key) const
if (projectionName.compare("ossimTransMercatorProjection") == 0)
{
const ossimTransMercatorProjection* tmProjection = dynamic_cast<const ossimTransMercatorProjection*>(this->GetMapProjection());
if (key.compare("ScaleFactor") == 0)
if (!tmProjection)
{
return Utils::ConvertToString(tmProjection->getScaleFactor());
itkExceptionMacro("Error casting object to ossimTransMercatorProjection.");
}
else
{
if (key.compare("ScaleFactor") == 0)
{
return Utils::ConvertToString(tmProjection->getScaleFactor());
}
}
}
......
......@@ -128,7 +128,7 @@ void TrainImagesBase::InitClassification()
AddApplication( "TrainVectorClassifier", "training", "Model training" );
AddParameter( ParameterType_InputVectorDataList, "io.valid", "Validation Vector Data List" );
SetParameterDescription( "io.valid", "A list of vector data to select the training samples." );
SetParameterDescription( "io.valid", "A list of vector data to select the validation samples." );
MandatoryOff( "io.valid" );
ShareClassificationParams();
......
......@@ -103,7 +103,7 @@ private:
"spectrum associated with each pixel is a linear combination of pure"
"materials in the recovery area, commonly known as endmembers. Endmembers can"
"be estimated using the VertexComponentAnalysis application.\n\n"
"The application allows to estimate the abundance maps with several algorithms :\n"
"The application allows estimating the abundance maps with several algorithms :\n"
" * Unconstrained Least Square (ucls)\n"
//" * Fully Constrained Least Square (fcls)\n"
" * Image Space Reconstruction Algorithm (isra)\n"
......
......@@ -222,6 +222,10 @@ private:
template<class TImageType>
void GenericDoExecute()
{
// Clear previously registered filters
m_Filters.clear();
std::string rescaleType = this->GetParameterString("type");
if( (rescaleType != "none") && (rescaleType != "linear") && (rescaleType != "log2") )
......@@ -383,7 +387,7 @@ private:
rescaler->SetGamma(GetParameterFloat("type.linear.gamma"));
}
m_TmpFilter = rescaler;
m_Filters.push_back(rescaler.GetPointer());
SetParameterOutputImage<TImageType>("out", rescaler->GetOutput());
}
......@@ -440,19 +444,19 @@ private:
{
typedef MultiToMonoChannelExtractROI<FloatVectorImageType::InternalPixelType,
typename TImageType::InternalPixelType> ExtractROIFilterType;
typedef ObjectList<ExtractROIFilterType> ExtractROIFilterListType;
typedef otb::ImageList<otb::Image<typename TImageType::InternalPixelType> > ImageListType;
typedef ImageListToVectorImageFilter<ImageListType,
TImageType > ListConcatenerFilterType;
typename ImageListType::Pointer imageList;
typename ListConcatenerFilterType::Pointer concatener;
typename ExtractROIFilterListType::Pointer extractorList;
imageList = ImageListType::New();
concatener = ListConcatenerFilterType::New();
extractorList = ExtractROIFilterListType::New();
//m_Filters.push_back(imageList.GetPointer());
m_Filters.push_back(concatener.GetPointer());
const bool monoChannel = IsParameterEnabled("channels.grayscale");
// get band order
......@@ -461,16 +465,15 @@ private:
for (auto && channel : channels)
{
typename ExtractROIFilterType::Pointer extractROIFilter = ExtractROIFilterType::New();
m_Filters.push_back(extractROIFilter.GetPointer());
extractROIFilter->SetInput(GetParameterImage("in"));
if (!monoChannel) extractROIFilter->SetChannel(channel);
extractROIFilter->UpdateOutputInformation();
extractorList->PushBack(extractROIFilter);
imageList->PushBack(extractROIFilter->GetOutput());
}
concatener->SetInput(imageList);
concatener->UpdateOutputInformation();
concatener->Update();
return concatener->GetOutput();
}
......@@ -507,8 +510,8 @@ private:
}
}
itk::ProcessObject::Pointer m_TmpFilter;
TransferLogType::Pointer m_TransferLog;
std::vector<itk::LightObject::Pointer> m_Filters;
};
}
......
......@@ -74,7 +74,7 @@ private:
"The list of features and the syntax of muParserX is available at [1].\n\n"
"As opposed to muParser (and thus the BandMath OTB-application [2]), "
"muParserX supports vector expressions which allows to output multi-band "
"muParserX supports vector expressions which allows outputting multi-band "
"images.\n\n"
"Hereafter is a brief reference of the muParserX syntax\n\n"
......@@ -106,10 +106,10 @@ private:
"im1b2Mean\n"
" mean of the 2nd component of the 1st input (global statistics)\n\n"
"im1b2Min\n"
"im1b2Mini\n"
" minimum of the 2nd component of the 1st input (global statistics)\n\n"
"im1b2Max\n"
"im1b2Maxi\n"
" minimum of the 2nd component of the 1st input (global statistics)\n\n"
"im1b2Sum\n"
......
......@@ -64,7 +64,7 @@ private:
"This application can be a preliminary step for an object-based analysis.\n\n"
"It generates a vector data file containing the regions extracted with "
"the MeanShift algorithm. The spatial and range radius parameters allow "
"to adapt the sensitivity of the algorithm depending on the image dynamic "
"adapting the sensitivity of the algorithm depending on the image dynamic "
"and resolution. There is a step to remove small regions whose size "
"(in pixels) is less than the given 'minsize' parameter. These regions "
"are merged to a similar neighbor region. In the output vectors, there "
......
......@@ -141,7 +141,7 @@ private:
"The application searches locally for the displacement between a reference"
" image and a secondary image. The correspondence is evaluated for each "
"pixel, based on a pair of local neighborhood windows. The displacement "
"evaluated can be 1D (along lines) or 2D. Parameters allows to set the "
"evaluated can be 1D (along lines) or 2D. Parameters allow setting the "
"minimum and maximum disparities to search (both for horizontal and "
"vertical directions). A winner-take-all approach is used to select the "
"best match. There are different metrics implemented to evaluate the "
......
......@@ -249,7 +249,7 @@ int otbGenericRSTransformGenericTest(int argc, char * argv[])
if(inRes>inThreshold)
{
failed = true;
std::cerr<<"Input residual ("<<outRes<<") outpasses the threshold ("<<inThreshold<<")"<<std::endl;
std::cerr<<"Input residual ("<<inRes<<") outpasses the threshold ("<<inThreshold<<")"<<std::endl;
std::cerr<<std::endl;
}
......
......@@ -49,7 +49,7 @@ public:
typedef struct Parameter
{
/** Maximum size of the internal patterns */
unsigned long MaxPatternSize;
unsigned long MaxPatternSize = 0;
/** First sampling pattern */
std::vector<bool> Pattern1;
......@@ -59,7 +59,7 @@ public:
std::vector<bool> Pattern2;
/** Seed used to randomly generate patterns (used only if greater than 0) */
unsigned int Seed;
unsigned int Seed = 0;
bool operator!=(const struct Parameter & param) const;
} ParameterType;
......
......@@ -114,7 +114,7 @@ int parseCommandLine(int ac, char * av[], std::vector<char *>& remainingArgs)
if (oldenv2)
{
libpath64 += KWSYS_SHARED_FORWARD_PATH_SEP;
libpath64 += oldenv;
libpath64 += oldenv2;
}
itksys::SystemTools::PutEnv(libpath64.c_str());
}
......
......@@ -94,7 +94,7 @@ int otbImageToImageRCC8Calculator(int itkNotUsed(argc), char* argv[])
{
std::cout << "Test failed: Result with level3AprioriKnowledge ";
std::cout << "different from result without a priori knowledge" << std::endl;
std::cout << calc->GetValue() << "!=" << calc1->GetValue() << std::endl;
std::cout << calc->GetValue() << "!=" << calc2->GetValue() << std::endl;
return EXIT_FAILURE;
}
}
......
......@@ -34,7 +34,7 @@ namespace otb
/** Constructor */
SailModel
::SailModel() : m_LAI(2), m_Angl(50), m_PSoil(1), m_Skyl(70), m_HSpot(0.2),
m_TTS(30), m_TTO(0), m_PSI(0), m_FCoverView(0.0), m_UseSoilFile(false)
m_TTS(30), m_TTO(0), m_PSI(0), m_FCoverView(0.0), m_UseSoilFile(false), m_SoilIndex(0)
{
this->ProcessObject::SetNumberOfRequiredInputs(2);
this->ProcessObject::SetNumberOfRequiredOutputs(4);
......
......@@ -5,5 +5,5 @@ A more detailed description can be found on the project website:
https://github.com/remicres/otb-mosaic
"
GIT_REPOSITORY https://github.com/remicres/otb-mosaic.git
GIT_TAG master
GIT_TAG 56426908db01f33a5b96311e2a7eaac30ecd8e5d
)
......@@ -25,5 +25,5 @@ A more detailed description can be found on the project website:
http://tully.ups-tlse.fr/jordi/otb-bv
"
GIT_REPOSITORY http://tully.ups-tlse.fr/jordi/otb-bv.git
GIT_TAG master
GIT_TAG 0e56e487aebc4a493e25223960560e9ef0ca27ec
)
......@@ -27,5 +27,5 @@ A more detailed description can be found on the project website:
http://tully.ups-tlse.fr/jordi/phenotb
"
GIT_REPOSITORY http://tully.ups-tlse.fr/jordi/phenotb.git
GIT_TAG master
GIT_TAG c9349eb89a652a18b28a40dfb3fa352b76388527
)
......@@ -26,5 +26,5 @@ A more detailed description can be found on the project website:
http://tully.ups-tlse.fr/jordi/temporalgapfilling
"
GIT_REPOSITORY http://tully.ups-tlse.fr/jordi/temporalgapfilling.git
GIT_TAG master
GIT_TAG 4180f28091fb10029860ada2dcf9c9526d3a55d2
)
......@@ -163,7 +163,7 @@ public:
void SetPickingEnabled( bool );
/**
* This allows to set the fallback behaviour for picking
* This allows setting the fallback behaviour for picking
*/
void SetPickingDefaultStatus( bool );
/**
......
......@@ -69,7 +69,7 @@ class ProjectionBarWidget;
* \ingroup OTBMonteverdiGUI
* \brief ProjectionBarWidget widget class.
*
* This Widget allow to change the zoom level of the current selected projection.
* This Widget allows changing the zoom level of the current selected projection.
*/
class OTBMonteverdiGUI_EXPORT ProjectionBarWidget : public QWidget
{
......
......@@ -622,9 +622,9 @@ public:
{ \
Image##Type::Pointer ret; \
Parameter* param = GetParameterByKey(parameter); \
if (dynamic_cast<ComplexInputImageParameter*>(param)) \
ComplexInputImageParameter* paramDown = dynamic_cast<ComplexInputImageParameter*>(param); \
if (paramDown) \
{ \
ComplexInputImageParameter* paramDown = dynamic_cast<ComplexInputImageParameter*>(param); \
ret = paramDown->Get##Image(); \
} \
return ret; \
......
......@@ -32,7 +32,7 @@ namespace Wrapper
/** \class CompositeApplication
* \brief This class is a base class for composite applications
*
* This class allows to create & store internal applications with the same logic
* This class allows creating & storing internal applications with the same logic
* as parameters. You choose the application type to create, you choose an
* identifier (alphanumeric string), and you can give a short description.
* Later, you will refer to this application using the identifier. In the
......
......@@ -35,7 +35,7 @@ namespace Wrapper
* \brief Parameter class acting as a proxy to a different parameter
*
* The target parameter of this proxy is defined as a pair of a group parameter
* containing the target and the targets key. It allows to define proxies on
* containing the target and the targets key. It allows defining proxies on
* parameters that may be themselves replaced by a proxy
*
* \ingroup OTBApplicationEngine
......
......@@ -320,7 +320,10 @@ OutputProcessXMLParameter::ParseGroup(const std::string& group)
//Nothing to do. copy emptyValue
value = emptyValue;
}
else if (type == ParameterType_InputProcessXML)
{
continue;
}
//get only file name
/*
if(type == ParameterType_InputFilename || type == ParameterType_InputImage ||
......
......@@ -817,18 +817,22 @@ std::string CommandLineLauncher::DisplayParameterHelp(const Parameter::Pointer &
if (type == ParameterType_Choice)
{
std::vector<std::string> keys = dynamic_cast<ChoiceParameter*>(param.GetPointer())->GetChoiceKeys();
std::vector<std::string> names = dynamic_cast<ChoiceParameter*>(param.GetPointer())->GetChoiceNames();
ChoiceParameter* paramDown = dynamic_cast<ChoiceParameter*>(param.GetPointer());
if (paramDown)
{
std::vector<std::string> keys = paramDown->GetChoiceKeys();
std::vector<std::string> names = paramDown->GetChoiceNames();
oss << "[";
for(unsigned int i=0; i<keys.size(); i++)
oss << "[";
for(unsigned int i=0; i<keys.size(); i++)
{
oss<<keys[i];
if( i != keys.size()-1 )
oss << "/";
oss<<keys[i];
if( i != keys.size()-1 )
oss << "/";
}
oss << "]";
oss << "]";
}
}
if(m_Application->IsMandatory(paramKey))
......
......@@ -62,10 +62,12 @@ QtProgressBar::ProcessEvent( itk::Object * caller,
::itk::ProcessObject::Pointer process =
dynamic_cast< itk::ProcessObject *>( caller );
const int value2 = static_cast<int>(
process->GetProgress() * this->maximum() );
emit SetValueChanged( value2 );
if (process)
{
const int value2 = static_cast<int>(
process->GetProgress() * this->maximum() );
emit SetValueChanged( value2 );
}
}
}
......@@ -78,10 +80,13 @@ QtProgressBar::ConstProcessEvent( const itk::Object * caller,
itk::ProcessObject::ConstPointer process =
dynamic_cast< const itk::ProcessObject *>( caller );
const int v = static_cast<int>(
process->GetProgress() * this->maximum() );
if (process)
{
const int v = static_cast<int>(
process->GetProgress() * this->maximum() );
emit SetValueChanged( v );
emit SetValueChanged( v );
}
}
}
......
......@@ -109,7 +109,7 @@ int main(int argc, char* argv[])
int ret = qtApp.exec();