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:
authorCampbell Barton <ideasman42@gmail.com>2019-03-13 11:11:43 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-13 11:12:26 +0300
commitef045139250647275b16a8ab958a28b61187ad49 (patch)
treecac2fd277e843d0f1fbe52222f299b00fd77ccbd /source/blender/bmesh
parente6371019e514abbeec8ef6380a625707fdd4edc9 (diff)
BMesh: utility function to swap edge verts
Needed so we can control the winding of extruded faces.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r--source/blender/bmesh/intern/bmesh_mods.c11
-rw-r--r--source/blender/bmesh/intern/bmesh_mods.h2
2 files changed, 13 insertions, 0 deletions
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(