#ifndef CAMERA_H
#define CAMERA_H
-#include "common.h"
+#include "skaterift.h"
typedef struct camera camera;
m4x3f transform,
transform_inverse;
- struct camera_mtx
- {
+ struct camera_mtx{
m4x4f p,
v,
pv;
mtx,
mtx_prev;
}
-VG_STATIC main_camera;
+static main_camera, gate_camera;
+
+VG_STATIC void camera_lerp_angles( v3f a, v3f b, float t, v3f d )
+{
+ d[0] = vg_alerpf( a[0], b[0], t );
+ d[1] = vg_lerpf( a[1], b[1], t );
+ d[2] = vg_lerpf( a[2], b[2], t );
+}
VG_STATIC void camera_lerp( camera *a, camera *b, float t, camera *d )
{
VG_STATIC void camera_update_transform( camera *cam )
{
v4f qyaw, qpitch, qcam;
- q_axis_angle( qyaw, (v3f){ 0.0f, 1.0f, 0.0f }, -cam->angles[0] );
+ q_axis_angle( qyaw, (v3f){ 0.0f, 1.0f, 0.0f }, -cam->angles[0] );
q_axis_angle( qpitch, (v3f){ 1.0f, 0.0f, 0.0f }, -cam->angles[1] );
q_mul( qyaw, qpitch, qcam );