Changes to MultiBody Functionality

MultiBodies are now optional. Some MultiBody functionality has changed, and some MultiBody methods have been removed.

The MultiBody class is used to manage a logical collection of connected links. Prior to version 2.0, all physically connected objects were required to be part of a MultiBody. This lead to complications when multiple MultiBodies would merge to form a single body, or when a single MultiBody would split to become two bodies.

In version 2.0, MultiBody objects are now optional. The Link class is now a subclass of Mobile, so Links can be created as real objects in the simulated world, and can be connected or disconnected from other links as desired. The MultiBody object is now a distinct class. It can be used, if desired, to move or rotate a group of connected link objects, but it is otherwise not required for physically simulated bodies.

Some of the methods which MultiBody previously inherited from the Real class are now no longer available (since MultiBody is no longer a subclass of Real or Mobile). You must now call these methods directly on the link objects associated with the MultiBody. The method get-all-connected-links will help you

Freeing a MultiBody will also no longer free all of the connected Link and Joint objects, and the associated bodies will remain in the simulation. If you want to destroy the simulated objects, you should call the method free-all-connected-objects before freeing the MultiBody.

If your simulation made use of MultiBodies prior to version 2.0, you may need to modify your simulation to account for the changes described above.