I'm trying to get collision information between :
- Kinematic VS Static
- Kinematic VS Kinematic
Here is the code:
Create kinematic object:
Code: Select all
btCollisionShape* shape = new btCapsuleShape(0.2f, 0.5f);
m_motionState = new MyMotionState();
btRigidBody::btRigidBodyConstructionInfo rigidInfo(0, m_motionState, shape, btVector3(0, 0, 0));
m_RigidBody = new btRigidBody(rigidInfo);
m_RigidBody->setCollisionFlags(btCollisionObject::CF_KINEMATIC_OBJECT | btCollisionObject::CF_NO_CONTACT_RESPONSE);
m_RigidBody->setActivationState(DISABLE_DEACTIVATION)
Code: Select all
m_dynamicsWorld->stepSimulation(deltaTime, subStep, fixedTimeStep);
btDispatcher* dispatcher = m_dynamicsWorld->getDispatcher();
int numManifolds = dispatcher->getNumManifolds();
for (int i = 0; i < numManifolds; ++i)
{
btPersistentManifold* contactManifold = dispatcher->getManifoldByIndexInternal(i);
btCollisionObject* obA = static_cast<btCollisionObject*>(contactManifold->getBody0());
btCollisionObject* obB = static_cast<btCollisionObject*>(contactManifold->getBody1());
}
If instead I create a normal rigid body (remove the flags and give a mass > 0), I do get contactManifold.
Any idea ?
Thanks !