Solid Modeling requires robust and efficient surface intersection algorithms that handle a very general class of surfaces, including rational Bezier and B-spline surfaces. Currently, most algorithms that run in an acceptable amount of time lack a theoretical basis and thus are not guaranteed to be reliable. Most that have a solid theoretical basis require enormous computation and are thus impractical.

This thesis presents an algorithm that, given two surfaces not intersecting in any singular points, will find all intersection curves. If there are any singular points the algorithm will find and report at least one. The algorithm does not require tolerances except those associated with machine arithmetic, and can handle any surface representation for which bounds on the position of the surface as well as its Gauss map (the set of normals to the surface) are available. The implemented algorithm is demonstrated on actual manufacturing data, as well as on some pathological examples.

The algorithm is based on a new loop detection criterion. Loop detection criterion-based intersection algorithms recursively subdivide two surfaces until no surface patches intersect in a closed loop. The intersection curves of the original patches can be reliably identified by finding the edge-surface intersections of the resulting sub-patches.

The thesis discusses in detail various problems that are used to implement the intersection algorithm. These include algorithms for: computing bounds on Gauss maps for rational B-splines and Bezier surfaces; intersecting curves with surfaces; solving unbounded linear programming problems; finding tangent directions at singular and non-singular intersection points; handling singularities and degeneracies; and compactly and accurately representing intersection curves.





Download Full History