Print extensions.

This commit is contained in:
Syoyo Fujita 2018-03-21 18:48:03 +09:00
parent d5b0244e2c
commit d1f8bae89c

View File

@ -210,6 +210,17 @@ static std::string PrintParameterValue(const tinygltf::Parameter &param) {
}
}
static std::string PrintParameterMap(const tinygltf::ParameterMap &pmap) {
std::stringstream ss;
ss << pmap.size() << std::endl;
for (auto &kv : pmap) {
ss << kv.first << " : " << PrintParameterValue(kv.second) << std::endl;
}
return ss.str();
}
static std::string PrintValue(const std::string &name,
const tinygltf::Value &value, const int indent) {
std::stringstream ss;
@ -287,6 +298,14 @@ static void DumpPrimitive(const tinygltf::Primitive &primitive, int indent) {
<< PrintValue("extras", primitive.extras, indent + 1) << std::endl;
}
static void DumpExtensions(const tinygltf::ExtensionMap &extension, const int indent)
{
for (auto &e : extension) {
std::cout << Indent(indent) << e.first << std::endl;
std::cout << Indent(indent+1) << PrintParameterMap(e.second);
}
}
static void Dump(const tinygltf::Model &model) {
std::cout << "=== Dump glTF ===" << std::endl;
std::cout << "asset.copyright : " << model.asset.copyright
@ -307,6 +326,7 @@ static void Dump(const tinygltf::Model &model) {
for (size_t i = 0; i < model.scenes.size(); i++) {
std::cout << Indent(1) << "scene[" << i
<< "] name : " << model.scenes[i].name << std::endl;
DumpExtensions(model.scenes[i].extensions, 1);
}
}
@ -530,6 +550,12 @@ static void Dump(const tinygltf::Model &model) {
}
}
}
// toplevel extensions
{
std::cout << "extensions(items=" << model.extensions.size() << ")" << std::endl;
DumpExtensions(model.extensions, 1);
}
}
int main(int argc, char **argv) {