X-Git-Url: http://git.mutantstargoat.com?p=demo;a=blobdiff_plain;f=src%2Fcamera.h;h=0ded6bed7d1dbad1f38bb6c643c8807b24f2c740;hp=8b3a895443341d764c0a16c5b2cb76b0546dd652;hb=63d7f3b0e70ab5e3d530c579b1881967c96b0b92;hpb=f906c6d5d6b93dcc4c0f3d54e679cf86c829b91e diff --git a/src/camera.h b/src/camera.h index 8b3a895..0ded6be 100644 --- a/src/camera.h +++ b/src/camera.h @@ -5,16 +5,30 @@ class Camera { public: - float phi; + Camera(); + Camera(float phi, float theta, float distance, float fov); + virtual ~Camera(); + + virtual Mat4 get_view_matrix() const = 0; + virtual void use() const; +}; + +class OrbitCamera : public Camera { +protected: float theta; + float phi; float distance; - Mat4 m_projection; - float fov; +public: + OrbitCamera(); + OrbitCamera(float theta, float phi, float distance); + virtual ~OrbitCamera(); - Camera(); - Camera(float phi, float theta, float distance, float fov); - ~Camera(); + virtual Mat4 get_view_matrix() const override; + + void set_orbit_params(float phi, float theta, float distance); }; +Mat4 calc_projection_matrix(float fov_deg, float aspect, float n, float f); + #endif // CAMERA_H_ \ No newline at end of file