dont serialize a couple of empty arrays

This commit is contained in:
Selmar Kok 2020-01-28 13:45:38 +01:00
parent e2c3fe1c0b
commit eb9d29c06e

View File

@ -7003,6 +7003,7 @@ static void SerializeGltfTexture(Texture &texture, json &o) {
/// ///
static void SerializeGltfModel(Model *model, json &o) { static void SerializeGltfModel(Model *model, json &o) {
// ACCESSORS // ACCESSORS
if (model->accessors.size()) {
json accessors; json accessors;
JsonReserveArray(accessors, model->accessors.size()); JsonReserveArray(accessors, model->accessors.size());
for (unsigned int i = 0; i < model->accessors.size(); ++i) { for (unsigned int i = 0; i < model->accessors.size(); ++i) {
@ -7011,6 +7012,7 @@ static void SerializeGltfModel(Model *model, json &o) {
JsonPushBack(accessors, std::move(accessor)); JsonPushBack(accessors, std::move(accessor));
} }
JsonAddMember(o, "accessors", std::move(accessors)); JsonAddMember(o, "accessors", std::move(accessors));
}
// ANIMATIONS // ANIMATIONS
if (model->animations.size()) { if (model->animations.size()) {
@ -7033,6 +7035,7 @@ static void SerializeGltfModel(Model *model, json &o) {
JsonAddMember(o, "asset", std::move(asset)); JsonAddMember(o, "asset", std::move(asset));
// BUFFERVIEWS // BUFFERVIEWS
if(model->bufferViews.size()) {
json bufferViews; json bufferViews;
JsonReserveArray(bufferViews, model->bufferViews.size()); JsonReserveArray(bufferViews, model->bufferViews.size());
for (unsigned int i = 0; i < model->bufferViews.size(); ++i) { for (unsigned int i = 0; i < model->bufferViews.size(); ++i) {
@ -7041,6 +7044,7 @@ static void SerializeGltfModel(Model *model, json &o) {
JsonPushBack(bufferViews, std::move(bufferView)); JsonPushBack(bufferViews, std::move(bufferView));
} }
JsonAddMember(o, "bufferViews", std::move(bufferViews)); JsonAddMember(o, "bufferViews", std::move(bufferViews));
}
// Extensions used // Extensions used
if (model->extensionsUsed.size()) { if (model->extensionsUsed.size()) {
@ -7304,8 +7308,8 @@ bool TinyGLTF::WriteGltfSceneToStream(Model *model, std::ostream &stream,
SerializeGltfModel(model, output); SerializeGltfModel(model, output);
// BUFFERS // BUFFERS
std::vector<std::string> usedUris;
std::vector<unsigned char> binBuffer; std::vector<unsigned char> binBuffer;
if(model->buffers.size()) {
json buffers; json buffers;
JsonReserveArray(buffers, model->buffers.size()); JsonReserveArray(buffers, model->buffers.size());
for (unsigned int i = 0; i < model->buffers.size(); ++i) { for (unsigned int i = 0; i < model->buffers.size(); ++i) {
@ -7318,6 +7322,7 @@ bool TinyGLTF::WriteGltfSceneToStream(Model *model, std::ostream &stream,
JsonPushBack(buffers, std::move(buffer)); JsonPushBack(buffers, std::move(buffer));
} }
JsonAddMember(output, "buffers", std::move(buffers)); JsonAddMember(output, "buffers", std::move(buffers));
}
// IMAGES // IMAGES
if (model->images.size()) { if (model->images.size()) {
@ -7371,6 +7376,7 @@ bool TinyGLTF::WriteGltfSceneToFile(Model *model, const std::string &filename,
// BUFFERS // BUFFERS
std::vector<std::string> usedUris; std::vector<std::string> usedUris;
std::vector<unsigned char> binBuffer; std::vector<unsigned char> binBuffer;
if (model->buffers.size()) {
json buffers; json buffers;
JsonReserveArray(buffers, model->buffers.size()); JsonReserveArray(buffers, model->buffers.size());
for (unsigned int i = 0; i < model->buffers.size(); ++i) { for (unsigned int i = 0; i < model->buffers.size(); ++i) {
@ -7409,6 +7415,7 @@ bool TinyGLTF::WriteGltfSceneToFile(Model *model, const std::string &filename,
JsonPushBack(buffers, std::move(buffer)); JsonPushBack(buffers, std::move(buffer));
} }
JsonAddMember(output, "buffers", std::move(buffers)); JsonAddMember(output, "buffers", std::move(buffers));
}
// IMAGES // IMAGES
if (model->images.size()) { if (model->images.size()) {