X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=blender25-meshio%2Fpymeshio%2Fpmd.py;h=076fc11952131ad72d18d964d77eda5c08d55a60;hb=7c686cc000243203206007b2bcf5a45ca7dee025;hp=130004a034f68b48574e7177346348e7f2ed21c8;hpb=8fc08b79ae46a263f06c893f97a0439d41b14edc;p=meshio%2Fpymeshio.git diff --git a/blender25-meshio/pymeshio/pmd.py b/blender25-meshio/pymeshio/pmd.py index 130004a..076fc11 100644 --- a/blender25-meshio/pymeshio/pmd.py +++ b/blender25-meshio/pymeshio/pmd.py @@ -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])