34 lines
722 B
C++
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
|
|
>;
|
|
} |