From 025c880879906ddbb812fc1dd9649c5c89c6db9c Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Thu, 24 Nov 2016 17:42:18 +0900 Subject: [PATCH] Fix `nodes` emission. --- examples/alembic_to_gltf/abc2gltf.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/examples/alembic_to_gltf/abc2gltf.cc b/examples/alembic_to_gltf/abc2gltf.cc index aa29dff..fb2fea6 100644 --- a/examples/alembic_to_gltf/abc2gltf.cc +++ b/examples/alembic_to_gltf/abc2gltf.cc @@ -911,7 +911,7 @@ static void VisitObjectAndExtractNode(Node *node_out, std::stringstream &ss, } } -static bool ConvertNodeToGLTF(picojson::object *out, const Scene &scene, +static bool ConvertNodeToGLTF(picojson::object *root_out, const Scene &scene, const Node *node) { assert(node); assert(!node->name.empty()); @@ -963,9 +963,10 @@ static bool ConvertNodeToGLTF(picojson::object *out, const Scene &scene, for (size_t i = 0; i < xform->children.size(); i++) { if (xform->children[i]) { picojson::object json_child_node; - bool ret = ConvertNodeToGLTF(&json_child_node, scene, xform->children[i]); + bool ret = ConvertNodeToGLTF(root_out, scene, xform->children[i]); if (ret) { - json_children.push_back(picojson::value(json_child_node)); + assert(!(xform->children[i]->name.empty())); + json_children.push_back(picojson::value(xform->children[i]->name)); } } } @@ -975,7 +976,7 @@ static bool ConvertNodeToGLTF(picojson::object *out, const Scene &scene, } } - (*out) = json_node; + (*root_out)[node->name] = picojson::value(json_node); } else { return false; } @@ -990,11 +991,11 @@ static bool ConvertSceneToGLTF(picojson::object *out, const Scene &scene) { picojson::object nodes; picojson::array node_names; { - picojson::object node; + //picojson::object node; - ConvertNodeToGLTF(&node, scene, scene.root_node); + ConvertNodeToGLTF(&nodes, scene, scene.root_node); - nodes[scene.root_node->name] = picojson::value(node); + //nodes[scene.root_node->name] = picojson::value(node); node_names.push_back(picojson::value(scene.root_node->name)); } (*out)["nodes"] = picojson::value(nodes);