Computing the intersection curve of NURBS surfaces is a fundamental task in modern Computer-Aided Design (CAD) systems. The topological correctness of intersection algorithms has a significant impact on the reliability of a CAD system. Despite decades of evolution in the industrial community, efficiently identifying all intersection branches remains challenging, particularly in scenarios involving complex intersection topology with small loops or degenerate cases. In this paper, we propose a novel approach to effectively detect all intersection branches by computing their starting points robustly. The proposed method combines the principles of winding number theory with a subdivision scheme for the vector field on the parametric domain of one input surface. The use of winding number theory facilitates the detection of small loops or isolated singularities, while the subdivision scheme ensures the accurate localization of starting points on tangential intersection branches within these curves. We demonstrate the effectiveness of our method in detecting starting points across various common and complex intersection topology, outperforming both commercial and open-source geometric kernels in terms of topological correctness and computation speed when handling small loops and degenerate situations.
Yang et al. (Fri,) studied this question.