#ifndef CAMERA_H #define CAMERA_H #include "opengl.h" #include "./glm/vec3.hpp" #include "./glm/matrix.hpp" class Camera { public: virtual void bind(); void make_current(); Camera(); virtual ~Camera(); float width; float height; float fov; glm::vec3 position; glm::vec3 rotation; glm::vec3 scale; static Camera *current_camera; glm::mat4x4 projection_matrix; glm::mat4x4 model_view_matrix; }; class OrthographicCamera : public Camera { public: void bind(); OrthographicCamera(); ~OrthographicCamera(); }; class PerspectiveCamera : public Camera { public: float near; float far; void bind(); PerspectiveCamera(); ~PerspectiveCamera(); }; #endif