From 432750f7cf4164f9e9c1b9f4db006bd25beb0012 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 13 Mar 2019 19:19:41 +1100 Subject: Fix T62487: Flipped normals extruding edge loop --- source/blender/bmesh/operators/bmo_dupe.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/bmesh/operators/bmo_dupe.c') 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; } -- cgit v1.2.3