SOFA v19.06


What’s new in SOFA v19.06

Breaking: Topologies

Most breaking changes:

  • Major change in Topology Container, compute all buffers at component init method and remove all buffer creation call from the getter.
  • Topology cleaning: Now unfound ID = UINT_MAX instead of -1.
  • Change triangles orientation in tetrahedron (triangle normals going outside of tetra)
  • See #866, #878, #967

Work on topology changes:

  • Work on Triangle2EdgeTopologicalMapping & Tetra2TriangleTopologicalMapping.
  • Work on Topology/State change Visitor and TopologyData propagation.
  • Fixes in components handling topology changes: Collision models, constraints, …
  • See #875, #876, #880, #889, #903, #953, #960, #985, #998

Improved: SofaPython3

The ending of Python2 support being very close (2020), SofaPython3 has become a prioritary task for several SOFA developpers.
This plugin is not ready enough for v19.06 release but is in the objectives of v19.12. To achieve this objective, we need all the help you can provide.

See SofaPython3 repository.

Breaking: Removing double+float

SOFA_FLOAT specific code has been removed.
SOFA now uses mainly SReal-based types like Vec3, Rigid3, … but it is still possible to use Vec3f and Vec3d if needed.
All types now have defined-precision (e.g: Vec2f, Vec3d) and undefined-precision (e.g: Vec2, Vec3) versions.

See #853.

Improved: Modularization

Task started 1 year ago, modularization consists in making SOFA modules really modular in a CMake point of view.
It permits to handle more precisely each module dependencies and prepares for NG refactoring.
For now, 7 old-modules have been modularized:

  • SofaDistanceGrid: see #389
  • SofaImplicitField: see #389
  • SofaPreconditioner: see #663
  • SofaSparseSolver: see #663
  • SofaExporter (new): see #915
  • SofaHaptics (new): see #945
  • SofaOpenglVisual (new): see #1080

Improved: Packaging

Packaging SOFA has never been easier. All CMake code has been improved to permit to generate a SOFA package (zip or installer) with or without plugins simply by running `make package`.
Main changes are:

  • A “plugins” directory has been added to separate module binaries from plugin binaries.
  • Plugins embedded in SOFA package are now self-contained and relocatable.
  • Several problems when using SOFA package (libraries and headers) as an external library were fixed.

See #637.

More changes

SofaQtQuick project (runSofa2) is still being improved. It is now cleaned and closer from Blender & Unity with the possibility to import prefabs in the scene.
See SofaQtQuick dev branch.

OpenGL performance issues (OglModel) have been fixed.
See #1069.

VideoRecorder has been replaced by the new VideoRecorderFFMPEG depending only on FFMPEG. It is lighter and creates directly videos (not images).
See #883.

SOFA v19.06 contributors

275 new topics on forum
166 merged pull-requests
36 closed issues
17 contributors on GitHub

Back to Top