From e76a63635bfb320ddf47a12d06c9250b36dd830f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 13 Mar 2005 19:48:17 +0000 Subject: [PATCH] Transform: Camera grab from camera mode works, but not the middlemouse-toggle, that has to become a new "Dolly" constraint coded by Martin P! :) --- source/blender/src/transform.c | 7 ++++++- source/blender/src/transform_generics.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/source/blender/src/transform.c b/source/blender/src/transform.c index df20f7458e2..0664a534dff 100755 --- a/source/blender/src/transform.c +++ b/source/blender/src/transform.c @@ -1305,7 +1305,12 @@ void Transform(int mode) break; case MIDDLEMOUSE: - initSelectConstraint(&Trans); + /* exception for switching to dolly, in camera view */ + if( (Trans.flag & T_OBJECT) && G.vd->camera==OBACT && G.vd->persp>1) { + // setLocalConstraint(&Trans, (CON_AXIS2), "along local Z"); + } + else + initSelectConstraint(&Trans); Trans.redraw = 1; break; case ESCKEY: diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c index d6c211d122d..66a25a88a44 100755 --- a/source/blender/src/transform_generics.c +++ b/source/blender/src/transform_generics.c @@ -611,6 +611,20 @@ void calculateCenter(TransInfo *t) printf("local\n"); break; } + + /* voor panning from cameraview */ + if(t->flag & T_OBJECT) { + if( G.vd->camera==OBACT && G.vd->persp>1) { + float axis[3]; + VECCOPY(axis, G.vd->persinv[2]); + Normalise(axis); + + /* 6.0 = 6 grid units */ + t->center[0]+= -6.0*axis[0]; + t->center[1]+= -6.0*axis[1]; + t->center[2]+= -6.0*axis[2]; + } + } initgrabz(t->center[0], t->center[1], t->center[2]); }