OSDN Git Service

implement converter
[meshio/pymeshio.git] / pymeshio / pmx / writer.py
index bc0b13c..f823985 100644 (file)
@@ -18,28 +18,28 @@ class Writer(common.BinaryWriter):
         if text_encoding==0:\r
             def write_text(unicode):\r
                utf16=unicode.encode('utf16') \r
-               self.write_uint(len(utf16), 4)\r
+               self.write_int(len(utf16), 4)\r
                self.write_bytes(utf16)\r
             self.write_text=write_text\r
         elif text_encoding==1:\r
             def write_text(unicode):\r
                utf8=unicode.encode('utf8') \r
-               self.write_uint(len(utf8), 4)\r
+               self.write_int(len(utf8), 4)\r
                self.write_bytes(utf8)\r
             self.write_text=write_text\r
         else:\r
             raise WriteError(\r
                     "invalid text_encoding: {0}".format(text_encoding))\r
 \r
-        self.write_vertex_index=lambda index: self.write_uint(index, vertex_index_size)\r
-        self.write_texture_index=lambda index: self.write_uint(index, texture_index_size)\r
-        self.write_material_index=lambda index: self.write_uint(index, material_index_size)\r
-        self.write_bone_index=lambda index: self.write_uint(index, bone_index_size)\r
-        self.write_morph_index=lambda index: self.write_uint(index, morph_index_size)\r
-        self.write_rigidbody_index=lambda index: self.write_uint(index, rigidbody_index_size)\r
+        self.write_vertex_index=lambda index: self.write_int(index, vertex_index_size)\r
+        self.write_texture_index=lambda index: self.write_int(index, texture_index_size)\r
+        self.write_material_index=lambda index: self.write_int(index, material_index_size)\r
+        self.write_bone_index=lambda index: self.write_int(index, bone_index_size)\r
+        self.write_morph_index=lambda index: self.write_int(index, morph_index_size)\r
+        self.write_rigidbody_index=lambda index: self.write_int(index, rigidbody_index_size)\r
 \r
     def write_vertices(self, vertices):\r
-        self.write_uint(len(vertices), 4)\r
+        self.write_int(len(vertices), 4)\r
         for v in vertices:\r
             self.write_vector3(v.position)\r
             self.write_vector3(v.normal)\r
@@ -49,10 +49,10 @@ class Writer(common.BinaryWriter):
 \r
     def write_deform(self, deform):\r
         if isinstance(deform, pmx.Bdef1):\r
-            self.write_uint(0, 1)\r
+            self.write_int(0, 1)\r
             self.write_bone_index(deform.index0)\r
         elif isinstance(deform, pmx.Bdef2):\r
-            self.write_uint(1, 1)\r
+            self.write_int(1, 1)\r
             self.write_bone_index(deform.index0)\r
             self.write_bone_index(deform.index1)\r
             self.write_float(deform.weight0)\r
@@ -65,17 +65,17 @@ class Writer(common.BinaryWriter):
                     "unknown deform type: {0}".format(deform.type))\r
 \r
     def write_indices(self, indices):\r
-        self.write_uint(len(indices), 4)\r
+        self.write_int(len(indices), 4)\r
         for i in indices:\r
             self.write_vertex_index(i)\r
 \r
     def write_textures(self, textures):\r
-        self.write_uint(len(textures), 4)\r
+        self.write_int(len(textures), 4)\r
         for t in textures:\r
             self.write_text(t)\r
 \r
     def write_materials(self, materials):\r
-        self.write_uint(len(materials), 4)\r
+        self.write_int(len(materials), 4)\r
         for m in materials:\r
             self.write_text(m.name)\r
             self.write_text(m.english_name)\r
@@ -84,34 +84,34 @@ class Writer(common.BinaryWriter):
             self.write_rgb(m.specular_color)\r
             self.write_float(m.specular_factor)\r
             self.write_rgb(m.ambient_color)\r
-            self.write_uint(m.flag, 1)\r
+            self.write_int(m.flag, 1)\r
             self.write_rgba(m.edge_color)\r
             self.write_float(m.edge_size)\r
             self.write_texture_index(m.texture_index)\r
             self.write_texture_index(m.sphere_texture_index)\r
