From b9792190076a051b9ce8f5c2adf85b860e83702a Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 16 Mar 2023 20:06:07 +0100 Subject: [PATCH] Fixed previous implementation - was not fully effective --- src/db/db/dbTilingProcessor.cc | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/db/db/dbTilingProcessor.cc b/src/db/db/dbTilingProcessor.cc index 77ae80815..da234d4cf 100644 --- a/src/db/db/dbTilingProcessor.cc +++ b/src/db/db/dbTilingProcessor.cc @@ -52,21 +52,31 @@ public: mp_shapes->insert (t.transformed (m_trans)); } - template - void operator() (const db::Polygon &t) + template + void insert_polygon (const P &p) { - if (t.is_box () && ! m_trans.is_complex ()) { - mp_shapes->insert (t.box ().transformed (m_trans)); + if (p.is_box () && ! m_trans.is_complex ()) { + mp_shapes->insert (p.box ().transformed (m_trans)); } else { if (mp_shapes->cell () && mp_shapes->cell ()->layout ()) { - db::PolygonRef pr (t.transformed (m_trans), mp_shapes->cell ()->layout ()->shape_repository ()); + db::polygon_ref pr (p.transformed (m_trans), mp_shapes->cell ()->layout ()->shape_repository ()); mp_shapes->insert (pr); } else { - mp_shapes->insert (t.transformed (m_trans)); + mp_shapes->insert (p.transformed (m_trans)); } } } + void operator() (const db::Polygon &p) + { + insert_polygon (p); + } + + void operator() (const db::SimplePolygon &p) + { + insert_polygon (p); + } + void operator() (const db::EdgePair &ep) { mp_shapes->insert (ep.normalized ().to_polygon (m_ep_sizing).transformed (m_trans));