Files
Z3D/include/assets/data_views/mesh_view.hpp

34 lines
722 B
C++

#pragma once
#include <span>
#include <tuple>
#include "assets/components/mesh_vertex_components.hpp"
#include "assets/data/mesh_data.hpp"
#include "assets/data_stores/material_store.hpp"
namespace assets
{
namespace detail
{
template<typename... Ts>
struct generic_mesh_view
{
mesh_vertex_components::flags component_flags;
std::span<mesh_data::index_type> indices;
std::tuple<std::span<Ts>...> vertex_component_arrays;
std::size_t vertex_count;
material_store::id_type material_id;
};
}
using mesh_view = detail::generic_mesh_view<
mesh_vertex_components::position,
mesh_vertex_components::normal,
mesh_vertex_components::tex_coord,
mesh_vertex_components::color,
mesh_vertex_components::reflectance
>;
}