code-google-com / bullet

Automatically exported from code.google.com/p/bullet
0 stars 0 forks source link

btCollisionPairCallback::processOverlap always returns false and so can't remove pairs #338

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
btHashedOverlappingPairCache::processAllOverlappingPairs calls
btCollisionPairCallback::processOverlap. If it returns true then
processAllOverlappingPairs would remove a contact pair. However, the
callback actually can't return true but will always return false.

btCollisionPairCallback:
virtual bool btCollisionPairCallback::processOverlap(btBroadphasePair& pair)
{
 (*m_dispatcher->getNearCallback())(pair,*m_dispatcher,m_dispatchInfo);
 return false;
}

The solution would be to let the nearCallback return a BOOL to determine if
the pair should be removed.

This functionality is important to get rid of no more used collisions pairs
when having custom collision filtering with the nearCallback.

Original issue reported on code.google.com by linz...@gmx.de on 22 Jan 2010 at 1:38

GoogleCodeExporter commented 9 years ago
Closing old issues we won't fix anymore. We now focus on Bullet 3.x.

If you want to remove a collision pair, it needs to be manually done.

Original comment by erwin.coumans on 12 Sep 2013 at 9:25