From a3f60021806af0c3d6ca69b5d355eb2dbb16ffbe Mon Sep 17 00:00:00 2001 From: jeffisaavs <36203147+jeffisaavs@users.noreply.github.com> Date: Sun, 17 Oct 2021 13:09:37 -0400 Subject: [PATCH] change sort comparitor With the sort comparator as <=, strict weak ordering is not maintained, i.e. (x, y) and (y, x) can both be present in the relation. In some instances, the result is a seg fault. Changing the comparator to < fixes this. --- geometry/segment_arrangement.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geometry/segment_arrangement.cc b/geometry/segment_arrangement.cc index ebdd923..a46f8ca 100644 --- a/geometry/segment_arrangement.cc +++ b/geometry/segment_arrangement.cc @@ -245,7 +245,7 @@ struct Arrangement : DoublyConnectedEdgeList { sort(all(inserter), [&](Node *x, Node *y) { const Segment &s = segs[x->index], &t = segs[y->index]; - return sign(cross(s.q - s.p, t.q - t.p)) >= 0; + return sign(cross(s.q - s.p, t.q - t.p)) > 0; }); auto addEvent = [&](Node *x, Node *y) { if (!x || !y) return;