[Bf-blender-cvs] [8b1b320] master: BMesh: utility function to split off wire edges

Campbell Barton noreply at git.blender.org
Wed Dec 16 19:26:58 CET 2015


Commit: 8b1b320c9fa6e27fd33746ada6da183ad2b88c9d
Author: Campbell Barton
Date:   Thu Dec 17 05:02:14 2015 +1100
Branches: master
https://developer.blender.org/rB8b1b320c9fa6e27fd33746ada6da183ad2b88c9d

BMesh: utility function to split off wire edges

===================================================================

M	source/blender/bmesh/intern/bmesh_core.c
M	source/blender/bmesh/intern/bmesh_core.h

===================================================================

diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c
index 7130d45..f459cc7 100644
--- a/source/blender/bmesh/intern/bmesh_core.c
+++ b/source/blender/bmesh/intern/bmesh_core.c
@@ -2499,6 +2499,30 @@ void BM_vert_separate_hflag(
 	}
 }
 
+void BM_vert_separate_wire_hflag(
+        BMesh *UNUSED(bm), BMVert *v_dst, BMVert *v_src,
+        const char hflag)
+{
+	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);
+			}
+		}
+	} while ((e_iter = BM_DISK_EDGE_NEXT(e_iter, v_src)) != e_first);
+
+	if (edges_hflag) {
+		do {
+			e_iter = edges_hflag->link;
+			bmesh_disk_vert_replace(e_iter, v_dst, v_src);
+		} while ((edges_hflag = edges_hflag->next));
+	}
+}
+
 /** \} */
 
 
diff --git a/source/blender/bmesh/intern/bmesh_core.h b/source/blender/bmesh/intern/bmesh_core.h
index 08f916f..808967a 100644
--- a/source/blender/bmesh/intern/bmesh_core.h
+++ b/source/blender/bmesh/intern/bmesh_core.h
@@ -84,6 +84,9 @@ void    BM_vert_separate(
 void BM_vert_separate_hflag(
         BMesh *bm, BMVert *v, const char hflag, const bool copy_select,
         BMVert ***r_vout, int *r_vout_len);
+void BM_vert_separate_wire_hflag(
+        BMesh *bm, BMVert *v_dst, BMVert *v_src,
+        const char hflag);
 
 /* EULER API - For modifying structure */
 BMFace *bmesh_sfme(




More information about the Bf-blender-cvs mailing list