44 enum class ProjectionType;
58 std::variant<Spherical, Aircraft> get_pos()
const;
60 float get_fov()
const;
61 glm::mat4 get_view_matrix()
const;
62 ProjectionType get_projection_type()
const;
63 glm::mat4 get_projection_matrix(
int window_width,
64 int window_height)
const;
65 glm::vec3 get_world_up()
const;
66 glm::vec3 get_front()
const;
67 glm::vec3 get_up()
const;
68 glm::vec3 get_right()
const;
72 void set_pos(std::variant<Spherical, Aircraft> pos);
73 void set_projection_type(ProjectionType proj_type);
74 void set_fov(
float fov);
75 void set_world_up(glm::vec3 world_up);
76 void set_front(glm::vec3 front);
77 void set_up(glm::vec3 up);
78 void set_right(glm::vec3 right);
93 float phi,
float radius)
94 : center(center), theta(theta), phi(phi), radius(radius) {}
111 Aircraft(glm::vec3 pos,
float yaw,
float pitch,
float roll)
112 : pos(pos), yaw(yaw), pitch(pitch), roll(roll) {}
119 std::variant<Spherical, Aircraft> pos;
120 ProjectionType proj_type;
191 ProjectionType proj_type = Camera::ProjectionType::Perspective;
193 glm::vec3 world_up = glm::vec3(0.0f, 1.0f, 0.0f);
194 glm::vec3 front = glm::vec3(0.0f, 0.0f, -1.0f);
195 glm::vec3 up = glm::vec3(0.0f, 1.0f, 0.0f);
196 glm::vec3 right = glm::vec3(1.0f, 0.0f, 0.0f);