2017 Volume 11 Issue 4 Pages JAMDSM0041
Boolean operations are classic procedures in computer-aided design, and allow the creation of complex objects by combining simple objects. Although Boolean operations are trivial in implicit surface representations, they are problematic in polygonal meshes. Methods that directly use meshes to compute Boolean operations consistently consider the intersections between two faces without taking into account coplanar collisions. Thus, they either perturb the input meshes when colliding faces are coplanar or simply ignore this kind of collision. Most existing approaches for Boolean operations convert input meshes to volumetric representations such as binary space partitioning (BSP) and voxel grids. The output mesh is obtained by remeshing the resulting volumetric model. We propose a robust, exact, and simple method to manage Boolean operations between colliding shells without conversion and use a pure surface approach. The proposed method consists of three steps: (1) Calculating the intersections of input shells for both non-coplanar and coplanar collisions, (2) Decomposing the whole new mesh into its manifold components, and (3) Preserving only the components related to the requested operation (union or intersection). Subtraction operations are considered by reversing the surface orientation of the subtracted shell using the intersection operation. The output preserves the exact geometry of the input mesh while adding vertices for the remeshed colliding faces. In comparison with existing methods that use the mesh directly, the main advantage of the proposed method is that it processes coplanar collisions without geometrical modification, which avoids creating many small shells when two objects share the same part of the surface. Compared with methods using volumetric representation, the proposed method is faster and does not require input meshes without a boundary. We demonstrated the effectiveness of our method using synthetic models and real-world objects.