in src/geo/Lines.ts [39:70]
export function segmentsIntersect(s1: Segment, s2: Segment): boolean {
if (parallel(s1, s2)) {
return false;
}
const o1: number = tripletOrientation(s1.p1, s1.p2, s2.p1);
const o2: number = tripletOrientation(s1.p1, s1.p2, s2.p2);
const o3: number = tripletOrientation(s2.p1, s2.p2, s1.p1);
const o4: number = tripletOrientation(s2.p1, s2.p2, s1.p2);
if (o1 !== o2 && o3 !== o4) {
return true;
}
if (o1 === 0 && colinearPointOnSegment(s2.p1, s1)) {
return true;
}
if (o2 === 0 && colinearPointOnSegment(s2.p2, s1)) {
return true;
}
if (o3 === 0 && colinearPointOnSegment(s1.p1, s2)) {
return true;
}
if (o4 === 0 && colinearPointOnSegment(s1.p2, s2)) {
return true;
}
return false;
}