#pragma once #include #include #include #include "../Math/Math.hpp" namespace MC::GFX { class Mesh { public: struct Attribute { template Attribute( std::vector> data ) : data((T*) data.data()), data_size(data.size()), attribute_size(S), type_size(sizeof(T)) {}; void* data; long data_size; int attribute_size; int type_size; }; Mesh( std::vector attributes, std::vector indices ) : m_attributes(std::move(attributes)), m_indices(std::move(indices)) {}; Mesh( std::vector attributes ) : m_attributes(std::move(attributes)), m_indices() {}; std::vector indices(); std::vector attributes(); private: std::vector m_attributes; std::vector m_indices; }; }