-            self.write_uint(m.sphere_mode, 1)\r
-            self.write_uint(m.toon_sharing_flag, 1)\r
+            self.write_int(m.sphere_mode, 1)\r
+            self.write_int(m.toon_sharing_flag, 1)\r
             if m.toon_sharing_flag==0:\r
                 self.write_texture_index(m.toon_texture_index)\r
             elif m.toon_sharing_flag==1:\r
-                self.write_uint(m.toon_texture_index, 1)\r
+                self.write_int(m.toon_texture_index, 1)\r
             else:\r
                 raise common.WriteException(\r
                         "unknown toon_sharing_flag {0}".format(m.toon_sharing_flag))\r
             self.write_text(m.comment)\r
-            self.write_uint(m.vertex_count, 4)\r
+            self.write_int(m.vertex_count, 4)\r
 \r
     def write_bones(self, bones):\r
-        self.write_uint(len(bones), 4)\r
+        self.write_int(len(bones), 4)\r
         for bone in bones:\r
             self.write_text(bone.name)\r
             self.write_text(bone.english_name)\r
             self.write_vector3(bone.position)\r
             self.write_bone_index(bone.parent_index)\r
-            self.write_uint(bone.layer, 4)\r
-            self.write_uint(bone.flag, 2)\r
+            self.write_int(bone.layer, 4)\r
+            self.write_int(bone.flag, 2)\r
             if bone.getConnectionFlag()==0:\r
-                self.write_vector3(bone.tail_positoin)\r
+                self.write_vector3(bone.tail_position)\r
             elif bone.getConnectionFlag()==1:\r
                 self.write_bone_index(bone.tail_index)\r
             else:\r
@@ -131,22 +131,22 @@ class Writer(common.BinaryWriter):
                 self.write_vector3(bone.local_z_vector)\r
 \r
             if bone.getExternalParentDeformFlag()==1:\r
-                self.write_uint(bone.external_key, 4)\r
+                self.write_int(bone.external_key, 4)\r
 \r
             if bone.getIkFlag()==1:\r
                 self.write_ik(bone.ik)\r
 \r
     def write_ik(self, ik):\r
         self.write_bone_index(ik.target_index)\r
-        self.write_uint(ik.loop, 4)\r
+        self.write_int(ik.loop, 4)\r
         self.write_float(ik.limit_radian)\r
-        self.write_uint(len(ik.link), 4)\r
+        self.write_int(len(ik.link), 4)\r
         for l in ik.link:\r
             self.write_ik_link(l)\r
 \r
     def write_ik_link(self, link):\r
         self.write_bone_index(link.bone_index)\r
-        self.write_uint(link.limit_angle, 1)\r
+        self.write_int(link.limit_angle, 1)\r
         if link.limit_angle==0:\r
             pass\r
         elif link.limit_angle==1:\r
@@ -158,18 +158,18 @@ class Writer(common.BinaryWriter):
                         link.limit_angle))\r
  \r
     def write_morph(self, morphs):\r
-        self.write_uint(len(morphs), 4)\r
+        self.write_int(len(morphs), 4)\r
         for m in morphs:\r
             self.write_text(m.name)\r
             self.write_text(m.english_name)\r
-            self.write_uint(m.panel, 1)\r
-            self.write_uint(m.morph_type, 1)\r
+            self.write_int(m.panel, 1)\r
+            self.write_int(m.morph_type, 1)\r
             if m.morph_type==0:\r
                 # todo\r
                 raise pymeshio.common.WriteException(\r
                         "not implemented GroupMorph")\r
             elif m.morph_type==1:\r
-                self.write_uint(len(m.offsets), 4)\r
+                self.write_int(len(m.offsets), 4)\r
                 for o in m.offsets:\r
                     self.write_vertex_index(o.vertex_index)\r
                     self.write_vector3(o.position_offset)\r
@@ -206,14 +206,14 @@ class Writer(common.BinaryWriter):
                         "unknown morph type: {0}".format(m.morph_type))\r
 \r
     def write_display_slots(self, display_slots):\r
-        self.write_uint(len(display_slots), 4)\r
+        self.write_int(len(display_slots), 4)\r
         for s in display_slots:\r
             self.write_text(s.name)\r
             self.write_text(s.english_name)\r
