# coding: utf-8\r
+"""\r
+pmd writer\r
+"""\r
import io\r
import struct\r
-import pymeshio.common\r
-import pymeshio.pmd\r
+from .. import common\r
+from .. import pmd\r
\r
\r
-class Writer(pymeshio.common.BinaryWriter):\r
+class Writer(common.BinaryWriter):\r
def write_veritices(self, vertices):\r
self.write_uint(len(vertices), 4)\r
for v in vertices:\r
self.write_uint(m.toon_index, 1)\r
self.write_uint(m.edge_flag, 1)\r
self.write_uint(m.vertex_count, 4)\r
- self.write_text(m.texture_file, 20)\r
+ self.write_bytes(m.texture_file, 20)\r
\r
def write_bones(self, bones):\r
self.write_uint(len(bones), 2)\r
sBone=struct.Struct("=20sHHBH3f")\r
assert(sBone.size==39)\r
for b in bones:\r
- self.write_text(b.name, 20)\r
+ self.write_bytes(b.name, 20)\r
self.write_uint(b.parent_index, 2)\r
self.write_uint(b.tail_index, 2)\r
self.write_uint(b.type, 1)\r
def write_morphs(self, morphs):\r
self.write_uint(len(morphs), 2)\r
for morph in morphs:\r
- self.write_text(morph.name, 20)\r
+ self.write_bytes(morph.name, 20)\r
self.write_uint(len(morph.indices), 4)\r
self.write_uint(morph.type, 1)\r
for i, v in zip(morph.indices, morph.pos_list):\r
def write_bone_group_list(self, bone_group_list):\r
self.write_uint(len(bone_group_list), 1)\r
for g in bone_group_list:\r
- self.write_text(g, 50)\r
+ self.write_bytes(g.name, 50)\r
\r
def write_bone_display_list(self, bone_display_list):\r
self.write_uint(len(bone_display_list), 4)\r
def write_rigidbodies(self, rigidbodies):\r
self.write_uint(len(rigidbodies), 4)\r
for r in rigidbodies:\r
- self.write_text(r.name, 20)\r
+ self.write_bytes(r.name, 20)\r
self.write_uint(r.bone_index, 2)\r
self.write_uint(r.collision_group, 1)\r
self.write_uint(r.no_collision_group, 2)\r
def write_joints(self, joints):\r
self.write_uint(len(joints), 4)\r
for j in joints:\r
- self.write_text(j.name, 20)\r
+ self.write_bytes(j.name, 20)\r
self.write_uint(j.rigidbody_index_a, 4)\r
self.write_uint(j.rigidbody_index_b, 4)\r
self.write_vector3(j.position)\r
\r
def write(ios, model):\r
assert(isinstance(ios, io.IOBase))\r
- assert(isinstance(model, pymeshio.pmd.Model))\r
+ assert(isinstance(model, pmd.Model))\r
writer=Writer(ios)\r
- writer.write_text(b"Pmd")\r
+ writer.write_bytes(b"Pmd")\r
writer.write_float(model.version)\r
- writer.write_text(model.name, 20)\r
- writer.write_text(model.comment, 256)\r
+ writer.write_bytes(model.name, 20)\r
+ writer.write_bytes(model.comment, 256)\r
writer.write_veritices(model.vertices)\r
writer.write_indices(model.indices)\r
writer.write_materials(model.materials)\r
writer.write_bone_display_list(model.bone_display_list)\r
# extend data\r
writer.write_uint(1, 1)\r
- writer.write_text(model.english_name, 20)\r
- writer.write_text(model.english_comment, 256)\r
+ writer.write_bytes(model.english_name, 20)\r
+ writer.write_bytes(model.english_comment, 256)\r
for bone in model.bones:\r
- writer.write_text(bone.english_name, 20)\r
+ writer.write_bytes(bone.english_name, 20)\r
for skin in model.morphs:\r
if skin.name==b'base':\r
continue\r
- writer.write_text(skin.english_name, 20)\r
- for english in model.bone_group_english_list:\r
- writer.write_text(english, 50)\r
+ writer.write_bytes(skin.english_name, 20)\r
+ for g in model.bone_group_list:\r
+ writer.write_bytes(g.english_name, 50)\r
for toon_texture in model.toon_textures:\r
- writer.write_text(toon_texture, 100)\r
+ writer.write_bytes(toon_texture, 100)\r
writer.write_rigidbodies(model.rigidbodies)\r
writer.write_joints(model.joints)\r
return True\r