Deprecate semantics support in core data structures #622
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The idea of optionally embed semantics information in the core data structures of iDynTree (in which frame a position is expressed, w.r.t. to which frame the derivative of a velocities is taken) was something we worked back in 2015 with @nunoguedelha, see the "Semantics check" section in #29 .
While being an interesting feature that address a clear user need, it was never effectivly used for the following reasons:
While the presence of this code is mostly harmless at the moment, it drastically complicates the readability of the library both for new users of iDynTree interesting in contributing functionalities, and also for experienced users that may want to refactor the core of iDynTree to add new functionalities such as auto-diff. For this reason, as discussed with @nunoguedelha even if it makes me sad the best choice is to deprecated this code in iDynTree 1.0, and remove it in iDynTree 2.0 .
This PR deprecates all the methods of the classes that end in
Semantics
, and all the methods that return semantics classes such asgetSemantics
orsetSemantics
. The actual code will be removed during the iDynTree 2.0 development.