OSDN Git Service

fix for 2.57b
[meshio/pymeshio.git] / blender25-meshio / pymeshio / pmd.py
index 130004a..076fc11 100644 (file)
@@ -7,27 +7,6 @@ from .mmd import *
 ###############################################################################
 # PMD
 ###############################################################################
-if sys.version_info[0]<3:
-    def encode_string(src):
-        t=type(src)
-        if t==unicode:
-            return src.encode('cp932')
-        elif t==str:
-            return src
-        else:
-            raise "INVALID str: %s" % t
-
-else:
-    def encode_string(src):
-        t=type(src)
-        if t==str:
-            return src
-        elif t==bytes:
-            return src.decode('cp932')
-        else:
-            raise "INVALID str: %s" % t
-
-
 class Vertex(object):
     __slots__=['pos', 'normal', 'uv', 'bone0', 'bone1', 'weight0', 'edge_flag']
     def __init__(self, x=0, y=0, z=0, nx=0, ny=0, nz=0, u=0, v=0,
@@ -59,8 +38,8 @@ class Material(object):
             'diffuse', 'shinness', 'specular',
             'ambient', 'vertex_count', '_texture', 'toon_index', 'flag',
             ]
-    def getTexture(self): return self._texture
-    def setTexture(self, texture): self._texture=encode_string(texture)
+    def getTexture(self): return from_str(self._texture)
+    def setTexture(self, texture): self._texture=to_str(texture)
     texture=property(getTexture, setTexture)
 
     def __init__(self, dr=0, dg=0, db=0, alpha=1, 
@@ -105,11 +84,11 @@ class Bone(object):
             'children', '_english_name', 'ik_index',
             'parent_index', 'tail_index', 'tail',
             ]
-    def getName(self): return self._name
-    def setName(self, name): self._name=encode_string(name)
+    def getName(self): return from_str(self._name)
+    def setName(self, name): self._name=to_str(name)
     name=property(getName, setName)
-    def getEnglishName(self): return self._english_name
-    def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+    def getEnglishName(self): return from_str(self._english_name)
+    def setEnglishName(self, english_name): self._english_name=to_str(english_name)
     english_name=property(getEnglishName, setEnglishName)
 
     def __init__(self, name='bone', type=0):
@@ -260,11 +239,11 @@ class IK(object):
 class Skin(object):
     __slots__=['_name', 'type', 'indices', 'pos_list', '_english_name',
             'vertex_count']
-    def getName(self): return self._name
-    def setName(self, name): self._name=encode_string(name)
+    def getName(self): return from_str(self._name)
+    def setName(self, name): self._name=to_str(name)
     name=property(getName, setName)
-    def getEnglishName(self): return self._english_name
-    def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+    def getEnglishName(self): return from_str(self._english_name)
+    def setEnglishName(self, english_name): self._english_name=to_str(english_name)
     english_name=property(getEnglishName, setEnglishName)
 
     def __init__(self, name='skin'):
@@ -286,11 +265,11 @@ class Skin(object):
 
 class BoneGroup(object):
     __slots__=['_name', '_english_name']
-    def getName(self): return self._name
-    def setName(self, name): self._name=encode_string(name)
+    def getName(self): return from_str(self._name)
+    def setName(self, name): self._name=to_str(name)
     name=property(getName, setName)
-    def getEnglishName(self): return self._english_name
-    def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+    def getEnglishName(self): return from_str(self._english_name)
+    def setEnglishName(self, english_name): self._english_name=to_str(english_name)
     english_name=property(getEnglishName, setEnglishName)
 
     def __init__(self, name='group'): self._name=name; self._english_name='center'
@@ -310,8 +289,8 @@ class RigidBody(object):
             'w', 'h', 'd', 'position', 'rotation', 'weight',
             'linearDamping', 'angularDamping', 'restitution', 'friction', 'processType'
             ]
-    def getName(self): return self._name
-    def setName(self, name): self._name=encode_string(name)
+    def getName(self): return from_str(self._name)
+    def setName(self, name): self._name=to_str(name)
     name=property(getName, setName)
 
     def __init__(self, name):
@@ -326,8 +305,8 @@ class Constraint(object):
             'constraintRotMin', 'constraintRotMax',
             'springPos', 'springRot',
             ]
-    def getName(self): return self._name
-    def setName(self, name): self._name=encode_string(name)
+    def getName(self): return from_str(self._name)
+    def setName(self, name): self._name=to_str(name)
     name=property(getName, setName)
 
     def __init__(self, name):
@@ -350,17 +329,14 @@ class ToonTextures(object):
             self._toon_textures.append('toon%02d.bmp' % (i+1))
 
     def __getitem__(self, key):
-        return self._toon_textures[key]
+        return from_str(self._toon_textures[key])
 
     def __setitem__(self, key, value):
-        self._toon_textures[key]=encode_string(value)
+        self._toon_textures[key]=to_str(value)
 
     def __iter__(self):
-        self
-
-    def next(self):
         for toon_texture in self._toon_textures:
-            yield toon_texture
+            yield from_str(toon_texture)
 
 
 class IO(object):
@@ -374,17 +350,17 @@ class IO(object):
             'no_parent_bones',
             'rigidbodies', 'constraints',
             ]
-    def getName(self): return self._name
-    def setName(self, name): self._name=encode_string(name)
+    def getName(self): return from_str(self._name)
+    def setName(self, name): self._name=to_str(name)
     name=property(getName, setName)
-    def getEnglishName(self): return self._english_name
-    def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+    def getEnglishName(self): return from_str(self._english_name)
+    def setEnglishName(self, english_name): self._english_name=to_str(english_name)
     english_name=property(getEnglishName, setEnglishName)
-    def getComment(self): return self._comment
-    def setComment(self, comment): self._comment=encode_string(comment)
+    def getComment(self): return from_str(self._comment)
+    def setComment(self, comment): self._comment=to_str(comment)
     comment=property(getComment, setComment)
-    def getEnglishComment(self): return self._english_comment
-    def setEnglishComment(self, english_comment): self._english_comment=encode_string(english_comment)
+    def getEnglishComment(self): return from_str(self._english_comment)
+    def setEnglishComment(self, english_comment): self._english_comment=to_str(english_comment)
     english_comment=property(getEnglishComment, setEnglishComment)
 
     def __init__(self):
@@ -529,7 +505,7 @@ class IO(object):
         if not io:
             return False
         # Header
-        io.write(b"Pmd")        
+        io.write(b"Pmd")
         io.write(struct.pack("f", self.version))
         io.write(struct.pack("20s", self.name))
         io.write(struct.pack("256s", self.comment))
@@ -618,7 +594,7 @@ class IO(object):
             io.write(struct.pack("=20s", bone.english_name))
         # english skin list
         for skin in self.morph_list:
-            print(skin.name)
+            #print(skin.name)
             if skin.name==b'base':
                 continue
             io.write(struct.pack("=20s", skin.english_name))
@@ -811,7 +787,7 @@ class IO(object):
         self._check_position()
         # english skin list
         for skin in self.morph_list:
-            if skin.name=='base':
+            if skin.name==b'base':
                 continue
             english_name=truncate_zero(
                     struct.unpack("20s", self.io.read(20))[0])