summary refs log tree commit diff
path: root/src/Camera.cpp
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-10-06 01:42:52 +0200
committerMel <einebeere@gmail.com>2022-10-06 01:42:52 +0200
commit731846a0c654b39e23c26f611470e401df404c9d (patch)
treed48a0f4160adaabaf2511808ba0519dc005fa44c /src/Camera.cpp
parent1474eb20033d809f85621b8b1060df362a239557 (diff)
downloadmeowcraft-731846a0c654b39e23c26f611470e401df404c9d.tar.zst
meowcraft-731846a0c654b39e23c26f611470e401df404c9d.zip
Relative to camera movement
Diffstat (limited to 'src/Camera.cpp')
-rw-r--r--src/Camera.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Camera.cpp b/src/Camera.cpp
index 5bb9aa2..59d677c 100644
--- a/src/Camera.cpp
+++ b/src/Camera.cpp
@@ -14,6 +14,13 @@ void Camera::move(Vector<3> vector) {
     m_position = m_position + vector;
 }
 
+void Camera::move_relative(Vector<3> by) {
+    auto rotation = Matrix<4, 4>::rotation(m_angles);
+
+    auto result = rotation.transpose() * Vector<4>{by.x(), by.y(), by.z(), 1.0f};
+    move(result.elements);
+}
+
 Rotation Camera::angles() {
     return m_angles;
 }