Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaia Clary <gaia.clary@machinimatrix.org>2019-05-23 23:27:45 +0300
committerGaia Clary <gaia.clary@machinimatrix.org>2019-05-23 23:37:26 +0300
commitb3f96da2e6052b75a8b1b06048dfb79e5bdfd76a (patch)
treecfa20e15570abf7fb3eb0ae92f9fdecc18ae6258 /source/blender/collada
parentfd51d2f97cbe0117e8939396f196366a0043849e (diff)
fix unreported Collada exporter Regression: Added back minimal support for Maya bindpose
Diffstat (limited to 'source/blender/collada')
-rw-r--r--source/blender/collada/ArmatureExporter.cpp2
-rw-r--r--source/blender/collada/ControllerExporter.cpp6
-rw-r--r--source/blender/collada/TransformWriter.cpp6
-rw-r--r--source/blender/collada/TransformWriter.h3
4 files changed, 11 insertions, 6 deletions
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);