2#ifndef LIBSBX_SCENES_COMPONENTS_STATIC_MESH_HPP_
3#define LIBSBX_SCENES_COMPONENTS_STATIC_MESH_HPP_
9#include <libsbx/math/uuid.hpp>
11#include <libsbx/graphics/resource_storage.hpp>
13#include <libsbx/graphics/images/image2d.hpp>
15namespace sbx::scenes {
30 _submeshes{{0, material}} { }
32 static_mesh(
const math::uuid mesh_id,
const std::vector<submesh>& submeshes)
34 _submeshes{submeshes} { }
36 static_mesh(
const math::uuid mesh_id, std::initializer_list<submesh> submeshes)
38 _submeshes{submeshes} { }
40 auto mesh_id() const noexcept -> math::uuid {
44 auto set_mesh_id(
const math::uuid mesh_id)
noexcept ->
void {
48 auto submeshes() const noexcept -> const std::vector<submesh>& {
52 auto submeshes() noexcept -> std::vector<submesh>& {
56 auto resize_submeshes(
const std::size_t count) ->
void {
57 const auto previous = _submeshes.size();
59 _submeshes.resize(count);
61 for (
auto i = previous; i < count; ++i) {
62 _submeshes[i] = submesh{
static_cast<std::uint32_t
>(i), math::uuid::nil()};
66 auto set_submesh_material(
const std::size_t index,
const math::uuid material) ->
void {
67 if (index >= _submeshes.size()) {
71 _submeshes[index].material = material;
77 std::vector<submesh> _submeshes;
Definition: static_mesh.hpp:17
RGBA color representation and utilities.
Definition: static_mesh.hpp:21