diff --git a/src/collision/shapes/TriangleShape.cpp b/src/collision/shapes/TriangleShape.cpp index f2150e05..2a4bb869 100644 --- a/src/collision/shapes/TriangleShape.cpp +++ b/src/collision/shapes/TriangleShape.cpp @@ -182,8 +182,7 @@ bool TriangleShape::raycast(const Ray& ray, RaycastInfo& raycastInfo, Collider* if (hitFraction < decimal(0.0) || hitFraction > ray.maxFraction) return false; - Vector3 localHitNormal = (mPoints[1] - mPoints[0]).cross(mPoints[2] - mPoints[0]); - if (localHitNormal.dot(pq) > decimal(0.0)) localHitNormal = -localHitNormal; + Vector3 localHitNormal = mNormal.dot(pq) > decimal(0.0) ? mNormal : -mNormal; raycastInfo.body = collider->getBody(); raycastInfo.collider = collider;