Vector move = new Vector(velocity).multiply(result.time);
Transform.translate(position, move);
// Calculate new velocity
Vector normal = new Vector(result.getBestNormal(velocity));
velocity.project(normal.antiNormal());
// Time used up
timeToGo -= result.time;
if (Rough.lessEqual(timeToGo, 0)) {
// Done!