aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/geometry/broad_phase_multi_sap.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/geometry/broad_phase_multi_sap.rs b/src/geometry/broad_phase_multi_sap.rs
index bb30e14..10c0c8b 100644
--- a/src/geometry/broad_phase_multi_sap.rs
+++ b/src/geometry/broad_phase_multi_sap.rs
@@ -208,8 +208,9 @@ impl SAPAxis {
let mut deleted = 0;
for endpoint in &self.endpoints {
if endpoint.value < self.min_bound {
- if endpoint.is_end() {
- existing_proxies.set(endpoint.proxy() as usize, false);
+ let proxy_idx = endpoint.proxy() as usize;
+ if endpoint.is_end() && existing_proxies[proxy_idx] {
+ existing_proxies.set(proxy_idx, false);
deleted += 1;
}
} else {
@@ -219,7 +220,8 @@ impl SAPAxis {
for endpoint in self.endpoints.iter().rev() {
if endpoint.value > self.max_bound {
- if endpoint.is_start() {
+ let proxy_idx = endpoint.proxy() as usize;
+ if endpoint.is_start() && existing_proxies[proxy_idx] {
existing_proxies.set(endpoint.proxy() as usize, false);
deleted += 1;
}