Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
Mesh3dAsset.hpp
1
#pragma once
2
3
#include <vector>
4
#include <filesystem>
5
6
#include <Common/ResourcePipeline/Uuid.hpp>
7
#include <Common/Formats/Model.hpp>
8
9
#include <EngineCore/ECS/Entity.hpp>
10
#include <EngineCore/Assets/Asset.hpp>
11
12
namespace
Grindstone {
13
namespace
GraphicsAPI {
14
class
VertexArrayObject
;
15
class
Buffer
;
16
}
17
18
enum class
VertexBuffers {
19
Vertex = 0,
20
Normal,
21
Tangent,
22
TexCoord,
23
Last
24
};
25
26
struct
Mesh3dAsset :
public
Asset {
27
Mesh3dAsset(
Uuid
uuid, std::string_view name) : Asset(uuid, name) {}
28
struct
Submesh
{
29
uint32_t indexCount = 0;
30
uint32_t baseVertex = 0;
31
uint32_t baseIndex = 0;
32
uint32_t materialIndex = UINT32_MAX;
33
GraphicsAPI::VertexArrayObject
* vertexArrayObject =
nullptr
;
34
};
35
36
Grindstone::Formats::Model::V1::BoundingData
boundingData;
37
GraphicsAPI::VertexArrayObject
* vertexArrayObject =
nullptr
;
38
GraphicsAPI::Buffer
* positionBuffer =
nullptr
;
39
GraphicsAPI::Buffer
* normalBuffer =
nullptr
;
40
GraphicsAPI::Buffer
* tangentBuffer =
nullptr
;
41
GraphicsAPI::Buffer
* uvBuffer =
nullptr
;
42
GraphicsAPI::Buffer
* indexBuffer =
nullptr
;
43
std::vector<Submesh> submeshes;
44
45
DEFINE_ASSET_TYPE(
"Mesh3dAsset"
, AssetType::Mesh3d)
46
};
47
}
Grindstone::GraphicsAPI::Buffer
Definition
Buffer.hpp:56
Grindstone::GraphicsAPI::VertexArrayObject
Definition
VertexArrayObject.hpp:9
Grindstone::Uuid
Definition
Uuid.hpp:7
Grindstone::Formats::Model::V1::BoundingData
Definition
Model.hpp:13
Grindstone::Mesh3dAsset::Submesh
Definition
Mesh3dAsset.hpp:28
sources
code
Plugins
Renderables3D
Assets
Mesh3dAsset.hpp
Generated by
1.13.2