diff options
| author | Crozet Sébastien <developer@crozet.re> | 2020-11-19 11:09:40 +0100 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2020-11-19 18:00:43 +0100 |
| commit | 0d49a809746bade39f844a13f74a2fc03fc1d21f (patch) | |
| tree | 36a3e14bd7e31f6cb5e3e1b28bf695acfc99b4d7 /src | |
| parent | 1b0f39073fa5f87ec275fff0125649de123e6fa9 (diff) | |
| download | rapier-0d49a809746bade39f844a13f74a2fc03fc1d21f.tar.gz rapier-0d49a809746bade39f844a13f74a2fc03fc1d21f.tar.bz2 rapier-0d49a809746bade39f844a13f74a2fc03fc1d21f.zip | |
Add a parameter to indicate if collider removal should wake-up its parent.
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynamics/rigid_body_set.rs | 2 | ||||
| -rw-r--r-- | src/geometry/collider_set.rs | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/dynamics/rigid_body_set.rs b/src/dynamics/rigid_body_set.rs index b857173..ec4d388 100644 --- a/src/dynamics/rigid_body_set.rs +++ b/src/dynamics/rigid_body_set.rs @@ -207,7 +207,7 @@ impl RigidBodySet { * Remove colliders attached to this rigid-body. */ for collider in &rb.colliders { - colliders.remove(*collider, self); + colliders.remove(*collider, self, false); } /* diff --git a/src/geometry/collider_set.rs b/src/geometry/collider_set.rs index fd94675..60b9225 100644 --- a/src/geometry/collider_set.rs +++ b/src/geometry/collider_set.rs @@ -78,10 +78,14 @@ impl ColliderSet { } /// Remove a collider from this set and update its parent accordingly. + /// + /// If `wake_up` is `true`, the rigid-body the removed collider is attached to + /// will be woken up. pub fn remove( &mut self, handle: ColliderHandle, bodies: &mut RigidBodySet, + wake_up: bool, ) -> Option<Collider> { let collider = self.colliders.remove(handle)?; @@ -90,7 +94,10 @@ impl ColliderSet { */ if let Some(parent) = bodies.get_mut_internal(collider.parent) { parent.remove_collider_internal(handle, &collider); - bodies.wake_up(collider.parent, true); + + if wake_up { + bodies.wake_up(collider.parent, true); + } } /* |
