Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Trickey <howard.trickey@gmail.com>2018-06-15 15:48:45 +0300
committerHoward Trickey <howard.trickey@gmail.com>2018-06-15 15:48:45 +0300
commitb84fad2ba3920f3e337dc9084a30f1ea38f39fc2 (patch)
treeb784b151bef27d2775d60f725e8aa3ae58579c69 /source/blender/bmesh/intern/bmesh_core.c
parent284e0ea756854e3d8388b2cd89666923975cbf10 (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.c10
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);