From c8412942920186daad1fb261a084f35b0e60de47 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Sat, 19 Jun 2010 09:39:42 +0900 Subject: [PATCH] update progress. --- swig/blender/bl24.py | 20 +++++++++++++++++++ swig/blender/bl25.py | 19 ++++++++++++++++++ swig/blender/pmd_export.py | 6 ++++-- swig/blender/pmd_import.py | 49 +++++++++++----------------------------------- 4 files changed, 54 insertions(+), 40 deletions(-) diff --git a/swig/blender/bl24.py b/swig/blender/bl24.py index f75052c..a843938 100644 --- a/swig/blender/bl24.py +++ b/swig/blender/bl24.py @@ -64,6 +64,23 @@ class ProgressBar(object): self.set(message, 1.0) +def progress_start(base): + global progressBar + progressBar=ProgressBar(base) + +def progress_finish(): + global progressBar + progressBar.finish() + +def progress_print(message, progress=0.05): + global progressBar + progressBar.advance(message, progress) + +def progress_set(message, progress): + global progressBar + progressBar.set(message, progress) + + ############################################################################### # for mqo mikoto bone. ############################################################################### @@ -678,6 +695,9 @@ def objectActivate(scene, o): o.select(True ) scene.objects.active=o +def objectGetActive(scene): + return scene.objects.active + def meshAddVertexGroup(meshObject, name): meshObject.getData(mesh=True).addVertGroup(name) diff --git a/swig/blender/bl25.py b/swig/blender/bl25.py index f9709be..536b1c0 100644 --- a/swig/blender/bl25.py +++ b/swig/blender/bl25.py @@ -44,6 +44,22 @@ class ProgressBar(object): message='finished in %.2f sec' % (time.time()-self.start) self.set(message, 1.0) +def progress_start(base): + global progressBar + progressBar=ProgressBar(base) + +def progress_finish(): + global progressBar + progressBar.finish() + +def progress_print(message, progress=0.05): + global progressBar + progressBar.advance(message, progress) + +def progress_set(message, progress): + global progressBar + progressBar.set(message, progress) + ############################################################################### class Writer(object): @@ -314,6 +330,9 @@ def objectActivate(scene, o): o.selected=True scene.objects.active=o +def objectGetActive(scene): + return scene.objects.active + def meshAddVertexGroup(meshObject, name): meshObject.add_vertex_group(name) diff --git a/swig/blender/pmd_export.py b/swig/blender/pmd_export.py index 641c00b..e564580 100644 --- a/swig/blender/pmd_export.py +++ b/swig/blender/pmd_export.py @@ -49,8 +49,6 @@ CONSTRAINT_SPRING_ROT='const_spring_rot' ############################################################################### import os import sys -import re -import math # C extension from meshio import pmd, englishmap @@ -1048,9 +1046,13 @@ def __execute(filename, scene): print("abort. no active object.") return + bl.progress_start('pmd_export') + active=bl.objectGetActive(scene) exporter=PmdExporter() exporter.setup(scene) exporter.write(filename) + bl.objectActivate(scene, active) + bl.progress_finish() if isBlender24(): diff --git a/swig/blender/pmd_import.py b/swig/blender/pmd_import.py index 51b28ba..c8b5560 100644 --- a/swig/blender/pmd_import.py +++ b/swig/blender/pmd_import.py @@ -55,7 +55,6 @@ CONSTRAINT_SPRING_ROT='const_spring_rot' ############################################################################### import os import sys -import re import math # C extension @@ -84,26 +83,6 @@ else: xrange=range ############################################################################### -# progress bar -############################################################################### -def progress_start(base): - global progressBar - progressBar=bl.ProgressBar(base) - -def progress_finish(): - global progressBar - progressBar.finish() - -def progress_print(message, progress=0.05): - global progressBar - progressBar.advance(message, progress) - -def progress_set(message, progress): - global progressBar - progressBar.set(message, progress) - - -############################################################################### def convert_coord(pos): """ Left handed y-up to Right handed z-up @@ -308,7 +287,7 @@ def __import16MaerialAndMesh(meshObject, l, ############################################################ # material ############################################################ - progress_print('create materials') + bl.progress_print('create materials') mesh_material_map={} textureMap={} imageMap={} @@ -342,7 +321,7 @@ def __import16MaerialAndMesh(meshObject, l, ############################################################ # vertex ############################################################ - progress_print('create vertices') + bl.progress_print('create vertices') # create vertices vertices=[] if isBlender24(): @@ -355,7 +334,7 @@ def __import16MaerialAndMesh(meshObject, l, ############################################################ # face ############################################################ - progress_print('create faces') + bl.progress_print('create faces') # create faces mesh_face_indices=[] mesh_face_materials=[] @@ -482,7 +461,7 @@ def __import16MaerialAndMesh(meshObject, l, ############################################################ # clean up not used vertices ############################################################ - progress_print('clean up vertices not used') + bl.progress_print('clean up vertices not used') remove_vertices=[] vertex_map={} for i, v in enumerate(l.each_vertex()): @@ -493,7 +472,7 @@ def __import16MaerialAndMesh(meshObject, l, bl.meshVertsDelete(mesh, remove_vertices) - progress_print('%s created' % mesh.name) + bl.progress_print('%s created' % mesh.name) return vertex_map @@ -713,14 +692,16 @@ def __execute(filename, scene): """ load pmd file to context. """ + bl.progress_start('pmd_import') + # load pmd - progress_set('load %s' % filename, 0.0) + bl.progress_set('load %s' % filename, 0.0) io=pmd.IO() if not io.read(filename): print("fail to load %s" % filename) return - progress_set('loaded %s' % filename, 0.1) + bl.progress_set('loaded %s' % filename, 0.1) # create root object model_name=io.getEnglishName() @@ -757,12 +738,8 @@ def __execute(filename, scene): if constraints: bl.objectMakeParent(root, constraints) - # select objects - bl.objectSelect(root) - for o in mesh_objects: - bl.objectSelect(o) - bl.objectSelect(armature_object) - + bl.objectActivate(scene, root) + bl.progress_finish() if isBlender24(): # for 2.4 @@ -778,11 +755,9 @@ if isBlender24(): if mode_edit: Blender.Window.EditMode(0) - progress_start('pmd_import') scene = bpy.data.scenes.active __execute(filename, scene) scene.update(0) - progress_finish() # restore edit mode if mode_edit: @@ -797,9 +772,7 @@ if isBlender24(): else: # for 2.5 def execute_25(*args): - progress_start('pmd_import') __execute(*args) - progress_finish() # import operator class IMPORT_OT_pmd(bpy.types.Operator): -- 2.11.0