I'm using this code in the callback,
Code: Select all
void Physics::defaultNearCallback(btBroadphasePair& collisionPair, btCollisionDispatcher& dispatcher, btDispatcherInfo& dispatchInfo) {
btCollisionObject* colObj0 = (btCollisionObject*)collisionPair.m_pProxy0->m_clientObject;
btCollisionObject* colObj1 = (btCollisionObject*)collisionPair.m_pProxy1->m_clientObject;
if(dispatcher.needsCollision(colObj0,colObj1)) {
if(!collisionPair.m_algorithm) {
collisionPair.m_algorithm = dispatcher.findAlgorithm(colObj0,colObj1);
}
if(collisionPair.m_algorithm) {
btManifoldResult contactPointResult(colObj0,colObj1);
if(dispatchInfo.m_dispatchFunc == btDispatcherInfo::DISPATCH_DISCRETE) {
collisionPair.m_algorithm->processCollision(colObj0,colObj1,dispatchInfo,&contactPointResult);
} else {
float toi = collisionPair.m_algorithm->calculateTimeOfImpact(colObj0,colObj1,dispatchInfo,&contactPointResult);
if(dispatchInfo.m_timeOfImpact > toi) {
dispatchInfo.m_timeOfImpact = toi;
}
}
}
}
}
Thanks