diff options
| -rw-r--r-- | CHANGELOG.md | 6 | ||||
| -rw-r--r-- | src/dynamics/rigid_body.rs | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c780bd5..fe6e56e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v0.4.2 +- Fix a bug in angular inertia tensor computation that could cause rotations not to + work properly. +- Add `RigidBody::set_mass_properties` to set the mass properties of an already-constructed + rigid-body. + ## v0.4.1 - The `RigidBodyBuilder::principal_inertia` method has been deprecated and renamed to `principal_angular_inertia` for clarity. diff --git a/src/dynamics/rigid_body.rs b/src/dynamics/rigid_body.rs index 86a126f..5128b6f 100644 --- a/src/dynamics/rigid_body.rs +++ b/src/dynamics/rigid_body.rs @@ -142,6 +142,19 @@ impl RigidBody { &self.mass_properties } + /// Sets the rigid-body's mass properties. + /// + /// If `wake_up` is `true` then the rigid-body will be woken up if it was + /// put to sleep because it did not move for a while. + #[inline] + pub fn set_mass_properties(&mut self, props: MassProperties, wake_up: bool) { + if self.is_dynamic() && wake_up { + self.wake_up(true); + } + + self.mass_properties = props; + } + /// The handles of colliders attached to this rigid body. pub fn colliders(&self) -> &[ColliderHandle] { &self.colliders[..] |
