From 1ae0de2f3af194153e73103ea3067283269d0350 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 16 Oct 2013 03:21:55 +0000 Subject: fix [#37013] Mesh > bisect can't fill the cut if it lines up with two or more adjacent vertices --- source/blender/bmesh/tools/bmesh_bisect_plane.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/bmesh/tools/bmesh_bisect_plane.c b/source/blender/bmesh/tools/bmesh_bisect_plane.c index 9cfe17d6413..c3c2924ea8e 100644 --- a/source/blender/bmesh/tools/bmesh_bisect_plane.c +++ b/source/blender/bmesh/tools/bmesh_bisect_plane.c @@ -372,7 +372,7 @@ void BM_mesh_bisect_plane(BMesh *bm, float plane[4], BM_VERT_DIR(v_new) = 0; BM_VERT_DIST(v_new) = 0.0f; } - else { + else if (side[0] == 0 || side[1] == 0) { /* check if either edge verts are aligned, * if so - tag and push all faces that use it into the stack */ unsigned int j; @@ -394,6 +394,13 @@ void BM_mesh_bisect_plane(BMesh *bm, float plane[4], } } } + + /* if both verts are on the center - tag it */ + if (oflag_center) { + if (side[0] == 0 && side[1] == 0) { + BMO_elem_flag_enable(bm, e, oflag_center); + } + } } } -- cgit v1.2.3