localVector2f2.sub(localBody2.getPosition());
Vector2f localVector2f3 = new Vector2f(localBody2.getVelocity());
localVector2f3.add(MathUtil.cross(localBody2.getAngularVelocity(), localVector2f2));
localVector2f3.sub(localBody1.getVelocity());
localVector2f3.sub(MathUtil.cross(localBody1.getAngularVelocity(), localVector2f1));
float f1 = localVector2f3.dot(localContact.normal);
float f2 = localContact.massNormal * (localContact.restitution - f1);
float f3 = localContact.accumulatedNormalImpulse;
localContact.accumulatedNormalImpulse = Math.max(f3 + f2, 0.0F);
f2 = localContact.accumulatedNormalImpulse - f3;
Vector2f localVector2f4 = MathUtil.scale(localContact.normal, f2);