Alembic import: moved import-time scaling to different function
[blender.git] / source / blender / alembic / intern / abc_object.cc
index 763bc34a410f168d73d6a2ea0539cf70bc51311b..2c658716c3a5b240738624d55764e7a6956cf4b4 100644 (file)
@@ -289,7 +289,7 @@ void AbcObjectReader::read_matrix(float r_mat[4][4], const float time,
        }
 
        const Imath::M44d matrix = get_matrix(schema, time);
-       convert_matrix(matrix, m_object, r_mat, scale, has_alembic_parent);
+       convert_matrix(matrix, m_object, r_mat);
 
        if (has_alembic_parent) {
                /* In this case, the matrix in Alembic is in local coordinates, so
@@ -300,6 +300,13 @@ void AbcObjectReader::read_matrix(float r_mat[4][4], const float time,
                BLI_assert(m_object->parent);
                mul_m4_m4m4(r_mat, m_object->parent->obmat, r_mat);
        }
+       else {
+               /* Only apply scaling to root objects, parenting will propagate it. */
+               float scale_mat[4][4];
+               scale_m4_fl(scale_mat, scale);
+               mul_m4_m4m4(r_mat, r_mat, scale_mat);
+               mul_v3_fl(r_mat[3], scale);
+       }
 
        is_constant = schema.isConstant();
 }