[Bf-blender-cvs] [01f235e] master: Fix T46418: Constraints - influence other than 0 or 1 - bad results with non-homogeneous scaled matrices.

Bastien Montagne noreply at git.blender.org
Fri Oct 9 21:30:10 CEST 2015


Commit: 01f235e13804d0d41446238d2ddfefefedf497e4
Author: Bastien Montagne
Date:   Fri Oct 9 21:10:14 2015 +0200
Branches: master
https://developer.blender.org/rB01f235e13804d0d41446238d2ddfefefedf497e4

Fix T46418: Constraints - influence other than 0 or 1 - bad results with non-homogeneous scaled matrices.

Use new interp_m4_m4m4 instead of blend_m4_m4m4.

Note that maybe we could replace other usages of blend_m... by interp_m...,
but this should be investigated on a case-by-case basis.

===================================================================

M	source/blender/blenkernel/intern/constraint.c

===================================================================

diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index ed2e609..03406c6 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -4882,11 +4882,12 @@ void BKE_constraints_solve(ListBase *conlist, bConstraintOb *cob, float ctime)
 		 *    since some constraints may not convert the solution back to the input space before blending
 		 *    but all are guaranteed to end up in good "worldspace" result
 		 */
-		/* Note: all kind of stuff here before (caused trouble), much easier to just interpolate, or did I miss something? -jahka (r.32105) */
+		/* Note: all kind of stuff here before (caused trouble), much easier to just interpolate,
+		 * or did I miss something? -jahka (r.32105) */
 		if (enf < 1.0f) {
 			float solution[4][4];
 			copy_m4_m4(solution, cob->matrix);
-			blend_m4_m4m4(cob->matrix, oldmat, solution, enf);
+			interp_m4_m4m4(cob->matrix, oldmat, solution, enf);
 		}
 	}
 }




More information about the Bf-blender-cvs mailing list