OSDN Git Service

update progress.
authorousttrue <ousttrue@gmail.com>
Sat, 19 Jun 2010 00:39:42 +0000 (09:39 +0900)
committerousttrue <ousttrue@gmail.com>
Sat, 19 Jun 2010 00:39:42 +0000 (09:39 +0900)
swig/blender/bl24.py
swig/blender/bl25.py
swig/blender/pmd_export.py
swig/blender/pmd_import.py

index f75052c..a843938 100644 (file)
@@ -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)
 
index f9709be..536b1c0 100644 (file)
@@ -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)
 
index 641c00b..e564580 100644 (file)
@@ -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():
index 51b28ba..c8b5560 100644 (file)
@@ -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):