-            self.write_uint(s.special_flag, 1)\r
-            self.write_uint(len(s.refrences), 4)\r
+            self.write_int(s.special_flag, 1)\r
+            self.write_int(len(s.refrences), 4)\r
             for r in s.refrences:\r
-                self.write_uint(r[0], 1)\r
+                self.write_int(r[0], 1)\r
                 if r[0]==0:\r
                     self.write_bone_index(r[1])\r
                 elif r[0]==1:\r
@@ -223,14 +223,14 @@ class Writer(common.BinaryWriter):
                             "unknown display_type: {0}".format(r[0]))\r
 \r
     def write_rigidbodies(self, rigidbodies):\r
-        self.write_uint(len(rigidbodies), 4)\r
+        self.write_int(len(rigidbodies), 4)\r
         for rb in rigidbodies:\r
             self.write_text(rb.name)\r
             self.write_text(rb.english_name)\r
             self.write_bone_index(rb.bone_index)\r
-            self.write_uint(rb.collision_group, 1)\r
-            self.write_uint(rb.no_collision_group, 2)\r
-            self.write_uint(rb.shape_type, 1)\r
+            self.write_int(rb.collision_group, 1)\r
+            self.write_int(rb.no_collision_group, 2)\r
+            self.write_int(rb.shape_type, 1)\r
             self.write_vector3(rb.shape_size)\r
             self.write_vector3(rb.shape_position)\r
             self.write_vector3(rb.shape_rotation)\r
@@ -239,14 +239,14 @@ class Writer(common.BinaryWriter):
             self.write_float(rb.param.angular_damping)\r
             self.write_float(rb.param.restitution)\r
             self.write_float(rb.param.friction)\r
-            self.write_uint(rb.mode, 1)\r
+            self.write_int(rb.mode, 1)\r
 \r
     def write_joints(self, joints):\r
-        self.write_uint(len(joints), 4)\r
+        self.write_int(len(joints), 4)\r
         for j in joints:\r
             self.write_text(j.name)\r
             self.write_text(j.english_name)\r
-            self.write_uint(j.joint_type, 1)\r
+            self.write_int(j.joint_type, 1)\r
             self.write_rigidbody_index(j.rigidbody_index_a)\r
             self.write_rigidbody_index(j.rigidbody_index_b)\r
             self.write_vector3(j.position)\r
@@ -270,11 +270,11 @@ def write(ios, model, text_encoding=1):
     writer.write_float(model.version)\r
 \r
     # flags\r
-    writer.write_uint(8, 1)\r
+    writer.write_int(8, 1)\r
     # textencoding\r
-    writer.write_uint(text_encoding, 1)\r
+    writer.write_int(text_encoding, 1)\r
     # extend uv\r
-    writer.write_uint(0, 1)\r
+    writer.write_int(0, 1)\r
     def get_array_size(size):\r
         if size<128:\r
             return 1\r
@@ -287,22 +287,22 @@ def write(ios, model, text_encoding=1):
                     "invalid array_size: {0}".format(size))\r
     # vertex_index_size\r
     vertex_index_size=get_array_size(len(model.vertices))\r
-    writer.write_uint(vertex_index_size, 1)\r
+    writer.write_int(vertex_index_size, 1)\r
     # texture_index_size\r
     texture_index_size=get_array_size(len(model.textures))\r
-    writer.write_uint(texture_index_size, 1)\r
+    writer.write_int(texture_index_size, 1)\r
     # material_index_size\r
     material_index_size=get_array_size(len(model.materials))\r
-    writer.write_uint(material_index_size, 1)\r
+    writer.write_int(material_index_size, 1)\r
     # bone_index_size\r
     bone_index_size=get_array_size(len(model.bones))\r
-    writer.write_uint(bone_index_size, 1)\r
+    writer.write_int(bone_index_size, 1)\r
     # morph_index_size\r
     morph_index_size=get_array_size(len(model.morphs))\r
-    writer.write_uint(morph_index_size, 1)\r
+    writer.write_int(morph_index_size, 1)\r
     # rigidbody_index_size\r
     rigidbody_index_size=get_array_size(len(model.rigidbodies))\r
-    writer.write_uint(rigidbody_index_size, 1)\r
+    writer.write_int(rigidbody_index_size, 1)\r
 \r
     writer=Writer(writer.ios, \r
             text_encoding, 0,\r