aboutsummaryrefslogtreecommitdiffstats
path: root/src/graphics/Camera.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphics/Camera.hpp')
-rw-r--r--src/graphics/Camera.hpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/graphics/Camera.hpp b/src/graphics/Camera.hpp
index 6182b5f..fe8be22 100644
--- a/src/graphics/Camera.hpp
+++ b/src/graphics/Camera.hpp
@@ -11,18 +11,9 @@ enum camera_move {
RIGHT
};
-const GLfloat
- init_yaw = -90.0f,
- init_pitch = 0.0f,
- init_speed = 2.5f,
- init_sensitivity = 0.25f,
- init_fov = glm::radians(45.0f);
-
class Camera {
glm::vec3 position;
- glm::vec3 front;
- glm::vec3 up;
- glm::vec3 right;
+ glm::vec3 front, up, right;
glm::vec3 world_up;
GLfloat yaw; // around x
@@ -30,18 +21,24 @@ class Camera {
GLfloat move_speed;
GLfloat mouse_sensitivity;
+
GLfloat fov;
+ GLfloat near, far;
public:
Camera(glm::vec3 a_pos = glm::vec3(0.0f, 0.0f, 5.0f),
glm::vec3 a_front = glm::vec3(0.0f, 0.0f, -1.0f),
glm::vec3 a_up = glm::vec3(0.0f, 1.0f, 0.0f),
- GLfloat a_yaw = init_yaw, GLfloat a_pitch = init_pitch);
+ GLfloat a_yaw = -90.0f, GLfloat a_pitch = 0.0f);
+ void SetSpeed(GLfloat a_speed) { move_speed = a_speed; }
+ void SetSensitivity(GLfloat a_sens) { mouse_sensitivity = a_sens; }
+ void SetPerspective(GLfloat a_fov, GLfloat a_near, GLfloat a_far)
+ { fov = a_fov; near = a_near; far = a_far; }
glm::mat4 GetProjViewMatrix(int w_width, int w_height);
glm::mat4 GetSkyboxMatrix(int w_width, int w_height);
void Movement(camera_move direction, GLfloat deltaTime);
- void View(GLfloat delta_x, GLfloat delta_y);
- void Fov(GLfloat delta_y);
+ void UpdateView(GLfloat delta_x, GLfloat delta_y);
+ void UpdateFov(GLfloat delta_y);
private:
void UpdateVectors();
};