[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51303] trunk/blender/source/blender/ editors: Make zoom direction consistent all over the editors

Sergey Sharybin sergey.vfx at gmail.com
Sat Oct 13 18:42:13 CEST 2012


Revision: 51303
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51303
Author:   nazgul
Date:     2012-10-13 16:42:12 +0000 (Sat, 13 Oct 2012)
Log Message:
-----------
Make zoom direction consistent all over the editors

Was discussed in De Balie with lots of artists and we agreed it makes more
sense to behave this way

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/view2d_ops.c
    trunk/blender/source/blender/editors/space_clip/clip_ops.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c

Modified: trunk/blender/source/blender/editors/interface/view2d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/interface/view2d_ops.c	2012-10-13 15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/interface/view2d_ops.c	2012-10-13 16:42:12 UTC (rev 51303)
@@ -827,6 +827,11 @@
 	dx = RNA_float_get(op->ptr, "deltax");
 	dy = RNA_float_get(op->ptr, "deltay");
 
+	if (U.uiflag & USER_ZOOM_INVERT) {
+		dx *= -1;
+		dy *= -1;
+	}
+	
 	/* continuous zoom shouldn't move that fast... */
 	if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
 		double time = PIL_check_seconds_timer();
@@ -849,12 +854,12 @@
 				float mval_faci = 1.0f - mval_fac;
 				float ofs = (mval_fac * dx) - (mval_faci * dx);
 				
-				v2d->cur.xmin -= ofs + dx;
-				v2d->cur.xmax -= ofs - dx;
+				v2d->cur.xmin += ofs + dx;
+				v2d->cur.xmax += ofs - dx;
 			}
 			else {
-				v2d->cur.xmin -= dx;
-				v2d->cur.xmax += dx;
+				v2d->cur.xmin += dx;
+				v2d->cur.xmax -= dx;
 			}
 		}
 	}
@@ -868,12 +873,12 @@
 				float mval_faci = 1.0f - mval_fac;
 				float ofs = (mval_fac * dy) - (mval_faci * dy);
 				
-				v2d->cur.ymin -= ofs + dy;
-				v2d->cur.ymax -= ofs - dy;
+				v2d->cur.ymin += ofs + dy;
+				v2d->cur.ymax += ofs - dy;
 			}
 			else {
-				v2d->cur.ymin -= dy;
-				v2d->cur.ymax += dy;
+				v2d->cur.ymin += dy;
+				v2d->cur.ymax -= dy;
 			}
 		}
 	}
@@ -941,7 +946,7 @@
 		/* As we have only 1D information (magnify value), feed both axes
 		 * with magnify information that is stored in x axis 
 		 */
-		fac = 0.01f * (event->prevx - event->x);
+		fac = 0.01f * (event->x - event->prevx);
 		dx = fac * BLI_rctf_size_x(&v2d->cur) / 10.0f;
 		dy = fac * BLI_rctf_size_y(&v2d->cur) / 10.0f;
 
@@ -1044,11 +1049,6 @@
 		}
 		
 		/* set transform amount, and add current deltas to stored total delta (for redo) */
