fix [#30399] bmesh: Extrusions adjacent to mirror plane leave stray edges.
authorCampbell Barton <ideasman42@gmail.com>
Thu, 1 Mar 2012 16:27:44 +0000 (16:27 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 1 Mar 2012 16:27:44 +0000 (16:27 +0000)
thanks to Antony Riakiotakis for finding the cause.

source/blender/bmesh/operators/bmo_extrude.c

index 4cc965dc3726e2ed8ea186b9de0b4c567094d9ab..8a6c17dabda2bc8ed05492bf22f0f9c176dc5f54 100644 (file)
@@ -292,6 +292,14 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
        e = BMO_iter_new(&siter, bm, &dupeop, "boundarymap", 0);
        for ( ; e; e = BMO_iter_step(&siter)) {
                if (BMO_slot_map_contains(bm, op, "exclude", e)) {
+                       /* this should always be wire,
+                        * assert if not since we dont want to kill off any faces (next) */
+                       BLI_assert(BM_edge_is_wire(bm, e) == TRUE);
+
+                       /* The original edge was excluded,
+                        * this would result in a standalone wire edge - see [#30399] */
+                       BM_edge_kill(bm, e);
+
                        continue;
                }