Code: Select all
struct FilterCallback : public btOverlapFilterCallback
{
// return true when pairs need collision
virtual bool needBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const
{
bool collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;
collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);
if(collides)
num_collides_broad++;
return collides;
}
};
btOverlapFilterCallback * filterCallback = new BroadFilterCallback();
dynamicsWorld->getPairCache()->setOverlapFilterCallback(filterCallback);
Is there an better/easier way to get the stats I want and why does my callback not fire with the ball rolling on the ground?
thanks!