[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56990] trunk/blender/source/blender/ editors/space_view3d/view3d_project.c: fix own regression with ortho-camera adding points reported as [#35462]

Campbell Barton ideasman42 at gmail.com
Fri May 24 02:01:21 CEST 2013


Revision: 56990
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56990
Author:   campbellbarton
Date:     2013-05-24 00:01:20 +0000 (Fri, 24 May 2013)
Log Message:
-----------
fix own regression with ortho-camera adding points reported as [#35462]

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_project.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_project.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_project.c	2013-05-23 21:37:18 UTC (rev 56989)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_project.c	2013-05-24 00:01:20 UTC (rev 56990)
@@ -40,6 +40,8 @@
 
 #include "BLI_math_vector.h"
 
+#include "BKE_screen.h"
+
 #include "ED_view3d.h"  /* own include */
 
 #define BL_NEAR_CLIP 0.001
@@ -413,8 +415,14 @@
 		}
 	}
 	else {
-		const float dx = (2.0f * mval[0] / (float)ar->winx) - 1.0f;
-		const float dy = (2.0f * mval[1] / (float)ar->winy) - 1.0f;
+		float dx = (2.0f * mval[0] / (float)ar->winx) - 1.0f;
+		float dy = (2.0f * mval[1] / (float)ar->winy) - 1.0f;
+		if (rv3d->persp == RV3D_CAMOB) {
+			/* ortho camera needs offset applied */
+			const float zoomfac = BKE_screen_view3d_zoom_to_fac((float)rv3d->camzoom) * 4.0f;
+			dx += rv3d->camdx * zoomfac;
+			dy += rv3d->camdy * zoomfac;
+		}
 		line_sta[0] = (rv3d->persinv[0][0] * dx) + (rv3d->persinv[1][0] * dy) + rv3d->viewinv[3][0];
 		line_sta[1] = (rv3d->persinv[0][1] * dx) + (rv3d->persinv[1][1] * dy) + rv3d->viewinv[3][1];
 		line_sta[2] = (rv3d->persinv[0][2] * dx) + (rv3d->persinv[1][2] * dy) + rv3d->viewinv[3][2];




More information about the Bf-blender-cvs mailing list