aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/geometry/broad_phase_multi_sap/sap_region.rs13
1 files changed, 12 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 7e38eaa..f54b4ae 100644
--- a/src/geometry/broad_phase_multi_sap/sap_region.rs
+++ b/src/geometry/broad_phase_multi_sap/sap_region.rs
@@ -192,12 +192,23 @@ impl SAPRegion {
pub fn update_after_subregion_removal(&mut self, proxies: &SAPProxies, layer_depth: i8) {
if self.needs_update_after_subregion_removal {
for axis in &mut self.axes {
- self.subproper_proxy_count -= axis
+ let removed_count = axis
.delete_deleted_proxies_and_endpoints_after_subregion_removal(
proxies,
&mut self.existing_proxies,
layer_depth,
);
+
+ if removed_count > self.subproper_proxy_count {
+ log::debug!(
+ "Reached unexpected state: attempted to remove more sub-proper proxies than added (removing: {}, total: {}).",
+ removed_count,
+ self.subproper_proxy_count
+ );
+ self.subproper_proxy_count = 0;
+ } else {
+ self.subproper_proxy_count -= removed_count;
+ }
}
self.needs_update_after_subregion_removal = false;
}