From 69bb8d27a562fa90076c63cb41054e708dd6b93a Mon Sep 17 00:00:00 2001 From: Dan Cojocaru Date: Sun, 5 Jun 2022 10:48:40 +0300 Subject: [PATCH] Refactored code to use Utils::toRad --- src/maze.cpp | 21 +++++++++++---------- src/utils.hpp | 10 ++++++++++ y3s2-gui-project.spec | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/maze.cpp b/src/maze.cpp index 89126a5..16f0848 100644 --- a/src/maze.cpp +++ b/src/maze.cpp @@ -8,8 +8,6 @@ #include "utils.hpp" -constexpr double PI = 3.14159265358979; - MazeScreen::MazeScreen(const std::vector>& maze): maze(maze), angleX(0), @@ -27,9 +25,9 @@ void MazeScreen::display() { posX, 0, posZ, - posX + cos((angleX * PI) / 180) * 3, + posX + cos(Utils::toRad(angleX)) * 3, 0, - posZ - sin((angleX * PI) / 180) * 3, + posZ - sin(Utils::toRad(angleX)) * 3, 0, 1, 0 @@ -47,18 +45,21 @@ void MazeScreen::display() { break; case 1: glPushMatrix(); + + glTranslatef(i, 0, j); + // Scale green by X auto green = Utils::clamp(Utils::nummap(abs(i - posX), 0, 3, 0, 1), 0, 1); // Scale blue by Z auto blue = Utils::clamp(Utils::nummap(abs(j - posZ), 0, 3, 0, 1), 0, 1); + glColor3f(1, green, blue); - glTranslatef(i, 0, j); + glutWireCube(1); if (solid) { + glColor3f(1, green, blue); glutSolidCube(1); } - else { - glutWireCube(1); - } + glPopMatrix(); break; } @@ -114,8 +115,8 @@ void MazeScreen::idle() { auto deltaTime = (newTime - gameTime) / 1000.0; gameTime = newTime; - posX += forceX * deltaTime * cos(angleX * PI / 180) + forceZ * deltaTime * sin(angleX * PI / 180); - posZ += forceZ * deltaTime * cos(angleX * PI / 180) - forceX * deltaTime * sin(angleX * PI / 180); + posX += forceX * deltaTime * cos(Utils::toRad(angleX)) + forceZ * deltaTime * sin(Utils::toRad(angleX)); + posZ += forceZ * deltaTime * cos(Utils::toRad(angleX)) - forceX * deltaTime * sin(Utils::toRad(angleX)); glutPostRedisplay(); } diff --git a/src/utils.hpp b/src/utils.hpp index a0adac5..c43e9a1 100644 --- a/src/utils.hpp +++ b/src/utils.hpp @@ -26,4 +26,14 @@ namespace Utils { constexpr T toRad(T deg) { return deg * PI / 180; } + + template + constexpr T min(T a, T b) { + if (a < b) { + return a; + } + else { + return b; + } + } } diff --git a/y3s2-gui-project.spec b/y3s2-gui-project.spec index 535c76b..54b30ad 100644 --- a/y3s2-gui-project.spec +++ b/y3s2-gui-project.spec @@ -1,5 +1,5 @@ Name: y3s2-gui-project -Version: 1.0.1 +Version: 1.0.2 Release: 1%{?dist} Summary: Maze project in OpenGL for Graphics and User Interfaces lecture in year 3, semester 2