[Bf-blender-cvs] [7b558a20a9f] master: Fix Extrude Manifold losing original UV

Germano Cavalcante noreply at git.blender.org
Mon Jul 13 14:02:59 CEST 2020


Commit: 7b558a20a9f779a405475c218e3392a1018f9218
Author: Germano Cavalcante
Date:   Sun Jul 12 20:53:22 2020 -0300
Branches: master
https://developer.blender.org/rB7b558a20a9f779a405475c218e3392a1018f9218

Fix Extrude Manifold losing original UV

===================================================================

M	source/blender/bmesh/operators/bmo_extrude.c

===================================================================

diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c
index 3c63f4a60d6..eee31969971 100644
--- a/source/blender/bmesh/operators/bmo_extrude.c
+++ b/source/blender/bmesh/operators/bmo_extrude.c
@@ -572,6 +572,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
     f = BM_face_create_verts(bm, f_verts, 4, NULL, BM_CREATE_NOP, true);
 #endif
 
+    bm_extrude_copy_face_loop_attributes(bm, f);
     if (join_face) {
       BMVert *v1 = e->v1;
       BMVert *v2 = e->v2;
@@ -583,11 +584,11 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
         BMO_elem_flag_enable(bm, v2, EXT_TAG);
         dissolve_verts[dissolve_verts_len++] = v2;
       }
+      /* Tag the edges that can collapse. */
+      BMO_elem_flag_enable(bm, f_edges[0], EXT_TAG);
+      BMO_elem_flag_enable(bm, f_edges[1], EXT_TAG);
       bmesh_kernel_join_face_kill_edge(bm, join_face, f, e);
     }
-    else {
-      bm_extrude_copy_face_loop_attributes(bm, f);
-    }
   }
 
   /* link isolated vert */
@@ -613,7 +614,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
       BMEdge *e_other = BM_DISK_EDGE_NEXT(e, v);
       if ((e_other == e) || (BM_DISK_EDGE_NEXT(e_other, v) == e)) {
         /* Lose edge or BMVert is edge pair. */
-        BM_edge_collapse(bm, e, v, true, false);
+        BM_edge_collapse(bm, BMO_elem_flag_test(bm, e, EXT_TAG) ? e : e_other, v, true, false);
       }
       else {
         BLI_assert(!BM_vert_is_edge_pair(v));



More information about the Bf-blender-cvs mailing list