-- Leo's gemini proxy
-- Connecting to git.thebackupbox.net:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
repo: janusweb action: commit revision: path_from: revision_from: e500275b25bfd0e620232b766c098f1603266643: path_to: revision_to:
commit e500275b25bfd0e620232b766c098f1603266643 Author: James Baicoianu <james_github@baicoianu.com> Date: Tue Jun 30 15:51:58 2020 -0700 Fixed AR controller XRInput handling diff --git a/scripts/janusxrplayer.js b/scripts/janusxrplayer.js
--- a/scripts/janusxrplayer.js +++ b/scripts/janusxrplayer.js @@ -63,10 +63,16 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile if (!this.trackedobjects[id]) { this.trackedobjects[id] = this.createObject('trackedplayer_hand', { device: input }); } - let pose = xrFrame.getPose(input.gripSpace, xrReferenceFrame); + let pose = null, + raypose = null; + if (input.gripSpace) { + pose = xrFrame.getPose(input.gripSpace, xrReferenceFrame); + } + if (input.targetRaySpace) { + raypose = xrFrame.getPose(input.targetRaySpace, xrReferenceFrame); + } + this.trackedobjects[id].updatePose(pose, xrFrame, xrReferenceFrame, raypose); if (pose) { - let raypose = xrFrame.getPose(input.targetRaySpace, xrReferenceFrame); - this.trackedobjects[id].updatePose(pose, xrFrame, xrReferenceFrame, raypose); this.trackedobjects[id].visible = true; } else { this.trackedobjects[id].visible = false; @@ -116,8 +122,10 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile */ }, this.updatePose = function(pose, xrFrame, xrReferenceFrame) { - this.position.copy(pose.transform.position); - this.orientation.copy(pose.transform.orientation); + if (pose) { + this.position.copy(pose.transform.position); + this.orientation.copy(pose.transform.orientation); + } } }, elation.engine.things.janusbase); @@ -313,10 +321,10 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile if (this.motionController) { this.updateMotionControllerModel(this.motionController); } - if (this.pointer && raypose) { - this.pointer.pos.copy(raypose.transform.position); - this.pointer.orientation.copy(raypose.transform.orientation); - } + } + if (this.pointer && raypose) { + this.pointer.pos.copy(raypose.transform.position); + this.pointer.orientation.copy(raypose.transform.orientation); } }, createButtons() {
-----END OF PAGE-----
-- Response ended
-- Page fetched on Sun Jun 2 17:02:11 2024