]> git.tdb.fi Git - libs/gl.git/blobdiff - source/camera.h
Bind ProgramData to a Program upon construction
[libs/gl.git] / source / camera.h
index 8be79abf9715195d0c5feb978b239c8c925bfa9c..0390607d5dafd31ffadb22f25ce0cda0a99f5537 100644 (file)
@@ -8,6 +8,7 @@ Distributed under the LGPL
 #ifndef MSP_GL_CAMERA_H_
 #define MSP_GL_CAMERA_H_
 
+#include "matrix.h"
 #include "vector.h"
 
 namespace Msp {
@@ -24,7 +25,7 @@ private:
        Vector3 position;
        Vector3 look_dir;
        Vector3 up_dir;
-       float matrix[16];
+       Matrix matrix;
 
 public:
        Camera();
@@ -32,6 +33,10 @@ public:
        void set_field_of_view(float);
        void set_aspect(float);
        void set_depth_clip(float, float);
+       float 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; }
 
        void set_position(const Vector3 &);
        void set_look_direction(const Vector3 &);
@@ -40,6 +45,7 @@ public:
        const Vector3 &get_position() const { return position; }
        const Vector3 &get_look_direction() const { return look_dir; }
        const Vector3 &get_up_direction() const { return up_dir; }
+       const Matrix &get_matrix() const { return matrix; }
 
        Vector3 project(const Vector4 &) const;
        Vector4 unproject(const Vector4 &) const;