toggle overview + fixed movement to the planets

This commit is contained in:
Volodymyr Patuta 2020-12-28 16:18:53 +01:00
parent 33c7215e02
commit 0ec41a0c8d
1 changed files with 34 additions and 24 deletions

View File

@ -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: