aboutsummaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-04-02 16:23:20 +0200
committerCrozet Sébastien <developer@crozet.re>2021-04-02 16:23:20 +0200
commitd9d89afb6e681ed9e04c61cc17865df135aa6f92 (patch)
treeb99401ff3cb3efd9c7db3bb1e8c56ac61ad51a58 /src/geometry
parent4a0b390f9b684bcd58a48fec06f4a2c95e6f21d4 (diff)
downloadrapier-d9d89afb6e681ed9e04c61cc17865df135aa6f92.tar.gz
rapier-d9d89afb6e681ed9e04c61cc17865df135aa6f92.tar.bz2
rapier-d9d89afb6e681ed9e04c61cc17865df135aa6f92.zip
Fix determinism problem in the broad-phase after snapshot restoration.
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/broad_phase_multi_sap/sap_region.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/geometry/broad_phase_multi_sap/sap_region.rs b/src/geometry/broad_phase_multi_sap/sap_region.rs
index 4cebdda..40034c9 100644
--- a/src/geometry/broad_phase_multi_sap/sap_region.rs
+++ b/src/geometry/broad_phase_multi_sap/sap_region.rs
@@ -55,8 +55,16 @@ impl SAPRegion {
}
old.update_count = 0;
- old.existing_proxies.clear();
+
+ if cfg!(feature = "enhanced-determinism") {
+ old.existing_proxies = BitVec::new();
+ } else {
+ old.existing_proxies.clear();
+ }
+
old.id_in_parent_subregion = crate::INVALID_U32;
+ old.subregions.clear();
+ old.needs_update_after_subregion_removal = false;
// The rest of the fields should be "empty"
assert_eq!(old.subproper_proxy_count, 0);