[Bf-blender-cvs] [9869727] master: Fix T44249: Cursor depth offset

Campbell Barton noreply at git.blender.org
Mon Apr 6 07:00:43 CEST 2015


Commit: 986972701ea01667c97fe0831ac90a27ef15d881
Author: Campbell Barton
Date:   Mon Apr 6 14:57:43 2015 +1000
Branches: master
https://developer.blender.org/rB986972701ea01667c97fe0831ac90a27ef15d881

Fix T44249: Cursor depth offset

===================================================================

M	source/blender/editors/space_view3d/view3d_edit.c

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 706cb51..236fefc 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -4701,14 +4701,22 @@ bool ED_view3d_autodist(Scene *scene, ARegion *ar, View3D *v3d,
 	bglMats mats; /* ZBuffer depth vars */
 	float depth_close;
 	double cent[2],  p[3];
+	int margin_arr[] = {0, 2, 4};
+	int i;
+	bool depth_ok = false;
 
 	/* Get Z Depths, needed for perspective, nice for ortho */
 	bgl_get_mats(&mats);
 	ED_view3d_draw_depth(scene, ar, v3d, alphaoverride);
 
-	depth_close = view_autodist_depth_margin(ar, mval, 4);
+	/* Attempt with low margin's first */
+	i = 0;
+	do {
+		depth_close = view_autodist_depth_margin(ar, mval, margin_arr[i++] * U.pixelsize);
+		depth_ok = (depth_close != FLT_MAX);
+	} while ((depth_ok == false) && (i < ARRAY_SIZE(margin_arr)));
 
-	if (depth_close != FLT_MAX) {
+	if (depth_ok) {
 		cent[0] = (double)mval[0] + 0.5;
 		cent[1] = (double)mval[1] + 0.5;




More information about the Bf-blender-cvs mailing list