From 0ec41a0c8d9e3e679258f0d305313b9510780d60 Mon Sep 17 00:00:00 2001 From: Volodymyr Patuta Date: Mon, 28 Dec 2020 16:18:53 +0100 Subject: [PATCH] toggle overview + fixed movement to the planets --- window.c | 58 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/window.c b/window.c index f44f399..3109d82 100644 --- a/window.c +++ b/window.c @@ -67,6 +67,7 @@ static float _s = 1.0f; static int _movement = 1; static int _p = -1; static float _a = 0.0f; +static int _overview = 0; /*!\brief paramètre l'application et lance la boucle infinie. */ int main(int argc, char ** argv) { @@ -192,53 +193,53 @@ static void goto_obj(float * mvMat) { switch (_p) { case 1: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(4.5f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 4.2f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(4.2f, 1.0f, 0.5f); break; case 2: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(8.5f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 7.9f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(7.9f, 1.0f, 1.0f); break; case 3: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(10.5f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 10.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(10.0f, 1.0f, 1.0f); break; case 4: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(15.5f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 15.2f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(15.2f, 1.0f, 0.5f); break; case 5: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(35.0f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 30.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(30.0f, 1.0f, 5.0f); break; case 6: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(55.0f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 50.4f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(50.4f, 1.0f, 5.0f); break; case 7: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(67.0f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 65.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(65.0f, 1.0f, 5.0f); break; case 8: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(77.0f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 75.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(75.0f, 1.0f, 4.0f); break; case 9: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0,1,0,0,1,0); - move_to(85.5f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 85.4f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(85.4f, 1.0f, 0.1f); break; case 0: _a = 0; - lookAt(mvMat, _cam.x, _cam.y, _cam.z, 10,1,0,0,1,0); - move_to(5.0f, 1.0f, 0.0f); + lookAt(mvMat, _cam.x, _cam.y, _cam.z, 0, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f); + move_to(0.0f, 1.0f, 10.0f); break; } } @@ -553,10 +554,19 @@ void key(int keycode) { break; case GL4DK_o: if (_movement) { - _cam.x = 0; - _cam.y = 200.0f; - _cam.z = 0; - _cam.theta = 0; + if (!_overview) { + _overview = !_overview; + _cam.x = 0.0f; + _cam.y = 200.0f; + _cam.z = 0.0f; + _cam.theta = 0.0f; + } else { + _overview = !_overview; + _cam.x = 0.0f; + _cam.y = 1.0f; + _cam.z = 10.0f; + _cam.theta = 0.0f; + } } break; case GL4DK_r: