From efe202b7e82b018b2885c14d6f348fe8a05633ba Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Sat, 22 Nov 2014 21:25:43 -0800 Subject: [PATCH] make a version of computePick that works off of view frustum even when in HMD mode, updates to lobby --- examples/lobby.js | 21 ++++++++++++--------- interface/src/Camera.cpp | 6 ++++++ interface/src/Camera.h | 1 + 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/examples/lobby.js b/examples/lobby.js index 8c1b8de708..79c79c7199 100644 --- a/examples/lobby.js +++ b/examples/lobby.js @@ -329,7 +329,9 @@ function handleLookAt(pickRay) { } } formatedDescription += currentGoodLine; - Overlays.editOverlay(descriptionText, { text: formatedDescription }); + Overlays.editOverlay(descriptionText, { text: formatedDescription, visible: true }); + } else { + Overlays.editOverlay(descriptionText, { text: "", visible: false }); } } } @@ -348,8 +350,7 @@ function update(deltaTime) { var nowDate = new Date(); var now = nowDate.getTime(); if (now - lastMouseMove > IDLE_HOVER_TIME) { - var windowDimensions = Controller.getViewportDimensions(); - var pickRay = Camera.computePickRay(windowDimensions.x / 2, windowDimensions.y / 2); + var pickRay = Camera.computeViewPickRay(0.5, 0.5); handleLookAt(pickRay); } @@ -363,14 +364,16 @@ function update(deltaTime) { } function mouseMoveEvent(event) { - var nowDate = new Date(); - lastMouseMove = nowDate.getTime(); - var pickRay = Camera.computePickRay(event.x, event.y); - handleLookAt(pickRay); + if (panelWall) { + var nowDate = new Date(); + lastMouseMove = nowDate.getTime(); + var pickRay = Camera.computePickRay(event.x, event.y); + handleLookAt(pickRay); + } } -Controller.mouseMoveEvent.connect(mouseMoveEvent); Controller.actionStartEvent.connect(actionStartEvent); Controller.backStartEvent.connect(backStartEvent); Script.update.connect(update); -Script.scriptEnding.connect(maybeCleanupLobby); \ No newline at end of file +Script.scriptEnding.connect(maybeCleanupLobby); +Controller.mouseMoveEvent.connect(mouseMoveEvent); diff --git a/interface/src/Camera.cpp b/interface/src/Camera.cpp index 121833bd16..6e5a83790e 100644 --- a/interface/src/Camera.cpp +++ b/interface/src/Camera.cpp @@ -108,6 +108,12 @@ PickRay Camera::computePickRay(float x, float y) { return result; } +PickRay Camera::computeViewPickRay(float xRatio, float yRatio) { + PickRay result; + Application::getInstance()->getViewFrustum()->computePickRay(xRatio, yRatio, result.origin, result.direction); + return result; +} + void Camera::setModeString(const QString& mode) { CameraMode targetMode = stringToMode(mode); diff --git a/interface/src/Camera.h b/interface/src/Camera.h index 06db3dc3ef..7fcf9404cd 100644 --- a/interface/src/Camera.h +++ b/interface/src/Camera.h @@ -79,6 +79,7 @@ public slots: glm::quat getOrientation() const { return getRotation(); } PickRay computePickRay(float x, float y); + PickRay computeViewPickRay(float xRatio, float yRatio); signals: void modeUpdated(const QString& newMode);