diff --git a/FinalProject/sceneviewer.cpp b/FinalProject/sceneviewer.cpp index 6d4e4ec..79f0811 100644 --- a/FinalProject/sceneviewer.cpp +++ b/FinalProject/sceneviewer.cpp @@ -477,6 +477,7 @@ void SceneViewer::keyPressEvent(QKeyEvent* event) { Logger::debug("Control pressed"); _controlPressed = true; } + if (event->modifiers() == Qt::NoModifier && _selectedObject != nullptr) { switch (event->key()) { case Qt::Key_W: { @@ -510,6 +511,40 @@ void SceneViewer::keyPressEvent(QKeyEvent* event) { } parentWidget()->update(); } + else if (event->modifiers() == Qt::NoModifier) { + // move camera + switch (event->key()) { + case Qt::Key_W: { + // move a bit forward + glm::vec3 front = _camera.front(); + _camera.push(1.0f); + _rotateCenter += front; + break; + } + case Qt::Key_S: { + // move a bit backward + glm::vec3 front = _camera.front(); + _camera.push(-1.0f); + _rotateCenter -= front; + break; + } + case Qt::Key_A: { + // move a bit left + glm::vec3 right = _camera.right(); + _camera.move(-right * 0.5f); + _rotateCenter -= right * 0.5f; + break; + } + case Qt::Key_D: { + // move a bit right + glm::vec3 right = _camera.right(); + _camera.move(right * 0.5f); + _rotateCenter += right * 0.5f; + break; + } + } + parentWidget()->update(); + } } void SceneViewer::keyReleaseEvent(QKeyEvent* event) {