Skip to main content

Module curves

Module curves 

Source
Expand description

Where two curves meet, in the plane and in space.

Elsewhere these are Geom2dAPI_InterCurveCurve and IntCurve for the plane, and extrema-based crossing for space. The planar case is the load-bearing one: boolean face splitting happens in a surface’s parameter space, and the curves it splits with are pcurves, so 2D curve/curve is the operation the whole §8 pipeline stands on.

§Two curves in space generically miss

In the plane, two curves that cross, cross. In space they pass by: a crossing is two points closer than a tolerance, not an exact common point, and pretending otherwise would make every 3D result empty. So the 3D answer reports the gap it achieved at each crossing, and the caller’s tolerance decides what counts. The 2D answer reports gaps too (a solved crossing is still a pair of floats), but there the gap is rounding, not geometry.

§Overlap is an answer, not a failure

Two collinear lines, two arcs of one circle: where the supports coincide, “the intersection points” do not exist; the intersection is a stretch of curve. That is reported as an overlap with the parameter ranges involved. Detected for the analytic same-support cases; two B-splines that happen to trace the same path are not detected as overlapping, and that limit is recorded rather than discovered.

§The general path is honest about resolution

Non-analytic pairs are seeded by sampling both curves into segments and testing the pairs, then polished by Newton onto the true crossing. Like the surface seeding it mirrors, it finds what the sampling resolves: two crossings closer together than a sample step can read as one. The sampling density is a stated knob, not a hidden constant.

Structs§

Crossing
One crossing of two curves.
CurveCurveOptions
How hard the general path looks.
CurveIntersection
What two curves do to each other.
Overlap
A stretch where two curves share their support.

Functions§

intersect_curves
Where two space curves pass within options.gap of each other.
intersect_curves_2d
Where two planar curves meet.