31 lines
519 B
C++
Executable File
31 lines
519 B
C++
Executable File
#pragma once
|
|
|
|
#include "scene/camera.hpp"
|
|
|
|
|
|
|
|
class flying_camera : public camera {
|
|
public:
|
|
explicit flying_camera(float yaw, float pitch, float roll);
|
|
|
|
void update(
|
|
float time_delta,
|
|
glm::vec2 mouse_pos_delta,
|
|
float mouse_wheel_delta,
|
|
camera_view& view
|
|
) override;
|
|
|
|
void look_at(
|
|
const glm::vec3& origin,
|
|
const glm::vec3& target,
|
|
camera_view& view
|
|
) override;
|
|
|
|
private:
|
|
glm::vec3 m_velocity{ 0.0f, 0.0f, 0.0f };
|
|
glm::mat3 m_world_rotation;
|
|
glm::vec3 m_world_up;
|
|
|
|
float m_pitch, m_yaw, m_roll;
|
|
};
|