Fix tablet laser when Shapes app is running

This commit is contained in:
David Rowe 2018-01-04 16:37:20 +13:00
parent 7236ac17e2
commit 6c16fcfe65

View file

@ -9,7 +9,7 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
/* global Script, MyAvatar, RIGHT_HAND, LEFT_HAND, enableDispatcherModule, disableDispatcherModule, /* global Script, MyAvatar, RIGHT_HAND, LEFT_HAND, enableDispatcherModule, disableDispatcherModule,
makeDispatcherModuleParameters, makeRunningValues, getEnabledModuleByName makeDispatcherModuleParameters, makeRunningValues, getEnabledModuleByName, makeLaserParams
*/ */
Script.include("/~/system/libraries/controllerDispatcherUtils.js"); Script.include("/~/system/libraries/controllerDispatcherUtils.js");
@ -25,9 +25,17 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
? ["rightHand", "rightHandEquip", "rightHandTrigger"] ? ["rightHand", "rightHandEquip", "rightHandTrigger"]
: ["leftHand", "leftHandEquip", "leftHandTrigger"], : ["leftHand", "leftHandEquip", "leftHandTrigger"],
[], [],
100 100,
makeLaserParams(this.hand, false)
); );
this.pointingAtTablet = function (objectID) {
if (objectID === HMD.tabletScreenID || objectID === HMD.homeButtonID) {
return true;
}
return false;
};
this.isReady = function (controllerData) { this.isReady = function (controllerData) {
if (this.disableModules) { if (this.disableModules) {
return makeRunningValues(true, [], []); return makeRunningValues(true, [], []);
@ -42,7 +50,6 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
} }
// Tablet stylus. // Tablet stylus.
// Includes the tablet laser.
var tabletStylusInput = getEnabledModuleByName(this.hand === RIGHT_HAND var tabletStylusInput = getEnabledModuleByName(this.hand === RIGHT_HAND
? "RightTabletStylusInput" ? "RightTabletStylusInput"
: "LeftTabletStylusInput"); : "LeftTabletStylusInput");
@ -53,6 +60,18 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
} }
} }
// Tablet surface.
var overlayLaser = getEnabledModuleByName(this.hand === RIGHT_HAND
? "RightWebSurfaceLaserInput"
: "LeftWebSurfaceLaserInput");
if (overlayLaser) {
var overlayLaserReady = overlayLaser.isReady(controllerData);
var target = controllerData.rayPicks[this.hand].objectID;
if (overlayLaserReady.active && this.pointingAtTablet(target)) {
return makeRunningValues(false, [], []);
}
}
// Tablet grabbing. // Tablet grabbing.
var nearOverlay = getEnabledModuleByName(this.hand === RIGHT_HAND var nearOverlay = getEnabledModuleByName(this.hand === RIGHT_HAND
? "RightNearParentingGrabOverlay" ? "RightNearParentingGrabOverlay"