aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-06-21 09:28:41 +0200
committerSébastien Crozet <developer@crozet.re>2022-06-21 09:28:41 +0200
commit66f1d6fef7dc11539cc4f2131b2ecea675bce5ee (patch)
tree804acbadf201c358d1ebefe7a451feda73407f48
parentb00324756dd923afcc6e0dbf401ffa361debd470 (diff)
downloadrapier-66f1d6fef7dc11539cc4f2131b2ecea675bce5ee.tar.gz
rapier-66f1d6fef7dc11539cc4f2131b2ecea675bce5ee.tar.bz2
rapier-66f1d6fef7dc11539cc4f2131b2ecea675bce5ee.zip
Fix contact event generation for shapes generating mulitple contact manifolds.
-rw-r--r--src/geometry/narrow_phase.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/geometry/narrow_phase.rs b/src/geometry/narrow_phase.rs
index 15d16fa..e7b9a34 100644
--- a/src/geometry/narrow_phase.rs
+++ b/src/geometry/narrow_phase.rs
@@ -887,6 +887,8 @@ impl NarrowPhase {
.map(|p2| bodies[p2.handle].dominance)
.unwrap_or(zero);
+ pair.has_any_active_contact = false;
+
for manifold in &mut pair.manifolds {
let world_pos1 = manifold.subshape_pos1.prepend_to(&co1.pos);
manifold.data.solver_contacts.clear();
@@ -898,7 +900,6 @@ impl NarrowPhase {
manifold.data.normal = world_pos1 * manifold.local_n1;
// Generate solver contacts.
- pair.has_any_active_contact = false;
for (contact_id, contact) in manifold.points.iter().enumerate() {
assert!(
contact_id <= u8::MAX as usize,