diff --git a/src/camera.cpp b/src/camera.cpp index 90423dc1..06f4e2cb 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -45,6 +45,11 @@ void Camera::SetPosition(vec3 const &pos) m_position = pos; } +void Camera::SetRotation(quat const &rot) +{ + m_rotation = rot; +} + void Camera::SetOrtho(float width, float height, float near, float far) { m_proj_matrix = mat4::ortho(width, height, near, far); @@ -93,7 +98,8 @@ void Camera::TickGame(float seconds) m_position += vec3(rightleft, pgupdown, -updown) * 200.f * seconds; m_target += vec3(rightleft, 0, -updown) * 200.f * seconds; - m_view_matrix = mat4::lookat(m_position, m_target, m_up); + m_view_matrix = mat4::lookat(m_position, m_target, m_up) + * mat4(m_rotation); } void Camera::TickDraw(float seconds) diff --git a/src/camera.h b/src/camera.h index 03632328..427463a1 100644 --- a/src/camera.h +++ b/src/camera.h @@ -30,6 +30,7 @@ public: char const *GetName() { return ""; } void SetPosition(vec3 const &pos); + void SetRotation(quat const &rot); void SetOrtho(float width, float height, float near, float far); void SetPerspective(float fov, float width, float height, float near, float far);