-- 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: 642eaa6cf727d38f0265a95468c3386e4ace4a23:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit 642eaa6cf727d38f0265a95468c3386e4ace4a23
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Tue Oct 31 04:33:53 2017 -0700

    Switched to same orthonormalization method used by native

diff --git a/scripts/external/JanusFireboxParser.js b/scripts/external/JanusFireboxParser.js

index 331147e71945cd6a31ccf656e56f6cb9a8903618..

index ..c20de182c2c1084bd05e7f5ef8506a9379398998 100644

--- a/scripts/external/JanusFireboxParser.js
+++ b/scripts/external/JanusFireboxParser.js
@@ -169,31 +169,24 @@ JanusFireboxParser.prototype.parseNode = function(n) {
 }

 JanusFireboxParser.prototype.getOrientation = function(xdir, ydir, zdir) {
-  if (xdir) xdir = (xdir instanceof THREE.Vector3 ? xdir : new THREE.Vector3().fromArray(xdir.split(' '))).normalize();
-  if (ydir) ydir = (ydir instanceof THREE.Vector3 ? ydir : new THREE.Vector3().fromArray(ydir.split(' '))).normalize();
-  if (zdir) zdir = (zdir instanceof THREE.Vector3 ? zdir : new THREE.Vector3().fromArray(zdir.split(' '))).normalize();
-
-  if (xdir && !ydir && !zdir) {
-    ydir = new THREE.Vector3(0,1,0);
-    zdir = new THREE.Vector3().crossVectors(xdir, ydir);
+  if (xdir) {
+    xdir = (xdir instanceof THREE.Vector3 ? xdir : new THREE.Vector3().fromArray(xdir.split(' '))).normalize();
+  } else {
+    xdir = new THREE.Vector3(1,0,0);
   }
-  if (!xdir && !ydir && zdir) {
+  if (ydir) {
+    ydir = (ydir instanceof THREE.Vector3 ? ydir : new THREE.Vector3().fromArray(ydir.split(' '))).normalize();
+  } else {
     ydir = new THREE.Vector3(0,1,0);
-    xdir = new THREE.Vector3().crossVectors(ydir, zdir);
   }
-
-  if (!xdir && ydir && zdir) {
-    xdir = new THREE.Vector3().crossVectors(zdir, ydir);
-  }
-  if (xdir && !ydir && zdir) {
-    ydir = new THREE.Vector3().crossVectors(xdir, zdir).multiplyScalar(-1);
-  }
-  if (xdir && ydir && !zdir) {
-    zdir = new THREE.Vector3().crossVectors(xdir, ydir);
+  if (zdir) {
+    zdir = (zdir instanceof THREE.Vector3 ? zdir : new THREE.Vector3().fromArray(zdir.split(' '))).normalize();
+  } else {
+    zdir = new THREE.Vector3(0,0,1);
   }
-  if (!xdir) xdir = new THREE.Vector3(1,0,0);
-  if (!ydir) ydir = new THREE.Vector3(0,1,0);
-  if (!zdir) zdir = new THREE.Vector3(0,0,1);
+
+  var newydir = ydir.clone().sub(zdir).multiplyScalar(ydir.dot(zdir)).normalize();
+  xdir.crossVectors(ydir, zdir).normalize();

   var mat4 = new THREE.Matrix4().makeBasis(xdir, ydir, zdir);
   var quat = new THREE.Quaternion();

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

-- Response ended

-- Page fetched on Sun Jun 2 14:41:25 2024