Bug fixes.

This commit is contained in:
Matthias Koefferlein
2021-03-29 01:05:53 +02:00
parent abd96c8400
commit cefc2eeddb
12 changed files with 46 additions and 35 deletions
+4 -4
View File
@@ -173,9 +173,9 @@ static void transform_deep_layer (db::DeepLayer &deep_layer, const Trans &t)
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer.layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ().transformed (t));
flat_shapes.insert (iter->edge_pair ().transformed (iter.trans ()).transformed (t));
}
layout.clear_layer (deep_layer.layer ());
@@ -208,9 +208,9 @@ void DeepEdgePairs::flatten ()
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer ().layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ());
flat_shapes.insert (iter->edge_pair ().transformed (iter.trans ()));
}
layout.clear_layer (deep_layer ().layer ());
+4 -4
View File
@@ -233,9 +233,9 @@ static void transform_deep_layer (db::DeepLayer &deep_layer, const Trans &t)
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer.layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ().transformed (t));
flat_shapes.insert (iter->edge ().transformed (iter.trans ()).transformed (t));
}
layout.clear_layer (deep_layer.layer ());
@@ -268,9 +268,9 @@ void DeepEdges::flatten ()
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer ().layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ());
flat_shapes.insert (iter->edge ().transformed (iter.trans ()));
}
layout.clear_layer (deep_layer ().layer ());
+8 -4
View File
@@ -242,9 +242,11 @@ static void transform_deep_layer (db::DeepLayer &deep_layer, const Trans &t)
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer.layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ().transformed (t));
db::Polygon poly;
iter->polygon (poly);
flat_shapes.insert (poly.transformed (iter.trans ()).transformed (t));
}
layout.clear_layer (deep_layer.layer ());
@@ -277,9 +279,11 @@ void DeepRegion::flatten ()
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer ().layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ());
db::Polygon poly;
iter->polygon (poly);
flat_shapes.insert (poly.transformed (iter.trans ()));
}
layout.clear_layer (deep_layer ().layer ());
+8 -4
View File
@@ -193,9 +193,11 @@ static void transform_deep_layer (db::DeepLayer &deep_layer, const Trans &t)
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer.layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ().transformed (t));
db::Text text;
iter->text (text);
flat_shapes.insert (text.transformed (iter.trans ()).transformed (t));
}
layout.clear_layer (deep_layer.layer ());
@@ -228,9 +230,11 @@ void DeepTexts::flatten ()
db::Cell &top_cell = layout.cell (*layout.begin_top_down ());
db::Shapes flat_shapes;
db::Shapes flat_shapes (layout.is_editable ());
for (db::RecursiveShapeIterator iter (layout, top_cell, deep_layer ().layer ()); !iter.at_end (); ++iter) {
flat_shapes.insert (iter->polygon ());
db::Text text;
iter->text (text);
flat_shapes.insert (db::TextRef (text.transformed (iter.trans ()), layout.shape_repository ()));
}
layout.clear_layer (deep_layer ().layer ());
+6 -1
View File
@@ -413,9 +413,14 @@ void
FlatRegion::do_insert (const db::Polygon &polygon)
{
if (polygon.holes () > 0 || polygon.vertices () > 0) {
bool is_box = (empty () && polygon.is_box ());
mp_polygons->insert (polygon);
m_is_merged = false;
set_is_merged (is_box);
invalidate_cache ();
}
}
+3 -1
View File
@@ -50,7 +50,9 @@ void
MutableTexts::insert (const db::Shape &shape)
{
if (shape.is_text ()) {
insert (shape.text ());
db::Text text;
shape.text (text);
insert (text);
}
}
+1 -1
View File
@@ -55,7 +55,7 @@ TEST(1)
EXPECT_EQ (r.bbox ().to_string (), "(0,0;100,200)");
EXPECT_EQ (r.transformed (db::Trans (db::Vector (1, 2))).bbox ().to_string (), "(1,2;101,202)");
EXPECT_EQ (r.empty (), false);
EXPECT_EQ (r.is_merged (), true);
EXPECT_EQ (r.is_merged (), false);
EXPECT_EQ (r.begin ().at_end (), false);
db::Edges r1 = r;