repo: janusweb
action: commit
revision: 
path_from: 
revision_from: fa0426ae5a9858af8eee072a1c1ecdcefb5f57b5:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit fa0426ae5a9858af8eee072a1c1ecdcefb5f57b5
Author: James Baicoianu 
Date:   Sat Jun 27 10:24:03 2020 -0700

    Stop laser pointer at intersection point

diff --git a/scripts/janusxrplayer.js b/scripts/janusxrplayer.js
index 12ba6828e7aa0ee43206407cd1502e8a40de0ae3..
index ..eaacb014dee07449ad1653cd8c585d83d40b9de1 100644
--- a/scripts/janusxrplayer.js
+++ b/scripts/janusxrplayer.js
@@ -468,12 +468,15 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
           opacity: .5,
           col: this.lasercolor
         });
-        this.raycaster = this.createObject('raycaster', {
-          //rotation: V(-45,0,0),
-        });
+        this.raycaster = this.createObject('raycaster', {});
         this.raycaster.addEventListener('raycastenter', (ev) => this.handleRaycastEnter(ev));
+        this.raycaster.addEventListener('raycastmove', (ev) => this.handleRaycastMove(ev));
         this.raycaster.addEventListener('raycastleave', (ev) => this.handleRaycastLeave(ev));
       },
+      updateLaserEndpoint(endpoint) {
+        this.worldToLocal(this.laser.positions[1].copy(endpoint));
+        this.laser.updateLine();
+      },
       handleRaycastEnter(ev) {
         let proxyobj = ev.data.object,
             obj = proxyobj._target;
@@ -507,6 +510,8 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
           this.laser.updateColor();
         }

+        this.updateLaserEndpoint(ev.data.intersection.point);
+
         let evdata = {
           type: "mouseover",
           element: ev.data.intersection.mesh,
@@ -521,6 +526,9 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
         //elation.events.fire(evdata);
         this.engine.client.view.proxyEvent(evdata, evdata.element);
       },
+      handleRaycastMove(ev) {
+        this.updateLaserEndpoint(ev.data.intersection.point);
+      },
       handleRaycastLeave(ev) {
         this.laser.col.setRGB(0,1,1);
         this.laser.opacity = .2;

-----END OF PAGE-----