From 23a8d57ca2c0e95453b1b88756ec0cd6d5799c31 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Sun, 17 Jan 2016 14:14:00 -0800 Subject: [PATCH] Always show search ray --- examples/controllers/handControllerGrab.js | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/controllers/handControllerGrab.js b/examples/controllers/handControllerGrab.js index fa38c3f56e..d4fcf6390f 100644 --- a/examples/controllers/handControllerGrab.js +++ b/examples/controllers/handControllerGrab.js @@ -304,8 +304,10 @@ function MyController(hand) { this.searchSphere = null; // how far from camera to search intersection? + var DEFAULT_SEARCH_SPHERE_DISTANCE = 1000; this.intersectionDistance = 0.0; - this.searchSphereDistance = 0.0; + this.searchSphereDistance = DEFAULT_SEARCH_SPHERE_DISTANCE; + this.ignoreIK = false; this.offsetPosition = Vec3.ZERO; @@ -458,7 +460,6 @@ function MyController(hand) { visible: true, alpha: 1 }; - this.overlayLine = Overlays.addOverlay("line3d", lineProperties); } else { @@ -701,10 +702,9 @@ function MyController(hand) { this.searchSphereOff = function() { if (this.searchSphere !== null) { - //Overlays.editOverlay(this.searchSphere, { visible: false }); Overlays.deleteOverlay(this.searchSphere); this.searchSphere = null; - this.searchSphereDistance = 0.0; + this.searchSphereDistance = DEFAULT_SEARCH_SPHERE_DISTANCE; this.intersectionDistance = 0.0; } @@ -945,18 +945,18 @@ function MyController(hand) { this.handleParticleBeam(distantPickRay.origin, this.getHandRotation(), NO_INTERSECT_COLOR); } - if (this.intersectionDistance > 0) { - var SPHERE_INTERSECTION_SIZE = 0.011; - var SEARCH_SPHERE_FOLLOW_RATE = 0.50; - var SEARCH_SPHERE_CHASE_DROP = 0.2; + var SPHERE_INTERSECTION_SIZE = 0.011; + var SEARCH_SPHERE_FOLLOW_RATE = 0.50; + if (this.intersectionDistance > 0) { + // If we hit something with our pick ray, move the search sphere toward that distance this.searchSphereDistance = this.searchSphereDistance * SEARCH_SPHERE_FOLLOW_RATE + this.intersectionDistance * (1.0 - SEARCH_SPHERE_FOLLOW_RATE); - var searchSphereLocation = Vec3.sum(distantPickRay.origin, Vec3.multiply(distantPickRay.direction, this.searchSphereDistance)); - searchSphereLocation.y -= ((this.intersectionDistance - this.searchSphereDistance) / this.intersectionDistance) * SEARCH_SPHERE_CHASE_DROP; - this.searchSphereOn(searchSphereLocation, SPHERE_INTERSECTION_SIZE * this.intersectionDistance, this.triggerSmoothedGrab() ? INTERSECT_COLOR : NO_INTERSECT_COLOR); - if ((USE_OVERLAY_LINES_FOR_SEARCHING === true) && PICK_WITH_HAND_RAY) { - this.overlayLineOn(handPosition, searchSphereLocation, this.triggerSmoothedGrab() ? INTERSECT_COLOR : NO_INTERSECT_COLOR); - } + } + + var searchSphereLocation = Vec3.sum(distantPickRay.origin, Vec3.multiply(distantPickRay.direction, this.searchSphereDistance)); + this.searchSphereOn(searchSphereLocation, SPHERE_INTERSECTION_SIZE * this.searchSphereDistance, this.triggerSmoothedGrab() ? INTERSECT_COLOR : NO_INTERSECT_COLOR); + if ((USE_OVERLAY_LINES_FOR_SEARCHING === true) && PICK_WITH_HAND_RAY) { + this.overlayLineOn(handPosition, searchSphereLocation, this.triggerSmoothedGrab() ? INTERSECT_COLOR : NO_INTERSECT_COLOR); } };