diff --git a/libs/gfx/include/psemek/gfx/gltf_parser.hpp b/libs/gfx/include/psemek/gfx/gltf_parser.hpp index a84161e0..baeb754d 100644 --- a/libs/gfx/include/psemek/gfx/gltf_parser.hpp +++ b/libs/gfx/include/psemek/gfx/gltf_parser.hpp @@ -82,6 +82,9 @@ namespace psemek::gfx std::vector accessors; std::vector buffer_views; std::vector buffers; + + std::unordered_map node_index; + std::unordered_map material_index; }; gltf_asset parse_gltf(io::istream && stream); diff --git a/libs/gfx/source/gltf_parser.cpp b/libs/gfx/source/gltf_parser.cpp index 7c539146..f329bbca 100644 --- a/libs/gfx/source/gltf_parser.cpp +++ b/libs/gfx/source/gltf_parser.cpp @@ -199,6 +199,12 @@ namespace psemek::gfx target.uri = buffer["uri"].GetString(); } + for (std::size_t i = 0; i < result.nodes.size(); ++i) + result.node_index[result.nodes[i].name] = i; + + for (std::size_t i = 0; i < result.materials.size(); ++i) + result.material_index[result.materials[i].name] = i; + return result; }