diff options
author | sotech117 <michael_foiani@brown.edu> | 2023-12-13 16:10:56 -0500 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2023-12-13 16:10:56 -0500 |
commit | 4c2e415118a451c8cf6f46d296e16a2711169ead (patch) | |
tree | de989e6cc2ea6c7450080f14b9c59e4c4885cf4f /src/raytracer/raytracer.cpp | |
parent | 23d8f83bfcfdb48ed18bf01204d262322c4e41e4 (diff) |
fix merge
Diffstat (limited to 'src/raytracer/raytracer.cpp')
-rw-r--r-- | src/raytracer/raytracer.cpp | 93 |
1 files changed, 56 insertions, 37 deletions
diff --git a/src/raytracer/raytracer.cpp b/src/raytracer/raytracer.cpp index dbc1988..604d717 100644 --- a/src/raytracer/raytracer.cpp +++ b/src/raytracer/raytracer.cpp @@ -270,60 +270,79 @@ void RayTracer::sceneChanged(QLabel* imageLabel) { void RayTracer::keyPressEvent(QKeyEvent *event) { m_keyMap[Qt::Key(event->key())] = true; std::cout << "key pressed" << std::endl; - if (m_keyMap[Qt::Key_1]) { + + // J and L for xy rotation + if (m_keyMap[Qt::Key_J]) { std::cout << "key 1" << std::endl; - if (settings.negative) { - settings.xy -= settings.rotation; - } else { settings.xy += settings.rotation; - } + emit xyRotationChanged(settings.xy); + } + if (m_keyMap[Qt::Key_L]) { + settings.xy -= settings.rotation; emit xyRotationChanged(settings.xy); } - if (m_keyMap[Qt::Key_2]) { - if (settings.negative) { - settings.xz -= settings.rotation; - } else { - settings.xz += settings.rotation; - } + // I and M for xz rotation + if (m_keyMap[Qt::Key_I]) { + settings.xz += settings.rotation; emit xzRotationChanged(settings.xz); } - - if (m_keyMap[Qt::Key_3]) { - if (settings.negative) { - settings.xw -= settings.rotation; - } else { - settings.xw += settings.rotation; - } - emit xwRotationChanged(settings.xw); + if (m_keyMap[Qt::Key_M]) { + settings.xz -= settings.rotation; + emit xzRotationChanged(settings.xz); } - if (m_keyMap[Qt::Key_4]) { - if (settings.negative) { - settings.yz -= settings.rotation; - } else { - settings.yz += settings.rotation; - } + // O and N for yz rotation + if (m_keyMap[Qt::Key_O]) { + settings.yz += settings.rotation; + emit yzRotationChanged(settings.yz); + } + if (m_keyMap[Qt::Key_N]) { + settings.yz -= settings.rotation; emit yzRotationChanged(settings.yz); } - if (m_keyMap[Qt::Key_5]) { - if (settings.negative) { - settings.yw -= settings.rotation; - } else { - settings.yw += settings.rotation; - } + // W and S for x translation + if (m_keyMap[Qt::Key_W]) { + settings.xw += settings.translation; + emit xwRotationChanged(settings.xw); + } + if (m_keyMap[Qt::Key_S]) { + settings.xw -= settings.translation; + emit xwRotationChanged(settings.xw); + } + + // A and D for y translation + if (m_keyMap[Qt::Key_A]) { + settings.yw += settings.translation; + emit yzRotationChanged(settings.yw); + } + if (m_keyMap[Qt::Key_D]) { + settings.yw -= settings.translation; emit ywRotationChanged(settings.yw); } - if (m_keyMap[Qt::Key_6]) { - if (settings.negative) { - settings.zw -= settings.rotation; - } else { - settings.zw += settings.rotation; - } + // TODO: add slider for z translation + + // R & F for w translation using zw + if (m_keyMap[Qt::Key_R]) { + settings.zw += settings.translation; emit zwRotationChanged(settings.zw); } + if (m_keyMap[Qt::Key_F]) { + settings.zw -= settings.translation; + emit zwRotationChanged(settings.zw); + } + + // TODO: ONLY IF HAVE TIME, NOT NEEDED + // Space & V for vorex depth + if (m_keyMap[Qt::Key_Space]) { + settings.w += settings.rotation; + + } + if (m_keyMap[Qt::Key_V]) { + settings.w -= settings.rotation; + } } void RayTracer::keyReleaseEvent(QKeyEvent *event) { |