From 3f223aaf9e8334893e6ed0ca1e9e72604f5ab35d Mon Sep 17 00:00:00 2001 From: Kane Rogers Date: Wed, 25 Aug 2021 15:19:52 +1000 Subject: Fix bug with colliders without rigid bodies - When `NarrowPhase` adds a collision pair, it checks to make sure that they don't have the same parent - In the case where the colliders have no parents (eg. they are not attached to a `RigidBody`) this yields a false positive. - The fix is to ensure that colliders have a parent before ignoring the pair. --- src/geometry/narrow_phase.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/geometry') diff --git a/src/geometry/narrow_phase.rs b/src/geometry/narrow_phase.rs index c3c7685..18900b9 100644 --- a/src/geometry/narrow_phase.rs +++ b/src/geometry/narrow_phase.rs @@ -571,8 +571,12 @@ impl NarrowPhase { let co_parent2: Option<&ColliderParent> = colliders.get(pair.collider2.0); if co_parent1.map(|p| p.handle) == co_parent2.map(|p| p.handle) { - // Same parents. Ignore collisions. - return; + if co_parent1.is_some() { + // Same parents. Ignore collisions. + return; + } + + // These colliders have no parents - continue. } let (gid1, gid2) = self.graph_indices.ensure_pair_exists( -- cgit