[UI][ADD] Camera wasd move

This commit is contained in:
Linloir 2022-12-20 01:05:05 +08:00
parent 7eccb8e98b
commit 1e92f8922d
No known key found for this signature in database
GPG Key ID: 58EEB209A0F2C366

View File

@ -477,6 +477,7 @@ void SceneViewer::keyPressEvent(QKeyEvent* event) {
Logger::debug("Control pressed"); Logger::debug("Control pressed");
_controlPressed = true; _controlPressed = true;
} }
if (event->modifiers() == Qt::NoModifier && _selectedObject != nullptr) { if (event->modifiers() == Qt::NoModifier && _selectedObject != nullptr) {
switch (event->key()) { switch (event->key()) {
case Qt::Key_W: { case Qt::Key_W: {
@ -510,6 +511,40 @@ void SceneViewer::keyPressEvent(QKeyEvent* event) {
} }
parentWidget()->update(); 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) { void SceneViewer::keyReleaseEvent(QKeyEvent* event) {