From db870614ab94cc4a3ffa1a9c2ab39449107f4e7e Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 16 Jan 2023 01:35:08 +0100 Subject: [PATCH] [CONSIDER MERGING] grid check markers are not exactly aligned with vertexes in deep mode --- src/db/db/dbAsIfFlatRegion.cc | 4 +++- testdata/algo/deep_region_au19.gds | Bin 13978 -> 13978 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/db/db/dbAsIfFlatRegion.cc b/src/db/db/dbAsIfFlatRegion.cc index 1bc857f40..d6fe3b6b9 100644 --- a/src/db/db/dbAsIfFlatRegion.cc +++ b/src/db/db/dbAsIfFlatRegion.cc @@ -890,6 +890,8 @@ template void AsIfFlatRegion::produce_markers_for_grid_check (const db::Polygon &poly, const Trans &tr, db::Coord gx, db::Coord gy, db::Shapes &shapes) { + Trans tr_inv = tr.inverted (); + gx = std::max (db::Coord (1), gx); gy = std::max (db::Coord (1), gy); @@ -908,7 +910,7 @@ AsIfFlatRegion::produce_markers_for_grid_check (const db::Polygon &poly, const T for (db::Polygon::polygon_contour_iterator pt = b; pt != e; ++pt) { db::Point p = tr * *pt; if ((p.x () % gx) != 0 || (p.y () % gy) != 0) { - shapes.insert (EdgePair (db::Edge (p, p), db::Edge (p, p))); + shapes.insert (EdgePair (db::Edge (p, p), db::Edge (p, p)).transformed (tr_inv)); } } diff --git a/testdata/algo/deep_region_au19.gds b/testdata/algo/deep_region_au19.gds index 2fcc1e1330dd49e58c41f6f41b14bcabc170bf39..5a7e3eec84588487b8a77d320b7f7ca6d5472695 100644 GIT binary patch literal 13978 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 literal 13978 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 a&+h^Iuf90H2e%b+eu*1X{WhAeuI7Kgot{+y