mirror of https://github.com/KLayout/klayout.git
Fixed previous implementation - was not fully effective
This commit is contained in:
parent
178cb29773
commit
b979219007
|
|
@ -52,21 +52,31 @@ public:
|
|||
mp_shapes->insert (t.transformed (m_trans));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void operator() (const db::Polygon &t)
|
||||
template <class P>
|
||||
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<P, db::Disp> 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));
|
||||
|
|
|
|||
Loading…
Reference in New Issue