From 56fae37b2ab33228a09444bbe0685ab0a7af1eab Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Sat, 21 Jan 2012 09:41:21 +0000 Subject: Fix [#29940] Stretch To constraint breaks scaling in Transform constraint. Compute of dist between ob/bone and target was quite odd and causing that bug. --- source/blender/blenkernel/intern/constraint.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 77a4a6a429c..2bda3066af0 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -2775,13 +2775,14 @@ static void stretchto_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * /* store Z orientation before destroying obmat */ normalize_v3_v3(zz, cob->matrix[2]); - sub_v3_v3v3(vec, cob->matrix[3], ct->matrix[3]); - vec[0] /= size[0]; - vec[1] /= size[1]; - vec[2] /= size[2]; - - dist = normalize_v3(vec); - //dist = len_v3v3( ob->obmat[3], targetmat[3]); + dist = len_v3v3(cob->matrix[3], ct->matrix[3]); + /* XXX What was all that for??? Makes the constraint buggy with scaled objects, see #29940. */ +/* sub_v3_v3v3(vec, cob->matrix[3], ct->matrix[3]);*/ +/* vec[0] /= size[0];*/ +/* vec[1] /= size[1];*/ +/* vec[2] /= size[2];*/ + +/* dist = normalize_v3(vec);*/ /* data->orglength==0 occurs on first run, and after 'R' button is clicked */ if (data->orglength == 0) -- cgit v1.2.3