Matrix3.multiply(ga.getBody().state.rotation, gadisp, gadisp);
Matrix3.multiply(gb.getBody().state.rotation, gbdisp, gbdisp);
Vector3 direction = ga.getBody().getPosition().add(gadisp).sub(gb.getBody().getPosition().add(gbdisp));
// if direction is too small select a default one
if (direction.norm() < epsilon)
direction.assign(0,1,0);
// compute the largest possible starting lambda, based on
// the support of A-B along the ray direction
Vector3 sp = Sa.supportPoint(direction.negate()).sub(Sb.supportPoint(direction));