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