- mousewheel zoom now zooms camera area when the camera is locked and in ortho view.

- remove secret apricot feature now dolly is its own operator.
This commit is contained in:
Campbell Barton 2011-05-19 17:19:05 +00:00
parent 0942e62bc4
commit 2f4813500c

@ -1165,24 +1165,9 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short viewzoom,
zfac * vod->rv3d->dist < 10.0f * vod->far) zfac * vod->rv3d->dist < 10.0f * vod->far)
view_zoom_mouseloc(vod->ar, zfac, vod->oldx, vod->oldy); view_zoom_mouseloc(vod->ar, zfac, vod->oldx, vod->oldy);
/* these limits were in old code too */
if ((U.uiflag & USER_ORBIT_ZBUF) && (viewzoom==USER_ZOOM_CONT) && (vod->rv3d->persp==RV3D_PERSP)) { if(vod->rv3d->dist<0.001f * vod->grid) vod->rv3d->dist= 0.001f * vod->grid;
float upvec[3], mat[3][3]; if(vod->rv3d->dist>10.0f * vod->far) vod->rv3d->dist=10.0f * vod->far;
/* Secret apricot feature, translate the view when in continues mode */
upvec[0] = upvec[1] = 0.0f;
upvec[2] = (vod->dist0 - vod->rv3d->dist) * vod->grid;
vod->rv3d->dist = vod->dist0;
copy_m3_m4(mat, vod->rv3d->viewinv);
mul_m3_v3(mat, upvec);
add_v3_v3(vod->rv3d->ofs, upvec);
} else {
/* these limits were in old code too */
if(vod->rv3d->dist<0.001f * vod->grid) vod->rv3d->dist= 0.001f * vod->grid;
if(vod->rv3d->dist>10.0f * vod->far) vod->rv3d->dist=10.0f * vod->far;
}
// XXX if(vod->rv3d->persp==RV3D_ORTHO || vod->rv3d->persp==RV3D_CAMOB) preview3d_event= 0;
if(vod->rv3d->viewlock & RV3D_BOXVIEW) if(vod->rv3d->viewlock & RV3D_BOXVIEW)
view3d_boxview_sync(vod->sa, vod->ar); view3d_boxview_sync(vod->sa, vod->ar);
@ -1244,6 +1229,7 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
RegionView3D *rv3d; RegionView3D *rv3d;
ScrArea *sa; ScrArea *sa;
ARegion *ar; ARegion *ar;
short use_cam_zoom;
int delta= RNA_int_get(op->ptr, "delta"); int delta= RNA_int_get(op->ptr, "delta");
int mx, my; int mx, my;
@ -1265,9 +1251,11 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
mx= RNA_property_is_set(op->ptr, "mx") ? RNA_int_get(op->ptr, "mx") : ar->winx / 2; mx= RNA_property_is_set(op->ptr, "mx") ? RNA_int_get(op->ptr, "mx") : ar->winx / 2;
my= RNA_property_is_set(op->ptr, "my") ? RNA_int_get(op->ptr, "my") : ar->winy / 2; my= RNA_property_is_set(op->ptr, "my") ? RNA_int_get(op->ptr, "my") : ar->winy / 2;
use_cam_zoom= (rv3d->persp==RV3D_CAMOB) && !((v3d->flag2 & V3D_LOCK_CAMERA) && rv3d->is_persp);
if(delta < 0) { if(delta < 0) {
/* this min and max is also in viewmove() */ /* this min and max is also in viewmove() */
if((rv3d->persp==RV3D_CAMOB) && !(v3d->flag2 & V3D_LOCK_CAMERA)) { if(use_cam_zoom) {
rv3d->camzoom-= 10; rv3d->camzoom-= 10;
if(rv3d->camzoom < RV3D_CAMZOOM_MIN) rv3d->camzoom= RV3D_CAMZOOM_MIN; if(rv3d->camzoom < RV3D_CAMZOOM_MIN) rv3d->camzoom= RV3D_CAMZOOM_MIN;
} }
@ -1276,7 +1264,7 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
} }
} }
else { else {
if((rv3d->persp==RV3D_CAMOB) && !(v3d->flag2 & V3D_LOCK_CAMERA)) { if(use_cam_zoom) {
rv3d->camzoom+= 10; rv3d->camzoom+= 10;
if(rv3d->camzoom > RV3D_CAMZOOM_MAX) rv3d->camzoom= RV3D_CAMZOOM_MAX; if(rv3d->camzoom > RV3D_CAMZOOM_MAX) rv3d->camzoom= RV3D_CAMZOOM_MAX;
} }