OSDN Git Service

refactoring pmd.writer
[meshio/pymeshio.git] / pymeshio / pmx / loader.py
index 033665a..b78ed96 100644 (file)
@@ -7,7 +7,7 @@ import pymeshio.pmx
 class Loader(pymeshio.common.BinaryLoader):\r
     """pmx loader\r
     """\r
-    def __init__(self, io,\r
+    def __init__(self, ios,\r
             text_encoding,\r
             extended_uv,\r
             vertex_index_size,\r
@@ -17,7 +17,7 @@ class Loader(pymeshio.common.BinaryLoader):
             morph_index_size,\r
             rigidbody_index_size\r
             ):\r
-        super(Loader, self).__init__(io)\r
+        super(Loader, self).__init__(ios)\r
         self.read_text=self.get_read_text(text_encoding)\r
         if extended_uv>0:\r
             raise pymeshio.common.ParseException(\r
@@ -29,10 +29,10 @@ class Loader(pymeshio.common.BinaryLoader):
         self.read_morph_index=lambda : self.read_uint(morph_index_size)\r
         self.read_rigidbody_index=lambda : self.read_uint(rigidbody_index_size)\r
 \r
-    def __str__(self) -> str:\r
+    def __str__(self):\r
         return '<pymeshio.pmx.Loader>'\r
 \r
-    def get_read_text(self, text_encoding) -> "text process function":\r
+    def get_read_text(self, text_encoding):\r
         if text_encoding==0:\r
             def read_text():\r
                 size=self.read_uint(4)\r
@@ -99,7 +99,7 @@ class Loader(pymeshio.common.BinaryLoader):
                     "unknown toon_sharing_flag {0}".format(\r
                         material.toon_sharing_flag))\r
         material.comment=self.read_text()\r
-        material.index_count=self.read_uint(4)\r
+        material.vertex_count=self.read_uint(4)\r
         return material\r
 \r
     def read_bone(self):\r
@@ -237,7 +237,7 @@ class Loader(pymeshio.common.BinaryLoader):
                 english_name=self.read_text(),\r
                 bone_index=self.read_bone_index(),\r
                 collision_group=self.read_uint(1),\r
-                no_collision_flag=self.read_uint(2),\r
+                no_collision_group=self.read_uint(2),\r
                 shape_type=self.read_uint(1),\r
                 shape_size=self.read_vector3(),\r
                 shape_position=self.read_vector3(),\r
@@ -267,17 +267,19 @@ class Loader(pymeshio.common.BinaryLoader):
                 spring_constant_rotation=self.read_vector3())\r
 \r
 \r
-def load(path: str) -> pymeshio.pmx.Model:\r
-    # general binary loader\r
-    loader=pymeshio.common.BinaryLoader(\r
-            io.BytesIO(\r
-                pymeshio.common.readall(path)))\r
+def load_from_file(path):\r
+    return load(io.BytesIO(pymeshio.common.readall(path)))\r
+\r
+\r
+def load(ios):\r
+    assert(isinstance(ios, io.IOBase))\r
+    loader=pymeshio.common.BinaryLoader(ios)\r
 \r
     # header\r
     signature=loader.unpack("4s", 4)\r
     if signature!=b"PMX ":\r
         raise pymeshio.common.ParseException(\r
-                "invalid signature", loader.signature)\r
+                "invalid signature", signature)\r
 \r
     version=loader.read_float()\r
     if version!=2.0:\r