Hi All,
I’m trying to wrap my head around how the Rhino.Geometry.Intersect.Intersection.CurveSelf class deals with Polyline Curves. See images below and attached files for case reference.
As far as I can tell it works as expected when the intersection event type is a point (see Case C). However it seems to miss cases where the intersection event type is an overlap (see Case D and E). This might just be me misunderstanding how the class is supposed to work. However, I’ve made two additional observations that makes me think that this might not be the case:

Performing CurveCurve intersections on two polylines returns the results I would have expected. That is, a single pointpoint intersection returns one event and the event.IsOverlap property is False (see Case A), and, a single overlap intersection returns one event and the event.IsOverlap property is True (see Case B).

When performing CurveSelf intersection on a polyline where overlapping edges/vertices lie on a line, only the first and last vertices are considered intersections (see Case D). When the edges/vertices are NOT on a line, all the vertices are considered intersections.
In the attached Grasshopper file I’m calling the intersection functions using GHPython to get the IsOverlap property, but I have also verified this behaviour using the respective GH components.
Any ideas?
Best,
Anders
Ps. Crosspost on the Grasshopper forum. Apologies, but I figured that you McNeel devs might not see this over there.
160122_PolylineCurve_CurveSelfIntersectionOverlaps_01.gh (90.0 KB)