diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-16 23:53:12 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-16 23:53:12 +0400 |
commit | 3311164b24da61f2967f96d0ee27508a7e2e0267 (patch) | |
tree | 0824417cf3d645f59d98b210c02a4c5ef6c05a48 /source/blender/collada/ArmatureImporter.cpp | |
parent | 3c8ab559a5bd31fd38e9c5cf9da8505ca28f4887 (diff) |
Math lib: matrix multiplication order fix for two functions that were
inconsistent with similar functions & math notation:
mul_m4_m4m4(R, B, A) => mult_m4_m4m4(R, A, B)
mul_m3_m3m4(R, B, A) => mult_m3_m3m4(R, A, B)
For branch maintainers, it should be relatively simple to fix things manually,
it's also possible run this script after merging to do automatic replacement:
http://www.pasteall.org/27459/python
Diffstat (limited to 'source/blender/collada/ArmatureImporter.cpp')
-rw-r--r-- | source/blender/collada/ArmatureImporter.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index bababf880a6..4bc0c18551a 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -99,7 +99,7 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p // get world-space if (parent){ - mul_m4_m4m4(mat, obmat, parent_mat); + mult_m4_m4m4(mat, parent_mat, obmat); } else { @@ -185,7 +185,7 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo // get world-space if (parent) - mul_m4_m4m4(mat, obmat, parent_mat); + mult_m4_m4m4(mat, parent_mat, obmat); else copy_m4_m4(mat, obmat); @@ -584,17 +584,17 @@ void ArmatureImporter::set_pose ( Object * ob_arm , COLLADAFW::Node * root_node // get world-space if (parentname){ - mul_m4_m4m4(mat, obmat, parent_mat); + mult_m4_m4m4(mat, parent_mat, obmat); bPoseChannel *parchan = get_pose_channel(ob_arm->pose, parentname); - mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat); + mult_m4_m4m4(pchan->pose_mat, parchan->pose_mat, mat ); } else { copy_m4_m4(mat, obmat); float invObmat[4][4]; invert_m4_m4(invObmat, ob_arm->obmat); - mul_m4_m4m4(pchan->pose_mat, mat, invObmat); + mult_m4_m4m4(pchan->pose_mat, invObmat, mat); } mat4_to_axis_angle(ax,&angle,mat); |