From 1f4aed31f19dae5beb2938771f84f748a4675461 Mon Sep 17 00:00:00 2001 From: Dante Ruiz Date: Thu, 1 Mar 2018 16:16:47 -0800 Subject: [PATCH] adding hyperlink --- interface/src/Application.cpp | 1 + .../controllerModules/farActionGrabEntity.js | 7 ++++++- scripts/system/libraries/controllerDispatcherUtils.js | 11 +++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 34cdf3cda8..1291b4aab0 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6121,6 +6121,7 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEnginePointe scriptEngine->registerGlobalObject("Selection", DependencyManager::get().data()); scriptEngine->registerGlobalObject("ContextOverlay", DependencyManager::get().data()); scriptEngine->registerGlobalObject("Wallet", DependencyManager::get().data()); + scriptEngine->registerGlobalObject("AddressManager", DependencyManager::get().data()); qScriptRegisterMetaType(scriptEngine.data(), OverlayIDtoScriptValue, OverlayIDfromScriptValue); diff --git a/scripts/system/controllers/controllerModules/farActionGrabEntity.js b/scripts/system/controllers/controllerModules/farActionGrabEntity.js index b72a38f986..1fcf98a78e 100644 --- a/scripts/system/controllers/controllerModules/farActionGrabEntity.js +++ b/scripts/system/controllers/controllerModules/farActionGrabEntity.js @@ -449,11 +449,16 @@ Script.include("/~/system/libraries/Xform.js"); if (rayPickInfo.type === Picks.INTERSECTED_ENTITY) { if (controllerData.triggerClicks[this.hand]) { var entityID = rayPickInfo.objectID; + var targetProps = Entities.getEntityProperties(entityID, [ "dynamic", "shapeType", "position", "rotation", "dimensions", "density", - "userData", "locked", "type" + "userData", "locked", "type", "href" ]); + if (targetProps.href !== "") { + AddressManager.handleLookupString(targetProps.href); + return makeRunningValues(false, [], []); + } this.targetObject = new TargetObject(entityID, targetProps); this.targetObject.parentProps = getEntityParents(targetProps); diff --git a/scripts/system/libraries/controllerDispatcherUtils.js b/scripts/system/libraries/controllerDispatcherUtils.js index 915cfc05fb..96d9e919da 100644 --- a/scripts/system/libraries/controllerDispatcherUtils.js +++ b/scripts/system/libraries/controllerDispatcherUtils.js @@ -233,6 +233,16 @@ entityIsDistanceGrabbable = function(props) { return true; }; +entityHasHyperlink = function(entityID) { + var hasHyperlink = false; + var desiredProperties = ["href"]; + var entityProperties = Entities.getEntityProperties(entityID, desiredProperties); + print(entityProperties.href); + if (entityProperties.href !== "") { + hasHyperlink = true; + } + return hasHyperlink; +} getControllerJointIndex = function (hand) { if (HMD.isHandControllerAvailable()) { @@ -398,6 +408,7 @@ if (typeof module !== 'undefined') { entityIsGrabbable: entityIsGrabbable, NEAR_GRAB_RADIUS: NEAR_GRAB_RADIUS, projectOntoOverlayXYPlane: projectOntoOverlayXYPlane, + entityHasHyperlink: entityHasHyperlink, projectOntoEntityXYPlane: projectOntoEntityXYPlane, TRIGGER_OFF_VALUE: TRIGGER_OFF_VALUE, TRIGGER_ON_VALUE: TRIGGER_ON_VALUE