  Geometric rounding of a mesh is the task of approximating its vertex
coordinates by floating point numbers while preserving mesh structure.
Geometric rounding allows algorithms of computational geometry to interface
with numerical algorithms. We present a practical geometric rounding algorithm
for 3D triangle meshes that preserves the topology of the mesh. The basis of
the algorithm is a novel strategy: 1) modify the mesh to achieve a feature
separation that prevents topology changes when the coordinates change by the
rounding unit; and 2) round each vertex coordinate to the closest floating
point number. Feature separation is also useful on its own, for example for
satisfying minimum separation rules in CAD models. We demonstrate a robust,
accurate implementation.
