Changeset View
Changeset View
Standalone View
Standalone View
source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
| Context not available. | |||||
| btRigidBody* body = ctrl->GetRigidBody(); | btRigidBody* body = ctrl->GetRigidBody(); | ||||
| if (body) | if (body) | ||||
| { | { | ||||
| for (int i = m_dynamicsWorld->getNumConstraints()-1;i>=0;i--) | for (int i = ctrl->getNumCcdConstraintRefs() - 1; i >= 0; i--) | ||||
| { | { | ||||
| btTypedConstraint *con = m_dynamicsWorld->getConstraint(i); | btTypedConstraint* con = ctrl->getCcdConstraintRef(i); | ||||
| con->getRigidBodyA().activate(); | |||||
| con->getRigidBodyB().activate(); | |||||
| m_dynamicsWorld->removeConstraint(con); | m_dynamicsWorld->removeConstraint(con); | ||||
| body->removeConstraintRef(con); | ctrl->removeCcdConstraintRef(con); | ||||
| //delete con; //might be kept by python KX_ConstraintWrapper | //delete con; //might be kept by python KX_ConstraintWrapper | ||||
| } | } | ||||
| m_dynamicsWorld->removeRigidBody(ctrl->GetRigidBody()); | m_dynamicsWorld->removeRigidBody(ctrl->GetRigidBody()); | ||||
| Context not available. | |||||
| pivotInA); | pivotInA); | ||||
| } | } | ||||
| c0->addCcdConstraintRef(p2p); | |||||
| c1->addCcdConstraintRef(p2p); | |||||
| m_dynamicsWorld->addConstraint(p2p,disableCollisionBetweenLinkedBodies); | m_dynamicsWorld->addConstraint(p2p,disableCollisionBetweenLinkedBodies); | ||||
| // m_constraints.push_back(p2p); | // m_constraints.push_back(p2p); | ||||
| Context not available. | |||||
| if (genericConstraint) | if (genericConstraint) | ||||
| { | { | ||||
| //m_constraints.push_back(genericConstraint); | //m_constraints.push_back(genericConstraint); | ||||
| c0->addCcdConstraintRef(genericConstraint); | |||||
| c1->addCcdConstraintRef(genericConstraint); | |||||
| m_dynamicsWorld->addConstraint(genericConstraint,disableCollisionBetweenLinkedBodies); | m_dynamicsWorld->addConstraint(genericConstraint,disableCollisionBetweenLinkedBodies); | ||||
| genericConstraint->setUserConstraintId(gConstraintUid++); | genericConstraint->setUserConstraintId(gConstraintUid++); | ||||
| genericConstraint->setUserConstraintType(type); | genericConstraint->setUserConstraintType(type); | ||||
| Context not available. | |||||
| if (coneTwistContraint) | if (coneTwistContraint) | ||||
| { | { | ||||
| //m_constraints.push_back(genericConstraint); | //m_constraints.push_back(genericConstraint); | ||||
| c0->addCcdConstraintRef(coneTwistContraint); | |||||
| c1->addCcdConstraintRef(coneTwistContraint); | |||||
| m_dynamicsWorld->addConstraint(coneTwistContraint,disableCollisionBetweenLinkedBodies); | m_dynamicsWorld->addConstraint(coneTwistContraint,disableCollisionBetweenLinkedBodies); | ||||
| coneTwistContraint->setUserConstraintId(gConstraintUid++); | coneTwistContraint->setUserConstraintId(gConstraintUid++); | ||||
| coneTwistContraint->setUserConstraintType(type); | coneTwistContraint->setUserConstraintType(type); | ||||
| Context not available. | |||||
| hinge->setAngularOnly(angularOnly); | hinge->setAngularOnly(angularOnly); | ||||
| //m_constraints.push_back(hinge); | //m_constraints.push_back(hinge); | ||||
| c0->addCcdConstraintRef(hinge); | |||||
| c1->addCcdConstraintRef(hinge); | |||||
| m_dynamicsWorld->addConstraint(hinge,disableCollisionBetweenLinkedBodies); | m_dynamicsWorld->addConstraint(hinge,disableCollisionBetweenLinkedBodies); | ||||
| hinge->setUserConstraintId(gConstraintUid++); | hinge->setUserConstraintId(gConstraintUid++); | ||||
| hinge->setUserConstraintType(type); | hinge->setUserConstraintType(type); | ||||
| Context not available. | |||||