repo: janusweb action: commit revision: path_from: revision_from: fa0426ae5a9858af8eee072a1c1ecdcefb5f57b5: path_to: revision_to:
commit fa0426ae5a9858af8eee072a1c1ecdcefb5f57b5 Author: James BaicoianuDate: Sat Jun 27 10:24:03 2020 -0700 Stop laser pointer at intersection point diff --git a/scripts/janusxrplayer.js b/scripts/janusxrplayer.js
--- 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-----