-		if (U.uiflag & USER_ZOOM_INVERT) {
-			dx *= -1;
-			dy *= -1;
-		}
-
 		RNA_float_set(op->ptr, "deltax", dx);
 		RNA_float_set(op->ptr, "deltay", dy);
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_ops.c	2012-10-13 15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/space_clip/clip_ops.c	2012-10-13 16:42:12 UTC (rev 51303)
@@ -514,9 +514,14 @@
 static int view_zoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
 	if (event->type == MOUSEZOOM) {
-		float factor;
+		float delta, factor;
 
-		factor = 1.0f + (event->x - event->prevx + event->y - event->prevy) / 300.0f;
+		delta = event->x - event->prevx + event->y - event->prevy;
+
+		if (U.uiflag & USER_ZOOM_INVERT)
+			delta *= -1;
+
+		factor = 1.0f + delta / 300.0f;
 		RNA_float_set(op->ptr, "factor", factor);
 
 		sclip_zoom_set_factor_exec(C, event, factor);
@@ -533,11 +538,16 @@
 static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
 	ViewZoomData *vpd = op->customdata;
-	float factor;
+	float delta, factor;
 
 	switch (event->type) {
 		case MOUSEMOVE:
-			factor = 1.0f + (vpd->x - event->x + vpd->y - event->y) / 300.0f;
+			delta = event->x - vpd->x + event->y - vpd->y;
+
+			if (U.uiflag & USER_ZOOM_INVERT)
+				delta *= -1;
+
+			factor = 1.0f + delta / 300.0f;
 			RNA_float_set(op->ptr, "factor", factor);
 			sclip_zoom_set(C, vpd->zoom * factor, vpd->location);
 			ED_region_tag_redraw(CTX_wm_region(C));

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2012-10-13 15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2012-10-13 16:42:12 UTC (rev 51303)
@@ -430,11 +430,16 @@
 	if (event->type == MOUSEZOOM) {
 		SpaceImage *sima = CTX_wm_space_image(C);
 		ARegion *ar = CTX_wm_region(C);
-		float factor, location[2];
+		float delta, factor, location[2];
 
 		UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &location[0], &location[1]);
 
-		factor = 1.0f + (event->x - event->prevx + event->y - event->prevy) / 300.0f;
+		delta = event->x - event->prevx + event->y - event->prevy;
+
+		if (U.uiflag & USER_ZOOM_INVERT)
+			delta *= -1;
+
+		factor = 1.0f + delta / 300.0f;
 		RNA_float_set(op->ptr, "factor", factor);
 		sima_zoom_set(sima, ar, sima->zoom * factor, location);
 		ED_region_tag_redraw(CTX_wm_region(C));
@@ -452,11 +457,16 @@
 	SpaceImage *sima = CTX_wm_space_image(C);
 	ARegion *ar = CTX_wm_region(C);
 	ViewZoomData *vpd = op->customdata;
-	float factor;
+	float delta, factor;
 
 	switch (event->type) {
 		case MOUSEMOVE:
-			factor = 1.0f + (vpd->x - event->x + vpd->y - event->y) / 300.0f;
+			delta = event->x - vpd->x + event->y - vpd->y;
+
+			if (U.uiflag & USER_ZOOM_INVERT)
+				delta *= -1;
+
+			factor = 1.0f + delta / 300.0f;
 			RNA_float_set(op->ptr, "factor", factor);
 			sima_zoom_set(sima, ar, vpd->zoom * factor, vpd->location);
 			ED_region_tag_redraw(CTX_wm_region(C));

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2012-10-13 15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2012-10-13 16:42:12 UTC (rev 51303)
@@ -1636,7 +1636,7 @@
 	if (use_cam_zoom) {
 		float delta;
 		delta = (x - vod->origx + y - vod->origy) / 10.0f;
-		vod->rv3d->camzoom = vod->camzoom0 + (zoom_invert ? delta : -delta);
+		vod->rv3d->camzoom = vod->camzoom0 + (zoom_invert ? -delta : delta);
 
 		CLAMP(vod->rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
 	}
@@ -1691,11 +1691,11 @@
 		if (use_cam_zoom) {
 			/* zfac is ignored in this case, see below */
 #if 0
-			zfac = vod->camzoom0 * (2.0f * ((len2 / len1) - 1.0f) + 1.0f) / vod->rv3d->camzoom;
+			zfac = vod->camzoom0 * (2.0f * ((len1 / len2) - 1.0f) + 1.0f) / vod->rv3d->camzoom;
 #endif
 		}
 		else {
-			zfac = vod->dist0 * (2.0f * ((len2 / len1) - 1.0f) + 1.0f) / vod->rv3d->dist;
+			zfac = vod->dist0 * (2.0f * ((len1 / len2) - 1.0f) + 1.0f) / vod->rv3d->dist;
 		}
 	}
 
@@ -1888,12 +1888,12 @@
 
 			if (U.uiflag & USER_ZOOM_HORIZ) {
 				vod->origx = vod->oldx = event->x;
-				viewzoom_apply(vod, event->prevx, event->prevy, USER_ZOOM_DOLLY, FALSE);
+				viewzoom_apply(vod, event->prevx, event->prevy, USER_ZOOM_DOLLY, (U.uiflag & USER_ZOOM_INVERT) == 0);
 			}
 			else {
 				/* Set y move = x move as MOUSEZOOM uses only x axis to pass magnification value */
 				vod->origy = vod->oldy = vod->origy + event->x - event->prevx;
-				viewzoom_apply(vod, event->prevx, event->prevy, USER_ZOOM_DOLLY, FALSE);
+				viewzoom_apply(vod, event->prevx, event->prevy, USER_ZOOM_DOLLY, (U.uiflag & USER_ZOOM_INVERT) == 0);
 			}
 			ED_view3d_depth_tag_update(vod->rv3d);
 			
@@ -1971,7 +1971,7 @@
 		if (zoom_invert)
 			SWAP(float, len1, len2);
 
-		zfac =  1.0f + ((len2 - len1) * 0.01f * vod->rv3d->dist);
+		zfac =  1.0f + ((len1 - len2) * 0.01f * vod->rv3d->dist);
 	}
 
 	if (zfac != 1.0f)
@@ -2107,13 +2107,13 @@
 
 			if (U.uiflag & USER_ZOOM_HORIZ) {
 				vod->origx = vod->oldx = event->x;
-				viewdolly_apply(vod, event->prevx, event->prevy, FALSE);
+				viewdolly_apply(vod, event->prevx, event->prevy, (U.uiflag & USER_ZOOM_INVERT) == 0);
 			}
 			else {
 
 				/* Set y move = x move as MOUSEZOOM uses only x axis to pass magnification value */
 				vod->origy = vod->oldy = vod->origy + event->x - event->prevx;
-				viewdolly_apply(vod, event->prevx, event->prevy, FALSE);
+				viewdolly_apply(vod, event->prevx, event->prevy, (U.uiflag & USER_ZOOM_INVERT) == 0);
 			}
 			ED_view3d_depth_tag_update(vod->rv3d);
 




More information about the Bf-blender-cvs mailing list