SpiecsEngine
 
Loading...
Searching...
No Matches

◆ Load()

bool Spices::GltfLoader::Load ( const std::string & fileName,
GltfCollection * collection )
static

Load a gltf file to GltfCollection.

Parameters
[in]fileNamegltf file name.
[in]collectionGltfCollection. @reutrn Returns true if load succeed.

Definition at line 17 of file GltfLoader.cpp.

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
31 Json data;
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
nlohmann::json Json
STL namespace.

Referenced by Spices::GltfCollection::GltfCollection().