From: ousttrue Date: Sun, 2 Oct 2011 13:44:10 +0000 (+0900) Subject: rename loader to reader X-Git-Url: http://git.osdn.net/view?p=meshio%2Fpymeshio.git;a=commitdiff_plain;h=61291b81a99d8e7e2f1a68a494e198bc7041e762 rename loader to reader --- diff --git a/pymeshio/common.py b/pymeshio/common.py index c8c2d75..45a7ff0 100644 --- a/pymeshio/common.py +++ b/pymeshio/common.py @@ -276,8 +276,8 @@ def readall(path): return f.read() -class BinaryLoader(object): - """general BinaryLoader +class BinaryReader(object): + """general BinaryReader """ def __init__(self, ios): self.ios=ios diff --git a/pymeshio/mqo/loader.py b/pymeshio/mqo/reader.py similarity index 89% rename from pymeshio/mqo/loader.py rename to pymeshio/mqo/reader.py index 60f7318..b3e0919 100644 --- a/pymeshio/mqo/loader.py +++ b/pymeshio/mqo/reader.py @@ -15,8 +15,8 @@ import pymeshio.mqo """ -class Loader(object): - """mqo loader +class Reader(object): + """mqo reader """ __slots__=[ "has_mikoto", @@ -168,27 +168,27 @@ class Loader(object): return False -def load_from_file(path): +def read_from_file(path): with open(path, 'rb') as ios: - load(ios) + read(ios) -def load(ios): +def read(ios): assert(isinstance(ios, io.IOBase)) - loader=Loader(ios) + reader=Reader(ios) model=pymeshio.mqo.Model() - line=loader.getline() + line=reader.getline() if line!="Metasequoia Document": print("invalid signature") return False - line=loader.getline() + line=reader.getline() if line!="Format Text Ver 1.0": print("unknown version: %s" % line) while True: - line=loader.getline() + line=reader.getline() if line==None: # eof break; @@ -201,22 +201,22 @@ def load(ios): if key=="Eof": return model elif key=="Scene": - if not loader.readChunk(): + if not reader.readChunk(): return elif key=="Material": - materials=loader.readMaterial() + materials=reader.readMaterial() if not materials: return model.materials=materials elif key=="Object": firstQuote=line.find('"') secondQuote=line.find('"', firstQuote+1) - obj=loader.readObject(line[firstQuote+1:secondQuote]) + obj=reader.readObject(line[firstQuote+1:secondQuote]) if not obj: return model.objects.append(obj) elif key=="BackImage": - if not loader.readChunk(): + if not reader.readChunk(): return elif key=="IncludeXml": firstQuote=line.find('"') @@ -224,7 +224,7 @@ def load(ios): print("IncludeXml", line[firstQuote+1:secondQuote]) else: print("unknown key: %s" % key) - if not loader.readChunk(): + if not reader.readChunk(): return # error not reach here raise ParseException("invalid eof") diff --git a/pymeshio/pmd/__init__.py b/pymeshio/pmd/__init__.py index e8c9a44..df77c79 100644 --- a/pymeshio/pmd/__init__.py +++ b/pymeshio/pmd/__init__.py @@ -535,7 +535,7 @@ class Model(object): def getUV(self, i): return self.vertices[i].uv def __str__(self): - return '' % ( + return '' % ( self.version, self.name, len(self.vertices), len(self.indices), len(self.materials), len(self.bones), len(self.ik_list), len(self.morph_list)) @@ -567,7 +567,7 @@ class IO(object): def read(self, path): warnings.warn("'pymeshio.mqo.IO.read' will be replaced by 'pymeshio.mqo.loader.load'") - model=pymeshio.pmd.loader.load_from_file(path) + model=pymeshio.pmd.reader.read_from_file(path) if model: return True diff --git a/pymeshio/pmd/loader.py b/pymeshio/pmd/reader.py similarity index 71% rename from pymeshio/pmd/loader.py rename to pymeshio/pmd/reader.py index 3f16099..e370147 100644 --- a/pymeshio/pmd/loader.py +++ b/pymeshio/pmd/reader.py @@ -4,11 +4,11 @@ import pymeshio.common import pymeshio.pmd -class Loader(pymeshio.common.BinaryLoader): - """pmx loader +class Reader(pymeshio.common.BinaryReader): + """pmx reader """ def __init__(self, ios, version): - super(Loader, self).__init__(ios) + super(Reader, self).__init__(ios) self.version=version def read_text(self, size): @@ -107,95 +107,95 @@ class Loader(pymeshio.common.BinaryLoader): -def __load(loader, model): +def __read(reader, model): # model info - model.name=loader.read_text(20) - model.comment=loader.read_text(256) + model.name=reader.read_text(20) + model.comment=reader.read_text(256) # model data - model.vertices=[loader.read_vertex() - for _ in range(loader.read_uint(4))] - model.indices=[loader.read_uint(2) - for _ in range(loader.read_uint(4))] - model.materials=[loader.read_material() - for _ in range(loader.read_uint(4))] - model.bones=[loader.read_bone() - for _ in range(loader.read_uint(2))] - model.ik_list=[loader.read_ik() - for _ in range(loader.read_uint(2))] - model.morphs=[loader.read_morph() - for _ in range(loader.read_uint(2))] - model.morph_indices=[loader.read_uint(2) - for _ in range(loader.read_uint(1))] - model.bone_group_list=[loader.read_text(50) - for _ in range(loader.read_uint(1))] - model.bone_display_list=[(loader.read_uint(2), loader.read_uint(1)) - for _i in range(loader.read_uint(4))] - - if loader.is_end(): + model.vertices=[reader.read_vertex() + for _ in range(reader.read_uint(4))] + model.indices=[reader.read_uint(2) + for _ in range(reader.read_uint(4))] + model.materials=[reader.read_material() + for _ in range(reader.read_uint(4))] + model.bones=[reader.read_bone() + for _ in range(reader.read_uint(2))] + model.ik_list=[reader.read_ik() + for _ in range(reader.read_uint(2))] + model.morphs=[reader.read_morph() + for _ in range(reader.read_uint(2))] + model.morph_indices=[reader.read_uint(2) + for _ in range(reader.read_uint(1))] + model.bone_group_list=[reader.read_text(50) + for _ in range(reader.read_uint(1))] + model.bone_display_list=[(reader.read_uint(2), reader.read_uint(1)) + for _i in range(reader.read_uint(4))] + + if reader.is_end(): # EOF return True ############################################################ # extend1: english name ############################################################ - if loader.read_uint(1)==0: + if reader.read_uint(1)==0: print("no extend flag") return True - model.english_name=loader.read_text(20) - model.english_comment=loader.read_text(256) + model.english_name=reader.read_text(20) + model.english_comment=reader.read_text(256) for bone in model.bones: - bone.english_name=loader.read_text(20) + bone.english_name=reader.read_text(20) for morph in model.morphs: if morph.name==b'base': continue - morph.english_name=loader.read_text(20) - model.bone_group_english_list=[loader.read_text(50) + morph.english_name=reader.read_text(20) + model.bone_group_english_list=[reader.read_text(50) for _ in model.bone_group_list] ############################################################ # extend2: toon_textures ############################################################ - if loader.is_end(): + if reader.is_end(): # EOF return True - model.toon_textures=[loader.read_text(100) + model.toon_textures=[reader.read_text(100) for _ in range(10)] ############################################################ # extend2: rigidbodies and joints ############################################################ - if loader.is_end(): + if reader.is_end(): # EOF return True - model.rigidbodies=[loader.read_rigidbody() - for _ in range(loader.read_uint(4))] - model.joints=[loader.read_joint() - for _ in range(loader.read_uint(4))] + model.rigidbodies=[reader.read_rigidbody() + for _ in range(reader.read_uint(4))] + model.joints=[reader.read_joint() + for _ in range(reader.read_uint(4))] return True -def load_from_file(path): - return load(io.BytesIO(pymeshio.common.readall(path))) +def read_from_file(path): + return read(io.BytesIO(pymeshio.common.readall(path))) -def load(ios): +def read(ios): assert(isinstance(ios, io.IOBase)) - loader=pymeshio.common.BinaryLoader(ios) + reader=pymeshio.common.BinaryReader(ios) # header - signature=loader.unpack("3s", 3) + signature=reader.unpack("3s", 3) if signature!=b"Pmd": raise pymeshio.common.ParseException( "invalid signature: {0}".format(signature)) - version=loader.read_float() + version=reader.read_float() model=pymeshio.pmd.Model(version) - loader=Loader(loader.ios, version) - if(__load(loader, model)): + reader=Reader(reader.ios, version) + if(__read(reader, model)): # check eof - if not loader.is_end(): + if not reader.is_end(): #print("can not reach eof.") pass diff --git a/pymeshio/pmx/loader.py b/pymeshio/pmx/reader.py similarity index 83% rename from pymeshio/pmx/loader.py rename to pymeshio/pmx/reader.py index b78ed96..cfb228e 100644 --- a/pymeshio/pmx/loader.py +++ b/pymeshio/pmx/reader.py @@ -4,8 +4,8 @@ import pymeshio.common import pymeshio.pmx -class Loader(pymeshio.common.BinaryLoader): - """pmx loader +class Reader(pymeshio.common.BinaryReader): + """pmx reader """ def __init__(self, ios, text_encoding, @@ -17,7 +17,7 @@ class Loader(pymeshio.common.BinaryLoader): morph_index_size, rigidbody_index_size ): - super(Loader, self).__init__(ios) + super(Reader, self).__init__(ios) self.read_text=self.get_read_text(text_encoding) if extended_uv>0: raise pymeshio.common.ParseException( @@ -30,7 +30,7 @@ class Loader(pymeshio.common.BinaryLoader): self.read_rigidbody_index=lambda : self.read_uint(rigidbody_index_size) def __str__(self): - return '' + return '' def get_read_text(self, text_encoding): if text_encoding==0: @@ -267,41 +267,41 @@ class Loader(pymeshio.common.BinaryLoader): spring_constant_rotation=self.read_vector3()) -def load_from_file(path): - return load(io.BytesIO(pymeshio.common.readall(path))) +def read_from_file(path): + return read(io.BytesIO(pymeshio.common.readall(path))) -def load(ios): +def read(ios): assert(isinstance(ios, io.IOBase)) - loader=pymeshio.common.BinaryLoader(ios) + reader=pymeshio.common.BinaryReader(ios) # header - signature=loader.unpack("4s", 4) + signature=reader.unpack("4s", 4) if signature!=b"PMX ": raise pymeshio.common.ParseException( "invalid signature", signature) - version=loader.read_float() + version=reader.read_float() if version!=2.0: print("unknown version", version) model=pymeshio.pmx.Model(version) # flags - flag_bytes=loader.read_uint(1) + flag_bytes=reader.read_uint(1) if flag_bytes!=8: raise pymeshio.common.ParseException( - "invalid flag length", loader.flag_bytes) - text_encoding=loader.read_uint(1) - extended_uv=loader.read_uint(1) - vertex_index_size=loader.read_uint(1) - texture_index_size=loader.read_uint(1) - material_index_size=loader.read_uint(1) - bone_index_size=loader.read_uint(1) - morph_index_size=loader.read_uint(1) - rigidbody_index_size=loader.read_uint(1) + "invalid flag length", reader.flag_bytes) + text_encoding=reader.read_uint(1) + extended_uv=reader.read_uint(1) + vertex_index_size=reader.read_uint(1) + texture_index_size=reader.read_uint(1) + material_index_size=reader.read_uint(1) + bone_index_size=reader.read_uint(1) + morph_index_size=reader.read_uint(1) + rigidbody_index_size=reader.read_uint(1) - # pmx custom loader - loader=Loader(loader.io, + # pmx custom reader + reader=Reader(reader.io, text_encoding, extended_uv, vertex_index_size, @@ -313,30 +313,30 @@ def load(ios): ) # model info - model.name = loader.read_text() - model.english_name = loader.read_text() - model.comment = loader.read_text() - model.english_comment = loader.read_text() + model.name = reader.read_text() + model.english_name = reader.read_text() + model.comment = reader.read_text() + model.english_comment = reader.read_text() # model data - model.vertices=[loader.read_vertex() - for _ in range(loader.read_uint(4))] - model.indices=[loader.read_vertex_index() - for _ in range(loader.read_uint(4))] - model.textures=[loader.read_text() - for _ in range(loader.read_uint(4))] - model.materials=[loader.read_material() - for _ in range(loader.read_uint(4))] - model.bones=[loader.read_bone() - for _ in range(loader.read_uint(4))] - model.morphs=[loader.read_morgh() - for _ in range(loader.read_uint(4))] - model.display_slots=[loader.read_display_slot() - for _ in range(loader.read_uint(4))] - model.rigidbodies=[loader.read_rigidbody() - for _ in range(loader.read_uint(4))] - model.joints=[loader.read_joint() - for _ in range(loader.read_uint(4))] + model.vertices=[reader.read_vertex() + for _ in range(reader.read_uint(4))] + model.indices=[reader.read_vertex_index() + for _ in range(reader.read_uint(4))] + model.textures=[reader.read_text() + for _ in range(reader.read_uint(4))] + model.materials=[reader.read_material() + for _ in range(reader.read_uint(4))] + model.bones=[reader.read_bone() + for _ in range(reader.read_uint(4))] + model.morphs=[reader.read_morgh() + for _ in range(reader.read_uint(4))] + model.display_slots=[reader.read_display_slot() + for _ in range(reader.read_uint(4))] + model.rigidbodies=[reader.read_rigidbody() + for _ in range(reader.read_uint(4))] + model.joints=[reader.read_joint() + for _ in range(reader.read_uint(4))] return model diff --git a/test/mqo_test.py b/test/mqo_test.py index 1be8cae..cb68799 100644 --- a/test/mqo_test.py +++ b/test/mqo_test.py @@ -1,14 +1,16 @@ import pymeshio.mqo +import pymeshio.mqo.reader import sys + MQO_FILE="resources/cube.mqo" def test_old_mqo_load(): io=pymeshio.mqo.IO() assert io.read(MQO_FILE) -def test_mqo_load(): - model=pymeshio.mqo.loader.load_from_file(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) diff --git a/test/pmd_test.py b/test/pmd_test.py index a4dc095..e394045 100644 --- a/test/pmd_test.py +++ b/test/pmd_test.py @@ -3,7 +3,7 @@ import sys import io import unittest import pymeshio.pmd -import pymeshio.pmd.loader +import pymeshio.pmd.reader import pymeshio.pmd.writer @@ -20,8 +20,8 @@ class TestPmd(unittest.TestCase): def setUp(self): pass - def test_load(self): - model=pymeshio.pmd.loader.load_from_file(PMD_FILE) + def test_read(self): + model=pymeshio.pmd.reader.read_from_file(PMD_FILE) self.assertEqual(pymeshio.pmd.Model, model.__class__) self.assertEqual(u'初音ミク'.encode('cp932'), model.name) self.assertEqual(u'Miku Hatsune'.encode('cp932'), model.english_name) @@ -53,11 +53,11 @@ class TestPmd(unittest.TestCase): def test_write(self): # read source file buf=pymeshio.common.readall(PMD_FILE) - # load and write to out - model=pymeshio.pmd.loader.load(io.BytesIO(buf)) + # read and write to out + model=pymeshio.pmd.reader.read(io.BytesIO(buf)) out=io.BytesIO() pymeshio.pmd.writer.write(out, model) # read out buffer again - model2=pymeshio.pmd.loader.load(io.BytesIO(out.getvalue())) + model2=pymeshio.pmd.reader.read(io.BytesIO(out.getvalue())) self.assertEqual(model, model2) diff --git a/test/pmd_test.pyc b/test/pmd_test.pyc index 2a940e5..bc73751 100644 Binary files a/test/pmd_test.pyc and b/test/pmd_test.pyc differ diff --git a/test/pmx_test.py b/test/pmx_test.py index 0a040b5..dce47b7 100644 --- a/test/pmx_test.py +++ b/test/pmx_test.py @@ -1,5 +1,5 @@ # coding: utf-8 -import pymeshio.pmx.loader +import pymeshio.pmx.reader import unittest @@ -12,7 +12,7 @@ class TestPmx(unittest.TestCase): pass def test_read(self): - model=pymeshio.pmx.loader.load_from_file(PMX_FILE) + model=pymeshio.pmx.reader.read_from_file(PMX_FILE) self.assertEqual(pymeshio.pmx.Model, model.__class__) self.assertEqual(u'初音ミク', model.name) self.assertEqual(u'Miku Hatsune', model.english_name)