From c8a4f20fb8610b65b8bc5c1dd16c4d4c456632d4 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 28 Sep 2005 10:07:54 +0000 Subject: [PATCH] Removed ancient (2.1) feature for Constraints... a highly undocumented and unpredictable one! This is what it did; if two or more Constraints are of the same type, it accumulates the Target positions/rotations for the constraints, averages them, and then only applies the last Constraint in the row. It seems to be a trick to blend IK Constraints or so... in all other cases I cannot find a good use for it (nor did Bassam). For example; add three Empties, and make one Empty to have 2 location constraints to the other two. This just didn't work, unless you insert an "Empty" constraint inbetween. I will post in the blender.org animation forum feedback for it too. :) Its quite easy to make it an option, but I first like to grasp fully what the actual use of such an option is. --- source/blender/blenkernel/intern/object.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 7d84e7830ec..f8f9d6c6cae 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1574,9 +1574,11 @@ void solve_constraints (Object *ob, short obtype, void *obdata, float ctime) aquat[0]+=(quat[0])*enf; Mat4CpyMat4(lastmat, focusmat); + /* removed for now, probably becomes option? (ton) */ + /* If the next constraint is not the same type (or there isn't one), * then evaluate the accumulator & request a clear */ - if ((!con->next)||(con->next && con->next->type!=con->type)) { + if (TRUE) { //(!con->next)||(con->next && con->next->type!=con->type)) { clear= 1; Mat4CpyMat4(oldmat, ob->obmat);