Extrema for Curve/Curve Intersection

Hi Everyone,

I noticed that there is no method in OpenCascade for calculating 3D curve/curve intersections, but that everyone seems to recommend using the GeomAPI_ExtremaCurveCurve class. The documentation for this class, however, seems to suggest that it may not return all intersection points (unless the two curves are tangential at the intersection). In fact, I did several tests of BSpline curve/curve intersection and noticed that all intersections were not necessarily returned by this algorithm. Can anyone else comment on this matter? Has anyone found a better method to calculate intersections, or should this class, in fact, do it?


Mauro Mariotti's picture

The topic of 3d curve intersection has been often touched, but the limitations of GeomAPI_ExtremaCurveCurve are still not clear.

Could someone explain the following documentation sentences?
In some cases, the nearest points between two
curves do not correspond to one of the computed
extrema. Instead, they may be given by:
a limit point of one curve and one of the following:
its orthogonal projection on the other curve,
a limit point of the other curve; or
an intersection point between the two curves.
Does one have to call other methods after calling GeomAPI_ExtremaCurveCurve, to find these points too?

I am tempted into calling IntTools_EdgeEdge instead (after creating two edges from the curves).
Has anyone tried out of the boolean operation algorithm?

Thank everybody.