Skip to content
Snippets Groups Projects
Commit 51ee36db authored by Bastien Montagne's avatar Bastien Montagne
Browse files

Fix T51627: .mdd & .pc2 exporters never releasing temp mesh data.

Based on patch by Kai Kostack (@kaikostack), thanks!
parent 0ed2792d
Branches
Tags
No related merge requests found
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
bl_info = { bl_info = {
"name": "Export Pointcache Format(.pc2)", "name": "Export Pointcache Format(.pc2)",
"author": "Florian Meyer (tstscr)", "author": "Florian Meyer (tstscr)",
"version": (1, 1), "version": (1, 1, 1),
"blender": (2, 71, 0), "blender": (2, 71, 0),
"location": "File > Export > Pointcache (.pc2)", "location": "File > Export > Pointcache (.pc2)",
"description": "Export mesh Pointcache data (.pc2)", "description": "Export mesh Pointcache data (.pc2)",
...@@ -79,6 +79,7 @@ def do_export(context, props, filepath): ...@@ -79,6 +79,7 @@ def do_export(context, props, filepath):
me = ob.to_mesh(sc, apply_modifiers, 'PREVIEW') me = ob.to_mesh(sc, apply_modifiers, 'PREVIEW')
if len(me.vertices) != vertCount: if len(me.vertices) != vertCount:
bpy.data.meshes.remove(me, do_unlink=True)
file.close() file.close()
try: try:
remove(filepath) remove(filepath)
...@@ -100,6 +101,9 @@ def do_export(context, props, filepath): ...@@ -100,6 +101,9 @@ def do_export(context, props, filepath):
float(v.co[2])) float(v.co[2]))
file.write(thisVertex) file.write(thisVertex)
bpy.data.meshes.remove(me, do_unlink=True)
file.flush() file.flush()
file.close() file.close()
return True return True
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
bl_info = { bl_info = {
"name": "NewTek MDD format", "name": "NewTek MDD format",
"author": "Bill L.Nieuwendorp", "author": "Bill L.Nieuwendorp",
"version": (1, 0, 1),
"blender": (2, 57, 0), "blender": (2, 57, 0),
"location": "File > Import-Export", "location": "File > Import-Export",
"description": "Import-Export MDD as mesh shape keys", "description": "Import-Export MDD as mesh shape keys",
......
...@@ -98,6 +98,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_ ...@@ -98,6 +98,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_
me.transform(mat_flip * obj.matrix_world) me.transform(mat_flip * obj.matrix_world)
f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co])) f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co]))
bpy.data.meshes.remove(me, do_unlink=True)
for frame in range(frame_start, frame_end + 1): # in order to start at desired frame for frame in range(frame_start, frame_end + 1): # in order to start at desired frame
scene.frame_set(frame) scene.frame_set(frame)
me = obj.to_mesh(scene, True, 'PREVIEW') me = obj.to_mesh(scene, True, 'PREVIEW')
...@@ -107,6 +109,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_ ...@@ -107,6 +109,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_
# Write the vertex data # Write the vertex data
f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co])) f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co]))
bpy.data.meshes.remove(me, do_unlink=True)
f.close() f.close()
print('MDD Exported: %r frames:%d\n' % (filepath, numframes - 1)) print('MDD Exported: %r frames:%d\n' % (filepath, numframes - 1))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment