add roll to camera calculation
authorhgn <hgodden00@gmail.com>
Fri, 13 Dec 2024 01:53:01 +0000 (01:53 +0000)
committerhgn <hgodden00@gmail.com>
Fri, 13 Dec 2024 01:53:01 +0000 (01:53 +0000)
vg_camera.c

index 8cd261f50a6e2583140d92191986ebddee873e3f..3828645eb0ced1b4b925438a9d05543ca69a7a14 100644 (file)
@@ -40,11 +40,13 @@ void vg_m4x3_transform_camera( m4x3f m, vg_camera *cam )
  */
 void vg_camera_update_transform( vg_camera *cam )
 {
-   v4f qyaw, qpitch, qcam;
+   v4f qyaw, qpitch, qroll, qcam;
    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_axis_angle( qroll,  (v3f){ 0.0f, 0.0f, 1.0f }, -cam->angles[2] );
 
    q_mul( qyaw, qpitch, qcam );
+   q_mul( qcam, qroll, qcam );
    q_m3x3( qcam, cam->transform );
    v3_copy( cam->pos, cam->transform[3] );
 }