Modele3D.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "Modele3D.h"
  2. Modele3D::Modele3D()
  3. :m_textID( 0 ), m_vertices(0x0), m_coordTexture(0x0), m_vboID(0), m_vaoID(0)
  4. {
  5. //ctor
  6. }
  7. Modele3D::~Modele3D()
  8. {
  9. // Destruction des tableaux de cordonnées
  10. if ( m_vertices != 0x0 ) delete[] m_vertices;
  11. if ( m_coordTexture != 0x0 ) delete[] m_coordTexture;
  12. // Destruction du VBO
  13. glDeleteBuffers(1, &m_vboID);
  14. // Destruction du VAO
  15. glDeleteVertexArrays(1, &m_vaoID);
  16. }
  17. void Modele3D::afficher(glm::mat4 pmv, glm::mat4 m, Shader* const shad)
  18. {
  19. // Verouillage VAO
  20. glBindVertexArray(m_vaoID);
  21. // Envoi des matrices
  22. glUniformMatrix4fv(glGetUniformLocation(shad->getProgramID(), "pmv"), 1, GL_FALSE, glm::value_ptr(pmv));
  23. glUniformMatrix4fv(glGetUniformLocation(shad->getProgramID(), "m"), 1, GL_FALSE, glm::value_ptr(m));
  24. // Verrouillage de la texture
  25. glBindTexture(GL_TEXTURE_2D, m_textID);
  26. // Rendu
  27. glDrawArrays(GL_TRIANGLES, 0, m_nbVec);
  28. // Déverrouillage de la texture
  29. glBindTexture(GL_TEXTURE_2D, 0);
  30. // Déverrouillage du VAO
  31. glBindVertexArray(0);
  32. }