diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-06-21 12:39:09 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-21 12:39:09 +0200 |
| commit | d708ca01d980e7920103ad81feffbf39c6611e5e (patch) | |
| tree | 804acbadf201c358d1ebefe7a451feda73407f48 /src | |
| parent | b00324756dd923afcc6e0dbf401ffa361debd470 (diff) | |
| parent | 66f1d6fef7dc11539cc4f2131b2ecea675bce5ee (diff) | |
| download | rapier-d708ca01d980e7920103ad81feffbf39c6611e5e.tar.gz rapier-d708ca01d980e7920103ad81feffbf39c6611e5e.tar.bz2 rapier-d708ca01d980e7920103ad81feffbf39c6611e5e.zip | |
Merge pull request #346 from dimforge/missing-events
Fix contact event generation for shapes generating multiple contact manifolds.
Diffstat (limited to 'src')
| -rw-r--r-- | src/geometry/narrow_phase.rs | 3 |
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, |
