X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcamera.h;h=a0e4d6f65fb3215a5d8f64e2fbc1fef58347377f;hb=fac4decfa4744ac6dc7f13c0348b0ec1ec80f6a4;hp=6e83a9c3e761384f3342abb818cad714b1049004;hpb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;p=libs%2Fgl.git diff --git a/source/camera.h b/source/camera.h index 6e83a9c3..a0e4d6f6 100644 --- a/source/camera.h +++ b/source/camera.h @@ -10,11 +10,13 @@ namespace GL { class Camera { private: - float fov; + Geometry::Angle fov; float aspect; // Some compilers have "near" and "far" keywords float clip_near; float clip_far; + float frustum_x; + float frustum_y; Vector3 position; Vector3 look_dir; Vector3 up_dir; @@ -23,10 +25,11 @@ private: public: Camera(); - void set_field_of_view(float); + void set_field_of_view(const Geometry::Angle &); void set_aspect(float); void set_depth_clip(float, float); - float get_field_of_view() const { return fov; } + void set_frustum_axis(float, float); + const Geometry::Angle &get_field_of_view() const { return fov; } float get_aspect() const { return aspect; } float get_near_clip() const { return clip_near; } float get_far_clip() const { return clip_far; } @@ -41,6 +44,7 @@ public: const Matrix &get_matrix() const { return matrix; } Vector3 project(const Vector4 &) const; + Vector3 project(const Vector3 &) const; Vector4 unproject(const Vector4 &) const; void apply() const;