menu stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / camera.h
1 #ifndef CAMERA_H
2 #define CAMERA_H
3
4 #include "common.h"
5
6 static v2f camera_angles;
7 static v3f camera_pos;
8
9 static m4x3f camera_mtx,
10 camera_mtx_inverse;
11
12 static void camera_update(void)
13 {
14 /* Update camera matrices */
15 v4f qyaw, qpitch, qcam;
16 q_axis_angle( qyaw, (v3f){ 0.0f, 1.0f, 0.0f }, -camera_angles[0] );
17 q_axis_angle( qpitch, (v3f){ 1.0f, 0.0f, 0.0f }, -camera_angles[1] );
18
19 q_mul( qyaw, qpitch, qcam );
20 q_m3x3( qcam, camera_mtx );
21 v3_copy( camera_pos, camera_mtx[3] );
22
23 m4x3_invert_affine( camera_mtx, camera_mtx_inverse );
24 }
25
26 #endif /* CAMERA_H */