mirror of https://github.com/KLayout/klayout.git
Merge pull request #2418 from KLayout/bugfix/issue-2416
Fixing bug #2416 (two-layer DRC check without merged first input prod…
This commit is contained in:
commit
5ff3bb4c4b
|
|
@ -1237,7 +1237,12 @@ AsIfFlatRegion::run_check (db::edge_relation_type rel, bool different_polygons,
|
|||
different_polygons = true;
|
||||
}
|
||||
|
||||
bool needs_merged_primary = (! other && different_polygons) || options.needs_merged ();
|
||||
// in some cases we need merged primary polygons:
|
||||
// 1.) isolated check (same layer, but different polygons)
|
||||
// 2.) options need merged edges (projection limits, rectangle filter, opposite filter)
|
||||
// 3.) prop_ne constraint - in that case, merge must not be applied internally after properties have been separated
|
||||
bool needs_merged_primary = (! other && different_polygons) || options.needs_merged () || pc_always_different (options.prop_constraint);
|
||||
|
||||
bool primary_is_merged = is_merged ();
|
||||
db::RegionIterator polygons;
|
||||
|
||||
|
|
|
|||
|
|
@ -2405,7 +2405,12 @@ DeepRegion::run_check (db::edge_relation_type rel, bool different_polygons, cons
|
|||
|
||||
// primary input
|
||||
|
||||
bool needs_merged_primary = (! other_deep && different_polygons) || options.needs_merged ();
|
||||
// in some cases we need merged primary polygons:
|
||||
// 1.) isolated check (same layer, but different polygons)
|
||||
// 2.) options need merged edges (projection limits, rectangle filter, opposite filter)
|
||||
// 3.) prop_ne constraint - in that case, merge must not be applied internally after properties have been separated
|
||||
bool needs_merged_primary = (! other_deep && different_polygons) || options.needs_merged () || pc_always_different (options.prop_constraint);
|
||||
|
||||
bool primary_is_merged = false;
|
||||
|
||||
db::DeepLayer polygons;
|
||||
|
|
|
|||
|
|
@ -2143,3 +2143,14 @@ TEST(151d_edges_from_region_with_properties)
|
|||
{
|
||||
run_test (_this, "151", true);
|
||||
}
|
||||
|
||||
// issue #2416
|
||||
TEST(152_sep_with_props)
|
||||
{
|
||||
run_test (_this, "152", false);
|
||||
}
|
||||
|
||||
TEST(152d_sep_with_props)
|
||||
{
|
||||
run_test (_this, "152", true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
source $drc_test_source
|
||||
target $drc_test_target
|
||||
|
||||
if $drc_test_deep
|
||||
deep
|
||||
end
|
||||
|
||||
deep
|
||||
|
||||
l1 = input(1, 0, enable_props)
|
||||
l1.output(1, 0)
|
||||
|
||||
l2 = input(2, 0, enable_props)
|
||||
l2.output(2, 0)
|
||||
|
||||
l1.sep(l2, 1.um, props_ne).output(100, 0)
|
||||
l1.sep(l2, 1.um, props_eq).output(101, 0)
|
||||
l1.sep(l2, 1.um).output(102, 0)
|
||||
l2.sep(l1, 1.um, props_ne).output(110, 0)
|
||||
l2.sep(l1, 1.um, props_eq).output(111, 0)
|
||||
l2.sep(l1, 1.um).output(112, 0)
|
||||
l1.space(1.um, props_ne).output(120, 0)
|
||||
l1.space(1.um, props_eq).output(121, 0)
|
||||
l1.space(1.um).output(122, 0)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue