sandbox
Loading...
Searching...
No Matches
static_mesh.hpp
1// SPDX-License-Identifier: MIT
2#ifndef LIBSBX_SCENES_COMPONENTS_STATIC_MESH_HPP_
3#define LIBSBX_SCENES_COMPONENTS_STATIC_MESH_HPP_
4
5#include <vector>
6#include <cinttypes>
7
9#include <libsbx/math/uuid.hpp>
10
11#include <libsbx/graphics/resource_storage.hpp>
12
13#include <libsbx/graphics/images/image2d.hpp>
14
15namespace sbx::scenes {
16
17class static_mesh final {
18
19public:
20
21 struct submesh {
22 std::uint32_t index;
23 math::uuid material;
24 }; // struct submesh
25
26 static_mesh(const math::uuid mesh_id, const math::uuid material)
27 : _mesh_id{mesh_id},
28 _submeshes{{0, material}} { }
29
30 static_mesh(const math::uuid mesh_id, const std::vector<submesh>& submeshes)
31 : _mesh_id{mesh_id},
32 _submeshes{submeshes} { }
33
34 static_mesh(const math::uuid mesh_id, std::initializer_list<submesh> submeshes)
35 : _mesh_id{mesh_id},
36 _submeshes{submeshes} { }
37
38 auto mesh_id() const noexcept -> math::uuid {
39 return _mesh_id;
40 }
41
42 auto submeshes() const noexcept -> const std::vector<submesh>& {
43 return _submeshes;
44 }
45
46private:
47
48 math::uuid _mesh_id;
49 std::vector<submesh> _submeshes;
50
51}; // class static_mesh
52
53} // namespace sbx::scenes
54
55#endif // LIBSBX_SCENES_COMPONENTS_STATIC_MESH_HPP_
Definition: uuid.hpp:160
Definition: static_mesh.hpp:17
RGBA color representation and utilities.
Definition: static_mesh.hpp:21