Boolean Set Operations with Cubic Algebraic Patches

Chandrajit Bajaj, Alberto Paoluzzi, Simone Portuesi, Na Lei, Wenqi Zhao
2008 Computer-Aided Design and Applications  
In this paper we discuss a symbolic-numeric algorithm for Boolean operations, closed in the algebra of curved polyhedra whose boundary is triangulated with algebraic patches (A-patches). This approach uses a linear polyhedron as a first approximation of both the arguments and the result. On each triangle of a boundary representation of such linear approximation, a piecewise cubic algebraic interpolant is built, using a C 1 -continuous prism algebraic patch (prism A-patch) that interpolates the
more » ... hree triangle vertices, with given normal vectors. The boundary representation only stores the vertices of the initial triangulation and their external vertex normals. In order to represent also flat and/or sharp local features, the corresponding normal-per-face and/or normal-per-edge may be also given, respectively. The topology is described by storing, for each curved triangle, the two triples of pointers to incident vertices and to adjacent triangles. For each triangle, a scaffolding prism is built, produced by its extreme vertices and normals, which provides a containment volume for the curved interpolating A-patch. When looking for the result of a regularized Boolean operation, the 0-set of a tri-variate polynomial within each such prism is generated, and intersected with the analogous 0-sets of the other curved polyhedron, when two prisms have non-empty intersection. The intersection curves of the boundaries are traced and used to decompose each boundary into the 3 standard classes of subpatches, denoted in, out and on. While tracing the intersection curves, the locally refined triangulation of intersecting patches is produced, and added to the boundary representation. i. The robust computation of the intersection of a pair of algebraic curves, and/or surfaces,
doi:10.3722/cadaps.2008.730-742 pmid:21516262 pmcid:PMC3080140 fatcat:vcyz3b3xojdcvestphp4wrw6w4