From 45b60c03510367cddc3ed820626fbbac5ecd23fc Mon Sep 17 00:00:00 2001 From: Parritz Date: Fri, 2 Jan 2026 14:33:34 -0500 Subject: [PATCH] Editor: Fix CSG gizmo selection inside CSGCombiners --- modules/csg/editor/csg_gizmos.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/modules/csg/editor/csg_gizmos.cpp b/modules/csg/editor/csg_gizmos.cpp index 6c131372bf..9f8064d755 100644 --- a/modules/csg/editor/csg_gizmos.cpp +++ b/modules/csg/editor/csg_gizmos.cpp @@ -417,17 +417,14 @@ void CSGShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) { Ref handles_material = get_material("handles"); p_gizmo->add_lines(lines, material); - p_gizmo->add_collision_segments(lines); - if (cs->is_root_shape()) { - Array csg_meshes = cs->get_meshes(); - if (csg_meshes.size() == 2) { - Ref csg_mesh = csg_meshes[1]; - if (csg_mesh.is_valid()) { - p_gizmo->add_collision_triangles(csg_mesh->generate_triangle_mesh()); - } - } - } + Ref collision_mesh; + collision_mesh.instantiate(); + Array collision_array; + collision_array.resize(Mesh::ARRAY_MAX); + collision_array[Mesh::ARRAY_VERTEX] = faces; + collision_mesh->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, collision_array); + p_gizmo->add_collision_triangles(collision_mesh->generate_triangle_mesh()); if (p_gizmo->is_selected()) { // Draw a translucent representation of the CSG node