SpiecsEngine
 
Loading...
Searching...
No Matches
GltfLoader.h
Go to the documentation of this file.
1/**
2* @file GltfLoader.h
3* @brief The GltfLoader Class Definitions.
4* @author Spices.
5*/
6
7#pragma once
8#include "Core/Core.h"
9#include "../../GltfCollection.h"
10#include "Resources/Material/Material.h"
11
12namespace Spices {
13
14 /**
15 * @brief Forward Declare.
16 */
17 class GltfPack;
18
19 /**
20 * @brief Loader of load gltf file or items.
21 */
23 {
24 public:
25
26 /**
27 * @brief Load a gltf file to GltfCollection.
28 * @param[in] fileName gltf file name.
29 * @param[in] collection GltfCollection.
30 * @reutrn Returns true if load succeed.
31 */
32 static bool Load(const std::string& fileName, GltfCollection* collection);
33
34 /**
35 * @brief Load a gltf mesh to GltfPack.
36 * @param[in] pack GltfPack.
37 * @param[in] primitive Gltf Primitive.
38 * @param[in] accessors Gltf Accessors.
39 * @param[in] buffers Gltf Buffers.
40 * @param[in] bufferViews Gltf BufferViews.
41 * @reutrn Returns true if load succeed.
42 */
43 static bool LoadPack(GltfPack* pack, const GltfMeshes::Primitive& primitive, GltfAccessors* accessors, GltfBuffers* buffers, GltfBufferViews* bufferViews);
44
45 /**
46 * @brief Load a Material from Gltf file material component.
47 * @param[in] material Gltf file material component item.
48 * @param[in] images Gltf Images.
49 * @return Returns Material.
50 * @attention This material not in ResourcesPool.
51 */
52 static std::shared_ptr<Material> LoadMaterial(const GltfMaterials::Item& material, GltfImages* images);
53 };
54}
#define SPICES_PROFILE_ZONE
EntityComponent Class. This class defines the specific behaves of EntityComponent.
Entity Class. This class defines the specific behaves of Entity.
Definition Entity.h:20
Wrapper of Gltf Json Accessors.
Wrapper of Gltf Json BufferViews.
Wrapper of Gltf Json Buffers.
Definition GltfBuffers.h:17
Entity CreateEntityRecursive(World *world, const std::string &tag, uint32_t node, const glm::mat4 &model, std::shared_ptr< LoadingState > loadingState)
Create Entity recursive from gltf file nodes.
GltfCollection(const std::string &path)
Constructor Function.
void CreateEntity(World *world, const std::string &tag, Transform transform={})
Create Entity instance from gltf file.
Wrapper of Gltf file data.
Wrapper of Gltf Json Images.
Definition GltfImages.h:21
static bool Load(const std::string &fileName, GltfCollection *collection)
Load a gltf file to GltfCollection.
static bool LoadPack(GltfPack *pack, const GltfMeshes::Primitive &primitive, GltfAccessors *accessors, GltfBuffers *buffers, GltfBufferViews *bufferViews)
Load a gltf mesh to GltfPack.
static std::shared_ptr< Material > LoadMaterial(const GltfMaterials::Item &material, GltfImages *images)
Load a Material from Gltf file material component.
Loader of load gltf file or items.
Definition GltfLoader.h:23
Wrapper of Gltf Json Materials.
Wrapper of Gltf Json Meshes.
Definition GltfMeshes.h:17
Wrapper of Gltf Json Nodes.
Definition GltfNodes.h:19
GltfPack Class. This class defines gltf type meshPack.
Definition GltfPack.h:19
Material Class. This class contains a branch of parameter and shader, also descriptor.
Definition Material.h:62
MeshComponent Class. This class defines the specific behaves of MeshComponent.
Builder Class. This class helps to create a mesh.
Definition Mesh.h:29
MeshRenderer Class. This class is a wrapper of mashpack.
Definition Mesh.h:21
TransformComponent Class. This class defines the specific behaves of TransformComponent.
void Mark(WorldMarkFlags flags)
Mark WorldMarkFlags with flags.
Definition World.h:125
Entity CreateEntity(const std::string &name="None")
Create a new empty entity in this world.
Definition World.cpp:13
@ MeshAddedToWorld
Definition World.h:47
World Class. This class defines the basic behaves of World. When we create an new world,...
Definition World.h:41
Materials Item data.
Primitive Item data.
Definition GltfMeshes.h:24
Nodes Item data.
Definition GltfNodes.h:26
Wrapper of 3D Transform.
Definition Transform.h:16