diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-01-12 14:43:40 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-01-12 14:44:26 +0300 |
commit | e5766752d04794c2693dedad75baeb8c7d68f4cf (patch) | |
tree | 7f5354d1272612a32c28bfda4c03259970c402b7 /source/blender/bmesh | |
parent | b2ccd8546c7249a5ce279210d45ddbb5e90cd10d (diff) |
Revert "BLI: Refactor vector types & functions to use templates"
Reverted because the commit removes a lot of commits.
This reverts commit a2c1c368af48644fa8995ecbe7138cc0d7900c30.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_opdefines.c | 1 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_polygon.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c index 7865c79323d..85ea27b0f4e 100644 --- a/source/blender/bmesh/intern/bmesh_opdefines.c +++ b/source/blender/bmesh/intern/bmesh_opdefines.c @@ -1186,6 +1186,7 @@ static BMO_FlagSet bmo_enum_triangulate_quad_method[] = { {MOD_TRIANGULATE_QUAD_FIXED, "FIXED"}, {MOD_TRIANGULATE_QUAD_ALTERNATE, "ALTERNATE"}, {MOD_TRIANGULATE_QUAD_SHORTEDGE, "SHORT_EDGE"}, + {MOD_TRIANGULATE_QUAD_LONGEDGE, "LONG_EDGE"}, {0, NULL}, }; diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c index e9eaf865e3c..e7280303c26 100644 --- a/source/blender/bmesh/intern/bmesh_polygon.c +++ b/source/blender/bmesh/intern/bmesh_polygon.c @@ -1007,6 +1007,7 @@ void BM_face_triangulate(BMesh *bm, break; } case MOD_TRIANGULATE_QUAD_SHORTEDGE: + case MOD_TRIANGULATE_QUAD_LONGEDGE: case MOD_TRIANGULATE_QUAD_BEAUTY: default: { BMLoop *l_v3, *l_v4; @@ -1023,6 +1024,12 @@ void BM_face_triangulate(BMesh *bm, d2 = len_squared_v3v3(l_v1->v->co, l_v3->v->co); split_24 = ((d2 - d1) > 0.0f); } + else if (quad_method == MOD_TRIANGULATE_QUAD_LONGEDGE) { + float d1, d2; + d1 = len_squared_v3v3(l_v4->v->co, l_v2->v->co); + d2 = len_squared_v3v3(l_v1->v->co, l_v3->v->co); + split_24 = ((d2 - d1) < 0.0f); + } else { /* first check if the quad is concave on either diagonal */ const int flip_flag = is_quad_flip_v3( |