Files
wschod/game/src/camera.c
T
2025-06-04 20:26:25 +02:00

38 lines
769 B
C

#include "camera.h"
vec3 camera_position;
vec3 camera_rotation;
void
camera_get_direction (vec3 dest)
{
dest[0] = sinf (camera_rotation[0]) * cosf (camera_rotation[1]);
dest[1] = sinf (camera_rotation[1]);
dest[2] = cosf (camera_rotation[0]) * cosf (camera_rotation[1]);
glm_vec3_normalize (dest);
}
void
camera_get_right (vec3 dest)
{
vec3 dir;
camera_get_direction (dir);
glm_vec3_cross (dir, GLM_YUP, dest);
glm_vec3_normalize (dest);
}
void
camera_get_view (mat4 dest)
{
vec3 dir, center;
camera_get_direction (dir);
glm_vec3_add (camera_position, dir, center);
glm_lookat (camera_position, center, GLM_YUP, dest);
}
void
camera_get_projection (float aspect, mat4 dest)
{
glm_perspective (glm_rad (70), aspect, 0.01, 7000.0, dest);
}