\r
\r
def build(path):\r
- # load scenee\r
t=time.time()\r
- io=pymeshio.mqo.IO()\r
- if not io.read(path):\r
+ model=pymeshio.mqo.reader.read_from_file(path)\r
+ if not model:\r
return\r
print(time.time()-t, "sec")\r
# build\r
basedir=os.path.dirname(path)\r
vertexArrayMap=opengl.vertexarraymap.VertexArrayMapWithUV()\r
- for m in io.materials:\r
+ for m in model.materials:\r
material=opengl.material.MQOMaterial()\r
material.rgba=(m.color.r, m.color.g, m.color.b, m.color.a)\r
if m.tex:\r
material.texture=opengl.texture.Texture(texturepath)\r
vertexArrayMap.addMaterial(material)\r
\r
- for o in io.objects:\r
+ for o in model.objects:\r
# skip mikoto objects\r
if o.name.startswith("anchor"):\r
continue\r
\r
import time\r
import os\r
-import pymeshio.pmd\r
+import pymeshio.pmd.reader\r
import opengl.material\r
import opengl.texture\r
import opengl.vertexarray\r
def build(path):\r
# load scenee\r
t=time.time()\r
- io=pymeshio.pmd.IO()\r
- if not io.read(path):\r
+ model=pymeshio.pmd.reader.read_from_file(path)\r
+ if not model:\r
return\r
print(time.time()-t, "sec")\r
# build\r
basedir=os.path.dirname(path)\r
indexedVertexArray=opengl.vertexarray.IndexedVertexArray()\r
- for v in io.vertices:\r
+ for v in model.vertices:\r
# left-handed y-up to right-handed y-up \r
indexedVertexArray.addVertex(\r
(v.pos[0], v.pos[1], -v.pos[2], 1), \r
textureMap={}\r
faceIndex=0\r
def indices():\r
- for i in io.indices:\r
+ for i in model.indices:\r
yield i\r
indexGen=indices()\r
- for i, m in enumerate(io.materials):\r
+ for i, m in enumerate(model.materials):\r
material=opengl.material.MQOMaterial()\r
material.vcol=True\r
material.rgba=(\r
- m.diffuse[0], \r
- m.diffuse[1], \r
- m.diffuse[2], \r
- m.diffuse[3])\r
- texturefile=m.texture.decode('cp932')\r
+ m.diffuse_color[0], \r
+ m.diffuse_color[1], \r
+ m.diffuse_color[2], \r
+ m.alpha)\r
+ texturefile=m.texture_file.decode('cp932')\r
texturepath=os.path.join(basedir, texturefile)\r
if os.path.isfile(texturepath):\r
if not texturepath in textureMap:\r
\r
import time\r
import os\r
-import pymeshio.pmx.loader\r
+import pymeshio.pmx.reader\r
import opengl.material\r
import opengl.texture\r
import opengl.vertexarray\r
\r
\r
def build(path):\r
- # load scenee\r
t=time.time()\r
- model=pymeshio.pmx.loader.load(path)\r
+ model=pymeshio.pmx.reader.read_from_file(path)\r
if not model:\r
return\r
print(time.time()-t, "sec")\r
import sys\r
import math\r
import pymeshio.common\r
-import pymeshio.mqo.loader\r
+import pymeshio.mqo.reader\r
import warnings\r
\r
\r
self.objects=[]\r
\r
\r
-class IO(object):\r
- def __init__(self):\r
- pass\r
-\r
- def read(self, path):\r
- warnings.warn("'pymeshio.mqo.IO.read' will be replaced by 'pymeshio.mqo.loader.load'")\r
- model=pymeshio.mqo.loader.load_from_file(path)\r
- if model:\r
- self.has_mikoto=model.has_mikoto\r
- self.materials=model.materials\r
- self.objects=model.objects\r
- return True\r
-\r
"""\r
__slots__=[\r
"has_mikoto",\r
- "eof", "io", "lines",\r
+ "eof", "ios", "lines",\r
"materials", "objects",\r
]\r
def __init__(self, ios):\r
\r
\r
def read_from_file(path):\r
- with open(path, 'rb') as ios:\r
- read(ios)\r
+ with io.open(path, 'rb') as ios:\r
+ return read(ios)\r
\r
\r
def read(ios):\r
+ print(type(ios), ios)\r
assert(isinstance(ios, io.IOBase))\r
reader=Reader(ios)\r
model=pymeshio.mqo.Model()\r
)
-class IO(object):
- def __init__(self):
- pass
-
- def read(self, path):
- warnings.warn("'pymeshio.mqo.IO.read' will be replaced by 'pymeshio.mqo.loader.load'")
- model=pymeshio.pmd.reader.read_from_file(path)
- if model:
- return True
-
rigidbody_index_size=reader.read_uint(1)\r
\r
# pmx custom reader\r
- reader=Reader(reader.io,\r
+ reader=Reader(reader.ios,\r
text_encoding,\r
extended_uv,\r
vertex_index_size,\r
MQO_FILE="resources/cube.mqo"
-def test_old_mqo_load():
- io=pymeshio.mqo.IO()
- assert io.read(MQO_FILE)
def test_mqo_read():
model=pymeshio.mqo.reader.read_from_file(MQO_FILE)
- print(model.materials)
assert pymeshio.mqo.Model==model.__class__
assert 6==len(model.materials)
assert 1==len(model.objects)
PMD_FILE=u'resources/初音ミクVer2.pmd'
-def test_old_pmd_load():
- loader=pymeshio.pmd.IO()
- assert loader.read(PMD_FILE)
-
-
class TestPmd(unittest.TestCase):
def setUp(self):