#pragma once #include #include #include #include "../Math/Math.hpp" namespace MC::GFX { class Mesh { public: Mesh( std::vector> positions, std::vector> normals, std::vector> tex_coords, std::vector indices ) : m_positions(std::move(positions)), m_normals(std::move(normals)), m_tex_coords(std::move(tex_coords)), m_indices(std::move(indices)) {}; Mesh( std::vector> positions, std::vector> normals, std::vector> tex_coords ) : m_positions(std::move(positions)), m_normals(std::move(normals)), m_tex_coords(std::move(tex_coords)), m_indices() {}; float* raw(); size_t size(); float* raw_normals(); size_t normals_size(); uint32_t* raw_indices(); size_t indices_size(); float* raw_tex_coords(); size_t tex_coords_size(); private: std::vector> m_positions; std::vector> m_normals; std::vector> m_tex_coords; std::vector m_indices; }; }