From 03e53627d6e6df0c7dd4e5d29226e7bba29ee18c Mon Sep 17 00:00:00 2001 From: erwin coumans Date: Wed, 29 Apr 2015 12:09:12 -0700 Subject: [PATCH] fix an issue in MPR collision detection (which is not used by default), only for testing in the VoronoiFracture demo --- .../NarrowPhaseCollision/btMprPenetration.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/BulletCollision/NarrowPhaseCollision/btMprPenetration.h b/src/BulletCollision/NarrowPhaseCollision/btMprPenetration.h index e311b2212..052f48b8c 100644 --- a/src/BulletCollision/NarrowPhaseCollision/btMprPenetration.h +++ b/src/BulletCollision/NarrowPhaseCollision/btMprPenetration.h @@ -678,8 +678,15 @@ inline float btMprVec3PointTriDist2(const btVector3 *P, q = btMprVec3Dot(&a, &d2); r = btMprVec3Dot(&d1, &d2); - s = (q * r - w * p) / (w * v - r * r); - t = (-s * r - q) / w; + btScalar div = (w * v - r * r); + if (btMprIsZero(div)) + { + s=-1; + } else + { + s = (q * r - w * p) / div; + t = (-s * r - q) / w; + } if ((btMprIsZero(s) || s > 0.f) && (btMprEq(s, 1.f) || s < 1.f)