From ebd719783c5572aea2b99e4d3d9f1635c3bcd348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Perdig=C3=A3o?= Date: Thu, 13 Mar 2025 16:56:22 -0300 Subject: [PATCH] black . --- .../bonsai/bim/module/model/decorator.py | 8 ++- src/bonsai/bonsai/tool/raycast.py | 6 +- src/bonsai/bonsai/tool/snap.py | 61 ------------------- 3 files changed, 8 insertions(+), 67 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index 1919ffa97d..020b6e11ad 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -327,8 +327,12 @@ class PolylineDecorator: handler = cls() cls.handlers.append(SpaceView3D.draw_handler_add(handler.draw_input_ui, (context,), "WINDOW", "POST_PIXEL")) if not ui_only: - cls.handlers.append(SpaceView3D.draw_handler_add(handler.draw_snap_point, (context,), "WINDOW", "POST_PIXEL")) - cls.handlers.append(SpaceView3D.draw_handler_add(handler.draw_measurements, (context,), "WINDOW", "POST_PIXEL")) + cls.handlers.append( + SpaceView3D.draw_handler_add(handler.draw_snap_point, (context,), "WINDOW", "POST_PIXEL") + ) + cls.handlers.append( + SpaceView3D.draw_handler_add(handler.draw_measurements, (context,), "WINDOW", "POST_PIXEL") + ) cls.handlers.append(SpaceView3D.draw_handler_add(handler, (context,), "WINDOW", "POST_VIEW")) cls.is_installed = True diff --git a/src/bonsai/bonsai/tool/raycast.py b/src/bonsai/bonsai/tool/raycast.py index 4618096a47..dae97fcf95 100644 --- a/src/bonsai/bonsai/tool/raycast.py +++ b/src/bonsai/bonsai/tool/raycast.py @@ -82,9 +82,7 @@ class Raycast(bonsai.core.tool.Raycast): return (obj, bbox_2d) @classmethod - def intersect_mouse_2d_bounding_box( - cls, mouse_pos: tuple[int, int], bbox: list[float, float, float, float] - ): + def intersect_mouse_2d_bounding_box(cls, mouse_pos: tuple[int, int], bbox: list[float, float, float, float]): x, y = mouse_pos xmin, xmax, ymin, ymax = bbox @@ -438,7 +436,7 @@ class Raycast(bonsai.core.tool.Raycast): context: bpy.types.Context, event: bpy.types.Event, objs_to_raycast: list[bpy.types.Object], - include_wireframes: bool=True, + include_wireframes: bool = True, ) -> Union[tuple[bpy.types.Object, Vector, int], tuple[None, None, None]]: best_length_squared = 1.0 best_obj = None diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 20d551c121..e49d97ad5c 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -310,67 +310,6 @@ class Snap(bonsai.core.tool.Snap): plane_normal = tool.Polyline.use_transform_orientations(plane_normal) return plane_origin, plane_normal - def cast_rays_to_single_object( - obj: bpy.types.Object, mouse_pos: tuple[int, int] - ) -> Union[tuple[bpy.types.Object, Vector, int], tuple[None, None, None]]: - hit = None - face_index = None - # Wireframes - if obj.type in {"EMPTY", "CURVE"} or (hasattr(obj.data, "polygons") and len(obj.data.polygons) == 0) : - snap_points = tool.Raycast.ray_cast_by_proximity(context, event, obj) - if snap_points: - hit = sorted(snap_points, key=lambda x: x["distance"])[0]["point"] - if hit: - hit_world = obj.original.matrix_world @ hit - return obj, hit_world, face_index - return None, None, None - # Meshes - else: - hit, normal, face_index = tool.Raycast.obj_ray_cast(context, event, obj) - if hit is None: - # Tried original mouse position. Now it will try the offsets. - original_mouse_pos = mouse_pos - for value in mouse_offset: - mouse_pos = tuple(x + y for x, y in zip(original_mouse_pos, value)) - hit, normal, face_index = tool.Raycast.obj_ray_cast(context, event, obj, mouse_pos) - if hit: - break - mouse_pos = original_mouse_pos - if hit: - hit_world = obj.original.matrix_world @ hit - return obj, hit_world, face_index - else: - return None, None, None - - def cast_rays_and_get_best_object( - objs_to_raycast: list[bpy.types.Object], mouse_pos: tuple[int, int] - ) -> Union[tuple[bpy.types.Object, Vector, int], tuple[None, None, None]]: - best_length_squared = 1.0 - best_obj = None - best_hit = None - best_face_index = None - - for obj in objs_to_raycast: - snap_obj, hit, face_index = cast_rays_to_single_object(obj, mouse_pos) - - if hit is not None: - length_squared = (hit - ray_origin).length_squared - if best_obj is None or length_squared < best_length_squared: - best_length_squared = length_squared - best_obj = snap_obj - best_hit = hit - best_face_index = face_index - - if best_obj is not None: - return best_obj, best_hit, best_face_index - - else: - return None, None, None - - ray_origin, ray_target, ray_direction = tool.Raycast.get_viewport_ray_data(context, event) - - objs_to_raycast = cls.filter_objects_to_raycast(context, objs_2d_bbox, mouse_pos, offset) - # Polyline try: polyline_data = bpy.context.scene.BIMPolylineProperties.insertion_polyline[0]