-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcameradef.h
118 lines (88 loc) · 2.45 KB
/
cameradef.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#ifndef CAMERADEF_GUARD_H
#include <assert.h>
#include "spacedef.h"
#define CAMERADEF_GUARD_H
/**
* Quanto a câmera deve se mover (de maneira devagar)
*/
#define CAMERA_SLOW_MOVE .05
/**
* Quanto a câmera deve se mover (de maneira rápida)
*/
#define CAMERA_FAST_MOVE .4
/**
* Tecla para mover a câmera para frente (devagar)
*/
#define CAMERA_SLOW_MOVE_FOWARD 'w'
/**
* Tecla para mover a câmera para trás (devagar)
*/
#define CAMERA_SLOW_MOVE_BACKWARD 's'
/**
* Tecla para mover a câmera para esquerda (devagar)
*/
#define CAMERA_SLOW_MOVE_LEFT 'a'
/**
* Tecla para mover a câmera para a direita (devagar)
*/
#define CAMERA_SLOW_MOVE_RIGHT 'd'
/**
* Tecla para mover a câmera para cima (devagar)
*/
#define CAMERA_SLOW_MOVE_UP 'q'
/**
* Tecla para mover a câmera para baixo (devagar)
*/
#define CAMERA_SLOW_MOVE_DOWN 'e'
/**
* Tecla para mover a câmera para frente (rapido)
*/
#define CAMERA_FAST_MOVE_FOWARD 'W'
/**
* Tecla para mover a câmera para trás (rapido)
*/
#define CAMERA_FAST_MOVE_BACKWARD 'S'
/**
* Tecla para mover a câmera para esquerda (rapido)
*/
#define CAMERA_FAST_MOVE_LEFT 'A'
/**
* Tecla para mover a câmera para a direita (rapido)
*/
#define CAMERA_FAST_MOVE_RIGHT 'D'
/**
* Tecla para mover a câmera para cima (rapido)
*/
#define CAMERA_FAST_MOVE_UP 'Q'
/**
* Tecla para mover a câmera para baixo (rapido)
*/
#define CAMERA_FAST_MOVE_DOWN 'E'
/**
* Definição para os argumentos da função gluLookAt
*/
#define LOAD_CAMERA(camera) camera.cameraCoord.x, camera.cameraCoord.y, \
camera.cameraCoord.z, camera.targetCoord.x,\
camera.targetCoord.y, camera.targetCoord.z, 0.0, 0.0, 1.0
typedef struct camera_s{
coord_t targetCoord; // coordenada do ponto alvo, para onde a câmera está "olhando".
coord_t cameraCoord; // coordenada da câmera/observador.
}camera_t;
/**
* Move a câmera de acordo com o botão pressionado
* @param button Botão pressionado.
* @see #CAMERA_SLOW_MOVE_FOWARD
* @see #CAMERA_SLOW_MOVE_BACKWARD
* @see #CAMERA_SLOW_MOVE_LEFT
* @see #CAMERA_SLOW_MOVE_RIGHT
* @see #CAMERA_SLOW_MOVE_UP
* @see #CAMERA_SLOW_MOVE_DOWN
* @see #CAMERA_FAST_MOVE_FOWARD
* @see #CAMERA_FAST_MOVE_BACKWARD
* @see #CAMERA_FAST_MOVE_LEFT
* @see #CAMERA_FAST_MOVE_RIGHT
* @see #CAMERA_FAST_MOVE_UP
* @see #CAMERA_FAST_MOVE_DOWN
*/
void moveCamera(camera_t *camera, unsigned char button);
#endif