Precise collisions using floating point numbers