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

Method create_custom_layer

src/db/db/dbDeepShapeStore.cc:1071–1100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1069}
1070
1071DeepLayer DeepShapeStore::create_custom_layer (const db::RecursiveShapeIterator &si, HierarchyBuilderShapeReceiver *pipe, const db::ICplxTrans &trans)
1072{
1073 unsigned int layout_index = layout_for_iter (si, trans);
1074
1075 db::Layout &layout = m_layouts[layout_index]->layout;
1076 db::HierarchyBuilder &builder = m_layouts[layout_index]->builder;
1077
1078 builder.set_wants_all_cells (m_wants_all_cells);
1079 builder.set_sparse_array_limit (m_sparse_array_limit);
1080
1081 unsigned int layer_index = init_layer (layout, si);
1082 builder.set_target_layer (layer_index);
1083
1084 // Build the working hierarchy from the recursive shape iterator
1085 try {
1086
1087 tl::SelfTimer timer (tl::verbosity () >= 41, tl::to_string (tr ("Building working hierarchy")));
1088 db::LayoutLocker ll (&layout, true /*no update*/);
1089
1090 builder.set_shape_receiver (pipe);
1091 db::RecursiveShapeIterator (si).push (& builder);
1092 builder.set_shape_receiver (0);
1093
1094 } catch (...) {
1095 builder.set_shape_receiver (0);
1096 throw;
1097 }
1098
1099 return DeepLayer (this, layout_index, layer_index);
1100}
1101
1102DeepLayer DeepShapeStore::create_copy (const DeepLayer &source, HierarchyBuilderShapeReceiver *pipe)
1103{

Callers 2

texts_as_dotsMethod · 0.80
texts_as_boxesMethod · 0.80

Calls 10

init_layerFunction · 0.85
verbosityFunction · 0.85
DeepLayerClass · 0.85
set_shape_receiverMethod · 0.80
to_stringFunction · 0.70
trFunction · 0.50
set_wants_all_cellsMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected