From 7d47bfa2e44460f633567171131fe4c708e5c6dc Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Wed, 30 Jan 2019 11:50:32 -0800 Subject: [PATCH] david's comments --- .../system/libraries/entitySelectionTool.js | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/scripts/system/libraries/entitySelectionTool.js b/scripts/system/libraries/entitySelectionTool.js index c9f171b0aa..38abac63fd 100644 --- a/scripts/system/libraries/entitySelectionTool.js +++ b/scripts/system/libraries/entitySelectionTool.js @@ -899,6 +899,9 @@ SelectionDisplay = (function() { yRailOverlay, zRailOverlay ]; + + const nonLayeredOverlays = [selectionBox, iconSelectionBox]; + var maximumHandleInAllOverlays = handleDuplicator; overlayNames[handleTranslateXCone] = "handleTranslateXCone"; @@ -1015,18 +1018,21 @@ SelectionDisplay = (function() { // We want to first check the drawInFront overlays (i.e. the handles, but really everything except the selectionBoxes) // so that you can click on them even when they're behind things - var overlayIncludesLayered = overlayIncludes.filter(function (value, index, arr) { - return value != selectionBox && value != iconSelectionBox; - }); + var overlayIncludesLayered = []; + var overlayIncludesNonLayered = []; + for (var i = 0; i < overlayIncludes.length; i++) { + var value = overlayIncludes[i]; + if (nonLayeredOverlays.includes(value)) { + overlayIncludesNonLayered.push(value); + } else { + overlayIncludesLayered.push(value); + } + } + var intersectObj = Overlays.findRayIntersection(queryRay, true, overlayIncludesLayered, overlayExcludes); - if (!intersectObj.intersects) { - var overlayIncludesNonLayered = overlayIncludes.filter(function (value, index, arr) { - return value == selectionBox || value == iconSelectionBox; - }); - if (overlayIncludesNonLayered.length > 0) { - intersectObj = Overlays.findRayIntersection(queryRay, true, overlayIncludesNonLayered, overlayExcludes); - } + if (!intersectObj.intersects && overlayIncludesNonLayered.length > 0) { + intersectObj = Overlays.findRayIntersection(queryRay, true, overlayIncludesNonLayered, overlayExcludes); } if (wantDebug) {