{"version":3,"sources":["../src/Utils.js"],"names":[],"mappings":"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","file":"Utils.js","sourcesContent":["\"use strict\";\r\n\r\nimport { Vector } from \"./Vector\";\r\nimport { Matrix } from \"./Matrix\";\r\n\r\n//From glUtils.js\r\nexport function mht(m)\r\n{\r\n var s = \"\";\r\n if (m.length == 16)\r\n {\r\n for (var i = 0; i < 4; i++)\r\n {\r\n s += \"[\" + m[i*4+0].toFixed(4) + \",\" + m[i*4+1].toFixed(4) + \",\" + m[i*4+2].toFixed(4) + \",\" + m[i*4+3].toFixed(4) + \"]
\";\r\n }\r\n }\r\n else if (m.length == 9)\r\n {\r\n for (var i = 0; i < 3; i++)\r\n {\r\n s += \"[\" + m[i*3+0].toFixed(4) + \",\" + m[i*3+1].toFixed(4) + \",\" + m[i*3+2].toFixed(4) + \"]
\";\r\n }\r\n }\r\n else\r\n {\r\n return m.toString();\r\n }\r\n return s;\r\n}\r\n\r\n//From glUtils.js\r\n//\r\n// gluLookAt\r\n//\r\nexport function makeLookAt(ex, ey, ez,\r\n cx, cy, cz,\r\n ux, uy, uz)\r\n{\r\n var eye = new Vector([ex, ey, ez]);\r\n var center = new Vector([cx, cy, cz]);\r\n var up = new Vector([ux, uy, uz]);\r\n\r\n var mag;\r\n\r\n var z = eye.subtract(center).toUnitVector();\r\n var x = up.cross(z).toUnitVector();\r\n var y = z.cross(x).toUnitVector();\r\n\r\n var m = new Matrix([\r\n [x.e(1), x.e(2), x.e(3), 0],\r\n [y.e(1), y.e(2), y.e(3), 0],\r\n [z.e(1), z.e(2), z.e(3), 0],\r\n [0, 0, 0, 1]\r\n ]);\r\n\r\n var t = new Matrix([\r\n [1, 0, 0, -ex],\r\n [0, 1, 0, -ey],\r\n [0, 0, 1, -ez],\r\n [0, 0, 0, 1]\r\n ]);\r\n return m.x(t);\r\n}\r\n\r\n//From glUtils.js\r\n//\r\n// glOrtho\r\n//\r\nexport function makeOrtho(left, right,\r\n bottom, top,\r\n znear, zfar)\r\n{\r\n var tx = -(right+left)/(right-left);\r\n var ty = -(top+bottom)/(top-bottom);\r\n var tz = -(zfar+znear)/(zfar-znear);\r\n\r\n return new Matrix([\r\n [2/(right-left), 0, 0, tx],\r\n [0, 2/(top-bottom), 0, ty],\r\n [0, 0, -2/(zfar-znear), tz],\r\n [0, 0, 0, 1]\r\n ]);\r\n}\r\n\r\n//From glUtils.js\r\n//\r\n// gluPerspective\r\n//\r\nexport function makePerspective(fovy, aspect, znear, zfar)\r\n{\r\n var ymax = znear * Math.tan(fovy * Math.PI / 360.0);\r\n var ymin = -ymax;\r\n var xmin = ymin * aspect;\r\n var xmax = ymax * aspect;\r\n\r\n return makeFrustum(xmin, xmax, ymin, ymax, znear, zfar);\r\n}\r\n\r\n//From glUtils.js\r\n//\r\n// glFrustum\r\n//\r\nexport function makeFrustum(left, right,\r\n bottom, top,\r\n znear, zfar)\r\n{\r\n var X = 2*znear/(right-left);\r\n var Y = 2*znear/(top-bottom);\r\n var A = (right+left)/(right-left);\r\n var B = (top+bottom)/(top-bottom);\r\n var C = -(zfar+znear)/(zfar-znear);\r\n var D = -2*zfar*znear/(zfar-znear);\r\n\r\n return new Matrix([\r\n [X, 0, A, 0],\r\n [0, Y, B, 0],\r\n [0, 0, C, D],\r\n [0, 0, -1, 0]\r\n ]);\r\n}\r\n\r\n//From glUtils.js\r\n//\r\n// glOrtho\r\n//\r\nexport function makeOrtho(left, right, bottom, top, znear, zfar)\r\n{\r\n var tx = - (right + left) / (right - left);\r\n var ty = - (top + bottom) / (top - bottom);\r\n var tz = - (zfar + znear) / (zfar - znear);\r\n\r\n return new Matrix([\r\n [2 / (right - left), 0, 0, tx],\r\n [0, 2 / (top - bottom), 0, ty],\r\n [0, 0, -2 / (zfar - znear), tz],\r\n [0, 0, 0, 1]\r\n ]);\r\n}"]}