Files
Z3D/source/assets/data/mesh_data.ipp
2025-04-01 21:51:56 +02:00

81 lines
2.4 KiB
C++

#ifndef INCLUDE_DYNAMIC_MESH_DATA_IMPLEMENTATION
# error Never include this file directly include 'dynamic_mesh_buffer.hpp'
#endif
inline std::vector<assets::mesh_vertex_components::position>& assets::mesh_data::positions()
{
return std::get<mesh_vertex_components::indices::position>(component_arrays);
}
inline std::vector<assets::mesh_vertex_components::normal>& assets::mesh_data::normals()
{
return std::get<mesh_vertex_components::indices::normal>(component_arrays);
}
inline std::vector<assets::mesh_vertex_components::tex_coord>& assets::mesh_data::tex_coords()
{
return std::get<mesh_vertex_components::indices::tex_coord>(component_arrays);
}
inline std::vector<assets::mesh_vertex_components::color>& assets::mesh_data::colors()
{
return std::get<mesh_vertex_components::indices::color>(component_arrays);
}
inline std::vector<assets::mesh_vertex_components::reflectance>& assets::mesh_data::reflectances()
{
return std::get<mesh_vertex_components::indices::reflectance>(component_arrays);
}
inline std::vector<z3d::index_triangle>& assets::mesh_data::triangles()
{
return m_triangles;
}
inline assets::material_id& assets::mesh_data::material()
{
return m_material_id;
}
inline const std::vector<assets::mesh_vertex_components::position>& assets::mesh_data::positions() const
{
return std::get<mesh_vertex_components::indices::position>(component_arrays);
}
inline const std::vector<assets::mesh_vertex_components::normal>& assets::mesh_data::normals() const
{
return std::get<mesh_vertex_components::indices::normal>(component_arrays);
}
inline const std::vector<assets::mesh_vertex_components::tex_coord>& assets::mesh_data::tex_coords() const
{
return std::get<mesh_vertex_components::indices::tex_coord>(component_arrays);
}
inline const std::vector<assets::mesh_vertex_components::color>& assets::mesh_data::colors() const
{
return std::get<mesh_vertex_components::indices::color>(component_arrays);
}
inline const std::vector<assets::mesh_vertex_components::reflectance>& assets::mesh_data::reflectances() const
{
return std::get<mesh_vertex_components::indices::reflectance>(component_arrays);
}
inline const std::vector<z3d::index_triangle>& assets::mesh_data::triangles() const
{
return m_triangles;
}
inline const assets::material_id& assets::mesh_data::material() const
{
return m_material_id;
}
inline void assets::mesh_data::clear()
{
clear_component_arrays();
m_triangles.clear();
m_material_id = {};
}