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/blenkernel/intern
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/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/anim.c20
-rw-r--r--source/blender/blenkernel/intern/armature.c26
-rw-r--r--source/blender/blenkernel/intern/camera.c2
-rw-r--r--source/blender/blenkernel/intern/constraint.c68
-rw-r--r--source/blender/blenkernel/intern/fcurve.c2
-rw-r--r--source/blender/blenkernel/intern/lattice.c4
-rw-r--r--source/blender/blenkernel/intern/mball.c6
-rw-r--r--source/blender/blenkernel/intern/object.c10
-rw-r--r--source/blender/blenkernel/intern/particle.c6
-rw-r--r--source/blender/blenkernel/intern/tracking.c4
10 files changed, 74 insertions, 74 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 0cd8845c53b..bb8022c59fe 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -726,10 +726,10 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int level, i
if(!is_zero_v3(group->dupli_ofs)) {
copy_m4_m4(tmat, go->ob->obmat);
sub_v3_v3v3(tmat[3], tmat[3], group->dupli_ofs);
- mul_m4_m4m4(mat, tmat, ob->obmat);
+ mult_m4_m4m4(mat, ob->obmat, tmat);
}
else {
- mul_m4_m4m4(mat, go->ob->obmat, ob->obmat);
+ mult_m4_m4m4(mat, ob->obmat, go->ob->obmat);
}
dob= new_dupli_object(lb, go->ob, mat, ob->lay, 0, OB_DUPLIGROUP, animated);
@@ -955,7 +955,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
when par_space_mat is NULL ob->obmat can be used instead of ob__obmat
*/
if(par_space_mat)
- mul_m4_m4m4(vdd.obmat, ob->obmat, par_space_mat);
+ mult_m4_m4m4(vdd.obmat, par_space_mat, ob->obmat);
else
copy_m4_m4(vdd.obmat, ob->obmat);
@@ -1084,7 +1084,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
when par_space_mat is NULL ob->obmat can be used instead of ob__obmat
*/
if(par_space_mat)
- mul_m4_m4m4(ob__obmat, ob->obmat, par_space_mat);
+ mult_m4_m4m4(ob__obmat, par_space_mat, ob->obmat);
else
copy_m4_m4(ob__obmat, ob->obmat);
@@ -1396,15 +1396,15 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
if(!is_zero_v3(part->dup_group->dupli_ofs)) {
copy_m4_m4(tmat, oblist[b]->obmat);
sub_v3_v3v3(tmat[3], tmat[3], part->dup_group->dupli_ofs);
- mul_m4_m4m4(tmat, tmat, pamat);
+ mult_m4_m4m4(tmat, pamat, tmat);
}
else {
- mul_m4_m4m4(tmat, oblist[b]->obmat, pamat);
+ mult_m4_m4m4(tmat, pamat, oblist[b]->obmat);
}
mul_mat3_m4_fl(tmat, size*scale);
if(par_space_mat)
- mul_m4_m4m4(mat, tmat, par_space_mat);
+ mult_m4_m4m4(mat, par_space_mat, tmat);
else
copy_m4_m4(mat, tmat);
@@ -1435,15 +1435,15 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
* remove the real emitter's transformation before 2nd order duplication.
*/
if(par_space_mat && GS(id->name) != ID_GR)
- mul_m4_m4m4(mat, pamat, psys->imat);
+ mult_m4_m4m4(mat, psys->imat, pamat);
else
copy_m4_m4(mat, pamat);
- mul_m4_m4m4(tmat, obmat, mat);
+ mult_m4_m4m4(tmat, mat, obmat);
mul_mat3_m4_fl(tmat, size*scale);
if(par_space_mat)
- mul_m4_m4m4(mat, tmat, par_space_mat);
+ mult_m4_m4m4(mat, par_space_mat, tmat);
else
copy_m4_m4(mat, tmat);
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 4035db36a39..ae04b7760c2 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -505,9 +505,9 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest)
if(prev->bone->segments==1) {
/* find the previous roll to interpolate */
if(rest)
- mul_m4_m4m4(difmat, prev->bone->arm_mat, imat);
+ mult_m4_m4m4(difmat, imat, prev->bone->arm_mat);
else
- mul_m4_m4m4(difmat, prev->pose_mat, imat);
+ mult_m4_m4m4(difmat, imat, prev->pose_mat);
copy_m3_m4(result, difmat); // the desired rotation at beginning of next bone
vec_roll_to_mat3(h1, 0.0f, mat3); // the result of vec_roll without roll
@@ -538,9 +538,9 @@ Mat4 *b_bone_spline_setup(bPoseChannel *pchan, int rest)
/* find the next roll to interpolate as well */
if(rest)
- mul_m4_m4m4(difmat, next->bone->arm_mat, imat);
+ mult_m4_m4m4(difmat, imat, next->bone->arm_mat);
else
- mul_m4_m4m4(difmat, next->pose_mat, imat);
+ mult_m4_m4m4(difmat, imat, next->pose_mat);
copy_m3_m4(result, difmat); // the desired rotation at beginning of next bone
vec_roll_to_mat3(h2, 0.0f, mat3); // the result of vec_roll without roll
@@ -837,7 +837,7 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm,
invert_m4_m4(obinv, target->obmat);
copy_m4_m4(premat, target->obmat);
- mul_m4_m4m4(postmat, armOb->obmat, obinv);
+ mult_m4_m4m4(postmat, obinv, armOb->obmat);
invert_m4_m4(premat, postmat);
/* bone defmats are already in the channels, chan_mat */
@@ -1103,7 +1103,7 @@ void armature_mat_world_to_pose(Object *ob, float inmat[][4], float outmat[][4])
invert_m4_m4(obmat, ob->obmat);
/* multiply given matrix by object's-inverse to find pose-space matrix */
- mul_m4_m4m4(outmat, obmat, inmat);
+ mult_m4_m4m4(outmat, inmat, obmat);
}
/* Convert Wolrd-Space Location to Pose-Space Location
@@ -1174,7 +1174,7 @@ void armature_mat_pose_to_bone(bPoseChannel *pchan, float inmat[][4], float outm
* This should leave behind the effects of restpose +
* parenting + constraints
*/
- mul_m4_m4m4(pc_posemat, inv_trans, pose_mat);
+ mult_m4_m4m4(pc_posemat, pose_mat, inv_trans);
/* get the inverse of the leftovers so that we can remove
* that component from the supplied matrix
@@ -1182,7 +1182,7 @@ void armature_mat_pose_to_bone(bPoseChannel *pchan, float inmat[][4], float outm
invert_m4_m4(inv_posemat, pc_posemat);
/* get the new matrix */
- mul_m4_m4m4(outmat, inmat, inv_posemat);
+ mult_m4_m4m4(outmat, inv_posemat, inmat);
}
/* Convert Pose-Space Location to Bone-Space Location
@@ -1237,7 +1237,7 @@ void armature_mat_pose_to_delta(float delta_mat[][4], float pose_mat[][4], float
float imat[4][4];
invert_m4_m4(imat, arm_mat);
- mul_m4_m4m4(delta_mat, pose_mat, imat);
+ mult_m4_m4m4(delta_mat, imat, pose_mat);
}
/* **************** Rotation Mode Conversions ****************************** */
@@ -1410,7 +1410,7 @@ void where_is_armature_bone(Bone *bone, Bone *prevbone)
offs_bone[3][1]+= prevbone->length;
/* Compose the matrix for this bone */
- mul_m4_m4m4(bone->arm_mat, offs_bone, prevbone->arm_mat);
+ mult_m4_m4m4(bone->arm_mat, prevbone->arm_mat, offs_bone);
}
else {
copy_m4_m3(bone->arm_mat, bone->bone_mat);
@@ -2310,7 +2310,7 @@ void where_is_pose_bone(Scene *scene, Object *ob, bPoseChannel *pchan, float cti
/* extract the scale of the parent matrix */
mat4_to_size(tscale, parchan->pose_mat);
size_to_mat4(tsmat, tscale);
- mul_m4_m4m4(tmat, tmat, tsmat);
+ mult_m4_m4m4(tmat, tsmat, tmat);
mul_serie_m4(pchan->pose_mat, tmat, offs_bone, pchan->chan_mat, NULL, NULL, NULL, NULL, NULL);
}
@@ -2344,7 +2344,7 @@ void where_is_pose_bone(Scene *scene, Object *ob, bPoseChannel *pchan, float cti
}
}
else {
- mul_m4_m4m4(pchan->pose_mat, pchan->chan_mat, bone->arm_mat);
+ mult_m4_m4m4(pchan->pose_mat, bone->arm_mat, pchan->chan_mat);
/* optional location without arm_mat rotation */
if(bone->flag & BONE_NO_LOCAL_LOCATION)
@@ -2466,7 +2466,7 @@ void where_is_pose (Scene *scene, Object *ob)
for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
if(pchan->bone) {
invert_m4_m4(imat, pchan->bone->arm_mat);
- mul_m4_m4m4(pchan->chan_mat, imat, pchan->pose_mat);
+ mult_m4_m4m4(pchan->chan_mat, pchan->pose_mat, imat);
}
}
}
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index 2bd973d7799..f55ceab7de8 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -159,7 +159,7 @@ float object_camera_dof_distance(Object *ob)
copy_m4_m4(obmat, ob->obmat);
normalize_m4(obmat);
invert_m4_m4(imat, obmat);
- mul_m4_m4m4(mat, cam->dof_ob->obmat, imat);
+ mult_m4_m4m4(mat, imat, cam->dof_ob->obmat);
return fabsf(mat[3][2]);
}
return cam->YF_dofdist;
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index 87a50b89547..927a98c174f 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -153,7 +153,7 @@ bConstraintOb *constraints_make_evalob (Scene *scene, Object *ob, void *subdata,
}
/* matrix in world-space */
- mul_m4_m4m4(cob->matrix, cob->pchan->pose_mat, ob->obmat);
+ mult_m4_m4m4(cob->matrix, ob->obmat, cob->pchan->pose_mat);
}
else
unit_m4(cob->matrix);
@@ -182,7 +182,7 @@ void constraints_clear_evalob (bConstraintOb *cob)
/* calculate delta of constraints evaluation */
invert_m4_m4(imat, cob->startmat);
- mul_m4_m4m4(delta, imat, cob->matrix);
+ mult_m4_m4m4(delta, cob->matrix, imat);
/* copy matrices back to source */
switch (cob->type) {
@@ -203,7 +203,7 @@ void constraints_clear_evalob (bConstraintOb *cob)
/* cob->ob or cob->pchan might not exist */
if (cob->ob && cob->pchan) {
/* copy new pose-matrix back to owner */
- mul_m4_m4m4(cob->pchan->pose_mat, cob->matrix, cob->ob->imat);
+ mult_m4_m4m4(cob->pchan->pose_mat, cob->ob->imat, cob->matrix);
/* copy inverse of delta back to owner */
invert_m4_m4(cob->pchan->constinv, delta);
@@ -242,7 +242,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
/* world to pose */
invert_m4_m4(imat, ob->obmat);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, imat);
+ mult_m4_m4m4(mat, imat, tempmat);
/* use pose-space as stepping stone for other spaces... */
if (ELEM(to, CONSTRAINT_SPACE_LOCAL, CONSTRAINT_SPACE_PARLOCAL)) {
@@ -256,7 +256,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
/* pose to world */
if (to == CONSTRAINT_SPACE_WORLD) {
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, ob->obmat);
+ mult_m4_m4m4(mat, ob->obmat, tempmat);
}
/* pose to local */
else if (to == CONSTRAINT_SPACE_LOCAL) {
@@ -281,12 +281,12 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
offs_bone[3][0]= offs_bone[3][1]= offs_bone[3][2]= 0.0f;
mul_m4_v3(pchan->parent->pose_mat, tmat[3]);
- mul_m4_m4m4(diff_mat, offs_bone, tmat);
+ mult_m4_m4m4(diff_mat, tmat, offs_bone);
invert_m4_m4(imat, diff_mat);
}
else {
/* pose_mat = par_pose_mat * bone_mat * chan_mat */
- mul_m4_m4m4(diff_mat, offs_bone, pchan->parent->pose_mat);
+ mult_m4_m4m4(diff_mat, pchan->parent->pose_mat, offs_bone);
invert_m4_m4(imat, diff_mat);
}
}
@@ -296,7 +296,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
}
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, imat);
+ mult_m4_m4m4(mat, imat, tempmat);
}
}
/* pose to local with parent */
@@ -304,7 +304,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
if (pchan->bone) {
invert_m4_m4(imat, pchan->bone->arm_mat);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, imat);
+ mult_m4_m4m4(mat, imat, tempmat);
}
}
}
@@ -334,22 +334,22 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
zero_v3(offs_bone[3]);
mul_m4_v3(pchan->parent->pose_mat, tmat[3]);
- mul_m4_m4m4(diff_mat, offs_bone, tmat);
+ mult_m4_m4m4(diff_mat, tmat, offs_bone);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, diff_mat);
+ mult_m4_m4m4(mat, diff_mat, tempmat);
}
else {
/* pose_mat = par_pose_mat * bone_mat * chan_mat */
- mul_m4_m4m4(diff_mat, offs_bone, pchan->parent->pose_mat);
+ mult_m4_m4m4(diff_mat, pchan->parent->pose_mat, offs_bone);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, diff_mat);
+ mult_m4_m4m4(mat, diff_mat, tempmat);
}
}
else {
copy_m4_m4(diff_mat, pchan->bone->arm_mat);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, diff_mat);
+ mult_m4_m4m4(mat, diff_mat, tempmat);
}
}
@@ -366,7 +366,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
if (pchan->bone) {
copy_m4_m4(diff_mat, pchan->bone->arm_mat);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, diff_mat, tempmat);
+ mult_m4_m4m4(mat, tempmat, diff_mat);
}
/* use pose-space as stepping stone for other spaces */
@@ -384,10 +384,10 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
/* check if object has a parent */
if (ob->parent) {
/* 'subtract' parent's effects from owner */
- mul_m4_m4m4(diff_mat, ob->parentinv, ob->parent->obmat);
+ mult_m4_m4m4(diff_mat, ob->parent->obmat, ob->parentinv);
invert_m4_m4(imat, diff_mat);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, imat);
+ mult_m4_m4m4(mat, imat, tempmat);
}
else {
/* Local space in this case will have to be defined as local to the owner's
@@ -399,7 +399,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
invert_m4_m4(imat, diff_mat);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, imat);
+ mult_m4_m4m4(mat, imat, tempmat);
}
}
else if (from==CONSTRAINT_SPACE_LOCAL && to==CONSTRAINT_SPACE_WORLD) {
@@ -407,8 +407,8 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
if (ob->parent) {
/* 'add' parent's effect back to owner */
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(diff_mat, ob->parentinv, ob->parent->obmat);
- mul_m4_m4m4(mat, tempmat, diff_mat);
+ mult_m4_m4m4(diff_mat, ob->parent->obmat, ob->parentinv);
+ mult_m4_m4m4(mat, diff_mat, tempmat);
}
else {
/* Local space in this case will have to be defined as local to the owner's
@@ -419,7 +419,7 @@ void constraint_mat_convertspace (Object *ob, bPoseChannel *pchan, float mat[][4
zero_v3(diff_mat[3]);
copy_m4_m4(tempmat, mat);
- mul_m4_m4m4(mat, tempmat, diff_mat);
+ mult_m4_m4m4(mat, diff_mat, tempmat);
}
}
}
@@ -612,7 +612,7 @@ static void constraint_target_to_mat4 (Object *ob, const char *substring, float
*/
if (headtail < 0.000001f) {
/* skip length interpolation if set to head */
- mul_m4_m4m4(mat, pchan->pose_mat, ob->obmat);
+ mult_m4_m4m4(mat, ob->obmat, pchan->pose_mat);
}
else {
float tempmat[4][4], loc[3];
@@ -624,7 +624,7 @@ static void constraint_target_to_mat4 (Object *ob, const char *substring, float
copy_m4_m4(tempmat, pchan->pose_mat);
copy_v3_v3(tempmat[3], loc);
- mul_m4_m4m4(mat, tempmat, ob->obmat);
+ mult_m4_m4m4(mat, ob->obmat, tempmat);
}
}
else
@@ -836,12 +836,12 @@ static void childof_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *ta
/* multiply target (parent matrix) by offset (parent inverse) to get
* the effect of the parent that will be exherted on the owner
*/
- mul_m4_m4m4(parmat, data->invmat, ct->matrix);
+ mult_m4_m4m4(parmat, ct->matrix, data->invmat);
/* now multiply the parent matrix by the owner matrix to get the
* the effect of this constraint (i.e. owner is 'parented' to parent)
*/
- mul_m4_m4m4(cob->matrix, cob->matrix, parmat);
+ mult_m4_m4m4(cob->matrix, parmat, cob->matrix);
}
else {
float invmat[4][4], tempmat[4][4];
@@ -878,13 +878,13 @@ static void childof_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *ta
/* multiply target (parent matrix) by offset (parent inverse) to get
* the effect of the parent that will be exherted on the owner
*/
- mul_m4_m4m4(parmat, invmat, ct->matrix);
+ mult_m4_m4m4(parmat, ct->matrix, invmat);
/* now multiply the parent matrix by the owner matrix to get the
* the effect of this constraint (i.e. owner is 'parented' to parent)
*/
copy_m4_m4(tempmat, cob->matrix);
- mul_m4_m4m4(cob->matrix, tempmat, parmat);
+ mult_m4_m4m4(cob->matrix, parmat, tempmat);
/* without this, changes to scale and rotation can change location
* of a parentless bone or a disconnected bone. Even though its set
@@ -1294,7 +1294,7 @@ static void followpath_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstr
if (data->followflag & FOLLOWPATH_RADIUS) {
float tmat[4][4], rmat[4][4];
scale_m4_fl(tmat, radius);
- mul_m4_m4m4(rmat, totmat, tmat);
+ mult_m4_m4m4(rmat, tmat, totmat);
copy_m4_m4(totmat, rmat);
}
@@ -2237,7 +2237,7 @@ static void actcon_evaluate (bConstraint *UNUSED(con), bConstraintOb *cob, ListB
* function has already taken care of everything else.
*/
copy_m4_m4(temp, cob->matrix);
- mul_m4_m4m4(cob->matrix, ct->matrix, temp);
+ mult_m4_m4m4(cob->matrix, temp, ct->matrix);
}
}
@@ -2928,7 +2928,7 @@ static void minmax_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *tar
if (data->flag & MINMAX_USEROT) {
/* take rotation of target into account by doing the transaction in target's localspace */
invert_m4_m4(imat, tarmat);
- mul_m4_m4m4(tmat, obmat, imat);
+ mult_m4_m4m4(tmat, imat, obmat);
copy_m4_m4(obmat, tmat);
unit_m4(tarmat);
}
@@ -2981,7 +2981,7 @@ static void minmax_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *tar
}
if (data->flag & MINMAX_USEROT) {
/* get out of localspace */
- mul_m4_m4m4(tmat, obmat, ct->matrix);
+ mult_m4_m4m4(tmat, ct->matrix, obmat);
copy_m4_m4(cob->matrix, tmat);
}
else {
@@ -4020,7 +4020,7 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase
copy_m4_m4(rmat, camob->obmat);
zero_v3(rmat[3]);
- mul_m4_m4m4(cob->matrix, rmat, cob->matrix);
+ mult_m4_m4m4(cob->matrix, cob->matrix, rmat);
copy_v3_v3(cob->matrix[3], disp);
}
@@ -4039,7 +4039,7 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase
/* apply camera rotation so Z-axis would be co-linear */
copy_m4_m4(rmat, camob->obmat);
zero_v3(rmat[3]);
- mul_m4_m4m4(cob->matrix, rmat, cob->matrix);
+ mult_m4_m4m4(cob->matrix, cob->matrix, rmat);
copy_v3_v3(cob->matrix[3], disp);
}
@@ -4096,7 +4096,7 @@ static void camerasolver_evaluate (bConstraint *con, bConstraintOb *cob, ListBas
BKE_tracking_get_interpolated_camera(&clip->tracking, scene->r.cfra, mat);
copy_m4_m4(obmat, cob->matrix);
- mul_m4_m4m4(cob->matrix, mat, obmat);
+ mult_m4_m4m4(cob->matrix, obmat, mat);
}
}
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index d01e3de0796..b9947c506d1 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -1283,7 +1283,7 @@ static float dvar_eval_transChan (ChannelDriver *driver, DriverVar *dvar)
}
else {
/* worldspace matrix */
- mul_m4_m4m4(mat, pchan->pose_mat, ob->obmat);
+ mult_m4_m4m4(mat, ob->obmat, pchan->pose_mat);
}
}
else {
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index fe07662795e..4c30789db73 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -316,7 +316,7 @@ void init_latt_deform(Object *oblatt, Object *ob)
else {
/* in deformspace, calc matrix */
invert_m4_m4(imat, oblatt->obmat);
- mul_m4_m4m4(lt->latmat, ob->obmat, imat);
+ mult_m4_m4m4(lt->latmat, imat, ob->obmat);
/* back: put in deform array */
invert_m4_m4(imat, lt->latmat);
@@ -470,7 +470,7 @@ typedef struct {
static void init_curve_deform(Object *par, Object *ob, CurveDeform *cd, int dloc)
{
invert_m4_m4(ob->imat, ob->obmat);
- mul_m4_m4m4(cd->objectspace, par->obmat, ob->imat);
+ mult_m4_m4m4(cd->objectspace, ob->imat, par->obmat);
invert_m4_m4(cd->curvespace, cd->objectspace);
copy_m3_m4(cd->objectspace3, cd->objectspace);
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index 0883ec121d6..57fc7473860 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -1679,7 +1679,7 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */
temp2[3][1]= ml->y;
temp2[3][2]= ml->z;
- mul_m4_m4m4(temp1, temp3, temp2);
+ mult_m4_m4m4(temp1, temp2, temp3);
/* make a copy because of duplicates */
mainb[a]= new_pgn_element(sizeof(MetaElem));
@@ -1691,9 +1691,9 @@ float init_meta(Scene *scene, Object *ob) /* return totsize */
/* mat is the matrix to transform from mball into the basis-mball */
invert_m4_m4(obinv, obmat);
- mul_m4_m4m4(temp2, bob->obmat, obinv);
+ mult_m4_m4m4(temp2, obinv, bob->obmat);
/* MetaBall transformation */
- mul_m4_m4m4(mat, temp1, temp2);
+ mult_m4_m4m4(mat, temp2, temp1);
invert_m4_m4(imat,mat);
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 29494f02d10..28c1aacdec5 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -1363,7 +1363,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob)
* this is closer to making a copy of the object - in-place. */
if(gob) {
ob->rotmode= target->rotmode;
- mul_m4_m4m4(ob->obmat, target->obmat, gob->obmat);
+ mult_m4_m4m4(ob->obmat, gob->obmat, target->obmat);
if(gob->dup_group) { /* should always be true */
float tvec[3];
copy_v3_v3(tvec, gob->dup_group->dupli_ofs);
@@ -1589,9 +1589,9 @@ void object_apply_mat4(Object *ob, float mat[][4], const short use_compat, const
if(use_parent && ob->parent) {
float rmat[4][4], diff_mat[4][4], imat[4][4];
- mul_m4_m4m4(diff_mat, ob->parentinv, ob->parent->obmat);
+ mult_m4_m4m4(diff_mat, ob->parent->obmat, ob->parentinv);
invert_m4_m4(imat, diff_mat);
- mul_m4_m4m4(rmat, mat, imat); /* get the parent relative matrix */
+ mult_m4_m4m4(rmat, imat, mat); /* get the parent relative matrix */
object_apply_mat4(ob, rmat, use_compat, FALSE);
/* same as below, use rmat rather than mat */
@@ -1715,7 +1715,7 @@ static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4])
if(cu->flag & CU_PATH_RADIUS) {
float tmat[4][4], rmat[4][4];
scale_m4_fl(tmat, radius);
- mul_m4_m4m4(rmat, mat, tmat);
+ mult_m4_m4m4(rmat, tmat, mat);
copy_m4_m4(mat, rmat);
}
@@ -2520,7 +2520,7 @@ void object_handle_update(Scene *scene, Object *ob)
if(ob->proxy_from->proxy_group) {/* transform proxy into group space */
Object *obg= ob->proxy_from->proxy_group;
invert_m4_m4(obg->imat, obg->obmat);
- mul_m4_m4m4(ob->obmat, ob->proxy_from->obmat, obg->imat);
+ mult_m4_m4m4(ob->obmat, obg->imat, ob->proxy_from->obmat);
if(obg->dup_group) { /* should always be true */
add_v3_v3(ob->obmat[3], obg->dup_group->dupli_ofs);
}
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index 000df5e721d..a3e13b48fe4 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -709,8 +709,8 @@ void psys_render_set(Object *ob, ParticleSystem *psys, float viewmat[][4], float
psys->childcachebufs.first = psys->childcachebufs.last = NULL;
copy_m4_m4(data->winmat, winmat);
- mul_m4_m4m4(data->viewmat, ob->obmat, viewmat);
- mul_m4_m4m4(data->mat, data->viewmat, winmat);
+ mult_m4_m4m4(data->viewmat, viewmat, ob->obmat);
+ mult_m4_m4m4(data->mat, winmat, data->viewmat);
data->winx= winx;
data->winy= winy;
@@ -3374,7 +3374,7 @@ void psys_mat_hair_to_global(Object *ob, DerivedMesh *dm, short from, ParticleDa
psys_mat_hair_to_object(ob, dm, from, pa, facemat);
- mul_m4_m4m4(hairmat, facemat, ob->obmat);
+ mult_m4_m4m4(hairmat, ob->obmat, facemat);
}
/************************************************/
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index e2b0e823905..828ecb2d535 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -1484,7 +1484,7 @@ static int retrieve_libmv_reconstruct_tracks(MovieReconstructContext *context, M
}
if(origin_set)
- mul_m4_m4m4(mat, mat, imat);
+ mult_m4_m4m4(mat, imat, mat);
copy_m4_m4(reconstructed[reconstruction->camnr].mat, mat);
reconstructed[reconstruction->camnr].framenr= a;
@@ -1914,7 +1914,7 @@ void BKE_tracking_projection_matrix(MovieTracking *tracking, int framenr, int wi
float imat[4][4];
invert_m4_m4(imat, camera->mat);
- mul_m4_m4m4(mat, imat, winmat);
+ mult_m4_m4m4(mat, winmat, imat);
} else copy_m4_m4(mat, winmat);
}