add option for slightly more accurate, and slightly slower algorithm for ray versus convex, used in btCollisionWorld::rayTest.

rayResult.m_flags |= btTriangleRaycastCallback::kF_UseGjkConvexRaytest;
See Demos/RaytestDemo/RaytestDemo.cpp for usage
This fixes issue 146, longest outstanding from 2008.
This commit is contained in:
erwin.coumans
2013-09-12 20:25:06 +00:00
parent e792f0e549
commit fa2276f1ca
3 changed files with 16 additions and 7 deletions

View File

@@ -68,6 +68,9 @@ void RaytestDemo::castRays()
sDebugDraw.drawLine(from,to,btVector4(0,0,0,1));
btCollisionWorld::AllHitsRayResultCallback allResults(from,to);
allResults.m_flags |= btTriangleRaycastCallback::kF_KeepUnflippedNormal;
//optional kF_UseGjkConvexRaytest flag enabled a slightly more accurate and slightly slower algorithm
allResults.m_flags |= btTriangleRaycastCallback::kF_UseGjkConvexRaytest;
m_dynamicsWorld->rayTest(from,to,allResults);
for (int i=0;i<allResults.m_hitFractions.size();i++)