-- 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:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

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

index eaacb014dee07449ad1653cd8c585d83d40b9de1..

index ..0ad94c0c71f029d688f8c9a6e4af87cf31ac39f9 100644

--- 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