aboutsummaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/broad_phase_multi_sap/broad_phase_multi_sap.rs7
-rw-r--r--src/geometry/broad_phase_multi_sap/sap_layer.rs3
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