#include #include #include #include #include #include ModelPart::ModelPart() { } ModelPart::ModelPart(const char* texPath, GLuint transUniformNum) { //create vbo, ebo, vao initBuffers(&vao); //create texture initTexture(&tex[0], texPath); transUniform = transUniformNum; empty = false; } void ModelPart::bindAndDraw() { if (empty) { return; } glBindVertexArray(vao); glBindTexture(GL_TEXTURE_2D, tex[texSelection]); glUniformMatrix4fv(transUniform, 1, GL_FALSE, glm::value_ptr(transMatrix)); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); } void ModelPart::setPosition(glm::vec2 position) { transMatrix = glm::translate(glm::mat4(1.0f), glm::vec3(position.x, -position.y, 0.0f)); } void ModelPart::addTexture(const char* texPath, size_t slot) { initTexture(&tex[slot], texPath); } void ModelPart::selectTexture(size_t slot) { texSelection = slot; }