X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcamera.h;h=b10ccb93e200ceaadbe62e8498c7cb69e427409a;hb=41368577ab4c4091e19d4e9cbbf8fbf2cfbdddca;hp=1c13e67d9d6de544a1aa0a73c00e0fcb4e4f0248;hpb=7cf5ebbc9d91d09d0664598d3fb88606c3307deb;p=libs%2Fgl.git diff --git a/source/camera.h b/source/camera.h index 1c13e67d..b10ccb93 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; @@ -42,10 +60,6 @@ public: 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 &); @@ -75,8 +89,6 @@ public: Vector4 unproject(const Vector4 &) const; Vector3 unproject(const Vector3 &) const; - void apply() const; - private: void update_projection_matrix(); void update_object_matrix();