aboutsummaryrefslogtreecommitdiff
path: root/09-september/tomcat/renderer/camera.h
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