| 6194 | } |
| 6195 | |
| 6196 | std::map<unsigned int, std::vector<db::DCplxTrans> > |
| 6197 | LayoutViewBase::cv_transform_variants_by_layer (int cv_index) const |
| 6198 | { |
| 6199 | std::map<unsigned int, std::vector<db::DCplxTrans> > tv_map; |
| 6200 | |
| 6201 | for (lay::LayerPropertiesConstIterator l = begin_layers (); !l.at_end (); ++l) { |
| 6202 | if (! l->has_children () && l->layer_index () >= 0) { |
| 6203 | int cvi = l->cellview_index () >= 0 ? l->cellview_index () : 0; |
| 6204 | if (cv_index < int (cellviews ()) && cvi == cv_index) { |
| 6205 | std::vector<db::DCplxTrans> &v = tv_map.insert (std::make_pair (l->layer_index (), std::vector<db::DCplxTrans> ())).first->second; |
| 6206 | v.insert (v.end (), l->trans ().begin (), l->trans ().end ()); |
| 6207 | } |
| 6208 | } |
| 6209 | } |
| 6210 | |
| 6211 | for (std::map<unsigned int, std::vector<db::DCplxTrans> >::iterator m = tv_map.begin (); m != tv_map.end (); ++m) { |
| 6212 | std::sort (m->second.begin (), m->second.end ()); |
| 6213 | m->second.erase (std::unique (m->second.begin (), m->second.end ()), m->second.end ()); |
| 6214 | } |
| 6215 | |
| 6216 | return tv_map; |
| 6217 | } |
| 6218 | |
| 6219 | std::set< std::pair<db::DCplxTrans, int> > |
| 6220 | LayoutViewBase::cv_transform_variants () const |
no test coverage detected