[Bf-blender-cvs] [9ac83d4] master: Fix bisect flagging w/ multiple cuts on an ngon
Campbell Barton
noreply at git.blender.org
Fri Jan 8 16:14:16 CET 2016
Commit: 9ac83d499e9188b382126054e9a66c74e8aa644a
Author: Campbell Barton
Date: Sat Jan 9 02:06:45 2016 +1100
Branches: master
https://developer.blender.org/rB9ac83d499e9188b382126054e9a66c74e8aa644a
Fix bisect flagging w/ multiple cuts on an ngon
Caused symmetrize to fail for concave ngons crossing the midpoint multiple times.
===================================================================
M source/blender/bmesh/tools/bmesh_bisect_plane.c
===================================================================
diff --git a/source/blender/bmesh/tools/bmesh_bisect_plane.c b/source/blender/bmesh/tools/bmesh_bisect_plane.c
index fbcf573..9fb6d39 100644
--- a/source/blender/bmesh/tools/bmesh_bisect_plane.c
+++ b/source/blender/bmesh/tools/bmesh_bisect_plane.c
@@ -264,8 +264,18 @@ static void bm_face_bisect_verts(BMesh *bm, BMFace *f, const float plane[4], con
/* in fact this simple test is good enough,
* test if the loops are adjacent */
if (found && !BM_loop_is_adjacent(l_a, l_b)) {
+ BMLoop *l_new;
BMFace *f_tmp;
- f_tmp = BM_face_split(bm, face_split_arr[j], l_a, l_b, NULL, NULL, true);
+ f_tmp = BM_face_split(bm, face_split_arr[j], l_a, l_b, &l_new, NULL, true);
+
+ if (l_new) {
+ if (oflag_center) {
+ BMO_elem_flag_enable(bm, l_new->e, oflag_center);
+ BMO_elem_flag_enable(bm, l_new->f, oflag_center);
+ BMO_elem_flag_enable(bm, face_split_arr[j], oflag_center);
+ }
+ }
+
if (f_tmp) {
if (f_tmp != face_split_arr[j]) {
STACK_PUSH(face_split_arr, f_tmp);
More information about the Bf-blender-cvs
mailing list