#pragma once #include #include #include enum M_CameraType { M_CAMERA_REGULAR = 0, M_CAMERA_FPS }; typedef struct { vec3 pos; vec3 direction; vec3 up; float yaw, pitch, roll; unsigned short type; mat4 view_matrix; } M_Camera; typedef struct { vec3 pos; mat4 view_matrix; } M_FPS_Camera; void M_initCamera(M_Camera *camera, vec3 up); //Generates the M_Camera's view matrix required for rendering void M_cameraViewMatrix(M_Camera *camera);