diff options
Diffstat (limited to 'src/geometry')
| -rw-r--r-- | src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs | 7 | ||||
| -rw-r--r-- | src/geometry/broad_phase_multi_sap/sap_layer.rs | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs b/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs index 78b00b9..cd5ac28 100644 --- a/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs +++ b/src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs @@ -231,7 +231,12 @@ impl BroadPhaseMultiSap { * Actually remove the colliders proxies. */ for removed in removed_colliders { - if let Some(proxy_id) = self.colliders_proxy_ids.remove(removed) { + #[cfg(feature = "enhanced-determinism")] + let proxy_id = self.colliders_proxy_ids.swap_remove(removed); + #[cfg(not(feature = "enhanced-determinism"))] + let proxy_id = self.colliders_proxy_ids.remove(removed); + + if let Some(proxy_id) = proxy_id { if proxy_id != crate::INVALID_U32 { self.proxies.remove(proxy_id); } diff --git a/src/geometry/broad_phase_multi_sap/sap_layer.rs b/src/geometry/broad_phase_multi_sap/sap_layer.rs index 241f8d2..2620798 100644 --- a/src/geometry/broad_phase_multi_sap/sap_layer.rs +++ b/src/geometry/broad_phase_multi_sap/sap_layer.rs @@ -356,6 +356,9 @@ impl SAPLayer { // Check if we can actually delete this region. if !region.contains_subproper_proxies() { + #[cfg(feature = "enhanced-determinism")] + let region_id = region_id.swap_remove(); + #[cfg(not(feature = "enhanced-determinism"))] let region_id = region_id.remove(); // We can delete this region. So we need to tell the larger |
