diff options
author | Howard Trickey <howard.trickey@gmail.com> | 2018-06-15 15:48:45 +0300 |
---|---|---|
committer | Howard Trickey <howard.trickey@gmail.com> | 2018-06-15 15:48:45 +0300 |
commit | b84fad2ba3920f3e337dc9084a30f1ea38f39fc2 (patch) | |
tree | b784b151bef27d2775d60f725e8aa3ae58579c69 /source/blender/bmesh/intern/bmesh_core.c | |
parent | 284e0ea756854e3d8388b2cd89666923975cbf10 (diff) |
Fix T55490, intersect two triangles fails.
Need to use the 'use_partial_connect' option in island connect,
so changed signatures of various functions to pass that into and
then down from BM_mesh_intersect (making true for intersect, false
for boolean).
Then fix bm_face_split_edgenet_partial_connect to work when
input edges are not necessarily wire, but at least not in the
face they are being connected in. That caused generalization
of core BM_vert_separate_hflag_wire (which is only used in
this one place in all Blender).
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_core.c')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_core.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c index c6836187eee..97f1bad08b7 100644 --- a/source/blender/bmesh/intern/bmesh_core.c +++ b/source/blender/bmesh/intern/bmesh_core.c @@ -2508,19 +2508,17 @@ void BM_vert_separate_hflag( } } -void BM_vert_separate_wire_hflag( +void BM_vert_separate_tested_edges( BMesh *UNUSED(bm), BMVert *v_dst, BMVert *v_src, - const char hflag) + bool (*testfn)(BMEdge *, void *arg), void *arg) { LinkNode *edges_hflag = NULL; BMEdge *e_iter, *e_first; e_iter = e_first = v_src->e; do { - if (BM_elem_flag_test(e_iter, hflag)) { - if (BM_edge_is_wire(e_iter)) { - BLI_linklist_prepend_alloca(&edges_hflag, e_iter); - } + if (testfn(e_iter, arg)) { + BLI_linklist_prepend_alloca(&edges_hflag, e_iter); } } while ((e_iter = BM_DISK_EDGE_NEXT(e_iter, v_src)) != e_first); |