Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Trickey <howard.trickey@gmail.com>2016-02-01 18:15:59 +0300
committerHoward Trickey <howard.trickey@gmail.com>2016-02-01 18:15:59 +0300
commit9fe70215a0a9ec58e338571c029a80a44b075d73 (patch)
tree5c382993bf3e13c22a4c2e61ea4a4cbeff03860b
parentc3f24386bb4ec7c91949a1f024bb1d6464cfd5a2 (diff)
Fix T47255: inset polygon addon left old edges
Not sure why this used to work. The old code used the bmesh faceseq delete, which kills only the faces. This fix uses the utility bmesh.ops.delete() with an arg that will maybe kill edges and verts too. Also made code select all the new polys. This is not ideal (ideal would be to select only the inner ones), but making the ideal change requires more work.
-rw-r--r--mesh_inset/__init__.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/mesh_inset/__init__.py b/mesh_inset/__init__.py
index 316e4592..28fa2131 100644
--- a/mesh_inset/__init__.py
+++ b/mesh_inset/__init__.py
@@ -151,10 +151,10 @@ def do_inset(mesh, amount, height, region, as_percent):
for i in range(orig_numv, len(m.points.pos)):
bvertnew = bm.verts.new(m.points.pos[i])
bm.verts.index_update()
+ bm.verts.ensure_lookup_table()
new_faces = []
start_faces = len(bm.faces)
for i, newf in enumerate(blender_faces):
- bm.verts.ensure_lookup_table()
vs = remove_dups([bm.verts[j] for j in newf])
if len(vs) < 3:
continue
@@ -167,13 +167,13 @@ def do_inset(mesh, amount, height, region, as_percent):
# bfacenew.copy_from_face_interp(oldface)
else:
bfacenew = bm.faces.new(vs)
- # remove original faces
+ new_faces.append(bfacenew)
+ # deselect original faces
for face in selfaces:
face.select_set(False)
- bm.faces.remove(face)
- bm.faces.index_update()
- # mesh.update(calc_edges=True)
- # select all new faces
+ # remove original faces
+ bmesh.ops.delete(bm, geom=selfaces, context=5) # 5 = DEL_FACES
+ # select all new faces (should only select inner faces, but that needs more surgery on rest of code)
for face in new_faces:
face.select_set(True)