Skip to content

v1.4.0

Latest
Compare
Choose a tag to compare
@patrikhuber patrikhuber released this 27 Mar 20:15
· 42 commits to master since this release

This release contains quite a few major updates, alongside some smaller "maintenance" updates.

  • Removed the use of the GLM library completely, and now using Eigen types throughout. (E.g. 413c9f9, 7e99ab1, a23ee0b, 096b68e, and other commits). This simplified a lot of code. Rewrote glm::project(), perspective() and ortho() using Eigen (see eos/render/matrix_projection.hpp).
  • Rewrote the nonlinear Ceres fitting using Eigen. This means no more messing around with GLM_FORCE_UNRESTRICTED_GENTYPE. Eigen and Ceres work much nicer together. Many improvements, and most cost functions were renamed - check the commit message in d101ca5 for more details. Also reworked PriorCost and renamed it to NormCost (e79da91), and updated fit-model-ceres.
  • Now doing a proper conversion between quaternions (or rotation matrices) and Euler angles that makes sense (1023e4b, a23ee0b)
  • Added the necessary Python bindings so that the fitting loop can now be written and customised in Python (#347) (Thank you @omar-h-omar)
  • Updated eigen3-nnls, nanoflann, toml11 and pybind11 submodules to their latest version. Especially toml11 had a big update, and the updated pybind11 supports Python 3.11.
  • Minor change, but may break downstream code: Moved fitting::concat to contour_correspondence.hpp (1029f96)
  • Modernised CMake scripts a bit. Removed add_definitions() for Boost (1de8068), and used CMake targets whenever available (e.g. Ceres::ceres).

The documentation website is updated to v1.4.0.

The updated release is available on PyPI, with wheels for Python 3.9, 3.10 and 3.11 on Windows (x64), and source installation for other platforms.

Note: It is very likely that the next release will require the C++17 standard, and will no longer compile in C++14 mode.