MCPcopy Create free account
hub / github.com/KLayout/klayout / merge_layer_props

Method merge_layer_props

src/laybasic/laybasic/layLayoutViewBase.cc:3744–3803  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3742}
3743
3744void
3745LayoutViewBase::merge_layer_props (const std::vector<lay::LayerPropertiesList> &props)
3746{
3747 lay::LayerPropertiesList p0;
3748 if (layer_lists () > 0) {
3749 p0 = get_properties (0);
3750 }
3751
3752 // merge the new layer views into the present ones
3753 // If the specific list is a single list (no tabs), it is merged into every tab present.
3754 if (props.size () == 1) {
3755
3756 for (size_t n = 0; n < layer_lists () || n == 0; ++n) {
3757
3758 std::vector<lay::LayerPropertiesList>::const_iterator p = props.begin ();
3759
3760 if (n < layer_lists ()) {
3761 lay::LayerPropertiesList new_props (get_properties ((unsigned int) n));
3762 new_props.append (*p);
3763 if (! p->name ().empty ()) {
3764 new_props.set_name (p->name ());
3765 }
3766 set_properties ((unsigned int) n, new_props);
3767 } else {
3768
3769 lay::LayerPropertiesList new_props = p0;
3770 new_props.append (*p);
3771 if (! p->name ().empty ()) {
3772 new_props.set_name (p->name ());
3773 }
3774 insert_layer_list ((unsigned int) n, new_props);
3775 }
3776
3777 }
3778
3779 } else {
3780
3781 size_t n = 0;
3782 for (std::vector<lay::LayerPropertiesList>::const_iterator p = props.begin (); p != props.end (); ++p, ++n) {
3783
3784 if (n < layer_lists ()) {
3785 lay::LayerPropertiesList new_props (get_properties ((unsigned int) n));
3786 new_props.append (*p);
3787 if (! p->name ().empty ()) {
3788 new_props.set_name (p->name ());
3789 }
3790 set_properties ((unsigned int) n, new_props);
3791 } else {
3792 lay::LayerPropertiesList new_props = p0;
3793 new_props.append (*p);
3794 if (! p->name ().empty ()) {
3795 new_props.set_name (p->name ());
3796 }
3797 insert_layer_list ((unsigned int) n, new_props);
3798 }
3799
3800 }
3801

Callers 1

cm_pull_inMethod · 0.80

Calls 11

layer_listsFunction · 0.85
insert_layer_listFunction · 0.85
set_propertiesFunction · 0.70
get_propertiesFunction · 0.50
sizeMethod · 0.45
beginMethod · 0.45
appendMethod · 0.45
emptyMethod · 0.45
nameMethod · 0.45
set_nameMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected