Function cavalier_contours::polyline::internal::pline_intersects::find_intersects
source · pub fn find_intersects<P, O, T>(
pline1: &P,
pline2: &O,
options: &FindIntersectsOptions<'_, T>
) -> PlineIntersectsCollection<T>where
P: PlineSource<Num = T> + ?Sized,
O: PlineSource<Num = T> + ?Sized,
T: Real,
Expand description
Find all intersects between two polylines.
In the case of overlapping intersects point1
is always closest to the start of the second
segment (start_index2
) and point2
furthest from the start of the second segment.
In the case of two intersects on one segment the intersects will be added as two PlineBasicIntersect in the order of distance from the start of the second segment.
In the case of an intersect at the very start of a polyline segment the vertex index of the start of that segment is recorded (unless the polyline is open and the intersect is at the very end of the polyline, then the second to last vertex index is used to maintain that it represents the start of a polyline segment).