summaryrefslogtreecommitdiff
path: root/src/camera.h
blob: c00450c31f8f556fd023512b705bf2c82085c642 (plain) (blame)
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
#pragma once
#include "cglm/types.h"
#include "shader.h"


enum DIRECTION {
    FORWARD,
    BACKWARD,
    LEFT,
    RIGHT
};
struct camera {
    vec3 position;
    vec3 direction;
    vec3 up;
    mat4 view;
    mat4 perspective;
    float fov;
};

void camera_init(struct camera** camera);
void camera_update(struct camera* camera, struct shader* shader);
void camera_set_position(struct camera* camera, vec3 pos);
void camera_move(struct camera* camera, enum DIRECTION move);
void camera_rotate(struct camera* camera, vec2 offset);