diff --git a/CMake/OTBCheckTargetSystemArch.cmake b/CMake/OTBCheckTargetSystemArch.cmake new file mode 100755 index 0000000000000000000000000000000000000000..5764a219bdd7570a476ac7773224e61a03588b90 --- /dev/null +++ b/CMake/OTBCheckTargetSystemArch.cmake @@ -0,0 +1,51 @@ +macro(OTB_CHECK_TARGET_SYSTEM_ARCH _RESULT1 _RESULT2) + set(${_RESULT1} "x64") + set(${_RESULT2} TRUE) + + if(MSVC) + execute_process( + COMMAND ${CMAKE_C_COMPILER} + ERROR_VARIABLE ev + OUTPUT_VARIABLE ov + OUTPUT_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if("${ev}" MATCHES "x86") + set(${_RESULT1} "x86") + set(${_RESULT2} FALSE) + endif() + endif() #MSVC + + if(UNIX) + execute_process( + COMMAND uname -m + ERROR_VARIABLE ev + OUTPUT_VARIABLE ov + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + set(${_RESULT1} "${ov}") + set(${_RESULT2} FALSE) + if("${ov}" STREQUAL "x86_64") + set(${_RESULT2} TRUE) + endif() + endif() + + if(WIN32 AND NOT MSVC) + if(MXE_TARGET_DIR) + if(MXE_TARGET_DIR MATCHES "i686") + set(${_RESULT1} "i686") + set(${_RESULT2} FALSE) + elseif(MXE_TARGET_DIR MATCHES "x86_64") + set(${_RESULT1} "x86_64") + set(${_RESULT2} TRUE) + endif() + else() + message(STATUS "MXE_TARGET_DIR not set!") + endif() + endif() +endmacro() + +#call macro +OTB_CHECK_TARGET_SYSTEM_ARCH(OTB_TARGET_SYSTEM_ARCH OTB_TARGET_SYSTEM_ARCH_IS_X64) diff --git a/CMake/i18n_qt4.cmake b/CMake/i18n_qt4.cmake index 5f2232636ff5ce673ea3548c31255df1cd72f3f9..4d02dda908ee68c307634faf0e51823bd49cb78a 100644 --- a/CMake/i18n_qt4.cmake +++ b/CMake/i18n_qt4.cmake @@ -19,20 +19,14 @@ function( add_to_qt4_i18n_files RESULT ) get_filename_component( ABS_FILE ${F} ABSOLUTE ) - set( ${RESULT} - "${${RESULT}} ${ABS_FILE}" - CACHE INTERNAL "" FORCE - ) + set(${RESULT} ${${RESULT}} ${ABS_FILE} CACHE INTERNAL "") endforeach() endfunction() # # macro( add_to_qt4_i18n_include_path DIRECTORY ) - set( OTB_I18N_INCLUDE_PATH - "${OTB_I18N_INCLUDE_PATH} ${DIRECTORY}" - CACHE INTERNAL "" FORCE - ) + set(OTB_I18N_INCLUDE_PATH ${OTB_I18N_INCLUDE_PATH} ${DIRECTORY} CACHE INTERNAL "") endmacro() # @@ -41,32 +35,13 @@ macro( add_to_qt4_i18n_headers INCLUDE_DIR ) get_filename_component( ABS_INCLUDE_DIR ${INCLUDE_DIR} ABSOLUTE ) - set( OTB_QT_I18N_INCLUDE_PATH - "${OTB_QT_I18N_INCLUDE_PATH} ${ABS_INCLUDE_DIR}" - CACHE INTERNAL "" FORCE - ) - + set(OTB_QT_I18N_INCLUDE_PATH ${OTB_QT_I18N_INCLUDE_PATH} ${ABS_INCLUDE_DIR} CACHE INTERNAL "") foreach( F ${ARGN} ) string( REPLACE ".cxx" ".h" HEADER ${F} ) - - list( APPEND HEADERS ${HEADER} ) - endforeach() - - - #message( "HEADERS=${HEADERS}" ) - - - foreach( F ${HEADERS} ) - #message( "F=${F}" ) - - set( ABS_FILE "${ABS_INCLUDE_DIR}/${F}" ) - - if( EXISTS ${ABS_FILE} ) - set( OTB_QT_I18N_HEADER_FILES - "${OTB_QT_I18N_HEADER_FILES} ${ABS_FILE}" - CACHE INTERNAL "" FORCE - ) + set( ABS_HEADER "${ABS_INCLUDE_DIR}/${HEADER}" ) + if(EXISTS ${ABS_HEADER}) + set(OTB_QT_I18N_HEADER_FILES ${OTB_QT_I18N_HEADER_FILES} ${ABS_HEADER} CACHE INTERNAL "") endif() endforeach() endmacro() @@ -85,22 +60,42 @@ endmacro() # # -macro( generate_qt4_project TRANSLATIONS FILENAME ) +macro( generate_qt4_project FILENAME ) message( STATUS "Generating Qt4 '${FILENAME}' project file for I18N." ) + unset(_OTB_QT_I18N_INCLUDE_PATH_PRO) + unset(_OTB_QT_I18N_HEADER_PRO) + unset(_OTB_QT_I18N_SOURCE_PRO) + unset(_OTB_QT_I18N_FORM_PRO) + foreach(_path ${OTB_QT_I18N_INCLUDE_PATH}) + set(_OTB_QT_I18N_INCLUDE_PATH_PRO + "${_OTB_QT_I18N_INCLUDE_PATH_PRO} \"${_path}\"") + endforeach() + foreach(_file ${OTB_QT_I18N_HEADER_FILES}) + set(_OTB_QT_I18N_HEADER_PRO + "${_OTB_QT_I18N_HEADER_PRO} \"${_file}\"") + endforeach() + foreach(_file ${OTB_QT_I18N_SOURCE_FILES}) + set(_OTB_QT_I18N_SOURCE_PRO + "${_OTB_QT_I18N_SOURCE_PRO} \"${_file}\"") + endforeach() + foreach(_file ${OTB_QT_I18N_FORM_FILES}) + set(_OTB_QT_I18N_FORM_PRO + "${_OTB_QT_I18N_FORM_PRO} \"${_file}\"") + endforeach() + file( WRITE ${FILENAME} "# OTB autogenerated .pro file needed to generate Qt I18N translations -INCLUDEPATH = ${OTB_QT_I18N_INCLUDE_PATH} - -HEADERS = ${OTB_QT_I18N_HEADER_FILES} +INCLUDEPATH = ${_OTB_QT_I18N_INCLUDE_PATH_PRO} -SOURCES = ${OTB_QT_I18N_SOURCE_FILES} +HEADERS = ${_OTB_QT_I18N_HEADER_PRO} -FORMS = ${OTB_QT_I18N_FORM_FILES} +SOURCES = ${_OTB_QT_I18N_SOURCE_PRO} -TRANSLATIONS = ${TRANSLATIONS}" +FORMS = ${_OTB_QT_I18N_FORM_PRO} +" ) endmacro() diff --git a/CMake/otbcli.sh.in b/CMake/otbcli.sh.in index 3fd44c745969e689e71bcaef43483d4ef0d36051..3026dad88730fcaca2543bff9e97c5db66a85c6a 100644 --- a/CMake/otbcli.sh.in +++ b/CMake/otbcli.sh.in @@ -28,9 +28,10 @@ export OTB_APPLICATION_PATH # avoid numerical issues caused by locale export LC_NUMERIC=C -# Source GDAL_DATA, EPSG_CSV -if [ -f "$CURRENT_SCRIPT_DIR/env_exports" ]; then - . "$CURRENT_SCRIPT_DIR/env_exports" +# Export GDAL_DATA, EPSG_CSV +# Note that OTB_APPLICATION_PATH is reset here. +if [ -f "$CURRENT_SCRIPT_DIR/../otbenv.profile" ]; then + . "$CURRENT_SCRIPT_DIR/../otbenv.profile" fi # start the application diff --git a/CMake/otbgui.sh.in b/CMake/otbgui.sh.in index 5b389e1d9b5de73f0aa57766fb52c1c01f5c3543..5f6354a75ced0919941e7012083e02cda4696a4c 100644 --- a/CMake/otbgui.sh.in +++ b/CMake/otbgui.sh.in @@ -28,9 +28,9 @@ export OTB_APPLICATION_PATH # avoid numerical issues caused by locale export LC_NUMERIC=C -# Source GDAL_DATA, EPSG_CSV -if [ -f "$CURRENT_SCRIPT_DIR/env_exports" ]; then - . "$CURRENT_SCRIPT_DIR/env_exports" +# Export GDAL_DATA, EPSG_CSV +if [ -f "$CURRENT_SCRIPT_DIR/../otbenv.profile" ]; then + . "$CURRENT_SCRIPT_DIR/../otbenv.profile" fi # start the application diff --git a/CMakeLists.txt b/CMakeLists.txt index a0a618ad1e3ce50921ddeb317d4b011d67b2639e..b1d3e71a38e27d0160c67777c3880c76ee2d9a43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,6 +247,19 @@ if(OTB_DATA_USE_LARGEINPUT) mark_as_advanced(OTB_DATA_LARGEINPUT_ROOT) endif() +# Small macro to copy a file and rename it +macro(otb_copy_rename _input _output) + execute_process( + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_input}" "${_output}" + RESULT_VARIABLE _err_code + OUTPUT_QUIET + ERROR_QUIET + ) + if(_err_code) + message(FATAL_ERROR "Failed to copy file ${_input} to ${_output}") + endif() +endmacro() + #Generate cmake variables with a set of largeinput data used in tests include(OTBManageLargeInputPaths) diff --git a/Documentation/Cookbook/rst/Installation_Macx.txt b/Documentation/Cookbook/rst/Installation_Macx.txt index 1e498c9b4330ff7047b325a918833d257ac6990a..258548d1d47b9d92d5418861be43788361eed016 100644 --- a/Documentation/Cookbook/rst/Installation_Macx.txt +++ b/Documentation/Cookbook/rst/Installation_Macx.txt @@ -4,8 +4,8 @@ uncompress it with the command line : .. parsed-literal:: - chmod +x OTB-|release|-Linux64.run - ./OTB-|release|-Linux64.run + chmod +x OTB-|release|-Darwin64.run + ./OTB-|release|-Darwin64.run Once the archive is extracted, you can see OTB-|release|-Darwin64 directory in the same direcrtory along with OTB-|release|-Darwin64.run diff --git a/Modules/Adapters/QtAdapters/include/otbQtAdapters.h b/Modules/Adapters/QtAdapters/include/otbQtAdapters.h index c198d57fa3389e691dbaee44801506e6f656ea1c..e4cdace3b06c0ccd789550915802607b6926a58c 100644 --- a/Modules/Adapters/QtAdapters/include/otbQtAdapters.h +++ b/Modules/Adapters/QtAdapters/include/otbQtAdapters.h @@ -198,6 +198,11 @@ bool OTBQtAdapters_EXPORT SetWorkingDir( const QString & path ); +/** + * \brief Static path to the last directory used in file dialogs + */ +static QString RecentDirectory; + } // end namespace 'otb'. diff --git a/Modules/Adapters/QtAdapters/src/otbQtAdapters.cxx b/Modules/Adapters/QtAdapters/src/otbQtAdapters.cxx index 946cb322a2087a25da191467353b49eabf0f76c6..b36d66cff678d575dc0c20d6270a33ee1000ce3a 100644 --- a/Modules/Adapters/QtAdapters/src/otbQtAdapters.cxx +++ b/Modules/Adapters/QtAdapters/src/otbQtAdapters.cxx @@ -22,7 +22,6 @@ #include <cassert> - /*****************************************************************************/ /* INCLUDE SECTION */ @@ -73,13 +72,16 @@ GetExistingDirectory( QWidget * p, caption.isEmpty() ? QObject::tr( "Select directory..." ) : caption, - dir, + dir.isEmpty() ? RecentDirectory : dir, options ) ); if( !path.isNull() ) + { + // Absolute path expected from QFileDialog SetWorkingDir( path ); + } return path; } @@ -99,13 +101,14 @@ GetOpenFileName( QWidget * p, caption.isEmpty() ? QObject::tr( "Open file..." ) : caption, - dir, + dir.isEmpty() ? RecentDirectory : dir, filter, selectedFilter, options ) ); + // Absolute path expected from QFileDialog if( !filename.isNull() ) SetWorkingDir( filename ); @@ -127,13 +130,14 @@ GetOpenFileNames( QWidget * p, caption.isEmpty() ? QObject::tr( "Open file..." ) : caption, - dir, + dir.isEmpty() ? RecentDirectory : dir, filter, selectedFilter, options ) ); + // Absolute path expected from QFileDialog if( !filenames.isEmpty() ) SetWorkingDir( filenames.back() ); @@ -155,13 +159,14 @@ GetSaveFileName( QWidget * p, caption.isEmpty() ? QObject::tr( "Save file..." ) : caption, - dir, + dir.isEmpty() ? RecentDirectory : dir, filter, selectedFilter, options ) ); + // Absolute path expected from QFileDialog if( !filename.isNull() ) SetWorkingDir( filename ); @@ -172,7 +177,7 @@ GetSaveFileName( QWidget * p, QString GetWorkingDir() { - return QDir::currentPath(); + return RecentDirectory; } /*****************************************************************************/ @@ -183,11 +188,20 @@ SetWorkingDir( const QString & filepath ) QFileInfo finfo( filepath ); +#if 0 return QDir::setCurrent( finfo.isDir() ? filepath : finfo.path() ); +#else + // TODO : add mutex if needed + QString dir = finfo.isDir() ? filepath : finfo.path(); + if ( !QFileInfo(dir).isDir() ) + return false; + RecentDirectory = finfo.isDir() ? filepath : finfo.path(); + return true; +#endif } } // end namespace 'otb' diff --git a/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx b/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx index 826af62fd982777cabdc7be8944a1a9fb9c26314..f1e90e88a8c9e4a134eedb93a4ed12500bda89bf 100644 --- a/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx +++ b/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx @@ -253,8 +253,15 @@ private: m_CalculatorList->SetNbOfSamplesAllClasses(countList, partitionMode); } break; - // percent + // smallest class case 2: + { + otbAppLogINFO("Sampling strategy : fit the number of samples based on the smallest class"); + m_CalculatorList->SetMinimumNbOfSamplesByClass(partitionMode); + } + break; + // percent + case 3: { std::vector<itksys::String> parts = itksys::SystemTools::SplitString(this->GetParameterString("strategy.percent.p"),' '); std::vector<double> percentList; @@ -283,7 +290,7 @@ private: break; // total - case 3: + case 4: { std::vector<itksys::String> parts = itksys::SystemTools::SplitString(this->GetParameterString("strategy.total.v"),' '); std::vector<unsigned long> totalList; @@ -305,14 +312,6 @@ private: m_CalculatorList->SetTotalNumberOfSamples(totalList, partitionMode); } break; - - // smallest class - case 4: - { - otbAppLogINFO("Sampling strategy : fit the number of samples based on the smallest class"); - m_CalculatorList->SetMinimumNbOfSamplesByClass(partitionMode); - } - break; // all samples case 5: { diff --git a/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx b/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx index 2bdaa251b37d3ba99b185017c235b16392022510..6afc8e4f9bc8733c91073c01a9af928a5cd01138 100644 --- a/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx +++ b/Modules/Applications/AppProjection/app/otbRigidTransformResample.cxx @@ -194,6 +194,7 @@ private: double> LinearInterpolationType; LinearInterpolationType::Pointer interpolator = LinearInterpolationType::New(); m_Resampler->SetInterpolator(interpolator); + m_GridResampler->SetInterpolator(interpolator); } break; case Interpolator_NNeighbor: @@ -202,6 +203,7 @@ private: double> NearestNeighborInterpolationType; NearestNeighborInterpolationType::Pointer interpolator = NearestNeighborInterpolationType::New(); m_Resampler->SetInterpolator(interpolator); + m_GridResampler->SetInterpolator(interpolator); } break; case Interpolator_BCO: @@ -210,6 +212,7 @@ private: BCOInterpolationType::Pointer interpolator = BCOInterpolationType::New(); interpolator->SetRadius(GetParameterInt("interpolator.bco.radius")); m_Resampler->SetInterpolator(interpolator); + m_GridResampler->SetInterpolator(interpolator); } break; } diff --git a/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.txx b/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.txx index 89572aad83c63b515005883f223dc86d2d757b78..6f0fd2ad70165d7fb331a571fe456a33b33ea926 100644 --- a/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.txx +++ b/Modules/Core/Interpolation/include/otbBCOInterpolateImageFunction.txx @@ -142,8 +142,6 @@ BCOInterpolateImageFunction<TInputImage, TCoordRep> IndexType baseIndex; IndexType neighIndex; - std::vector<RealType> lineRes(this->m_WinSize, 0.); - RealType value = itk::NumericTraits<RealType>::Zero; CoefContainerType BCOCoefX = this->EvaluateCoef(index[0]); @@ -157,6 +155,7 @@ BCOInterpolateImageFunction<TInputImage, TCoordRep> for(unsigned int i = 0; i < this->m_WinSize; ++i ) { + RealType lineRes = 0.; for(unsigned int j = 0; j < this->m_WinSize; ++j ) { // get neighbor index @@ -179,9 +178,9 @@ BCOInterpolateImageFunction<TInputImage, TCoordRep> { neighIndex[1] = this->m_StartIndex[1]; } - lineRes[i] += static_cast<RealType>( this->GetInputImage()->GetPixel( neighIndex ) ) * BCOCoefY[j]; + lineRes += static_cast<RealType>( this->GetInputImage()->GetPixel( neighIndex ) ) * BCOCoefY[j]; } - value += lineRes[i]*BCOCoefX[i]; + value += lineRes*BCOCoefX[i]; } @@ -211,14 +210,9 @@ BCOInterpolateImageFunction< otb::VectorImage<TPixel, VImageDimension> , TCoordR IndexType neighIndex; - - std::vector< std::vector<ScalarRealType> > lineRes ( this->m_WinSize, std::vector<ScalarRealType>( componentNumber, itk::NumericTraits<ScalarRealType>::Zero) ); - std::vector< ScalarRealType > value(componentNumber,itk::NumericTraits<ScalarRealType>::Zero); - - - OutputType output; - - output.SetSize(componentNumber); + std::vector<ScalarRealType> lineRes(componentNumber); + OutputType output(componentNumber); + output.Fill(itk::NumericTraits<ScalarRealType>::Zero); CoefContainerType BCOCoefX = this->EvaluateCoef(index[0]); CoefContainerType BCOCoefY = this->EvaluateCoef(index[1]); @@ -231,6 +225,7 @@ BCOInterpolateImageFunction< otb::VectorImage<TPixel, VImageDimension> , TCoordR for(unsigned int i = 0; i < this->m_WinSize; ++i ) { + std::fill(lineRes.begin(), lineRes.end(), itk::NumericTraits<ScalarRealType>::Zero); for(unsigned int j = 0; j < this->m_WinSize; ++j ) { // get neighbor index @@ -256,20 +251,15 @@ BCOInterpolateImageFunction< otb::VectorImage<TPixel, VImageDimension> , TCoordR const InputPixelType & pixel = this->GetInputImage()->GetPixel( neighIndex ); for( unsigned int k = 0; k<componentNumber; ++k) { - lineRes[i][k] += pixel.GetElement(k) * BCOCoefY[j]; + lineRes[k] += pixel.GetElement(k) * BCOCoefY[j]; } } for( unsigned int k = 0; k<componentNumber; ++k) { - value[k] += lineRes[i][k]*BCOCoefX[i]; + output[k] += lineRes[k]*BCOCoefX[i]; } } - for( unsigned int k = 0; k<componentNumber; ++k) - { - output.SetElement(k, value[k]); - } - return ( output ); } diff --git a/Modules/Feature/Descriptors/include/otbSiftFastImageFilter.h b/Modules/Feature/Descriptors/include/otbSiftFastImageFilter.h index 41062e2fc1bc9b36a44593084ef3e9087180030f..f0da039e286075354da3309cfc124ea0b3531224 100644 --- a/Modules/Feature/Descriptors/include/otbSiftFastImageFilter.h +++ b/Modules/Feature/Descriptors/include/otbSiftFastImageFilter.h @@ -88,16 +88,16 @@ public: protected: /** Actually process the input */ - virtual void GenerateData(); + void GenerateData() ITK_OVERRIDE; /** Constructor */ SiftFastImageFilter(); /** Destructor */ - virtual ~SiftFastImageFilter() {} + ~SiftFastImageFilter() ITK_OVERRIDE {} /** PrintSelf method */ - virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; + void PrintSelf(std::ostream& os, itk::Indent indent) const ITK_OVERRIDE; private: /** The number of scales */ diff --git a/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h b/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h index 70e3945ae7cc62e9a37c1d3040acc87338117bdd..86d89e846e6ea7b1650735711b61f19504357ab6 100644 --- a/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h +++ b/Modules/Filtering/Projection/include/otbGroundSpacingImageFunction.h @@ -81,18 +81,18 @@ public: itkStaticConstMacro(ImageDimension, unsigned int, InputImageType::ImageDimension); /** Evalulate the function at specified index */ - virtual FloatType EvaluateAtIndex(const IndexType& index) const; + FloatType EvaluateAtIndex(const IndexType& index) const ITK_OVERRIDE; /** Evaluate the function at non-integer positions */ - virtual FloatType Evaluate(const PointType& point) const + FloatType Evaluate(const PointType& point) const ITK_OVERRIDE { IndexType index; this->ConvertPointToNearestIndex(point, index); return this->EvaluateAtIndex(index); } - virtual FloatType EvaluateAtContinuousIndex( - const ContinuousIndexType& cindex) const + FloatType EvaluateAtContinuousIndex( + const ContinuousIndexType& cindex) const ITK_OVERRIDE { IndexType index; this->ConvertContinuousIndexToNearestIndex(cindex, index); @@ -103,8 +103,8 @@ public: protected: GroundSpacingImageFunction(); - virtual ~GroundSpacingImageFunction(){} - void PrintSelf(std::ostream& os, itk::Indent indent) const; + ~GroundSpacingImageFunction() ITK_OVERRIDE{} + void PrintSelf(std::ostream& os, itk::Indent indent) const ITK_OVERRIDE; private: GroundSpacingImageFunction(const Self &); //purposely not implemented diff --git a/Modules/Filtering/Statistics/include/otbPatternSampler.h b/Modules/Filtering/Statistics/include/otbPatternSampler.h index e341f1ef7e8a9a88764621140ddbb6eb9f0375d3..418bc968908ae66f0bff39d3ec2de6d7297bb7c1 100644 --- a/Modules/Filtering/Statistics/include/otbPatternSampler.h +++ b/Modules/Filtering/Statistics/include/otbPatternSampler.h @@ -86,7 +86,7 @@ public: /** * Method that resets the internal state of the sampler */ - virtual void Reset(void); + void Reset(void) ITK_OVERRIDE; /** * Method to call during iteration, returns true if the sample is selected, @@ -115,7 +115,7 @@ protected: PatternSampler(); /** Destructor */ - virtual ~PatternSampler() {} + ~PatternSampler() ITK_OVERRIDE {} private: // Not implemented diff --git a/Modules/Filtering/Statistics/include/otbPeriodicSampler.h b/Modules/Filtering/Statistics/include/otbPeriodicSampler.h index 64b12e111b7c490d86fc49207330285bf3c15e4d..3940bcd796b022d9d9ff7d9dbff42bacd9255fc4 100644 --- a/Modules/Filtering/Statistics/include/otbPeriodicSampler.h +++ b/Modules/Filtering/Statistics/include/otbPeriodicSampler.h @@ -80,7 +80,7 @@ public: /** * Method that resets the internal state of the sampler */ - virtual void Reset(void); + void Reset(void) ITK_OVERRIDE; /** * Method to call during iteration, returns true if the sample is selected, @@ -93,7 +93,7 @@ protected: PeriodicSampler(); /** Destructor */ - virtual ~PeriodicSampler() {} + ~PeriodicSampler() ITK_OVERRIDE {} private: // Not implemented diff --git a/Modules/Filtering/Statistics/include/otbRandomSampler.h b/Modules/Filtering/Statistics/include/otbRandomSampler.h index e132c6bee12ab11aefaf3d4f9b1a90aa8553eb09..66c1fafe71621329175a7d2a8dcea46b6909807a 100644 --- a/Modules/Filtering/Statistics/include/otbRandomSampler.h +++ b/Modules/Filtering/Statistics/include/otbRandomSampler.h @@ -77,7 +77,7 @@ public: /** * Reset internal counter (to be called before starting iteration) */ - virtual void Reset(void); + void Reset(void) ITK_OVERRIDE; /** * Method to call during iteration, returns true if the sample is selected, @@ -90,7 +90,7 @@ protected: RandomSampler(); /** Destructor */ - virtual ~RandomSampler() {} + ~RandomSampler() ITK_OVERRIDE {} private: // Not implemented diff --git a/Modules/Filtering/Statistics/include/otbSamplerBase.h b/Modules/Filtering/Statistics/include/otbSamplerBase.h index c152a86d8348796ba921a376932a937e2a10eb2e..b84785326bf3cc8a2ca52a96948940ef81ffd6f0 100644 --- a/Modules/Filtering/Statistics/include/otbSamplerBase.h +++ b/Modules/Filtering/Statistics/include/otbSamplerBase.h @@ -75,7 +75,7 @@ protected: SamplerBase(); /** Destructor */ - virtual ~SamplerBase() {} + ~SamplerBase() ITK_OVERRIDE {} /** Current count of selected elements */ unsigned long m_ChosenElements; diff --git a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h index 6807d7ede382deb80ba22ad4f0a2e32b64c9a19f..9deb9696f39eb45d0b3d9f80cdff2fc81154f00f 100644 --- a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h +++ b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToReaderOptions.h @@ -68,7 +68,7 @@ public: }; /* Set Methods */ - virtual void SetExtendedFileName(const char * extFname); + void SetExtendedFileName(const char * extFname) ITK_OVERRIDE; /* Get Methods */ bool SimpleFileNameIsSet () const; bool ExtGEOMFileNameIsSet () const; diff --git a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h index 65438ed281874b42309d46e783288e0806094f8e..3bcab732599dd4c1a95572e35070a68b5824f26a 100644 --- a/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h +++ b/Modules/IO/ExtendedFilename/include/otbExtendedFilenameToWriterOptions.h @@ -73,7 +73,7 @@ public: }; /* Set Methods */ - virtual void SetExtendedFileName(const char * extFname); + void SetExtendedFileName(const char * extFname) ITK_OVERRIDE; /* Get Methods */ bool SimpleFileNameIsSet () const; bool WriteGEOMFileIsSet () const; diff --git a/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h b/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h index e0cc84306641eae3f726dd8beaf5c47ed6e575af..ed224e52b2863e2129d58fc384dd326fe683bd0c 100644 --- a/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h +++ b/Modules/Learning/Sampling/include/otbImageSampleExtractorFilter.h @@ -70,10 +70,10 @@ public: /** Get the output samples OGR container */ ogr::DataSource* GetOutputSamples(); - virtual void Synthetize(void){} + void Synthetize(void) ITK_OVERRIDE{} /** Reset method called before starting the streaming*/ - virtual void Reset(void); + void Reset(void) ITK_OVERRIDE; itkSetMacro(SampleFieldPrefix, std::string); itkGetMacro(SampleFieldPrefix, std::string); @@ -88,14 +88,14 @@ protected: /** Constructor */ PersistentImageSampleExtractorFilter(); /** Destructor */ - virtual ~PersistentImageSampleExtractorFilter() {} + ~PersistentImageSampleExtractorFilter() ITK_OVERRIDE {} - virtual void GenerateOutputInformation(); + void GenerateOutputInformation() ITK_OVERRIDE; - virtual void GenerateInputRequestedRegion(); + void GenerateInputRequestedRegion() ITK_OVERRIDE; /** process only points */ - virtual void ThreadedGenerateVectorData(const ogr::Layer& layerForThread, itk::ThreadIdType threadid); + void ThreadedGenerateVectorData(const ogr::Layer& layerForThread, itk::ThreadIdType threadid) ITK_OVERRIDE; private: PersistentImageSampleExtractorFilter(const Self &); //purposely not implemented @@ -175,7 +175,7 @@ protected: /** Constructor */ ImageSampleExtractorFilter() {} /** Destructor */ - virtual ~ImageSampleExtractorFilter() {} + ~ImageSampleExtractorFilter() ITK_OVERRIDE {} private: ImageSampleExtractorFilter(const Self &); //purposely not implemented diff --git a/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h b/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h index 7e7b9b92db373bb732e6f988413adddd032c8853..a654b79d75b633632c07d569ff3e8cf75cc0a3ff 100644 --- a/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h +++ b/Modules/Learning/Sampling/include/otbOGRDataToSamplePositionFilter.h @@ -85,10 +85,10 @@ public: /** Runtime information support. */ itkTypeMacro(PersistentOGRDataToSamplePositionFilter, PersistentSamplingFilterBase); - virtual void Synthetize(void){} + void Synthetize(void) ITK_OVERRIDE{} /** Reset method called before starting the streaming*/ - virtual void Reset(void); + void Reset(void) ITK_OVERRIDE; /** Get a reference to the internal samplers at a given level */ SamplerMapType& GetSamplers(unsigned int level); @@ -112,7 +112,7 @@ public: /** Make a DataObject of the correct type to be used as the specified * output. */ - virtual itk::DataObject::Pointer MakeOutput(DataObjectPointerArraySizeType idx); + itk::DataObject::Pointer MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE; using Superclass::MakeOutput; /** Get/Set of the field name storing the original FID of each sample */ @@ -123,18 +123,18 @@ protected: /** Constructor */ PersistentOGRDataToSamplePositionFilter(); /** Destructor */ - virtual ~PersistentOGRDataToSamplePositionFilter() {} + ~PersistentOGRDataToSamplePositionFilter() ITK_OVERRIDE {} /** Call samplers on a current position, for a given class */ - virtual void ProcessSample(const ogr::Feature& feature, + void ProcessSample(const ogr::Feature& feature, typename TInputImage::IndexType& imgIndex, typename TInputImage::PointType& imgPoint, - itk::ThreadIdType& threadid); + itk::ThreadIdType& threadid) ITK_OVERRIDE; /** Method to split the input OGRDataSource * according to the class partition */ - virtual void DispatchInputVectors(void); + void DispatchInputVectors(void) ITK_OVERRIDE; private: PersistentOGRDataToSamplePositionFilter(const Self &); //purposely not implemented @@ -249,7 +249,7 @@ protected: /** Constructor */ OGRDataToSamplePositionFilter() {} /** Destructor */ - virtual ~OGRDataToSamplePositionFilter() {} + ~OGRDataToSamplePositionFilter() ITK_OVERRIDE {} private: OGRDataToSamplePositionFilter(const Self &); //purposely not implemented diff --git a/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h b/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h index 37d40fa88eb2eec057c274655bb7f1480515df55..8d2c1a2ca1cd49bda0bf07eed1b2b8c2a2397b6f 100644 --- a/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h +++ b/Modules/Learning/Sampling/include/otbPersistentSamplingFilterBase.h @@ -94,21 +94,21 @@ protected: /** Constructor */ PersistentSamplingFilterBase(); /** Destructor */ - virtual ~PersistentSamplingFilterBase() {} + ~PersistentSamplingFilterBase() ITK_OVERRIDE {} /** Use the same output information as input image, check the field index * and the mask footprint */ - virtual void GenerateOutputInformation(); + void GenerateOutputInformation() ITK_OVERRIDE; /** Use an empty region to input image (pixel values not needed) and set * the requested region for the mask */ - virtual void GenerateInputRequestedRegion(); + void GenerateInputRequestedRegion() ITK_OVERRIDE; /** Generate data should thread over */ - virtual void GenerateData(void); + void GenerateData(void) ITK_OVERRIDE; /** Allocate in-memory layers for input and outputs */ - virtual void AllocateOutputs(void); + void AllocateOutputs(void) ITK_OVERRIDE; /** Start of main processing loop */ virtual void ThreadedGenerateVectorData(const ogr::Layer& layerForThread, itk::ThreadIdType threadid); diff --git a/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h b/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h index 7150b5259057068fa24d74f7da5f9bca99544445..2c8dcc60d8049b2d0a4a4bfc8fd408daabbdaf6a 100644 --- a/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h +++ b/Modules/Learning/Sampling/include/otbSamplingRateCalculator.h @@ -107,10 +107,10 @@ protected: SamplingRateCalculator(); /** Destructor */ - virtual ~SamplingRateCalculator() {} + ~SamplingRateCalculator() ITK_OVERRIDE {} /**PrintSelf method */ - virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; + void PrintSelf(std::ostream& os, itk::Indent indent) const ITK_OVERRIDE; private: SamplingRateCalculator(const Self &); //purposely not implemented diff --git a/Modules/Learning/Supervised/include/otbImageClassificationFilter.txx b/Modules/Learning/Supervised/include/otbImageClassificationFilter.txx index 899a5a25066ddb9d0d77a8dd5d687f1bcfc5caa8..eb9e9b67bde62baa2f027ce1aa772504e35e8bb3 100644 --- a/Modules/Learning/Supervised/include/otbImageClassificationFilter.txx +++ b/Modules/Learning/Supervised/include/otbImageClassificationFilter.txx @@ -281,6 +281,10 @@ ImageClassificationFilter<TInputImage, TOutputImage, TMaskImage> ++labIt; } + else + { + labelValue = m_DefaultLabel; + } outIt.Set(labelValue); diff --git a/Modules/Radiometry/OpticalCalibration/test/CMakeLists.txt b/Modules/Radiometry/OpticalCalibration/test/CMakeLists.txt index 88720f365603eb50d286fffdea28ad0275ced292..ed2ab9c439808b3163c3c579fa010f26b3393a32 100644 --- a/Modules/Radiometry/OpticalCalibration/test/CMakeLists.txt +++ b/Modules/Radiometry/OpticalCalibration/test/CMakeLists.txt @@ -235,10 +235,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${TOULOUSEQBDIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${TOULOUSEQBDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoQuickbirdPAN.tif ${TOULOUSEQBDIR}/02APR01105228-P1BS-000000128955_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${TOULOUSEQBDIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoQuickbirdPAN.tif ${TOULOUSEQBDIR}/02APR01105228-P1BS-000000128955_01_P001.TIF) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoQuickbirdPAN COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${TOULOUSEQBDIR}/raTvSMALLTOULOUSELuminanceToImageImageFilterAutoQuickbirdPAN.tif @@ -255,10 +253,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${TOULOUSEQBDIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_MUL) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${TOULOUSEQBDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoQuickbirdXS.tif ${TOULOUSEQBDIR}/02APR01105228-M1BS-000000128955_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${TOULOUSEQBDIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoQuickbirdXS.tif ${TOULOUSEQBDIR}/02APR01105228-M1BS-000000128955_01_P001.TIF) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoQuickbirdXS COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${TOULOUSEQBDIR}/raTvSMALLTOULOUSELuminanceToImageImageFilterAutoQuickbirdXS.tif @@ -274,10 +270,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${ROMEWV2DIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_MUL) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${ROMEWV2DIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoWV2Multi.tif ${ROMEWV2DIR}/09DEC10103019-M2AS-052298844010_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${ROMEWV2DIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoWV2Multi.tif ${ROMEWV2DIR}/09DEC10103019-M2AS-052298844010_01_P001.TIF) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoWV2MULTI COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${ROMEWV2DIR}/raTvSMALLROMELuminanceToImageImageFilterAutoWV2Multi.tif @@ -292,10 +286,8 @@ if(OTB_DATA_USE_LARGEINPUT) set(BLOSSEVILLEIKONOSDIR ${TEMP}/OpticalCalibLumToImIkonos) file(MAKE_DIRECTORY ${BLOSSEVILLEIKONOSDIR}) file(GLOB MTDATA ${OTB_DATA_LARGEINPUT_ROOT}/IKONOS/BLOSSEVILLE/*metadata.txt ${OTB_DATA_LARGEINPUT_ROOT}/IKONOS/BLOSSEVILLE/*pan*) - foreach(f ${MTDATA}) - configure_file(${f} ${BLOSSEVILLEIKONOSDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoIkonos.tif ${BLOSSEVILLEIKONOSDIR}/po_2619900_pan_0000000.tif COPYONLY) + file(COPY ${MTDATA} DESTINATION ${BLOSSEVILLEIKONOSDIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoIkonos.tif ${BLOSSEVILLEIKONOSDIR}/po_2619900_pan_0000000.tif) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoIkonos COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BLOSSEVILLEIKONOSDIR}/raTvSMALLBLOSSEVILLELuminanceToImageImageFilterAutoIkonos.tif @@ -310,10 +302,8 @@ if(OTB_DATA_USE_LARGEINPUT) set(TEHERANSPOT5DIR ${TEMP}/OpticalCalibLumToImSPOT5) file(MAKE_DIRECTORY ${TEHERANSPOT5DIR}) file(GLOB MTDATA ${OTB_DATA_LARGEINPUT_ROOT}/SPOT5/TEHERAN/*.DIM) - foreach(f ${MTDATA}) - configure_file(${f} ${TEHERANSPOT5DIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoSpot5.tif ${TEHERANSPOT5DIR}/IMAGERY.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${TEHERANSPOT5DIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoSpot5.tif ${TEHERANSPOT5DIR}/IMAGERY.TIF) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoSpot5 COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${TEHERANSPOT5DIR}/raTvSMALLTEHERANLuminanceToImageImageFilterAutoSpot5.img @@ -329,10 +319,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${ROMEWV2DIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_PAN) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${ROMEWV2DIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoWV2PAN.tif ${ROMEWV2DIR}/09DEC10103019-P2AS-052298844010_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${ROMEWV2DIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoWV2PAN.tif ${ROMEWV2DIR}/09DEC10103019-P2AS-052298844010_01_P001.TIF) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoWV2PAN COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${ROMEWV2DIR}/raTvSMALLROMELuminanceToImageImageFilterAutoWV2PAN.tif @@ -348,10 +336,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${SUDOUESTFORMOSATDIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/FORMOSAT/Sudouest_20071013_MS_fmsat) file(GLOB MTDATA ${MTDATADIR}/*.DIM) - foreach(f ${MTDATA}) - configure_file(${f} ${SUDOUESTFORMOSATDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvImageToLuminanceImageFilterAutoFormosat.tif ${SUDOUESTFORMOSATDIR}/IMAGERY.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${SUDOUESTFORMOSATDIR}) + otb_copy_rename(${BASELINE}/raTvImageToLuminanceImageFilterAutoFormosat.tif ${SUDOUESTFORMOSATDIR}/IMAGERY.TIF) otb_add_test(NAME raTvLuminanceToImageImageFilterAutoFORMOSAT COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${SUDOUESTFORMOSATDIR}/raTvSMALLSOLuminanceToImageImageFilterAutoFormosat.img @@ -367,10 +353,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${TOULOUSEQBDIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${TOULOUSEQBDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoQuickbirdPAN.tif ${TOULOUSEQBDIR}/02APR01105228-P1BS-000000128955_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${TOULOUSEQBDIR}) + otb_copy_rename(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoQuickbirdPAN.tif ${TOULOUSEQBDIR}/02APR01105228-P1BS-000000128955_01_P001.TIF) otb_add_test(NAME raTvReflectanceToLuminanceImageFilterAutoQuickbirdPAN COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BASELINE}/raTvImageToLuminanceImageFilterAutoQuickbirdPAN.tif @@ -384,10 +368,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${ROMEWV2DIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_PAN) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${ROMEWV2DIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoWV2PAN.tif ${ROMEWV2DIR}/09DEC10103019-P2AS-052298844010_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${ROMEWV2DIR}) + otb_copy_rename(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoWV2PAN.tif ${ROMEWV2DIR}/09DEC10103019-P2AS-052298844010_01_P001.TIF) otb_add_test(NAME raTvReflectanceToLuminanceImageFilterAutoWV2PAN COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BASELINE}/raTvImageToLuminanceImageFilterAutoWV2PAN.tif @@ -400,10 +382,8 @@ if(OTB_DATA_USE_LARGEINPUT) set(TEHERANSPOT5DIR ${TEMP}/OpticalCalibRefToLumSPOT5) file(MAKE_DIRECTORY ${TEHERANSPOT5DIR}) file(GLOB MTDATA ${OTB_DATA_LARGEINPUT_ROOT}/SPOT5/TEHERAN/*.DIM) - foreach(f ${MTDATA}) - configure_file(${f} ${TEHERANSPOT5DIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoSpot5.tif ${TEHERANSPOT5DIR}/IMAGERY.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${TEHERANSPOT5DIR}) + otb_copy_rename(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoSpot5.tif ${TEHERANSPOT5DIR}/IMAGERY.TIF) otb_add_test(NAME raTvReflectanceToLuminanceImageFilterAutoSpot5 COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BASELINE}/raTvImageToLuminanceImageFilterAutoSpot5.tif @@ -416,10 +396,8 @@ if(OTB_DATA_USE_LARGEINPUT) set(BLOSSEVILLEIKONOSDIR ${TEMP}/OpticalCalibRefToLumIkonos) file(MAKE_DIRECTORY ${BLOSSEVILLEIKONOSDIR}) file(GLOB MTDATA ${OTB_DATA_LARGEINPUT_ROOT}/IKONOS/BLOSSEVILLE/*metadata.txt ${OTB_DATA_LARGEINPUT_ROOT}/IKONOS/BLOSSEVILLE/*pan*) - foreach(f ${MTDATA}) - configure_file(${f} ${BLOSSEVILLEIKONOSDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoIkonos.tif ${BLOSSEVILLEIKONOSDIR}/po_2619900_pan_0000000.tif COPYONLY) + file(COPY ${MTDATA} DESTINATION ${BLOSSEVILLEIKONOSDIR}) + otb_copy_rename(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoIkonos.tif ${BLOSSEVILLEIKONOSDIR}/po_2619900_pan_0000000.tif) otb_add_test(NAME raTvReflectanceToLuminanceImageFilterAutoIkonos COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BASELINE}/raTvImageToLuminanceImageFilterAutoIkonos.tif @@ -433,10 +411,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${TOULOUSEQBDIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_MUL) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${TOULOUSEQBDIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoQuickbirdXS.tif ${TOULOUSEQBDIR}/02APR01105228-M1BS-000000128955_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${TOULOUSEQBDIR}) + otb_copy_rename(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoQuickbirdXS.tif ${TOULOUSEQBDIR}/02APR01105228-M1BS-000000128955_01_P001.TIF) otb_add_test(NAME raTvReflectanceToLuminanceImageFilterAutoQuickbirdXS COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BASELINE}/raTvImageToLuminanceImageFilterAutoQuickbirdXS.tif @@ -450,10 +426,8 @@ if(OTB_DATA_USE_LARGEINPUT) file(MAKE_DIRECTORY ${ROMEWV2DIR}) set(MTDATADIR ${OTB_DATA_LARGEINPUT_ROOT}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_MUL) file(GLOB MTDATA ${MTDATADIR}/*TIL ${MTDATADIR}/*RPB ${MTDATADIR}/*XML ${MTDATADIR}/*IMD) - foreach(f ${MTDATA}) - configure_file(${f} ${ROMEWV2DIR} COPYONLY) - endforeach(f) - configure_file(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoWV2Multi.tif ${ROMEWV2DIR}/09DEC10103019-M2AS-052298844010_01_P001.TIF COPYONLY) + file(COPY ${MTDATA} DESTINATION ${ROMEWV2DIR}) + otb_copy_rename(${BASELINE}/raTvLuminanceToReflectanceImageFilterAutoWV2Multi.tif ${ROMEWV2DIR}/09DEC10103019-M2AS-052298844010_01_P001.TIF) otb_add_test(NAME raTvReflectanceToLuminanceImageFilterAutoWV2MULTI COMMAND otbOpticalCalibrationTestDriver --compare-image ${EPSILON_12} ${BASELINE}/raTvImageToLuminanceImageFilterAutoWV2Multi.tif diff --git a/Modules/Remote/Mosaic.remote.cmake b/Modules/Remote/Mosaic.remote.cmake index 12a21582d1bc2b94f5316b234153c805f2d51cff..1989f99e313c74ee177e5b50b8faa3220d9baeb4 100644 --- a/Modules/Remote/Mosaic.remote.cmake +++ b/Modules/Remote/Mosaic.remote.cmake @@ -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 64cb06798fb237e10f929c1adaab37441e09fbc3 + GIT_TAG 9a8cdd63ed3bba500bb4ea3867abc38bce8be562 ) diff --git a/Modules/Remote/otb-bv.remote.cmake b/Modules/Remote/otb-bv.remote.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f699009f62157dc925cb290851f91d83bddc38f9 --- /dev/null +++ b/Modules/Remote/otb-bv.remote.cmake @@ -0,0 +1,9 @@ +#Contact: Jordi Inglada <jordi.inglada@cesbio.eu> +otb_fetch_module(OTBBioVars + "Biophysical variable estimation from remote sensing imagery. +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 +) diff --git a/Modules/Remote/phenotb.remote.cmake b/Modules/Remote/phenotb.remote.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3640ef3cfa99b6039f8f1010ab5ecb4daa8ffaa7 --- /dev/null +++ b/Modules/Remote/phenotb.remote.cmake @@ -0,0 +1,11 @@ +#Contact: Jordi Inglada <jordi.inglada@cesbio.eu> +otb_fetch_module(OTBPhenology + "This module implements several algorithms allowing to extract phenological + information from time profiles. These time profiles should represent + vegetation status as for instance NDVI, LAI, etc. +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 +) diff --git a/Modules/Visualization/Ice/src/otbGlImageActor.cxx b/Modules/Visualization/Ice/src/otbGlImageActor.cxx index 6e1cb6568718b3f018bae20e508b9f0e8f35bd02..f95da4257f877da2ca46469cbdbc9e5367340f84 100644 --- a/Modules/Visualization/Ice/src/otbGlImageActor.cxx +++ b/Modules/Visualization/Ice/src/otbGlImageActor.cxx @@ -1037,7 +1037,12 @@ void GlImageActor::UpdateResolution() m_CurrentResolution = newResolution; std::ostringstream extFilename; - extFilename<<m_FileName<<"?&resol="<<m_CurrentResolution; + extFilename<<m_FileName; + if ( m_FileName.find('?') == std::string::npos ) + { + extFilename << '?'; + } + extFilename<<"&resol="<<m_CurrentResolution; m_FileReader->SetFileName(extFilename.str()); m_FileReader->GetOutput()->UpdateOutputInformation(); @@ -1180,7 +1185,12 @@ void GlImageActor::AutoColorAdjustment( double & minRed, double & maxRed, resol = m_AvailableResolutions.size()-1; } - extFilename<<m_FileName<<"?&resol="<<m_AvailableResolutions[resol]; + extFilename<<m_FileName; + if ( m_FileName.find('?') == std::string::npos ) + { + extFilename << '?'; + } + extFilename<<"&resol="<<m_AvailableResolutions[resol]; reader->SetFileName(extFilename.str()); ExtractROIFilterType::Pointer extract = ExtractROIFilterType::New(); diff --git a/Modules/Visualization/Ice/src/otbNonOptGlImageActor.cxx b/Modules/Visualization/Ice/src/otbNonOptGlImageActor.cxx index 8c27068e262bce18844d61d29d5a0707ebaba9c6..633c95605770ad16d9df1e9a86d471f40ea1c07c 100644 --- a/Modules/Visualization/Ice/src/otbNonOptGlImageActor.cxx +++ b/Modules/Visualization/Ice/src/otbNonOptGlImageActor.cxx @@ -679,7 +679,12 @@ void NonOptGlImageActor::UpdateResolution() m_CurrentResolution = closest; std::ostringstream extFilename; - extFilename<<m_FileName<<"?&resol="<<m_CurrentResolution; + extFilename<<m_FileName; + if ( m_FileName.find('?') == std::string::npos ) + { + extFilename << '?'; + } + extFilename<<"&resol="<<m_CurrentResolution; // std::cout<<"Extfname = "<<extFilename.str()<<std::endl; diff --git a/Modules/Visualization/Mapla/include/mvdMaplaApplication.h b/Modules/Visualization/Mapla/include/mvdMaplaApplication.h index 687aed14723a69551e736f05f02e8066d29728e1..0ebb64e9ec0d771ff47546624fc74332aaa3742e 100644 --- a/Modules/Visualization/Mapla/include/mvdMaplaApplication.h +++ b/Modules/Visualization/Mapla/include/mvdMaplaApplication.h @@ -98,7 +98,7 @@ public: MaplaApplication( QApplication* qtApp ); /** \brief Destructor. */ - virtual ~MaplaApplication(); + ~MaplaApplication() ITK_OVERRIDE; // // STATIC METHODS. @@ -141,7 +141,7 @@ protected: // Protected attributes. protected: - void virtual_InitializeCore(); + void virtual_InitializeCore() ITK_OVERRIDE; /*-[ PRIVATE SECTION ]-----------------------------------------------------*/ diff --git a/Modules/Visualization/Mapla/include/mvdMaplaMainWindow.h b/Modules/Visualization/Mapla/include/mvdMaplaMainWindow.h index 139b5372c2bc40b0c89f7f5a9d3762c7f5cc0fab..ac1f5e67f9356ec83f3009ce075e056963dbcb7b 100644 --- a/Modules/Visualization/Mapla/include/mvdMaplaMainWindow.h +++ b/Modules/Visualization/Mapla/include/mvdMaplaMainWindow.h @@ -102,7 +102,7 @@ public: MaplaMainWindow( QWidget* Parent =0, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~MaplaMainWindow(); + ~MaplaMainWindow() ITK_OVERRIDE; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ @@ -117,9 +117,9 @@ signals: protected: // - // QMainWindow overrides. + // QMainWindow methods. - void closeEvent( QCloseEvent* event ); + void closeEvent( QCloseEvent* event ) ITK_OVERRIDE; // // Protected attributes. @@ -133,11 +133,11 @@ protected slots: /** */ - void OnAboutToChangeModel( const AbstractModel* ); + void OnAboutToChangeModel( const AbstractModel* ) ITK_OVERRIDE; /** */ - void OnModelChanged( AbstractModel* ); + void OnModelChanged( AbstractModel* ) ITK_OVERRIDE; /** */ @@ -174,11 +174,11 @@ private: void InitializeCentralWidget(); // - // I18nMainWindow overrides. + // I18nMainWindow methods. - virtual void virtual_SetupUI(); + void virtual_SetupUI() ITK_OVERRIDE; - virtual void virtual_ConnectUI(); + void virtual_ConnectUI() ITK_OVERRIDE; // // Private attributes. diff --git a/RELEASE_NOTES_MVD.txt b/Modules/Visualization/Monteverdi/RELEASE_NOTES_MVD.txt similarity index 100% rename from RELEASE_NOTES_MVD.txt rename to Modules/Visualization/Monteverdi/RELEASE_NOTES_MVD.txt diff --git a/Modules/Visualization/Monteverdi/include/mvdApplication.h b/Modules/Visualization/Monteverdi/include/mvdApplication.h index ed8f6b0abe0c64da4e77102cff13291dd5bbae19..2ab8ed241fec09b8f571123ccb43846ea0f44757 100644 --- a/Modules/Visualization/Monteverdi/include/mvdApplication.h +++ b/Modules/Visualization/Monteverdi/include/mvdApplication.h @@ -97,7 +97,7 @@ public: Application( QApplication* qtApp ); /** \brief Destructor. */ - virtual ~Application(); + ~Application() ITK_OVERRIDE; /** * \return The number of outdated dataset-models present in the @@ -158,7 +158,7 @@ protected: // Protected attributes. protected: - void virtual_InitializeCore(); + void virtual_InitializeCore() ITK_OVERRIDE; /*-[ PRIVATE SECTION ]-----------------------------------------------------*/ diff --git a/Modules/Visualization/Monteverdi/include/mvdMainWindow.h b/Modules/Visualization/Monteverdi/include/mvdMainWindow.h index 14571d0663e57aa4fe7d0b70a00affdf53adf882..5e5080fc4217ddf9b93a5e76dd6b00e7708cf8a0 100644 --- a/Modules/Visualization/Monteverdi/include/mvdMainWindow.h +++ b/Modules/Visualization/Monteverdi/include/mvdMainWindow.h @@ -122,7 +122,7 @@ public: MainWindow( QWidget* p =0, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~MainWindow(); + ~MainWindow() ITK_OVERRIDE; /** */ @@ -178,9 +178,9 @@ protected: using I18nMainWindow::ImportImage; // - // QMainWindow overrides. + // QMainWindow methods. - void closeEvent( QCloseEvent* event ); + void closeEvent( QCloseEvent* event ) ITK_OVERRIDE; // // Protected attributes. @@ -194,11 +194,11 @@ protected slots: /** */ - void OnAboutToChangeModel( const AbstractModel * ); + void OnAboutToChangeModel( const AbstractModel * ) ITK_OVERRIDE; /** */ - void OnModelChanged( AbstractModel * ); + void OnModelChanged( AbstractModel * ) ITK_OVERRIDE; /** */ @@ -331,13 +331,13 @@ private: void SetGLSLEnabled( bool ); // - // I18nMainWindow overrides. + // I18nMainWindow methods. - virtual void virtual_SetupUI(); + void virtual_SetupUI() ITK_OVERRIDE; - virtual void virtual_ConnectUI(); + void virtual_ConnectUI() ITK_OVERRIDE; - virtual void virtual_InitializeUI(); + void virtual_InitializeUI() ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/Monteverdi/include/mvdPreferencesDialog.h b/Modules/Visualization/Monteverdi/include/mvdPreferencesDialog.h index 24a7f9adff761991ea99bd39dc17d59a14589673..da8752d389d2b63fd0b428797ba1ad5e21249218 100644 --- a/Modules/Visualization/Monteverdi/include/mvdPreferencesDialog.h +++ b/Modules/Visualization/Monteverdi/include/mvdPreferencesDialog.h @@ -90,7 +90,7 @@ public: PreferencesDialog( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** Destructor */ - virtual ~PreferencesDialog(); + ~PreferencesDialog() ITK_OVERRIDE; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ diff --git a/Modules/Visualization/Monteverdi/src/mvdMainWindow.cxx b/Modules/Visualization/Monteverdi/src/mvdMainWindow.cxx index 33edeb7f5136601316b1d5028d0cc2c25e70da5c..56bdd63d89d06cc464745b2215315cb36f8dd3d7 100644 --- a/Modules/Visualization/Monteverdi/src/mvdMainWindow.cxx +++ b/Modules/Visualization/Monteverdi/src/mvdMainWindow.cxx @@ -1130,7 +1130,10 @@ MainWindow if( importDialog->HasSubDatasets() ) { if( importDialog->exec()==QDialog::Rejected ) - return 0; + { + delete importDialog; + return 0; + } IntVector::size_type count = 0; IntVector indices; @@ -1142,12 +1145,17 @@ MainWindow ++ i ) count += ImportImage( - QString( "%1?&sdataidx=%2" ).arg( filename ).arg( indices[ i ] ), + QString( "%1%2&sdataidx=%3" ).arg( filename ).arg( filename.count(QChar('?')) ? "" : "?" ).arg( indices[ i ] ), index + count ); + delete importDialog; return count; } + else + { + delete importDialog; + } } // CDS import. // @@ -1232,8 +1240,6 @@ MainWindow if( imageModel==NULL ) return 0; - otb::SetWorkingDir( filename ); - // // Bypass rendering of image-views. assert( m_ImageView!=NULL ); diff --git a/Modules/Visualization/MonteverdiCore/include/mvdAbstractImageModel.h b/Modules/Visualization/MonteverdiCore/include/mvdAbstractImageModel.h index ff1a797972564ffc8ae7d53827bffc3b76b446a0..bc63bc117bafe075732e064e12cd3fac64766f0f 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdAbstractImageModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdAbstractImageModel.h @@ -169,7 +169,7 @@ public: public: /** Destructor */ - virtual ~AbstractImageModel(); + ~AbstractImageModel() ITK_OVERRIDE; /** */ inline int GetId() const; @@ -318,9 +318,9 @@ protected: GetMetaDataInterface() const; // - // AbstractModel overrides. + // AbstractModel methods. - virtual void virtual_BuildModel( void* context ); + void virtual_BuildModel( void* context ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiCore/include/mvdAbstractLayerModel.h b/Modules/Visualization/MonteverdiCore/include/mvdAbstractLayerModel.h index a038ba4c8d29d9613d0ab471785fe32922e653be..4b3575e00bf2b92341bdc43bc58084cb8a2a993c 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdAbstractLayerModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdAbstractLayerModel.h @@ -119,7 +119,7 @@ class OTBMonteverdiCore_EXPORT AbstractLayerModel : public: /** \brief Destructor. */ - virtual ~AbstractLayerModel(); + ~AbstractLayerModel() ITK_OVERRIDE; /** */ @@ -190,7 +190,7 @@ private: // // VisibleInterface overloads. - virtual void virtual_SignalVisibilityChanged( bool ); + void virtual_SignalVisibilityChanged( bool ) ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiCore/include/mvdAbstractModel.h b/Modules/Visualization/MonteverdiCore/include/mvdAbstractModel.h index 4574923bdc15334ed0e40d9e7eb9e5bdb0f67198..90a5a4137b8d007cdb6b64f0c5120f5374daed19 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdAbstractModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdAbstractModel.h @@ -89,7 +89,7 @@ class OTBMonteverdiCore_EXPORT AbstractModel : public: /** Destructor */ - virtual ~AbstractModel(); + ~AbstractModel() ITK_OVERRIDE; /** */ template< typename TModel > diff --git a/Modules/Visualization/MonteverdiCore/include/mvdAbstractWorker.h b/Modules/Visualization/MonteverdiCore/include/mvdAbstractWorker.h index ba0d5b178b0f0b21a8a8df10980dac7c73908d0a..f691db82338ee3302bf0b27cfab6071c27be37bd 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdAbstractWorker.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdAbstractWorker.h @@ -89,7 +89,7 @@ class OTBMonteverdiCore_EXPORT AbstractWorker : public: /** \brief Destructor. */ - virtual ~AbstractWorker(); + ~AbstractWorker() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiCore/include/mvdApplicationsBrowser.h b/Modules/Visualization/MonteverdiCore/include/mvdApplicationsBrowser.h index 17c06b638e6a1273370a9263c483d775b6f573ac..ce8ce1002fb035a26fd567d8200caf29f2eb6d8f 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdApplicationsBrowser.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdApplicationsBrowser.h @@ -110,7 +110,7 @@ public: ApplicationsBrowser( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~ApplicationsBrowser(); + ~ApplicationsBrowser() ITK_OVERRIDE; /** set the path where to look for applications */ void SetAutoLoadPath(const std::string & itk_auto_load_path); diff --git a/Modules/Visualization/MonteverdiCore/include/mvdBackgroundTask.h b/Modules/Visualization/MonteverdiCore/include/mvdBackgroundTask.h index 9781590752f76fbe71c0c7dde4e3f11193b18c20..da91ad440a0a5d745c6bf693d6129b90dfa99655 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdBackgroundTask.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdBackgroundTask.h @@ -98,7 +98,7 @@ public: /** * \brief Destructor. */ - virtual ~BackgroundTask(); + ~BackgroundTask() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiCore/include/mvdHistogramModel.h b/Modules/Visualization/MonteverdiCore/include/mvdHistogramModel.h index adc0e3f1aee0bccbdeeef81870ebe42cb39cdd1d..b39590e6ef4ddf7b5130adeb0da2f5357882b048 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdHistogramModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdHistogramModel.h @@ -140,8 +140,7 @@ public: // Public methods. public: /** \brief Constructor. */ - BuildContext( bool isBeingStored, - const QString& filename =QString() ) : + BuildContext( bool isBeingStored, const QString& filename =QString() ) : m_Filename( filename ), m_IsBeingStored( isBeingStored ) { @@ -174,7 +173,7 @@ public: HistogramModel( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~HistogramModel(); + ~HistogramModel() ITK_OVERRIDE; /** */ @@ -191,10 +190,10 @@ public: MeasurementType Quantile( CountType band, double p, Bound bound ) const; /** */ - double - Percentile( CountType band, - MeasurementType intensity, - Bound bound ) const; + double Percentile( + CountType band, + MeasurementType intensity, + Bound bound ) const; /** */ inline VectorPixelType GetMinPixel() const; @@ -208,13 +207,14 @@ public: /** */ - void GetData( CountType band, - double * const x, - double * const y, - double& xMin, - double& xMax, - double& yMin, - double& yMax ) const; + void GetData( + CountType band, + double * const x, + double * const y, + double& xMin, + double& xMax, + double& yMin, + double& yMax ) const; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ @@ -229,10 +229,10 @@ signals: protected: // - // AbstractModel overrides. + // AbstractModel methods. /** */ - virtual void virtual_BuildModel( void* context =NULL ); + void virtual_BuildModel( void* context =NULL ) ITK_OVERRIDE; // // Protected attributes. @@ -271,12 +271,12 @@ private: void template_BuildModel_M( BuildContext * =NULL ); // - // SerializableInterface overrides. + // SerializableInterface methods. // - virtual void virtual_Read( QIODevice* device ); + void virtual_Read( QIODevice* device ) ITK_OVERRIDE; - virtual void virtual_Write( QIODevice& device ) const; + void virtual_Write( QIODevice& device ) const ITK_OVERRIDE; // // Private attributes. @@ -509,7 +509,6 @@ HistogramModel CountType components = imageModel->ToImage()->GetNumberOfComponentsPerPixel(); assert( components>0 ); - // // Always initialize min and Max pixels. m_MinPixel = DefaultImageType::PixelType( components ); @@ -520,7 +519,6 @@ HistogramModel try { - // // 1st pass: process min/MAX for each band. qDebug() << QString( "%1: Pass #1 - finding pixel min/maxes..." ) @@ -529,17 +527,12 @@ HistogramModel lPass1.start(); // Define histogram-filter type. - typedef - otb::StreamingHistogramVectorImageFilter< - typename TImageModel::SourceImageType > - HistogramFilter; - + typedef otb::StreamingHistogramVectorImageFilter< + typename TImageModel::SourceImageType > HistogramFilter; // Connect statistics pipe-section. - typedef - otb::StreamingStatisticsVectorImageFilter< - typename TImageModel::SourceImageType > - StatisticsFilter; + typedef otb::StreamingStatisticsVectorImageFilter< + typename TImageModel::SourceImageType > StatisticsFilter; typename StatisticsFilter::Pointer filterStats( StatisticsFilter::New() ); @@ -585,63 +578,87 @@ HistogramModel // qDebug() << "#" << i << ": " << n; if( n <= 1.0 ) - { - bins[ i ] = 1; - } + { + bins[ i ] = 1; + } else - { - RealType sigma = sqrt( covariance( i, i ) ); - - // qDebug() << "#" << i << ":" << sigma; - - assert( sigma >= 0.0 ); - - if( sigma<=0.0 ) - { - bins[ i ] = 1; - } - else - { - // Scott's formula - // See http://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width - RealType h = 3.5 * sigma / pow( n, 1.0 / 3.0 ); - - /* - qDebug() - << "#" << i - << ": h = pow(" << n << "," << 1.0 / 3.0 << ") =" - << h; - - qDebug() - << "#" << i - << ": bins[" << i << "] = ceil( (" - << m_MaxPixel[ i ] << "-" << m_MinPixel[ i ] << ") / " << h << ") =" - << ceil( ( m_MaxPixel[ i ] - m_MinPixel[ i ] ) / h ); - */ - - bins[ i ] = ceil( ( maxPixel[ i ] - minPixel[ i ] ) / h ); - } - } + { + RealType sigma = sqrt( covariance( i, i ) ); + + // qDebug() << "#" << i << ":" << sigma; + + assert( sigma >= 0.0 ); + + if( sigma<=0.0 ) + { + bins[ i ] = 1; + } + else + { + // Scott's formula + // See http://en.wikipedia.org/wiki/Histogram#Number_of_bins_and_width + RealType h = 3.5 * sigma / pow( n, 1.0 / 3.0 ); + + /* + qDebug() + << "#" << i + << ": h = pow(" << n << "," << 1.0 / 3.0 << ") =" + << h; + + qDebug() + << "#" << i + << ": bins[" << i << "] = ceil( (" + << m_MaxPixel[ i ] << "-" << m_MinPixel[ i ] << ") / " << h << ") =" + << ceil( ( m_MaxPixel[ i ] - m_MinPixel[ i ] ) / h ); + */ + + bins[ i ] = ceil( ( maxPixel[ i ] - minPixel[ i ] ) / h ); + + // at least 1 bin is needed + bins[i] = std::max(bins[i],1U); + } + } // MANTIS-1275 // { - if( minPixel[ i ]==maxPixel[ i ] ) - { - double epsilon = HistogramModel::GetEpsilon(); - - if( minPixel[ i ] >= - std::numeric_limits< DefaultImageType::PixelType::ValueType >::min() + epsilon ) - minPixel[ i ] -= epsilon; - - if( maxPixel[ i ] <= - std::numeric_limits< DefaultImageType::PixelType::ValueType >::max() - epsilon ) - maxPixel[ i ] += epsilon; - } + if( minPixel[ i ]==maxPixel[ i ] ) + { + double epsilon = HistogramModel::GetEpsilon(); + + // make sure the epsilon is not hidden when using large values + if( boost::is_floating_point< DefaultImageType::PixelType::ValueType >::value ) + { + double absValue = vcl_abs(minPixel[i]); + // compute smallest epsilon for absolute pixel value (1.5 factor is for safety) + double limitEpsilon = absValue * + (double)std::numeric_limits<DefaultImageType::PixelType::ValueType>::epsilon() + * 1.5; + epsilon = std::max(epsilon,limitEpsilon); + } + + double lowerBound; + // With C++11, we can use std::numeric_limits<>::lowest() + if( boost::is_floating_point< DefaultImageType::PixelType::ValueType >::value ) + { + lowerBound = epsilon - std::numeric_limits< DefaultImageType::PixelType::ValueType >::max(); + } + else + { + lowerBound = std::numeric_limits< DefaultImageType::PixelType::ValueType >::min() + epsilon; + } + double upperBound = std::numeric_limits< DefaultImageType::PixelType::ValueType >::max() - epsilon; + + if( minPixel[ i ] >= lowerBound ) + minPixel[ i ] -= epsilon; + + if( maxPixel[ i ] <= upperBound ) + maxPixel[ i ] += epsilon; + } // } // } - // std::cout << bins; + // std::cout << "Number of bins : "<< bins << std::endl; qDebug() << QString( "%1: Pass #1 - done (%2 ms)." ) .arg( QDateTime::currentDateTime().toString( Qt::ISODate ) ) diff --git a/Modules/Visualization/MonteverdiCore/include/mvdI18nCoreApplication.h b/Modules/Visualization/MonteverdiCore/include/mvdI18nCoreApplication.h index fc572d7bfad803488d5ae3879f68dc04eb1b2bae..e0e7930270cd8dfe98365cc172bdeb0ad7963a4e 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdI18nCoreApplication.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdI18nCoreApplication.h @@ -140,7 +140,7 @@ public: I18nCoreApplication( QCoreApplication* qtApp ); /** \brief Destructor. */ - virtual ~I18nCoreApplication(); + ~I18nCoreApplication() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiCore/include/mvdImageImporter.h b/Modules/Visualization/MonteverdiCore/include/mvdImageImporter.h index 84bbb42ff59164bcae32b2c51d424e91e7f9bd2f..74631e0c6b224c8efa702285cc79c7ab2ebfc4a2 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdImageImporter.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdImageImporter.h @@ -120,7 +120,7 @@ public: /** * \brief Destructor. */ - virtual ~ImageImporter(); + ~ImageImporter() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -175,9 +175,9 @@ private: // // AbstractWorker oveloads. - QObject* virtual_Do(); + QObject* virtual_Do() ITK_OVERRIDE; - QString virtual_GetFirstProgressText() const; + QString virtual_GetFirstProgressText() const ITK_OVERRIDE; // diff --git a/Modules/Visualization/MonteverdiCore/include/mvdMyClass.h b/Modules/Visualization/MonteverdiCore/include/mvdMyClass.h index f87a20dcdf898e73f9211834696d09d6c50ddfc1..3887c8255f89e4a1eb835ea9074cf69a19425a31 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdMyClass.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdMyClass.h @@ -92,7 +92,7 @@ public: MyClass( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~MyClass(); + ~MyClass() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiCore/include/mvdOverviewBuilder.h b/Modules/Visualization/MonteverdiCore/include/mvdOverviewBuilder.h index b5fc5b3308ee6dacc0bd375412000ab2c75dae36..2dac8a76f16ea88be67086049f6dd3b880528f8c 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdOverviewBuilder.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdOverviewBuilder.h @@ -108,12 +108,12 @@ public: /** * \brief Destructor. */ - virtual ~OverviewBuilder(); + ~OverviewBuilder() ITK_OVERRIDE; // // ProgressInterface overloads. - virtual void SetProgress( double ); + void SetProgress( double ) ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -164,9 +164,9 @@ private: // // AbstractWorker oveloads. - QObject * virtual_Do(); + QObject * virtual_Do() ITK_OVERRIDE; - QString virtual_GetFirstProgressText() const; + QString virtual_GetFirstProgressText() const ITK_OVERRIDE; // diff --git a/Modules/Visualization/MonteverdiCore/include/mvdProcessObjectObserver.h b/Modules/Visualization/MonteverdiCore/include/mvdProcessObjectObserver.h index 472f7fa0e57ea66fd4a105ab2f92ed3f894f0d76..1fba5bcae565825aea0c9ad6eb251d14b43f918a 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdProcessObjectObserver.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdProcessObjectObserver.h @@ -99,7 +99,7 @@ public: public: /** \brief Destructor. */ - virtual ~ProcessObjectObserver(); + ~ProcessObjectObserver() ITK_OVERRIDE; const ProgressInterface * GetProgressInterface() const; ProgressInterface * GetProgressInterface(); @@ -109,11 +109,11 @@ public: // // itk::Command overloads. - virtual void Execute( itk::Object * caller, - const itk::EventObject & event ); + void Execute( itk::Object * caller, + const itk::EventObject & event ) ITK_OVERRIDE; - virtual void Execute( const itk::Object * caller, - const itk::EventObject & event ); + void Execute( const itk::Object * caller, + const itk::EventObject & event ) ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiCore/include/mvdQuicklookModel.h b/Modules/Visualization/MonteverdiCore/include/mvdQuicklookModel.h index 7f08dbf0dcaefca43888615e921d6f20161dc780..04452beb6b2e1347e7dbfc42013dd0447254cb29 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdQuicklookModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdQuicklookModel.h @@ -98,7 +98,7 @@ public: QuicklookModel( QObject* p =NULL ); /** Destructor */ - virtual ~QuicklookModel(); + ~QuicklookModel() ITK_OVERRIDE; /** * \brief Get the parent image-model of this quicklook image as an @@ -159,7 +159,7 @@ signals: protected: /** */ - virtual void virtual_BuildModel( void* context =NULL ); + void virtual_BuildModel( void* context =NULL ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h b/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h index b14a6d7ecb8a5eea4d12246ae33b3bd5c28fdfaa..34b5e501f569f77f32401a0a79ebfaf6a00fbe04 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdStackedLayerModel.h @@ -114,7 +114,7 @@ public: StackedLayerModel( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~StackedLayerModel(); + ~StackedLayerModel() ITK_OVERRIDE; inline const AbstractLayerModel * operator[]( SizeType ) const; inline AbstractLayerModel * operator[]( SizeType ); diff --git a/Modules/Visualization/MonteverdiCore/include/mvdSystemError.h b/Modules/Visualization/MonteverdiCore/include/mvdSystemError.h index 80c7df45aa1d2d8cda2aece187786aaaf41145f4..c8f8f4ae79b64ff53143505f5665f7efb402bf5b 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdSystemError.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdSystemError.h @@ -94,7 +94,7 @@ public: + ": " + message) {}; /** \brief Destructor. */ - virtual ~SystemError() throw() {}; + ~SystemError() throw() ITK_OVERRIDE {}; /*-[ PROTECTED SECTION ]---------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiCore/include/mvdVectorImageModel.h b/Modules/Visualization/MonteverdiCore/include/mvdVectorImageModel.h index 95fc79cc079756ba114332dad08e1a0107d30fcb..17f5b984bb2ab1c804fa1e65ac53b8609ce9403c 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdVectorImageModel.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdVectorImageModel.h @@ -116,7 +116,7 @@ public: VectorImageModel( QObject* p =NULL ); /** Destructor */ - virtual ~VectorImageModel(); + ~VectorImageModel() ITK_OVERRIDE; /** */ static void EnsureValidImage( const QString& filename ); @@ -159,22 +159,22 @@ public: CountType ComputeBestLod( int width, int height ) const; // - // AbstractImageModel overrides. + // AbstractImageModel methods. /** * Get the number of available LOD. */ - virtual CountType GetNbLod() const; + CountType GetNbLod() const ITK_OVERRIDE; /** * Get a smart-pointer to the current LOD image-base. */ - virtual ImageBaseType::ConstPointer ToImageBase() const; + ImageBaseType::ConstPointer ToImageBase() const ITK_OVERRIDE; /** * Get a smart-pointer to the current LOD image-base. */ - virtual ImageBaseType::Pointer ToImageBase(); + ImageBaseType::Pointer ToImageBase() ITK_OVERRIDE; /** * Get the placename from the center pixel @@ -182,11 +182,11 @@ public: std::string GetCenterPixelPlaceName(); // - // AbstractModel overrides. + // AbstractModel methods. - virtual bool IsModified() const; + bool IsModified() const ITK_OVERRIDE; - virtual void ClearModified(); + void ClearModified() ITK_OVERRIDE; // get image size in byte std::streamoff GetImageSizeInBytes() @@ -238,12 +238,12 @@ signals: protected: // - // AbstractModel overrides. + // AbstractModel methods. - virtual void virtual_BuildModel( void* context =NULL ); + void virtual_BuildModel( void* context =NULL ) ITK_OVERRIDE; // - // AbstractImageModel overrides. + // AbstractImageModel methods. void InitializeColorSetupSettings(); @@ -288,20 +288,20 @@ private: void BuildGdalOverviews(); // - // AbstractLayerModel overrides. + // AbstractLayerModel methods. - virtual std::string virtual_GetWkt() const; - virtual bool virtual_HasKwl() const; - virtual void virtual_ToWgs84( const PointType &, + std::string virtual_GetWkt() const ITK_OVERRIDE; + bool virtual_HasKwl() const ITK_OVERRIDE; + void virtual_ToWgs84( const PointType &, PointType &, - double & alt ) const; + double & alt ) const ITK_OVERRIDE; // - // AbstractImageModel overrides. + // AbstractImageModel methods. - virtual void virtual_SetCurrentLod( CountType lod ); + void virtual_SetCurrentLod( CountType lod ) ITK_OVERRIDE; - virtual void virtual_RefreshHistogram(); + void virtual_RefreshHistogram() ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h b/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h index 3d088566639cd592ec68b0ad387c3c40e0e65f2b..8532f8a5705912ea2a9f70fbd52d65a630cd4753 100644 --- a/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h +++ b/Modules/Visualization/MonteverdiCore/include/mvdVectorImageSettings.h @@ -108,7 +108,7 @@ public: /** * \brief Destructor. */ - virtual ~VectorImageSettings(); + ~VectorImageSettings() ITK_OVERRIDE; /** * \brief Assignment operator. diff --git a/Modules/Visualization/MonteverdiCore/src/mvdVectorImageModel.cxx b/Modules/Visualization/MonteverdiCore/src/mvdVectorImageModel.cxx index 956d96906dfee243403c325336c9d7a21f49efc2..d891e8f687524d9f39a5d47d6aee028eade4c47b 100644 --- a/Modules/Visualization/MonteverdiCore/src/mvdVectorImageModel.cxx +++ b/Modules/Visualization/MonteverdiCore/src/mvdVectorImageModel.cxx @@ -173,8 +173,11 @@ VectorImageModel ); QString fname = filename; - - imageFileReader->SetFileName( QFile::encodeName( fname.append(QString("?&skipgeom=true"))).constData()); + if (!filename.contains(QChar('?'))) + { + fname.append(QChar('?')); + } + imageFileReader->SetFileName( QFile::encodeName( fname.append(QString("&skipgeom=true"))).constData()); imageFileReader->GetOutput()->UpdateOutputInformation(); } @@ -538,7 +541,12 @@ VectorImageModel QString lodFilename( GetFilename() ); // If model is a multi-resolution image. - lodFilename.append( QString( "?&resol=%1" ).arg( lod ) ); + if (lodFilename.count(QChar('?')) == 0) + { + // the filename is not an extended filename yet + lodFilename.append( QChar('?') ); + } + lodFilename.append( QString( "&resol=%1" ).arg( lod ) ); // Update m_ImageFileReader m_ImageFileReader->SetFileName( QFile::encodeName( lodFilename ).constData() ); diff --git a/Modules/Visualization/MonteverdiGui/include/mvdAboutDialog.h b/Modules/Visualization/MonteverdiGui/include/mvdAboutDialog.h index 54b4c9ae9fa7065fc03e768448b680f02569e34c..45a2320400ac55681807b1a607f3be82772b19ac 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdAboutDialog.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdAboutDialog.h @@ -75,7 +75,7 @@ public: AboutDialog( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** Destructor */ - virtual ~AboutDialog(); + ~AboutDialog() ITK_OVERRIDE; // // SIGNALS. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdAbstractDragAndDropEventFilter.h b/Modules/Visualization/MonteverdiGui/include/mvdAbstractDragAndDropEventFilter.h index 8ea62eeea3c215cc288fde12009597efcb2e01de..95a09b5cc9634ea4b4bd3318e61498d4b0e07755 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdAbstractDragAndDropEventFilter.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdAbstractDragAndDropEventFilter.h @@ -88,7 +88,7 @@ class OTBMonteverdiGUI_EXPORT AbstractDragAndDropEventFilter : public: /** \brief Destructor. */ - virtual ~AbstractDragAndDropEventFilter(); + ~AbstractDragAndDropEventFilter() ITK_OVERRIDE; // // QObject overloads. @@ -96,7 +96,7 @@ public: /** * \see http://qt-project.org/doc/qt-4.8/qobject.html#eventFilter */ - virtual bool eventFilter( QObject* watched, QEvent* event ); + bool eventFilter( QObject* watched, QEvent* event ) ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewManipulator.h b/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewManipulator.h index 4df51314ef5848b7a80b843870e98cf611788023..32b2470021305f6edbc1609cc31ce2d34feb613a 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewManipulator.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewManipulator.h @@ -88,7 +88,7 @@ class OTBMonteverdiGUI_EXPORT AbstractImageViewManipulator : public: /** \brief Destructor. */ - virtual ~AbstractImageViewManipulator() {}; + ~AbstractImageViewManipulator() ITK_OVERRIDE {}; // // Accessors diff --git a/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewRenderer.h b/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewRenderer.h index b851ef4ef9c835efb1e8a2502b05357a29b1caaa..eb134a54cf085801af2270b074a0e23ae206a928 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewRenderer.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdAbstractImageViewRenderer.h @@ -120,7 +120,7 @@ public: /** * Destructor. */ - virtual ~AbstractImageViewRenderer(){}; + ~AbstractImageViewRenderer() ITK_OVERRIDE{}; /** */ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdAbstractModelController.h b/Modules/Visualization/MonteverdiGui/include/mvdAbstractModelController.h index 0161558c649a2069538bbe203071c562cced8b20..acda4b35af2c5c7f7a58f41fbf0c337a61339e56 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdAbstractModelController.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdAbstractModelController.h @@ -88,7 +88,7 @@ public: public: /** Destructor */ - virtual ~AbstractModelController(); + ~AbstractModelController() ITK_OVERRIDE; /** */ void SetModel( AbstractModel* ); diff --git a/Modules/Visualization/MonteverdiGui/include/mvdApplicationLauncher.h b/Modules/Visualization/MonteverdiGui/include/mvdApplicationLauncher.h index 8d37a1f4cb0bffd394dbe8fe3047f90ac7929069..0b7314fca264e0a6b9500205139cc2335299cc90 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdApplicationLauncher.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdApplicationLauncher.h @@ -94,7 +94,7 @@ public: ApplicationLauncher( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~ApplicationLauncher(); + ~ApplicationLauncher() ITK_OVERRIDE; /** * \return A new instance of the automatically-generated widget of diff --git a/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBox.h b/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBox.h index 285b90e49e7a8843efde76dd80dc891db231ff2e..d9938fb2bdc1c73668dd3cd3708fcb7278d65b5e 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBox.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBox.h @@ -97,7 +97,7 @@ public: ApplicationsToolBox( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~ApplicationsToolBox(); + ~ApplicationsToolBox() ITK_OVERRIDE; /** Get TreeWidget */ // QTreeWidget * GetAlgorithmsTree(); diff --git a/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBoxController.h b/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBoxController.h index ddc85dcb2cd828f61dac6a58f32cc766ebc263f2..329d38982dbdedf9ad0394da20c5d0cd3003cf1c 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBoxController.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdApplicationsToolBoxController.h @@ -103,7 +103,7 @@ public: /** * \brief Destructor. */ - virtual ~ApplicationsToolBoxController(); + ~ApplicationsToolBoxController() ITK_OVERRIDE; /** Get the seleceted application Gui */ // QWidget * GetSelectedApplicationWidget(const QString& appName); @@ -122,15 +122,15 @@ signals: protected: // - // AbstractModelController overrides. + // AbstractModelController methods. - virtual void Connect( AbstractModel* ); + void Connect( AbstractModel* ) ITK_OVERRIDE; - virtual void ClearWidget(); + void ClearWidget() ITK_OVERRIDE; - virtual void virtual_ResetWidget( bool ); + void virtual_ResetWidget( bool ) ITK_OVERRIDE; - virtual void Disconnect( AbstractModel* ); + void Disconnect( AbstractModel* ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdColorBandDynamicsWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdColorBandDynamicsWidget.h index 3f061378b76340f2aa1c5be2270f2475b5e51245..3a86a1a59c649c0aeb83108de92cf86c4b9f17f6 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdColorBandDynamicsWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdColorBandDynamicsWidget.h @@ -140,7 +140,7 @@ public: ColorBandDynamicsWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** Destructor */ - virtual ~ColorBandDynamicsWidget(); + ~ColorBandDynamicsWidget() ITK_OVERRIDE; /** */ RgbwChannel GetChannelLabel() const; diff --git a/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsController.h b/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsController.h index 6c7fe1976d812f1fc00f3a804a86c110dfce1a95..7cad6250f3710ea8bf6f4c3f9b8cc70170f26ebd 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsController.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsController.h @@ -96,7 +96,7 @@ public: ColorDynamicsController( ColorDynamicsWidget* widget, QObject* p =NULL ); /** \brief Destructor. */ - virtual ~ColorDynamicsController(); + ~ColorDynamicsController() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]-----------------------------------------------**/ @@ -164,15 +164,15 @@ protected: private: // - // AbstractModelController overrides. + // AbstractModelController methods. - virtual void Connect( AbstractModel* ); + void Connect( AbstractModel* ) ITK_OVERRIDE; - virtual void ClearWidget(); + void ClearWidget() ITK_OVERRIDE; - virtual void virtual_ResetWidget( bool ); + void virtual_ResetWidget( bool ) ITK_OVERRIDE; - virtual void Disconnect( AbstractModel* ); + void Disconnect( AbstractModel* ) ITK_OVERRIDE; /** * \brief Reset intensity ranges to default values for given RGB diff --git a/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsWidget.h index 4a7e369b03383f54234043b72b66d337fcb9218b..3182a3ed839a5e3929f5c7679705d97fe368b3d0 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdColorDynamicsWidget.h @@ -120,7 +120,7 @@ public: ColorDynamicsWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** Destructor. */ - virtual ~ColorDynamicsWidget(); + ~ColorDynamicsWidget() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdColorSetupController.h b/Modules/Visualization/MonteverdiGui/include/mvdColorSetupController.h index 1e69365042dc46145c83d67dda54fc0e87037400..16033b236dc5adfa3e8a329050432374dc2fb554 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdColorSetupController.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdColorSetupController.h @@ -98,7 +98,7 @@ public: /** * \brief Destructor. */ - virtual ~ColorSetupController(); + ~ColorSetupController() ITK_OVERRIDE; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ @@ -164,15 +164,15 @@ private: void ResetAlpha(); // - // AbstractModelController overrides. + // AbstractModelController methods. - virtual void Connect( AbstractModel* ); + void Connect( AbstractModel* ) ITK_OVERRIDE; - virtual void ClearWidget(); + void ClearWidget() ITK_OVERRIDE; - virtual void virtual_ResetWidget( bool ); + void virtual_ResetWidget( bool ) ITK_OVERRIDE; - virtual void Disconnect( AbstractModel* ); + void Disconnect( AbstractModel* ) ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdColorSetupWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdColorSetupWidget.h index 0d97e51aac60fcb92834186512a55c2f6b45557e..25276a2257c4248216a28b1f1fd853e24487b442 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdColorSetupWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdColorSetupWidget.h @@ -87,7 +87,7 @@ public: ColorSetupWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~ColorSetupWidget(); + ~ColorSetupWidget() ITK_OVERRIDE; /** * \brief Set the component-name list. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdDoubleValidator.h b/Modules/Visualization/MonteverdiGui/include/mvdDoubleValidator.h index 059eff94ffa00a8fe10bee133ee00fdf1d42c50b..f223b3eb1ef704992969b48c35ff25191d43897c 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdDoubleValidator.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdDoubleValidator.h @@ -97,12 +97,12 @@ public: QObject *p = 0 ); /** \brief Destructor. */ - virtual ~DoubleValidator(); + ~DoubleValidator() ITK_OVERRIDE; // // QDoubleValidator overloads. - virtual void fixup( QString& input ) const; + void fixup( QString& input ) const ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdDropLineEdit.h b/Modules/Visualization/MonteverdiGui/include/mvdDropLineEdit.h index 93e0debc805886ba75ec5f24c70f2af914763df7..df6957042469754e957a53d7c87779269df83c8d 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdDropLineEdit.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdDropLineEdit.h @@ -98,7 +98,7 @@ public: DropLineEdit( const QString& contents, QWidget* p =0 ); /** \brief Destructor. */ - virtual ~DropLineEdit(); + ~DropLineEdit() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -118,9 +118,9 @@ signals: // Protected methods. protected: - virtual void dragEnterEvent( QDragEnterEvent* event ); - virtual void dragMoveEvent( QDragMoveEvent* event ); - virtual void dropEvent( QDropEvent* event ); + void dragEnterEvent( QDragEnterEvent* event ) ITK_OVERRIDE; + void dragMoveEvent( QDragMoveEvent* event ) ITK_OVERRIDE; + void dropEvent( QDropEvent* event ) ITK_OVERRIDE; /*-[ PRIVATE SECTION ]-----------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdFilenameDragAndDropEventFilter.h b/Modules/Visualization/MonteverdiGui/include/mvdFilenameDragAndDropEventFilter.h index eafa6c6a272260e58a149424b23ffc6cb4cca383..893b2a7bed7d737558e0975ce715d18645ba98ea 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdFilenameDragAndDropEventFilter.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdFilenameDragAndDropEventFilter.h @@ -91,7 +91,7 @@ public: FilenameDragAndDropEventFilter( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~FilenameDragAndDropEventFilter(); + ~FilenameDragAndDropEventFilter() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -123,22 +123,22 @@ protected: /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dragEnterEvent */ - virtual bool DragEnterEvent( QObject* object, QDragEnterEvent* event ); + bool DragEnterEvent( QObject* object, QDragEnterEvent* event ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dragLeaveEvent */ - virtual bool DragLeaveEvent( QObject* object, QDragLeaveEvent* event ); + bool DragLeaveEvent( QObject* object, QDragLeaveEvent* event ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dragMoveEvent */ - virtual bool DragMoveEvent( QObject* object, QDragMoveEvent* event ); + bool DragMoveEvent( QObject* object, QDragMoveEvent* event ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dropEvent */ - virtual bool DropEvent( QObject* object, QDropEvent* event ); + bool DropEvent( QObject* object, QDropEvent* event ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdHistogramController.h b/Modules/Visualization/MonteverdiGui/include/mvdHistogramController.h index a23adcc36ae5386c9a14302aa96d9ed2e83cb987..f16157b2d2b3786e2810c7520405d0d4f0b42485 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdHistogramController.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdHistogramController.h @@ -99,7 +99,7 @@ public: /** * \brief Destructor. */ - virtual ~HistogramController(); + ~HistogramController() ITK_OVERRIDE; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ @@ -130,15 +130,15 @@ private: void ResetWidget( RgbwChannel channel ); // - // AbstractModelController overrides. + // AbstractModelController methods. - virtual void Connect( AbstractModel* ); + void Connect( AbstractModel* ) ITK_OVERRIDE; - virtual void ClearWidget(); + void ClearWidget() ITK_OVERRIDE; - virtual void virtual_ResetWidget( bool = false ); + void virtual_ResetWidget( bool = false ) ITK_OVERRIDE; - virtual void Disconnect( AbstractModel* ); + void Disconnect( AbstractModel* ) ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdHistogramPlotPicker.h b/Modules/Visualization/MonteverdiGui/include/mvdHistogramPlotPicker.h index b600f6f489b2b3cf24f2be081658213a2501e96c..baf88090a364e608899a3dbb406e19969084055a 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdHistogramPlotPicker.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdHistogramPlotPicker.h @@ -121,7 +121,7 @@ public: QwtPlotCanvas* canvas ); /** \brief Destructor. */ - virtual ~HistogramPlotPicker(); + ~HistogramPlotPicker() ITK_OVERRIDE; /** */ @@ -132,9 +132,9 @@ public: void SetGrayscaleActivated( bool activated ); // - // QwtPlotPicker overrides. + // QwtPlotPicker methods. - void drawRubberBand( QPainter* painter ) const; + void drawRubberBand( QPainter* painter ) const ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -155,11 +155,11 @@ signals: protected: // - // QwtPlotPicker overrides. + // QwtPlotPicker methods. using QwtPlotPicker::trackerText; - virtual QwtText trackerText( const QwtDoublePoint & ) const; + QwtText trackerText( const QwtDoublePoint & ) const ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdHistogramWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdHistogramWidget.h index d41059107d219cb89459686dc7e5349f4cd04ae9..bd114881c37843116fd57df1eeb89b605c7f80c0 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdHistogramWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdHistogramWidget.h @@ -113,7 +113,7 @@ public: HistogramWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~HistogramWidget(); + ~HistogramWidget() ITK_OVERRIDE; /** * \brief diff --git a/Modules/Visualization/MonteverdiGui/include/mvdI18nApplication.h b/Modules/Visualization/MonteverdiGui/include/mvdI18nApplication.h index 39d1aa7c0b14371f644101d96615215660939686..162e97ca532f9eb4289f67a3a4edc062d77243f3 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdI18nApplication.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdI18nApplication.h @@ -103,7 +103,7 @@ public: I18nApplication( QApplication* qtApp ); /** \brief Destructor. */ - virtual ~I18nApplication(); + ~I18nApplication() ITK_OVERRIDE; // // APPLICATION SINGLETON. @@ -145,7 +145,7 @@ signals: // Protected methods. protected: - virtual void virtual_InitializeCore(); + void virtual_InitializeCore() ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdI18nMainWindow.h b/Modules/Visualization/MonteverdiGui/include/mvdI18nMainWindow.h index 8662d42e5990d0013796274847cf9eadfd3b9995..6d2d8c58b54a7b7789df37da5669df1d8163fb26 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdI18nMainWindow.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdI18nMainWindow.h @@ -101,7 +101,7 @@ public: // Public methods. public: /** \brief Destructor. */ - virtual ~I18nMainWindow(); + ~I18nMainWindow() ITK_OVERRIDE; /** */ @@ -190,9 +190,9 @@ protected: bool RestoreLayout( int version ); // - // QMainWindow overrides. + // QMainWindow methods. - void closeEvent( QCloseEvent* event ); + void closeEvent( QCloseEvent* event ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdImageViewManipulator.h b/Modules/Visualization/MonteverdiGui/include/mvdImageViewManipulator.h index f758fd2fc0eff24ab993413f34d5cb98fe07b809..a564f07d7ffb0bb04a96274270df26fbd52d5db4 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdImageViewManipulator.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdImageViewManipulator.h @@ -121,7 +121,7 @@ public: #endif // USE_VIEW_SETTINGS_SIDE_EFFECT /** \brief Destructor. */ - virtual ~ImageViewManipulator(); + ~ImageViewManipulator() ITK_OVERRIDE; // // AbstractImageViewManipulator overloads. @@ -130,64 +130,64 @@ public: // // Accessors. - virtual void SetViewportSize( int width, int height ); + void SetViewportSize( int width, int height ) ITK_OVERRIDE; - virtual SizeType GetViewportSize() const; + SizeType GetViewportSize() const ITK_OVERRIDE; - virtual void SetOrigin( const PointType& origin ); + void SetOrigin( const PointType& origin ) ITK_OVERRIDE; - virtual PointType GetOrigin() const; + PointType GetOrigin() const ITK_OVERRIDE; - virtual void SetSpacing( const SpacingType& spacing ); + void SetSpacing( const SpacingType& spacing ) ITK_OVERRIDE; - virtual SpacingType GetSpacing() const; + SpacingType GetSpacing() const ITK_OVERRIDE; - virtual void SetNativeSpacing( const SpacingType& ); + void SetNativeSpacing( const SpacingType& ) ITK_OVERRIDE; - virtual void SetWkt( const std::string& wkt ); + void SetWkt( const std::string& wkt ) ITK_OVERRIDE; - virtual void SetKeywordList( + void SetKeywordList( const DefaultImageType::ImageKeywordlistType& kwl - ); + ) ITK_OVERRIDE; - virtual PointType GetCenter() const; + PointType GetCenter() const ITK_OVERRIDE; - virtual ZoomType GetFixedZoomType() const; + ZoomType GetFixedZoomType() const ITK_OVERRIDE; // // Controls. - virtual + void SetupRenderingContext( - AbstractImageViewRenderer::RenderingContext * const ) const; + AbstractImageViewRenderer::RenderingContext * const ) const ITK_OVERRIDE; - virtual void ZoomIn(); + void ZoomIn() ITK_OVERRIDE; - virtual void ZoomOut(); + void ZoomOut() ITK_OVERRIDE; - virtual const PointType& Transform( PointType&, const QPoint& ) const; + const PointType& Transform( PointType&, const QPoint& ) const ITK_OVERRIDE; - virtual void ResetViewport(); + void ResetViewport() ITK_OVERRIDE; // // Events. - virtual void MouseMoveEvent( QMouseEvent* event ); + void MouseMoveEvent( QMouseEvent* event ) ITK_OVERRIDE; - virtual void MousePressEvent( QMouseEvent* event ); + void MousePressEvent( QMouseEvent* event ) ITK_OVERRIDE; - virtual void MouseReleaseEvent( QMouseEvent* event ); + void MouseReleaseEvent( QMouseEvent* event ) ITK_OVERRIDE; - virtual void MouseDoubleClickEvent( QMouseEvent * ); + void MouseDoubleClickEvent( QMouseEvent * ) ITK_OVERRIDE; - virtual void WheelEvent( QWheelEvent* event); + void WheelEvent( QWheelEvent* event) ITK_OVERRIDE; - virtual void ResizeEvent( QResizeEvent* event ); + void ResizeEvent( QResizeEvent* event ) ITK_OVERRIDE; - virtual void KeyPressEvent( QKeyEvent* event ); + void KeyPressEvent( QKeyEvent* event ) ITK_OVERRIDE; - virtual void KeyReleaseEvent( QKeyEvent* event ); + void KeyReleaseEvent( QKeyEvent* event ) ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]-----------------------------------------------**/ @@ -198,9 +198,9 @@ public slots: // // AbstractImageViewManipulator overloads. - virtual void CenterOn( const PointType& point ); + void CenterOn( const PointType& point ) ITK_OVERRIDE; - virtual void ZoomTo( double scale ); + void ZoomTo( double scale ) ITK_OVERRIDE; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdImageViewRenderer.h b/Modules/Visualization/MonteverdiGui/include/mvdImageViewRenderer.h index a9409967357e3fb092fcd00d60d11b4018667eb5..adfe94490d0347e9c81d433a894ff7f136171a99 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdImageViewRenderer.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdImageViewRenderer.h @@ -109,7 +109,7 @@ public: /** */ - virtual ~RenderingContext(); + ~RenderingContext() ITK_OVERRIDE; /** */ @@ -134,11 +134,11 @@ public: ImageViewRenderer( QObject* p = NULL ); /** Destructor */ - virtual ~ImageViewRenderer(); + ~ImageViewRenderer() ITK_OVERRIDE; /** */ - virtual bool CheckGLCapabilities( int * ); + bool CheckGLCapabilities( int * ) ITK_OVERRIDE; /** */ @@ -150,45 +150,45 @@ public: // // AbstractImageViewRenderer overloads. - virtual bool GetLayerDynamics( const StackedLayerModel::KeyType & key, + bool GetLayerDynamics( const StackedLayerModel::KeyType & key, ParametersType & params, - bool isGlobal ) const; + bool isGlobal ) const ITK_OVERRIDE; - virtual const AbstractLayerModel* GetReferenceModel() const; + const AbstractLayerModel* GetReferenceModel() const ITK_OVERRIDE; - virtual AbstractLayerModel * GetReferenceModel(); + AbstractLayerModel * GetReferenceModel() ITK_OVERRIDE; - virtual void GetLayerExtent( const StackedLayerModel::KeyType & key, + void GetLayerExtent( const StackedLayerModel::KeyType & key, PointType& origin, - PointType& extent ) const; + PointType& extent ) const ITK_OVERRIDE; - virtual void GetReferenceExtent( PointType& origin, - PointType& extent ) const; + void GetReferenceExtent( PointType& origin, + PointType& extent ) const ITK_OVERRIDE; - virtual void GetViewExtent( PointType& origin, - PointType& extent ) const; + void GetViewExtent( PointType& origin, + PointType& extent ) const ITK_OVERRIDE; - virtual - AbstractImageViewRenderer::RenderingContext* NewRenderingContext() const; + + AbstractImageViewRenderer::RenderingContext* NewRenderingContext() const ITK_OVERRIDE; - virtual void InitializeGL(); + void InitializeGL() ITK_OVERRIDE; - virtual void ResizeGL( int width, int height ); + void ResizeGL( int width, int height ) ITK_OVERRIDE; - virtual - void PaintGL( const AbstractImageViewRenderer::RenderingContext* context ); + + void PaintGL( const AbstractImageViewRenderer::RenderingContext* context ) ITK_OVERRIDE; - virtual void Pick( const PointType & view, - PixelInfo::Vector & pixels ) const; + void Pick( const PointType & view, + PixelInfo::Vector & pixels ) const ITK_OVERRIDE; - virtual void GetResolutions( PixelInfo::Vector & pixels ) const; + void GetResolutions( PixelInfo::Vector & pixels ) const ITK_OVERRIDE; - virtual bool TransformToView( PointType & point, + bool TransformToView( PointType & point, const StackedLayerModel::KeyType &, const IndexType &, - bool isPhysical ) const; + bool isPhysical ) const ITK_OVERRIDE; - virtual void SaveScreenshot( const QString & ) const; + void SaveScreenshot( const QString & ) const ITK_OVERRIDE; bool Reproject( PointType & center, @@ -196,15 +196,15 @@ public: const PointType & vcenter, const SpacingType & vspacing ) const; - virtual bool IsEffectsEnabled() const; + bool IsEffectsEnabled() const ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ // public slots public slots: - virtual void UpdatePixelInfo( const QPoint & screen, + void UpdatePixelInfo( const QPoint & screen, const PointType & view, - const PixelInfo::Vector & pixels ); + const PixelInfo::Vector & pixels ) ITK_OVERRIDE; /*-[ SIGNALS SECTION ]-----------------------------------------------------*/ @@ -269,24 +269,24 @@ private: // // AbstractImageViewRenderer overloads. - virtual void virtual_ClearScene( bool ); - virtual void virtual_UpdateScene(); - virtual void virtual_RefreshScene(); + void virtual_ClearScene( bool ) ITK_OVERRIDE; + void virtual_UpdateScene() ITK_OVERRIDE; + void virtual_RefreshScene() ITK_OVERRIDE; - virtual bool virtual_ZoomToRegion( const PointType & origin, + bool virtual_ZoomToRegion( const PointType & origin, const PointType & extent, PointType & center, - SpacingType & spacing ) const; + SpacingType & spacing ) const ITK_OVERRIDE; - virtual bool virtual_ZoomToExtent( PointType & center, SpacingType & spacing ) const; + bool virtual_ZoomToExtent( PointType & center, SpacingType & spacing ) const ITK_OVERRIDE; - virtual bool virtual_ZoomToLayer( const StackedLayerModel::KeyType & key, + bool virtual_ZoomToLayer( const StackedLayerModel::KeyType & key, PointType & center, - SpacingType & spacing ) const; + SpacingType & spacing ) const ITK_OVERRIDE; - virtual bool virtual_ZoomToFull( const StackedLayerModel::KeyType & key, + bool virtual_ZoomToFull( const StackedLayerModel::KeyType & key, PointType & center, - SpacingType & spacing ) const; + SpacingType & spacing ) const ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h index f47401c8e5c92927ecb8164f18d5ccac5ee9b463..add78b1cda507501b4a1eea6a4a5f33dfe63e2fb 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h @@ -115,7 +115,7 @@ public: Qt::WindowFlags f =0 ); /** \brief Destructor. */ - virtual ~ImageViewWidget(); + ~ImageViewWidget() ITK_OVERRIDE; /** */ @@ -253,21 +253,21 @@ protected: // // Qt overloads. - virtual void initializeGL(); - virtual void resizeGL( int widgth, int height ); - virtual void paintGL(); + void initializeGL() ITK_OVERRIDE; + void resizeGL( int widgth, int height ) ITK_OVERRIDE; + void paintGL() ITK_OVERRIDE; - virtual void mouseMoveEvent( QMouseEvent* event ); - virtual void mouseReleaseEvent( QMouseEvent* event ); - virtual void mousePressEvent( QMouseEvent* event ); - virtual void mouseDoubleClickEvent( QMouseEvent * event ); + void mouseMoveEvent( QMouseEvent* event ) ITK_OVERRIDE; + void mouseReleaseEvent( QMouseEvent* event ) ITK_OVERRIDE; + void mousePressEvent( QMouseEvent* event ) ITK_OVERRIDE; + void mouseDoubleClickEvent( QMouseEvent * event ) ITK_OVERRIDE; - virtual void wheelEvent( QWheelEvent* event); + void wheelEvent( QWheelEvent* event) ITK_OVERRIDE; - virtual void keyPressEvent( QKeyEvent* event ); - virtual void keyReleaseEvent( QKeyEvent* event ); + void keyPressEvent( QKeyEvent* event ) ITK_OVERRIDE; + void keyReleaseEvent( QKeyEvent* event ) ITK_OVERRIDE; - virtual void resizeEvent( QResizeEvent* event ); + void resizeEvent( QResizeEvent* event ) ITK_OVERRIDE; // diff --git a/Modules/Visualization/MonteverdiGui/include/mvdImportImagesDialog.h b/Modules/Visualization/MonteverdiGui/include/mvdImportImagesDialog.h index e9bd891c31f1a7208bf80561a9042f3047656798..e887e4ddbc4854992e56cbc57497b140d37faf6b 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdImportImagesDialog.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdImportImagesDialog.h @@ -103,7 +103,7 @@ public: Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~ImportImagesDialog(); + ~ImportImagesDialog() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdImportSubDatasetDialog.h b/Modules/Visualization/MonteverdiGui/include/mvdImportSubDatasetDialog.h index 467ccfcd32b1685f4bac028011d5345e5593278d..2c85630d19fcbac82d7a9a3747c41d7b5089b0ba 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdImportSubDatasetDialog.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdImportSubDatasetDialog.h @@ -102,7 +102,7 @@ public: Qt::WindowFlags flags = 0 ); /** \brief Destructor. */ - virtual ~ImportSubDatasetDialog(); + ~ImportSubDatasetDialog() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdKeymapDialog.h b/Modules/Visualization/MonteverdiGui/include/mvdKeymapDialog.h index 7fa9852db255e0162fef2042f9f38aa185e739a5..c6942bf48ebdda095f013994583132d118980189 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdKeymapDialog.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdKeymapDialog.h @@ -75,7 +75,7 @@ public: KeymapDialog( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** Destructor */ - virtual ~KeymapDialog(); + ~KeymapDialog() ITK_OVERRIDE; // // SIGNALS. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackController.h b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackController.h index 7d168eb9d180f619a6dffd2341d84c128ab239c6..24b0cf5a7791a36fc0ad1ab25e1fc7dd47b5df57 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackController.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackController.h @@ -91,7 +91,7 @@ public: LayerStackController( LayerStackWidget * widget, QObject * p =NULL ); /** \brief Destructor. */ - virtual ~LayerStackController(); + ~LayerStackController() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -132,19 +132,19 @@ private: /** */ - virtual void Connect( AbstractModel * ); + void Connect( AbstractModel * ) ITK_OVERRIDE; /** */ - virtual void Disconnect( AbstractModel * ); + void Disconnect( AbstractModel * ) ITK_OVERRIDE; /** */ - virtual void ClearWidget(); + void ClearWidget() ITK_OVERRIDE; /** */ - virtual void virtual_ResetWidget( bool ); + void virtual_ResetWidget( bool ) ITK_OVERRIDE; // diff --git a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h index 177831c65040b36d799d032a523883c6200df592..3ae6c2d558ae07ec0fb508e7bfa1aba33ce073ba 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackItemModel.h @@ -134,7 +134,7 @@ public: LayerStackItemModel( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~LayerStackItemModel(); + ~LayerStackItemModel() ITK_OVERRIDE; /** */ @@ -150,102 +150,102 @@ public: /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#columnCount */ - virtual int columnCount( const QModelIndex & p = QModelIndex() ) const; + int columnCount( const QModelIndex & p = QModelIndex() ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#data */ - virtual + QVariant - data( const QModelIndex & index, int role = Qt::DisplayRole ) const; + data( const QModelIndex & index, int role = Qt::DisplayRole ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#dropMimeData */ - virtual + bool dropMimeData( const QMimeData * data, Qt::DropAction action, int row, int column, - const QModelIndex & p ); + const QModelIndex & p ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#flags */ - virtual Qt::ItemFlags flags( const QModelIndex & index ) const; + Qt::ItemFlags flags( const QModelIndex & index ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#hasChildren */ - virtual bool hasChildren( const QModelIndex & p = QModelIndex() ) const; + bool hasChildren( const QModelIndex & p = QModelIndex() ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#headerData */ - virtual QVariant headerData( int section, + QVariant headerData( int section, Qt::Orientation orientation, - int role = Qt::DisplayRole ) const; + int role = Qt::DisplayRole ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#index */ - virtual + QModelIndex index( int row, int column, - const QModelIndex & p = QModelIndex() ) const; + const QModelIndex & p = QModelIndex() ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#insertRows */ - virtual + bool insertRows( int row, int count, - const QModelIndex & p = QModelIndex() ); + const QModelIndex & p = QModelIndex() ) ITK_OVERRIDE; /** * \see http://doc.qt.io/qt-4.8/qabstractitemmodel.html#mimeData */ - virtual QMimeData * mimeData( const QModelIndexList & indexes ) const; + QMimeData * mimeData( const QModelIndexList & indexes ) const ITK_OVERRIDE; /** * \see http://doc.qt.io/qt-4.8/qabstractitemmodel.html#mimeTypes */ - virtual QStringList mimeTypes() const; + QStringList mimeTypes() const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#parent */ - virtual QModelIndex parent( const QModelIndex & index ) const; + QModelIndex parent( const QModelIndex & index ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#removeRows */ - virtual + bool removeRows( int row, int count, - const QModelIndex & p = QModelIndex() ); + const QModelIndex & p = QModelIndex() ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#rowCount */ - virtual int rowCount( const QModelIndex & p = QModelIndex() ) const; + int rowCount( const QModelIndex & p = QModelIndex() ) const ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#setData */ - virtual + bool setData( const QModelIndex & index, const QVariant & value, - int role = Qt::EditRole ); + int role = Qt::EditRole ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#supportedDropActions */ - virtual Qt::DropActions supportedDropActions() const; + Qt::DropActions supportedDropActions() const ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h index d39cb5d54b70d317f0e694ee291ca3abe6a3ad90..ae0a08d1ecc2f1c519e2c8030b74564e07e2bb85 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdLayerStackWidget.h @@ -97,7 +97,7 @@ public: LayerStackWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~LayerStackWidget(); + ~LayerStackWidget() ITK_OVERRIDE; /** */ @@ -142,7 +142,7 @@ public: /** * \see http://qt-project.org/doc/qt-4.8/qobject.html#eventFilter */ - virtual bool eventFilter( QObject * watched, QEvent * event ); + bool eventFilter( QObject * watched, QEvent * event ) ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdMultiResolutionPyramidWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdMultiResolutionPyramidWidget.h index f5edba703dd07a02c1db5853fdb4ec33de2f2f20..9ff9591cd4a8dbe59c3bc1a19f46240ecea8206c 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdMultiResolutionPyramidWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdMultiResolutionPyramidWidget.h @@ -98,7 +98,7 @@ public: Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~MultiResolutionPyramidWidget(); + ~MultiResolutionPyramidWidget() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdOTBApplicationsModel.h b/Modules/Visualization/MonteverdiGui/include/mvdOTBApplicationsModel.h index 4fb919228ac36bfacdca62b43d1a43a0d79b6527..af2eb95b9f3aecee3ccde6fc3823deee9184111e 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdOTBApplicationsModel.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdOTBApplicationsModel.h @@ -97,7 +97,7 @@ public: OTBApplicationsModel( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~OTBApplicationsModel(); + ~OTBApplicationsModel() ITK_OVERRIDE; /** \brief Fill Widget Tree */ void FillTree(); @@ -131,9 +131,9 @@ signals: protected: // - // AbstractModel overrides. + // AbstractModel methods. - void virtual_BuildModel( void* context =NULL ); + void virtual_BuildModel( void* context =NULL ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdPixelDescriptionWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdPixelDescriptionWidget.h index 85e9c905c93eebeef044c3f25c64d1b41e85d88d..e7c7430e73b796fcec32524211b520400805444a 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdPixelDescriptionWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdPixelDescriptionWidget.h @@ -93,7 +93,7 @@ public: PixelDescriptionWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~PixelDescriptionWidget(); + ~PixelDescriptionWidget() ITK_OVERRIDE; /** Get TreeWidget */ QTreeWidget * GetDescriptionTree(); diff --git a/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h b/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h index b63b74b3268b663de97a19752b4784f4a451cd24..417ebf0b59751a83b791feeb038fec208e450ad2 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdQtWidgetView.h @@ -107,7 +107,7 @@ public: Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~QtWidgetView(); + ~QtWidgetView() ITK_OVERRIDE; /** \brief Gui Creation. */ void CreateGui(); @@ -160,7 +160,7 @@ protected: // // QWidget overloads. - virtual void closeEvent( QCloseEvent * event ); + void closeEvent( QCloseEvent * event ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewManipulator.h b/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewManipulator.h index 38087a4edb6b680df9e2e7b3d9a0ec03607ecf26..36feefeb3887d9799bca3abe6f7c8c378df19992 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewManipulator.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewManipulator.h @@ -96,36 +96,36 @@ public: #endif // USE_VIEW_SETTINGS_SIDE_EFFECT /** \brief Destructor. */ - virtual ~QuicklookViewManipulator(); + ~QuicklookViewManipulator() ITK_OVERRIDE; // // ImageViewManipulator overloads. - virtual ZoomType GetFixedZoomType() const; + ZoomType GetFixedZoomType() const ITK_OVERRIDE; - virtual + void SetupRenderingContext( - AbstractImageViewRenderer::RenderingContext * const ) const; + AbstractImageViewRenderer::RenderingContext * const ) const ITK_OVERRIDE; - virtual void MousePressEvent( QMouseEvent* event ); + void MousePressEvent( QMouseEvent* event ) ITK_OVERRIDE; - virtual void MouseMoveEvent( QMouseEvent* event ); + void MouseMoveEvent( QMouseEvent* event ) ITK_OVERRIDE; // virtual void MousePressEvent( QMouseEvent* event ); // virtual void MouseReleaseEvent( QMouseEvent* event ); - virtual void MouseDoubleClickEvent( QMouseEvent * ) {}; + void MouseDoubleClickEvent( QMouseEvent * ) ITK_OVERRIDE {}; - virtual void WheelEvent( QWheelEvent* event); + void WheelEvent( QWheelEvent* event) ITK_OVERRIDE; - virtual void ResizeEvent( QResizeEvent * event ); + void ResizeEvent( QResizeEvent * event ) ITK_OVERRIDE; - virtual void KeyPressEvent( QKeyEvent* event ); + void KeyPressEvent( QKeyEvent* event ) ITK_OVERRIDE; - virtual void KeyReleaseEvent( QKeyEvent* event ); + void KeyReleaseEvent( QKeyEvent* event ) ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]-----------------------------------------------**/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewRenderer.h b/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewRenderer.h index 7f54b515cd08fa2c96d6727d23cccfa5c2ef363e..b6338369602d4d0655fcd3588378caac8de48568 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewRenderer.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdQuicklookViewRenderer.h @@ -106,7 +106,7 @@ public: m_RoiOrigin.Fill( 0 ); } - virtual ~RenderingContext() {} + ~RenderingContext() ITK_OVERRIDE {} PointType m_RoiOrigin; PointType m_RoiExtent; @@ -119,13 +119,13 @@ public: QuicklookViewRenderer( QObject* p = NULL ); /** Destructor */ - virtual ~QuicklookViewRenderer(); + ~QuicklookViewRenderer() ITK_OVERRIDE; // // ImageViewRenderer overloads. - virtual - AbstractImageViewRenderer::RenderingContext* NewRenderingContext() const; + + AbstractImageViewRenderer::RenderingContext* NewRenderingContext() const ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -147,8 +147,8 @@ protected: // // ImageViewRenderer overloads. - virtual - void UpdateActors( const AbstractImageViewRenderer::RenderingContext* c ); + + void UpdateActors( const AbstractImageViewRenderer::RenderingContext* c ) ITK_OVERRIDE; // // Protected attributes. @@ -167,14 +167,14 @@ private: void SetWktAndKwl(); // - // ImageViewRenderer overrides. - virtual void virtual_SetProjection(); - virtual void virtual_UpdateProjection(); + // ImageViewRenderer methods. + void virtual_SetProjection() ITK_OVERRIDE; + void virtual_UpdateProjection() ITK_OVERRIDE; // // AbstractImageViewRenderer overloads. // TODO: Move virtual_*Scene() methods to protected section. - virtual void virtual_FinishScene(); + void virtual_FinishScene() ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdSearchableTreeWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdSearchableTreeWidget.h index 7066eb4d7efb6f66bd4048f36230d0b3d034cd07..3d3328305ea485830676840135adc57127b88ce1 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdSearchableTreeWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdSearchableTreeWidget.h @@ -100,7 +100,7 @@ public: SearchableTreeWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~SearchableTreeWidget(); + ~SearchableTreeWidget() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h index 09a22674763398571cbacab0427d17381348b815..640131d74f778634e382588aca138f7e91f9d1ef 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdShaderWidget.h @@ -99,7 +99,7 @@ public: Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~ShaderWidget(); + ~ShaderWidget() ITK_OVERRIDE; /** */ @@ -138,7 +138,7 @@ protected: private: /** */ - virtual void virtual_SetSettings( ImageSettings * ); + void virtual_SetSettings( ImageSettings * ) ITK_OVERRIDE; // // Private attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdStatusBarWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdStatusBarWidget.h index d2209fd88b80f10f53509809bfc10646181132c7..e287ee7adb10c8fdff557620851741fbe9d1c6ff 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdStatusBarWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdStatusBarWidget.h @@ -95,7 +95,7 @@ public: StatusBarWidget( QWidget* p =NULL, Qt::WindowFlags flags =0 ); /** \brief Destructor. */ - virtual ~StatusBarWidget(); + ~StatusBarWidget() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdTaskProgressDialog.h b/Modules/Visualization/MonteverdiGui/include/mvdTaskProgressDialog.h index 7030aba9d450c79afe9f374aba9563f5fe6a900e..0bb03796c4eafa80e2e22eb96d210d9c608714f5 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdTaskProgressDialog.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdTaskProgressDialog.h @@ -97,7 +97,7 @@ public: /** * \brief Destructor. */ - virtual ~TaskProgressDialog(); + ~TaskProgressDialog() ITK_OVERRIDE; /** */ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdTreeWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdTreeWidget.h index 322d58e6e02b0b5a7c7410a30bfa884e76789303..97fdc1ddb0e5d36dcb5306fb26ff3bc48b635fe1 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdTreeWidget.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdTreeWidget.h @@ -122,7 +122,7 @@ public: TreeWidget( QWidget* p =NULL ); /** \brief Destructor. */ - virtual ~TreeWidget(); + ~TreeWidget() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -149,17 +149,17 @@ protected: // // QTreeWidget overloads. - virtual QStringList mimeTypes() const; + QStringList mimeTypes() const ITK_OVERRIDE; - virtual QMimeData* mimeData( const QList< QTreeWidgetItem* > items ) const; + QMimeData* mimeData( const QList< QTreeWidgetItem* > items ) const ITK_OVERRIDE; - virtual void dragEnterEvent( QDragEnterEvent* event ); - virtual void dragMoveEvent( QDragMoveEvent* event ); - virtual void dragLeaveEvent( QDragLeaveEvent* event ); - virtual void dropEvent( QDropEvent* event ); + void dragEnterEvent( QDragEnterEvent* event ) ITK_OVERRIDE; + void dragMoveEvent( QDragMoveEvent* event ) ITK_OVERRIDE; + void dragLeaveEvent( QDragLeaveEvent* event ) ITK_OVERRIDE; + void dropEvent( QDropEvent* event ) ITK_OVERRIDE; - virtual Qt::DropActions supportedDropActions() const; - virtual void startDrag( Qt::DropActions supportedActions ); + Qt::DropActions supportedDropActions() const ITK_OVERRIDE; + void startDrag( Qt::DropActions supportedActions ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItem.h b/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItem.h index 51875e25829b8271a2176263d8104fb14077d9fc..4b70058ad04d45c789b7c0d2810cf3d87c44509d 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItem.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItem.h @@ -118,7 +118,7 @@ public: /** * \brief Destructor. */ - virtual ~TreeWidgetItem(); + ~TreeWidgetItem() ITK_OVERRIDE; /** */ @@ -143,7 +143,7 @@ public: /** * \see http://qt-project.org/doc/qt-4.8/qtreewidgetitem.html#clone */ - virtual QTreeWidgetItem* clone() const; + QTreeWidgetItem* clone() const ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ diff --git a/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItemDragAndDropEventFilter.h b/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItemDragAndDropEventFilter.h index 2b5fff90faf9470ee759e402d3d16a04aa4bd4aa..c3c798a763c81880d61804338da61a80fe1600ac 100644 --- a/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItemDragAndDropEventFilter.h +++ b/Modules/Visualization/MonteverdiGui/include/mvdTreeWidgetItemDragAndDropEventFilter.h @@ -91,7 +91,7 @@ public: TreeWidgetItemDragAndDropEventFilter( QObject* p =NULL ); /** \brief Destructor. */ - virtual ~TreeWidgetItemDragAndDropEventFilter(); + ~TreeWidgetItemDragAndDropEventFilter() ITK_OVERRIDE; /*-[ PUBLIC SLOTS SECTION ]------------------------------------------------*/ @@ -119,22 +119,22 @@ protected: /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dragEnterEvent */ - virtual bool DragEnterEvent( QObject* object, QDragEnterEvent* event ); + bool DragEnterEvent( QObject* object, QDragEnterEvent* event ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dragLeaveEvent */ - virtual bool DragLeaveEvent( QObject* object, QDragLeaveEvent* event ); + bool DragLeaveEvent( QObject* object, QDragLeaveEvent* event ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dragMoveEvent */ - virtual bool DragMoveEvent( QObject* object, QDragMoveEvent* event ); + bool DragMoveEvent( QObject* object, QDragMoveEvent* event ) ITK_OVERRIDE; /** * \see http://qt-project.org/doc/qt-4.8/qwidget.html#dropEvent */ - virtual bool DropEvent( QObject* object, QDropEvent* event ); + bool DropEvent( QObject* object, QDropEvent* event ) ITK_OVERRIDE; // // Protected attributes. diff --git a/Modules/Visualization/MonteverdiGui/src/mvdImportSubDatasetDialog.cxx b/Modules/Visualization/MonteverdiGui/src/mvdImportSubDatasetDialog.cxx index f8264ceddaec0fb230d7df2611756cd5ac37fd71..9f5d46f9f45c235c6c1719d2ff8c0d89ef839f7e 100644 --- a/Modules/Visualization/MonteverdiGui/src/mvdImportSubDatasetDialog.cxx +++ b/Modules/Visualization/MonteverdiGui/src/mvdImportSubDatasetDialog.cxx @@ -172,7 +172,15 @@ ImportSubDatasetDialog // Fill item-model. otb::GDALImageIO::Pointer gdalIO( otb::GDALImageIO::New() ); - std::string fname( QFile::encodeName( filename ).constData() ); + // Check for existing options other than sdataidx + int posOptions = filename.indexOf(QChar('?')); + int posSubDataIdx = filename.indexOf(QString("sdataidx")); + QString cleanFilename(filename); + if (posOptions > 0 && posSubDataIdx <= posOptions) + { + cleanFilename = filename.section('?',0,0); + } + std::string fname( QFile::encodeName( cleanFilename ).constData() ); if( gdalIO->CanReadFile( fname.c_str() ) ) { diff --git a/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.html b/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.html index c94f65ee1579a5d2879afa8dd8206bc6531c0ad6..c0734a7718f463784fda7e3c42efc9cd364ee7c6 100644 --- a/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.html +++ b/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.html @@ -28,8 +28,8 @@ <tr> <td>SHIFT+</td> <td>CTRL+</td> <td>P</td> <td>Quick <b>P</b>rint image-view (quick screenshot)</td> </tr> <tr> <td></td> <td>ALT+</td> <td>Mouse wheel</td> <td>Adjust effect brush size</td> </tr> <tr> <td>SHIFT+</td> <td>ALT+</td> <td>Mouse wheel</td> <td>Adjust effect parameter value</td> </tr> -<tr> <td></td> <td></td> <td>Mouse wheel</td> <td>Rotate layers</td> </tr> -<tr> <td></td> <td>CTRL+</td> <td>Mouse wheel</td> <td>Zoom in out</td> </tr> +<tr> <td></td> <td></td> <td>Mouse wheel</td> <td>Zoom in out</td> </tr> +<tr> <td></td> <td>CTRL+</td> <td>Mouse wheel</td> <td>Rotate layers</td> </tr> <tr> <td></td> <td>CTRL+ALT+</td> <td>Mouse wheel</td> <td>Shift dynamics range towards low/high</td> </tr> <tr> <td>SHIFT+</td> <td>CTRL+ALT+</td> <td>Mouse wheel</td> <td>Scale dynamics range around it's mean value</td> </tr> <tr> <td></td> <td>META+</td> <td>Mouse wheel</td> <td>Adjust translucency</td> </tr> diff --git a/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.ui b/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.ui index eb63275a8548efd885d4feaed489815666449da1..50a79e60a1d632f4068d6d1f34612371014de1f7 100644 --- a/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.ui +++ b/Modules/Visualization/MonteverdiGui/src/mvdKeymapDialog.ui @@ -227,7 +227,7 @@ p, li { white-space: pre-wrap; } <td> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mouse wheel</p></td> <td> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rotate layers</p></td></tr> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zoom in out</p></td></tr> <tr> <td></td> <td> @@ -235,7 +235,7 @@ p, li { white-space: pre-wrap; } <td> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mouse wheel</p></td> <td> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zoom in out</p></td></tr> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rotate layers</p></td></tr> <tr> <td></td> <td> diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h index b45e80a778205d022aba01fda27c0364f2a83da8..083f8150fbe5787df82f728ece2008235a9ea54d 100644 --- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h +++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplicationFactory.h @@ -88,7 +88,7 @@ protected: return ret; } - /** This method creates all the objects with the class override of + /** This method creates all the objects with the new class of * itkclass name, which are provide by this object */ std::list<LightObject::Pointer> diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx index 05b3b5b0cd6534f9485a6e34f43dba80cb3a554e..12f636c05122aa617336fcb242943a7ff43d73ac 100644 --- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx +++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperInputImageListParameter.cxx @@ -135,7 +135,7 @@ InputImageListParameter::SetNthFileName( const unsigned int id, const std::strin tmpInputImageParameter->SetFromFileName(filename); - if(tmpInputImageParameter->HasValue()) + if(!tmpInputImageParameter->HasValue()) { this->ClearValue(); return false; diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index afd5acf864888f8998771c492254b82512434a5c..9f4946140f5f7ff173446c045420dd4d452eee29 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,3 +1,67 @@ +OTB-v.5.8.0 - Changes since version 5.6.1 (November 8th, 2016) +-------------------------------------------------------------- + +* Request for Changes (http://wiki.orfeo-toolbox.org/index.php/Requests_for_Changes): + * Request for Changes-35: FineRegistration, performances increased + * Request for Changes-51: Move Monteverdi into OTB + * Request for Changes-52: Faster BandMathX + * Request for changes-53: Connect applications in memory + * Request for Changes-54: Get OTB ready for gdal derived subdatasets + * Request for Changes-55: Monteverdi: Mouse-wheel zoom without CTRL + * Request for Changes-56: Spot7 metadata support + * Request for Changes-57: Migrate Cookbook to RST + * Request for Changes-58: Sampling on multiple images + * Request for Changes-59: Build support for msvc 2015 with OTB xdk + * Request for Changes-60: Shorter Release Process + * Request for Changes-61: Use codespell to fix common misspellings in source code + * Request for Changes-62: Enhance text comparison in dashboard + * Request for Changes-63: Refactor threading mechanism in sampling filters + * Request for Changes-64: Missing RAM for persistent filters in application + * Request for Changes-65: Add Shark Random forests implementation + * Request for Changes-67: ClassificationMapRegularization option for isolated pixels only + * Request for Changes-68: New sampling strategies in classification framework + +* Bugfixes : + + * Monteverdi + * 0001298: Monteverdi crash with this image + * 0001305: SuperBuild falling at BOOST build step + * 0001283: GDAL overviews dialog pops under OTB-applications dock + * 0001284: GDAL overviews default min-size = 4096 px + * 0001282: Status-bar is not always disable at startup + * 0001278: Add force OpenGL 1.x compatibility option + * 0001267: Monteverdi: unclear "gdal overview" minimum size parameter + * 0001274: SuperBuild GLUT compilation problem + * 0001277: Missing icon(s) in color-dynamics widget + * 0001275: Monteverdi: Histogram view problem with binary image + * 0001300: monteverdi $input_filename crash with relative path + * 0001303: Memory issue in Monteverdi with images with subdatasets (HDF4) + * 0001299: Monteverdi shortcuts list needs some updates + * 0001291: Word "Échiquier" is not displayed properly in layer stack (effect column) + + * OTB-Packaging + * 0001290: Unable to run OTB applications from Mapla.app on Mac OS X + * 0001297: No translation files in Windows standalone package (branch release-5.8) + + * Orfeo Toolbox (OTB) + * 0001308: Typo in otbenv.profile and otbenv.cmd + * 0001286: Sentinel-1 sensor metadata are not retrieved properly if application is run inside the SAFE directory + * 0001287: Using S1 images in monteverdi is slow + * 0001268: Patch for spelling error in 5.6.1 + * 0001306: SuperBuild falling at TIFF build step (GLUT_Xmu_LIBRARY NOTFOUND) + + * OTB-applications + * 0001301: Mapla application does not provide translation files + +OTB-v.5.6.1 - Changes since version 5.6.0 (August 26th, 2016) +------------------------------------------------------------- + +* Bugfixes : + * 0001262: OTB 5.7 vector sampler bug + * 0001259: Patch for various spelling errors in 5.6.0 + * 0001258: Patch to only use OTB_GIT_STATUS_MESSAGE in message function if set. + * 0001266: Fix covariance computation with high float values + OTB-v.5.6.0 - Changes since version 5.4.0 (July 28th, 2016) ------------------------------------------------------------ diff --git a/SuperBuild/CMake/External_boost.cmake b/SuperBuild/CMake/External_boost.cmake index 41ea3d2a12c5e45d96adefa079990f79ce6da9cc..bd3251e574281eafd96dbd07a2f9112a2dc555fd 100644 --- a/SuperBuild/CMake/External_boost.cmake +++ b/SuperBuild/CMake/External_boost.cmake @@ -5,11 +5,8 @@ SETUP_SUPERBUILD(BOOST) set(_SB_BOOST_LIBRARYDIR ${SB_INSTALL_PREFIX}/lib) set(BOOST_SB_CONFIG) - -if(OTB_COMPILER_ARCH_IS_X64) - set(BOOST_SB_CONFIG architecture=x86 address-model=64) -else() - set(BOOST_SB_CONFIG architecture=x86) +if(OTB_TARGET_SYSTEM_ARCH_IS_X64) + set(BOOST_SB_CONFIG address-model=64) endif() set(BOOST_SB_CONFIG @@ -74,4 +71,4 @@ if(MSVC) else() set(_SB_Boost_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) endif() -SUPERBUILD_PATCH_SOURCE(BOOST) \ No newline at end of file +SUPERBUILD_PATCH_SOURCE(BOOST) diff --git a/SuperBuild/CMake/External_curl.cmake b/SuperBuild/CMake/External_curl.cmake index 188c1edd94624a5cf7800d30d8c0534fb2c9ea46..e1dde228fc91122e29e7fc4e3d4612e65b82351f 100644 --- a/SuperBuild/CMake/External_curl.cmake +++ b/SuperBuild/CMake/External_curl.cmake @@ -15,7 +15,7 @@ if(MSVC) return() endif() - if(OTB_COMPILER_ARCH_IS_X64) + if(OTB_TARGET_SYSTEM_ARCH_IS_X64) set(CURL_INSTALL_DIR_PREFIX "libcurl-vc-x64") else() set(CURL_INSTALL_DIR_PREFIX "libcurl-vc-x86") diff --git a/SuperBuild/CMake/External_gdal.cmake b/SuperBuild/CMake/External_gdal.cmake index fa3e759611e00db2396faaa66799a55f8933a83f..d8db8f1e3fc4fe7494921b5fa82b994e6151fc26 100644 --- a/SuperBuild/CMake/External_gdal.cmake +++ b/SuperBuild/CMake/External_gdal.cmake @@ -95,7 +95,7 @@ else(MSVC) ${CMAKE_SOURCE_DIR}/patches/GDAL/nmake_gdal_extra.opt.in ${CMAKE_BINARY_DIR}/nmake_gdal_extra.opt) - if(OTB_COMPILER_ARCH_IS_X64) + if(OTB_TARGET_SYSTEM_ARCH_IS_X64) file(APPEND "${CMAKE_BINARY_DIR}/nmake_gdal_extra.opt" "WIN64=YES") endif() diff --git a/SuperBuild/CMake/External_otb.cmake b/SuperBuild/CMake/External_otb.cmake index 1291b3302c8dd8f0fec816ab8512a3eb7f9ba227..860e33a73ad65d42453b5704288980631a7d94ce 100644 --- a/SuperBuild/CMake/External_otb.cmake +++ b/SuperBuild/CMake/External_otb.cmake @@ -4,17 +4,6 @@ SETUP_SUPERBUILD(OTB) set(OTB_SB_SRC ${CMAKE_SOURCE_DIR}/..) -if(ENABLE_OTB_LARGE_INPUTS) - set(OTB_SB_LARGEINPUT_CONFIG - -DOTB_DATA_USE_LARGEINPUT:BOOL=ON - -DOTB_DATA_LARGEINPUT_ROOT:PATH=${OTB_DATA_LARGEINPUT_ROOT} - ) -else() - set(OTB_SB_LARGEINPUT_CONFIG - -DOTB_DATA_USE_LARGEINPUT:BOOL=OFF - ) -endif() - ADDTO_DEPENDENCIES_IF_NOT_SYSTEM(OTB GDAL OSSIM ITK TINYXML BOOST) ##get_property(OTB_DEPENDENCIES GLOBAL PROPERTY GLOBAL_OTB_DEPENDENCIES) @@ -160,16 +149,18 @@ set(OTB_SB_COMPILATION_FLAGS -DCMAKE_STATIC_LINKER_FLAGS:STRING=${CMAKE_STATIC_LINKER_FLAGS} ) - add_custom_command(OUTPUT otb_depends_done.txt - COMMAND cmake -E touch otb_depends_done.txt - DEPENDS ${OTB_DEPENDENCIES} - ) +add_custom_command(OUTPUT otb_depends_done.txt + COMMAND cmake -E touch otb_depends_done.txt + DEPENDS ${OTB_DEPENDENCIES} + ) + add_custom_target(OTB_DEPENDS -DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/otb_depends_done.txt -WORKING_DIRECTORY ${CMAKE_BINARY_DIR} -COMMENT "Built all otb dependencies: ${OTB_DEPENDENCIES}" -VERBATIM -) + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/otb_depends_done.txt + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMENT "Built all otb dependencies: ${OTB_DEPENDENCIES}" + VERBATIM + ) + ExternalProject_Add(OTB DEPENDS ${OTB_DEPENDENCIES} @@ -185,6 +176,8 @@ ExternalProject_Add(OTB -DBUILD_TESTING:BOOL=${BUILD_TESTING} -DBUILD_EXAMPLES:BOOL=${BUILD_EXAMPLES} -DOTB_DATA_ROOT:STRING=${OTB_DATA_ROOT} + -DOTB_DATA_USE_LARGEINPUT:BOOL=${OTB_DATA_USE_LARGEINPUT} + -DOTB_DATA_LARGEINPUT_ROOT:PATH=${OTB_DATA_LARGEINPUT_ROOT} -DOTB_USE_6S:BOOL=${OTB_USE_6S} -DOTB_USE_CURL:BOOL=${OTB_USE_CURL} -DOTB_USE_LIBKML:BOOL=${OTB_USE_LIBKML} @@ -205,15 +198,21 @@ ExternalProject_Add(OTB -DOTB_WRAP_PYTHON:BOOL=${OTB_WRAP_PYTHON} -DOTB_WRAP_JAVA:BOOL=${OTB_WRAP_JAVA} -DGENERATE_PACKAGE:BOOL=OFF - -DGENERATE_XDK:BOOL=OFF - ${OTB_SB_LARGEINPUT_CONFIG} + -DGENERATE_XDK:BOOL=OFF ${OTB_ADDITIONAL_CACHE} CMAKE_ARGS ${OTB_SB_CONFIG} CMAKE_COMMAND ${SB_CMAKE_COMMAND} ) -ExternalProject_Add_Step(OTB install_copyright - COMMAND ${CMAKE_COMMAND} -E copy_directory ${OTB_SB_SRC}/Copyright ${CMAKE_INSTALL_PREFIX}/share/copyright - COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/Copyright ${CMAKE_INSTALL_PREFIX}/share/copyright - DEPENDEES install) +ExternalProject_Add_Step( + OTB install_copyright + COMMAND ${CMAKE_COMMAND} + -E copy_directory + ${OTB_SB_SRC}/Copyright ${CMAKE_INSTALL_PREFIX}/share/copyright + + COMMAND ${CMAKE_COMMAND} + -E copy_directory + ${CMAKE_SOURCE_DIR}/Copyright ${CMAKE_INSTALL_PREFIX}/share/copyright + DEPENDEES install + ) diff --git a/SuperBuild/CMake/External_tiff.cmake b/SuperBuild/CMake/External_tiff.cmake index db9f2caad3f68958d14ccf4aa0007c8d6b801968..72d4744395a9ea4bfe204c46e795d6bea50be92e 100644 --- a/SuperBuild/CMake/External_tiff.cmake +++ b/SuperBuild/CMake/External_tiff.cmake @@ -64,12 +64,15 @@ else() -Dlzma:BOOL=FALSE -Djbig:BOOL=FALSE -Dzlib:BOOL=TRUE + -DWITH_OPENGL:BOOL=FALSE -Dpixarlog:BOOL=TRUE ${TIFF_SB_CONFIG} CMAKE_COMMAND ${SB_CMAKE_COMMAND} ) endif() +SUPERBUILD_PATCH_SOURCE(TIFF) + set(_SB_TIFF_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include) if(WIN32) set(_SB_TIFF_LIBRARY ${SB_INSTALL_PREFIX}/lib/libtiff_i.lib) diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index 3f2daa73ffa5033bb70eafece88603d34d813ad6..b5a660fa5dbc2e6ee38c291c5ed56a912a939428 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -14,6 +14,8 @@ include(ExternalProject) include(OTBCheckCpp11Keywords) +include(OTBCheckTargetSystemArch) + option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ON) set(OTB_ADDITIONAL_CACHE "" CACHE STRING "Additional cmake option for OTB -DVAR:TYPE=VALUE ...") @@ -25,40 +27,6 @@ if(APPLE) set(CMAKE_MACOSX_RPATH TRUE) endif() -set(OTB_COMPILER_ARCH_IS_X64 TRUE) - -if(MSVC) - execute_process( - COMMAND ${CMAKE_C_COMPILER} - ERROR_VARIABLE ev - OUTPUT_VARIABLE ov - OUTPUT_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - - set(OTB_COMPILER_ARCH_IS_X64 TRUE) - set(OTB_COMPILER_ARCH x64) - if("${ev}" MATCHES "x86") - set(OTB_COMPILER_ARCH x86) - set(OTB_COMPILER_ARCH_IS_X64 FALSE) - endif() - -endif() #MSVC - -if(UNIX) - execute_process( - COMMAND uname -m - ERROR_VARIABLE ev - OUTPUT_VARIABLE ov - OUTPUT_STRIP_TRAILING_WHITESPACE) - - set(OTB_COMPILER_ARCH ${ov}) - set(OTB_COMPILER_ARCH_IS_X64 FALSE) - if("${ov}" STREQUAL "x86_64") - set(OTB_COMPILER_ARCH_IS_X64 TRUE) - endif() -endif() - # use, i.e. don't skip the full RPATH for the build tree set(CMAKE_SKIP_BUILD_RPATH FALSE) # when building, don't use the install RPATH already @@ -87,7 +55,17 @@ set (DOWNLOAD_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/Downloads" mark_as_advanced(DOWNLOAD_LOCATION) # General options -option(ENABLE_OTB_LARGE_INPUTS " Use the OTB-LargeInputs for testing" OFF) +option(OTB_DATA_USE_LARGEINPUT "Use Large inputs images test." OFF) +mark_as_advanced(OTB_DATA_USE_LARGEINPUT) +if(OTB_DATA_USE_LARGEINPUT) + find_path(OTB_DATA_LARGEINPUT_ROOT + NAMES OTBData.readme + HINTS $ENV{OTB_DATA_LARGEINPUT_ROOT} + ) + mark_as_advanced(OTB_DATA_LARGEINPUT_ROOT) +endif() + + option(BUILD_EXAMPLES " Build the OTB Examples directory" OFF) option(USE_DEFAULT_INSTALL_PREFIX "Install superbuild to default prefix /usr/local for unix" OFF) @@ -288,9 +266,6 @@ option(OTB_USE_QWT "Enable module QWT in OTB" OFF) # set OTB_DATA_ROOT to run test find_path(OTB_DATA_ROOT README-OTB-Data PATHS $ENV{OTB_DATA_ROOT} ${OTB-SuperBuild_SOURCE_DIR}/../../OTB-Data) -if(ENABLE_OTB_LARGE_INPUTS) - find_path(OTB_DATA_LARGEINPUT_ROOT OTBData.readme $ENV{OTB_DATA_LARGEINPUT_ROOT}) -endif() # SWIG Wrapping option(OTB_WRAP_PYTHON "Enable python wrappers for OTB applications (requires SWIG)" OFF) @@ -343,6 +318,9 @@ if(FROM_SUPERBUILD_LIST) endforeach() endif() +message(STATUS "OTB_TARGET_SYSTEM_ARCH=${OTB_TARGET_SYSTEM_ARCH}") +message(STATUS "OTB_TARGET_SYSTEM_ARCH_IS_X64=${OTB_TARGET_SYSTEM_ARCH_IS_X64}") + message(STATUS "SuperBuild will be installed to ${CMAKE_INSTALL_PREFIX}") message(STATUS "To install to a different directory, re-run cmake -DCMAKE_INSTALL_PREFIX=/your/preferred/path") diff --git a/SuperBuild/Packaging/CMakeLists.txt b/SuperBuild/Packaging/CMakeLists.txt index c9c18eade263ebdf171296e3f1e74eb823fbec16..391bc3e2c3136245086b7bcf710b1142bbb00a45 100644 --- a/SuperBuild/Packaging/CMakeLists.txt +++ b/SuperBuild/Packaging/CMakeLists.txt @@ -4,25 +4,22 @@ # stop generation of msvc packages for windows. 04-apr-2016. point OTB. ##### check if standalone project ###### +set(PACKAGE_OTB_SRC_DIR) +set(OUT_OF_SOURCE_BUILD FALSE) if(NOT PROJECT_NAME) cmake_minimum_required(VERSION 2.6) include(CMakeParseArguments) project(OTBPackaging) - option(GENERATE_PACKAGE "Generate OTB package" OFF) + option(GENERATE_PACKAGE "Generate OTB package" ON) option(GENERATE_XDK "Generate XDK for OTB development" OFF) -endif() - -if(PROJECT_NAME STREQUAL "OTB-SuperBuild") - if(NOT PACKAGE_OTB_SRC_DIR) - get_filename_component(PACKAGE_OTB_SRC_DIR ${OTB-SuperBuild_SOURCE_DIR} PATH) - endif() -endif() - -set(OUT_OF_SOURCE_BUILD FALSE) -if(PROJECT_NAME STREQUAL "OTBPackaging") + set(OUT_OF_SOURCE_BUILD TRUE) - set(GENERATE_PACKAGE ON) + + if(BUILD_TESTING) + include(CTest) + endif() + if(NOT PACKAGE_OTB_SRC_DIR) get_filename_component(PACKAGE_OTB_SRC_DIR ${OTBPackaging_SOURCE_DIR} PATH) get_filename_component(PACKAGE_OTB_SRC_DIR ${PACKAGE_OTB_SRC_DIR} PATH) @@ -31,8 +28,33 @@ if(PROJECT_NAME STREQUAL "OTBPackaging") option(OTB_WRAP_PYTHON "enable python wrapping" ON) if(OTB_WRAP_PYTHON AND NOT PYTHON_EXECUTABLE) find_package ( PythonInterp REQUIRED ) + mark_as_advanced(PYTHON_INCLUDE_DIR) + mark_as_advanced(PYTHON_LIBRARY) + endif() + + if(WIN32 AND NOT MSVC) + set(OTB_BINARY_DIR "" CACHE PATH "OTB binary directory") + set(OTB_INSTALL_DIR "" CACHE PATH "OTB install directory") + else() + set(SUPERBUILD_BINARY_DIR "" CACHE PATH "path to superbuild binary directory") + set(SUPERBUILD_INSTALL_DIR "" CACHE PATH "path to superbuild install directory") + set(DOWNLOAD_LOCATION "" CACHE PATH "path to superbuild download archives") endif() -endif() #if(PROJECT_NAME STREQUAL .. + +else() #if(NOT PROJECT_NAME) + + # SUPERBUILD_BINARY_DIR is only set in Packaging/CMakeLists.txt and not available + # in the parent scope like others. So we need to set it as CMAKE_BINARY_DIR + # if doing packages from source tree. + set( SUPERBUILD_BINARY_DIR ${CMAKE_BINARY_DIR} ) + set( SUPERBUILD_INSTALL_DIR ${SB_INSTALL_PREFIX} ) + set( OTB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX} ) + + if(NOT PACKAGE_OTB_SRC_DIR) + get_filename_component(PACKAGE_OTB_SRC_DIR ${OTB-SuperBuild_SOURCE_DIR} PATH) + endif() + +endif() if(NOT GENERATE_PACKAGE AND NOT GENERATE_XDK) #well. we don't have any businees here. Let's move on.. @@ -51,88 +73,65 @@ endif() set(SUPERBUILD_SOURCE_DIR ${PACKAGE_OTB_SRC_DIR}/SuperBuild) +include(${SUPERBUILD_SOURCE_DIR}/CMake/SuperBuild_Macro.cmake) +include(${PACKAGE_OTB_SRC_DIR}/CMake/OTBCheckTargetSystemArch.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/PMacros.cmake) -if(OUT_OF_SOURCE_BUILD) - include(${SUPERBUILD_SOURCE_DIR}/CMake/SuperBuild_Macro.cmake) - if(BUILD_TESTING) - include(CTest) - endif() - if(WIN32 AND NOT MSVC) - set(OTB_BINARY_DIR "" CACHE PATH "OTB binary directory") - set(OTB_INSTALL_DIR "" CACHE PATH "OTB install directory") - else() - set(SUPERBUILD_BINARY_DIR "" CACHE PATH "path to superbuild binary directory") - set(SUPERBUILD_INSTALL_DIR "" CACHE PATH "path to superbuild install directory") - set(DOWNLOAD_LOCATION "" CACHE PATH "path to superbuild binary directory") - endif() -else(OUT_OF_SOURCE_BUILD) - # SUPERBUILD_BINARY_DIR is only set in Packaging/CMakeLists.txt and not available - # in the parent scope like others. So we need to set it as CMAKE_BINARY_DIR - # if doing packages from source tree. - set( SUPERBUILD_BINARY_DIR ${CMAKE_BINARY_DIR} ) - set( SUPERBUILD_INSTALL_DIR ${SB_INSTALL_PREFIX} ) - set( OTB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) - #if(WIN32 AND NOT MSVC) - #get_filename_component(OTB_INSTALL_DIR ${OTB_MODULES_DIR} PATH) - #get_filename_component(OTB_INSTALL_DIR ${OTB_INSTALL_DIR} PATH) - #get_filename_component(OTB_INSTALL_DIR ${OTB_INSTALL_DIR} PATH) - #get_filename_component(OTB_INSTALL_DIR ${OTB_INSTALL_DIR} PATH) - #endif() -endif(OUT_OF_SOURCE_BUILD) - if(WIN32) set(ZIP_EXE_NAMES 7z 7za) find_program(ZIP_EXECUTABLE NAMES ${ZIP_EXE_NAMES}) - if(NOT ZIP_EXECUTABLE) + if(NOT ZIP_EXECUTABLE) message(FATAL_ERROR "Cannot find 7z executable. searched names ${ZIP_EXE_NAMES}. Please add it to your path") endif() endif() if(WIN32 AND NOT MSVC) - foreach(req - PACKAGE_OTB_SRC_DIR - OTB_BINARY_DIR - OTB_INSTALL_DIR - ) - if(NOT DEFINED ${req} OR "${${req}}" STREQUAL "") - message(FATAL_ERROR "you must set ${req}") - endif() - set(vars "${vars} ${req}=[${${req}}]\n") - endforeach(req) -else() #Unix like - foreach(req - SUPERBUILD_BINARY_DIR - SUPERBUILD_INSTALL_DIR - SUPERBUILD_SOURCE_DIR - PACKAGE_OTB_SRC_DIR - ) - if(NOT DEFINED ${req} OR "${${req}}" STREQUAL "") - message(FATAL_ERROR "you must set ${req}") - endif() - set(vars "${vars} ${req}=[${${req}}]\n") - endforeach(req) + set(required_vars + PACKAGE_OTB_SRC_DIR + OTB_BINARY_DIR + OTB_INSTALL_DIR + ) endif() +foreach(req + ${required_vars} + SUPERBUILD_BINARY_DIR + SUPERBUILD_INSTALL_DIR + SUPERBUILD_SOURCE_DIR + PACKAGE_OTB_SRC_DIR + OTB_TARGET_SYSTEM_ARCH + OTB_TARGET_SYSTEM_ARCH_IS_X64 + ) + if(NOT DEFINED ${req} OR "${${req}}" STREQUAL "") + message(FATAL_ERROR "you must set ${req}") + endif() + set(vars "${vars} ${req}=[${${req}}]\n") +endforeach(req) + +message("\n${vars}\n") + set(EXTRA_CACHE_CONFIG) -if(WIN32 AND NOT MSVC) - set(CMAKE_INSTALL_PREFIX "${OTB_INSTALL_DIR}") -else() - set(CMAKE_INSTALL_PREFIX "${SUPERBUILD_INSTALL_DIR}") -endif() +set(CMAKE_INSTALL_PREFIX "${SUPERBUILD_INSTALL_DIR}") -set(PACKAGE_NAME OTB) set(PACKAGE_LONG_NAME OrfeoToolBox) -if(WIN32 AND NOT MSVC) - if(MXE_TARGET_DIR MATCHES "i686") - set(MXE_ARCH "i686") - set(PACKAGE_ARCH "32") - elseif(MXE_TARGET_DIR MATCHES "x86_64") - set(MXE_ARCH "x86_64") - set(PACKAGE_ARCH "64") #helper for ARCHIVE_NAME - endif() +# Make up part of output package file +set(PACKAGE_NAME OTB) +if(APPLE) + set(PACKAGE_PLATFORM_NAME "Darwin") +elseif(WIN32) + set(PACKAGE_PLATFORM_NAME "win") +elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(PACKAGE_PLATFORM_NAME "Linux") +endif() + +set(PACKAGE_ARCH "32") +if(OTB_TARGET_SYSTEM_ARCH_IS_X64) +set(PACKAGE_ARCH "64") +endif() + +if(MINGW) get_filename_component(MXE_MXEROOT ${MXE_TARGET_DIR} PATH) get_filename_component(MXE_MXEROOT ${MXE_MXEROOT} PATH) set(EXTRA_CACHE_CONFIG @@ -141,22 +140,11 @@ if(WIN32 AND NOT MSVC) set(MXE_ARCH \"${MXE_ARCH}\") set(MXE_MXEROOT \"${MXE_MXEROOT}\")" ) -else() #(WIN32 AND NOT MSVC) - set(PACKAGE_ARCH 32) - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(PACKAGE_ARCH 64) - endif() -endif() - -if(APPLE) - set(PACKAGE_PLATFORM_NAME "Darwin") -elseif(WIN32) - set(PACKAGE_PLATFORM_NAME "win") -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - set(PACKAGE_PLATFORM_NAME "Linux") + set(CMAKE_INSTALL_PREFIX "${OTB_INSTALL_DIR}") endif() -#get itk version from External_itk.cmake if not on mingw +# get itk version from External_itk.cmake if not on mingw +# because mxe has different version if(NOT MINGW) get_version( INPUT_FILE "${SUPERBUILD_SOURCE_DIR}/CMake/External_itk.cmake" diff --git a/SuperBuild/Packaging/Files/linux_pkgsetup.in b/SuperBuild/Packaging/Files/linux_pkgsetup.in index ce7db8f88b348a5af71cb83599641550dc69190b..4c96ff7f2c1d0ef1faaa0dd71b7b345313f983b6 100644 --- a/SuperBuild/Packaging/Files/linux_pkgsetup.in +++ b/SuperBuild/Packaging/Files/linux_pkgsetup.in @@ -33,11 +33,8 @@ else cat > "$OUT_DIR/monteverdi.sh" << EOF #!/bin/sh -unset LD_LIBRARY_PATH - -. $OUT_DIR/bin/env_exports -export OTB_APPLICATION_PATH=$OUT_DIR/lib/otb/applications +. $OUT_DIR/otbenv.profile $OUT_DIR/bin/monteverdi "\$@" EOF @@ -46,48 +43,70 @@ chmod +x "$OUT_DIR/monteverdi.sh" cat > "$OUT_DIR/mapla.sh" << EOF #!/bin/sh -unset LD_LIBRARY_PATH -. $OUT_DIR/bin/env_exports - -export OTB_APPLICATION_PATH=$OUT_DIR/lib/otb/applications +. $OUT_DIR/otbenv.profile $OUT_DIR/bin/mapla "\$@" EOF chmod +x "$OUT_DIR/mapla.sh" -cat > "$OUT_DIR/bin/env_exports" << EOF +cat > "$OUT_DIR/otbenv.profile" << EOF #!/bin/sh -export LC_NUMERIC=C +# The below environment variables only affect current shell +# So if you run again from a terminal. you need to run the script again +# see how this is sourced in monteverdi.sh and mapla.sh -if [ -z "\$OTB_USE_SYSTEM_GTK" ] || [ "\$OTB_USE_SYSTEM_GTK" == "0" ]; then +# unset any existing LD_LIBRARY_PATH +unset LD_LIBRARY_PATH + +# if OTB_USE_SYSTEM_GTK is not set or is set to zero, +# we must include <OUT_DIR>/lib/gtk because glib files are +# installed there. + +# OTB_USE_SYSTEM_GTK is not set by default +if [ -z "\$OTB_USE_SYSTEM_GTK" ] || [ "\$OTB_USE_SYSTEM_GTK" = "0" ]; then LD_LIBRARY_PATH=$OUT_DIR/lib/gtk + export LD_LIBRARY_PATH fi -GDAL_DATA=$OUT_DIR/share/gdal -GEOTIFF_CSV=$OUT_DIR/share/espg_csv +# check and set OTB_APPLICATION_PATH +if [ -z "\$OTB_APPLICATION_PATH" ] || [ "\$OTB_APPLICATION_PATH" = "" ]; then + OTB_APPLICATION_PATH=$OUT_DIR/lib/otb/applications +else + OTB_APPLICATION_PATH=\$(readlink -f "\$OTB_APPLICATION_PATH") + if ! [ "\$OTB_APPLICATION_PATH" = "$OUT_DIR/lib/otb/applications" ]; then + OTB_APPLICATION_PATH=$OUT_DIR/lib/otb/applications:\$OTB_APPLICATION_PATH + fi +fi -export GDAL_DATA -export GEOTIFF_CSV -export LD_LIBRARY_PATH -EOF +# Add bin direcotory to system PATH +PATH=$OUT_DIR/bin:\$PATH -cat > "$OUT_DIR/otbenv.profile" << EOF -#!/bin/sh -PATH=\$PATH:$OUT_DIR/bin +# export PYTHONPATH to import otbApplication.py PYTHONPATH=$OUT_DIR/lib/python:\$PYTHONPATH + +# set numeric locale to C +LC_NUMERIC=C + +# set GDAL_DATA variable used by otb application GDAL_DATA=$OUT_DIR/share/gdal -GEOTIFF_CSV=$OUT_DIR/share/espg_csv -export LC_NUMERIC=C -export PATH +# set GEOTIFF_CSV variable used by otb application +GEOTIFF_CSV=$OUT_DIR/share/epsg_csv + +# export variables +export LC_NUMERIC export GDAL_DATA export GEOTIFF_CSV +export OTB_APPLICATION_PATH +export PATH export PYTHONPATH + EOF + chmod +x "$OUT_DIR/otbenv.profile" fi @@ -97,9 +116,15 @@ fi cat > "$OUT_DIR/bin/qt.conf" << EOF - +[Paths] +Translations=$OUT_DIR/lib/qt4/translations +Plugins=$OUT_DIR/lib/qt4/plugins EOF +WITH_PYTHON=@WITH_PYTHON@ + +if [ "$WITH_PYTHON" = true ] ; then + if [ ! -f "$OTB_PYTHON_EXE" ] ; then OTB_PYTHON_EXE=$(which python) fi @@ -110,15 +135,23 @@ python_major_version=$($OTB_PYTHON_EXE -c "import sys;print(sys.version_info[0]) python_minor_version=$($OTB_PYTHON_EXE -c "import sys;print(sys.version_info[1])") python_patch_version=$($OTB_PYTHON_EXE -c "import sys;print(sys.version_info[2])") python_version="$python_major_version.$python_minor_version.$python_patch_version" -printf %s\\n "Python executable found in : $OTB_PYTHON_EXE ($python_version)" -if [ "$python_major_version" -gt 2 ]; then +python_check_failed() { + printf %s\\n "*****Error occured during installation******" printf %s\\n "OTB python bindings requires python2.6 or python2.7 but current detected python version is $python_version" printf %s\\n "If you have python2.6 or Python2.7 installed in your system " printf %s\\n "You should set OTB_PYTHON_EXE and re-run this installation script." printf %s\\n "eg: OTB_PYTHON_EXE=/path/to/python2.7 ./OTB-X.Y-Linux64.run" - exit 0; + exit 1; +} +if [ "$python_major_version" -gt 2 ]; then +python_check_failed +fi + +if [ "$python_minor_version" -lt 5 ]; then +python_check_failed fi + python_INSTSONAME=$($OTB_PYTHON_EXE -c "import sys; from distutils import sysconfig; print (sysconfig.get_config_var('INSTSONAME'));") python_lib_dirs="/usr/lib /usr/lib64 /usr/lib/x86_64-linux-gnu" @@ -134,14 +167,17 @@ do done if [ "$found_python_lib" -eq "1" ]; then - printf %s\\n "Found python library: $python_lib_file_path " + printf %s\\n "OTB python bindings will be configured for $OTB_PYTHON_EXE ( version: $python_version )" + printf %s\\n "Found python library: $python_lib_file_path" ln -sf "$python_lib_file_path" "$OUT_DIR/lib/$python_INSTALLED_SONAME" - printf %s\\n "To use OTB python binding you need to export below environment variables:" - printf %s\\n "'export LD_LIBRARY_PATH=$OUT_DIR/lib' and" + "$PATCH_ELF_EXE" "--set-rpath" "$OUT_DIR/lib" "$OUT_DIR/lib/python/_otbApplication.so" + printf %s\\n "To use OTB python bindings:" printf %s\\n "'export PYTHONPATH=$OUT_DIR/lib/python'" - printf %s\\n "And then from python prompt import otbApplication." - printf %s\\n "eg: python -c 'import otbApplication'" + printf %s\\n "To test OTB python bindings:" + printf %s\\n "$OTB_PYTHON_EXE -c 'import otbApplication'" else + printf %s\\n "*****Error occured during installation******" + printf %s\\n "Python interpreter detected is : $OTB_PYTHON_EXE ( version: $python_version )" printf %s\\n "$python_INSTSONAME cannot be found in any of search directories." printf %s\\n "We had searched following directories $python_lib_dirs" printf %s\\n "If you don't have python-dev package installed, install it and make a symlink" @@ -149,6 +185,8 @@ else printf %s\\n "eg: ln -s /usr/lib/x86_64-linux-gnu/$python_INSTSONAME $OUT_DIR/lib/$python_INSTALLED_SONAME" fi +fi; + # PKG_OTB_VERSION_STRING=@PKG_OTB_VERSION_STRING@ sed -i "s,|release|,@PKG_OTB_VERSION_STRING@,g" "$OUT_DIR/README" @@ -157,3 +195,4 @@ rm -fr "$OUT_DIR/tools" rm -f "$OUT_DIR/pkgsetup" rm -f "$OUT_DIR/make_symlinks" + diff --git a/SuperBuild/Packaging/Files/macx_pkgsetup.in b/SuperBuild/Packaging/Files/macx_pkgsetup.in index 5f46234ce2ca53194ffe62f1f7cdaa7d567a06d2..e84321c7174be103eede91cf5da7d3b35cc570be 100755 --- a/SuperBuild/Packaging/Files/macx_pkgsetup.in +++ b/SuperBuild/Packaging/Files/macx_pkgsetup.in @@ -36,6 +36,7 @@ SHORT_VERSION_STRING=@Monteverdi_VERSION_MAJOR@.@Monteverdi_VERSION_MINOR@ I_AM_XDK=@IS_XDK@ if [ "$I_AM_XDK" = true ] ; then + sed -i "" "s,@DEPENDENCIES_INSTALL_DIR@,$OUT_DIR,g" lib/cmake/ITK-@PKG_ITK_SB_VERSION@/Modules/ITKZLIB.cmake sed -i "" "s,@DEPENDENCIES_INSTALL_DIR@,$OUT_DIR,g" lib/cmake/ITK-@PKG_ITK_SB_VERSION@/ITKConfig.cmake sed -i "" "s,@DEPENDENCIES_INSTALL_DIR@,$OUT_DIR,g" lib/cmake/ITK-@PKG_ITK_SB_VERSION@/ITKTargets-release.cmake @@ -90,6 +91,25 @@ export GEOTIFF_CSV=$OUT_DIR/share/epsg_csv $OUT_DIR/bin/monteverdi "\$@" EOF + cat > "$OUT_DIR/Monteverdi.app/Contents/Resources/qt.conf" << EOF +[Paths] +Translations=$OUT_DIR/lib/qt4/translations +Plugins=$OUT_DIR/lib/qt4/plugins +EOF + + cat > "$OUT_DIR/Mapla.app/Contents/Resources/qt.conf" << EOF +[Paths] +Translations=$OUT_DIR/lib/qt4/translations +Plugins=$OUT_DIR/lib/qt4/plugins +EOF + + cat > "$OUT_DIR/bin/qt.conf" << EOF +[Paths] +Translations=$OUT_DIR/lib/qt4/translations +Plugins=$OUT_DIR/lib/qt4/plugins +EOF + + chmod +x "$OUT_DIR/Monteverdi.app/Contents/MacOS/Monteverdi" cp "Mapla.app/Contents/Info.plist" "Monteverdi.app/Contents/Info.plist" @@ -109,7 +129,7 @@ cat > "$OUT_DIR/otbenv.profile" << EOF PATH=\$PATH:$OUT_DIR/bin PYTHONPATH=$OUT_DIR/lib/python:\$PYTHONPATH GDAL_DATA=$OUT_DIR/share/gdal -GEOTIFF_CSV=$OUT_DIR/share/espg_csv +GEOTIFF_CSV=$OUT_DIR/share/epsg_csv export LC_NUMERIC=C export PATH diff --git a/SuperBuild/Packaging/Files/otbenv.cmd b/SuperBuild/Packaging/Files/otbenv.cmd index ac35b94e69a1619bc0493c369bd1d898dc5cd56e..493cfbde9719b9e0eb2f064022a58703961a4bc6 100644 --- a/SuperBuild/Packaging/Files/otbenv.cmd +++ b/SuperBuild/Packaging/Files/otbenv.cmd @@ -4,4 +4,4 @@ set PATH=%PATH%;%CURRENT_SCRIPT_DIR%\bin set GDAL_DATA=%CURRENT_SCRIPT_DIR%\share\gdal -set GEOTIFF_CSV=%CURRENT_SCRIPT_DIR%\share\espg_csv +set GEOTIFF_CSV=%CURRENT_SCRIPT_DIR%\share\epsg_csv diff --git a/SuperBuild/Packaging/Files/otbenv.profile b/SuperBuild/Packaging/Files/otbenv.profile index 094ee80f22fd006110b645e35f62ad25556f492d..e36e0d62d07e9beb270cae3159ecf586b4431ce6 100644 --- a/SuperBuild/Packaging/Files/otbenv.profile +++ b/SuperBuild/Packaging/Files/otbenv.profile @@ -6,7 +6,7 @@ CURRENT_DIR=`pwd` PATH=$PATH:$CURRENT_DIR/bin GDAL_DATA=$CURRENT_DIR/share/gdal -GEOTIFF_CSV=$CURRENT_DIR/share/espg_csv +GEOTIFF_CSV=$CURRENT_DIR/share/epsg_csv export PATH export GDAL_DATA diff --git a/SuperBuild/Packaging/PMacros.cmake b/SuperBuild/Packaging/PMacros.cmake index 15515b4a46928767069e82c39322111e3fc66ede..f2fae4528e7d55de7b1f45174248310e207cb31f 100644 --- a/SuperBuild/Packaging/PMacros.cmake +++ b/SuperBuild/Packaging/PMacros.cmake @@ -21,53 +21,32 @@ macro(macro_setup_cmake_project pkg) set(PKG_GENERATE_XDK OFF) endif() - set(ConfigureMonteverdi_H ${OTB_BINARY_DIR}/Modules/Visualization/MonteverdiCore/ConfigureMonteverdi.h) - if(NOT EXISTS ${ConfigureMonteverdi_H}) - message(FATAL_ERROR "${ConfigureMonteverdi_H} does not exists. Cannot continue") - endif() - - file(STRINGS "${ConfigureMonteverdi_H}" ConfigureMonteverdi_H_CONTENTS REGEX "^#define.Monteverdi_INSTALL_DATA_DIR") - string(REGEX REPLACE - "^#define.Monteverdi_INSTALL_DATA_DIR" "" - ConfigureMonteverdi_H_CONTENTS - ${ConfigureMonteverdi_H_CONTENTS} ) - - if(NOT ConfigureMonteverdi_H_CONTENTS) - message(FATAL_ERROR "parse error in ${ConfigureMonteverdi_H}. Cannot continue") - endif() - - string(REGEX REPLACE "\"" "" PKG_OTB_INSTALL_DATA_DIR "${ConfigureMonteverdi_H_CONTENTS}") - - if(NOT PKG_OTB_INSTALL_DATA_DIR) - message(FATAL_ERROR "parse error in ${ConfigureMonteverdi_H_CONTENTS}. Cannot continue") - endif() - - string(STRIP "${PKG_OTB_INSTALL_DATA_DIR}" PKG_OTB_INSTALL_DATA_DIR) #set archive name inside loop file(WRITE "${PACKAGE_PROJECT_DIR}/src/CMakeLists.txt" "cmake_minimum_required(VERSION 3.2) include(CMakeParseArguments) include(CMakeDetermineSystem) - set(CMAKE_BUILD_TYPE Release) - set(PACKAGE_OTB_SRC_DIR \"${PACKAGE_OTB_SRC_DIR}\") - set(OTB_BINARY_DIR \"${OTB_BINARY_DIR}\") - set(OTB_INSTALL_DIR \"${OTB_INSTALL_DIR}\") - set(OTB_INSTALL_DATA_DIR \"${PKG_OTB_INSTALL_DATA_DIR}\") - set(QT_PLUGINS_DIR \"${QT_PLUGINS_DIR}\") - set(QT_TRANSLATIONS_DIR \"${QT_TRANSLATIONS_DIR}\") - set(DEPENDENCIES_INSTALL_DIR \"${DEPENDENCIES_INSTALL_DIR}\") - set(PACKAGE_SUPPORT_FILES_DIR \"${PACKAGE_OTB_SRC_DIR}/SuperBuild/Packaging/Files\") - - set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\") - set(PKG_ITK_SB_VERSION \"${PKG_ITK_SB_VERSION}\") - set(PKG_OTB_VERSION_MAJOR \"${PKG_OTB_VERSION_MAJOR}\") - set(PKG_OTB_VERSION_MINOR \"${PKG_OTB_VERSION_MINOR}\") - set(PKG_OTB_VERSION_PATCH \"${PKG_OTB_VERSION_PATCH}\") - set(PKG_OTB_VERSION_STRING \"${PKG_OTB_VERSION_STRING}\") + set(CMAKE_BUILD_TYPE Release) + set(PACKAGE_OTB_SRC_DIR \"${PACKAGE_OTB_SRC_DIR}\") + set(OTB_BINARY_DIR \"${OTB_BINARY_DIR}\") + set(OTB_INSTALL_DIR \"${OTB_INSTALL_DIR}\") + set(QT_PLUGINS_DIR \"${QT_PLUGINS_DIR}\") + set(QT_TRANSLATIONS_DIR \"${QT_TRANSLATIONS_DIR}\") + set(DEPENDENCIES_INSTALL_DIR \"${DEPENDENCIES_INSTALL_DIR}\") + set(PACKAGE_SUPPORT_FILES_DIR \"${PACKAGE_OTB_SRC_DIR}/SuperBuild/Packaging/Files\") + set(CMAKE_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\") + set(PKG_ITK_SB_VERSION \"${PKG_ITK_SB_VERSION}\") + set(PKG_OTB_VERSION_MAJOR \"${PKG_OTB_VERSION_MAJOR}\") + set(PKG_OTB_VERSION_MINOR \"${PKG_OTB_VERSION_MINOR}\") + set(PKG_OTB_VERSION_PATCH \"${PKG_OTB_VERSION_PATCH}\") + set(PKG_OTB_VERSION_STRING \"${PKG_OTB_VERSION_STRING}\") + set(PYTHON_EXECUTABLE \"${PYTHON_EXECUTABLE}\") set(PKG_GENERATE_XDK ${PKG_GENERATE_XDK}) set(PATCHELF_PROGRAM ${PATCHELF_PROGRAM}) - set(PYTHON_EXECUTABLE \"${PYTHON_EXECUTABLE}\") + set(OTB_TARGET_SYSTEM_ARCH ${OTB_TARGET_SYSTEM_ARCH}) + set(OTB_TARGET_SYSTEM_ARCH_IS_X64 ${OTB_TARGET_SYSTEM_ARCH_IS_X64}) + set(OTB_WRAP_PYTHON ${OTB_WRAP_PYTHON}) ${EXTRA_CACHE_CONFIG} include(${SUPERBUILD_SOURCE_DIR}/Packaging/PackageHelper.cmake) macro_super_package(STAGE_DIR \"${archive_name}\")" diff --git a/SuperBuild/Packaging/PackageHelper.cmake b/SuperBuild/Packaging/PackageHelper.cmake index 1f80363b06b1fae32891d614976d75e4d6137e72..1d1aa8b6245972690585793272c1e9a71cb8107c 100644 --- a/SuperBuild/Packaging/PackageHelper.cmake +++ b/SuperBuild/Packaging/PackageHelper.cmake @@ -53,7 +53,8 @@ macro(macro_super_package) ) if(NOT python_INSTALLED_SONAME_rv EQUAL 0) - message( FATAL_ERROR "python_INSTALLED_SONAME_rv=${python_INSTALLED_SONAME_rv}: Cannot find python library") + message( FATAL_ERROR + "python_INSTALLED_SONAME_rv=${python_INSTALLED_SONAME_rv}: Cannot find python library") endif() set(python_INSTALLED_SONAME "${python_INSTALLED_SONAME_ov}") @@ -64,6 +65,33 @@ macro(macro_super_package) if(MSVC) list(APPEND PKG_SEARCHDIRS "${DEPENDENCIES_INSTALL_DIR}/bin") #all other dlls list(APPEND PKG_SEARCHDIRS "${DEPENDENCIES_INSTALL_DIR}/lib") #Qt & Qwt dlls + if(DEFINED ENV{UniversalCRTSdkDir}) + file(TO_CMAKE_PATH "$ENV{UniversalCRTSdkDir}" UCRT_SDK_DIR) + list( + APPEND + PKG_SEARCHDIRS + "${UCRT_SDK_DIR}/Redist/ucrt/DLLs/${OTB_TARGET_SYSTEM_ARCH}" + ) #ucrt dlls + else() + message(FATAL_ERROR + "UniversalCRTSdkDir variable not set. + call vcvarsall.bat <arch> first before starting build.") + endif() + + #addtional msvc redist dll from VCINSTALLDIR + if(DEFINED ENV{VCINSTALLDIR}) + file(TO_CMAKE_PATH "$ENV{VCINSTALLDIR}" PKG_VCINSTALLDIR) + list( + APPEND + PKG_SEARCHDIRS + "${PKG_VCINSTALLDIR}/redist/${OTB_TARGET_SYSTEM_ARCH}/Microsoft.VC140.CRT/" + "${PKG_VCINSTALLDIR}/redist/${OTB_TARGET_SYSTEM_ARCH}/Microsoft.VC140.OPENMP/" + ) + else() + message(FATAL_ERROR + "VCINSTALLDIR variable not set. call vcvarsall.bat <arch> first before starting build.") + endif() + else() file(GLOB MXE_GCC_LIB_DIR "${DEPENDENCIES_INSTALL_DIR}/bin/gcc*") list(APPEND PKG_SEARCHDIRS ${MXE_GCC_LIB_DIR}) @@ -132,10 +160,18 @@ macro(macro_super_package) file(APPEND ${CMAKE_BINARY_DIR}/make_symlinks "${make_symlink_cmd}\n") endforeach() + + set(WITH_PYTHON "false") + if(OTB_WRAP_PYTHON) + set(WITH_PYTHON "true") + endif() - set(IS_XDK "false") + set(IS_XDK "false") if(PKG_GENERATE_XDK) set(IS_XDK "true") + set(WITH_PYTHON "false") + message(STATUS "OTB_WRAP_PYTHON is set. But this will not be included in XDK") + if("${PKG_ITK_SB_VERSION}" STREQUAL "") message(FATAL_ERROR "PKG_ITK_SB_VERSION not set. This is required for XDK") endif() @@ -170,9 +206,9 @@ macro(macro_super_package) func_install_xdk_files() endif() - # We need qt.conf on windows and linux. macx is still to be tested. - # So just not add this without testing - if(NOT APPLE) + # We need qt.conf on windows. for macx and linux we write it + # after extracting package + if(WIN32 AND NOT PKG_GENERATE_XDK) install(FILES ${PACKAGE_SUPPORT_FILES_DIR}/qt.conf DESTINATION ${PKG_STAGE_DIR}/bin @@ -373,7 +409,8 @@ function(func_install_support_files) ####################### install GDAL data ############################ if(NOT EXISTS "${GDAL_DATA}/epsg.wkt") - message(FATAL_ERROR "Cannot generate package without GDAL_DATA : ${GDAL_DATA} ${DEPENDENCIES_INSTALL_DIR}") + message(FATAL_ERROR + "Cannot generate package without GDAL_DATA : ${GDAL_DATA} ${DEPENDENCIES_INSTALL_DIR}") endif() install(DIRECTORY ${GDAL_DATA} DESTINATION ${PKG_SHARE_DEST_DIR}) @@ -389,7 +426,8 @@ function(func_install_support_files) install(DIRECTORY ${PKG_SHARE_SOURCE_DIR}/proj DESTINATION ${PKG_SHARE_DEST_DIR}) endif() - set(PKG_VERSION_FILE "${OTB_INSTALL_DIR}/share/doc/${PKG_OTB_VERSION_MAJOR}.${PKG_OTB_VERSION_MINOR}/VERSION") + set(PKG_VERSION_FILE + "${OTB_INSTALL_DIR}/share/doc/${PKG_OTB_VERSION_MAJOR}.${PKG_OTB_VERSION_MINOR}/VERSION") ####################### Install copyrights ########################## if(NOT MINGW) @@ -491,10 +529,39 @@ function(func_install_monteverdi_support_files) #<prefix>/share for otb i18n directory. This is different from qt's i18N directory #which is <prefix>/share/qt4/translations. - #set(PKG_xxOTB_Ixxx18N_DIR "${PKG_STAGE_DIR}/${OTB_INSTALL_DATA_DIR}/i18n") + #set(PKG_xxOTB_Ixxx18N_DIR "${PKG_STAGE_DIR}/${PKG_OTB_INSTALL_DATA_DIR}/i18n") + # we find this value by parsing ConfigureMonteverdi.h + set(ConfigureMonteverdi_H "${OTB_BINARY_DIR}/Modules/Visualization/MonteverdiCore/ConfigureMonteverdi.h") + if(NOT EXISTS "${ConfigureMonteverdi_H}") + message(FATAL_ERROR "${ConfigureMonteverdi_H} does not exists. Cannot continue") + endif() + + file( + STRINGS "${ConfigureMonteverdi_H}" + ConfigureMonteverdi_H_CONTENTS + REGEX "^#define.Monteverdi_INSTALL_DATA_DIR") + + string(REGEX REPLACE + "^#define.Monteverdi_INSTALL_DATA_DIR" "" + ConfigureMonteverdi_H_CONTENTS + ${ConfigureMonteverdi_H_CONTENTS} ) + + if(NOT ConfigureMonteverdi_H_CONTENTS) + message(FATAL_ERROR "Parse error in ${ConfigureMonteverdi_H}. Cannot continue") + endif() - set(PKG_OTB_TRANSLATIONS_DIRNAME "${OTB_INSTALL_DATA_DIR}/i18n") + string( + REGEX REPLACE "\"" "" + PKG_OTB_INSTALL_DATA_DIR + "${ConfigureMonteverdi_H_CONTENTS}") + + if(NOT PKG_OTB_INSTALL_DATA_DIR) + message(FATAL_ERROR "parse error in ${ConfigureMonteverdi_H_CONTENTS}. Cannot continue") + endif() + string(STRIP "${PKG_OTB_INSTALL_DATA_DIR}" PKG_OTB_INSTALL_DATA_DIR) + + set(PKG_OTB_TRANSLATIONS_DIRNAME "${PKG_OTB_INSTALL_DATA_DIR}/i18n") # Just check if required variables are defined. foreach(req @@ -548,7 +615,11 @@ endfunction() macro(macro_empty_package_staging_directory) message(STATUS "Empty package staging directory: ${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}") - execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}") + execute_process( + COMMAND ${CMAKE_COMMAND} + -E remove_directory + "${CMAKE_INSTALL_PREFIX}/${PKG_STAGE_DIR}" + ) endmacro() #macro_empty_package_staging_directory #NOTE: @@ -583,7 +654,9 @@ function(func_prepare_package) set(VAR_IN_PKGSETUP_CONFIGURE "bin/otbApplicationLauncherCommandLine") set(PKG_PEFILES "${OTB_INSTALL_DIR}/bin/otbApplicationLauncherCommandLine${EXE_EXT}") if(NOT EXISTS "${OTB_INSTALL_DIR}/bin/otbApplicationLauncherCommandLine${EXE_EXT}") - message(FATAL_ERROR "${OTB_INSTALL_DIR}/bin/otbApplicationLauncherCommandLine${EXE_EXT} not found.") + message( + FATAL_ERROR + "${OTB_INSTALL_DIR}/bin/otbApplicationLauncherCommandLine${EXE_EXT} not found.") endif() set(EXE_FILES) @@ -615,6 +688,11 @@ function(func_prepare_package) endforeach() #EXE_SEARCH_DIR endforeach() + # special case for msvc: ucrtbase.dll must be explicitly vetted. + if(MSVC) + list(APPEND PKG_PEFILES "ucrtbase.dll") + endif() + #loop again to report if anything is not found foreach( EXE_FILE ${EXE_FILES} ) if(NOT FOUND_${EXE_FILE}) @@ -628,23 +706,50 @@ function(func_prepare_package) #NOTE: this is not used in windows yet.. foreach(OTB_APP_SO ${OTB_APPS_LIST}) get_filename_component(OTB_APP_SO_NAME ${OTB_APP_SO} NAME) - set(VAR_IN_PKGSETUP_CONFIGURE "${VAR_IN_PKGSETUP_CONFIGURE} lib/otb/applications/${OTB_APP_SO_NAME}") + set(VAR_IN_PKGSETUP_CONFIGURE + "${VAR_IN_PKGSETUP_CONFIGURE} lib/otb/applications/${OTB_APP_SO_NAME}") endforeach() list(APPEND PKG_PEFILES ${OTB_APPS_LIST}) if(EXISTS "${OTB_INSTALL_DIR}/lib/otb/python/_otbApplication${PYMODULE_EXT}") - list(APPEND PKG_PEFILES "${OTB_INSTALL_DIR}/lib/otb/python/_otbApplication${PYMODULE_EXT}") - install(DIRECTORY ${OTB_INSTALL_DIR}/lib/otb/python DESTINATION ${PKG_STAGE_DIR}/lib) + #DO NOT ADD _otbApplication.* to PKG_PEFILES. we install it in next step with + # install( DIRECTORY .. + # list( + # APPEND + # PKG_PEFILES + # "${OTB_INSTALL_DIR}/lib/otb/python/_otbApplication${PYMODULE_EXT}" + # ) + + install( + DIRECTORY + ${OTB_INSTALL_DIR}/lib/otb/python + DESTINATION ${PKG_STAGE_DIR}/lib/ + ) + else() + if(OTB_WRAP_PYTHON) + message(FATAL_ERROR "OTB_WRAP_PYTHON is set , but cannot find _otbApplication${PYMODULE_EXT}") + endif() endif() - set(ALLOWED_SYSTEM_DLLS_SEARCH_PATHS + # Take gtk libs from system. we should fix this to take from custom + # build location + set(GTK_SYSTEM_LIBS_SEARCH_PATHS /usr/lib /lib64 ) func_install_support_files() - execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_BINARY_DIR}/temp_so_names_dir") - execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/temp_so_names_dir") + execute_process( + COMMAND ${CMAKE_COMMAND} + -E remove_directory + "${CMAKE_BINARY_DIR}/temp_so_names_dir" + ) + + execute_process( + COMMAND ${CMAKE_COMMAND} + -E make_directory + "${CMAKE_BINARY_DIR}/temp_so_names_dir" + ) set(alldlls) set(notfound_dlls) @@ -661,7 +766,7 @@ function(func_prepare_package) if(${found_index} GREATER -1) #find_file (<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH) find_file ( ${allowed_system_dll}_abs_path NAMES ${allowed_system_dll} - PATHS ${ALLOWED_SYSTEM_DLLS_SEARCH_PATHS} NO_DEFAULT_PATH) + PATHS ${GTK_SYSTEM_LIBS_SEARCH_PATHS} NO_DEFAULT_PATH) if(${allowed_system_dll}_abs_path) file(GLOB fff "${${allowed_system_dll}_abs_path}*") foreach(f ${fff}) @@ -711,8 +816,15 @@ function(func_process_deps infile) string(TOLOWER "${infile}" infile_lower ) endif() + # is_system_dll is first pass check the file is not a system dll + # there is a second pass after looking all searchdirs which is where + # we make the call to list it as not-found-dlls is_system_dll(is_system "${infile}") if(EXISTS ${infile} AND NOT is_system) + if(APPLE) + # We want all non-system deps to start with rpath + message(FATAL_ERROR "Found dependency without @rpath : ${infile}") + endif() get_filename_component(infile ${infile} NAME) endif() @@ -734,6 +846,7 @@ function(func_process_deps infile) if(EXISTS ${SEARCHDIR}/${infile}) set(DLL_FOUND TRUE) message(STATUS "Processing ${SEARCHDIR}/${infile}") + is_file_executable("${SEARCHDIR}/${infile}" is_executable) if(is_executable) file(APPEND ${CMAKE_BINARY_DIR}/install_to_${DEST_BIN_DIR} "${SEARCHDIR}/${infile}\n") @@ -785,8 +898,11 @@ function(func_process_deps infile) endif() if(WIN32) if(MSVC) - string(REGEX MATCHALL "dependencies.(.*[Dd][Ll][Ll])" loader_ov "${loader_ov}") - string(REGEX REPLACE "dependencies.." "" loader_ov "${loader_ov}") + #skip entries from section 'delay load dependencies' + string(REGEX MATCHALL + "Image.has.the.following.dependencies.(.*[Dd][Ll][Ll])" loader_ov "${loader_ov}") + string(REGEX REPLACE + "Image.has.the.following.dependencies.." "" loader_ov "${loader_ov}") #beware of .DLL and .dll string(REGEX REPLACE ".DLL" ".dll" loader_ov "${loader_ov}") #convert to cmake list @@ -988,7 +1104,6 @@ function(func_lisp install_list ) endfunction() # func_lisp set(WINDOWS_SYSTEM_DLLS - msvc.*dll user32.dll gdi32.dll shell32.dll @@ -1009,14 +1124,12 @@ set(WINDOWS_SYSTEM_DLLS glu32.dll rpcrt4.dll winspool.drv - api-ms-win-crt*.*.dll - vcruntime*.*.dll normaliz.dll - concrt*.*.dll odbc32.dll psapi.dll python...dll - vcomp*.*.dll) + Image.has.the.following.delay.load + ) set(LINUX_SYSTEM_DLLS libm.so diff --git a/SuperBuild/patches/BOOST/boost-2-fix_quadmath-linux.diff b/SuperBuild/patches/BOOST/boost-2-fix_quadmath-linux.diff new file mode 100755 index 0000000000000000000000000000000000000000..164cbacc66a4edaeb60a3396689cebdc127f1bd0 --- /dev/null +++ b/SuperBuild/patches/BOOST/boost-2-fix_quadmath-linux.diff @@ -0,0 +1,77 @@ +This patch is taken from boostorg github. +https://github.com/boostorg/math/commit/74ff2db959c5fa75bec770c41ed2951a740fe936.diff + +diff --git a/include/boost/math/special_functions/fpclassify.hpp b/include/boost/math/special_functions/fpclassify.hpp +index 0a4e1ac..58fad13 100644 +--- a/boost/math/special_functions/fpclassify.hpp ++++ b/boost/math/special_functions/fpclassify.hpp +@@ -81,7 +81,12 @@ is used. + #include <float.h> + #endif + #ifdef BOOST_MATH_USE_FLOAT128 ++#ifdef __has_include ++#if __has_include("quadmath.h") + #include "quadmath.h" ++#define BOOST_MATH_HAS_QUADMATH_H ++#endif ++#endif + #endif + + #ifdef BOOST_NO_STDC_NAMESPACE +@@ -124,9 +129,14 @@ inline bool is_nan_helper(T, const boost::false_type&) + { + return false; + } +-#ifdef BOOST_MATH_USE_FLOAT128 ++#if defined(BOOST_MATH_USE_FLOAT128) ++#if defined(BOOST_MATH_HAS_QUADMATH_H) + inline bool is_nan_helper(__float128 f, const boost::true_type&) { return ::isnanq(f); } + inline bool is_nan_helper(__float128 f, const boost::false_type&) { return ::isnanq(f); } ++#else ++inline bool is_nan_helper(__float128 f, const boost::true_type&) { return ::isnan(static_cast<double>(f)); } ++inline bool is_nan_helper(__float128 f, const boost::false_type&) { return ::isnan(static_cast<double>(f)); } ++#endif + #endif + } + +@@ -519,7 +529,7 @@ inline bool (isinf)(long double x) + return detail::isinf_impl(static_cast<value_type>(x), method()); + } + #endif +-#ifdef BOOST_MATH_USE_FLOAT128 ++#if defined(BOOST_MATH_USE_FLOAT128) && defined(BOOST_MATH_HAS_QUADMATH_H) + template<> + inline bool (isinf)(__float128 x) + { +@@ -611,7 +621,7 @@ inline bool (isnan)(long double x) + return detail::isnan_impl(x, method()); + } + #endif +-#ifdef BOOST_MATH_USE_FLOAT128 ++#if defined(BOOST_MATH_USE_FLOAT128) && defined(BOOST_MATH_HAS_QUADMATH_H) + template<> + inline bool (isnan)(__float128 x) + { +diff --git a/include/boost/math/tools/config.hpp b/include/boost/math/tools/config.hpp +index ffd0ab4..75d29b6 100644 +--- a/boost/math/tools/config.hpp ++++ b/boost/math/tools/config.hpp +@@ -265,18 +265,6 @@ + # define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##SUF + #endif + // +-// Test whether to support __float128, if we don't have quadmath.h then this can't currently work: +-// +-#ifndef BOOST_MATH_USE_FLOAT128 +-#ifdef __has_include +-#if ! __has_include("quadmath.h") +-#define BOOST_MATH_DISABLE_FLOAT128 +-#endif +-#elif !defined(BOOST_ARCH_X86) +-#define BOOST_MATH_DISABLE_FLOAT128 +-#endif +-#endif +-// + // And then the actual configuration: + // + #if defined(_GLIBCXX_USE_FLOAT128) && defined(BOOST_GCC) && !defined(__STRICT_ANSI__) \ diff --git a/SuperBuild/patches/JPEG/jpeg-fix-rpath-macx.diff b/SuperBuild/patches/JPEG/jpeg-fix-rpath-macx.diff new file mode 100755 index 0000000000000000000000000000000000000000..b28d47b0a6cacdd9caf7967c4474da9ef3462266 --- /dev/null +++ b/SuperBuild/patches/JPEG/jpeg-fix-rpath-macx.diff @@ -0,0 +1,101 @@ +diff -burN libjpeg-turbo-1.4.1.orig/configure libjpeg-turbo-1.4.1/configure +--- libjpeg-turbo-1.4.1.orig/configure 2016-11-02 11:46:15.000000000 +0100 ++++ libjpeg-turbo-1.4.1/configure 2016-11-02 11:51:39.000000000 +0100 +@@ -8233,16 +8233,16 @@ + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + else +- archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + fi + module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else +- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct=no +@@ -10132,10 +10132,10 @@ + ;; + esac + output_verbose_link_cmd='echo' +- archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name @rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's +- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct=no + hardcode_automatic=yes +@@ -11217,17 +11217,17 @@ + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + else +- archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + fi + module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else +- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct_CXX=no +@@ -15122,16 +15122,16 @@ + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + else +- archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + fi + module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else +- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct_F77=no +@@ -17490,16 +17490,16 @@ + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + else +- archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ++ archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring' + fi + module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then +- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else +- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name @rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + hardcode_direct_GCJ=no diff --git a/SuperBuild/patches/TIFF/tiff-1-noopengl-linux.diff b/SuperBuild/patches/TIFF/tiff-1-noopengl-linux.diff new file mode 100755 index 0000000000000000000000000000000000000000..04b1ef4f181fe243c5d9413e76a129e57981689d --- /dev/null +++ b/SuperBuild/patches/TIFF/tiff-1-noopengl-linux.diff @@ -0,0 +1,38 @@ +diff -burN tiff-4.0.6.orig/CMakeLists.txt tiff-4.0.6/CMakeLists.txt +--- tiff-4.0.6.orig/CMakeLists.txt 2016-10-27 17:24:17.000000000 +0200 ++++ tiff-4.0.6/CMakeLists.txt 2016-10-27 17:25:43.000000000 +0200 +@@ -602,19 +602,23 @@ + endif() + + # OpenGL and GLUT +-find_package(OpenGL) +-find_package(GLUT) +-set(HAVE_OPENGL FALSE) +-if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) ++option(WITH_OPENGL "Enable opengl and glut support" ON) ++ ++if(WITH_OPENGL) ++ find_package(OpenGL) ++ find_package(GLUT) ++ set(HAVE_OPENGL FALSE) ++ if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) + set(HAVE_OPENGL TRUE) ++ endif() ++ # Purely to satisfy the generated headers: ++ check_include_file(GL/gl.h HAVE_GL_GL_H) ++ check_include_file(GL/glu.h HAVE_GL_GLU_H) ++ check_include_file(GL/glut.h HAVE_GL_GLUT_H) ++ check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) ++ check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) ++ check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) + endif() +-# Purely to satisfy the generated headers: +-check_include_file(GL/gl.h HAVE_GL_GL_H) +-check_include_file(GL/glu.h HAVE_GL_GLU_H) +-check_include_file(GL/glut.h HAVE_GL_GLUT_H) +-check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) +-check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) +-check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) + + # Win32 IO + set(win32_io FALSE) diff --git a/SuperBuild/patches/TIFF/tiff-1-noopengl-macx.diff b/SuperBuild/patches/TIFF/tiff-1-noopengl-macx.diff new file mode 100755 index 0000000000000000000000000000000000000000..04b1ef4f181fe243c5d9413e76a129e57981689d --- /dev/null +++ b/SuperBuild/patches/TIFF/tiff-1-noopengl-macx.diff @@ -0,0 +1,38 @@ +diff -burN tiff-4.0.6.orig/CMakeLists.txt tiff-4.0.6/CMakeLists.txt +--- tiff-4.0.6.orig/CMakeLists.txt 2016-10-27 17:24:17.000000000 +0200 ++++ tiff-4.0.6/CMakeLists.txt 2016-10-27 17:25:43.000000000 +0200 +@@ -602,19 +602,23 @@ + endif() + + # OpenGL and GLUT +-find_package(OpenGL) +-find_package(GLUT) +-set(HAVE_OPENGL FALSE) +-if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) ++option(WITH_OPENGL "Enable opengl and glut support" ON) ++ ++if(WITH_OPENGL) ++ find_package(OpenGL) ++ find_package(GLUT) ++ set(HAVE_OPENGL FALSE) ++ if(OPENGL_FOUND AND OPENGL_GLU_FOUND AND GLUT_FOUND) + set(HAVE_OPENGL TRUE) ++ endif() ++ # Purely to satisfy the generated headers: ++ check_include_file(GL/gl.h HAVE_GL_GL_H) ++ check_include_file(GL/glu.h HAVE_GL_GLU_H) ++ check_include_file(GL/glut.h HAVE_GL_GLUT_H) ++ check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) ++ check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) ++ check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) + endif() +-# Purely to satisfy the generated headers: +-check_include_file(GL/gl.h HAVE_GL_GL_H) +-check_include_file(GL/glu.h HAVE_GL_GLU_H) +-check_include_file(GL/glut.h HAVE_GL_GLUT_H) +-check_include_file(GLUT/glut.h HAVE_GLUT_GLUT_H) +-check_include_file(OpenGL/gl.h HAVE_OPENGL_GL_H) +-check_include_file(OpenGL/glu.h HAVE_OPENGL_GLU_H) + + # Win32 IO + set(win32_io FALSE) diff --git a/i18n/CMakeLists.txt b/i18n/CMakeLists.txt index 189a109a10f9120c9f08c065ce6b0525e66f8693..5df5b6044f3f2e35ef7458ad3a8fa24697e93b3d 100644 --- a/i18n/CMakeLists.txt +++ b/i18n/CMakeLists.txt @@ -6,6 +6,7 @@ set( OTB_TS_TRANSLATIONS # en_US.ts fr_FR.ts ) +unset(OTB_QM_TRANSLATIONS) #---------------------------------------------------------------------------- # Configuration option to enable creation/merging of source .ts files @@ -24,24 +25,32 @@ if( OTBQt4_ENABLED ) "WARNING: OTB_I18N_MERGE_TS:BOOL option is set to ON. 'make clean' will delete .ts files from source directory!" ) - message( STATUS "Qt I18N source files: " ${OTB_QT_I18N_SOURCE_FILES} ) + message( STATUS "Qt I18N source files: ${OTB_QT_I18N_SOURCE_FILES}") set( OTB_QT_I18N_PRO "${CMAKE_CURRENT_BINARY_DIR}/i18n.pro" ) - generate_qt4_project( ${OTB_TS_TRANSLATIONS} ${OTB_QT_I18N_PRO} ) + generate_qt4_project( ${OTB_QT_I18N_PRO} ) - qt4_create_translation( OTB_QM_TRANSLATIONS - ${OTB_QT_I18N_PRO} - ${OTB_TS_TRANSLATIONS} - ) + foreach(_ts_name ${OTB_TS_TRANSLATIONS}) + get_filename_component(_abs_ts ${_ts_name} ABSOLUTE) + + message( STATUS "Merge TS : ${_abs_ts}") + add_custom_command(OUTPUT ${_abs_ts} + COMMAND ${QT_LUPDATE_EXECUTABLE} + ARGS -locations none -pro ${OTB_QT_I18N_PRO} -ts ${_abs_ts} + DEPENDS + ${OTB_QT_I18N_HEADER_FILES} + ${OTB_QT_I18N_SOURCE_FILES} + ${OTB_QT_I18N_FORM_FILES} + ${OTB_QT_I18N_PRO} + VERBATIM) + endforeach() + endif() - else() - qt4_add_translation( OTB_QM_TRANSLATIONS + qt4_add_translation(OTB_QM_TRANSLATIONS ${OTB_TS_TRANSLATIONS} ) - endif() - # Custom build targets. add_custom_target( i18n ALL DEPENDS i18n_qt ) add_custom_target( i18n_qt DEPENDS ${OTB_QM_TRANSLATIONS} ) diff --git a/i18n/fr_FR.ts b/i18n/fr_FR.ts index 4f5d3f7508b639aecb9038a7eadf6540aa47c555..3127cae92a120fc18d8369046efbb674cdb7cc47 100644 --- a/i18n/fr_FR.ts +++ b/i18n/fr_FR.ts @@ -37,7 +37,7 @@ <name>Mapla</name> <message> <source>Question!</source> - <translation>Question !</translation> + <translation type="obsolete">Question !</translation> </message> <message> <source>The following exception has been caught while initializing the software: @@ -45,7 +45,7 @@ %1 The application may not function as expected. Do you want to continue?</source> - <translation>L'exception suivante a été rattrapé pendant l'inialisation du logiciel : + <translation type="obsolete">L'exception suivante a été rattrapé pendant l'inialisation du logiciel : %1 @@ -238,8 +238,8 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. <translation></translation> </message> <message> - <source>Version M.m.pl (codename)</source> - <translation>Version M.m.pl (nom_de_code)</translation> + <source>OTB version M.m.pl (codename)</source> + <translation>Version OTB M.m.pl (nom_de_code)</translation> </message> </context> <context> @@ -374,7 +374,7 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. <translation></translation> </message> <message> - <source>Failed to instanciate OTB-application '%1'.</source> + <source>Failed to instantiate OTB-application '%1'.</source> <translation>Échec lors de l'instanciation de l'application OTB '%1'.</translation> </message> </context> @@ -758,265 +758,19 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. <translation></translation> </message> </context> -<context> - <name>mvd::DatabaseBrowserController</name> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>Inconsistent Dataset disabled</source> - <translation type="obsolete">Jeu de données inconsistent désactivé</translation> - </message> - <message> - <source>Warning!</source> - <translation>Avertissement !</translation> - </message> - <message> - <source>Are you sure you want to delete dataset '%1'?</source> - <translation>Êtes-vous certain de vouloir supprimer le jeu de données '%1' ?</translation> - </message> - <message> - <source>Failed to load dataset. - -%1</source> - <translation>Échec lors du chargement du jeu de données - -%1</translation> - </message> - <message> - <source>Failed to load dataset. -</source> - <translation>Échec lors du chargement du jeu de données.</translation> - </message> - <message> - <source>Data is not consistent.</source> - <translation>Les données sont incohérentes.</translation> - </message> - <message> - <source> -- '%1'</source> - <translation type="obsolete">- '%1'</translation> - </message> - <message> - <source>Delete:%1</source> - <translation type="obsolete">Supprimer : %1</translation> - </message> - <message> - <source>Error!</source> - <translation>Erreur !</translation> - </message> - <message> - <source>Failed to remove '%1'.</source> - <translation>Impossible de supprimer '%1'.</translation> - </message> - <message> - <source>New group</source> - <translation>Nouveau groupe</translation> - </message> - <message> - <source>Also delete:</source> - <translation>Supprimer aussi :</translation> - </message> -</context> -<context> - <name>mvd::DatabaseBrowserWidget</name> - <message> - <source>Form</source> - <translation>Formulaire</translation> - </message> - <message> - <source>Name</source> - <translation>Nom</translation> - </message> - <message> - <source>Datasets</source> - <translation type="obsolete">Jeux de données</translation> - </message> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>Search Dataset ...</source> - <translation type="obsolete">Rechercher un jeu de données...</translation> - </message> - <message> - <source>Search Dataset...</source> - <translation>Rechercher jeu de données...</translation> - </message> -</context> -<context> - <name>mvd::DatabaseBrowserWidgetTest</name> - <message> - <source>Form</source> - <translation>Formulaire</translation> - </message> - <message> - <source>Name</source> - <translation>Nom</translation> - </message> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>Search Dataset...</source> - <translation>Rechercher jeu de données...</translation> - </message> -</context> -<context> - <name>mvd::DatabaseConnection</name> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>SQLite database file '%1' not found!</source> - <translation>Fichier de base de données SQLite '%1' non trouvé !</translation> - </message> - <message> - <source>Failed to open database: </source> - <translation>Échec lors de l'ouverture de la base de données :</translation> - </message> - <message> - <source>Failed to prepare query: </source> - <translation>Échec lors de la préparation de la requête :</translation> - </message> - <message> - <source>Failed to execute query: </source> - <translation>Échec de lors de l'exécution de la requête :</translation> - </message> - <message> - <source>Failed to batch query: </source> - <translation>Échec lors de l'exécution d'une requête de traitement par lot :</translation> - </message> -</context> -<context> - <name>mvd::DatabaseError</name> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>No database error</source> - <translation>Pas d'erreur de base de données</translation> - </message> - <message> - <source>Database connection error</source> - <translation>Erreur de connexion à la base de données</translation> - </message> - <message> - <source>SQL statement syntax error</source> - <translation>Erreur de syntaxe de la requête SQL</translation> - </message> - <message> - <source>Database transaction failed error</source> - <translation>Erreur durant la transaction avec la base de données</translation> - </message> - <message> - <source>Unknown database error</source> - <translation>Erreur inconnue (base de données)</translation> - </message> -</context> -<context> - <name>mvd::DatabaseModel</name> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>Failed to remove file '%1'.</source> - <translation type="obsolete">Échec de la suppression du fichier '%1'.</translation> - </message> - <message> - <source>Failed to access parent directory of '%1'.</source> - <translation type="obsolete">Echec de l'accès au répertoire parent '%1'.</translation> - </message> - <message> - <source>Failed to remove dataset directory '%1'.</source> - <translation type="obsolete">Echec lors de la suppression du répertoire du dataset '%1'.</translation> - </message> - <message> - <source>%1 outdated datasets. Please clear cache directory.</source> - <translation>%1 datasets obsolètes. Veuillez vider votre répertoire de cache.</translation> - </message> - <message> - <source>Database format version %1 is not supported anymore.</source> - <translation>La version '%1' du format de la base de données n'est plus supportée.</translation> - </message> -</context> -<context> - <name>mvd::DatabaseQueries</name> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> -</context> -<context> - <name>mvd::DatabaseTreeWidget</name> - <message> - <source></source> - <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> - <translation></translation> - </message> - <message> - <source>Delete Dataset</source> - <translation type="obsolete">Supprimer dataset</translation> - </message> - <message> - <source>Rename Dataset</source> - <translation type="obsolete">Renommer dataset</translation> - </message> - <message> - <source>Delete dataset</source> - <translation>Supprimer le jeu de données</translation> - </message> - <message> - <source>Rename dataset</source> - <translation>Renommer le jeu de données</translation> - </message> - <message> - <source>Add group</source> - <translation>Ajouter un groupe</translation> - </message> - <message> - <source>Delete group</source> - <translation>Supprimer un groupe</translation> - </message> - <message> - <source>Rename group</source> - <translation>Renommer un groupe</translation> - </message> -</context> <context> <name>mvd::DatasetCreationProgressDialog</name> <message> <source>Please wait while processing...</source> - <translation>Traitement en cours. Merci d'attendre...</translation> + <translation type="obsolete">Traitement en cours. Merci d'attendre...</translation> </message> <message> <source>Importing image:</source> - <translation>Import de l'image:</translation> - </message> - <message> - <source>/home/otbval/LargeInput/mvd2/dataset.ds</source> - <translation></translation> + <translation type="obsolete">Import de l'image:</translation> </message> <message> <source>into dataset:</source> - <translation>dans le jeu de données :</translation> - </message> - <message> - <source>/home/user/cache/mvd2/dataset.ds</source> - <translation></translation> + <translation type="obsolete">dans le jeu de données :</translation> </message> <message> <source></source> @@ -1049,63 +803,63 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. </message> <message> <source>unknown</source> - <translation>inconnu(e)</translation> + <translation type="obsolete">inconnu(e)</translation> </message> <message> <source>File Informations</source> - <translation>Informations fichier</translation> + <translation type="obsolete">Informations fichier</translation> </message> <message> <source>File</source> - <translation>Fichier</translation> + <translation type="obsolete">Fichier</translation> </message> <message> <source>Directory</source> - <translation>Répertoire</translation> + <translation type="obsolete">Répertoire</translation> </message> <message> <source>Size in Bytes</source> - <translation>Taille (en octets)</translation> + <translation type="obsolete">Taille (en octets)</translation> </message> <message> <source>Image Informations</source> - <translation>Informations image</translation> + <translation type="obsolete">Informations image</translation> </message> <message> <source>Dimension</source> - <translation>Dimension</translation> + <translation type="obsolete">Dimension</translation> </message> <message> <source>Origin</source> - <translation>Origine</translation> + <translation type="obsolete">Origine</translation> </message> <message> <source>Number of components</source> - <translation>Nombre de composantes</translation> + <translation type="obsolete">Nombre de composantes</translation> </message> <message> <source>Block size</source> - <translation>Taille de bloc</translation> + <translation type="obsolete">Taille de bloc</translation> </message> <message> <source>Placename</source> - <translation>Toponyme</translation> + <translation type="obsolete">Toponyme</translation> </message> <message> <source>Metadatas</source> - <translation>Méta-données</translation> + <translation type="obsolete">Méta-données</translation> </message> <message> <source>Sensor</source> - <translation>Capteur</translation> + <translation type="obsolete">Capteur</translation> </message> <message> <source>Default RGB</source> - <translation>RVB par défaut</translation> + <translation type="obsolete">RVB par défaut</translation> </message> <message> <source>Estimated ground spacing</source> - <translation>Résolution au sol (estimée)</translation> + <translation type="obsolete">Résolution au sol (estimée)</translation> </message> <message> <source>Exception caught when checking version of dataset '%1': </source> @@ -1117,7 +871,7 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. </message> <message> <source>Exception caught when checking version of dataset '%1'.</source> - <translation>Exception rattrapée lors de la vérification de la version du jeu de données '%1'.</translation> + <translation type="obsolete">Exception rattrapée lors de la vérification de la version du jeu de données '%1'.</translation> </message> </context> <context> @@ -1132,15 +886,15 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. <name>mvd::DatasetPropertiesWidget</name> <message> <source>Form</source> - <translation>Formulaire</translation> + <translation type="obsolete">Formulaire</translation> </message> <message> <source>Property</source> - <translation>Propriété</translation> + <translation type="obsolete">Propriété</translation> </message> <message> <source>Value</source> - <translation>Valeur</translation> + <translation type="obsolete">Valeur</translation> </message> <message> <source></source> @@ -1249,7 +1003,7 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. </message> <message> <source>%1: Generating histogram (M)...</source> - <translation type="obsolete">%1: Generation de l'histogramme (M)...</translation> + <translation>%1: Génération de l'histogramme (M)...</translation> </message> <message> <source>%1: Histogram (M) generated (%2 ms).</source> @@ -1271,6 +1025,10 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. <source>%1: Histogram written (%2 ms)...</source> <translation>%1 : histogram écrit (%2 ms)...</translation> </message> + <message> + <source>Zero relevant pixels found when computing histogram (probably because of no-data settings)</source> + <translation>Aucun pixel utilisable lors du calcul d'histogramme (probablement à cause des réglages no-data)</translation> + </message> </context> <context> <name>mvd::HistogramPlotPicker</name> @@ -1484,7 +1242,7 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. </message> <message> <source>The selected directory seems to be an previous mvd2 directory, nevertheless we will create a new mvd2 repository into the selected directory.</source> - <translation>Le répertoire sélectionné semble être un répertoire mvd2 antérieur ; néanmoins nous allons créer un nouveau dépôt mvd2 à l'intérieur du répertoire sélectionné.</translation> + <translation type="obsolete">Le répertoire sélectionné semble être un répertoire mvd2 antérieur ; néanmoins nous allons créer un nouveau dépôt mvd2 à l'intérieur du répertoire sélectionné.</translation> </message> <message> <source>Geoid file '%1' not found!</source> @@ -1492,16 +1250,32 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. </message> <message> <source>An error occured while loading the geoid file, no geoid file will be used:</source> - <translation>Une erreur s'est produite durant le chargement du fichier géoide, aucune géoide ne sera utilisée :</translation> + <translation type="obsolete">Une erreur s'est produite durant le chargement du fichier géoide, aucune géoide ne sera utilisée :</translation> </message> <message> <source>An error occured while loading the DEM directory, no DEM will be used:</source> - <translation>Une erreur s'est produite durant le chargement du répertoire MNT, aucun MNT ne sera utilisé :</translation> + <translation type="obsolete">Une erreur s'est produite durant le chargement du répertoire MNT, aucun MNT ne sera utilisé :</translation> </message> <message> <source>Class 'I18nCoreApplication' instance must be provided a QCoreApplication' pointer at construction time!</source> <translation>Il faut fournir un pointeur vers une instance de "QCoreApplication" lors de la construction d'une instance de la classe "I18nCoreApplication" !</translation> </message> + <message> + <source>Cannot access settings file.</source> + <translation>Impossible d'accéder au fichiers des paramètres</translation> + </message> + <message> + <source>Bad settings file format.</source> + <translation>Mauvais format pour le fichier de paramètres</translation> + </message> + <message> + <source>An error occurred while loading the geoid file, no geoid file will be used:</source> + <translation>Erreur lors du chargement du fichier géoide, aucun géoide ne sera utilisé:</translation> + </message> + <message> + <source>An error occurred while loading the DEM directory, no DEM will be used:</source> + <translation>Erreur lors du chargement du répertoire DEM, aucun DEM ne sera utilisé:</translation> + </message> </context> <context> <name>mvd::I18nMainWindow</name> @@ -1516,7 +1290,7 @@ Veuillez, s'il vous plait, supprimer votre répertoire de cache Monteverdi. </message> <message> <source>Do you want to specify a custom repository location?</source> - <translation>Voulez-vous définir un chemin de dépôt personnalisé ?</translation> + <translation type="obsolete">Voulez-vous définir un chemin de dépôt personnalisé ?</translation> </message> <message> <source>Please, select directory where the </source> @@ -1536,7 +1310,7 @@ Default cache-directory location is: '%1'. Warning: - Your account needs to have write access to this directory; - Please be aware that this directory can consume significant disk space.</source> - <translation>Monteverdi maintient un dépôt où sont stockées des données additionnelles liées à chaque image (par exemple, réglage d'affichage, histogrammes, aperçus etc.). + <translation type="obsolete">Monteverdi maintient un dépôt où sont stockées des données additionnelles liées à chaque image (par exemple, réglage d'affichage, histogrammes, aperçus etc.). L'emplacement par défaut du répertoire de cache est : '%1'. @@ -1546,15 +1320,15 @@ Attention : </message> <message> <source>Please, select directory where the Monteverdi cache repository will be stored.</source> - <translation>Veuillez sélectionner le répertoire où sera stocké le dépôt de Monteverdi.</translation> + <translation type="obsolete">Veuillez sélectionner le répertoire où sera stocké le dépôt de Monteverdi.</translation> </message> <message> <source>Welcome new Monteverdi user!</source> - <translation>Bienvenu, nouvel utilisateur Monteverdi !</translation> + <translation type="obsolete">Bienvenu, nouvel utilisateur Monteverdi !</translation> </message> <message> <source>The selected directory already contain a mvd2 directory, no new database will be created</source> - <translation>The répertoire sélectionné contien déjà un répertoire mvd2 ; aucune nouvelle base de données ne va être créée</translation> + <translation type="obsolete">The répertoire sélectionné contien déjà un répertoire mvd2 ; aucune nouvelle base de données ne va être créée</translation> </message> </context> <context> @@ -1566,7 +1340,7 @@ Attention : </message> <message> <source>Importing image '%1' as dataset into cache directory...</source> - <translation>Image '%1' en cours d'import comme dataset dans le répertoire de cache...</translation> + <translation type="obsolete">Image '%1' en cours d'import comme dataset dans le répertoire de cache...</translation> </message> <message> <source>Loading image '%1'...</source> @@ -1690,7 +1464,7 @@ Si vous exécutez cette application via une système d'écran déporté, le </message> <message> <source>Unable to list suppored OpenGL versions using QGLFormat. Qt version is %1. Please upgrade to Qt 4.7.0 or newer.</source> - <translation>Impossible de lister les version OpenGL supportés via QGLFormat. Qt version is %1. Veuillez actualiser Qt à la version 4.7.0 ou plus. </translation> + <translation type="obsolete">Impossible de lister les version OpenGL supportés via QGLFormat. Qt version is %1. Veuillez actualiser Qt à la version 4.7.0 ou plus. </translation> </message> <message> <source>Runtime version of OpenGL used by Qt %1: %2.%3.</source> @@ -1716,6 +1490,10 @@ Si vous exécutez cette application via une système d'écran déporté, le %2</translation> </message> + <message> + <source>Unable to list supported OpenGL versions using QGLFormat. Qt version is %1. Please upgrade to Qt 4.7.0 or newer.</source> + <translation>Impossible de lister les versions OpenGL supportées à partir du QGLFormat. La version de Qt est %1. Veuillez mettre à jour Qt à la version 4.7.0 ou ultérieure.</translation> + </message> </context> <context> <name>mvd::ImportImagesDialog</name> @@ -2926,7 +2704,7 @@ p, li { white-space: pre-wrap; } <td> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mouse wheel</p></td> <td> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rotate layers</p></td></tr> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zoom in out</p></td></tr> <tr> <td></td> <td> @@ -2934,7 +2712,7 @@ p, li { white-space: pre-wrap; } <td> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Mouse wheel</p></td> <td> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zoom in out</p></td></tr> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rotate layers</p></td></tr> <tr> <td></td> <td> @@ -3431,7 +3209,7 @@ p, li { white-space: pre-wrap; } <td> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Molette</p></td> <td> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rotation circulaire des couches dans de la pile</p></td></tr> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zoom avant/arrière</p></td></tr> <tr> <td></td> <td> @@ -3439,7 +3217,7 @@ p, li { white-space: pre-wrap; } <td> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Molette</p></td> <td> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zoom avant/arrière</p></td></tr> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rotation circulaire des couches dans de la pile</p></td></tr> <tr> <td></td> <td> @@ -4138,11 +3916,11 @@ Voulez-vous sauvegarder avant de quitter ?</translation> </message> <message> <source>&Import image...</source> - <translation>&Importer image...</translation> + <translation type="obsolete">&Importer image...</translation> </message> <message> <source>Import image...</source> - <translation>Importer image...</translation> + <translation type="obsolete">Importer image...</translation> </message> <message> <source>Ctrl++</source> @@ -4226,7 +4004,7 @@ Voulez-vous sauvegarder avant de quitter ?</translation> </message> <message> <source>Enable OTB_USE_QT4 preprocessor definition at compile time!</source> - <translation>Activer la définition de pré-processeur OTB_USE_QT4 lors de la compilation !</translation> + <translation type="obsolete">Activer la définition de pré-processeur OTB_USE_QT4 lors de la compilation !</translation> </message> <message> <source>Layer stack</source> @@ -4318,6 +4096,82 @@ Charger '%1' provoquera l'affichage des couches dans une vue non <translation>Localisation</translation> </message> </context> +<context> + <name>mvd::MaplaApplication</name> + <message> + <source></source> + <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> + <translation></translation> + </message> +</context> +<context> + <name>mvd::MaplaMainWindow</name> + <message> + <source>Main window</source> + <translation>Fenêtre principale</translation> + </message> + <message> + <source>&File</source> + <translation>&Fichier</translation> + </message> + <message> + <source>&Help</source> + <translation>Aid&e</translation> + </message> + <message> + <source>&Edit</source> + <translation>Éditio&n</translation> + </message> + <message> + <source>&Quit</source> + <translation>&Quitter</translation> + </message> + <message> + <source>Quit application.</source> + <translation>Quitter l'application.</translation> + </message> + <message> + <source>Ctrl+Q</source> + <translation>Ctrl+Q</translation> + </message> + <message> + <source>&Import image...</source> + <translation>&Importer image...</translation> + </message> + <message> + <source>Import image...</source> + <translation>Importer une image...</translation> + </message> + <message> + <source>Import image-file.</source> + <translation>Importer un fichier image.</translation> + </message> + <message> + <source>Ctrl+O</source> + <translation>Ctrl+O</translation> + </message> + <message> + <source>&About...</source> + <translation>&À propos de...</translation> + </message> + <message> + <source>About...</source> + <translation>À propos de...</translation> + </message> + <message> + <source>Prefere&nces</source> + <translation>Préfére&nces</translation> + </message> + <message> + <source></source> + <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> + <translation></translation> + </message> + <message> + <source>Enable OTB_USE_QT4 preprocessor definition at compile time!</source> + <translation>Activer la définition de pré-processeur OTB_USE_QT4 lors de la compilation !</translation> + </message> +</context> <context> <name>mvd::Math</name> <message> @@ -4647,7 +4501,7 @@ Merci d'en sélectionner un autre.</translation> </message> <message> <source>Resolution</source> - <translation type="obsolete">Resolution</translation> + <translation type="obsolete">Résolution</translation> </message> <message> <source>OTB filter</source> @@ -4685,6 +4539,10 @@ Merci d'en sélectionner un autre.</translation> <source>Minimum size:</source> <translation>Taille minimum :</translation> </message> + <message> + <source>pixel(s)</source> + <translation>pixel(s)</translation> + </message> </context> <context> <name>mvd::ProcessObjectObserver</name> @@ -4893,6 +4751,46 @@ Merci d'en sélectionner un autre.</translation> <comment>Necessary for lupdate to be aware of C++ namespaces. Context comment for translator.</comment> <translation></translation> </message> + <message> + <source>Read tag '%1' does not match expected tag '%2'.</source> + <translation>L'étiquette lue '%1' ne correspond pas à l'étiquette attendue '%2'.</translation> + </message> + <message> + <source>Invalid tag name '%1'.</source> + <translation>Nom d'étiquette invalide '%1'.</translation> + </message> + <message> + <source>Array dimension (%1) does not match expected dimension (%2).</source> + <translation>Les dimensions du tableau (%1) ne correspondent pas aux dimensions attendues (%2).</translation> + </message> + <message> + <source>Histogram sample count (%1) does not match written sample count (%2).</source> + <translation>Le nombre d'échantillons dans l'histrogramme (%1) ne correspond pas au nombre d'échantillons écrits (%2).</translation> + </message> + <message> + <source>Histogram mins dimension (%1) does not match expected dimension (%2).</source> + <translation>La taille des minima d'histogramme (%1) ne correspond pas à la taille attendue (%2).</translation> + </message> + <message> + <source>Histogram maxs dimension (%1) does not match expected dimension (%2).</source> + <translation>La taille des maxima d'histogramme (%1) ne correspond pas à la taille attendue (%2).</translation> + </message> + <message> + <source>Histogram dimension (%1) does not match expected dimension (%2).</source> + <translation>La taille de l'histogramme (%1) ne correspond pas à la taille attendue (%2).</translation> + </message> + <message> + <source>Histogram bin count (%1) does not match expected bin count (%2).</source> + <translation>Le nombre de barres dans l'histogramme (%1) ne correspond pas à la valeur attendue (%2).</translation> + </message> + <message> + <source>Histogram sample count (%1) does not match expected sample count (%2).</source> + <translation>Le nombre d'échantillons dans l'histogramme (%1) ne correspond pas à la valeur attendue (%2).</translation> + </message> + <message> + <source>Read sample count (histogram) (%1) does not match written sample count (%2).</source> + <translation>Le nombre d'échantillons lus (histrogramme) (%1) ne correspond pas au nombre d'échantillons écrits (%2).</translation> + </message> </context> <context> <name>mvd::TreeWidget</name>