public sealed override float SolveIteration()
{
int activeConstraints = 0;
for (int i = 0; i < penetrationConstraints.Count; i++)
SolveUpdateable(penetrationConstraints.Elements[i], ref activeConstraints);
for (int i = 0; i < frictionConstraints.Count; i++)
SolveUpdateable(frictionConstraints.Elements[i], ref activeConstraints);
isActiveInSolver = activeConstraints > 0;
return solverSettings.minimumImpulse + 1; //Never let the system deactivate due to low impulses; solver group takes care of itself.
}
}