diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-03-13 11:19:41 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-03-13 11:21:10 +0300 |
commit | 432750f7cf4164f9e9c1b9f4db006bd25beb0012 (patch) | |
tree | aa347e95f162a495b4cab150993523113ea0c84a /source/blender/bmesh | |
parent | ef045139250647275b16a8ab958a28b61187ad49 (diff) |
Fix T62487: Flipped normals extruding edge loop
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r-- | source/blender/bmesh/operators/bmo_dupe.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c index c5a6a582b96..a5ad162b586 100644 --- a/source/blender/bmesh/operators/bmo_dupe.c +++ b/source/blender/bmesh/operators/bmo_dupe.c @@ -121,6 +121,12 @@ static BMEdge *bmo_edge_copy( /* Mark the edge for output */ BMO_edge_flag_enable(bm_dst, e_dst, DUPE_NEW); + /* Take winding from previous face (if we had one), + * otherwise extruding a duplicated edges gives bad normals, see: T62487. */ + if (BM_edge_is_boundary(e_src) && (e_src->l->v == e_src->v1)) { + BM_edge_verts_swap(e_dst); + } + return e_dst; } |