From 48b09e97c20e00375dfe77c0ad8c42b869e71880 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Sat, 13 Jun 2015 16:08:35 -0400 Subject: [PATCH] Partially revert physical tweak --- korman/exporter/convert.py | 7 ------- korman/exporter/physics.py | 11 ++++++++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/korman/exporter/convert.py b/korman/exporter/convert.py index f445a4e..4d3dfa6 100644 --- a/korman/exporter/convert.py +++ b/korman/exporter/convert.py @@ -79,17 +79,10 @@ class Exporter: print("\nExported {}.age in {:.2f} seconds".format(self.age_name, end-start)) def _collect_objects(self): - apply_xform = bpy.ops.object.transform_apply for obj in bpy.data.objects: if obj.plasma_object.enabled: self._objects.append(obj) - # For our own sanity, we should apply any scale transform this object has. - # Physicals often have issues with unapplied scale transforms. Other transforms - # will be saved to the DSpan or CoordInterface. - context = {"object": obj, "selected_editable_objects": [obj]} - apply_xform(context, scale=True) - def _export_age_info(self): # Make life slightly easier... age_info = bpy.context.scene.world.plasma_age diff --git a/korman/exporter/physics.py b/korman/exporter/physics.py index 5d93af4..fb153e5 100644 --- a/korman/exporter/physics.py +++ b/korman/exporter/physics.py @@ -32,9 +32,14 @@ class PhysicsConverter: physical.rot = utils.quaternion(mat.to_quaternion()) physical.pos = utils.vector3(mat.to_translation()) - # Vertices are simple. Note that all scale transforms were applied by the exporter long - # before we got here. Yay! - vertices = [hsVector3(i.co.x, i.co.y, i.co.z) for i in mesh.vertices] + # Physicals can't have scale... + scale = mat.to_scale() + if scale[0] == 1.0 and scale[1] == 1.0 and scale[2] == 1.0: + # Whew, don't need to do any math! + vertices = [hsVector3(i.co.x, i.co.y, i.co.z) for i in mesh.vertices] + else: + # Dagnabbit... + vertices = [hsVector3(i.co.x * scale.x, i.co.y * scale.y, i.co.z * scale.z) for i in mesh.vertices] if indices: indices = []