Below is an example of what I'm trying to do.
Code: Select all
struct DisablePairCollision : public btCollisionWorld::ContactResultCallback
{
virtual btScalar addSingleResult(btManifoldPoint& cp, const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1)
{
btTransform bodyMatA, bodyMatB;
bodyMatA = colObj0->getWorldTransform();
bodyMatB = colObj1->getWorldTransform();
btTransform frameInA, frameInB;
frameInA = bodyMatB * bodyMatA.inverse();
frameInB.setIdentity();
btGeneric6DofConstraint* Constraint;
Constraint = new btGeneric6DofConstraint( colObj0, colObj1, frameInA, frameInB, true );
Constraint->setLinearLowerLimit( btVector3(1, 1, 1 ) );
Constraint->setLinearUpperLimit( btVector3(0, 0, 0 ) );
Constraint->setAngularLowerLimit( btVector3(1, 1, 1 ) );
Constraint->setAngularUpperLimit( btVector3(0, 0, 0 ) );
DynamicWorld->addConstraint(Constraint, true);
return 0;
}
};