OSDN Git Service

fix version
[meshio/pymeshio.git] / pymeshio / common.py
index 7dadc16..698b5f9 100644 (file)
@@ -3,11 +3,7 @@
 common utilities.\r
 """\r
 import math\r
-\r
-def radian_to_degree(x):\r
-    """darian to deglee"""\r
-\r
-    return x/math.pi * 180.0\r
+import struct\r
 \r
 \r
 """\r
@@ -215,3 +211,72 @@ class RGBA(object):
         else:\r
             assert(False)\r
 \r
+\r
+"""\r
+utilities\r
+"""\r
+def radian_to_degree(x):\r
+    """darian to deglee"""\r
+\r
+    return x/math.pi * 180.0\r
+\r
+\r
+class ParseException(Exception):\r
+    pass\r
+\r
+\r
+def readall(path):\r
+    with open(path, "rb") as f:\r
+        return f.read()\r
+\r
+\r
+class BinaryLoader(object):\r
+    def __init__(self, io):\r
+        self.io=io\r
+\r
+    def unpack(self, fmt, size):\r
+        result=struct.unpack(fmt, self.io.read(size))\r
+        return result[0]\r
+\r
+    def read_uint(self, size):\r
+        if size==1:\r
+            return self.unpack("B", size)\r
+        if size==2:\r
+            return self.unpack("H", size)\r
+        if size==4:\r
+            return self.unpack("I", size)\r
+        print("not reach here")\r
+        raise ParseException("invalid int size: "+size)\r
+\r
+    def read_float(self):\r
+        return self.unpack("f", 4)\r
+\r
+    def read_vector2(self):\r
+        return Vector2(\r
+                self.read_float(), \r
+                self.read_float()\r
+                )\r
+\r
+    def read_vector3(self):\r
+        return Vector3(\r
+                self.read_float(), \r
+                self.read_float(), \r
+                self.read_float()\r
+                )\r
+\r
+    def read_rgba(self):\r
+        return RGBA(\r
+                self.read_float(), \r
+                self.read_float(), \r
+                self.read_float(),\r
+                self.read_float()\r
+                )\r
+\r
+    def read_rgb(self):\r
+        return RGB(\r
+                self.read_float(), \r
+                self.read_float(), \r
+                self.read_float()\r
+                )\r
+\r
+\r