0.7.0
Robustness
- Geometric curve-curve intersection has better handling for cases when
the number of intersection candidates grows
large (
MAX_CANDIDATES == 64
):- First tries to reduce the number of candidates by checking if the actual convex hulls of each segment in a candidate pair intersect. This is a much “finer” check than using the “blunt” bounding box check.
- If the convex hull refinement fails, checks if the curves are coincident,
i.e. different segments / parameterizations along the same algebraic
curve. This is done by using the
Curve.locate()
function to try to project each of the four endpoints onto the other curve and then re-parameterizing each curve onto a common interval.