Fix T61988: Bevel mitering on small objects.

When edges had small length (less than about .005) the angle
classification didn't work. Needed some normalization of vectors.
This commit is contained in:
Howard Trickey 2019-02-27 07:51:57 -05:00
parent afc5f82d8d
commit 048088e1d2
Notes: blender-bot 2023-02-14 11:21:43 +01:00
Referenced by commit 4243c29463, Revert "Fix T61988: Bevel mitering on small objects."
Referenced by issue #61988, Bevel mitering doens't work on small objects
4 changed files with 6 additions and 3 deletions

@ -1 +1 @@
Subproject commit f81ed052157aff3979763cf25840032d11d261b6
Subproject commit 29c2218102135522d6e2cd4bba7ab47d7241ab8a

@ -1 +1 @@
Subproject commit 09b05312b94f76a3096d00f464ee8e2ed7708585
Subproject commit c94604993b3e0bfbc733861e890aff18513e02b4

@ -1 +1 @@
Subproject commit 57596569d9bc50230a0430e7ed159c963c00814c
Subproject commit 3a80a18ea081ff93f4b3672120b446b7adc93e81

View File

@ -756,8 +756,11 @@ static int edges_angle_kind(EdgeHalf *e1, EdgeHalf *e2, BMVert *v)
v2 = BM_edge_other_vert(e2->e, v);
sub_v3_v3v3(dir1, v->co, v1->co);
sub_v3_v3v3(dir2, v->co, v2->co);
normalize_v3(dir1);
normalize_v3(dir2);
/* angles are in [0,pi]. need to compare cross product with normal to see if they are reflex */
cross_v3_v3v3(cross, dir1, dir2);
normalize_v3(cross);
if (e1->fnext)
no = e1->fnext->no;
else if (e2->fprev)