[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