+};
+
+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 ){
+ v3_lerp( a->pos, b->pos, t, d->pos );
+ d->angles[0] = vg_alerpf( a->angles[0], b->angles[0], t );
+ d->angles[1] = vg_lerpf( a->angles[1], b->angles[1], t );
+ d->angles[2] = vg_lerpf( a->angles[2], b->angles[2], t );
+ d->fov = vg_lerpf( a->fov, b->fov, t );
+}
+
+VG_STATIC void camera_copy( camera *a, camera *d ){
+ v3_copy( a->pos, d->pos );
+ v3_copy( a->angles, d->angles );
+ d->fov = a->fov;