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

This commit is contained in:
Gaia Clary
2019-05-23 22:27:45 +02:00
parent fd51d2f97c
commit b3f96da2e6
4 changed files with 11 additions and 6 deletions

View File

@@ -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)

View File

@@ -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);

View File

@@ -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());
}

View File

@@ -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);