[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31870] trunk/blender/source/blender: - camera max zoom limit was inconsistent

Campbell Barton ideasman42 at gmail.com
Sat Sep 11 06:39:00 CEST 2010


Revision: 31870
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31870
Author:   campbellbarton
Date:     2010-09-11 06:39:00 +0200 (Sat, 11 Sep 2010)

Log Message:
-----------
- camera max zoom limit was inconsistent
- camera pan now follows the mouse

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/makesdna/DNA_view3d_types.h

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-09-11 04:23:45 UTC (rev 31869)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-09-11 04:39:00 UTC (rev 31870)
@@ -923,7 +923,7 @@
 	view3d_get_viewborder_size(scene, ar, size);
 	
 	rv3d->camzoom= (sqrt(4.0*im_width/size[0]) - M_SQRT2)*50.0;
-	rv3d->camzoom= CLAMPIS(rv3d->camzoom, -30, 300);
+	rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
 }
 
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-09-11 04:23:45 UTC (rev 31869)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-09-11 04:39:00 UTC (rev 31870)
@@ -854,10 +854,11 @@
 static void viewmove_apply(ViewOpsData *vod, int x, int y)
 {
 	if(vod->rv3d->persp==RV3D_CAMOB) {
-		float max= (float)MAX2(vod->ar->winx, vod->ar->winy);
+		float zoomfac= (M_SQRT2 + vod->rv3d->camzoom/50.0);
+		zoomfac= (zoomfac*zoomfac)*0.5;
 
-		vod->rv3d->camdx += (vod->oldx - x)/(max);
-		vod->rv3d->camdy += (vod->oldy - y)/(max);
+		vod->rv3d->camdx += (vod->oldx - x)/(vod->ar->winx * zoomfac);
+		vod->rv3d->camdy += (vod->oldy - y)/(vod->ar->winy * zoomfac);
 		CLAMP(vod->rv3d->camdx, -1.0f, 1.0f);
 		CLAMP(vod->rv3d->camdy, -1.0f, 1.0f);
 // XXX		preview3d_event= 0;
@@ -1165,7 +1166,7 @@
 		/* this min and max is also in viewmove() */
 		if(rv3d->persp==RV3D_CAMOB) {
 			rv3d->camzoom-= 10;
-			if(rv3d->camzoom<-30) rv3d->camzoom= -30;
+			if(rv3d->camzoom < RV3D_CAMZOOM_MIN) rv3d->camzoom= RV3D_CAMZOOM_MIN;
 		}
 		else if(rv3d->dist<10.0*v3d->far) {
 			view_zoom_mouseloc(CTX_wm_region(C), 1.2f, mx, my);
@@ -1174,7 +1175,7 @@
 	else {
 		if(rv3d->persp==RV3D_CAMOB) {
 			rv3d->camzoom+= 10;
-			if(rv3d->camzoom>600) rv3d->camzoom= 600;
+			if(rv3d->camzoom > RV3D_CAMZOOM_MAX) rv3d->camzoom= RV3D_CAMZOOM_MAX;
 		}
 		else if(rv3d->dist> 0.001*v3d->grid) {
 			view_zoom_mouseloc(CTX_wm_region(C), .83333f, mx, my);

Modified: trunk/blender/source/blender/makesdna/DNA_view3d_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_view3d_types.h	2010-09-11 04:23:45 UTC (rev 31869)
+++ trunk/blender/source/blender/makesdna/DNA_view3d_types.h	2010-09-11 04:39:00 UTC (rev 31870)
@@ -299,6 +299,9 @@
 /* may want to use 1 for select ?*/
 #define V3D_BGPIC_EXPANDED		2
 
+#define RV3D_CAMZOOM_MIN -30
+#define RV3D_CAMZOOM_MAX 600
+
 #endif
 
 





More information about the Bf-blender-cvs mailing list