summaryrefslogtreecommitdiff
path: root/modules/csg
diff options
context:
space:
mode:
authorSaracenOne <SaracenOne@gmail.com>2022-01-07 19:49:42 +0000
committerSaracenOne <SaracenOne@gmail.com>2022-01-07 19:57:02 +0000
commit7f16bed9477e0343bf043498bde6f81e3cc1bd0b (patch)
treece6de19f441302a92248ece5985504b7da804810 /modules/csg
parent6e4da909aaa7ca70864016bac3a8fe424ee7194a (diff)
Fix selection of CSG objects
Diffstat (limited to 'modules/csg')
-rw-r--r--modules/csg/csg_gizmos.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/csg/csg_gizmos.cpp b/modules/csg/csg_gizmos.cpp
index 71891c8704..f6e09067d2 100644
--- a/modules/csg/csg_gizmos.cpp
+++ b/modules/csg/csg_gizmos.cpp
@@ -343,6 +343,16 @@ void CSGShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
p_gizmo->add_lines(lines, material);
p_gizmo->add_collision_segments(lines);
+ Array csg_meshes = cs->get_meshes();
+ if (csg_meshes.size() != 2) {
+ return;
+ }
+
+ Ref<Mesh> csg_mesh = csg_meshes[1];
+ if (csg_mesh.is_valid()) {
+ p_gizmo->add_collision_triangles(csg_mesh->generate_triangle_mesh());
+ }
+
if (p_gizmo->is_selected()) {
// Draw a translucent representation of the CSG node
Ref<ArrayMesh> mesh = memnew(ArrayMesh);