#pragma once #include #include class Camera { public: std::string name; glm::vec3 eye; glm::vec3 target; // --- Orthographic settings --- float pixelsPerMeter; // --- Orthographic settings --- // ---- Perspective settings --- /// In radians float fov; // ---- Perspective settings --- bool perspective; public: Camera(); void SetEyePos(glm::vec3 pos); void SetTargetPos(glm::vec3 pos); void SetTargetDirection(glm::vec3 lookVector); bool HasPerspective() const { return perspective; } void SetHasPerspective(bool perspective); glm::mat4 CalcViewMatrix() const; glm::mat4 CalcProjectionMatrix() const; };