[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");
_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) {