#include "glm.hpp" #include "ext.hpp" #include "./Spaceship.h" #pragma once class Sun { public: glm::vec3 sunPos; glm::vec3 sunDir; glm::vec3 sunColor; double scale; GLuint program; Core::RenderContext sphereContext; Sun(GLuint program, Core::RenderContext sphereContext, glm::vec3 pos, glm::vec3 dir, glm::vec3 color, double scale) { this->program = program; this->sphereContext = sphereContext; this->sunPos = pos; this->sunDir = dir; this->sunColor = color; this->scale = scale; } Sun(){} void draw() { glUseProgram(program); glm::mat4 viewProjectionMatrix = Core::createPerspectiveMatrix() * Spaceship::getInstance().createCameraMatrix(); glm::mat4 transformation = viewProjectionMatrix * glm::translate(sunPos) * glm::scale(glm::vec3(scale)); glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation); glUniform3f(glGetUniformLocation(program, "color"), sunColor.x / 2, sunColor.y / 2, sunColor.z / 2); glUniform1f(glGetUniformLocation(program, "exposition"), 1.f); Core::DrawContext(sphereContext); } };