mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 19:16:56 +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
|
// shutdown graphics engine
|
||||||
_graphicsEngine.shutdown();
|
_graphicsEngine.shutdown();
|
||||||
|
|
||||||
_gameWorkload.shutdown();
|
_gameWorkload.shutdown();
|
||||||
|
|
||||||
DependencyManager::destroy<Preferences>();
|
DependencyManager::destroy<Preferences>();
|
||||||
|
@ -8678,7 +8678,7 @@ void Application::updateLoginDialogOverlayPosition() {
|
||||||
auto overlayPositionVec = loginOverlay->getWorldPosition();
|
auto overlayPositionVec = loginOverlay->getWorldPosition();
|
||||||
auto cameraPositionVec = _myCamera.getPosition();
|
auto cameraPositionVec = _myCamera.getPosition();
|
||||||
auto cameraOrientation = _myCamera.getOrientation();
|
auto cameraOrientation = _myCamera.getOrientation();
|
||||||
cameraOrientation = cancelOutRoll(cameraOrientation);
|
cameraOrientation = cancelOutRollAndPitch(cameraOrientation);
|
||||||
auto headLookVec = (cameraOrientation * Vectors::FRONT);
|
auto headLookVec = (cameraOrientation * Vectors::FRONT);
|
||||||
auto overlayToHeadVec = overlayPositionVec - cameraPositionVec;
|
auto overlayToHeadVec = overlayPositionVec - cameraPositionVec;
|
||||||
auto pointAngle = (glm::acos(glm::dot(glm::normalize(overlayToHeadVec), glm::normalize(headLookVec))) * 180.0f / PI);
|
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 newOverlayPositionVec = (cameraPositionVec + offset) + (upVec * -0.1f);
|
||||||
auto newOverlayOrientation = glm::inverse(glm::quat_cast(glm::lookAt(newOverlayPositionVec, cameraPositionVec, upVec))) * Quaternions::Y_180;
|
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 {
|
QVariantMap properties {
|
||||||
{"position", vec3toVariant(newOverlayPositionVec)},
|
{"position", vec3toVariant(newOverlayPositionVec)},
|
||||||
{"orientation", quatToVariant(newOverlayOrientation)}
|
{"orientation", quatToVariant(newOverlayOrientation)}
|
||||||
|
|
Loading…
Reference in a new issue