diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-03-13 11:11:43 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-03-13 11:12:26 +0300 |
commit | ef045139250647275b16a8ab958a28b61187ad49 (patch) | |
tree | cac2fd277e843d0f1fbe52222f299b00fd77ccbd /source | |
parent | e6371019e514abbeec8ef6380a625707fdd4edc9 (diff) |
BMesh: utility function to swap edge verts
Needed so we can control the winding of extruded faces.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mods.c | 11 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mods.h | 2 |
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( |