[Bf-blender-cvs] [bb30ce0f0bf] master: Fix T53474, bevel glitchy with big objects.

Howard Trickey noreply at git.blender.org
Mon Dec 18 18:25:46 CET 2017


Commit: bb30ce0f0bf13e519d5a34707965fde3f57eb185
Author: Howard Trickey
Date:   Mon Dec 18 12:24:42 2017 -0500
Branches: master
https://developer.blender.org/rBbb30ce0f0bf13e519d5a34707965fde3f57eb185

Fix T53474, bevel glitchy with big objects.

A comparison should have not just have been against an epsilon,
but relative to the edge length involved.
Thanks to mano-wii for patch on which this is based.

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

M	release/datafiles/locale
M	release/scripts/addons
M	release/scripts/addons_contrib
M	source/blender/bmesh/tools/bmesh_bevel.c
M	source/tools

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

diff --git a/release/datafiles/locale b/release/datafiles/locale
index b3d9c97f487..47700dfc983 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit b3d9c97f487bff8b2423c903c14204ba5ca21a83
+Subproject commit 47700dfc9835ef7154bbd34b8725c8abf2f290df
diff --git a/release/scripts/addons b/release/scripts/addons
index 85a2b50e0e3..6cdbffbc229 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 85a2b50e0e3d505f702a172efc0befa46e87d853
+Subproject commit 6cdbffbc229bf263fa4b9b82a6e33b591c32934c
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index c3991195ad6..e88b7dfc3bd 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit c3991195ad6eac741db27dc9e8905efb224f219d
+Subproject commit e88b7dfc3bd68888be2d05437cf50e93e41ef47b
diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c
index 2c6213dacce..d00d0d508c7 100644
--- a/source/blender/bmesh/tools/bmesh_bevel.c
+++ b/source/blender/bmesh/tools/bmesh_bevel.c
@@ -718,14 +718,18 @@ static void slide_dist(EdgeHalf *e, BMVert *v, float d, float slideco[3])
 /* Is co not on the edge e? if not, return the closer end of e in ret_closer_v */
 static bool is_outside_edge(EdgeHalf *e, const float co[3], BMVert **ret_closer_v)
 {
-	float d_squared;
-
-	d_squared = dist_squared_to_line_segment_v3(co, e->e->v1->co, e->e->v2->co);
-	if (d_squared > BEVEL_EPSILON_BIG * BEVEL_EPSILON_BIG) {
-		if (len_squared_v3v3(co, e->e->v1->co) > len_squared_v3v3(co, e->e->v2->co))
-			*ret_closer_v = e->e->v2;
-		else
-			*ret_closer_v = e->e->v1;
+	float h[3], u[3], lambda, lenu, *l1 = e->e->v1->co;
+
+	sub_v3_v3v3(u, e->e->v2->co, l1);
+	sub_v3_v3v3(h, co, l1);
+	lenu = normalize_v3(u);
+	lambda = dot_v3v3(u, h);
+	if (lambda <= -BEVEL_EPSILON_BIG * lenu) {
+		*ret_closer_v = e->e->v1;
+		return true;
+	}
+	else if (lambda >= (1.0f + BEVEL_EPSILON_BIG) * lenu) {
+		*ret_closer_v = e->e->v2;
 		return true;
 	}
 	else {
diff --git a/source/tools b/source/tools
index e10a1b031b2..ccf20e08702 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit e10a1b031b243482371c0673ee17aa3c0f53637a
+Subproject commit ccf20e08702ee6424edbda01544bb9f8bc386de4



More information about the Bf-blender-cvs mailing list