use collision margin of btBvhTriangleMeshShape for convexTest.
Thanks to reltham for the contribution. http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2121&p=8454#p8454
This commit is contained in:
@@ -449,7 +449,7 @@ void btCollisionWorld::objectQuerySingle(const btConvexShape* castShape,const bt
|
||||
|
||||
BridgeTriangleConvexcastCallback(const btConvexShape* castShape, const btTransform& from,const btTransform& to,
|
||||
btCollisionWorld::ConvexResultCallback* resultCallback, btCollisionObject* collisionObject,btTriangleMeshShape* triangleMesh, const btTransform& triangleToWorld):
|
||||
btTriangleConvexcastCallback(castShape, from,to, triangleToWorld),
|
||||
btTriangleConvexcastCallback(castShape, from,to, triangleToWorld, triangleMesh->getMargin()),
|
||||
m_resultCallback(resultCallback),
|
||||
m_collisionObject(collisionObject),
|
||||
m_triangleMesh(triangleMesh)
|
||||
@@ -505,7 +505,7 @@ void btCollisionWorld::objectQuerySingle(const btConvexShape* castShape,const bt
|
||||
|
||||
BridgeTriangleConvexcastCallback(const btConvexShape* castShape, const btTransform& from,const btTransform& to,
|
||||
btCollisionWorld::ConvexResultCallback* resultCallback, btCollisionObject* collisionObject,btTriangleMeshShape* triangleMesh, const btTransform& triangleToWorld):
|
||||
btTriangleConvexcastCallback(castShape, from,to, triangleToWorld),
|
||||
btTriangleConvexcastCallback(castShape, from,to, triangleToWorld, triangleMesh->getMargin()),
|
||||
m_resultCallback(resultCallback),
|
||||
m_collisionObject(collisionObject),
|
||||
m_triangleMesh(triangleMesh)
|
||||
|
||||
@@ -105,19 +105,21 @@ void btTriangleRaycastCallback::processTriangle(btVector3* triangle,int partId,
|
||||
}
|
||||
|
||||
|
||||
btTriangleConvexcastCallback::btTriangleConvexcastCallback (const btConvexShape* convexShape, const btTransform& convexShapeFrom, const btTransform& convexShapeTo, const btTransform& triangleToWorld)
|
||||
btTriangleConvexcastCallback::btTriangleConvexcastCallback (const btConvexShape* convexShape, const btTransform& convexShapeFrom, const btTransform& convexShapeTo, const btTransform& triangleToWorld, const btScalar triangleCollisionMargin)
|
||||
{
|
||||
m_convexShape = convexShape;
|
||||
m_convexShapeFrom = convexShapeFrom;
|
||||
m_convexShapeTo = convexShapeTo;
|
||||
m_triangleToWorld = triangleToWorld;
|
||||
m_hitFraction = 1.0;
|
||||
m_triangleCollisionMargin = triangleCollisionMargin;
|
||||
}
|
||||
|
||||
void
|
||||
btTriangleConvexcastCallback::processTriangle (btVector3* triangle, int partId, int triangleIndex)
|
||||
{
|
||||
btTriangleShape triangleShape (triangle[0], triangle[1], triangle[2]);
|
||||
triangleShape.setMargin(m_triangleCollisionMargin);
|
||||
|
||||
btVoronoiSimplexSolver simplexSolver;
|
||||
|
||||
@@ -157,4 +159,4 @@ btTriangleConvexcastCallback::processTriangle (btVector3* triangle, int partId,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,8 +47,9 @@ public:
|
||||
btTransform m_convexShapeTo;
|
||||
btTransform m_triangleToWorld;
|
||||
btScalar m_hitFraction;
|
||||
btScalar m_triangleCollisionMargin;
|
||||
|
||||
btTriangleConvexcastCallback (const btConvexShape* convexShape, const btTransform& convexShapeFrom, const btTransform& convexShapeTo, const btTransform& triangleToWorld);
|
||||
btTriangleConvexcastCallback (const btConvexShape* convexShape, const btTransform& convexShapeFrom, const btTransform& convexShapeTo, const btTransform& triangleToWorld, const btScalar triangleCollisionMargin);
|
||||
|
||||
virtual void processTriangle (btVector3* triangle, int partId, int triangleIndex);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user