nice, however feels a bit "stepped" Daniel Salazar patazstudio.com
On Wed, Mar 7, 2012 at 12:34 PM, Sergey Sharybin <sergey....@gmail.com> wrote: > Revision: 44713 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44713 > Author: nazgul > Date: 2012-03-07 18:34:16 +0000 (Wed, 07 Mar 2012) > Log Message: > ----------- > Another mango request: Ctrl-MMB zoom in camera view > It makes it much easier to zoom in camera view using the tablet. > > Modified Paths: > -------------- > trunk/blender/source/blender/editors/space_view3d/view3d_edit.c > > Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c > =================================================================== > --- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c > 2012-03-07 18:27:12 UTC (rev 44712) > +++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c > 2012-03-07 18:34:16 UTC (rev 44713) > @@ -356,7 +356,7 @@ > float viewquat[4]; /* working copy of rv3d->viewquat */ > float trackvec[3]; > float mousevec[3]; /* dolly only */ > - float reverse, dist0; > + float reverse, dist0, camzoom0; > float grid, far; > short axis_snap; /* view rotate only */ > > @@ -416,6 +416,7 @@ > ED_view3d_camera_lock_init(vod->v3d, vod->rv3d); > > vod->dist0= rv3d->dist; > + vod->camzoom0= rv3d->camzoom; > copy_qt_qt(vod->viewquat, rv3d->viewquat); > copy_qt_qt(vod->oldquat, rv3d->viewquat); > vod->origx= vod->oldx= event->x; > @@ -1468,7 +1469,18 @@ > static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short > viewzoom, const short zoom_invert) > { > float zfac=1.0; > + short use_cam_zoom; > > + use_cam_zoom = (vod->rv3d->persp==RV3D_CAMOB) && > !(vod->rv3d->is_persp && ED_view3d_camera_lock_check(vod->v3d, vod->rv3d)); > + > + if (use_cam_zoom) { > + float delta; > + delta = (x - vod->origx + y - vod->origy) / 10.0f; > + vod->rv3d->camzoom = vod->camzoom0 + delta; > + > + if (vod->rv3d->camzoom > RV3D_CAMZOOM_MAX) > + vod->rv3d->camzoom = RV3D_CAMZOOM_MAX; > + } > if (viewzoom==USER_ZOOM_CONT) { > double time= PIL_check_seconds_timer(); > float time_step= (float)(time - vod->timer_lastdraw); > @@ -1516,12 +1528,20 @@ > SWAP(float, len1, len2); > } > > - zfac = vod->dist0 * (2.0f * ((len2/len1)-1.0f) + 1.0f) / > vod->rv3d->dist; > + if (use_cam_zoom) { > + zfac = vod->camzoom0 * (2.0f * ((len2/len1)-1.0f) + > 1.0f) / vod->rv3d->camzoom; > + zfac = 0; > + } > + else { > + zfac = vod->dist0 * (2.0f * ((len2/len1)-1.0f) + > 1.0f) / vod->rv3d->dist; > + } > } > > - if (zfac != 1.0f && zfac*vod->rv3d->dist > 0.001f * vod->grid && > - zfac * vod->rv3d->dist < 10.0f * vod->far) > - view_zoom_mouseloc(vod->ar, zfac, vod->oldx, vod->oldy); > + if (!use_cam_zoom) { > + if (zfac != 1.0f && zfac*vod->rv3d->dist > 0.001f * vod->grid > && > + zfac * vod->rv3d->dist < 10.0f * vod->far) > + view_zoom_mouseloc(vod->ar, zfac, vod->oldx, > vod->oldy); > + } > > /* these limits were in old code too */ > if (vod->rv3d->dist<0.001f * vod->grid) vod->rv3d->dist= 0.001f * > vod->grid; > > _______________________________________________ > Bf-blender-cvs mailing list > bf-blender-...@blender.org > http://lists.blender.org/mailman/listinfo/bf-blender-cvs _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers