Skip to content

Support of ITK 5.x in OTB

Cédric Traizet requested to merge itk5_preperation into develop

Summary

ITK 5.0 has been released !

This merge request is based on the work done in !194 (closed), the original branch ( cs-si:itk5_preperation) has been rebased on top of develop, and additional changes have been made to make the branch compatible with the release.

Rationale

See the ITK 5 migration guidelines

Prior to ITK 5.0, only a subset of C+11 functionality was used, when available, through backports and macros. ITK now requires a C+11 standard compiler. And this get rid of lot of macros. Move to C++11 does not affect OTB since it has already moved to a higher standard (C++14). Meanwhile in this MR we introduce some C++17 concepts, as ITK 5.4 will be the first release to fully support C++17

Another important API change in ITK is its threading model. This affects OTB , Remote Modules and projects depending on OTB (both official and unofficial) in large scale. This merge request covers the use of the new threading model introduced with ITK 5.0.

This MR is fully compatible with ITK 5 and drops compatibility with ITK 4.

With this MR, debian, openSuse and other distros can now provide a distribution package for OTB.

Implementation Details

  • Rebase the 5 years branch to the current develop branch
  • Use the new Threading model when possible ThreadedGenerateData => DynamicThreadedGenerateData
  • Migrate ITK mutexes to std::mutex
  • Migrate ITKTree to Boost Graph implementation for Vector Data handling
  • Migrate ProgressReporter to ProgressReportManager
  • Remove ITK 4 compatibility
  • 100% tests pass
  • Functional tests
  • Performance tests

Copyright

The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.


Check before merging:

  • All discussions are resolved
  • At least 2 👍 votes from core developers, no 👎 vote.
  • The feature branch is (reasonably) up-to-date with the base branch
  • Dashboard is green
  • Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
  • Optionally, run git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i on latest changes and commit
Edited by Thibaut ROMAIN

Merge request reports

Loading