[Bf-extensions-cvs] [0cd92169] master: Fix T100807: Snap Utilities Line doesn't create faces for non-boundary edges

Germano Cavalcante noreply at git.blender.org
Mon Sep 5 16:39:52 CEST 2022


Commit: 0cd92169d40ae1c7e103ff269e850eaf1b901646
Author: Germano Cavalcante
Date:   Mon Sep 5 11:36:38 2022 -0300
Branches: master
https://developer.blender.org/rBA0cd92169d40ae1c7e103ff269e850eaf1b901646

Fix T100807: Snap Utilities Line doesn't create faces for non-boundary edges

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

M	mesh_snap_utilities_line/op_line.py

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

diff --git a/mesh_snap_utilities_line/op_line.py b/mesh_snap_utilities_line/op_line.py
index 0444f0e2..eacc551b 100644
--- a/mesh_snap_utilities_line/op_line.py
+++ b/mesh_snap_utilities_line/op_line.py
@@ -170,8 +170,28 @@ def make_line(self, bm_geom, location):
                     break
 
             ed_list.update(get_loose_linked_edges(v2))
+            ed_list = list(ed_list)
+
+            # WORKAROUND: `edgenet_fill` only works with loose edges or boundary
+            # edges, so remove the other edges and create temporary elements to
+            # replace them.
+            targetmap = {}
+            ed_new = []
+            for edge in ed_list:
+                if not edge.is_wire and not edge.is_boundary:
+                    v1, v2 = edge.verts
+                    tmp_vert = bm.verts.new(v2.co)
+                    e1 = bm.edges.new([v1, tmp_vert])
+                    e2 = bm.edges.new([tmp_vert, v2])
+                    ed_list.remove(edge)
+                    ed_new.append(e1)
+                    ed_new.append(e2)
+                    targetmap[tmp_vert] = v2
+
+            bmesh.ops.edgenet_fill(bm, edges=ed_list + ed_new)
+            if targetmap:
+                bmesh.ops.weld_verts(bm, targetmap=targetmap)
 
-            bmesh.ops.edgenet_fill(bm, edges=list(ed_list))
             update_edit_mesh = True
             # print('face created')



More information about the Bf-extensions-cvs mailing list