disable constraints when they exceed a breaking threshold, control it with new methods in btTypedConstraint: get/setBreakingImpulseThreshold and get/setEnabled

Disabled constraints are not removed from the world and they use negligible CPU cycles
This commit is contained in:
erwin.coumans
2011-04-02 19:01:23 +00:00
parent d198451909
commit b16b61d9d6
6 changed files with 91 additions and 42 deletions

View File

@@ -1165,11 +1165,8 @@ btScalar btParallelConstraintSolver::solveGroup(btCollisionObject** bodies1,int
if (info1.m_numConstraintRows)
{
btAssert(currentRow<totalNumRows);
btSolverConstraint* currentConstraintRow = &m_tmpSolverNonContactConstraintPool[currentRow];
btTypedConstraint* constraint = constraints[i];
btSolverConstraint* currentConstraintRow = &m_tmpSolverNonContactConstraintPool[currentRow];
btRigidBody& rbA = constraint->getRigidBodyA();
btRigidBody& rbB = constraint->getRigidBodyB();
@@ -1212,6 +1209,7 @@ btScalar btParallelConstraintSolver::solveGroup(btCollisionObject** bodies1,int
info2.m_numIterations = infoGlobal.m_numIterations;
constraints[i]->getInfo2(&info2);
int idA = constraint->getRigidBodyA().getCompanionId();
int idB = constraint->getRigidBodyB().getCompanionId();