else {
// contact also becomes invalid when relative movement orthogonal to normal exceeds margin
tmp.scale(manifoldPoint.distance1, manifoldPoint.normalWorldOnB);
projectedPoint.sub(manifoldPoint.positionWorldOnA, tmp);
projectedDifference.sub(manifoldPoint.positionWorldOnB, projectedPoint);
distance2d = projectedDifference.dot(projectedDifference);
if (distance2d > getContactBreakingThreshold() * getContactBreakingThreshold()) {
removeContactPoint(i);
}
else {
// contact point processed callback