Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef TANGO_GL_CAMERA_H_
00018 #define TANGO_GL_CAMERA_H_
00019
00020 #include "tango-gl/transform.h"
00021
00022 namespace tango_gl {
00023 class Camera : public Transform {
00024 public:
00025 Camera();
00026 Camera(const Camera& other) = delete;
00027 Camera& operator=(const Camera&) = delete;
00028 ~Camera();
00029
00030 void SetWindowSize(const float width, const float height);
00031 void SetFieldOfView(const float fov);
00032 void SetOrthoMode(bool enabled) {ortho_ = enabled;}
00033 void SetOrthoScale(float scale) {orthoScale_ = scale;}
00034 void SetOrthoCropFactor(float value) {orthoCropFactor_ = value;}
00035 void SetNearFarClipPlanes(const float near, const float far);
00036
00037 glm::mat4 GetViewMatrix();
00038 glm::mat4 GetProjectionMatrix();
00039 float getNearClipPlane() const {return near_clip_plane_;}
00040 float getFarClipPlane() const {return far_clip_plane_;}
00041
00054 static glm::mat4 ProjectionMatrixForCameraIntrinsics(float width, float height,
00055 float fx, float fy,
00056 float cx, float cy,
00057 float near, float far);
00058 protected:
00059 float field_of_view_;
00060 float aspect_ratio_;
00061 float width_;
00062 float height_;
00063 float near_clip_plane_, far_clip_plane_;
00064 bool ortho_;
00065 float orthoScale_;
00066 float orthoCropFactor_;
00067 };
00068 }
00069 #endif // TANGO_GL_CAMERA_H_