Add btBroadphaseInterface::aabbTest. btDbvtBroadphase and btAxisSweep3 should perform well, as long as the raycast accelerator is enabled.
This should fix the btCollisionWorld::contactTest(btCollisionObject* colObj, ContactResultCallback& resultCallback); Thanks to Ola for the report!
This commit is contained in:
@@ -965,7 +965,7 @@ struct btBridgedManifoldResult : public btManifoldResult
|
||||
|
||||
|
||||
|
||||
struct btSingleContactCallback : public btBroadphaseRayCallback
|
||||
struct btSingleContactCallback : public btBroadphaseAabbCallback
|
||||
{
|
||||
|
||||
btCollisionObject* m_collisionObject;
|
||||
@@ -1012,8 +1012,8 @@ void btCollisionWorld::contactTest( btCollisionObject* colObj, ContactResultCall
|
||||
btVector3 aabbMin,aabbMax;
|
||||
colObj->getCollisionShape()->getAabb(colObj->getWorldTransform(),aabbMin,aabbMax);
|
||||
btSingleContactCallback contactCB(colObj,this,resultCallback);
|
||||
|
||||
m_broadphasePairCache->rayTest(colObj->getWorldTransform().getOrigin(),colObj->getWorldTransform().getOrigin(),contactCB,aabbMin,aabbMax);
|
||||
|
||||
m_broadphasePairCache->aabbTest(aabbMin,aabbMax,contactCB);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user