38 lines
769 B
C
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);
|
|
}
|