Skip to content

Commit 9e1113c

Browse files
authored
fix compilation for feature enhanced-determinism (#739)
1 parent 76357e3 commit 9e1113c

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

.github/workflows/rapier-ci-build.yml

+4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ jobs:
5959
run: cd crates/rapier_testbed2d; cargo check --verbose --features parallel;
6060
- name: Check rapier_testbed3d --features parallel
6161
run: cd crates/rapier_testbed3d; cargo check --verbose --features parallel;
62+
- name: Check rapier_testbed2d --features enhanced-determinism
63+
run: cd crates/rapier2d; cargo check --verbose --features enhanced-determinism;
64+
- name: Check rapier_testbed3d --features enhanced-determinism
65+
run: cd crates/rapier3d; cargo check --verbose --features enhanced-determinism;
6266
- name: Check rapier-examples-2d
6367
run: cargo check -j 1 --verbose -p rapier-examples-2d;
6468
- name: Check rapier-examples-3d

src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,12 @@ impl BroadPhaseMultiSap {
231231
* Actually remove the colliders proxies.
232232
*/
233233
for removed in removed_colliders {
234-
if let Some(proxy_id) = self.colliders_proxy_ids.remove(removed) {
234+
#[cfg(feature = "enhanced-determinism")]
235+
let proxy_id = self.colliders_proxy_ids.swap_remove(removed);
236+
#[cfg(not(feature = "enhanced-determinism"))]
237+
let proxy_id = self.colliders_proxy_ids.remove(removed);
238+
239+
if let Some(proxy_id) = proxy_id {
235240
if proxy_id != crate::INVALID_U32 {
236241
self.proxies.remove(proxy_id);
237242
}

src/geometry/broad_phase_multi_sap/sap_layer.rs

+3
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,9 @@ impl SAPLayer {
356356

357357
// Check if we can actually delete this region.
358358
if !region.contains_subproper_proxies() {
359+
#[cfg(feature = "enhanced-determinism")]
360+
let region_id = region_id.swap_remove();
361+
#[cfg(not(feature = "enhanced-determinism"))]
359362
let region_id = region_id.remove();
360363

361364
// We can delete this region. So we need to tell the larger

src/pipeline/physics_pipeline.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -426,11 +426,17 @@ impl PhysicsPipeline {
426426

427427
// Apply some of delayed wake-ups.
428428
self.counters.stages.user_changes.start();
429-
for handle in impulse_joints
429+
#[cfg(feature = "enhanced-determinism")]
430+
let impulse_joints_iterator = impulse_joints
431+
.to_wake_up
432+
.drain(..)
433+
.chain(multibody_joints.to_wake_up.drain(..));
434+
#[cfg(not(feature = "enhanced-determinism"))]
435+
let impulse_joints_iterator = impulse_joints
430436
.to_wake_up
431437
.drain()
432-
.chain(multibody_joints.to_wake_up.drain())
433-
{
438+
.chain(multibody_joints.to_wake_up.drain());
439+
for handle in impulse_joints_iterator {
434440
islands.wake_up(bodies, handle.0, true);
435441
}
436442

0 commit comments

Comments
 (0)