X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcamera.h;h=a58023017745e37b65179b283c9e1ff3f928f2c2;hp=d96ada81e45c4c26840e79c4b813f6034c1a8d82;hb=72a13418cc19e750abf3f8d8a52aea5e1abe4983;hpb=05d70b38a546f35a7687cae6ae3fcd6ab78898b2 diff --git a/source/camera.h b/source/camera.h index d96ada81..a5802301 100644 --- a/source/camera.h +++ b/source/camera.h @@ -1,6 +1,7 @@ #ifndef MSP_GL_CAMERA_H_ #define MSP_GL_CAMERA_H_ +#include #include "placeable.h" namespace Msp { @@ -8,6 +9,23 @@ namespace GL { class Camera: public Placeable { +public: + class Loader: public DataFile::ObjectLoader + { + public: + Loader(Camera &); + + private: + void aspect_ratio(float); + void depth_clip(float, float); + void field_of_view(float); + void look_at(float, float, float); + void look_direction(float, float, float); + void orthographic(float, float); + void position(float, float, float); + void up_direction(float, float, float); + }; + private: Geometry::Angle fov; float height; @@ -29,7 +47,7 @@ public: void set_field_of_view(const Geometry::Angle &); void set_orthographic(float, float); - void set_aspect(float); + void set_aspect_ratio(float); void set_depth_clip(float, float); void set_frustum_axis(float, float); void set_frustum_rotation(const Geometry::Angle &); @@ -37,11 +55,15 @@ public: bool is_orthographic() const { return fov==Geometry::Angle::zero(); } float get_orthographic_width() const { return height*aspect; } float get_orthographic_height() const { return height; } - float get_aspect() const { return aspect; } + float get_aspect_ratio() const { return aspect; } float get_near_clip() const { return clip_near; } float get_far_clip() const { return clip_far; } const Geometry::Angle &get_frustum_rotation() const { return rotate; } + // Deprecated, use set/get_aspect_ratio instead + void set_aspect(float a) { set_aspect_ratio(a); } + float get_aspect() const { return get_aspect_ratio(); } + void set_position(const Vector3 &); void set_look_direction(const Vector3 &); void look_at(const Vector3 &);