diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-06-24 15:11:37 +0200 |
|---|---|---|
| committer | Sébastien Crozet <developer@crozet.re> | 2022-07-01 12:00:18 +0200 |
| commit | d6b61898612d05e12b52d9636e9bb21dccdca4bb (patch) | |
| tree | f1f942000e6e80e6aad431ef2b387fb0cf532eea /src | |
| parent | 8546434f35d8a8a3e6e6bb09c7985ab409a17d8d (diff) | |
| download | rapier-d6b61898612d05e12b52d9636e9bb21dccdca4bb.tar.gz rapier-d6b61898612d05e12b52d9636e9bb21dccdca4bb.tar.bz2 rapier-d6b61898612d05e12b52d9636e9bb21dccdca4bb.zip | |
Properly wake-up rigid-bodies that must be awaken because of joints
Diffstat (limited to 'src')
| -rw-r--r-- | src/pipeline/physics_pipeline.rs | 10 |
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(); |
