#ifndef O3D_MESH_HPP #define O3D_MESH_HPP #include #include #include #include #include #include #include "math/vector.hpp" #include "vulkan_utils.hpp" namespace engine::o3d { struct Mesh { static Mesh plane(float width, float height); std::vector vertices; std::vector normals; std::vector uvs; std::vector, 3>> indices; // TODO: find a better way to do this. This workaround is due to the fact that vulkan only // accepts a single index, not an index for each attributes std::tuple, std::vector> linearize_indices() const &; }; } #endif // O3D_MESH_HPP