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