blob: 0c631784a30b34058aa784371859a346129d0bc5 (
plain)
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
|
#ifndef CAMERA_H
#define CAMERA_H
#include "../math/matrix4x4.h"
#include "../math/vector.h"
#include <stdbool.h>
typedef struct
{
Vec3 position;
Vec3 viewDirection;
Vec3 up;
Mat4 projectionMatrix;
Mat4 viewMatrix;
Vec2 mousePosition;
bool needsUpdate;
} Camera;
extern Camera *camera_new();
extern void camera_move_up(Camera *camera);
extern void camera_move_down(Camera *camera);
extern void camera_move_left(Camera *camera);
extern void camera_move_right(Camera *camera);
extern void camera_move_foward(Camera *camera);
extern void camera_move_backward(Camera *camera);
extern void camera_mouse_update(Camera *camera, const Vec2 *newMousePosition);
extern void camera_free(Camera *camera);
/* Consigue la viewMatrix */
extern Mat4 camera_get_model_to_view_matrix(Camera *camera);
#endif // CAMERA_H
|