Skip to content

Commit

Permalink
Increased update speed of dual mesh by default; removed potential mem…
Browse files Browse the repository at this point in the history
…ory leak form hash function
  • Loading branch information
ModEngineer committed Dec 25, 2022
1 parent 67211e1 commit d057f3a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
5 changes: 5 additions & 0 deletions ppl_meshexport_addon/newgui/dualmesh.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ def object_is_visible(obj, context):

source = obj.pewpew.dual_mesh.source
newbm = bmesh.new()

if source.mode == "EDIT" and obj.pewpew.dual_mesh.update_after_all_edits:
source.update_from_editmode()

if bpy.app.version > (2, 79, 0):
if obj.pewpew.dual_mesh.apply_modifiers:
mesh = source.evaluated_get(
Expand Down Expand Up @@ -408,6 +412,7 @@ def draw(self, context):
layout.prop(context.object.pewpew.dual_mesh,
"shade_smooth",
text="Shade Smooth")
layout.prop(context.object.pewpew.dual_mesh, "update_after_all_edits", text="Update After All Edits")
layout.operator("mesh.apply_pewpew_wireframe",
text="Apply PewPew Wireframe")
else:
Expand Down
7 changes: 5 additions & 2 deletions ppl_meshexport_addon/utils/properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ class DualMeshProperties(bpy.types.PropertyGroup):
("FULL", "Fully shade smooth", "", 3)],
default="WITHSHARPMITERS",
update=mark_dual_mesh_settings_change)
update_after_all_edits = bpy.props.BoolProperty(default=True, update=mark_dual_mesh_settings_change)


class PewPewObjectProperties(bpy.types.PropertyGroup):
Expand All @@ -106,7 +107,7 @@ def getMeshHash(self):
bm.faces.ensure_lookup_table()

if bm.loops.layers.color.active:
return str(
return_value = str(
hash((frozenset(tuple(vert.co) for vert in bm.verts),
frozenset((frozenset((
(tuple(edge.verts[0].co),
Expand All @@ -119,13 +120,15 @@ def getMeshHash(self):
if edge.verts[1].link_loops else None))),
edge.seam) for edge in bm.edges))))
else:
return str(
return_value = str(
hash((
frozenset(tuple(vert.co) for vert in bm.verts),
frozenset((frozenset((tuple(edge.verts[0].co),
tuple(edge.verts[1].co))), edge.seam)
for edge in bm.edges)
)))
bm.free()
return return_value


class PewPewMeshProperties(bpy.types.PropertyGroup):
Expand Down

0 comments on commit d057f3a

Please sign in to comment.