Binary object storage, misc changes

This commit is contained in:
2015-02-13 15:47:56 +01:00
parent 701ccce857
commit 260808b1fc
7 changed files with 106 additions and 3 deletions

View File

@@ -418,3 +418,37 @@ std::tuple<std::vector<objVertexAttribs>, std::vector<uint16_t> > readObject(std
parser.parse(filename);
return std::tuple<std::vector<objVertexAttribs>, std::vector<uint16_t> >(parser.buildVA(), parser.buildIndices());
}
#include <fstream>
#include "object.pb.h"
using std::ios;
void writeObjectPB(std::string const& filename, std::tuple<std::vector<objVertexAttribs>, std::vector<uint16_t> > obj)
{
std::fstream output(filename, ios::out | ios::binary);
pb::Object pbObj;
for (auto const& ind : std::get<1>(obj)) {
pbObj.add_indices(ind);
}
for (auto const& attr : std::get<0>(obj)) {
auto a = pbObj.add_attribs();
for(int i = 0;i < 3;++i)
a->add_vertex(attr.vertex[i]);
for(int i = 0;i < 2;++i)
a->add_texcoords(attr.texCoords[i]);
a->set_normal(attr.normal);
}
pbObj.SerializeToOstream(&output);
}
std::tuple<std::vector<objVertexAttribs>, std::vector<uint16_t> > readObjectPB(std::string const& filename)
{
return std::tuple<std::vector<objVertexAttribs>, std::vector<uint16_t> >();
}