mirror of https://github.com/KLayout/klayout.git
BUGFIX: db::Shapes::insert(db::Shapes) wasn't working correctly!
This commit is contained in:
parent
eb3600d620
commit
85869c329d
|
|
@ -174,10 +174,16 @@ Shapes::do_insert (const Shapes &d)
|
||||||
if (layout () == d.layout ()) {
|
if (layout () == d.layout ()) {
|
||||||
|
|
||||||
// both shape containers reside in the same repository space - simply copy
|
// both shape containers reside in the same repository space - simply copy
|
||||||
|
if (m_layers.empty ()) {
|
||||||
m_layers.reserve (d.m_layers.size ());
|
m_layers.reserve (d.m_layers.size ());
|
||||||
for (tl::vector<LayerBase *>::const_iterator l = d.m_layers.begin (); l != d.m_layers.end (); ++l) {
|
for (tl::vector<LayerBase *>::const_iterator l = d.m_layers.begin (); l != d.m_layers.end (); ++l) {
|
||||||
m_layers.push_back ((*l)->clone (this, manager ()));
|
m_layers.push_back ((*l)->clone (this, manager ()));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
for (tl::vector<LayerBase *>::const_iterator l = d.m_layers.begin (); l != d.m_layers.end (); ++l) {
|
||||||
|
(*l)->insert_into (this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else if (layout () == 0) {
|
} else if (layout () == 0) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -493,6 +493,7 @@ public:
|
||||||
virtual void transform_into (Shapes *target, const Trans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const = 0;
|
virtual void transform_into (Shapes *target, const Trans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const = 0;
|
||||||
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep) const = 0;
|
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep) const = 0;
|
||||||
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const = 0;
|
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const = 0;
|
||||||
|
virtual void insert_into (Shapes *target) = 0;
|
||||||
virtual void deref_into (Shapes *target) = 0;
|
virtual void deref_into (Shapes *target) = 0;
|
||||||
virtual void deref_into (Shapes *target, pm_delegate_type &pm) = 0;
|
virtual void deref_into (Shapes *target, pm_delegate_type &pm) = 0;
|
||||||
virtual void deref_and_transform_into (Shapes *target, const Trans &trans) = 0;
|
virtual void deref_and_transform_into (Shapes *target, const Trans &trans) = 0;
|
||||||
|
|
|
||||||
|
|
@ -834,6 +834,13 @@ layer_class<Sh, StableTag>::transform_into (Shapes *target, const ICplxTrans &tr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class Sh, class StableTag>
|
||||||
|
void
|
||||||
|
layer_class<Sh, StableTag>::insert_into (Shapes *target)
|
||||||
|
{
|
||||||
|
target->insert (m_layer.begin (), m_layer.end ());
|
||||||
|
}
|
||||||
|
|
||||||
template <class Sh, class StableTag>
|
template <class Sh, class StableTag>
|
||||||
void
|
void
|
||||||
layer_class<Sh, StableTag>::deref_into (Shapes *target)
|
layer_class<Sh, StableTag>::deref_into (Shapes *target)
|
||||||
|
|
@ -870,6 +877,7 @@ layer_class<Sh, StableTag>::deref_and_transform_into (Shapes *target, const Tran
|
||||||
{
|
{
|
||||||
deref_and_transform_into_shapes deref_op (target);
|
deref_and_transform_into_shapes deref_op (target);
|
||||||
for (typename layer_type::iterator s = m_layer.begin (); s != m_layer.end (); ++s) {
|
for (typename layer_type::iterator s = m_layer.begin (); s != m_layer.end (); ++s) {
|
||||||
|
|
||||||
deref_op (*s, trans, pm);
|
deref_op (*s, trans, pm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -149,6 +149,7 @@ public:
|
||||||
virtual void transform_into (Shapes *target, const Trans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const;
|
virtual void transform_into (Shapes *target, const Trans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const;
|
||||||
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep) const;
|
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep) const;
|
||||||
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const;
|
virtual void transform_into (Shapes *target, const ICplxTrans &trans, GenericRepository &rep, ArrayRepository &array_rep, pm_delegate_type &pm) const;
|
||||||
|
virtual void insert_into (Shapes *target);
|
||||||
virtual void deref_into (Shapes *target);
|
virtual void deref_into (Shapes *target);
|
||||||
virtual void deref_into (Shapes *target, pm_delegate_type &pm);
|
virtual void deref_into (Shapes *target, pm_delegate_type &pm);
|
||||||
virtual void deref_and_transform_into (Shapes *target, const Trans &trans);
|
virtual void deref_and_transform_into (Shapes *target, const Trans &trans);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue