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:
Diffstat (limited to 'source/blender/alembic/intern/abc_object.cc')
-rw-r--r--source/blender/alembic/intern/abc_object.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/alembic/intern/abc_object.cc b/source/blender/alembic/intern/abc_object.cc
index 54450ce1cb2..f863fe4fee7 100644
--- a/source/blender/alembic/intern/abc_object.cc
+++ b/source/blender/alembic/intern/abc_object.cc
@@ -335,16 +335,17 @@ void AbcObjectReader::read_matrix(float r_mat[4][4],
mul_m4_m4m4(r_mat, m_object->parent->obmat, r_mat);
}
else {
- /* This can happen if the user deleted the parent object. */
- unit_m4(r_mat);
+ /* This can happen if the user deleted the parent object, but also if the Alembic parent was
+ * not imported (because of unknown/unsupported schema, for example). In that case just use
+ * the local matrix as if it is the world matrix. This allows us to import Alembic files from
+ * MeshRoom, see T61935. */
}
}
else {
/* Only apply scaling to root objects, parenting will propagate it. */
float scale_mat[4][4];
scale_m4_fl(scale_mat, scale);
- scale_mat[3][3] = scale; /* scale translations too */
- mul_m4_m4m4(r_mat, r_mat, scale_mat);
+ mul_m4_m4m4(r_mat, scale_mat, r_mat);
}
is_constant = schema.isConstant();