mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:24:00 +02:00
cancel pitch and check if overlay too far/close
This commit is contained in:
parent
23d3b96446
commit
9fd1b7fb2d
1 changed files with 5 additions and 3 deletions
|
@ -2639,7 +2639,7 @@ Application::~Application() {
|
|||
|
||||
// shutdown graphics engine
|
||||
_graphicsEngine.shutdown();
|
||||
|
||||
|
||||
_gameWorkload.shutdown();
|
||||
|
||||
DependencyManager::destroy<Preferences>();
|
||||
|
@ -8678,7 +8678,7 @@ void Application::updateLoginDialogOverlayPosition() {
|
|||
auto overlayPositionVec = loginOverlay->getWorldPosition();
|
||||
auto cameraPositionVec = _myCamera.getPosition();
|
||||
auto cameraOrientation = _myCamera.getOrientation();
|
||||
cameraOrientation = cancelOutRoll(cameraOrientation);
|
||||
cameraOrientation = cancelOutRollAndPitch(cameraOrientation);
|
||||
auto headLookVec = (cameraOrientation * Vectors::FRONT);
|
||||
auto overlayToHeadVec = overlayPositionVec - cameraPositionVec;
|
||||
auto pointAngle = (glm::acos(glm::dot(glm::normalize(overlayToHeadVec), glm::normalize(headLookVec))) * 180.0f / PI);
|
||||
|
@ -8687,7 +8687,9 @@ void Application::updateLoginDialogOverlayPosition() {
|
|||
auto newOverlayPositionVec = (cameraPositionVec + offset) + (upVec * -0.1f);
|
||||
auto newOverlayOrientation = glm::inverse(glm::quat_cast(glm::lookAt(newOverlayPositionVec, cameraPositionVec, upVec))) * Quaternions::Y_180;
|
||||
|
||||
if (pointAngle > LOOK_AWAY_THRESHOLD_ANGLE) {
|
||||
bool overlayOutOfBounds = glm::distance(overlayPositionVec, cameraPositionVec) > 0.5f;
|
||||
|
||||
if (pointAngle > LOOK_AWAY_THRESHOLD_ANGLE || overlayOutOfBounds) {
|
||||
QVariantMap properties {
|
||||
{"position", vec3toVariant(newOverlayPositionVec)},
|
||||
{"orientation", quatToVariant(newOverlayOrientation)}
|
||||
|
|
Loading…
Reference in a new issue