Binary object storage, misc changes
This commit is contained in:
@@ -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> >();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user