Fixed shielded implementation for DRC

This commit is contained in:
Matthias Koefferlein 2021-01-16 18:09:26 +01:00
parent 758861226f
commit 80e033c618
2 changed files with 2 additions and 2 deletions

View File

@ -1101,7 +1101,7 @@ AsIfFlatRegion::width_check (db::Coord d, const RegionCheckOptions &options) con
EdgePairsDelegate *
AsIfFlatRegion::space_or_isolated_check (db::Coord d, const RegionCheckOptions &options, bool isolated) const
{
if (options.opposite_filter != NoOppositeFilter || options.rect_filter != NoSideAllowed) {
if (options.opposite_filter != NoOppositeFilter || options.rect_filter != NoSideAllowed || options.shielded) {
// NOTE: we have to use the "foreign" scheme with a filter because only this scheme
// guarantees that all subject shapes are visited.
return run_check (db::SpaceRelation, isolated, foreign_regionptr (), d, options);

View File

@ -426,7 +426,7 @@ static db::CompoundRegionOperationNode *new_width_check (db::Coord d, bool whole
static db::CompoundRegionOperationNode *new_space_or_isolated_check (db::Coord d, bool whole_edges, db::metrics_type metrics, const tl::Variant &ignore_angle, const tl::Variant &min_projection, const tl::Variant &max_projection, bool shielded, db::OppositeFilter opposite_filter, db::RectFilter rect_filter, bool negative, bool isolated)
{
if (opposite_filter != db::NoOppositeFilter || rect_filter != db::NoSideAllowed) {
if (opposite_filter != db::NoOppositeFilter || rect_filter != db::NoSideAllowed || shielded) {
// NOTE: we have to use the "foreign" scheme with a filter because only this scheme
// guarantees that all subject shapes are visited and receive all intruders.
return new_check_node (new_foreign (), db::SpaceRelation, isolated, d, whole_edges, metrics, ignore_angle, min_projection, max_projection, shielded, opposite_filter, rect_filter, negative);