diff options
author | Martin Poirier <theeth@yahoo.com> | 2008-05-21 14:07:38 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2008-05-21 14:07:38 +0400 |
commit | d432eccd145649be7abe82f117c6d609db61941d (patch) | |
tree | 40a5b4dbb0b41feaf07a703947cdb3c04a13f7d8 /source/blender/src/transform_conversions.c | |
parent | 68708346de286fe3420fac10e52daae6f83c9cf6 (diff) |
[#11892] track-to + "around selection" bug
Transform conversion was resetting constraints when used to calculate orbit center.
This is a tentative fix, it fixes this particular case but maybe not all.
Diffstat (limited to 'source/blender/src/transform_conversions.c')
-rw-r--r-- | source/blender/src/transform_conversions.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/src/transform_conversions.c b/source/blender/src/transform_conversions.c index 963a1027f28..f69218664ea 100644 --- a/source/blender/src/transform_conversions.c +++ b/source/blender/src/transform_conversions.c @@ -3140,6 +3140,7 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob) ListBase fakecons = {NULL, NULL}; float obmtx[3][3]; short constinv; + short skip_invert = 0; /* axismtx has the real orientation */ Mat3CpyMat4(td->axismtx, ob->obmat); @@ -3152,8 +3153,13 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob) * inverse correction to stop it from screwing up space conversion * matrix later */ - constinv= constraints_list_needinv(t, &ob->constraints); - if (ob->track || constinv==0) { + constinv = constraints_list_needinv(t, &ob->constraints); + + /* disable constraints inversion for dummy pass */ + if (t->mode == TFM_DUMMY) + skip_invert = 1; + + if (skip_invert == 0 && (ob->track || constinv==0)) { track= ob->track; ob->track= NULL; |