diff --git a/src/db/db/dbAsIfFlatRegion.cc b/src/db/db/dbAsIfFlatRegion.cc index 4a2b6a2ff..8f8db97ae 100644 --- a/src/db/db/dbAsIfFlatRegion.cc +++ b/src/db/db/dbAsIfFlatRegion.cc @@ -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); diff --git a/src/db/db/gsiDeclDbCompoundOperation.cc b/src/db/db/gsiDeclDbCompoundOperation.cc index 0ad1f0176..b838eae10 100644 --- a/src/db/db/gsiDeclDbCompoundOperation.cc +++ b/src/db/db/gsiDeclDbCompoundOperation.cc @@ -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);