From 4b6d71eb4a69c6ebd6502cd56e8578d64ec511f2 Mon Sep 17 00:00:00 2001 From: Aaro Saila Date: Thu, 5 Feb 2026 18:42:41 +0200 Subject: [PATCH] postponing implementing CompoundShapes --- src/CompoundShape.cpp | 8 +++++++- src/headers/CompoundShape.hpp | 2 +- src/main.cpp | 15 +++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/CompoundShape.cpp b/src/CompoundShape.cpp index bdb17ef..d7f0713 100644 --- a/src/CompoundShape.cpp +++ b/src/CompoundShape.cpp @@ -1,3 +1,6 @@ +#include +#include + #include "CompoundShape.hpp" // constructors @@ -16,9 +19,12 @@ CompoundShape::CompoundShape(const std::vector shapes) void CompoundShape::draw() { for (auto& shape : this->shapes) { glm::mat4 orig_transform { shape.transform }; - shape.transform *= shape.transform; + shape.transform = glm::rotate(shape.transform, glm::radians(90.0f), glm::vec3 { 0.0f, 0.0f, 1.0f }); shape.draw(); shape.transform = orig_transform; } } +void CompoundShape::rotate(const float rotation_rad, const glm::vec3& axis) { + this->transform = glm::rotate(this->transform, rotation_rad, axis); +} diff --git a/src/headers/CompoundShape.hpp b/src/headers/CompoundShape.hpp index 37403ef..4d7fe4b 100644 --- a/src/headers/CompoundShape.hpp +++ b/src/headers/CompoundShape.hpp @@ -10,7 +10,7 @@ public: CompoundShape(const std::vector shapes); - void draw() const; + void draw(); void reset_transform(); void translate(const glm::vec3& translation); void rotate(const float rotation_rad, const glm::vec3& axis); diff --git a/src/main.cpp b/src/main.cpp index d0ce4f6..b05707e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include "glad/glad.h" #include @@ -15,7 +14,6 @@ #include "Camera.hpp" #include "Shader.hpp" #include "Shape.hpp" -#include "CompoundShape.hpp" #include "quit.hpp" #include "settings.hpp" @@ -184,12 +182,8 @@ int main() { plane.rotate(glm::radians(90.0f), glm::vec3 { 1.0f, 0.0f, 0.0f }); plane.scale(glm::vec3 { 1.0f } * 100.0f); - Shape tri1 { shader, shapes.at("triangle") }; - Shape tri2 { shader, shapes.at("triangle") }; - tri2.rotate(glm::radians(180.0f), glm::vec3 { 0.0f, 0.0f, 1.0f }); - CompoundShape rectangle { { - tri1, tri2 - } }; + Shape cube { shader, shapes.at("cube") }; + cube.init(); long unsigned int frame { 0 }; double last_frame_time { 0 }; @@ -227,8 +221,9 @@ int main() { shader->set_vec4("color", glm::normalize(glm::vec4 { 207.0f, 90.0f, 28.0f, 1.0f })); plane.draw(); - shader->set_vec4("color", glm::vec4 { 0.0f, 0.0f, 0.0f, 1.0f }); - rectangle.draw(); + shader->set_vec4("color", glm::vec4 { 1.0f, 1.0f, 1.0f, 1.0f }); + cube.rotate(glm::radians(1.0f), glm::vec3 { 0.0f, 1.0f, 0.0f }); + cube.draw(); const double time_since_last_frame { glfwGetTime() - last_frame_time }; if (time_since_last_frame < fps_lock) {