Fix: hit_test_area is now performed on every layer of each zone

This commit is contained in:
CGrassin
2023-02-19 22:33:35 +01:00
parent dd2e49e020
commit aa38784fd7

View File

@ -292,8 +292,9 @@ STEP = '-'
for dy in [-offset, offset]: for dy in [-offset, offset]:
point_to_test = wxPoint(via.PosX + dx, via.PosY + dy) point_to_test = wxPoint(via.PosX + dx, via.PosY + dy)
# TODO: check all layers instead of GetFirstLayer hit_test_area = False
hit_test_area = area.HitTestFilledArea(area.GetFirstLayer(), VECTOR2I(point_to_test)) # Collides with a filled area for layer_id in area.GetLayerSet().CuStack():
hit_test_area = hit_test_area or area.HitTestFilledArea(layer_id, VECTOR2I(point_to_test)) # Collides with a filled area
hit_test_edge = area.HitTestForEdge(VECTOR2I(point_to_test), 1) # Collides with an edge/corner hit_test_edge = area.HitTestForEdge(VECTOR2I(point_to_test), 1) # Collides with an edge/corner
try: try:
hit_test_zone = area.HitTestInsideZone(VECTOR2I(point_to_test)) # Is inside a zone (e.g. KeepOut/Rules) hit_test_zone = area.HitTestInsideZone(VECTOR2I(point_to_test)) # Is inside a zone (e.g. KeepOut/Rules)