#ifndef CAMERA_H #define CAMERA_H #include "../math/matrix4x4.h" #include "../math/vector.h" #include 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