From b3f96da2e6052b75a8b1b06048dfb79e5bdfd76a Mon Sep 17 00:00:00 2001 From: Gaia Clary Date: Thu, 23 May 2019 22:27:45 +0200 Subject: fix unreported Collada exporter Regression: Added back minimal support for Maya bindpose --- source/blender/collada/ArmatureExporter.cpp | 2 +- source/blender/collada/ControllerExporter.cpp | 6 ++++-- source/blender/collada/TransformWriter.cpp | 6 ++++-- source/blender/collada/TransformWriter.h | 3 ++- 4 files changed, 11 insertions(+), 6 deletions(-) (limited to 'source/blender/collada') 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); -- cgit v1.2.3