73 std::span<const uint8_t> vertex_bytes,
74 std::span<const uint32_t> index_data,
96 std::span<const uint8_t> vertex_bytes,
97 std::span<const uint32_t> index_data,
98 std::string_view name = {},
99 std::string_view material_name = {},
100 const VertexLayout& layout = VertexLayout::for_meshes(60));
119 [[nodiscard]] std::optional<MeshAccess> build()
const;
126 bool m_layout_set =
false;
127 uint32_t m_vertex_count = 0;
128 uint32_t m_index_count = 0;
132 void ensure_vertex_storage();
133 void ensure_index_storage();
135 [[nodiscard]]
bool validate_layout(
const VertexLayout& incoming)
const;
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.