[Bf-blender-cvs] [b3f96da2e60] master: fix unreported Collada exporter Regression: Added back minimal support for Maya bindpose

Gaia Clary noreply at git.blender.org
Thu May 23 22:55:15 CEST 2019


Commit: b3f96da2e6052b75a8b1b06048dfb79e5bdfd76a
Author: Gaia Clary
Date:   Thu May 23 22:27:45 2019 +0200
Branches: master
https://developer.blender.org/rBb3f96da2e6052b75a8b1b06048dfb79e5bdfd76a

fix unreported Collada exporter Regression: Added back minimal support for Maya bindpose

===================================================================

M	source/blender/collada/ArmatureExporter.cpp
M	source/blender/collada/ControllerExporter.cpp
M	source/blender/collada/TransformWriter.cpp
M	source/blender/collada/TransformWriter.h

===================================================================

diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp
index 6dfe6915892..1288a5c7768 100644
--- a/source/blender/collada/ArmatureExporter.cpp
+++ b/source/blender/collada/ArmatureExporter.cpp
@@ -318,7 +318,7 @@ void ArmatureExporter::add_bone_transform(Object *ob_arm, Bone *bone, COLLADASW:
     bc_sanitize_mat(mat, LIMITTED_PRECISION);
   }
 
-  TransformWriter::add_node_transform(node, mat, NULL, this->export_settings);
+  TransformWriter::add_node_transform(node, mat, NULL, this->export_settings, has_restmat);
 }
 
 std::string ArmatureExporter::get_controller_id(Object *ob_arm, Object *ob)
diff --git a/source/blender/collada/ControllerExporter.cpp b/source/blender/collada/ControllerExporter.cpp
index adea9fd672a..cb15a3a7a7c 100644
--- a/source/blender/collada/ControllerExporter.cpp
+++ b/source/blender/collada/ControllerExporter.cpp
@@ -553,8 +553,10 @@ std::string ControllerExporter::add_inv_bind_mats_source(Object *ob_arm,
       /* make world-space matrix (bind_mat is armature-space) */
       mul_m4_m4m4(world, ob_arm->obmat, bind_mat);
 
-      if (export_settings.get_apply_global_orientation()) {
-        bc_apply_global_transform(world, export_settings.get_global_transform());
+      if (!has_bindmat) {
+        if (export_settings.get_apply_global_orientation()) {
+          bc_apply_global_transform(world, export_settings.get_global_transform());
+        }
       }
 
       invert_m4_m4(mat, world);
diff --git a/source/blender/collada/TransformWriter.cpp b/source/blender/collada/TransformWriter.cpp
index 0cbb8c65cf1..1fe0c1d4494 100644
--- a/source/blender/collada/TransformWriter.cpp
+++ b/source/blender/collada/TransformWriter.cpp
@@ -28,7 +28,9 @@
 void TransformWriter::add_node_transform(COLLADASW::Node &node,
                                          float mat[4][4],
                                          float parent_mat[4][4],
-                                         BCExportSettings &export_settings
+                                         BCExportSettings &export_settings,
+                                         bool has_restmat
+
 	)
 {
   // bool limit_precision = export_settings.limit_precision;
@@ -44,7 +46,7 @@ void TransformWriter::add_node_transform(COLLADASW::Node &node,
     copy_m4_m4(local, mat);
   }
 
-  if (export_settings.get_apply_global_orientation()) {
+  if (!has_restmat && export_settings.get_apply_global_orientation()) {
     bc_apply_global_transform(local, export_settings.get_global_transform());
   }
 
diff --git a/source/blender/collada/TransformWriter.h b/source/blender/collada/TransformWriter.h
index 63f563ad58e..1382b9a901f 100644
--- a/source/blender/collada/TransformWriter.h
+++ b/source/blender/collada/TransformWriter.h
@@ -34,7 +34,8 @@ class TransformWriter {
   void add_node_transform(COLLADASW::Node &node,
                           float mat[4][4],
                           float parent_mat[4][4],
-                          BCExportSettings &export_settings);
+                          BCExportSettings &export_settings,
+                          bool has_restmat);
 
   void add_node_transform_ob(COLLADASW::Node &node, Object *ob, BCExportSettings &export_settings);



More information about the Bf-blender-cvs mailing list