| 1392 | } |
| 1393 | |
| 1394 | bool SDFEditor::onKeyEvent(const KeyboardEvent& keyEvent) |
| 1395 | { |
| 1396 | mUI2D.keyboardButtonsPressed.registerCurrentStatesIntoPrevious(); |
| 1397 | |
| 1398 | if (keyEvent.type == KeyboardEvent::Type::KeyPressed) |
| 1399 | { |
| 1400 | switch (keyEvent.key) |
| 1401 | { |
| 1402 | case Input::Key::LeftControl: |
| 1403 | case Input::Key::RightControl: |
| 1404 | mUI2D.keyboardButtonsPressed.control = true; |
| 1405 | mpScene->setCameraControlsEnabled(false); |
| 1406 | return true; |
| 1407 | case Input::Key::LeftAlt: |
| 1408 | case Input::Key::RightAlt: |
| 1409 | mEditingKeyDown = true; |
| 1410 | mInstanceTransformationEdit.state = TransformationState::None; |
| 1411 | mPrimitiveTransformationEdit.state = TransformationState::None; |
| 1412 | mpScene->setCameraControlsEnabled(false); |
| 1413 | handleToggleEditing(); |
| 1414 | return true; |
| 1415 | case Input::Key::LeftShift: |
| 1416 | case Input::Key::RightShift: |
| 1417 | mUI2D.keyboardButtonsPressed.shift = true; |
| 1418 | mPrimitiveTransformationEdit.state = TransformationState::None; |
| 1419 | mpScene->setCameraControlsEnabled(false); |
| 1420 | return true; |
| 1421 | case Input::Key::Tab: |
| 1422 | mGUIKeyDown = true; |
| 1423 | mUI2D.recordStartingMousePos = true; |
| 1424 | mInstanceTransformationEdit.state = TransformationState::None; |
| 1425 | mpScene->setCameraControlsEnabled(false); |
| 1426 | return true; |
| 1427 | case Input::Key::G: |
| 1428 | mUI2D.gridPlane.active = !mUI2D.gridPlane.active; |
| 1429 | return true; |
| 1430 | case Input::Key::H: |
| 1431 | handleToggleSymmetryPlane(); |
| 1432 | return true; |
| 1433 | case Input::Key::B: |
| 1434 | mUI2D.bbRenderSettings.renderMode = (mUI2D.bbRenderSettings.renderMode + 1) % uint32_t(SDFBBRenderMode::Count); |
| 1435 | return true; |
| 1436 | case Input::Key::C: |
| 1437 | if (!mEditingKeyDown && !keyEvent.hasModifier(Input::Modifier::Ctrl) && !keyEvent.hasModifier(Input::Modifier::Shift)) |
| 1438 | { |
| 1439 | mAllowEditingOnOtherSurfaces = !mAllowEditingOnOtherSurfaces; |
| 1440 | return true; |
| 1441 | } |
| 1442 | break; |
| 1443 | case Input::Key::X: |
| 1444 | if (!mEditingKeyDown && !keyEvent.hasModifier(Input::Modifier::Ctrl) && !keyEvent.hasModifier(Input::Modifier::Shift)) |
| 1445 | { |
| 1446 | mPreviewEnabled = !mPreviewEnabled; |
| 1447 | return true; |
| 1448 | } |
| 1449 | break; |
| 1450 | case Input::Key::Z: |
| 1451 | if (keyEvent.hasModifier(Input::Modifier::Ctrl) && !mEditingKeyDown) |
nothing calls this directly
no test coverage detected