LesDingeriesDeDjalimSurOpenGL/src/loops/cube.cpp
Djalim Simaila 0ffaffc83e ♻️ (engine): refactor object storage to unique_ptr and improve mesh handling
- Add face counter in Mesh3D
- Switch objects map to std::unique_ptr<Mesh3D>
- Update VAO/VBO binding syntax accordingly
- Adjust cube rendering logic and camera position
- Simplify vertex data, load external model instead of hardcoded vertices
- Change main window size to 1000x1000
- Clean up includes and debug prints
2025-10-24 09:49:05 +02:00

45 lines
1.4 KiB
C++

#include "ShaderProgram.h"
#include "Texture2D.h"
#include "engine.h"
#include "loops.h"
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <iostream>
void djalim::cube(GLFWwindow* window, djalim::ShaderProgram shader, Objects3D& objects){
shader.use();
shader.setUniform("ourTexture", 0);
(objects["cube"])->texture.bind();
//std::cout << &(objects["cube"].texture) << std::endl;
//textures["cube"].bind();
// Matrice de Projection
glm::mat4 projection = glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f);
shader.setUniform("projection", projection); // Assurez-vous que setUniform pour mat4 est implémenté
// Matrice de Vue
glm::mat4 view = glm::lookAt(glm::vec3(0.0f, 0.0f, 11.0f), // Position caméra
glm::vec3(0.0f, 2.0f, 0.0f), // Cible
glm::vec3(0.0f, 1.0f, 0.0f)); // Axe Haut
shader.setUniform("view", view);
// Matrice Modèle
glm::mat4 model = glm::mat4(1.0f);
///model = glm::rotate(model, (float)glfwGetTime() * glm::radians(50.0f), glm::vec3(0.5f, 1.0f, 0.0f));
shader.setUniform("model", model);
// Dessiner le cube
glBindVertexArray((objects["cube"])->VAO);
glDrawArrays(GL_TRIANGLES, 0, (objects["cube"])->numFaces * 3);
//std::cout << objects["cube"].VAO << std::endl;
}