Can you please tell how to Bullet can get a list of objects of class btRigidBody, collided with this object.
Sorry for my google.translate)
get list of collision pairs
-
- Posts: 149
- Joined: Fri Jun 24, 2011 8:53 am
Re: get list of collision pairs
The manual, reads:
The broadphase adds and removes overlapping pairs from a pair cache. The developer can choose the type of pair cache.
A collision dispatcher iterates over each pair, searches for a matching collision algorithm based on the types of objects involved and executes the collision algorithm computing contact points.
So, get all the manifolds and loop on them. I was pretty sure the manual included a code snippet in the past but I'm unable to find it myself so for your convenience, the code will be like
The broadphase adds and removes overlapping pairs from a pair cache. The developer can choose the type of pair cache.
A collision dispatcher iterates over each pair, searches for a matching collision algorithm based on the types of objects involved and executes the collision algorithm computing contact points.
So, get all the manifolds and loop on them. I was pretty sure the manual included a code snippet in the past but I'm unable to find it myself so for your convenience, the code will be like
Code: Select all
const int manifoldCount(dispatcher.getNumManifolds());
for(int loop = 0; loop < manifoldCount; loop++) {
const btPersistentManifold *mf = dispatcher.getManifoldByIndexInternal(loop);
const void *obja = mf->getBody0();
const void *objb = mf->getBody1();
if(obja == object || objb == object) {
// This manifold deals with the btRigidBody we are looking for.
// A manifold is a RB-RB pair containing a list of potential (predicted) contact points.
const unsigned int numContacts(mf->getNumContacts());
for(int check = 0; check < numContacts; check++) {
const btManifoldPoint &pt(mf->getContactPoint(check));
// do something here, in case you're interested.
}
}
}
-
- Posts: 2
- Joined: Fri Apr 13, 2012 4:11 am
Re: get list of collision pairs
thank you very much
-
- Posts: 43
- Joined: Fri Jun 15, 2012 7:11 am
Re: get list of collision pairs
just what i am looking for.
is the 'object' in the code referring to our btRigidBody object?
as getBody doesn't seem to be specify type.
is the 'object' in the code referring to our btRigidBody object?
as getBody doesn't seem to be specify type.
-
- Posts: 84
- Joined: Sun Jan 07, 2007 4:29 pm
- Location: Oxford, England