18 {
20
21 std::ifstream
f(fileName);
22 if (!f)
23 {
24 std::stringstream ss;
25 ss << "Gltf File: " << fileName << " is not found.";
26
27 SPICES_CORE_ERROR(ss.str())
28 return false;
29 }
30
32 f >> data;
33
34 std::filesystem::path parentPath =
std::filesystem::path(fileName).parent_path();
35
36 SPICES_CORE_INFO("----------------------------------------------------------------");
37
38 if(data.find("asset") != data.end()) collection->m_Asset =
std::make_unique<GltfAsset >(data["asset"]);
39 if(data.find("accessors") != data.end()) collection->m_Accessors =
std::make_unique<GltfAccessors >(data["accessors"]);
40 if(data.find("buffers") != data.end()) collection->m_Buffers =
std::make_unique<GltfBuffers >(data["buffers"], parentPath);
41 if(data.find("bufferViews") != data.end()) collection->m_BufferViews =
std::make_unique<GltfBufferViews>(data["bufferViews"]);
42
43 if(data.find("images") != data.end()) collection->m_Images =
std::make_unique<GltfImages >(data["images"], parentPath);
44 if(data.find("materials") != data.end()) collection->m_Materials =
std::make_unique<GltfMaterials >(data["materials"]);
45 if(data.find("meshes") != data.end()) collection->m_Meshes =
std::make_unique<GltfMeshes >(data["meshes"]);
46 if(data.find("nodes") != data.end()) collection->m_Nodes =
std::make_unique<GltfNodes >(data["nodes"]);
47 if(data.find("samplers") != data.end()) collection->m_Samplers =
std::make_unique<GltfSamplers >(data["samplers"]);
48 if(data.find("scene") != data.end()) collection->m_Scene =
std::make_unique<GltfScene >(data["scene"]);
49 if(data.find("scenes") != data.end()) collection->m_Scenes =
std::make_unique<GltfScenes >(data["scenes"]);
50 if(data.find("textures") != data.end()) collection->m_Textures =
std::make_unique<GltfTextures >(data["textures"]);
51
52 SPICES_CORE_INFO("----------------------------------------------------------------");
53
54 return true;
55 }
#define SPICES_PROFILE_ZONE