Keeps whole shapes of A when the relation holds for at least one shape of B. The first matching B is enough.
inside(a, b)Available · yields polygons
layer i = inside(a, b)
Keeps shapes of A when every vertex lies in at least one B polygon. The method form a.inside(b) is the same.
insidetests vertices, not a full edge-inside test on concave B.
Notes
inside_part).not_inside(a, b)Available · yields polygons
layer n = not_inside(a, b)
Complement of inside on whole shapes: keeps A that is not fully (vertex-wise) in any B. May still overlap.
Notes
outside (outside also drops overlap).outside(a, b)Available · yields polygons
layer o = outside(a, b)
Keeps A that is neither vertex-inside nor has an area AND (> 0.5 dbu²) with any B.
Notes
interacting would be true.interacting(a, b)Available · yields polygons
layer t = interacting(a, b)
Keeps A that touches or cuts B: bounding box, point-in-polygon, a shared vertex, or a segment intersection.
Notes
not_interacting(a, b)Available · yields polygons
layer n = not_interacting(a, b)
A without any interaction with B (see interacting).
Notes
overlapping(a, b)Available · yields polygons
layer o = overlapping(a, b)
Keeps A whose boolean AND with at least one B has area > 0.5 dbu².
Notes
touching / abutting).not_overlapping(a, b)Available · yields polygons
layer n = not_overlapping(a, b)
A without an area overlap with B. Touch remains.
Notes
covering(a, b)Available · yields polygons
layer c = covering(a, b)
Keeps A that fully contains at least one B-shape vertex-wise (B inside A).
Notes
not_covering(a, b)Available · yields polygons
layer n = not_covering(a, b)
A that does not fully contain any B.
Notes
touching(a, b)Available · yields polygons
layer t = touching(a, b)
interacting and not overlapping: contact without an area share.
Notes
abutting).not_touching(a, b)Available · yields polygons
layer n = not_touching(a, b)
A that does not fulfil the touching condition with any B. Overlap shapes stay (they are not touching).
Notes
cutting(a, b)Available · yields polygons
layer c = cutting(a, b)
Overlap and neither A covers B nor B covers A: the shapes cross.
Notes
not_cutting(a, b)Available · yields polygons
layer n = not_cutting(a, b)
A without a crossing overlap with B (complement of cutting).
Notes
abutting(a, b)Available · yields polygons
layer u = abutting(a, b)
A shared collinear edge segment and no area AND.
Notes
touching).not_abutting(a, b)Available · yields polygons
layer n = not_abutting(a, b)
A without a collinear edge overlap without area to B.
Notes