#pragma once #include #include #include #include "Spatial.h" namespace Gedeng { class Camera : public Spatial { public: /// Create a camera with a field of view (in degrees), width and height (in any unit) and near /// and far distances Camera(float fov, float width, float height, float near, float far) : projection(glm::perspective(glm::radians(fov), width / height, near, far)) { } glm::mat4 get_projection() { return projection; } glm::mat4 get_view() { return glm::inverse(get_matrix()); } private: glm::mat4 projection; }; }