[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52888] trunk/blender/source/blender/ editors/space_view3d/view3d_edit.c: Bug fix, irc report:

Ton Roosendaal ton at blender.org
Tue Dec 11 15:45:38 CET 2012


Revision: 52888
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52888
Author:   ton
Date:     2012-12-11 14:45:38 +0000 (Tue, 11 Dec 2012)
Log Message:
-----------
Bug fix, irc report:

When camera is the pivot of 3d window, and you go to camera view, moving out of
view with MMB drag causes zooming to stop working. Zooms depend on view3d "dist"
value, which then became zero.

This fix just makes dist "1.0" then, arbitrary but keeps things at least work.
(Tried restoring to previous 'dist', but this fails in cases too)

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-12-11 14:39:41 UTC (rev 52887)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2012-12-11 14:45:38 UTC (rev 52888)
@@ -3977,16 +3977,25 @@
 	return (*depth == FLT_MAX) ? 0 : 1;
 }
 
-float ED_view3d_offset_distance(float mat[4][4], float ofs[3]) {
+float ED_view3d_offset_distance(float mat[4][4], float ofs[3])
+{
 	float pos[4] = {0.0f, 0.0f, 0.0f, 1.0f};
 	float dir[4] = {0.0f, 0.0f, 1.0f, 0.0f};
-
+	float dist;
+	
 	mul_m4_v4(mat, pos);
 	add_v3_v3(pos, ofs);
 	mul_m4_v4(mat, dir);
 	normalize_v3(dir);
 
-	return dot_v3v3(pos, dir);
+	dist = dot_v3v3(pos, dir);
+	
+	/* problem - ofs[3] can be on same location as camera itself. 
+	   Blender needs proper dist value for zoom */
+	if ( fabs(dist) <= FLT_EPSILON) {
+		return 1.0f;
+	}
+	return dist;
 }
 
 /**




More information about the Bf-blender-cvs mailing list