]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/export_mesh.py
Display overall progress when exporting scenes
[libs/gl.git] / blender / io_mspgl / export_mesh.py
index e429d7ae35ccd3c9daf4350e5decaf6e395084cb..e9724f27f3d94166469099df98b70cfed1c09b87 100644 (file)
@@ -191,7 +191,7 @@ class MeshExporter:
 
                return strips, loose
 
-       def export(self, context, out_file, objs=None):
+       def export(self, context, out_file, objs=None, progress=None):
                if self.compound:
                        if objs is None:
                                objs = context.selected_objects
@@ -216,7 +216,8 @@ class MeshExporter:
                from .mesh import Mesh
                from .util import Progress
 
-               progress = Progress(context)
+               if not progress:
+                       progress = Progress(context)
                progress.set_task("Preparing", 0.0, 0.0)
 
                mesh = None
@@ -229,7 +230,8 @@ class MeshExporter:
                        else:
                                mesh.splice(Mesh(bmesh))
 
-               progress.set_task("Smoothing", 0.05, 0.35)
+               if progress:
+                       progress.set_task("Smoothing", 0.05, 0.35)
                if self.smoothing=="NONE":
                        mesh.flatten_faces()
                mesh.split_smooth(progress)
@@ -280,7 +282,8 @@ class MeshExporter:
                                        texunits.insert(0, unit)
 
                        for i, u in texunits:
-                               progress.set_task("Splitting UVs", 0.35+0.3*i/len(texunits), 0.35+0.3*(i+1)/len(texunits))
+                               if progress:
+                                       progress.set_task("Splitting UVs", 0.35+0.3*i/len(texunits), 0.35+0.3*(i+1)/len(texunits))
                                mesh.split_uv(i, progress)
                                if self.tbn_vecs and u.name==self.tbn_uvtex:
                                        mesh.compute_uv()
@@ -291,10 +294,12 @@ class MeshExporter:
                strips = []
                loose = mesh.faces
                if self.use_strips:
-                       progress.set_task("Creating strips", 0.65, 0.95)
+                       if progress:
+                               progress.set_task("Creating strips", 0.65, 0.95)
                        strips, loose = self.stripify(mesh, progress)
 
-               progress.set_task("Writing file", 0.95, 1.0)
+               if progress:
+                       progress.set_task("Writing file", 0.95, 1.0)
 
                from .outfile import open_output
                out_file = open_output(out_file)
@@ -371,7 +376,8 @@ class MeshExporter:
                                out_file.write("indices", l.vertices[0].index, l.vertices[1].index)
                        out_file.end()
 
-               progress.set_task("Done", 1.0, 1.0)
+               if progress:
+                       progress.set_task("Done", 1.0, 1.0)
 
                for m in bmeshes:
                        bpy.data.meshes.remove(m)