Răsfoiți Sursa

extract fix_matrix() to global accessable scope

Jason0214 7 ani în urmă
părinte
comite
a9c12f0b0c
1 a modificat fișierele cu 20 adăugiri și 19 ștergeri
  1. 20 19
      io_scene_godot/structures.py

+ 20 - 19
io_scene_godot/structures.py

@@ -283,30 +283,31 @@ class NodePath:
         )
 
 
-# ------------------ Implicit Conversions of Blender Types --------------------
-def mat4_to_string(mtx):
-    """Converts a matrix to a "Transform" string that can be parsed by Godot"""
-    def fix_matrix(mtx):
-        """ Shuffles a matrix to change from y-up to z-up"""
-        # Todo: can this be replaced my a matrix multiplcation?
-        trans = mathutils.Matrix(mtx)
-        up_axis = 2
+def fix_matrix(mtx):
+    """ Shuffles a matrix to change from y-up to z-up"""
+    # Todo: can this be replaced my a matrix multiplcation?
+    trans = mathutils.Matrix(mtx)
+    up_axis = 2
+
+    for i in range(3):
+        trans[1][i], trans[up_axis][i] = trans[up_axis][i], trans[1][i]
+    for i in range(3):
+        trans[i][1], trans[i][up_axis] = trans[i][up_axis], trans[i][1]
 
-        for i in range(3):
-            trans[1][i], trans[up_axis][i] = trans[up_axis][i], trans[1][i]
-        for i in range(3):
-            trans[i][1], trans[i][up_axis] = trans[i][up_axis], trans[i][1]
+    trans[1][3], trans[up_axis][3] = trans[up_axis][3], trans[1][3]
 
-        trans[1][3], trans[up_axis][3] = trans[up_axis][3], trans[1][3]
+    trans[up_axis][0] = -trans[up_axis][0]
+    trans[up_axis][1] = -trans[up_axis][1]
+    trans[0][up_axis] = -trans[0][up_axis]
+    trans[1][up_axis] = -trans[1][up_axis]
+    trans[up_axis][3] = -trans[up_axis][3]
 
-        trans[up_axis][0] = -trans[up_axis][0]
-        trans[up_axis][1] = -trans[up_axis][1]
-        trans[0][up_axis] = -trans[0][up_axis]
-        trans[1][up_axis] = -trans[1][up_axis]
-        trans[up_axis][3] = -trans[up_axis][3]
+    return trans
 
-        return trans
 
+# ------------------ Implicit Conversions of Blender Types --------------------
+def mat4_to_string(mtx):
+    """Converts a matrix to a "Transform" string that can be parsed by Godot"""
     mtx = fix_matrix(mtx)
     array = Array('Transform(')
     for row in range(3):