mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 22:33:33 +00:00
Fix issue where edge intersection snap were not being calculated.
This commit is contained in:
@@ -355,6 +355,18 @@ class Snap(bonsai.core.tool.Snap):
|
|||||||
|
|
||||||
# Objects
|
# Objects
|
||||||
objs_to_raycast = tool.Raycast.filter_objects_to_raycast(context, event, objs_2d_bbox)
|
objs_to_raycast = tool.Raycast.filter_objects_to_raycast(context, event, objs_2d_bbox)
|
||||||
|
# Wireframes
|
||||||
|
# For wireframe we have to get all the objects so we can further calculate edge intersection
|
||||||
|
for snap_obj in objs_to_raycast:
|
||||||
|
if snap_obj.type in {"EMPTY", "CURVE"} or (
|
||||||
|
snap_obj.type == "MESH" and len(snap_obj.data.polygons) == 0
|
||||||
|
):
|
||||||
|
snap_points = tool.Raycast.ray_cast_by_proximity(context, event, snap_obj)
|
||||||
|
if snap_points:
|
||||||
|
for point in snap_points:
|
||||||
|
point["group"] = "Wireframe"
|
||||||
|
detected_snaps.append(point)
|
||||||
|
|
||||||
if (space.shading.type == "SOLID" and space.shading.show_xray) or (
|
if (space.shading.type == "SOLID" and space.shading.show_xray) or (
|
||||||
space.shading.type == "WIREFRAME" and space.shading.show_xray_wireframe
|
space.shading.type == "WIREFRAME" and space.shading.show_xray_wireframe
|
||||||
):
|
):
|
||||||
@@ -374,12 +386,7 @@ class Snap(bonsai.core.tool.Snap):
|
|||||||
if snap_obj.type in {"EMPTY", "CURVE"} or (
|
if snap_obj.type in {"EMPTY", "CURVE"} or (
|
||||||
snap_obj.type == "MESH" and len(snap_obj.data.polygons) == 0
|
snap_obj.type == "MESH" and len(snap_obj.data.polygons) == 0
|
||||||
):
|
):
|
||||||
snap_points = tool.Raycast.ray_cast_by_proximity(context, event, snap_obj)
|
continue
|
||||||
if snap_points:
|
|
||||||
for point in snap_points:
|
|
||||||
point["group"] = "Wireframe"
|
|
||||||
detected_snaps.append(point)
|
|
||||||
|
|
||||||
# Meshes
|
# Meshes
|
||||||
else:
|
else:
|
||||||
# Add face snap
|
# Add face snap
|
||||||
|
|||||||
Reference in New Issue
Block a user