From 50a7d003cbe46d5274c5124230f14d6f0a0178fc Mon Sep 17 00:00:00 2001 From: Colin Basnett Date: Tue, 8 Feb 2022 21:42:26 -0800 Subject: [PATCH] Added manifold and convexity tests for collision objects. You will now be unable to export a concave or non-manifold collision shapes. --- src/builder.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/builder.py b/src/builder.py index 91b9188..7151600 100644 --- a/src/builder.py +++ b/src/builder.py @@ -34,6 +34,15 @@ class ASEBuilder(object): main_geometry_object = geometry_object ase.geometry_objects.append(geometry_object) + if geometry_object.is_collision: + bm = bmesh.new() + bm.from_mesh(obj.data) + for edge in bm.edges: + if not edge.is_manifold: + raise ASEBuilderError(f'Collision mesh \'{obj.name}\' is not manifold') + if not edge.is_convex: + raise ASEBuilderError(f'Collision mesh \'{obj.name}\' is not convex') + if not geometry_object.is_collision and len(mesh_data.materials) == 0: raise ASEBuilderError(f'Mesh \'{obj.name}\' must have at least one material')