OSDN Git Service

add pmd::IO::read(const char*).
authorousttrue <ousttrue@gmail.com>
Tue, 4 May 2010 23:41:28 +0000 (08:41 +0900)
committerousttrue <ousttrue@gmail.com>
Tue, 4 May 2010 23:46:50 +0000 (08:46 +0900)
include/mqo.h
include/pmd.h
include/vmd.h
src/mqo.cpp
src/pmd.cpp
src/vmd.cpp
test/main.cpp

index f8da2f6..e9424f0 100644 (file)
@@ -233,6 +233,7 @@ struct IO
        std::vector<Object> objects;
 
        bool read(binary::IReader &reader);
+       bool read(const char *path);
        bool write(std::ostream &os);
 };
 
index f2c9912..840a675 100644 (file)
@@ -339,6 +339,7 @@ struct IO
 
        IO();
        bool read(binary::IReader &reader);
+       bool read(const char *path);
        bool write(std::ostream &os);
 };
 inline std::ostream &operator<<(std::ostream &os, const IO &rhs)
index b8aa069..cd317a6 100644 (file)
@@ -165,6 +165,7 @@ struct IO
 
        IO();
        bool read(binary::IReader &reader);
+       bool read(const char *path);
        bool write(std::ostream &os);
 };
 inline std::ostream& operator<<(std::ostream &os, const IO &rhs)
index 982d47d..d810850 100644 (file)
@@ -389,6 +389,17 @@ bool IO::read(binary::IReader &input)
        return Implementation(scene, materials, objects).parse(reader);
 }
 
+bool IO::read(const char *path)
+{
+       std::vector<char> all;
+       binary::readAll(path, all);
+       if(all.empty()){
+               return false;
+       }
+       binary::MemoryReader reader(&all[0], all.size());
+       return read(reader);
+}
+
 bool IO::write(std::ostream &os)
 {
        return false;
index d5e523f..8618d53 100644 (file)
@@ -428,6 +428,18 @@ bool IO::read(binary::IReader &input)
        return true;
 }
 
+bool IO::read(const char *path)
+{
+       //std::locale::global(std::locale("japanese"));
+       std::vector<char> all;
+       binary::readAll(path, all);
+       if(all.empty()){
+               return false;
+       }
+       binary::MemoryReader reader(&all[0], all.size());
+       return read(reader);
+}
+
 bool IO::write(std::ostream &os)
 {
        return false;
index 1d494ba..bbd261c 100644 (file)
@@ -151,6 +151,17 @@ bool IO::read(binary::IReader &reader)
        return Implementation(*this, reader).parse();
 }
 
+bool IO::read(const char *path)
+{
+       std::vector<char> all;
+       binary::readAll(path, all);
+       if(all.empty()){
+               return false;
+       }
+       binary::MemoryReader reader(&all[0], all.size());
+       return read(reader);
+}
+
 bool IO::write(std::ostream &os)
 {
        return false;
index b4e6fef..21c9049 100644 (file)
@@ -57,20 +57,14 @@ TEST(text, LineReader)
                if(l.isEnd()){
                        break;
                }
-               //std::cout << l.getLineCount() << ',' << line << std::endl;
        }
        EXPECT_EQ(43, l.getLineCount());
 }
 
 TEST(mqo, read) 
 { 
-       //binary::FileReader reader("cube.mqo");
-       std::vector<char> all;
-       binary::readAll("cube.mqo", all);
-       binary::MemoryReader reader(&all[0], all.size());
-
        mqo::IO io;
-       EXPECT_TRUE(io.read(reader));
+       EXPECT_TRUE(io.read("cube.mqo"));
        EXPECT_EQ(1, io.objects.size());
        EXPECT_EQ(8, io.objects[0].vertices.size());
        EXPECT_EQ(6, io.objects[0].faces.size());
@@ -79,13 +73,8 @@ TEST(mqo, read)
 TEST(pmd, read) 
 { 
        std::locale::global(std::locale("japanese"));
-       std::vector<char> all;
-       binary::readAll("\8f\89\89¹\83~\83NVer2.pmd", all);
-       binary::MemoryReader reader(&all[0], all.size());
-
        pmd::IO io;
-       EXPECT_TRUE(io.read(reader));
-       //std::cout << io << std::endl;
+       EXPECT_TRUE(io.read("\8f\89\89¹\83~\83NVer2.pmd"));
        EXPECT_STREQ("\8f\89\89¹\83~\83N", io.name);
        EXPECT_EQ(17, io.materials.size());
        EXPECT_EQ(12354, io.vertices.size());
@@ -96,14 +85,8 @@ TEST(pmd, read)
 
 TEST(vmd, read)
 {
-       std::locale::global(std::locale("japanese"));
-       std::vector<char> all;
-       binary::readAll("mikumiku.vmd", all);
-       binary::MemoryReader reader(&all[0], all.size());
-
        vmd::IO io;
-       EXPECT_TRUE(io.read(reader));
-       //std::cout << io << std::endl;
+       EXPECT_TRUE(io.read("mikumiku.vmd"));
        EXPECT_EQ(122, io.boneMap.size());
        EXPECT_EQ(16, io.morphMap.size());
 }