resolveSingleBilateral method
Implementation
double resolveSingleBilateral(Body body1,Vec3 pos1,Body body2,Vec3 pos2,Vec3 normal){
final normalLenSqr = normal.lengthSquared();
if (normalLenSqr > 1.1) {
return 0 ; // no impulse
}
// final rel_pos1 = Vec3();
// final rel_pos2 = Vec3();
// pos1.vsub(body1.position, rel_pos1);
// pos2.vsub(body2.position, rel_pos2);
final vel1 = _resolveSingleBilateralVel1;
final vel2 = _resolveSingleBilateralVel2;
final vel = _resolveSingleBilateralVel;
body1.getVelocityAtWorldPoint(pos1, vel1);
body2.getVelocityAtWorldPoint(pos2, vel2);
vel1.vsub(vel2, vel);
final relVel = normal.dot(vel);
const contactDamping = 0.2;
final massTerm = 1 / (body1.invMass + body2.invMass);
final impulse = -contactDamping * relVel * massTerm;
return impulse;
}