diff options
| author | Mel <einebeere@gmail.com> | 2022-10-06 01:42:52 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-10-06 01:42:52 +0200 |
| commit | 731846a0c654b39e23c26f611470e401df404c9d (patch) | |
| tree | d48a0f4160adaabaf2511808ba0519dc005fa44c /src/Camera.cpp | |
| parent | 1474eb20033d809f85621b8b1060df362a239557 (diff) | |
| download | meowcraft-731846a0c654b39e23c26f611470e401df404c9d.tar.zst meowcraft-731846a0c654b39e23c26f611470e401df404c9d.zip | |
Relative to camera movement
Diffstat (limited to 'src/Camera.cpp')
| -rw-r--r-- | src/Camera.cpp | 7 |
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; } |
