// // Created by martin on 19.10.21. // #ifndef RBDLSIM_RENDER_UTILS_H #define RBDLSIM_RENDER_UTILS_H #ifdef __cplusplus extern "C" { #endif typedef struct { float mtxProj[16]; float mtxView[16]; float near; float far; float fov; float heading; float pitch; float vel[3]; float pos[3]; float forward[3]; float right[3]; float up[3]; } Camera; void Camera_Init(Camera* camera); void Camera_CalcFromMatrix(Camera* camera, float* mtx); void Camera_CalcToMatrix(Camera* camera, float* mtx); void Camera_Update( Camera* camera, int width, int height, float dt, float mouse_dx, float mouse_dy, float accel[3]); #ifdef __cplusplus } #endif #endif //RBDLSIM_RENDER_UTILS_H