diff options
Diffstat (limited to 'src/camera.c')
| -rw-r--r-- | src/camera.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/camera.c b/src/camera.c index 2d3c468..8aafd14 100644 --- a/src/camera.c +++ b/src/camera.c @@ -24,9 +24,10 @@ ta_camera ta_camera_current; float ta_camera_sensitivity = 0.0025f; +float ta_camera_fov = 60.0f; void ta_camera_init(void) { - ta_camera_current = (ta_camera){ 0.0f, 0.0f, 5.0f, 0.0f, 0.0f }; + ta_camera_current = (ta_camera){ 0.0f, 0.0f, 5.0f, 0.0f, 0.0f, ta_camera_fov }; } void ta_camera_update(void) { @@ -42,6 +43,16 @@ void ta_camera_update(void) { } } +void ta_camera_set_fov(float delta_degrees) { + ta_camera_current.fov += delta_degrees; + + if (ta_camera_current.fov < 20.0f) { + ta_camera_current.fov = 20.0f; + } else if (ta_camera_current.fov > 120.0f) { + ta_camera_current.fov = 120.0f; + } +} + void ta_camera_get_view_matrix(float *matrix) { float yaw_cosine = cosf(ta_camera_current.yaw); float yaw_sine = sinf(ta_camera_current.yaw); |