summaryrefslogtreecommitdiffstats
path: root/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
diff options
context:
space:
mode:
authorAaron Franke <arnfranke@yahoo.com>2022-11-25 22:29:25 -0600
committerAaron Franke <arnfranke@yahoo.com>2024-10-30 00:47:56 -0700
commit96ec117d19a4414df2d8690c9a0c70432df86964 (patch)
tree6e803fa36be88ef3e90b60e679325a1d6f12348e /editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
parent8004c7524fb9f43425c4d6f614410a76678e0f7c (diff)
downloadredot-engine-96ec117d19a4414df2d8690c9a0c70432df86964.tar.gz
Fix debug line drawing with tiny convex hull mesh colliders
Diffstat (limited to 'editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp')
-rw-r--r--editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp b/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
index 4a784be064..573c686d57 100644
--- a/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
+++ b/editor/plugins/gizmos/collision_shape_3d_gizmo_plugin.cpp
@@ -538,20 +538,19 @@ void CollisionShape3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
if (Object::cast_to<ConvexPolygonShape3D>(*s)) {
Vector<Vector3> points = Object::cast_to<ConvexPolygonShape3D>(*s)->get_points();
- if (points.size() > 3) {
+ if (points.size() > 1) { // Need at least 2 points for a line.
Vector<Vector3> varr = Variant(points);
Geometry3D::MeshData md;
Error err = ConvexHullComputer::convex_hull(varr, md);
if (err == OK) {
- Vector<Vector3> points2;
- points2.resize(md.edges.size() * 2);
+ Vector<Vector3> lines;
+ lines.resize(md.edges.size() * 2);
for (uint32_t i = 0; i < md.edges.size(); i++) {
- points2.write[i * 2 + 0] = md.vertices[md.edges[i].vertex_a];
- points2.write[i * 2 + 1] = md.vertices[md.edges[i].vertex_b];
+ lines.write[i * 2 + 0] = md.vertices[md.edges[i].vertex_a];
+ lines.write[i * 2 + 1] = md.vertices[md.edges[i].vertex_b];
}
-
- p_gizmo->add_lines(points2, material);
- p_gizmo->add_collision_segments(points2);
+ p_gizmo->add_lines(lines, material);
+ p_gizmo->add_collision_segments(lines);
}
}
}