From f44025a8b1687ae727459a5578d75b24186db9e1 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Tue, 31 Oct 2017 15:57:57 -0700 Subject: [PATCH] completely removed non-need laserPointers --- .../controllers/controllerDispatcher.js | 52 ++++++-- .../controllerModules/hudOverlayPointer.js | 120 +----------------- .../controllerModules/webEntityLaserInput.js | 3 +- .../system/controllers/controllerScripts.js | 2 +- 4 files changed, 43 insertions(+), 134 deletions(-) diff --git a/scripts/system/controllers/controllerDispatcher.js b/scripts/system/controllers/controllerDispatcher.js index 1773e013e1..6f68edad07 100644 --- a/scripts/system/controllers/controllerDispatcher.js +++ b/scripts/system/controllers/controllerDispatcher.js @@ -128,8 +128,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); mouse: false }; - this.laserVisibleStatus = [false, false]; - this.laserLockStatus = [false, false]; + this.laserVisibleStatus = [false, false, false, false]; + this.laserLockStatus = [false, false, false, false]; this.slotsAreAvailableForPlugin = function (plugin) { for (var i = 0; i < plugin.parameters.activitySlots.length; i++) { @@ -256,6 +256,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); this.updateRenderStateForVisibleLasers = function() { // update left hand laser + + var HUD_LASER_OFFSET = 2; if (_this.laserVisibleStatus[LEFT_HAND]) { var laserLocked = _this.laserLockStatus[LEFT_HAND]; _this.updateLaserRenderState(_this.leftControllerPointer,_this.leftTriggerClicked, laserLocked); @@ -270,6 +272,18 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); } else { Pointers.setRenderState(_this.rightControllerPointer, ""); } + + if (_this.laserVisibleStatus[LEFT_HAND + HUD_LASER_OFFSET]) { + _this.updateLaserRenderState(_this.leftControllerHudRayPick, _this.leftTriggerClicked, false); + } else { + Pointers.setRenderState(_this.leftControllerHudRayPick, ""); + } + + if (_this.laserVisibleStatus[RIGHT_HAND + HUD_LASER_OFFSET]) { + _this.updateLaserRenderState(_this.rightControllerHudRayPick, _this.rightTriggerClicked, false); + } else { + Pointers.setRenderState(_this.rightControllerHudRayPick, ""); + } }; this.updateLaserRenderState = function(laser, triggerClicked, laserLocked) { @@ -375,8 +389,8 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); Pointers.getPrevPickResult(_this.rightControllerPointer) ]; var hudRayPicks = [ - RayPick.getPrevRayPickResult(_this.leftControllerHudRayPick), - RayPick.getPrevRayPickResult(_this.rightControllerHudRayPick) + Pointers.getPrevPickResult(_this.leftControllerHudRayPick), + Pointers.getPrevPickResult(_this.rightControllerHudRayPick) ]; var mouseRayPick = RayPick.getPrevRayPickResult(_this.mouseRayPick); // if the pickray hit something very nearby, put it into the nearby entities list @@ -538,12 +552,15 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true), hover: true }); - this.leftControllerHudRayPick = RayPick.createRayPick({ + this.leftControllerHudRayPick = Pointers.createPointer(PickType.Ray, { joint: "_CONTROLLER_LEFTHAND", filter: Picks.PICK_HUD, - enabled: true, maxDistance: DEFAULT_SEARCH_SPHERE_DISTANCE, - posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true) + renderStates: renderStates, + defaultRenderStates: defaultRenderStates, + posOffset: getGrabPointSphereOffset(Controller.Standard.LeftHand, true), + triggers: [{action: Controller.Standard.LTClick, button: "Focus"}, {action: Controller.Standard.LTClick, button: "Primary"}], + hover: true }); this.rightControllerPointer = Pointers.createPointer(PickType.Ray, { joint: "_CAMERA_RELATIVE_CONTROLLER_RIGHTHAND", @@ -554,12 +571,15 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true), hover: true }); - this.rightControllerHudRayPick = RayPick.createRayPick({ + this.rightControllerHudRayPick = Pointers.createPointer(PickType.Ray, { joint: "_CONTROLLER_RIGHTHAND", filter: Picks.PICK_HUD, - enabled: true, maxDistance: DEFAULT_SEARCH_SPHERE_DISTANCE, - posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true) + renderStates: renderStates, + defaultRenderStates: defaultRenderStates, + posOffset: getGrabPointSphereOffset(Controller.Standard.RightHand, true), + triggers: [{action: Controller.Standard.RTClick, button: "Focus"}, {action: Controller.Standard.RTClick, button: "Primary"}], + hover: true }); this.mouseRayPick = RayPick.createRayPick({ joint: "Mouse", @@ -568,9 +588,13 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); }); Pointers.setRenderState(this.leftControllerPointer, ""); + Pointers.setRenderState(this.leftControllerHudRayPick, ""); Pointers.setRenderState(this.rightControllerPointer, ""); + Pointers.setRenderState(this.rightControllerHudRayPick, ""); Pointers.enablePointer(this.leftControllerPointer); + Pointers.enablePointer(this.leftControllerHudRayPick); Pointers.enablePointer(this.rightControllerPointer); + Pointers.enablePointer(this.rightControllerHudRayPick); this.handleHandMessage = function(channel, message, sender) { var data; @@ -604,10 +628,10 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js"); this.cleanup = function () { Script.update.disconnect(_this.update); Controller.disableMapping(MAPPING_NAME); - RayPick.removeRayPick(_this.leftControllerRayPick); - RayPick.removeRayPick(_this.rightControllerRayPick); - RayPick.removeRayPick(_this.rightControllerHudRayPick); - RayPick.removeRayPick(_this.leftControllerHudRayPick); + Pointers.removePointer(_this.leftControllerPointer); + Pointers.removePointer(_this.rightControllerPointer); + Pointers.removePointer(_this.rightControllerHudRayPick); + Pointers.removePointer(_this.leftControllerHudRayPick); }; } diff --git a/scripts/system/controllers/controllerModules/hudOverlayPointer.js b/scripts/system/controllers/controllerModules/hudOverlayPointer.js index 191f7ed86f..b276bde027 100644 --- a/scripts/system/controllers/controllerModules/hudOverlayPointer.js +++ b/scripts/system/controllers/controllerModules/hudOverlayPointer.js @@ -22,79 +22,8 @@ (function() { Script.include("/~/system/libraries/controllers.js"); var ControllerDispatcherUtils = Script.require("/~/system/libraries/controllerDispatcherUtils.js"); - var END_RADIUS = 0.005; - var dim = { x: END_RADIUS, y: END_RADIUS, z: END_RADIUS }; - var halfPath = { - type: "line3d", - color: COLORS_GRAB_SEARCHING_HALF_SQUEEZE, - visible: true, - alpha: 1, - solid: true, - glow: 1.0, - lineWidth: 5, - ignoreRayIntersection: true, // always ignore this - drawHUDLayer: true, - parentID: MyAvatar.SELF_ID - }; - var halfEnd = { - type: "sphere", - dimensions: dim, - solid: true, - color: COLORS_GRAB_SEARCHING_HALF_SQUEEZE, - alpha: 0.9, - ignoreRayIntersection: true, - drawHUDLayer: true, - visible: true - }; - var fullPath = { - type: "line3d", - color: COLORS_GRAB_SEARCHING_FULL_SQUEEZE, - visible: true, - alpha: 1, - solid: true, - glow: 1.0, - lineWidth: 5, - ignoreRayIntersection: true, // always ignore this - drawHUDLayer: true, - parentID: MyAvatar.SELF_ID - }; - var fullEnd = { - type: "sphere", - dimensions: dim, - solid: true, - color: COLORS_GRAB_SEARCHING_FULL_SQUEEZE, - alpha: 0.9, - ignoreRayIntersection: true, - drawHUDLayer: true, - visible: true - }; - var holdPath = { - type: "line3d", - color: COLORS_GRAB_DISTANCE_HOLD, - visible: true, - alpha: 1, - solid: true, - glow: 1.0, - lineWidth: 5, - ignoreRayIntersection: true, // always ignore this - drawHUDLayer: true, - parentID: MyAvatar.SELF_ID - }; - - var renderStates = [ - {name: "half", path: halfPath, end: halfEnd}, - {name: "full", path: fullPath, end: fullEnd}, - {name: "hold", path: holdPath} - ]; - - var defaultRenderStates = [ - {name: "half", distance: DEFAULT_SEARCH_SPHERE_DISTANCE, path: halfPath}, - {name: "full", distance: DEFAULT_SEARCH_SPHERE_DISTANCE, path: fullPath}, - {name: "hold", distance: DEFAULT_SEARCH_SPHERE_DISTANCE, path: holdPath} - ]; - var MARGIN = 25; - + var HUD_LASER_OFFSET = 2; function HudOverlayPointer(hand) { var _this = this; this.hand = hand; @@ -102,14 +31,12 @@ this.reticleMaxX; this.reticleMinY = MARGIN; this.reticleMaxY; - this.clicked = false; - this.triggerClicked = 0; - this.movedAway = false; this.parameters = ControllerDispatcherUtils.makeDispatcherModuleParameters( 540, this.hand === RIGHT_HAND ? ["rightHand"] : ["leftHand"], [], - 100); + 100, + (this.hand + HUD_LASER_OFFSET)); this.getOtherHandController = function() { return (this.hand === RIGHT_HAND) ? Controller.Standard.LeftHand : Controller.Standard.RightHand; @@ -129,22 +56,6 @@ this.reticleMaxY = dims.y - MARGIN; }; - this.updateLaserPointer = function(controllerData) { - LaserPointers.enableLaserPointer(this.laserPointer); - LaserPointers.setRenderState(this.laserPointer, this.mode); - }; - - this.processControllerTriggers = function(controllerData) { - if (controllerData.triggerClicks[this.hand]) { - this.mode = "full"; - } else if (controllerData.triggerValues[this.hand] > TRIGGER_ON_VALUE) { - this.clicked = false; - this.mode = "half"; - } else { - this.mode = "none"; - } - }; - this.calculateNewReticlePosition = function(intersection) { this.updateRecommendedArea(); var point2d = HMD.overlayFromWorldPoint(intersection); @@ -166,28 +77,18 @@ var controllerLocation = controllerData.controllerLocations[this.hand]; if ((controllerData.triggerValues[this.hand] < ControllerDispatcherUtils.TRIGGER_ON_VALUE || !controllerLocation.valid) || this.pointingAtTablet(controllerData)) { - this.exitModule(); return false; } var hudRayPick = controllerData.hudRayPicks[this.hand]; var point2d = this.calculateNewReticlePosition(hudRayPick.intersection); if (!Window.isPointOnDesktopWindow(point2d) && !this.triggerClicked) { - this.exitModule(); return false; } - this.setReticlePosition(point2d); Reticle.visible = false; - this.movedAway = false; this.triggerClicked = controllerData.triggerClicks[this.hand]; - this.processControllerTriggers(controllerData); - this.updateLaserPointer(controllerData); return true; }; - this.exitModule = function() { - LaserPointers.disableLaserPointer(this.laserPointer); - }; - this.isReady = function (controllerData) { if (this.processLaser(controllerData)) { return ControllerDispatcherUtils.makeRunningValues(true, [], []); @@ -199,21 +100,6 @@ this.run = function (controllerData, deltaTime) { return this.isReady(controllerData); }; - - this.cleanup = function () { - LaserPointers.disableLaserPointer(this.laserPointer); - LaserPointers.removeLaserPointer(this.laserPointer); - }; - - this.laserPointer = LaserPointers.createLaserPointer({ - joint: (this.hand === RIGHT_HAND) ? "_CONTROLLER_RIGHTHAND" : "_CONTROLLER_LEFTHAND", - filter: Picks.PICK_HUD, - maxDistance: PICK_MAX_DISTANCE, - posOffset: getGrabPointSphereOffset(this.handToController(), true), - renderStates: renderStates, - enabled: true, - defaultRenderStates: defaultRenderStates - }); } diff --git a/scripts/system/controllers/controllerModules/webEntityLaserInput.js b/scripts/system/controllers/controllerModules/webEntityLaserInput.js index 1bd683856e..20bd272542 100644 --- a/scripts/system/controllers/controllerModules/webEntityLaserInput.js +++ b/scripts/system/controllers/controllerModules/webEntityLaserInput.js @@ -37,8 +37,7 @@ Script.include("/~/system/libraries/controllers.js"); }; this.isReady = function(controllerData) { - var otherModule = this.getOtherModule(); - if (this.isPointingAtWebEntity(controllerData) && !otherModule.active) { + if (this.isPointingAtWebEntity(controllerData)) { return makeRunningValues(true, [], []); } return makeRunningValues(false, [], []); diff --git a/scripts/system/controllers/controllerScripts.js b/scripts/system/controllers/controllerScripts.js index 83576bd9a4..09602b33eb 100644 --- a/scripts/system/controllers/controllerScripts.js +++ b/scripts/system/controllers/controllerScripts.js @@ -19,7 +19,7 @@ var CONTOLLER_SCRIPTS = [ "controllerModules/nearParentGrabOverlay.js", "controllerModules/nearActionGrabEntity.js", "controllerModules/farActionGrabEntity.js", - "controllerModules/tabletStylusInput.js", + //"controllerModules/tabletStylusInput.js", "controllerModules/equipEntity.js", "controllerModules/nearTrigger.js", "controllerModules/overlayLaserInput.js",