io: remove unnecessary transposes when using mat3_from_axis_conversion
Some I/O code paths (Collada, OBJ) were using mat3_from_axis_conversion followed by transpose_m3, instead of swapping the axis arguments which achieves exactly the same result. Reviewed By: Aras Pranckevicius Differential Revision: https://developer.blender.org/D15158
This commit is contained in:
parent
43ddfdb1a5
commit
2804497312
|
@ -49,11 +49,7 @@ BCMatrix::BCMatrix(BC_global_forward_axis global_forward_axis, BC_global_up_axis
|
|||
float mrot[3][3];
|
||||
float mat[4][4];
|
||||
mat3_from_axis_conversion(
|
||||
BC_DEFAULT_FORWARD, BC_DEFAULT_UP, global_forward_axis, global_up_axis, mrot);
|
||||
|
||||
/* TODO: Verify that `mat3_from_axis_conversion()` returns a transposed matrix */
|
||||
transpose_m3(mrot);
|
||||
|
||||
global_forward_axis, global_up_axis, BC_DEFAULT_FORWARD, BC_DEFAULT_UP, mrot);
|
||||
copy_m4_m3(mat, mrot);
|
||||
set_transform(mat);
|
||||
}
|
||||
|
|
|
@ -122,9 +122,7 @@ void OBJMesh::set_world_axes_transform(const eIOAxis forward, const eIOAxis up)
|
|||
float axes_transform[3][3];
|
||||
unit_m3(axes_transform);
|
||||
/* +Y-forward and +Z-up are the default Blender axis settings. */
|
||||
mat3_from_axis_conversion(IO_AXIS_Y, IO_AXIS_Z, forward, up, axes_transform);
|
||||
/* mat3_from_axis_conversion returns a transposed matrix! */
|
||||
transpose_m3(axes_transform);
|
||||
mat3_from_axis_conversion(forward, up, IO_AXIS_Y, IO_AXIS_Z, axes_transform);
|
||||
mul_m4_m3m4(world_and_axes_transform_, axes_transform, export_object_eval_.obmat);
|
||||
/* mul_m4_m3m4 does not transform last row of obmat, i.e. location data. */
|
||||
mul_v3_m3v3(world_and_axes_transform_[3], axes_transform, export_object_eval_.obmat[3]);
|
||||
|
|
|
@ -30,9 +30,7 @@ void OBJCurve::set_world_axes_transform(const eIOAxis forward, const eIOAxis up)
|
|||
float axes_transform[3][3];
|
||||
unit_m3(axes_transform);
|
||||
/* +Y-forward and +Z-up are the Blender's default axis settings. */
|
||||
mat3_from_axis_conversion(IO_AXIS_Y, IO_AXIS_Z, forward, up, axes_transform);
|
||||
/* mat3_from_axis_conversion returns a transposed matrix! */
|
||||
transpose_m3(axes_transform);
|
||||
mat3_from_axis_conversion(forward, up, IO_AXIS_Y, IO_AXIS_Z, axes_transform);
|
||||
mul_m4_m3m4(world_axes_transform_, axes_transform, export_object_eval_->obmat);
|
||||
/* #mul_m4_m3m4 does not transform last row of #Object.obmat, i.e. location data. */
|
||||
mul_v3_m3v3(world_axes_transform_[3], axes_transform, export_object_eval_->obmat[3]);
|
||||
|
|
|
@ -100,9 +100,7 @@ void transform_object(Object *object, const OBJImportParams &import_params)
|
|||
unit_m4(obmat);
|
||||
/* +Y-forward and +Z-up are the default Blender axis settings. */
|
||||
mat3_from_axis_conversion(
|
||||
import_params.forward_axis, import_params.up_axis, IO_AXIS_Y, IO_AXIS_Z, axes_transform);
|
||||
/* mat3_from_axis_conversion returns a transposed matrix! */
|
||||
transpose_m3(axes_transform);
|
||||
IO_AXIS_Y, IO_AXIS_Z, import_params.forward_axis, import_params.up_axis, axes_transform);
|
||||
copy_m4_m3(obmat, axes_transform);
|
||||
|
||||
BKE_object_apply_mat4(object, obmat, true, false);
|
||||
|
|
Loading…
Reference in New Issue