#pragma once #include struct Camera { glm::vec3 position{0.0f, 0.0f, 3.0f}; glm::vec3 front{0.0f, 0.0f, -1.0f}; glm::vec3 up{0.0f, 1.0f, 0.0f}; glm::vec3 direction{0.0f, 0.0f, 0.0f}; float movement_speed = 20.0f; float pitch = 0.0f; float yaw = -90.0f; float speed = 0.05f; float lastX = 400; float lastY = 300; float fov = 45.0f; bool firstMouse = true; bool dirty = true; glm::mat4 look_at(); void forward(); void back(); void left(); void right(); void update(float deltaTime); void mouse_move(double xpos, double ypos); void mouse_scroll(double xoffset, double yoffset); };