From 93d9298b5101cb88fcdf15c84f0a3dd49ecb0d45 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 15 Feb 2023 00:29:26 +0100 Subject: [PATCH] Formally minkowsky sum now is allowed with empty polygon arguments --- src/db/db/dbPolygonTools.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/db/db/dbPolygonTools.cc b/src/db/db/dbPolygonTools.cc index 2032eeb36..0202ee908 100644 --- a/src/db/db/dbPolygonTools.cc +++ b/src/db/db/dbPolygonTools.cc @@ -2143,6 +2143,10 @@ ms_extraction (db::EdgeProcessor &ep, bool resolve_holes) static db::Polygon do_minkowski_sum (const db::Polygon &a, const db::Edge &b, bool resolve_holes) { + if (a.begin_hull () == a.end_hull ()) { + return db::Polygon (); + } + db::EdgeProcessor ep; db::ms_production (a, b.p1 (), b.p2 (), ep); return db::ms_extraction (ep, resolve_holes); @@ -2161,7 +2165,9 @@ minkowski_sum (const db::Polygon &a, const db::Edge &b, bool rh) static db::Polygon do_minkowski_sum (const db::Polygon &a, const db::Polygon &b, bool resolve_holes) { - tl_assert (a.begin_hull () != a.end_hull ()); + if (a.begin_hull () == a.end_hull () || b.begin_hull () == b.end_hull ()) { + return db::Polygon (); + } db::Vector p0 = *a.begin_hull () - db::Point ();