aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-06-24 15:11:37 +0200
committerSébastien Crozet <developer@crozet.re>2022-07-01 12:00:18 +0200
commitd6b61898612d05e12b52d9636e9bb21dccdca4bb (patch)
treef1f942000e6e80e6aad431ef2b387fb0cf532eea
parent8546434f35d8a8a3e6e6bb09c7985ab409a17d8d (diff)
downloadrapier-d6b61898612d05e12b52d9636e9bb21dccdca4bb.tar.gz
rapier-d6b61898612d05e12b52d9636e9bb21dccdca4bb.tar.bz2
rapier-d6b61898612d05e12b52d9636e9bb21dccdca4bb.zip
Properly wake-up rigid-bodies that must be awaken because of joints
-rw-r--r--src/pipeline/physics_pipeline.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs
index 19749be..16f2830 100644
--- a/src/pipeline/physics_pipeline.rs
+++ b/src/pipeline/physics_pipeline.rs
@@ -371,6 +371,16 @@ impl PhysicsPipeline {
hooks: &dyn PhysicsHooks,
events: &dyn EventHandler,
) {
+ // Apply some of delayed wake-ups.
+ for handle in impulse_joints
+ .to_wake_up
+ .drain(..)
+ .chain(multibody_joints.to_wake_up.drain(..))
+ {
+ islands.wake_up(bodies, handle, true);
+ }
+
+ // Apply modifications.
let modified_bodies = bodies.take_modified();
let mut modified_colliders = colliders.take_modified();
let mut removed_colliders = colliders.take_removed();