Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------release/datafiles/locale0
m---------release/scripts/addons0
m---------release/scripts/addons_contrib0
-rw-r--r--source/blender/bmesh/tools/bmesh_bevel.c20
m---------source/tools0
5 files changed, 12 insertions, 8 deletions
diff --git a/release/datafiles/locale b/release/datafiles/locale
-Subproject b3d9c97f487bff8b2423c903c14204ba5ca21a8
+Subproject 47700dfc9835ef7154bbd34b8725c8abf2f290d
diff --git a/release/scripts/addons b/release/scripts/addons
-Subproject 85a2b50e0e3d505f702a172efc0befa46e87d85
+Subproject 6cdbffbc229bf263fa4b9b82a6e33b591c32934
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
-Subproject c3991195ad6eac741db27dc9e8905efb224f219
+Subproject e88b7dfc3bd68888be2d05437cf50e93e41ef47
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
-Subproject e10a1b031b243482371c0673ee17aa3c0f53637
+Subproject ccf20e08702ee6424edbda01544bb9f8bc386de