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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-12-16 23:53:12 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-12-16 23:53:12 +0400
commit3311164b24da61f2967f96d0ee27508a7e2e0267 (patch)
tree0824417cf3d645f59d98b210c02a4c5ef6c05a48 /source/blender/editors/transform
parent3c8ab559a5bd31fd38e9c5cf9da8505ca28f4887 (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/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_conversions.c8
-rw-r--r--source/blender/editors/transform/transform_generics.c2
-rw-r--r--source/blender/editors/transform/transform_manipulator.c4
3 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 802e6cd7374..fd74458b953 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -441,14 +441,14 @@ static short apply_targetless_ik(Object *ob)
offs_bone[3][0]= offs_bone[3][1]= offs_bone[3][2]= 0.0f;
mul_m4_v3(parchan->parent->pose_mat, rmat[3]);
- mul_m4_m4m4(tmat, offs_bone, rmat);
+ mult_m4_m4m4(tmat, rmat, offs_bone);
}
else if(parchan->bone->flag & BONE_NO_SCALE) {
- mul_m4_m4m4(tmat, offs_bone, parchan->parent->pose_mat);
+ mult_m4_m4m4(tmat, parchan->parent->pose_mat, offs_bone);
normalize_m4(tmat);
}
else
- mul_m4_m4m4(tmat, offs_bone, parchan->parent->pose_mat);
+ mult_m4_m4m4(tmat, parchan->parent->pose_mat, offs_bone);
invert_m4_m4(imat, tmat);
}
@@ -459,7 +459,7 @@ static short apply_targetless_ik(Object *ob)
invert_m4_m4(imat, tmat);
}
/* result matrix */
- mul_m4_m4m4(rmat, parchan->pose_mat, imat);
+ mult_m4_m4m4(rmat, imat, parchan->pose_mat);
/* apply and decompose, doesn't work for constraints or non-uniform scale well */
{
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index d0857958a4b..e7e1ee43c5d 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -171,7 +171,7 @@ static void clipMirrorModifier(TransInfo *t, Object *ob)
float obinv[4][4];
invert_m4_m4(obinv, mmd->mirror_ob->obmat);
- mul_m4_m4m4(mtx, ob->obmat, obinv);
+ mult_m4_m4m4(mtx, obinv, ob->obmat);
invert_m4_m4(imtx, mtx);
}
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 63495d54cf1..5578ea754df 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -1564,7 +1564,7 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, const int mval[2], fl
rect.ymax= mval[1]+hotspot;
setwinmatrixview3d(ar, v3d, &rect);
- mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
+ mult_m4_m4m4(rv3d->persmat, rv3d->winmat, rv3d->viewmat);
glSelectBuffer( 64, buffer);
glRenderMode(GL_SELECT);
@@ -1586,7 +1586,7 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, const int mval[2], fl
G.f &= ~G_PICKSEL;
setwinmatrixview3d(ar, v3d, NULL);
- mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
+ mult_m4_m4m4(rv3d->persmat, rv3d->winmat, rv3d->viewmat);
if(hits==1) return buffer[3];
else if(hits>1) {