#if 0 // Pierre-Marie Baty -- looks like disabled code
#include "cameras/debug_camera.h"
#include <SDL.h>
mat4 view, projection;
vec3 cam_pos = { 0, 0, 0 };
vec3 cam_front = { 0, 0, -1 };
vec3 cam_up = { 0, 1, 0 };
float cam_speed = 0.5f;
float vc[4][4] = {
{ 0.45397636, 0.0, 0.89101368, 0 }, { 0.1117821, 0.99209929, -0.056953594, 0 }, { -0.88397402, 0.12545498, 0.45038962, 0 }, { -69.239441, 20.735441, -52.417336, 1 }
};
float lastX = 400, lastY = 300;
int firstMouse = 1;
float yaw = 0, pitch = 0;
int gDebugCamera_active = 0;
void DebugCamera_Update(void) {
const Uint8* state = SDL_GetKeyboardState(NULL);
if (state[SDL_SCANCODE_UP]) {
vec3 s;
glm_vec3_scale(cam_front, cam_speed, s);
glm_vec3_add(cam_pos, s, cam_pos);
}
if (state[SDL_SCANCODE_DOWN]) {
vec3 s;
glm_vec3_scale(cam_front, -cam_speed, s);
glm_vec3_add(cam_pos, s, cam_pos);
}
if (state[SDL_SCANCODE_LEFT]) {
vec3 cr;
glm_cross(cam_front, cam_up, cr);
glm_normalize(cr);
glm_vec3_scale(cr, cam_speed, cr);
glm_vec3_add(cam_pos, cr, cam_pos);
}
if (state[SDL_SCANCODE_RIGHT]) {
vec3 cr;
glm_cross(cam_front, cam_up, cr);
glm_normalize(cr);
glm_vec3_scale(cr, -cam_speed, cr);
glm_vec3_add(cam_pos, cr, cam_pos);
}
if (state[SDL_SCANCODE_F12]) {
gDebugCamera_active = !gDebugCamera_active;
// if (!gDebugCamera_active) {
// printf("DEBUGCAMERAACTIVE\n");
// gDebugCamera_active = 1;
// }
}
int xpos, ypos;
SDL_GetMouseState(&xpos, &ypos);
if (firstMouse) {
lastX = xpos;
lastY = ypos;
firstMouse = false;
}
float xoffset = xpos - lastX;
float yoffset = lastY - ypos;
lastX = xpos;
lastY = ypos;
float sensitivity = 0.7f;
xoffset *= sensitivity;
yoffset *= sensitivity;
yaw += xoffset;
pitch += yoffset;
if (pitch > 89.0f)
pitch = 89.0f;
if (pitch < -89.0f)
pitch = -89.0f;
vec3 direction;
direction
[0] = cos(glm_rad
(yaw
)) * cos(glm_rad
(pitch
));
direction
[1] = sin(glm_rad
(pitch
));
direction
[2] = sin(glm_rad
(yaw
)) * cos(glm_rad
(pitch
));
glm_normalize_to(direction, cam_front);
}
extern float gCamera_hither;
extern float gCamera_yon;
float* DebugCamera_Projection(void) {
glm_perspective(glm_rad(55.55), 320.0f / 200.0f /*4.0f / 3.0f*/, gCamera_hither, gCamera_yon, projection);
return (float*)&projection;
}
float* DebugCamera_View(void) {
vec3 look;
glm_vec3_add(cam_pos, cam_front, look);
glm_lookat(cam_pos, look, cam_up, view);
return (float*)&view;
}
void DebugCamera_SetPosition(float x, float y, float z) {
if (cam_pos[0] == 0) {
cam_pos[0] = x;
cam_pos[1] = y;
cam_pos[2] = z;
}
}
#endif // 0