From 6572400d068f67552f7bc83debcc2faaed3b53e7 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Mon, 22 Oct 2018 15:03:09 -0700 Subject: [PATCH] fix highlight debug script --- .../utilities/render/debugHighlight.js | 55 +++++++++++++------ 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/scripts/developer/utilities/render/debugHighlight.js b/scripts/developer/utilities/render/debugHighlight.js index 664af836a9..3b171aaaa7 100644 --- a/scripts/developer/utilities/render/debugHighlight.js +++ b/scripts/developer/utilities/render/debugHighlight.js @@ -86,22 +86,23 @@ type: "sphere", dimensions: END_DIMENSIONS, color: COLOR1, - ignoreRayIntersection: true + ignorePickIntersection: true } var end2 = { type: "sphere", dimensions: END_DIMENSIONS, color: COLOR2, - ignoreRayIntersection: true + ignorePickIntersection: true } var laser = Pointers.createPointer(PickType.Ray, { joint: "Mouse", - filter: Picks.PICK_ENTITIES, + filter: Picks.PICK_ENTITIES | Picks.PICK_OVERLAYS | Picks.PICK_AVATARS, renderStates: [{name: "one", end: end1}], defaultRenderStates: [{name: "one", end: end2, distance: 2.0}], enabled: true }); Pointers.setRenderState(laser, "one"); + var hoveredObject = undefined; var HoveringList = "Hovering" var hoveringStyle = { @@ -140,21 +141,41 @@ time = 0 } } - - Entities.hoverEnterEntity.connect(function (id, event) { - // print("hoverEnterEntity"); - if (isSelectionEnabled) Selection.addToSelectedItemsList(HoveringList, "entity", id) - }) - - Entities.hoverOverEntity.connect(function (id, event) { - // print("hoverOverEntity"); - }) - - Entities.hoverLeaveEntity.connect(function (id, event) { - if (isSelectionEnabled) Selection.removeFromSelectedItemsList(HoveringList, "entity", id) - // print("hoverLeaveEntity"); - }) + function getIntersectionTypeString(type) { + if (type === Picks.INTERSECTED_ENTITY) { + return "entity"; + } else if (type === Picks.INTERSECTED_OVERLAY) { + return "overlay"; + } else if (type === Picks.INTERSECTED_AVATAR) { + return "avatar"; + } + } + + function update() { + var result = Pointers.getPrevPickResult(laser); + if (result.intersects) { + // Hovering on something different + if (hoveredObject !== undefined && result.objectID !== hoveredObject.objectID) { + if (isSelectionEnabled) { + Selection.removeFromSelectedItemsList(HoveringList, getIntersectionTypeString(hoveredObject.type), hoveredObject.objectID) + } + } + + // Hovering over something new + if (isSelectionEnabled) { + Selection.addToSelectedItemsList(HoveringList, getIntersectionTypeString(result.type), result.objectID); + hoveredObject = result; + } + } else if (hoveredObject !== undefined) { + // Stopped hovering + if (isSelectionEnabled) { + Selection.removeFromSelectedItemsList(HoveringList, getIntersectionTypeString(hoveredObject.type), hoveredObject.objectID) + hoveredObject = undefined; + } + } + } + Script.update.connect(update); function cleanup() { Pointers.removePointer(laser);