make changes requests and slight fixes

This commit is contained in:
druiz17 2017-09-20 11:41:31 -07:00
parent 9c66a25d83
commit 5d87036f32
2 changed files with 48 additions and 33 deletions

View file

@ -16,7 +16,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
Script.include("/~/system/libraries/controllers.js");
(function() {
var touchEvent = Script.require("/~/system/libraries/touchEventUtils.js");
var TouchEventUtils = Script.require("/~/system/libraries/touchEventUtils.js");
var halfPath = {
type: "line3d",
color: COLORS_GRAB_SEARCHING_HALF_SQUEEZE,
@ -131,7 +131,7 @@ Script.include("/~/system/libraries/controllers.js");
if (laserTarget.overlayID &&
laserTarget.overlayID !== this.hoverOverlay) {
this.hoverOverlay = laserTarget.overlayID;
touchEvent.sendHoverEnterEventToTouchTarget(this.hand, laserTarget);
TouchEventUtils.sendHoverEnterEventToTouchTarget(this.hand, laserTarget);
}
};
@ -146,11 +146,27 @@ Script.include("/~/system/libraries/controllers.js");
}
};
this.relinquishStylusTargetTouchFocus = function(laserTarget) {
var stylusModuleNames = ["LeftTabletStylusInput", "RightTabletStylusError"];
for (var i = 0; i < stylusModuleNames.length; i++) {
var stylusModule = getEnabledModuleByName(stylusModuleNames[i]);
if (stylusModule) {
if (stylusModule.hoverOverlay === laserTarget.overlayID) {
stylusModule.relinquishTouchFocus();
}
}
}
};
this.stealTouchFocus = function(laserTarget) {
if (laserTarget.overlayID === this.getOtherModule().hoverOverlay) {
this.getOtherModule().relinquishTouchFocus();
}
// If the focus target we want to request is the same of one of the stylus
// tell the stylus to relinquish it focus on out target
this.relinquishStylusTargetTouchFocus(laserTarget);
this.requestTouchFocus(laserTarget);
};
@ -182,7 +198,7 @@ Script.include("/~/system/libraries/controllers.js");
this.laserPressEnter = function () {
this.stealTouchFocus(this.laserTarget);
touchEvent.sendTouchStartEventToTouchTarget(this.hand, this.laserTarget);
TouchEventUtils.sendTouchStartEventToTouchTarget(this.hand, this.laserTarget);
Controller.triggerHapticPulse(HAPTIC_STYLUS_STRENGTH, HAPTIC_STYLUS_DURATION, this.hand);
this.touchingEnterTimer = 0;
@ -205,9 +221,9 @@ Script.include("/~/system/libraries/controllers.js");
// send press event
if (this.deadspotExpired) {
touchEvent.sendTouchEndEventToTouchTarget(this.hand, this.laserTarget);
TouchEventUtils.sendTouchEndEventToTouchTarget(this.hand, this.laserTarget);
} else {
touchEvent.sendTouchEndEventToTouchTarget(this.hand, this.pressEnterLaserTarget);
TouchEventUtils.sendTouchEndEventToTouchTarget(this.hand, this.pressEnterLaserTarget);
}
};
@ -219,8 +235,8 @@ Script.include("/~/system/libraries/controllers.js");
var POINTER_PRESS_TO_MOVE_DELAY = 0.33; // seconds
if (this.deadspotExpired || this.touchingEnterTimer > POINTER_PRESS_TO_MOVE_DELAY ||
distance2D(this.laserTarget.position2D,
this.pressEnterLaserTarget.position2D) > this.deadspotRadius) {
touchEvent.sendTouchMoveEventToTouchTarget(this.hand, this.laserTarget);
this.pressEnterLaserTarget.position2D) > this.deadspotRadius) {
TouchEventUtils.sendTouchMoveEventToTouchTarget(this.hand, this.laserTarget);
this.deadspotExpired = true;
}
} else {
@ -237,7 +253,7 @@ Script.include("/~/system/libraries/controllers.js");
return false;
}
var intersection = controllerData.rayPicks[this.hand];
var laserTarget = touchEvent.composeTouchTargetFromIntersection(intersection);
var laserTarget = TouchEventUtils.composeTouchTargetFromIntersection(intersection);
if (controllerData.triggerClicks[this.hand]) {
this.laserTarget = laserTarget;
@ -245,12 +261,12 @@ Script.include("/~/system/libraries/controllers.js");
} else {
this.requestTouchFocus(laserTarget);
if (!touchEvent.touchTargetHasKeyboardFocus(laserTarget)) {
touchEvent.setKeyboardFocusOnTouchTarget(laserTarget);
if (!TouchEventUtils.touchTargetHasKeyboardFocus(laserTarget)) {
TouchEventUtils.setKeyboardFocusOnTouchTarget(laserTarget);
}
if (this.hasTouchFocus(laserTarget) && !this.laserPressingTarget) {
touchEvent.sendHoverOverEventToTouchTarget(this.hand, laserTarget);
TouchEventUtils.sendHoverOverEventToTouchTarget(this.hand, laserTarget);
}
}

View file

@ -16,7 +16,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
Script.include("/~/system/libraries/controllers.js");
(function() {
var touchEvent = Script.require("/~/system/libraries/touchEventUtils.js");
var TouchEventUtils = Script.require("/~/system/libraries/touchEventUtils.js");
// triggered when stylus presses a web overlay/entity
var HAPTIC_STYLUS_STRENGTH = 1.0;
var HAPTIC_STYLUS_DURATION = 20.0;
@ -206,12 +206,12 @@ Script.include("/~/system/libraries/controllers.js");
stylusTarget.entityID !== this.hoverEntity &&
stylusTarget.entityID !== this.getOtherHandController().hoverEntity) {
this.hoverEntity = stylusTarget.entityID;
touchEvent.sendHoverEnterEventToTouchTarget(this.hand, stylusTarget);
TouchEventUtils.sendHoverEnterEventToTouchTarget(this.hand, stylusTarget);
} else if (stylusTarget.overlayID &&
stylusTarget.overlayID !== this.hoverOverlay &&
stylusTarget.overlayID !== this.getOtherHandController().hoverOverlay) {
this.hoverOverlay = stylusTarget.overlayID;
touchEvent.sendHoverEnterEventToTouchTarget(this.hand, stylusTarget);
TouchEventUtils.sendHoverEnterEventToTouchTarget(this.hand, stylusTarget);
}
};
@ -268,7 +268,7 @@ Script.include("/~/system/libraries/controllers.js");
for (i = 0; i < candidateEntities.length; i++) {
props = candidateEntities[i];
if (props && props.type === "Web") {
stylusTarget = touchEvent.calculateTouchTargetFromEntity(this.stylusTip, candidateEntities[i]);
stylusTarget = TouchEventUtils.calculateTouchTargetFromEntity(this.stylusTip, candidateEntities[i]);
if (stylusTarget) {
stylusTargets.push(stylusTarget);
}
@ -278,7 +278,7 @@ Script.include("/~/system/libraries/controllers.js");
// add the tabletScreen, if it is valid
if (HMD.tabletScreenID && HMD.tabletScreenID !== NULL_UUID &&
Overlays.getProperty(HMD.tabletScreenID, "visible")) {
stylusTarget = touchEvent.calculateTouchTargetFromOverlay(this.stylusTip, HMD.tabletScreenID);
stylusTarget = TouchEventUtils.calculateTouchTargetFromOverlay(this.stylusTip, HMD.tabletScreenID);
if (stylusTarget) {
stylusTargets.push(stylusTarget);
}
@ -287,7 +287,7 @@ Script.include("/~/system/libraries/controllers.js");
// add the tablet home button.
if (HMD.homeButtonID && HMD.homeButtonID !== NULL_UUID &&
Overlays.getProperty(HMD.homeButtonID, "visible")) {
stylusTarget = touchEvent.calculateTouchTargetFromOverlay(this.stylusTip, HMD.homeButtonID);
stylusTarget = TouchEventUtils.calculateTouchTargetFromOverlay(this.stylusTip, HMD.homeButtonID);
if (stylusTarget) {
stylusTargets.push(stylusTarget);
}
@ -332,12 +332,12 @@ Script.include("/~/system/libraries/controllers.js");
this.requestTouchFocus(nearestStylusTarget);
if (!touchEvent.touchTargetHasKeyboardFocus(nearestStylusTarget)) {
touchEvent.setKeyboardFocusOnTouchTarget(nearestStylusTarget);
if (!TouchEventUtils.touchTargetHasKeyboardFocus(nearestStylusTarget)) {
TouchEventUtils.setKeyboardFocusOnTouchTarget(nearestStylusTarget);
}
if (this.hasTouchFocus(nearestStylusTarget) && !this.stylusTouchingTarget) {
touchEvent.sendHoverOverEventToTouchTarget(this.hand, nearestStylusTarget);
TouchEventUtils.sendHoverOverEventToTouchTarget(this.hand, nearestStylusTarget);
}
// filter out presses when tip is moving away from tablet.
@ -368,7 +368,7 @@ Script.include("/~/system/libraries/controllers.js");
this.stylusTouchingEnter = function () {
this.stealTouchFocus(this.stylusTarget);
touchEvent.sendTouchStartEventToTouchTarget(this.hand, this.stylusTarget);
TouchEventUtils.sendTouchStartEventToTouchTarget(this.hand, this.stylusTarget);
Controller.triggerHapticPulse(HAPTIC_STYLUS_STRENGTH, HAPTIC_STYLUS_DURATION, this.hand);
this.touchingEnterTimer = 0;
@ -392,9 +392,9 @@ Script.include("/~/system/libraries/controllers.js");
// send press event
if (this.deadspotExpired) {
touchEvent.sendTouchEndEventToTouchTarget(this.hand, this.stylusTarget);
TouchEventUtils.sendTouchEndEventToTouchTarget(this.hand, this.stylusTarget);
} else {
touchEvent.sendTouchEndEventToTouchTarget(this.hand, this.touchingEnterStylusTarget);
TouchEventUtils.sendTouchEndEventToTouchTarget(this.hand, this.touchingEnterStylusTarget);
}
};
@ -403,9 +403,9 @@ Script.include("/~/system/libraries/controllers.js");
this.touchingEnterTimer += dt;
if (this.stylusTarget.entityID) {
this.stylusTarget = touchEvent.calculateTouchTargetFromEntity(this.stylusTip, this.stylusTarget.entityProps);
this.stylusTarget = TouchEventUtils.calculateTouchTargetFromEntity(this.stylusTip, this.stylusTarget.entityProps);
} else if (this.stylusTarget.overlayID) {
this.stylusTarget = touchEvent.calculateTouchTargetFromOverlay(this.stylusTip, this.stylusTarget.overlayID);
this.stylusTarget = TouchEventUtils.calculateTouchTargetFromOverlay(this.stylusTip, this.stylusTarget.overlayID);
}
var TABLET_MIN_TOUCH_DISTANCE = -0.1;
@ -418,7 +418,7 @@ Script.include("/~/system/libraries/controllers.js");
if (this.deadspotExpired || this.touchingEnterTimer > POINTER_PRESS_TO_MOVE_DELAY ||
distance2D(this.stylusTarget.position2D,
this.touchingEnterStylusTarget.position2D) > this.deadspotRadius) {
touchEvent.sendTouchMoveEventToTouchTarget(this.hand, this.stylusTarget);
TouchEventUtils.sendTouchMoveEventToTouchTarget(this.hand, this.stylusTarget);
this.deadspotExpired = true;
}
} else {
@ -430,12 +430,11 @@ Script.include("/~/system/libraries/controllers.js");
};
this.overlayLaserActive = function(controllerData) {
var overlayLaserModule =
getEnabledModuleByName(this.hand === RIGHT_HAND ? "RightOverlayLaserInput" : "LeftOverlayLaserInput");
if (overlayLaserModule) {
return !overlayLaserModule.shouldExit(controllerData);
}
return false;
var rightOverlayLaserModule = getEnabledModuleByName("RightOverlayLaserInput");
var leftOverlayLaserModule = getEnabledModuleByName("LeftOverlayLaserInput");
var rightModuleRunning = rightOverlayLaserModule ? !rightOverlayLaserModule.shouldExit(controllerData) : false;
var leftModuleRunning = leftOverlayLaserModule ? !leftOverlayLaserModule.shouldExit(controllerData) : false;
return leftModuleRunning || rightModuleRunning;
};
this.isReady = function (controllerData) {