[Bf-blender-cvs] [ef045139250] master: BMesh: utility function to swap edge verts

Campbell Barton noreply at git.blender.org
Wed Mar 13 09:22:39 CET 2019


Commit: ef045139250647275b16a8ab958a28b61187ad49
Author: Campbell Barton
Date:   Wed Mar 13 19:11:43 2019 +1100
Branches: master
https://developer.blender.org/rBef045139250647275b16a8ab958a28b61187ad49

BMesh: utility function to swap edge verts

Needed so we can control the winding of extruded faces.

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

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

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

diff --git a/source/blender/bmesh/intern/bmesh_mods.c b/source/blender/bmesh/intern/bmesh_mods.c
index bc0a09636f7..e1aa5fcfee1 100644
--- a/source/blender/bmesh/intern/bmesh_mods.c
+++ b/source/blender/bmesh/intern/bmesh_mods.c
@@ -716,6 +716,17 @@ BMVert  *BM_edge_split_n(BMesh *bm, BMEdge *e, int numcuts, BMVert **r_varr)
 	return v_new;
 }
 
+/**
+ * Swap v1 & v2
+ *
+ * \note Typically we shouldn't care about this, however it's used when extruding wire edges.
+ */
+void BM_edge_verts_swap(BMEdge *e)
+{
+	SWAP(BMVert *, e->v1, e->v2);
+	SWAP(BMDiskLink, e->v1_disk_link, e->v2_disk_link);
+}
+
 #if 0
 /**
  * Checks if a face is valid in the data structure
diff --git a/source/blender/bmesh/intern/bmesh_mods.h b/source/blender/bmesh/intern/bmesh_mods.h
index 87893727192..ce0234ed61f 100644
--- a/source/blender/bmesh/intern/bmesh_mods.h
+++ b/source/blender/bmesh/intern/bmesh_mods.h
@@ -57,6 +57,8 @@ BMVert *BM_edge_split(BMesh *bm, BMEdge *e, BMVert *v, BMEdge **r_e, float perce
 
 BMVert *BM_edge_split_n(BMesh *bm, BMEdge *e, int numcuts, BMVert **r_varr);
 
+void BM_edge_verts_swap(BMEdge *e);
+
 bool    BM_face_validate(BMFace *face, FILE *err);
 
 void    BM_edge_calc_rotate(



More information about the Bf-blender-cvs mailing list