diff options
Diffstat (limited to 'graphics/asymptote/webgl/arcball-0.01.js')
-rw-r--r-- | graphics/asymptote/webgl/arcball-0.01.js | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/graphics/asymptote/webgl/arcball-0.01.js b/graphics/asymptote/webgl/arcball-0.01.js deleted file mode 100644 index db6da0f81a..0000000000 --- a/graphics/asymptote/webgl/arcball-0.01.js +++ /dev/null @@ -1,67 +0,0 @@ -// double, double => rotation matrix -// require https://cdn.rawgit.com/humbletim/glm-js/31fd034b/build/glm-js.min.js - - -var arcballLib = { - arcball: function(oldmouse, newmouse) { - let oldMouseNew = [0, 0, 0]; - let newMouseNew = [0, 0, 0]; - - let testNorm = this.twonorm(oldmouse); - if (testNorm > 1) { - oldMouseNew[0] = oldmouse[0] / testNorm; - oldMouseNew[1] = oldmouse[1] / testNorm; - } else { - oldMouseNew[0] = oldmouse[0]; - oldMouseNew[1] = oldmouse[1]; - } - - let testNorm2 = this.twonorm(newmouse); - if (testNorm2 > 1) { - newMouseNew[0] = newmouse[0] / testNorm2; - newMouseNew[1] = newmouse[1] / testNorm2; - } else { - newMouseNew[0] = newmouse[0]; - newMouseNew[1] = newmouse[1]; - } - - var z1squared = 1 - (oldMouseNew[1] ** 2) - (oldMouseNew[0] ** 2); - if (z1squared < 0 && z1squared > -0.00001) { - z1squared = 0; - } - - var z2squared = 1 - (newMouseNew[1] ** 2) - (newMouseNew[0] ** 2); - if (z2squared < 0 && z2squared > -0.00001) { - z2squared = 0; - } - - - oldMouseNew[2] = Math.sqrt(z1squared); - newMouseNew[2] = Math.sqrt(z2squared); - - if (isNaN(oldMouseNew[2]) || isNaN(newMouseNew[2])) { - - alert('Error!'); - } - - - let oldMouseVec = glm.vec3(...oldMouseNew); - let newMouseVec = glm.vec3(...newMouseNew); - let axis = glm.normalize(glm.cross(oldMouseVec, newMouseVec)); - - // console.log(axis[0], axis[1], axis[2]); - - let angle = Math.acos(glm.dot(oldMouseVec, newMouseVec)); - - return [angle, axis] - - }, - - twonorm: function(v) { - let normSq = 0 - for (let i = 0; i < v.length; i++) { - normSq += (v[i] ** 2); - } - return Math.sqrt(normSq); - } -}
\ No newline at end of file |