  We present a new method for performing Boolean operations on volumes
represented as triangle meshes. In contrast to existing methods which treat
meshes as 3D polyhedra and try to partition the faces at their exact
intersection curves, we treat meshes as adaptive surfaces which can be
arbitrarily refined. Rather than depending on computing precise face
intersections, our approach refines the input meshes in the intersection
regions, then discards intersecting triangles and fills the resulting holes
with high-quality triangles. The original intersection curves are approximated
to a user-definable precision, and our method can identify and preserve creases
and sharp features. Advantages of our approach include the ability to trade
speed for accuracy, support for open meshes, and the ability to incorporate
tolerances to handle cases where large numbers of faces are slightly
inter-penetrating or near-coincident.
