From 050f9448f0290fd44c94fda0a6d356a5b5c37f7a Mon Sep 17 00:00:00 2001 From: Brulijam Date: Thu, 18 Jan 2024 00:36:37 +0100 Subject: [PATCH] Prepared Abgabe 6 --- Abgabe_6/icg_exercise6.pdf | Bin 0 -> 155074 bytes Abgabe_6/normalMappingTODOs.zip | Bin 0 -> 230520 bytes .../normalMappingTODOs/common/gl-matrix.js | 5555 +++++++++++++++++ .../normalMappingTODOs/common/initShaders.js | 46 + .../normalMappingTODOs/common/objects3D.js | 1949 ++++++ Abgabe_6/normalMappingTODOs/index.html | 170 + Abgabe_6/normalMappingTODOs/main.js | 196 + Abgabe_6/normalMappingTODOs/water_diffuse.jpg | Bin 0 -> 134965 bytes Abgabe_6/normalMappingTODOs/water_normal.jpg | Bin 0 -> 53365 bytes 9 files changed, 7916 insertions(+) create mode 100644 Abgabe_6/icg_exercise6.pdf create mode 100644 Abgabe_6/normalMappingTODOs.zip create mode 100644 Abgabe_6/normalMappingTODOs/common/gl-matrix.js create mode 100644 Abgabe_6/normalMappingTODOs/common/initShaders.js create mode 100644 Abgabe_6/normalMappingTODOs/common/objects3D.js create mode 100644 Abgabe_6/normalMappingTODOs/index.html create mode 100644 Abgabe_6/normalMappingTODOs/main.js create mode 100644 Abgabe_6/normalMappingTODOs/water_diffuse.jpg create mode 100644 Abgabe_6/normalMappingTODOs/water_normal.jpg diff --git a/Abgabe_6/icg_exercise6.pdf b/Abgabe_6/icg_exercise6.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0f8d99340fdc2e65c023ea65be860a4afebf0235 GIT binary patch literal 155074 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

m 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 CGHzr5 literal 0 HcmV?d00001 diff --git a/Abgabe_6/normalMappingTODOs.zip b/Abgabe_6/normalMappingTODOs.zip new file mode 100644 index 0000000000000000000000000000000000000000..c9571c85c7c4661cdbf996cad7b799a5249173a2 GIT binary patch literal 230520 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

*;X?dEu{8G5iq3Fpf6J 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

A@gSG9Ce%hw0`LENEw2U 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

d;$9sOe~s>Y7BGq*B{b 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

=;Mm-N& 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

y&WK1(zM+IDsoV*8yEy-qa{>4lo&w; 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 literal 0 HcmV?d00001 diff --git a/Abgabe_6/normalMappingTODOs/common/gl-matrix.js b/Abgabe_6/normalMappingTODOs/common/gl-matrix.js new file mode 100644 index 0000000..5e7dfaa --- /dev/null +++ b/Abgabe_6/normalMappingTODOs/common/gl-matrix.js @@ -0,0 +1,5555 @@ +/** + * @fileoverview gl-matrix - High performance matrix and vector operations + * @author Brandon Jones + * @author Colin MacKenzie IV + * @version 2.3.2 + */ + +/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define(factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * @fileoverview gl-matrix - High performance matrix and vector operations + * @author Brandon Jones + * @author Colin MacKenzie IV + * @version 2.3.2 + */ + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + // END HEADER + + exports.glMatrix = __webpack_require__(1); + exports.mat2 = __webpack_require__(2); + exports.mat2d = __webpack_require__(3); + exports.mat3 = __webpack_require__(4); + exports.mat4 = __webpack_require__(5); + exports.quat = __webpack_require__(6); + exports.vec2 = __webpack_require__(9); + exports.vec3 = __webpack_require__(7); + exports.vec4 = __webpack_require__(8); + +/***/ }, +/* 1 */ +/***/ function(module, exports) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + /** + * @class Common utilities + * @name glMatrix + */ + var glMatrix = {}; + + // Configuration Constants + glMatrix.EPSILON = 0.000001; + glMatrix.ARRAY_TYPE = (typeof Float32Array !== 'undefined') ? Float32Array : Array; + glMatrix.RANDOM = Math.random; + glMatrix.ENABLE_SIMD = false; + + // Capability detection + glMatrix.SIMD_AVAILABLE = (glMatrix.ARRAY_TYPE === Float32Array) && ('SIMD' in this); + glMatrix.USE_SIMD = glMatrix.ENABLE_SIMD && glMatrix.SIMD_AVAILABLE; + + /** + * Sets the type of array used when creating new vectors and matrices + * + * @param {Type} type Array type, such as Float32Array or Array + */ + glMatrix.setMatrixArrayType = function(type) { + glMatrix.ARRAY_TYPE = type; + } + + var degree = Math.PI / 180; + + /** + * Convert Degree To Radian + * + * @param {Number} Angle in Degrees + */ + glMatrix.toRadian = function(a){ + return a * degree; + } + + module.exports = glMatrix; + + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 2x2 Matrix + * @name mat2 + */ + var mat2 = {}; + + /** + * Creates a new identity mat2 + * + * @returns {mat2} a new 2x2 matrix + */ + mat2.create = function() { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; + }; + + /** + * Creates a new mat2 initialized with values from an existing matrix + * + * @param {mat2} a matrix to clone + * @returns {mat2} a new 2x2 matrix + */ + mat2.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; + }; + + /** + * Copy the values from one mat2 to another + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ + mat2.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; + }; + + /** + * Set a mat2 to the identity matrix + * + * @param {mat2} out the receiving matrix + * @returns {mat2} out + */ + mat2.identity = function(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; + }; + + /** + * Transpose the values of a mat2 + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ + mat2.transpose = function(out, a) { + // If we are transposing ourselves we can skip a few steps but have to cache some values + if (out === a) { + var a1 = a[1]; + out[1] = a[2]; + out[2] = a1; + } else { + out[0] = a[0]; + out[1] = a[2]; + out[2] = a[1]; + out[3] = a[3]; + } + + return out; + }; + + /** + * Inverts a mat2 + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ + mat2.invert = function(out, a) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], + + // Calculate the determinant + det = a0 * a3 - a2 * a1; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = a3 * det; + out[1] = -a1 * det; + out[2] = -a2 * det; + out[3] = a0 * det; + + return out; + }; + + /** + * Calculates the adjugate of a mat2 + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the source matrix + * @returns {mat2} out + */ + mat2.adjoint = function(out, a) { + // Caching this value is nessecary if out == a + var a0 = a[0]; + out[0] = a[3]; + out[1] = -a[1]; + out[2] = -a[2]; + out[3] = a0; + + return out; + }; + + /** + * Calculates the determinant of a mat2 + * + * @param {mat2} a the source matrix + * @returns {Number} determinant of a + */ + mat2.determinant = function (a) { + return a[0] * a[3] - a[2] * a[1]; + }; + + /** + * Multiplies two mat2's + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the first operand + * @param {mat2} b the second operand + * @returns {mat2} out + */ + mat2.multiply = function (out, a, b) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3]; + var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3]; + out[0] = a0 * b0 + a2 * b1; + out[1] = a1 * b0 + a3 * b1; + out[2] = a0 * b2 + a2 * b3; + out[3] = a1 * b2 + a3 * b3; + return out; + }; + + /** + * Alias for {@link mat2.multiply} + * @function + */ + mat2.mul = mat2.multiply; + + /** + * Rotates a mat2 by the given angle + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat2} out + */ + mat2.rotate = function (out, a, rad) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], + s = Math.sin(rad), + c = Math.cos(rad); + out[0] = a0 * c + a2 * s; + out[1] = a1 * c + a3 * s; + out[2] = a0 * -s + a2 * c; + out[3] = a1 * -s + a3 * c; + return out; + }; + + /** + * Scales the mat2 by the dimensions in the given vec2 + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the matrix to rotate + * @param {vec2} v the vec2 to scale the matrix by + * @returns {mat2} out + **/ + mat2.scale = function(out, a, v) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], + v0 = v[0], v1 = v[1]; + out[0] = a0 * v0; + out[1] = a1 * v0; + out[2] = a2 * v1; + out[3] = a3 * v1; + return out; + }; + + /** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat2.identity(dest); + * mat2.rotate(dest, dest, rad); + * + * @param {mat2} out mat2 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat2} out + */ + mat2.fromRotation = function(out, rad) { + var s = Math.sin(rad), + c = Math.cos(rad); + out[0] = c; + out[1] = s; + out[2] = -s; + out[3] = c; + return out; + } + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat2.identity(dest); + * mat2.scale(dest, dest, vec); + * + * @param {mat2} out mat2 receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat2} out + */ + mat2.fromScaling = function(out, v) { + out[0] = v[0]; + out[1] = 0; + out[2] = 0; + out[3] = v[1]; + return out; + } + + /** + * Returns a string representation of a mat2 + * + * @param {mat2} mat matrix to represent as a string + * @returns {String} string representation of the matrix + */ + mat2.str = function (a) { + return 'mat2(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')'; + }; + + /** + * Returns Frobenius norm of a mat2 + * + * @param {mat2} a the matrix to calculate Frobenius norm of + * @returns {Number} Frobenius norm + */ + mat2.frob = function (a) { + return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2))) + }; + + /** + * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix + * @param {mat2} L the lower triangular matrix + * @param {mat2} D the diagonal matrix + * @param {mat2} U the upper triangular matrix + * @param {mat2} a the input matrix to factorize + */ + + mat2.LDU = function (L, D, U, a) { + L[2] = a[2]/a[0]; + U[0] = a[0]; + U[1] = a[1]; + U[3] = a[3] - L[2] * U[1]; + return [L, D, U]; + }; + + + module.exports = mat2; + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 2x3 Matrix + * @name mat2d + * + * @description + * A mat2d contains six elements defined as: + *

+	 * [a, c, tx,
+	 *  b, d, ty]
+	 * 
+ * This is a short form for the 3x3 matrix: + *
+	 * [a, c, tx,
+	 *  b, d, ty,
+	 *  0, 0, 1]
+	 * 
+ * The last row is ignored so the array is shorter and operations are faster. + */ + var mat2d = {}; + + /** + * Creates a new identity mat2d + * + * @returns {mat2d} a new 2x3 matrix + */ + mat2d.create = function() { + var out = new glMatrix.ARRAY_TYPE(6); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + out[4] = 0; + out[5] = 0; + return out; + }; + + /** + * Creates a new mat2d initialized with values from an existing matrix + * + * @param {mat2d} a matrix to clone + * @returns {mat2d} a new 2x3 matrix + */ + mat2d.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(6); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + return out; + }; + + /** + * Copy the values from one mat2d to another + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the source matrix + * @returns {mat2d} out + */ + mat2d.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + return out; + }; + + /** + * Set a mat2d to the identity matrix + * + * @param {mat2d} out the receiving matrix + * @returns {mat2d} out + */ + mat2d.identity = function(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + out[4] = 0; + out[5] = 0; + return out; + }; + + /** + * Inverts a mat2d + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the source matrix + * @returns {mat2d} out + */ + mat2d.invert = function(out, a) { + var aa = a[0], ab = a[1], ac = a[2], ad = a[3], + atx = a[4], aty = a[5]; + + var det = aa * ad - ab * ac; + if(!det){ + return null; + } + det = 1.0 / det; + + out[0] = ad * det; + out[1] = -ab * det; + out[2] = -ac * det; + out[3] = aa * det; + out[4] = (ac * aty - ad * atx) * det; + out[5] = (ab * atx - aa * aty) * det; + return out; + }; + + /** + * Calculates the determinant of a mat2d + * + * @param {mat2d} a the source matrix + * @returns {Number} determinant of a + */ + mat2d.determinant = function (a) { + return a[0] * a[3] - a[1] * a[2]; + }; + + /** + * Multiplies two mat2d's + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the first operand + * @param {mat2d} b the second operand + * @returns {mat2d} out + */ + mat2d.multiply = function (out, a, b) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5], + b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5]; + out[0] = a0 * b0 + a2 * b1; + out[1] = a1 * b0 + a3 * b1; + out[2] = a0 * b2 + a2 * b3; + out[3] = a1 * b2 + a3 * b3; + out[4] = a0 * b4 + a2 * b5 + a4; + out[5] = a1 * b4 + a3 * b5 + a5; + return out; + }; + + /** + * Alias for {@link mat2d.multiply} + * @function + */ + mat2d.mul = mat2d.multiply; + + /** + * Rotates a mat2d by the given angle + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat2d} out + */ + mat2d.rotate = function (out, a, rad) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5], + s = Math.sin(rad), + c = Math.cos(rad); + out[0] = a0 * c + a2 * s; + out[1] = a1 * c + a3 * s; + out[2] = a0 * -s + a2 * c; + out[3] = a1 * -s + a3 * c; + out[4] = a4; + out[5] = a5; + return out; + }; + + /** + * Scales the mat2d by the dimensions in the given vec2 + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the matrix to translate + * @param {vec2} v the vec2 to scale the matrix by + * @returns {mat2d} out + **/ + mat2d.scale = function(out, a, v) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5], + v0 = v[0], v1 = v[1]; + out[0] = a0 * v0; + out[1] = a1 * v0; + out[2] = a2 * v1; + out[3] = a3 * v1; + out[4] = a4; + out[5] = a5; + return out; + }; + + /** + * Translates the mat2d by the dimensions in the given vec2 + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the matrix to translate + * @param {vec2} v the vec2 to translate the matrix by + * @returns {mat2d} out + **/ + mat2d.translate = function(out, a, v) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5], + v0 = v[0], v1 = v[1]; + out[0] = a0; + out[1] = a1; + out[2] = a2; + out[3] = a3; + out[4] = a0 * v0 + a2 * v1 + a4; + out[5] = a1 * v0 + a3 * v1 + a5; + return out; + }; + + /** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat2d.identity(dest); + * mat2d.rotate(dest, dest, rad); + * + * @param {mat2d} out mat2d receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat2d} out + */ + mat2d.fromRotation = function(out, rad) { + var s = Math.sin(rad), c = Math.cos(rad); + out[0] = c; + out[1] = s; + out[2] = -s; + out[3] = c; + out[4] = 0; + out[5] = 0; + return out; + } + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat2d.identity(dest); + * mat2d.scale(dest, dest, vec); + * + * @param {mat2d} out mat2d receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat2d} out + */ + mat2d.fromScaling = function(out, v) { + out[0] = v[0]; + out[1] = 0; + out[2] = 0; + out[3] = v[1]; + out[4] = 0; + out[5] = 0; + return out; + } + + /** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat2d.identity(dest); + * mat2d.translate(dest, dest, vec); + * + * @param {mat2d} out mat2d receiving operation result + * @param {vec2} v Translation vector + * @returns {mat2d} out + */ + mat2d.fromTranslation = function(out, v) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + out[4] = v[0]; + out[5] = v[1]; + return out; + } + + /** + * Returns a string representation of a mat2d + * + * @param {mat2d} a matrix to represent as a string + * @returns {String} string representation of the matrix + */ + mat2d.str = function (a) { + return 'mat2d(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + + a[3] + ', ' + a[4] + ', ' + a[5] + ')'; + }; + + /** + * Returns Frobenius norm of a mat2d + * + * @param {mat2d} a the matrix to calculate Frobenius norm of + * @returns {Number} Frobenius norm + */ + mat2d.frob = function (a) { + return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + 1)) + }; + + module.exports = mat2d; + + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 3x3 Matrix + * @name mat3 + */ + var mat3 = {}; + + /** + * Creates a new identity mat3 + * + * @returns {mat3} a new 3x3 matrix + */ + mat3.create = function() { + var out = new glMatrix.ARRAY_TYPE(9); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 1; + out[5] = 0; + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; + }; + + /** + * Copies the upper-left 3x3 values into the given mat3. + * + * @param {mat3} out the receiving 3x3 matrix + * @param {mat4} a the source 4x4 matrix + * @returns {mat3} out + */ + mat3.fromMat4 = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[4]; + out[4] = a[5]; + out[5] = a[6]; + out[6] = a[8]; + out[7] = a[9]; + out[8] = a[10]; + return out; + }; + + /** + * Creates a new mat3 initialized with values from an existing matrix + * + * @param {mat3} a matrix to clone + * @returns {mat3} a new 3x3 matrix + */ + mat3.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(9); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + return out; + }; + + /** + * Copy the values from one mat3 to another + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ + mat3.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + return out; + }; + + /** + * Set a mat3 to the identity matrix + * + * @param {mat3} out the receiving matrix + * @returns {mat3} out + */ + mat3.identity = function(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 1; + out[5] = 0; + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; + }; + + /** + * Transpose the values of a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ + mat3.transpose = function(out, a) { + // If we are transposing ourselves we can skip a few steps but have to cache some values + if (out === a) { + var a01 = a[1], a02 = a[2], a12 = a[5]; + out[1] = a[3]; + out[2] = a[6]; + out[3] = a01; + out[5] = a[7]; + out[6] = a02; + out[7] = a12; + } else { + out[0] = a[0]; + out[1] = a[3]; + out[2] = a[6]; + out[3] = a[1]; + out[4] = a[4]; + out[5] = a[7]; + out[6] = a[2]; + out[7] = a[5]; + out[8] = a[8]; + } + + return out; + }; + + /** + * Inverts a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ + mat3.invert = function(out, a) { + var a00 = a[0], a01 = a[1], a02 = a[2], + a10 = a[3], a11 = a[4], a12 = a[5], + a20 = a[6], a21 = a[7], a22 = a[8], + + b01 = a22 * a11 - a12 * a21, + b11 = -a22 * a10 + a12 * a20, + b21 = a21 * a10 - a11 * a20, + + // Calculate the determinant + det = a00 * b01 + a01 * b11 + a02 * b21; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = b01 * det; + out[1] = (-a22 * a01 + a02 * a21) * det; + out[2] = (a12 * a01 - a02 * a11) * det; + out[3] = b11 * det; + out[4] = (a22 * a00 - a02 * a20) * det; + out[5] = (-a12 * a00 + a02 * a10) * det; + out[6] = b21 * det; + out[7] = (-a21 * a00 + a01 * a20) * det; + out[8] = (a11 * a00 - a01 * a10) * det; + return out; + }; + + /** + * Calculates the adjugate of a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the source matrix + * @returns {mat3} out + */ + mat3.adjoint = function(out, a) { + var a00 = a[0], a01 = a[1], a02 = a[2], + a10 = a[3], a11 = a[4], a12 = a[5], + a20 = a[6], a21 = a[7], a22 = a[8]; + + out[0] = (a11 * a22 - a12 * a21); + out[1] = (a02 * a21 - a01 * a22); + out[2] = (a01 * a12 - a02 * a11); + out[3] = (a12 * a20 - a10 * a22); + out[4] = (a00 * a22 - a02 * a20); + out[5] = (a02 * a10 - a00 * a12); + out[6] = (a10 * a21 - a11 * a20); + out[7] = (a01 * a20 - a00 * a21); + out[8] = (a00 * a11 - a01 * a10); + return out; + }; + + /** + * Calculates the determinant of a mat3 + * + * @param {mat3} a the source matrix + * @returns {Number} determinant of a + */ + mat3.determinant = function (a) { + var a00 = a[0], a01 = a[1], a02 = a[2], + a10 = a[3], a11 = a[4], a12 = a[5], + a20 = a[6], a21 = a[7], a22 = a[8]; + + return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20); + }; + + /** + * Multiplies two mat3's + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ + mat3.multiply = function (out, a, b) { + var a00 = a[0], a01 = a[1], a02 = a[2], + a10 = a[3], a11 = a[4], a12 = a[5], + a20 = a[6], a21 = a[7], a22 = a[8], + + b00 = b[0], b01 = b[1], b02 = b[2], + b10 = b[3], b11 = b[4], b12 = b[5], + b20 = b[6], b21 = b[7], b22 = b[8]; + + out[0] = b00 * a00 + b01 * a10 + b02 * a20; + out[1] = b00 * a01 + b01 * a11 + b02 * a21; + out[2] = b00 * a02 + b01 * a12 + b02 * a22; + + out[3] = b10 * a00 + b11 * a10 + b12 * a20; + out[4] = b10 * a01 + b11 * a11 + b12 * a21; + out[5] = b10 * a02 + b11 * a12 + b12 * a22; + + out[6] = b20 * a00 + b21 * a10 + b22 * a20; + out[7] = b20 * a01 + b21 * a11 + b22 * a21; + out[8] = b20 * a02 + b21 * a12 + b22 * a22; + return out; + }; + + /** + * Alias for {@link mat3.multiply} + * @function + */ + mat3.mul = mat3.multiply; + + /** + * Translate a mat3 by the given vector + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to translate + * @param {vec2} v vector to translate by + * @returns {mat3} out + */ + mat3.translate = function(out, a, v) { + var a00 = a[0], a01 = a[1], a02 = a[2], + a10 = a[3], a11 = a[4], a12 = a[5], + a20 = a[6], a21 = a[7], a22 = a[8], + x = v[0], y = v[1]; + + out[0] = a00; + out[1] = a01; + out[2] = a02; + + out[3] = a10; + out[4] = a11; + out[5] = a12; + + out[6] = x * a00 + y * a10 + a20; + out[7] = x * a01 + y * a11 + a21; + out[8] = x * a02 + y * a12 + a22; + return out; + }; + + /** + * Rotates a mat3 by the given angle + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat3} out + */ + mat3.rotate = function (out, a, rad) { + var a00 = a[0], a01 = a[1], a02 = a[2], + a10 = a[3], a11 = a[4], a12 = a[5], + a20 = a[6], a21 = a[7], a22 = a[8], + + s = Math.sin(rad), + c = Math.cos(rad); + + out[0] = c * a00 + s * a10; + out[1] = c * a01 + s * a11; + out[2] = c * a02 + s * a12; + + out[3] = c * a10 - s * a00; + out[4] = c * a11 - s * a01; + out[5] = c * a12 - s * a02; + + out[6] = a20; + out[7] = a21; + out[8] = a22; + return out; + }; + + /** + * Scales the mat3 by the dimensions in the given vec2 + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to rotate + * @param {vec2} v the vec2 to scale the matrix by + * @returns {mat3} out + **/ + mat3.scale = function(out, a, v) { + var x = v[0], y = v[1]; + + out[0] = x * a[0]; + out[1] = x * a[1]; + out[2] = x * a[2]; + + out[3] = y * a[3]; + out[4] = y * a[4]; + out[5] = y * a[5]; + + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + return out; + }; + + /** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.translate(dest, dest, vec); + * + * @param {mat3} out mat3 receiving operation result + * @param {vec2} v Translation vector + * @returns {mat3} out + */ + mat3.fromTranslation = function(out, v) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 1; + out[5] = 0; + out[6] = v[0]; + out[7] = v[1]; + out[8] = 1; + return out; + } + + /** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.rotate(dest, dest, rad); + * + * @param {mat3} out mat3 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat3} out + */ + mat3.fromRotation = function(out, rad) { + var s = Math.sin(rad), c = Math.cos(rad); + + out[0] = c; + out[1] = s; + out[2] = 0; + + out[3] = -s; + out[4] = c; + out[5] = 0; + + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; + } + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.scale(dest, dest, vec); + * + * @param {mat3} out mat3 receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat3} out + */ + mat3.fromScaling = function(out, v) { + out[0] = v[0]; + out[1] = 0; + out[2] = 0; + + out[3] = 0; + out[4] = v[1]; + out[5] = 0; + + out[6] = 0; + out[7] = 0; + out[8] = 1; + return out; + } + + /** + * Copies the values from a mat2d into a mat3 + * + * @param {mat3} out the receiving matrix + * @param {mat2d} a the matrix to copy + * @returns {mat3} out + **/ + mat3.fromMat2d = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = 0; + + out[3] = a[2]; + out[4] = a[3]; + out[5] = 0; + + out[6] = a[4]; + out[7] = a[5]; + out[8] = 1; + return out; + }; + + /** + * Calculates a 3x3 matrix from the given quaternion + * + * @param {mat3} out mat3 receiving operation result + * @param {quat} q Quaternion to create matrix from + * + * @returns {mat3} out + */ + mat3.fromQuat = function (out, q) { + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, + + xx = x * x2, + yx = y * x2, + yy = y * y2, + zx = z * x2, + zy = z * y2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2; + + out[0] = 1 - yy - zz; + out[3] = yx - wz; + out[6] = zx + wy; + + out[1] = yx + wz; + out[4] = 1 - xx - zz; + out[7] = zy - wx; + + out[2] = zx - wy; + out[5] = zy + wx; + out[8] = 1 - xx - yy; + + return out; + }; + + /** + * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix + * + * @param {mat3} out mat3 receiving operation result + * @param {mat4} a Mat4 to derive the normal matrix from + * + * @returns {mat3} out + */ + mat3.normalFromMat4 = function (out, a) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], + + b00 = a00 * a11 - a01 * a10, + b01 = a00 * a12 - a02 * a10, + b02 = a00 * a13 - a03 * a10, + b03 = a01 * a12 - a02 * a11, + b04 = a01 * a13 - a03 * a11, + b05 = a02 * a13 - a03 * a12, + b06 = a20 * a31 - a21 * a30, + b07 = a20 * a32 - a22 * a30, + b08 = a20 * a33 - a23 * a30, + b09 = a21 * a32 - a22 * a31, + b10 = a21 * a33 - a23 * a31, + b11 = a22 * a33 - a23 * a32, + + // Calculate the determinant + det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; + out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det; + out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det; + + out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det; + out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det; + out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det; + + out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det; + out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det; + out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det; + + return out; + }; + + /** + * Returns a string representation of a mat3 + * + * @param {mat3} mat matrix to represent as a string + * @returns {String} string representation of the matrix + */ + mat3.str = function (a) { + return 'mat3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + + a[3] + ', ' + a[4] + ', ' + a[5] + ', ' + + a[6] + ', ' + a[7] + ', ' + a[8] + ')'; + }; + + /** + * Returns Frobenius norm of a mat3 + * + * @param {mat3} a the matrix to calculate Frobenius norm of + * @returns {Number} Frobenius norm + */ + mat3.frob = function (a) { + return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2))) + }; + + + module.exports = mat3; + + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 4x4 Matrix + * @name mat4 + */ + var mat4 = { + scalar: {}, + SIMD: {}, + }; + + /** + * Creates a new identity mat4 + * + * @returns {mat4} a new 4x4 matrix + */ + mat4.create = function() { + var out = new glMatrix.ARRAY_TYPE(16); + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + }; + + /** + * Creates a new mat4 initialized with values from an existing matrix + * + * @param {mat4} a matrix to clone + * @returns {mat4} a new 4x4 matrix + */ + mat4.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(16); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; + }; + + /** + * Copy the values from one mat4 to another + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; + }; + + /** + * Set a mat4 to the identity matrix + * + * @param {mat4} out the receiving matrix + * @returns {mat4} out + */ + mat4.identity = function(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + }; + + /** + * Transpose the values of a mat4 not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.scalar.transpose = function(out, a) { + // If we are transposing ourselves we can skip a few steps but have to cache some values + if (out === a) { + var a01 = a[1], a02 = a[2], a03 = a[3], + a12 = a[6], a13 = a[7], + a23 = a[11]; + + out[1] = a[4]; + out[2] = a[8]; + out[3] = a[12]; + out[4] = a01; + out[6] = a[9]; + out[7] = a[13]; + out[8] = a02; + out[9] = a12; + out[11] = a[14]; + out[12] = a03; + out[13] = a13; + out[14] = a23; + } else { + out[0] = a[0]; + out[1] = a[4]; + out[2] = a[8]; + out[3] = a[12]; + out[4] = a[1]; + out[5] = a[5]; + out[6] = a[9]; + out[7] = a[13]; + out[8] = a[2]; + out[9] = a[6]; + out[10] = a[10]; + out[11] = a[14]; + out[12] = a[3]; + out[13] = a[7]; + out[14] = a[11]; + out[15] = a[15]; + } + + return out; + }; + + /** + * Transpose the values of a mat4 using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.SIMD.transpose = function(out, a) { + var a0, a1, a2, a3, + tmp01, tmp23, + out0, out1, out2, out3; + + a0 = SIMD.Float32x4.load(a, 0); + a1 = SIMD.Float32x4.load(a, 4); + a2 = SIMD.Float32x4.load(a, 8); + a3 = SIMD.Float32x4.load(a, 12); + + tmp01 = SIMD.Float32x4.shuffle(a0, a1, 0, 1, 4, 5); + tmp23 = SIMD.Float32x4.shuffle(a2, a3, 0, 1, 4, 5); + out0 = SIMD.Float32x4.shuffle(tmp01, tmp23, 0, 2, 4, 6); + out1 = SIMD.Float32x4.shuffle(tmp01, tmp23, 1, 3, 5, 7); + SIMD.Float32x4.store(out, 0, out0); + SIMD.Float32x4.store(out, 4, out1); + + tmp01 = SIMD.Float32x4.shuffle(a0, a1, 2, 3, 6, 7); + tmp23 = SIMD.Float32x4.shuffle(a2, a3, 2, 3, 6, 7); + out2 = SIMD.Float32x4.shuffle(tmp01, tmp23, 0, 2, 4, 6); + out3 = SIMD.Float32x4.shuffle(tmp01, tmp23, 1, 3, 5, 7); + SIMD.Float32x4.store(out, 8, out2); + SIMD.Float32x4.store(out, 12, out3); + + return out; + }; + + /** + * Transpse a mat4 using SIMD if available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.transpose = glMatrix.USE_SIMD ? mat4.SIMD.transpose : mat4.scalar.transpose; + + /** + * Inverts a mat4 not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.scalar.invert = function(out, a) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], + + b00 = a00 * a11 - a01 * a10, + b01 = a00 * a12 - a02 * a10, + b02 = a00 * a13 - a03 * a10, + b03 = a01 * a12 - a02 * a11, + b04 = a01 * a13 - a03 * a11, + b05 = a02 * a13 - a03 * a12, + b06 = a20 * a31 - a21 * a30, + b07 = a20 * a32 - a22 * a30, + b08 = a20 * a33 - a23 * a30, + b09 = a21 * a32 - a22 * a31, + b10 = a21 * a33 - a23 * a31, + b11 = a22 * a33 - a23 * a32, + + // Calculate the determinant + det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + + if (!det) { + return null; + } + det = 1.0 / det; + + out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det; + out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det; + out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det; + out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det; + out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det; + out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det; + out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det; + out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det; + out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det; + out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det; + out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det; + out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det; + out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det; + out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det; + out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det; + out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det; + + return out; + }; + + /** + * Inverts a mat4 using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.SIMD.invert = function(out, a) { + var row0, row1, row2, row3, + tmp1, + minor0, minor1, minor2, minor3, + det, + a0 = SIMD.Float32x4.load(a, 0), + a1 = SIMD.Float32x4.load(a, 4), + a2 = SIMD.Float32x4.load(a, 8), + a3 = SIMD.Float32x4.load(a, 12); + + // Compute matrix adjugate + tmp1 = SIMD.Float32x4.shuffle(a0, a1, 0, 1, 4, 5); + row1 = SIMD.Float32x4.shuffle(a2, a3, 0, 1, 4, 5); + row0 = SIMD.Float32x4.shuffle(tmp1, row1, 0, 2, 4, 6); + row1 = SIMD.Float32x4.shuffle(row1, tmp1, 1, 3, 5, 7); + tmp1 = SIMD.Float32x4.shuffle(a0, a1, 2, 3, 6, 7); + row3 = SIMD.Float32x4.shuffle(a2, a3, 2, 3, 6, 7); + row2 = SIMD.Float32x4.shuffle(tmp1, row3, 0, 2, 4, 6); + row3 = SIMD.Float32x4.shuffle(row3, tmp1, 1, 3, 5, 7); + + tmp1 = SIMD.Float32x4.mul(row2, row3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor0 = SIMD.Float32x4.mul(row1, tmp1); + minor1 = SIMD.Float32x4.mul(row0, tmp1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row1, tmp1), minor0); + minor1 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row0, tmp1), minor1); + minor1 = SIMD.Float32x4.swizzle(minor1, 2, 3, 0, 1); + + tmp1 = SIMD.Float32x4.mul(row1, row2); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor0 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row3, tmp1), minor0); + minor3 = SIMD.Float32x4.mul(row0, tmp1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.sub(minor0, SIMD.Float32x4.mul(row3, tmp1)); + minor3 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row0, tmp1), minor3); + minor3 = SIMD.Float32x4.swizzle(minor3, 2, 3, 0, 1); + + tmp1 = SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(row1, 2, 3, 0, 1), row3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + row2 = SIMD.Float32x4.swizzle(row2, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row2, tmp1), minor0); + minor2 = SIMD.Float32x4.mul(row0, tmp1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.sub(minor0, SIMD.Float32x4.mul(row2, tmp1)); + minor2 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row0, tmp1), minor2); + minor2 = SIMD.Float32x4.swizzle(minor2, 2, 3, 0, 1); + + tmp1 = SIMD.Float32x4.mul(row0, row1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor2 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row3, tmp1), minor2); + minor3 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row2, tmp1), minor3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor2 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row3, tmp1), minor2); + minor3 = SIMD.Float32x4.sub(minor3, SIMD.Float32x4.mul(row2, tmp1)); + + tmp1 = SIMD.Float32x4.mul(row0, row3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor1 = SIMD.Float32x4.sub(minor1, SIMD.Float32x4.mul(row2, tmp1)); + minor2 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row1, tmp1), minor2); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor1 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row2, tmp1), minor1); + minor2 = SIMD.Float32x4.sub(minor2, SIMD.Float32x4.mul(row1, tmp1)); + + tmp1 = SIMD.Float32x4.mul(row0, row2); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor1 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row3, tmp1), minor1); + minor3 = SIMD.Float32x4.sub(minor3, SIMD.Float32x4.mul(row1, tmp1)); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor1 = SIMD.Float32x4.sub(minor1, SIMD.Float32x4.mul(row3, tmp1)); + minor3 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row1, tmp1), minor3); + + // Compute matrix determinant + det = SIMD.Float32x4.mul(row0, minor0); + det = SIMD.Float32x4.add(SIMD.Float32x4.swizzle(det, 2, 3, 0, 1), det); + det = SIMD.Float32x4.add(SIMD.Float32x4.swizzle(det, 1, 0, 3, 2), det); + tmp1 = SIMD.Float32x4.reciprocalApproximation(det); + det = SIMD.Float32x4.sub( + SIMD.Float32x4.add(tmp1, tmp1), + SIMD.Float32x4.mul(det, SIMD.Float32x4.mul(tmp1, tmp1))); + det = SIMD.Float32x4.swizzle(det, 0, 0, 0, 0); + if (!det) { + return null; + } + + // Compute matrix inverse + SIMD.Float32x4.store(out, 0, SIMD.Float32x4.mul(det, minor0)); + SIMD.Float32x4.store(out, 4, SIMD.Float32x4.mul(det, minor1)); + SIMD.Float32x4.store(out, 8, SIMD.Float32x4.mul(det, minor2)); + SIMD.Float32x4.store(out, 12, SIMD.Float32x4.mul(det, minor3)); + return out; + } + + /** + * Inverts a mat4 using SIMD if available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.invert = glMatrix.USE_SIMD ? mat4.SIMD.invert : mat4.scalar.invert; + + /** + * Calculates the adjugate of a mat4 not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.scalar.adjoint = function(out, a) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15]; + + out[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22)); + out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22)); + out[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12)); + out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12)); + out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22)); + out[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22)); + out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12)); + out[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12)); + out[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21)); + out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21)); + out[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11)); + out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11)); + out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21)); + out[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21)); + out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11)); + out[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11)); + return out; + }; + + /** + * Calculates the adjugate of a mat4 using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.SIMD.adjoint = function(out, a) { + var a0, a1, a2, a3; + var row0, row1, row2, row3; + var tmp1; + var minor0, minor1, minor2, minor3; + + var a0 = SIMD.Float32x4.load(a, 0); + var a1 = SIMD.Float32x4.load(a, 4); + var a2 = SIMD.Float32x4.load(a, 8); + var a3 = SIMD.Float32x4.load(a, 12); + + // Transpose the source matrix. Sort of. Not a true transpose operation + tmp1 = SIMD.Float32x4.shuffle(a0, a1, 0, 1, 4, 5); + row1 = SIMD.Float32x4.shuffle(a2, a3, 0, 1, 4, 5); + row0 = SIMD.Float32x4.shuffle(tmp1, row1, 0, 2, 4, 6); + row1 = SIMD.Float32x4.shuffle(row1, tmp1, 1, 3, 5, 7); + + tmp1 = SIMD.Float32x4.shuffle(a0, a1, 2, 3, 6, 7); + row3 = SIMD.Float32x4.shuffle(a2, a3, 2, 3, 6, 7); + row2 = SIMD.Float32x4.shuffle(tmp1, row3, 0, 2, 4, 6); + row3 = SIMD.Float32x4.shuffle(row3, tmp1, 1, 3, 5, 7); + + tmp1 = SIMD.Float32x4.mul(row2, row3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor0 = SIMD.Float32x4.mul(row1, tmp1); + minor1 = SIMD.Float32x4.mul(row0, tmp1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row1, tmp1), minor0); + minor1 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row0, tmp1), minor1); + minor1 = SIMD.Float32x4.swizzle(minor1, 2, 3, 0, 1); + + tmp1 = SIMD.Float32x4.mul(row1, row2); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor0 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row3, tmp1), minor0); + minor3 = SIMD.Float32x4.mul(row0, tmp1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.sub(minor0, SIMD.Float32x4.mul(row3, tmp1)); + minor3 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row0, tmp1), minor3); + minor3 = SIMD.Float32x4.swizzle(minor3, 2, 3, 0, 1); + + tmp1 = SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(row1, 2, 3, 0, 1), row3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + row2 = SIMD.Float32x4.swizzle(row2, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row2, tmp1), minor0); + minor2 = SIMD.Float32x4.mul(row0, tmp1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor0 = SIMD.Float32x4.sub(minor0, SIMD.Float32x4.mul(row2, tmp1)); + minor2 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row0, tmp1), minor2); + minor2 = SIMD.Float32x4.swizzle(minor2, 2, 3, 0, 1); + + tmp1 = SIMD.Float32x4.mul(row0, row1); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor2 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row3, tmp1), minor2); + minor3 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row2, tmp1), minor3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor2 = SIMD.Float32x4.sub(SIMD.Float32x4.mul(row3, tmp1), minor2); + minor3 = SIMD.Float32x4.sub(minor3, SIMD.Float32x4.mul(row2, tmp1)); + + tmp1 = SIMD.Float32x4.mul(row0, row3); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor1 = SIMD.Float32x4.sub(minor1, SIMD.Float32x4.mul(row2, tmp1)); + minor2 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row1, tmp1), minor2); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor1 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row2, tmp1), minor1); + minor2 = SIMD.Float32x4.sub(minor2, SIMD.Float32x4.mul(row1, tmp1)); + + tmp1 = SIMD.Float32x4.mul(row0, row2); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 1, 0, 3, 2); + minor1 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row3, tmp1), minor1); + minor3 = SIMD.Float32x4.sub(minor3, SIMD.Float32x4.mul(row1, tmp1)); + tmp1 = SIMD.Float32x4.swizzle(tmp1, 2, 3, 0, 1); + minor1 = SIMD.Float32x4.sub(minor1, SIMD.Float32x4.mul(row3, tmp1)); + minor3 = SIMD.Float32x4.add(SIMD.Float32x4.mul(row1, tmp1), minor3); + + SIMD.Float32x4.store(out, 0, minor0); + SIMD.Float32x4.store(out, 4, minor1); + SIMD.Float32x4.store(out, 8, minor2); + SIMD.Float32x4.store(out, 12, minor3); + return out; + }; + + /** + * Calculates the adjugate of a mat4 using SIMD if available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the source matrix + * @returns {mat4} out + */ + mat4.adjoint = glMatrix.USE_SIMD ? mat4.SIMD.adjoint : mat4.scalar.adjoint; + + /** + * Calculates the determinant of a mat4 + * + * @param {mat4} a the source matrix + * @returns {Number} determinant of a + */ + mat4.determinant = function (a) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], + + b00 = a00 * a11 - a01 * a10, + b01 = a00 * a12 - a02 * a10, + b02 = a00 * a13 - a03 * a10, + b03 = a01 * a12 - a02 * a11, + b04 = a01 * a13 - a03 * a11, + b05 = a02 * a13 - a03 * a12, + b06 = a20 * a31 - a21 * a30, + b07 = a20 * a32 - a22 * a30, + b08 = a20 * a33 - a23 * a30, + b09 = a21 * a32 - a22 * a31, + b10 = a21 * a33 - a23 * a31, + b11 = a22 * a33 - a23 * a32; + + // Calculate the determinant + return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06; + }; + + /** + * Multiplies two mat4's explicitly using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand, must be a Float32Array + * @param {mat4} b the second operand, must be a Float32Array + * @returns {mat4} out + */ + mat4.SIMD.multiply = function (out, a, b) { + var a0 = SIMD.Float32x4.load(a, 0); + var a1 = SIMD.Float32x4.load(a, 4); + var a2 = SIMD.Float32x4.load(a, 8); + var a3 = SIMD.Float32x4.load(a, 12); + + var b0 = SIMD.Float32x4.load(b, 0); + var out0 = SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b0, 0, 0, 0, 0), a0), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b0, 1, 1, 1, 1), a1), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b0, 2, 2, 2, 2), a2), + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b0, 3, 3, 3, 3), a3)))); + SIMD.Float32x4.store(out, 0, out0); + + var b1 = SIMD.Float32x4.load(b, 4); + var out1 = SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b1, 0, 0, 0, 0), a0), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b1, 1, 1, 1, 1), a1), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b1, 2, 2, 2, 2), a2), + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b1, 3, 3, 3, 3), a3)))); + SIMD.Float32x4.store(out, 4, out1); + + var b2 = SIMD.Float32x4.load(b, 8); + var out2 = SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b2, 0, 0, 0, 0), a0), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b2, 1, 1, 1, 1), a1), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b2, 2, 2, 2, 2), a2), + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b2, 3, 3, 3, 3), a3)))); + SIMD.Float32x4.store(out, 8, out2); + + var b3 = SIMD.Float32x4.load(b, 12); + var out3 = SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b3, 0, 0, 0, 0), a0), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b3, 1, 1, 1, 1), a1), + SIMD.Float32x4.add( + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b3, 2, 2, 2, 2), a2), + SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(b3, 3, 3, 3, 3), a3)))); + SIMD.Float32x4.store(out, 12, out3); + + return out; + }; + + /** + * Multiplies two mat4's explicitly not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ + mat4.scalar.multiply = function (out, a, b) { + var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], + a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], + a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], + a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15]; + + // Cache only the current line of the second matrix + var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3]; + out[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30; + out[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31; + out[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32; + out[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33; + + b0 = b[4]; b1 = b[5]; b2 = b[6]; b3 = b[7]; + out[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30; + out[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31; + out[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32; + out[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33; + + b0 = b[8]; b1 = b[9]; b2 = b[10]; b3 = b[11]; + out[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30; + out[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31; + out[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32; + out[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33; + + b0 = b[12]; b1 = b[13]; b2 = b[14]; b3 = b[15]; + out[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30; + out[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31; + out[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32; + out[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33; + return out; + }; + + /** + * Multiplies two mat4's using SIMD if available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ + mat4.multiply = glMatrix.USE_SIMD ? mat4.SIMD.multiply : mat4.scalar.multiply; + + /** + * Alias for {@link mat4.multiply} + * @function + */ + mat4.mul = mat4.multiply; + + /** + * Translate a mat4 by the given vector not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to translate + * @param {vec3} v vector to translate by + * @returns {mat4} out + */ + mat4.scalar.translate = function (out, a, v) { + var x = v[0], y = v[1], z = v[2], + a00, a01, a02, a03, + a10, a11, a12, a13, + a20, a21, a22, a23; + + if (a === out) { + out[12] = a[0] * x + a[4] * y + a[8] * z + a[12]; + out[13] = a[1] * x + a[5] * y + a[9] * z + a[13]; + out[14] = a[2] * x + a[6] * y + a[10] * z + a[14]; + out[15] = a[3] * x + a[7] * y + a[11] * z + a[15]; + } else { + a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3]; + a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7]; + a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11]; + + out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03; + out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13; + out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23; + + out[12] = a00 * x + a10 * y + a20 * z + a[12]; + out[13] = a01 * x + a11 * y + a21 * z + a[13]; + out[14] = a02 * x + a12 * y + a22 * z + a[14]; + out[15] = a03 * x + a13 * y + a23 * z + a[15]; + } + + return out; + }; + + /** + * Translates a mat4 by the given vector using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to translate + * @param {vec3} v vector to translate by + * @returns {mat4} out + */ + mat4.SIMD.translate = function (out, a, v) { + var a0 = SIMD.Float32x4.load(a, 0), + a1 = SIMD.Float32x4.load(a, 4), + a2 = SIMD.Float32x4.load(a, 8), + a3 = SIMD.Float32x4.load(a, 12), + vec = SIMD.Float32x4(v[0], v[1], v[2] , 0); + + if (a !== out) { + out[0] = a[0]; out[1] = a[1]; out[2] = a[2]; out[3] = a[3]; + out[4] = a[4]; out[5] = a[5]; out[6] = a[6]; out[7] = a[7]; + out[8] = a[8]; out[9] = a[9]; out[10] = a[10]; out[11] = a[11]; + } + + a0 = SIMD.Float32x4.mul(a0, SIMD.Float32x4.swizzle(vec, 0, 0, 0, 0)); + a1 = SIMD.Float32x4.mul(a1, SIMD.Float32x4.swizzle(vec, 1, 1, 1, 1)); + a2 = SIMD.Float32x4.mul(a2, SIMD.Float32x4.swizzle(vec, 2, 2, 2, 2)); + + var t0 = SIMD.Float32x4.add(a0, SIMD.Float32x4.add(a1, SIMD.Float32x4.add(a2, a3))); + SIMD.Float32x4.store(out, 12, t0); + + return out; + }; + + /** + * Translates a mat4 by the given vector using SIMD if available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to translate + * @param {vec3} v vector to translate by + * @returns {mat4} out + */ + mat4.translate = glMatrix.USE_SIMD ? mat4.SIMD.translate : mat4.scalar.translate; + + /** + * Scales the mat4 by the dimensions in the given vec3 not using vectorization + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to scale + * @param {vec3} v the vec3 to scale the matrix by + * @returns {mat4} out + **/ + mat4.scalar.scale = function(out, a, v) { + var x = v[0], y = v[1], z = v[2]; + + out[0] = a[0] * x; + out[1] = a[1] * x; + out[2] = a[2] * x; + out[3] = a[3] * x; + out[4] = a[4] * y; + out[5] = a[5] * y; + out[6] = a[6] * y; + out[7] = a[7] * y; + out[8] = a[8] * z; + out[9] = a[9] * z; + out[10] = a[10] * z; + out[11] = a[11] * z; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; + }; + + /** + * Scales the mat4 by the dimensions in the given vec3 using vectorization + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to scale + * @param {vec3} v the vec3 to scale the matrix by + * @returns {mat4} out + **/ + mat4.SIMD.scale = function(out, a, v) { + var a0, a1, a2; + var vec = SIMD.Float32x4(v[0], v[1], v[2], 0); + + a0 = SIMD.Float32x4.load(a, 0); + SIMD.Float32x4.store( + out, 0, SIMD.Float32x4.mul(a0, SIMD.Float32x4.swizzle(vec, 0, 0, 0, 0))); + + a1 = SIMD.Float32x4.load(a, 4); + SIMD.Float32x4.store( + out, 4, SIMD.Float32x4.mul(a1, SIMD.Float32x4.swizzle(vec, 1, 1, 1, 1))); + + a2 = SIMD.Float32x4.load(a, 8); + SIMD.Float32x4.store( + out, 8, SIMD.Float32x4.mul(a2, SIMD.Float32x4.swizzle(vec, 2, 2, 2, 2))); + + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + return out; + }; + + /** + * Scales the mat4 by the dimensions in the given vec3 using SIMD if available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to scale + * @param {vec3} v the vec3 to scale the matrix by + * @returns {mat4} out + */ + mat4.scale = glMatrix.USE_SIMD ? mat4.SIMD.scale : mat4.scalar.scale; + + /** + * Rotates a mat4 by the given angle around the given axis + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @param {vec3} axis the axis to rotate around + * @returns {mat4} out + */ + mat4.rotate = function (out, a, rad, axis) { + var x = axis[0], y = axis[1], z = axis[2], + len = Math.sqrt(x * x + y * y + z * z), + s, c, t, + a00, a01, a02, a03, + a10, a11, a12, a13, + a20, a21, a22, a23, + b00, b01, b02, + b10, b11, b12, + b20, b21, b22; + + if (Math.abs(len) < glMatrix.EPSILON) { return null; } + + len = 1 / len; + x *= len; + y *= len; + z *= len; + + s = Math.sin(rad); + c = Math.cos(rad); + t = 1 - c; + + a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3]; + a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7]; + a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11]; + + // Construct the elements of the rotation matrix + b00 = x * x * t + c; b01 = y * x * t + z * s; b02 = z * x * t - y * s; + b10 = x * y * t - z * s; b11 = y * y * t + c; b12 = z * y * t + x * s; + b20 = x * z * t + y * s; b21 = y * z * t - x * s; b22 = z * z * t + c; + + // Perform rotation-specific matrix multiplication + out[0] = a00 * b00 + a10 * b01 + a20 * b02; + out[1] = a01 * b00 + a11 * b01 + a21 * b02; + out[2] = a02 * b00 + a12 * b01 + a22 * b02; + out[3] = a03 * b00 + a13 * b01 + a23 * b02; + out[4] = a00 * b10 + a10 * b11 + a20 * b12; + out[5] = a01 * b10 + a11 * b11 + a21 * b12; + out[6] = a02 * b10 + a12 * b11 + a22 * b12; + out[7] = a03 * b10 + a13 * b11 + a23 * b12; + out[8] = a00 * b20 + a10 * b21 + a20 * b22; + out[9] = a01 * b20 + a11 * b21 + a21 * b22; + out[10] = a02 * b20 + a12 * b21 + a22 * b22; + out[11] = a03 * b20 + a13 * b21 + a23 * b22; + + if (a !== out) { // If the source and destination differ, copy the unchanged last row + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + return out; + }; + + /** + * Rotates a matrix by the given angle around the X axis not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.scalar.rotateX = function (out, a, rad) { + var s = Math.sin(rad), + c = Math.cos(rad), + a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7], + a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + + if (a !== out) { // If the source and destination differ, copy the unchanged rows + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + out[4] = a10 * c + a20 * s; + out[5] = a11 * c + a21 * s; + out[6] = a12 * c + a22 * s; + out[7] = a13 * c + a23 * s; + out[8] = a20 * c - a10 * s; + out[9] = a21 * c - a11 * s; + out[10] = a22 * c - a12 * s; + out[11] = a23 * c - a13 * s; + return out; + }; + + /** + * Rotates a matrix by the given angle around the X axis using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.SIMD.rotateX = function (out, a, rad) { + var s = SIMD.Float32x4.splat(Math.sin(rad)), + c = SIMD.Float32x4.splat(Math.cos(rad)); + + if (a !== out) { // If the source and destination differ, copy the unchanged rows + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + var a_1 = SIMD.Float32x4.load(a, 4); + var a_2 = SIMD.Float32x4.load(a, 8); + SIMD.Float32x4.store(out, 4, + SIMD.Float32x4.add(SIMD.Float32x4.mul(a_1, c), SIMD.Float32x4.mul(a_2, s))); + SIMD.Float32x4.store(out, 8, + SIMD.Float32x4.sub(SIMD.Float32x4.mul(a_2, c), SIMD.Float32x4.mul(a_1, s))); + return out; + }; + + /** + * Rotates a matrix by the given angle around the X axis using SIMD if availabe and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.rotateX = glMatrix.USE_SIMD ? mat4.SIMD.rotateX : mat4.scalar.rotateX; + + /** + * Rotates a matrix by the given angle around the Y axis not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.scalar.rotateY = function (out, a, rad) { + var s = Math.sin(rad), + c = Math.cos(rad), + a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3], + a20 = a[8], + a21 = a[9], + a22 = a[10], + a23 = a[11]; + + if (a !== out) { // If the source and destination differ, copy the unchanged rows + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + out[0] = a00 * c - a20 * s; + out[1] = a01 * c - a21 * s; + out[2] = a02 * c - a22 * s; + out[3] = a03 * c - a23 * s; + out[8] = a00 * s + a20 * c; + out[9] = a01 * s + a21 * c; + out[10] = a02 * s + a22 * c; + out[11] = a03 * s + a23 * c; + return out; + }; + + /** + * Rotates a matrix by the given angle around the Y axis using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.SIMD.rotateY = function (out, a, rad) { + var s = SIMD.Float32x4.splat(Math.sin(rad)), + c = SIMD.Float32x4.splat(Math.cos(rad)); + + if (a !== out) { // If the source and destination differ, copy the unchanged rows + out[4] = a[4]; + out[5] = a[5]; + out[6] = a[6]; + out[7] = a[7]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + var a_0 = SIMD.Float32x4.load(a, 0); + var a_2 = SIMD.Float32x4.load(a, 8); + SIMD.Float32x4.store(out, 0, + SIMD.Float32x4.sub(SIMD.Float32x4.mul(a_0, c), SIMD.Float32x4.mul(a_2, s))); + SIMD.Float32x4.store(out, 8, + SIMD.Float32x4.add(SIMD.Float32x4.mul(a_0, s), SIMD.Float32x4.mul(a_2, c))); + return out; + }; + + /** + * Rotates a matrix by the given angle around the Y axis if SIMD available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.rotateY = glMatrix.USE_SIMD ? mat4.SIMD.rotateY : mat4.scalar.rotateY; + + /** + * Rotates a matrix by the given angle around the Z axis not using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.scalar.rotateZ = function (out, a, rad) { + var s = Math.sin(rad), + c = Math.cos(rad), + a00 = a[0], + a01 = a[1], + a02 = a[2], + a03 = a[3], + a10 = a[4], + a11 = a[5], + a12 = a[6], + a13 = a[7]; + + if (a !== out) { // If the source and destination differ, copy the unchanged last row + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + out[0] = a00 * c + a10 * s; + out[1] = a01 * c + a11 * s; + out[2] = a02 * c + a12 * s; + out[3] = a03 * c + a13 * s; + out[4] = a10 * c - a00 * s; + out[5] = a11 * c - a01 * s; + out[6] = a12 * c - a02 * s; + out[7] = a13 * c - a03 * s; + return out; + }; + + /** + * Rotates a matrix by the given angle around the Z axis using SIMD + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.SIMD.rotateZ = function (out, a, rad) { + var s = SIMD.Float32x4.splat(Math.sin(rad)), + c = SIMD.Float32x4.splat(Math.cos(rad)); + + if (a !== out) { // If the source and destination differ, copy the unchanged last row + out[8] = a[8]; + out[9] = a[9]; + out[10] = a[10]; + out[11] = a[11]; + out[12] = a[12]; + out[13] = a[13]; + out[14] = a[14]; + out[15] = a[15]; + } + + // Perform axis-specific matrix multiplication + var a_0 = SIMD.Float32x4.load(a, 0); + var a_1 = SIMD.Float32x4.load(a, 4); + SIMD.Float32x4.store(out, 0, + SIMD.Float32x4.add(SIMD.Float32x4.mul(a_0, c), SIMD.Float32x4.mul(a_1, s))); + SIMD.Float32x4.store(out, 4, + SIMD.Float32x4.sub(SIMD.Float32x4.mul(a_1, c), SIMD.Float32x4.mul(a_0, s))); + return out; + }; + + /** + * Rotates a matrix by the given angle around the Z axis if SIMD available and enabled + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to rotate + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.rotateZ = glMatrix.USE_SIMD ? mat4.SIMD.rotateZ : mat4.scalar.rotateZ; + + /** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, dest, vec); + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Translation vector + * @returns {mat4} out + */ + mat4.fromTranslation = function(out, v) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + return out; + } + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.scale(dest, dest, vec); + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Scaling vector + * @returns {mat4} out + */ + mat4.fromScaling = function(out, v) { + out[0] = v[0]; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = v[1]; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = v[2]; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + } + + /** + * Creates a matrix from a given angle around a given axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotate(dest, dest, rad, axis); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @param {vec3} axis the axis to rotate around + * @returns {mat4} out + */ + mat4.fromRotation = function(out, rad, axis) { + var x = axis[0], y = axis[1], z = axis[2], + len = Math.sqrt(x * x + y * y + z * z), + s, c, t; + + if (Math.abs(len) < glMatrix.EPSILON) { return null; } + + len = 1 / len; + x *= len; + y *= len; + z *= len; + + s = Math.sin(rad); + c = Math.cos(rad); + t = 1 - c; + + // Perform rotation-specific matrix multiplication + out[0] = x * x * t + c; + out[1] = y * x * t + z * s; + out[2] = z * x * t - y * s; + out[3] = 0; + out[4] = x * y * t - z * s; + out[5] = y * y * t + c; + out[6] = z * y * t + x * s; + out[7] = 0; + out[8] = x * z * t + y * s; + out[9] = y * z * t - x * s; + out[10] = z * z * t + c; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + } + + /** + * Creates a matrix from the given angle around the X axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateX(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.fromXRotation = function(out, rad) { + var s = Math.sin(rad), + c = Math.cos(rad); + + // Perform axis-specific matrix multiplication + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = c; + out[6] = s; + out[7] = 0; + out[8] = 0; + out[9] = -s; + out[10] = c; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + } + + /** + * Creates a matrix from the given angle around the Y axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateY(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.fromYRotation = function(out, rad) { + var s = Math.sin(rad), + c = Math.cos(rad); + + // Perform axis-specific matrix multiplication + out[0] = c; + out[1] = 0; + out[2] = -s; + out[3] = 0; + out[4] = 0; + out[5] = 1; + out[6] = 0; + out[7] = 0; + out[8] = s; + out[9] = 0; + out[10] = c; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + } + + /** + * Creates a matrix from the given angle around the Z axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateZ(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {Number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + mat4.fromZRotation = function(out, rad) { + var s = Math.sin(rad), + c = Math.cos(rad); + + // Perform axis-specific matrix multiplication + out[0] = c; + out[1] = s; + out[2] = 0; + out[3] = 0; + out[4] = -s; + out[5] = c; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 1; + out[11] = 0; + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + return out; + } + + /** + * Creates a matrix from a quaternion rotation and vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @returns {mat4} out + */ + mat4.fromRotationTranslation = function (out, q, v) { + // Quaternion math + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, + + xx = x * x2, + xy = x * y2, + xz = x * z2, + yy = y * y2, + yz = y * z2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2; + + out[0] = 1 - (yy + zz); + out[1] = xy + wz; + out[2] = xz - wy; + out[3] = 0; + out[4] = xy - wz; + out[5] = 1 - (xx + zz); + out[6] = yz + wx; + out[7] = 0; + out[8] = xz + wy; + out[9] = yz - wx; + out[10] = 1 - (xx + yy); + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + + return out; + }; + + /** + * Creates a matrix from a quaternion rotation, vector translation and vector scale + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * mat4.scale(dest, scale) + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @param {vec3} s Scaling vector + * @returns {mat4} out + */ + mat4.fromRotationTranslationScale = function (out, q, v, s) { + // Quaternion math + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, + + xx = x * x2, + xy = x * y2, + xz = x * z2, + yy = y * y2, + yz = y * z2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2, + sx = s[0], + sy = s[1], + sz = s[2]; + + out[0] = (1 - (yy + zz)) * sx; + out[1] = (xy + wz) * sx; + out[2] = (xz - wy) * sx; + out[3] = 0; + out[4] = (xy - wz) * sy; + out[5] = (1 - (xx + zz)) * sy; + out[6] = (yz + wx) * sy; + out[7] = 0; + out[8] = (xz + wy) * sz; + out[9] = (yz - wx) * sz; + out[10] = (1 - (xx + yy)) * sz; + out[11] = 0; + out[12] = v[0]; + out[13] = v[1]; + out[14] = v[2]; + out[15] = 1; + + return out; + }; + + /** + * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * mat4.translate(dest, origin); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * mat4.scale(dest, scale) + * mat4.translate(dest, negativeOrigin); + * + * @param {mat4} out mat4 receiving operation result + * @param {quat4} q Rotation quaternion + * @param {vec3} v Translation vector + * @param {vec3} s Scaling vector + * @param {vec3} o The origin vector around which to scale and rotate + * @returns {mat4} out + */ + mat4.fromRotationTranslationScaleOrigin = function (out, q, v, s, o) { + // Quaternion math + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, + + xx = x * x2, + xy = x * y2, + xz = x * z2, + yy = y * y2, + yz = y * z2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2, + + sx = s[0], + sy = s[1], + sz = s[2], + + ox = o[0], + oy = o[1], + oz = o[2]; + + out[0] = (1 - (yy + zz)) * sx; + out[1] = (xy + wz) * sx; + out[2] = (xz - wy) * sx; + out[3] = 0; + out[4] = (xy - wz) * sy; + out[5] = (1 - (xx + zz)) * sy; + out[6] = (yz + wx) * sy; + out[7] = 0; + out[8] = (xz + wy) * sz; + out[9] = (yz - wx) * sz; + out[10] = (1 - (xx + yy)) * sz; + out[11] = 0; + out[12] = v[0] + ox - (out[0] * ox + out[4] * oy + out[8] * oz); + out[13] = v[1] + oy - (out[1] * ox + out[5] * oy + out[9] * oz); + out[14] = v[2] + oz - (out[2] * ox + out[6] * oy + out[10] * oz); + out[15] = 1; + + return out; + }; + + mat4.fromQuat = function (out, q) { + var x = q[0], y = q[1], z = q[2], w = q[3], + x2 = x + x, + y2 = y + y, + z2 = z + z, + + xx = x * x2, + yx = y * x2, + yy = y * y2, + zx = z * x2, + zy = z * y2, + zz = z * z2, + wx = w * x2, + wy = w * y2, + wz = w * z2; + + out[0] = 1 - yy - zz; + out[1] = yx + wz; + out[2] = zx - wy; + out[3] = 0; + + out[4] = yx - wz; + out[5] = 1 - xx - zz; + out[6] = zy + wx; + out[7] = 0; + + out[8] = zx + wy; + out[9] = zy - wx; + out[10] = 1 - xx - yy; + out[11] = 0; + + out[12] = 0; + out[13] = 0; + out[14] = 0; + out[15] = 1; + + return out; + }; + + /** + * Generates a frustum matrix with the given bounds + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {Number} left Left bound of the frustum + * @param {Number} right Right bound of the frustum + * @param {Number} bottom Bottom bound of the frustum + * @param {Number} top Top bound of the frustum + * @param {Number} near Near bound of the frustum + * @param {Number} far Far bound of the frustum + * @returns {mat4} out + */ + mat4.frustum = function (out, left, right, bottom, top, near, far) { + var rl = 1 / (right - left), + tb = 1 / (top - bottom), + nf = 1 / (near - far); + out[0] = (near * 2) * rl; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = (near * 2) * tb; + out[6] = 0; + out[7] = 0; + out[8] = (right + left) * rl; + out[9] = (top + bottom) * tb; + out[10] = (far + near) * nf; + out[11] = -1; + out[12] = 0; + out[13] = 0; + out[14] = (far * near * 2) * nf; + out[15] = 0; + return out; + }; + + /** + * Generates a perspective projection matrix with the given bounds + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {number} fovy Vertical field of view in radians + * @param {number} aspect Aspect ratio. typically viewport width/height + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ + mat4.perspective = function (out, fovy, aspect, near, far) { + var f = 1.0 / Math.tan(fovy / 2), + nf = 1 / (near - far); + out[0] = f / aspect; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = f; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = (far + near) * nf; + out[11] = -1; + out[12] = 0; + out[13] = 0; + out[14] = (2 * far * near) * nf; + out[15] = 0; + return out; + }; + + /** + * Generates a perspective projection matrix with the given field of view. + * This is primarily useful for generating projection matrices to be used + * with the still experiemental WebVR API. + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {number} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ + mat4.perspectiveFromFieldOfView = function (out, fov, near, far) { + var upTan = Math.tan(fov.upDegrees * Math.PI/180.0), + downTan = Math.tan(fov.downDegrees * Math.PI/180.0), + leftTan = Math.tan(fov.leftDegrees * Math.PI/180.0), + rightTan = Math.tan(fov.rightDegrees * Math.PI/180.0), + xScale = 2.0 / (leftTan + rightTan), + yScale = 2.0 / (upTan + downTan); + + out[0] = xScale; + out[1] = 0.0; + out[2] = 0.0; + out[3] = 0.0; + out[4] = 0.0; + out[5] = yScale; + out[6] = 0.0; + out[7] = 0.0; + out[8] = -((leftTan - rightTan) * xScale * 0.5); + out[9] = ((upTan - downTan) * yScale * 0.5); + out[10] = far / (near - far); + out[11] = -1.0; + out[12] = 0.0; + out[13] = 0.0; + out[14] = (far * near) / (near - far); + out[15] = 0.0; + return out; + } + + /** + * Generates a orthogonal projection matrix with the given bounds + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {number} left Left bound of the frustum + * @param {number} right Right bound of the frustum + * @param {number} bottom Bottom bound of the frustum + * @param {number} top Top bound of the frustum + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ + mat4.ortho = function (out, left, right, bottom, top, near, far) { + var lr = 1 / (left - right), + bt = 1 / (bottom - top), + nf = 1 / (near - far); + out[0] = -2 * lr; + out[1] = 0; + out[2] = 0; + out[3] = 0; + out[4] = 0; + out[5] = -2 * bt; + out[6] = 0; + out[7] = 0; + out[8] = 0; + out[9] = 0; + out[10] = 2 * nf; + out[11] = 0; + out[12] = (left + right) * lr; + out[13] = (top + bottom) * bt; + out[14] = (far + near) * nf; + out[15] = 1; + return out; + }; + + /** + * Generates a look-at matrix with the given eye position, focal point, and up axis + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {vec3} eye Position of the viewer + * @param {vec3} center Point the viewer is looking at + * @param {vec3} up vec3 pointing up + * @returns {mat4} out + */ + mat4.lookAt = function (out, eye, center, up) { + var x0, x1, x2, y0, y1, y2, z0, z1, z2, len, + eyex = eye[0], + eyey = eye[1], + eyez = eye[2], + upx = up[0], + upy = up[1], + upz = up[2], + centerx = center[0], + centery = center[1], + centerz = center[2]; + + if (Math.abs(eyex - centerx) < glMatrix.EPSILON && + Math.abs(eyey - centery) < glMatrix.EPSILON && + Math.abs(eyez - centerz) < glMatrix.EPSILON) { + return mat4.identity(out); + } + + z0 = eyex - centerx; + z1 = eyey - centery; + z2 = eyez - centerz; + + len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2); + z0 *= len; + z1 *= len; + z2 *= len; + + x0 = upy * z2 - upz * z1; + x1 = upz * z0 - upx * z2; + x2 = upx * z1 - upy * z0; + len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2); + if (!len) { + x0 = 0; + x1 = 0; + x2 = 0; + } else { + len = 1 / len; + x0 *= len; + x1 *= len; + x2 *= len; + } + + y0 = z1 * x2 - z2 * x1; + y1 = z2 * x0 - z0 * x2; + y2 = z0 * x1 - z1 * x0; + + len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2); + if (!len) { + y0 = 0; + y1 = 0; + y2 = 0; + } else { + len = 1 / len; + y0 *= len; + y1 *= len; + y2 *= len; + } + + out[0] = x0; + out[1] = y0; + out[2] = z0; + out[3] = 0; + out[4] = x1; + out[5] = y1; + out[6] = z1; + out[7] = 0; + out[8] = x2; + out[9] = y2; + out[10] = z2; + out[11] = 0; + out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez); + out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez); + out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez); + out[15] = 1; + + return out; + }; + + /** + * Returns a string representation of a mat4 + * + * @param {mat4} mat matrix to represent as a string + * @returns {String} string representation of the matrix + */ + mat4.str = function (a) { + return 'mat4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' + + a[4] + ', ' + a[5] + ', ' + a[6] + ', ' + a[7] + ', ' + + a[8] + ', ' + a[9] + ', ' + a[10] + ', ' + a[11] + ', ' + + a[12] + ', ' + a[13] + ', ' + a[14] + ', ' + a[15] + ')'; + }; + + /** + * Returns Frobenius norm of a mat4 + * + * @param {mat4} a the matrix to calculate Frobenius norm of + * @returns {Number} Frobenius norm + */ + mat4.frob = function (a) { + return(Math.sqrt(Math.pow(a[0], 2) + Math.pow(a[1], 2) + Math.pow(a[2], 2) + Math.pow(a[3], 2) + Math.pow(a[4], 2) + Math.pow(a[5], 2) + Math.pow(a[6], 2) + Math.pow(a[7], 2) + Math.pow(a[8], 2) + Math.pow(a[9], 2) + Math.pow(a[10], 2) + Math.pow(a[11], 2) + Math.pow(a[12], 2) + Math.pow(a[13], 2) + Math.pow(a[14], 2) + Math.pow(a[15], 2) )) + }; + + + module.exports = mat4; + + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + var mat3 = __webpack_require__(4); + var vec3 = __webpack_require__(7); + var vec4 = __webpack_require__(8); + + /** + * @class Quaternion + * @name quat + */ + var quat = {}; + + /** + * Creates a new identity quat + * + * @returns {quat} a new quaternion + */ + quat.create = function() { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; + }; + + /** + * Sets a quaternion to represent the shortest rotation from one + * vector to another. + * + * Both vectors are assumed to be unit length. + * + * @param {quat} out the receiving quaternion. + * @param {vec3} a the initial vector + * @param {vec3} b the destination vector + * @returns {quat} out + */ + quat.rotationTo = (function() { + var tmpvec3 = vec3.create(); + var xUnitVec3 = vec3.fromValues(1,0,0); + var yUnitVec3 = vec3.fromValues(0,1,0); + + return function(out, a, b) { + var dot = vec3.dot(a, b); + if (dot < -0.999999) { + vec3.cross(tmpvec3, xUnitVec3, a); + if (vec3.length(tmpvec3) < 0.000001) + vec3.cross(tmpvec3, yUnitVec3, a); + vec3.normalize(tmpvec3, tmpvec3); + quat.setAxisAngle(out, tmpvec3, Math.PI); + return out; + } else if (dot > 0.999999) { + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; + } else { + vec3.cross(tmpvec3, a, b); + out[0] = tmpvec3[0]; + out[1] = tmpvec3[1]; + out[2] = tmpvec3[2]; + out[3] = 1 + dot; + return quat.normalize(out, out); + } + }; + })(); + + /** + * Sets the specified quaternion with values corresponding to the given + * axes. Each axis is a vec3 and is expected to be unit length and + * perpendicular to all other specified axes. + * + * @param {vec3} view the vector representing the viewing direction + * @param {vec3} right the vector representing the local "right" direction + * @param {vec3} up the vector representing the local "up" direction + * @returns {quat} out + */ + quat.setAxes = (function() { + var matr = mat3.create(); + + return function(out, view, right, up) { + matr[0] = right[0]; + matr[3] = right[1]; + matr[6] = right[2]; + + matr[1] = up[0]; + matr[4] = up[1]; + matr[7] = up[2]; + + matr[2] = -view[0]; + matr[5] = -view[1]; + matr[8] = -view[2]; + + return quat.normalize(out, quat.fromMat3(out, matr)); + }; + })(); + + /** + * Creates a new quat initialized with values from an existing quaternion + * + * @param {quat} a quaternion to clone + * @returns {quat} a new quaternion + * @function + */ + quat.clone = vec4.clone; + + /** + * Creates a new quat initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {quat} a new quaternion + * @function + */ + quat.fromValues = vec4.fromValues; + + /** + * Copy the values from one quat to another + * + * @param {quat} out the receiving quaternion + * @param {quat} a the source quaternion + * @returns {quat} out + * @function + */ + quat.copy = vec4.copy; + + /** + * Set the components of a quat to the given values + * + * @param {quat} out the receiving quaternion + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {quat} out + * @function + */ + quat.set = vec4.set; + + /** + * Set a quat to the identity quaternion + * + * @param {quat} out the receiving quaternion + * @returns {quat} out + */ + quat.identity = function(out) { + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 1; + return out; + }; + + /** + * Sets a quat from the given angle and rotation axis, + * then returns it. + * + * @param {quat} out the receiving quaternion + * @param {vec3} axis the axis around which to rotate + * @param {Number} rad the angle in radians + * @returns {quat} out + **/ + quat.setAxisAngle = function(out, axis, rad) { + rad = rad * 0.5; + var s = Math.sin(rad); + out[0] = s * axis[0]; + out[1] = s * axis[1]; + out[2] = s * axis[2]; + out[3] = Math.cos(rad); + return out; + }; + + /** + * Adds two quat's + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @returns {quat} out + * @function + */ + quat.add = vec4.add; + + /** + * Multiplies two quat's + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @returns {quat} out + */ + quat.multiply = function(out, a, b) { + var ax = a[0], ay = a[1], az = a[2], aw = a[3], + bx = b[0], by = b[1], bz = b[2], bw = b[3]; + + out[0] = ax * bw + aw * bx + ay * bz - az * by; + out[1] = ay * bw + aw * by + az * bx - ax * bz; + out[2] = az * bw + aw * bz + ax * by - ay * bx; + out[3] = aw * bw - ax * bx - ay * by - az * bz; + return out; + }; + + /** + * Alias for {@link quat.multiply} + * @function + */ + quat.mul = quat.multiply; + + /** + * Scales a quat by a scalar number + * + * @param {quat} out the receiving vector + * @param {quat} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {quat} out + * @function + */ + quat.scale = vec4.scale; + + /** + * Rotates a quaternion by the given angle about the X axis + * + * @param {quat} out quat receiving operation result + * @param {quat} a quat to rotate + * @param {number} rad angle (in radians) to rotate + * @returns {quat} out + */ + quat.rotateX = function (out, a, rad) { + rad *= 0.5; + + var ax = a[0], ay = a[1], az = a[2], aw = a[3], + bx = Math.sin(rad), bw = Math.cos(rad); + + out[0] = ax * bw + aw * bx; + out[1] = ay * bw + az * bx; + out[2] = az * bw - ay * bx; + out[3] = aw * bw - ax * bx; + return out; + }; + + /** + * Rotates a quaternion by the given angle about the Y axis + * + * @param {quat} out quat receiving operation result + * @param {quat} a quat to rotate + * @param {number} rad angle (in radians) to rotate + * @returns {quat} out + */ + quat.rotateY = function (out, a, rad) { + rad *= 0.5; + + var ax = a[0], ay = a[1], az = a[2], aw = a[3], + by = Math.sin(rad), bw = Math.cos(rad); + + out[0] = ax * bw - az * by; + out[1] = ay * bw + aw * by; + out[2] = az * bw + ax * by; + out[3] = aw * bw - ay * by; + return out; + }; + + /** + * Rotates a quaternion by the given angle about the Z axis + * + * @param {quat} out quat receiving operation result + * @param {quat} a quat to rotate + * @param {number} rad angle (in radians) to rotate + * @returns {quat} out + */ + quat.rotateZ = function (out, a, rad) { + rad *= 0.5; + + var ax = a[0], ay = a[1], az = a[2], aw = a[3], + bz = Math.sin(rad), bw = Math.cos(rad); + + out[0] = ax * bw + ay * bz; + out[1] = ay * bw - ax * bz; + out[2] = az * bw + aw * bz; + out[3] = aw * bw - az * bz; + return out; + }; + + /** + * Calculates the W component of a quat from the X, Y, and Z components. + * Assumes that quaternion is 1 unit in length. + * Any existing W component will be ignored. + * + * @param {quat} out the receiving quaternion + * @param {quat} a quat to calculate W component of + * @returns {quat} out + */ + quat.calculateW = function (out, a) { + var x = a[0], y = a[1], z = a[2]; + + out[0] = x; + out[1] = y; + out[2] = z; + out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z)); + return out; + }; + + /** + * Calculates the dot product of two quat's + * + * @param {quat} a the first operand + * @param {quat} b the second operand + * @returns {Number} dot product of a and b + * @function + */ + quat.dot = vec4.dot; + + /** + * Performs a linear interpolation between two quat's + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {quat} out + * @function + */ + quat.lerp = vec4.lerp; + + /** + * Performs a spherical linear interpolation between two quat + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {quat} out + */ + quat.slerp = function (out, a, b, t) { + // benchmarks: + // http://jsperf.com/quaternion-slerp-implementations + + var ax = a[0], ay = a[1], az = a[2], aw = a[3], + bx = b[0], by = b[1], bz = b[2], bw = b[3]; + + var omega, cosom, sinom, scale0, scale1; + + // calc cosine + cosom = ax * bx + ay * by + az * bz + aw * bw; + // adjust signs (if necessary) + if ( cosom < 0.0 ) { + cosom = -cosom; + bx = - bx; + by = - by; + bz = - bz; + bw = - bw; + } + // calculate coefficients + if ( (1.0 - cosom) > 0.000001 ) { + // standard case (slerp) + omega = Math.acos(cosom); + sinom = Math.sin(omega); + scale0 = Math.sin((1.0 - t) * omega) / sinom; + scale1 = Math.sin(t * omega) / sinom; + } else { + // "from" and "to" quaternions are very close + // ... so we can do a linear interpolation + scale0 = 1.0 - t; + scale1 = t; + } + // calculate final values + out[0] = scale0 * ax + scale1 * bx; + out[1] = scale0 * ay + scale1 * by; + out[2] = scale0 * az + scale1 * bz; + out[3] = scale0 * aw + scale1 * bw; + + return out; + }; + + /** + * Performs a spherical linear interpolation with two control points + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {quat} c the third operand + * @param {quat} d the fourth operand + * @param {Number} t interpolation amount + * @returns {quat} out + */ + quat.sqlerp = (function () { + var temp1 = quat.create(); + var temp2 = quat.create(); + + return function (out, a, b, c, d, t) { + quat.slerp(temp1, a, d, t); + quat.slerp(temp2, b, c, t); + quat.slerp(out, temp1, temp2, 2 * t * (1 - t)); + + return out; + }; + }()); + + /** + * Calculates the inverse of a quat + * + * @param {quat} out the receiving quaternion + * @param {quat} a quat to calculate inverse of + * @returns {quat} out + */ + quat.invert = function(out, a) { + var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], + dot = a0*a0 + a1*a1 + a2*a2 + a3*a3, + invDot = dot ? 1.0/dot : 0; + + // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0 + + out[0] = -a0*invDot; + out[1] = -a1*invDot; + out[2] = -a2*invDot; + out[3] = a3*invDot; + return out; + }; + + /** + * Calculates the conjugate of a quat + * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result. + * + * @param {quat} out the receiving quaternion + * @param {quat} a quat to calculate conjugate of + * @returns {quat} out + */ + quat.conjugate = function (out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + out[3] = a[3]; + return out; + }; + + /** + * Calculates the length of a quat + * + * @param {quat} a vector to calculate length of + * @returns {Number} length of a + * @function + */ + quat.length = vec4.length; + + /** + * Alias for {@link quat.length} + * @function + */ + quat.len = quat.length; + + /** + * Calculates the squared length of a quat + * + * @param {quat} a vector to calculate squared length of + * @returns {Number} squared length of a + * @function + */ + quat.squaredLength = vec4.squaredLength; + + /** + * Alias for {@link quat.squaredLength} + * @function + */ + quat.sqrLen = quat.squaredLength; + + /** + * Normalize a quat + * + * @param {quat} out the receiving quaternion + * @param {quat} a quaternion to normalize + * @returns {quat} out + * @function + */ + quat.normalize = vec4.normalize; + + /** + * Creates a quaternion from the given 3x3 rotation matrix. + * + * NOTE: The resultant quaternion is not normalized, so you should be sure + * to renormalize the quaternion yourself where necessary. + * + * @param {quat} out the receiving quaternion + * @param {mat3} m rotation matrix + * @returns {quat} out + * @function + */ + quat.fromMat3 = function(out, m) { + // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes + // article "Quaternion Calculus and Fast Animation". + var fTrace = m[0] + m[4] + m[8]; + var fRoot; + + if ( fTrace > 0.0 ) { + // |w| > 1/2, may as well choose w > 1/2 + fRoot = Math.sqrt(fTrace + 1.0); // 2w + out[3] = 0.5 * fRoot; + fRoot = 0.5/fRoot; // 1/(4w) + out[0] = (m[5]-m[7])*fRoot; + out[1] = (m[6]-m[2])*fRoot; + out[2] = (m[1]-m[3])*fRoot; + } else { + // |w| <= 1/2 + var i = 0; + if ( m[4] > m[0] ) + i = 1; + if ( m[8] > m[i*3+i] ) + i = 2; + var j = (i+1)%3; + var k = (i+2)%3; + + fRoot = Math.sqrt(m[i*3+i]-m[j*3+j]-m[k*3+k] + 1.0); + out[i] = 0.5 * fRoot; + fRoot = 0.5 / fRoot; + out[3] = (m[j*3+k] - m[k*3+j]) * fRoot; + out[j] = (m[j*3+i] + m[i*3+j]) * fRoot; + out[k] = (m[k*3+i] + m[i*3+k]) * fRoot; + } + + return out; + }; + + /** + * Returns a string representation of a quatenion + * + * @param {quat} vec vector to represent as a string + * @returns {String} string representation of the vector + */ + quat.str = function (a) { + return 'quat(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')'; + }; + + module.exports = quat; + + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 3 Dimensional Vector + * @name vec3 + */ + var vec3 = {}; + + /** + * Creates a new, empty vec3 + * + * @returns {vec3} a new 3D vector + */ + vec3.create = function() { + var out = new glMatrix.ARRAY_TYPE(3); + out[0] = 0; + out[1] = 0; + out[2] = 0; + return out; + }; + + /** + * Creates a new vec3 initialized with values from an existing vector + * + * @param {vec3} a vector to clone + * @returns {vec3} a new 3D vector + */ + vec3.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(3); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + return out; + }; + + /** + * Creates a new vec3 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} a new 3D vector + */ + vec3.fromValues = function(x, y, z) { + var out = new glMatrix.ARRAY_TYPE(3); + out[0] = x; + out[1] = y; + out[2] = z; + return out; + }; + + /** + * Copy the values from one vec3 to another + * + * @param {vec3} out the receiving vector + * @param {vec3} a the source vector + * @returns {vec3} out + */ + vec3.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + return out; + }; + + /** + * Set the components of a vec3 to the given values + * + * @param {vec3} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @returns {vec3} out + */ + vec3.set = function(out, x, y, z) { + out[0] = x; + out[1] = y; + out[2] = z; + return out; + }; + + /** + * Adds two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.add = function(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + return out; + }; + + /** + * Subtracts vector b from vector a + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.subtract = function(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + return out; + }; + + /** + * Alias for {@link vec3.subtract} + * @function + */ + vec3.sub = vec3.subtract; + + /** + * Multiplies two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.multiply = function(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + out[2] = a[2] * b[2]; + return out; + }; + + /** + * Alias for {@link vec3.multiply} + * @function + */ + vec3.mul = vec3.multiply; + + /** + * Divides two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.divide = function(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + out[2] = a[2] / b[2]; + return out; + }; + + /** + * Alias for {@link vec3.divide} + * @function + */ + vec3.div = vec3.divide; + + /** + * Returns the minimum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.min = function(out, a, b) { + out[0] = Math.min(a[0], b[0]); + out[1] = Math.min(a[1], b[1]); + out[2] = Math.min(a[2], b[2]); + return out; + }; + + /** + * Returns the maximum of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.max = function(out, a, b) { + out[0] = Math.max(a[0], b[0]); + out[1] = Math.max(a[1], b[1]); + out[2] = Math.max(a[2], b[2]); + return out; + }; + + /** + * Scales a vec3 by a scalar number + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec3} out + */ + vec3.scale = function(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + return out; + }; + + /** + * Adds two vec3's after scaling the second operand by a scalar value + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec3} out + */ + vec3.scaleAndAdd = function(out, a, b, scale) { + out[0] = a[0] + (b[0] * scale); + out[1] = a[1] + (b[1] * scale); + out[2] = a[2] + (b[2] * scale); + return out; + }; + + /** + * Calculates the euclidian distance between two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} distance between a and b + */ + vec3.distance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2]; + return Math.sqrt(x*x + y*y + z*z); + }; + + /** + * Alias for {@link vec3.distance} + * @function + */ + vec3.dist = vec3.distance; + + /** + * Calculates the squared euclidian distance between two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} squared distance between a and b + */ + vec3.squaredDistance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2]; + return x*x + y*y + z*z; + }; + + /** + * Alias for {@link vec3.squaredDistance} + * @function + */ + vec3.sqrDist = vec3.squaredDistance; + + /** + * Calculates the length of a vec3 + * + * @param {vec3} a vector to calculate length of + * @returns {Number} length of a + */ + vec3.length = function (a) { + var x = a[0], + y = a[1], + z = a[2]; + return Math.sqrt(x*x + y*y + z*z); + }; + + /** + * Alias for {@link vec3.length} + * @function + */ + vec3.len = vec3.length; + + /** + * Calculates the squared length of a vec3 + * + * @param {vec3} a vector to calculate squared length of + * @returns {Number} squared length of a + */ + vec3.squaredLength = function (a) { + var x = a[0], + y = a[1], + z = a[2]; + return x*x + y*y + z*z; + }; + + /** + * Alias for {@link vec3.squaredLength} + * @function + */ + vec3.sqrLen = vec3.squaredLength; + + /** + * Negates the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to negate + * @returns {vec3} out + */ + vec3.negate = function(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + return out; + }; + + /** + * Returns the inverse of the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to invert + * @returns {vec3} out + */ + vec3.inverse = function(out, a) { + out[0] = 1.0 / a[0]; + out[1] = 1.0 / a[1]; + out[2] = 1.0 / a[2]; + return out; + }; + + /** + * Normalize a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to normalize + * @returns {vec3} out + */ + vec3.normalize = function(out, a) { + var x = a[0], + y = a[1], + z = a[2]; + var len = x*x + y*y + z*z; + if (len > 0) { + //TODO: evaluate use of glm_invsqrt here? + len = 1 / Math.sqrt(len); + out[0] = a[0] * len; + out[1] = a[1] * len; + out[2] = a[2] * len; + } + return out; + }; + + /** + * Calculates the dot product of two vec3's + * + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {Number} dot product of a and b + */ + vec3.dot = function (a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; + }; + + /** + * Computes the cross product of two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @returns {vec3} out + */ + vec3.cross = function(out, a, b) { + var ax = a[0], ay = a[1], az = a[2], + bx = b[0], by = b[1], bz = b[2]; + + out[0] = ay * bz - az * by; + out[1] = az * bx - ax * bz; + out[2] = ax * by - ay * bx; + return out; + }; + + /** + * Performs a linear interpolation between two vec3's + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ + vec3.lerp = function (out, a, b, t) { + var ax = a[0], + ay = a[1], + az = a[2]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + out[2] = az + t * (b[2] - az); + return out; + }; + + /** + * Performs a hermite interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {vec3} c the third operand + * @param {vec3} d the fourth operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ + vec3.hermite = function (out, a, b, c, d, t) { + var factorTimes2 = t * t, + factor1 = factorTimes2 * (2 * t - 3) + 1, + factor2 = factorTimes2 * (t - 2) + t, + factor3 = factorTimes2 * (t - 1), + factor4 = factorTimes2 * (3 - 2 * t); + + out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4; + out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4; + out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4; + + return out; + }; + + /** + * Performs a bezier interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {vec3} c the third operand + * @param {vec3} d the fourth operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec3} out + */ + vec3.bezier = function (out, a, b, c, d, t) { + var inverseFactor = 1 - t, + inverseFactorTimesTwo = inverseFactor * inverseFactor, + factorTimes2 = t * t, + factor1 = inverseFactorTimesTwo * inverseFactor, + factor2 = 3 * t * inverseFactorTimesTwo, + factor3 = 3 * factorTimes2 * inverseFactor, + factor4 = factorTimes2 * t; + + out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4; + out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4; + out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4; + + return out; + }; + + /** + * Generates a random vector with the given scale + * + * @param {vec3} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec3} out + */ + vec3.random = function (out, scale) { + scale = scale || 1.0; + + var r = glMatrix.RANDOM() * 2.0 * Math.PI; + var z = (glMatrix.RANDOM() * 2.0) - 1.0; + var zScale = Math.sqrt(1.0-z*z) * scale; + + out[0] = Math.cos(r) * zScale; + out[1] = Math.sin(r) * zScale; + out[2] = z * scale; + return out; + }; + + /** + * Transforms the vec3 with a mat4. + * 4th vector component is implicitly '1' + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec3} out + */ + vec3.transformMat4 = function(out, a, m) { + var x = a[0], y = a[1], z = a[2], + w = m[3] * x + m[7] * y + m[11] * z + m[15]; + w = w || 1.0; + out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w; + out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w; + out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w; + return out; + }; + + /** + * Transforms the vec3 with a mat3. + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {mat4} m the 3x3 matrix to transform with + * @returns {vec3} out + */ + vec3.transformMat3 = function(out, a, m) { + var x = a[0], y = a[1], z = a[2]; + out[0] = x * m[0] + y * m[3] + z * m[6]; + out[1] = x * m[1] + y * m[4] + z * m[7]; + out[2] = x * m[2] + y * m[5] + z * m[8]; + return out; + }; + + /** + * Transforms the vec3 with a quat + * + * @param {vec3} out the receiving vector + * @param {vec3} a the vector to transform + * @param {quat} q quaternion to transform with + * @returns {vec3} out + */ + vec3.transformQuat = function(out, a, q) { + // benchmarks: http://jsperf.com/quaternion-transform-vec3-implementations + + var x = a[0], y = a[1], z = a[2], + qx = q[0], qy = q[1], qz = q[2], qw = q[3], + + // calculate quat * vec + ix = qw * x + qy * z - qz * y, + iy = qw * y + qz * x - qx * z, + iz = qw * z + qx * y - qy * x, + iw = -qx * x - qy * y - qz * z; + + // calculate result * inverse quat + out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy; + out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz; + out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx; + return out; + }; + + /** + * Rotate a 3D vector around the x-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ + vec3.rotateX = function(out, a, b, c){ + var p = [], r=[]; + //Translate point to the origin + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; + + //perform rotation + r[0] = p[0]; + r[1] = p[1]*Math.cos(c) - p[2]*Math.sin(c); + r[2] = p[1]*Math.sin(c) + p[2]*Math.cos(c); + + //translate to correct position + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + + return out; + }; + + /** + * Rotate a 3D vector around the y-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ + vec3.rotateY = function(out, a, b, c){ + var p = [], r=[]; + //Translate point to the origin + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; + + //perform rotation + r[0] = p[2]*Math.sin(c) + p[0]*Math.cos(c); + r[1] = p[1]; + r[2] = p[2]*Math.cos(c) - p[0]*Math.sin(c); + + //translate to correct position + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + + return out; + }; + + /** + * Rotate a 3D vector around the z-axis + * @param {vec3} out The receiving vec3 + * @param {vec3} a The vec3 point to rotate + * @param {vec3} b The origin of the rotation + * @param {Number} c The angle of rotation + * @returns {vec3} out + */ + vec3.rotateZ = function(out, a, b, c){ + var p = [], r=[]; + //Translate point to the origin + p[0] = a[0] - b[0]; + p[1] = a[1] - b[1]; + p[2] = a[2] - b[2]; + + //perform rotation + r[0] = p[0]*Math.cos(c) - p[1]*Math.sin(c); + r[1] = p[0]*Math.sin(c) + p[1]*Math.cos(c); + r[2] = p[2]; + + //translate to correct position + out[0] = r[0] + b[0]; + out[1] = r[1] + b[1]; + out[2] = r[2] + b[2]; + + return out; + }; + + /** + * Perform some operation over an array of vec3s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ + vec3.forEach = (function() { + var vec = vec3.create(); + + return function(a, stride, offset, count, fn, arg) { + var i, l; + if(!stride) { + stride = 3; + } + + if(!offset) { + offset = 0; + } + + if(count) { + l = Math.min((count * stride) + offset, a.length); + } else { + l = a.length; + } + + for(i = offset; i < l; i += stride) { + vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2]; + fn(vec, vec, arg); + a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2]; + } + + return a; + }; + })(); + + /** + * Get the angle between two 3D vectors + * @param {vec3} a The first operand + * @param {vec3} b The second operand + * @returns {Number} The angle in radians + */ + vec3.angle = function(a, b) { + + var tempA = vec3.fromValues(a[0], a[1], a[2]); + var tempB = vec3.fromValues(b[0], b[1], b[2]); + + vec3.normalize(tempA, tempA); + vec3.normalize(tempB, tempB); + + var cosine = vec3.dot(tempA, tempB); + + if(cosine > 1.0){ + return 0; + } else { + return Math.acos(cosine); + } + }; + + /** + * Returns a string representation of a vector + * + * @param {vec3} vec vector to represent as a string + * @returns {String} string representation of the vector + */ + vec3.str = function (a) { + return 'vec3(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')'; + }; + + module.exports = vec3; + + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 4 Dimensional Vector + * @name vec4 + */ + var vec4 = {}; + + /** + * Creates a new, empty vec4 + * + * @returns {vec4} a new 4D vector + */ + vec4.create = function() { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = 0; + out[1] = 0; + out[2] = 0; + out[3] = 0; + return out; + }; + + /** + * Creates a new vec4 initialized with values from an existing vector + * + * @param {vec4} a vector to clone + * @returns {vec4} a new 4D vector + */ + vec4.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; + }; + + /** + * Creates a new vec4 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {vec4} a new 4D vector + */ + vec4.fromValues = function(x, y, z, w) { + var out = new glMatrix.ARRAY_TYPE(4); + out[0] = x; + out[1] = y; + out[2] = z; + out[3] = w; + return out; + }; + + /** + * Copy the values from one vec4 to another + * + * @param {vec4} out the receiving vector + * @param {vec4} a the source vector + * @returns {vec4} out + */ + vec4.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; + }; + + /** + * Set the components of a vec4 to the given values + * + * @param {vec4} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @param {Number} z Z component + * @param {Number} w W component + * @returns {vec4} out + */ + vec4.set = function(out, x, y, z, w) { + out[0] = x; + out[1] = y; + out[2] = z; + out[3] = w; + return out; + }; + + /** + * Adds two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ + vec4.add = function(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + out[2] = a[2] + b[2]; + out[3] = a[3] + b[3]; + return out; + }; + + /** + * Subtracts vector b from vector a + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ + vec4.subtract = function(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + out[2] = a[2] - b[2]; + out[3] = a[3] - b[3]; + return out; + }; + + /** + * Alias for {@link vec4.subtract} + * @function + */ + vec4.sub = vec4.subtract; + + /** + * Multiplies two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ + vec4.multiply = function(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + out[2] = a[2] * b[2]; + out[3] = a[3] * b[3]; + return out; + }; + + /** + * Alias for {@link vec4.multiply} + * @function + */ + vec4.mul = vec4.multiply; + + /** + * Divides two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ + vec4.divide = function(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + out[2] = a[2] / b[2]; + out[3] = a[3] / b[3]; + return out; + }; + + /** + * Alias for {@link vec4.divide} + * @function + */ + vec4.div = vec4.divide; + + /** + * Returns the minimum of two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ + vec4.min = function(out, a, b) { + out[0] = Math.min(a[0], b[0]); + out[1] = Math.min(a[1], b[1]); + out[2] = Math.min(a[2], b[2]); + out[3] = Math.min(a[3], b[3]); + return out; + }; + + /** + * Returns the maximum of two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {vec4} out + */ + vec4.max = function(out, a, b) { + out[0] = Math.max(a[0], b[0]); + out[1] = Math.max(a[1], b[1]); + out[2] = Math.max(a[2], b[2]); + out[3] = Math.max(a[3], b[3]); + return out; + }; + + /** + * Scales a vec4 by a scalar number + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec4} out + */ + vec4.scale = function(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + out[2] = a[2] * b; + out[3] = a[3] * b; + return out; + }; + + /** + * Adds two vec4's after scaling the second operand by a scalar value + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec4} out + */ + vec4.scaleAndAdd = function(out, a, b, scale) { + out[0] = a[0] + (b[0] * scale); + out[1] = a[1] + (b[1] * scale); + out[2] = a[2] + (b[2] * scale); + out[3] = a[3] + (b[3] * scale); + return out; + }; + + /** + * Calculates the euclidian distance between two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} distance between a and b + */ + vec4.distance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2], + w = b[3] - a[3]; + return Math.sqrt(x*x + y*y + z*z + w*w); + }; + + /** + * Alias for {@link vec4.distance} + * @function + */ + vec4.dist = vec4.distance; + + /** + * Calculates the squared euclidian distance between two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} squared distance between a and b + */ + vec4.squaredDistance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1], + z = b[2] - a[2], + w = b[3] - a[3]; + return x*x + y*y + z*z + w*w; + }; + + /** + * Alias for {@link vec4.squaredDistance} + * @function + */ + vec4.sqrDist = vec4.squaredDistance; + + /** + * Calculates the length of a vec4 + * + * @param {vec4} a vector to calculate length of + * @returns {Number} length of a + */ + vec4.length = function (a) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3]; + return Math.sqrt(x*x + y*y + z*z + w*w); + }; + + /** + * Alias for {@link vec4.length} + * @function + */ + vec4.len = vec4.length; + + /** + * Calculates the squared length of a vec4 + * + * @param {vec4} a vector to calculate squared length of + * @returns {Number} squared length of a + */ + vec4.squaredLength = function (a) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3]; + return x*x + y*y + z*z + w*w; + }; + + /** + * Alias for {@link vec4.squaredLength} + * @function + */ + vec4.sqrLen = vec4.squaredLength; + + /** + * Negates the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to negate + * @returns {vec4} out + */ + vec4.negate = function(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + out[2] = -a[2]; + out[3] = -a[3]; + return out; + }; + + /** + * Returns the inverse of the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to invert + * @returns {vec4} out + */ + vec4.inverse = function(out, a) { + out[0] = 1.0 / a[0]; + out[1] = 1.0 / a[1]; + out[2] = 1.0 / a[2]; + out[3] = 1.0 / a[3]; + return out; + }; + + /** + * Normalize a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to normalize + * @returns {vec4} out + */ + vec4.normalize = function(out, a) { + var x = a[0], + y = a[1], + z = a[2], + w = a[3]; + var len = x*x + y*y + z*z + w*w; + if (len > 0) { + len = 1 / Math.sqrt(len); + out[0] = x * len; + out[1] = y * len; + out[2] = z * len; + out[3] = w * len; + } + return out; + }; + + /** + * Calculates the dot product of two vec4's + * + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @returns {Number} dot product of a and b + */ + vec4.dot = function (a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; + }; + + /** + * Performs a linear interpolation between two vec4's + * + * @param {vec4} out the receiving vector + * @param {vec4} a the first operand + * @param {vec4} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec4} out + */ + vec4.lerp = function (out, a, b, t) { + var ax = a[0], + ay = a[1], + az = a[2], + aw = a[3]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + out[2] = az + t * (b[2] - az); + out[3] = aw + t * (b[3] - aw); + return out; + }; + + /** + * Generates a random vector with the given scale + * + * @param {vec4} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec4} out + */ + vec4.random = function (out, scale) { + scale = scale || 1.0; + + //TODO: This is a pretty awful way of doing this. Find something better. + out[0] = glMatrix.RANDOM(); + out[1] = glMatrix.RANDOM(); + out[2] = glMatrix.RANDOM(); + out[3] = glMatrix.RANDOM(); + vec4.normalize(out, out); + vec4.scale(out, out, scale); + return out; + }; + + /** + * Transforms the vec4 with a mat4. + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec4} out + */ + vec4.transformMat4 = function(out, a, m) { + var x = a[0], y = a[1], z = a[2], w = a[3]; + out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w; + out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w; + out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w; + out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w; + return out; + }; + + /** + * Transforms the vec4 with a quat + * + * @param {vec4} out the receiving vector + * @param {vec4} a the vector to transform + * @param {quat} q quaternion to transform with + * @returns {vec4} out + */ + vec4.transformQuat = function(out, a, q) { + var x = a[0], y = a[1], z = a[2], + qx = q[0], qy = q[1], qz = q[2], qw = q[3], + + // calculate quat * vec + ix = qw * x + qy * z - qz * y, + iy = qw * y + qz * x - qx * z, + iz = qw * z + qx * y - qy * x, + iw = -qx * x - qy * y - qz * z; + + // calculate result * inverse quat + out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy; + out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz; + out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx; + out[3] = a[3]; + return out; + }; + + /** + * Perform some operation over an array of vec4s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ + vec4.forEach = (function() { + var vec = vec4.create(); + + return function(a, stride, offset, count, fn, arg) { + var i, l; + if(!stride) { + stride = 4; + } + + if(!offset) { + offset = 0; + } + + if(count) { + l = Math.min((count * stride) + offset, a.length); + } else { + l = a.length; + } + + for(i = offset; i < l; i += stride) { + vec[0] = a[i]; vec[1] = a[i+1]; vec[2] = a[i+2]; vec[3] = a[i+3]; + fn(vec, vec, arg); + a[i] = vec[0]; a[i+1] = vec[1]; a[i+2] = vec[2]; a[i+3] = vec[3]; + } + + return a; + }; + })(); + + /** + * Returns a string representation of a vector + * + * @param {vec4} vec vector to represent as a string + * @returns {String} string representation of the vector + */ + vec4.str = function (a) { + return 'vec4(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')'; + }; + + module.exports = vec4; + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + /* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. */ + + var glMatrix = __webpack_require__(1); + + /** + * @class 2 Dimensional Vector + * @name vec2 + */ + var vec2 = {}; + + /** + * Creates a new, empty vec2 + * + * @returns {vec2} a new 2D vector + */ + vec2.create = function() { + var out = new glMatrix.ARRAY_TYPE(2); + out[0] = 0; + out[1] = 0; + return out; + }; + + /** + * Creates a new vec2 initialized with values from an existing vector + * + * @param {vec2} a vector to clone + * @returns {vec2} a new 2D vector + */ + vec2.clone = function(a) { + var out = new glMatrix.ARRAY_TYPE(2); + out[0] = a[0]; + out[1] = a[1]; + return out; + }; + + /** + * Creates a new vec2 initialized with the given values + * + * @param {Number} x X component + * @param {Number} y Y component + * @returns {vec2} a new 2D vector + */ + vec2.fromValues = function(x, y) { + var out = new glMatrix.ARRAY_TYPE(2); + out[0] = x; + out[1] = y; + return out; + }; + + /** + * Copy the values from one vec2 to another + * + * @param {vec2} out the receiving vector + * @param {vec2} a the source vector + * @returns {vec2} out + */ + vec2.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + return out; + }; + + /** + * Set the components of a vec2 to the given values + * + * @param {vec2} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @returns {vec2} out + */ + vec2.set = function(out, x, y) { + out[0] = x; + out[1] = y; + return out; + }; + + /** + * Adds two vec2's + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec2} out + */ + vec2.add = function(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + return out; + }; + + /** + * Subtracts vector b from vector a + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec2} out + */ + vec2.subtract = function(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + return out; + }; + + /** + * Alias for {@link vec2.subtract} + * @function + */ + vec2.sub = vec2.subtract; + + /** + * Multiplies two vec2's + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec2} out + */ + vec2.multiply = function(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + return out; + }; + + /** + * Alias for {@link vec2.multiply} + * @function + */ + vec2.mul = vec2.multiply; + + /** + * Divides two vec2's + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec2} out + */ + vec2.divide = function(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + return out; + }; + + /** + * Alias for {@link vec2.divide} + * @function + */ + vec2.div = vec2.divide; + + /** + * Returns the minimum of two vec2's + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec2} out + */ + vec2.min = function(out, a, b) { + out[0] = Math.min(a[0], b[0]); + out[1] = Math.min(a[1], b[1]); + return out; + }; + + /** + * Returns the maximum of two vec2's + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec2} out + */ + vec2.max = function(out, a, b) { + out[0] = Math.max(a[0], b[0]); + out[1] = Math.max(a[1], b[1]); + return out; + }; + + /** + * Scales a vec2 by a scalar number + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to scale + * @param {Number} b amount to scale the vector by + * @returns {vec2} out + */ + vec2.scale = function(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + return out; + }; + + /** + * Adds two vec2's after scaling the second operand by a scalar value + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @param {Number} scale the amount to scale b by before adding + * @returns {vec2} out + */ + vec2.scaleAndAdd = function(out, a, b, scale) { + out[0] = a[0] + (b[0] * scale); + out[1] = a[1] + (b[1] * scale); + return out; + }; + + /** + * Calculates the euclidian distance between two vec2's + * + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {Number} distance between a and b + */ + vec2.distance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1]; + return Math.sqrt(x*x + y*y); + }; + + /** + * Alias for {@link vec2.distance} + * @function + */ + vec2.dist = vec2.distance; + + /** + * Calculates the squared euclidian distance between two vec2's + * + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {Number} squared distance between a and b + */ + vec2.squaredDistance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1]; + return x*x + y*y; + }; + + /** + * Alias for {@link vec2.squaredDistance} + * @function + */ + vec2.sqrDist = vec2.squaredDistance; + + /** + * Calculates the length of a vec2 + * + * @param {vec2} a vector to calculate length of + * @returns {Number} length of a + */ + vec2.length = function (a) { + var x = a[0], + y = a[1]; + return Math.sqrt(x*x + y*y); + }; + + /** + * Alias for {@link vec2.length} + * @function + */ + vec2.len = vec2.length; + + /** + * Calculates the squared length of a vec2 + * + * @param {vec2} a vector to calculate squared length of + * @returns {Number} squared length of a + */ + vec2.squaredLength = function (a) { + var x = a[0], + y = a[1]; + return x*x + y*y; + }; + + /** + * Alias for {@link vec2.squaredLength} + * @function + */ + vec2.sqrLen = vec2.squaredLength; + + /** + * Negates the components of a vec2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a vector to negate + * @returns {vec2} out + */ + vec2.negate = function(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + return out; + }; + + /** + * Returns the inverse of the components of a vec2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a vector to invert + * @returns {vec2} out + */ + vec2.inverse = function(out, a) { + out[0] = 1.0 / a[0]; + out[1] = 1.0 / a[1]; + return out; + }; + + /** + * Normalize a vec2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a vector to normalize + * @returns {vec2} out + */ + vec2.normalize = function(out, a) { + var x = a[0], + y = a[1]; + var len = x*x + y*y; + if (len > 0) { + //TODO: evaluate use of glm_invsqrt here? + len = 1 / Math.sqrt(len); + out[0] = a[0] * len; + out[1] = a[1] * len; + } + return out; + }; + + /** + * Calculates the dot product of two vec2's + * + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {Number} dot product of a and b + */ + vec2.dot = function (a, b) { + return a[0] * b[0] + a[1] * b[1]; + }; + + /** + * Computes the cross product of two vec2's + * Note that the cross product must by definition produce a 3D vector + * + * @param {vec3} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @returns {vec3} out + */ + vec2.cross = function(out, a, b) { + var z = a[0] * b[1] - a[1] * b[0]; + out[0] = out[1] = 0; + out[2] = z; + return out; + }; + + /** + * Performs a linear interpolation between two vec2's + * + * @param {vec2} out the receiving vector + * @param {vec2} a the first operand + * @param {vec2} b the second operand + * @param {Number} t interpolation amount between the two inputs + * @returns {vec2} out + */ + vec2.lerp = function (out, a, b, t) { + var ax = a[0], + ay = a[1]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + return out; + }; + + /** + * Generates a random vector with the given scale + * + * @param {vec2} out the receiving vector + * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns {vec2} out + */ + vec2.random = function (out, scale) { + scale = scale || 1.0; + var r = glMatrix.RANDOM() * 2.0 * Math.PI; + out[0] = Math.cos(r) * scale; + out[1] = Math.sin(r) * scale; + return out; + }; + + /** + * Transforms the vec2 with a mat2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to transform + * @param {mat2} m matrix to transform with + * @returns {vec2} out + */ + vec2.transformMat2 = function(out, a, m) { + var x = a[0], + y = a[1]; + out[0] = m[0] * x + m[2] * y; + out[1] = m[1] * x + m[3] * y; + return out; + }; + + /** + * Transforms the vec2 with a mat2d + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to transform + * @param {mat2d} m matrix to transform with + * @returns {vec2} out + */ + vec2.transformMat2d = function(out, a, m) { + var x = a[0], + y = a[1]; + out[0] = m[0] * x + m[2] * y + m[4]; + out[1] = m[1] * x + m[3] * y + m[5]; + return out; + }; + + /** + * Transforms the vec2 with a mat3 + * 3rd vector component is implicitly '1' + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to transform + * @param {mat3} m matrix to transform with + * @returns {vec2} out + */ + vec2.transformMat3 = function(out, a, m) { + var x = a[0], + y = a[1]; + out[0] = m[0] * x + m[3] * y + m[6]; + out[1] = m[1] * x + m[4] * y + m[7]; + return out; + }; + + /** + * Transforms the vec2 with a mat4 + * 3rd vector component is implicitly '0' + * 4th vector component is implicitly '1' + * + * @param {vec2} out the receiving vector + * @param {vec2} a the vector to transform + * @param {mat4} m matrix to transform with + * @returns {vec2} out + */ + vec2.transformMat4 = function(out, a, m) { + var x = a[0], + y = a[1]; + out[0] = m[0] * x + m[4] * y + m[12]; + out[1] = m[1] * x + m[5] * y + m[13]; + return out; + }; + + /** + * Perform some operation over an array of vec2s. + * + * @param {Array} a the array of vectors to iterate over + * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed + * @param {Number} offset Number of elements to skip at the beginning of the array + * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array + * @param {Function} fn Function to call for each vector in the array + * @param {Object} [arg] additional argument to pass to fn + * @returns {Array} a + * @function + */ + vec2.forEach = (function() { + var vec = vec2.create(); + + return function(a, stride, offset, count, fn, arg) { + var i, l; + if(!stride) { + stride = 2; + } + + if(!offset) { + offset = 0; + } + + if(count) { + l = Math.min((count * stride) + offset, a.length); + } else { + l = a.length; + } + + for(i = offset; i < l; i += stride) { + vec[0] = a[i]; vec[1] = a[i+1]; + fn(vec, vec, arg); + a[i] = vec[0]; a[i+1] = vec[1]; + } + + return a; + }; + })(); + + /** + * Returns a string representation of a vector + * + * @param {vec2} vec vector to represent as a string + * @returns {String} string representation of the vector + */ + vec2.str = function (a) { + return 'vec2(' + a[0] + ', ' + a[1] + ')'; + }; + + module.exports = vec2; + + +/***/ } +/******/ ]) +}); +; \ No newline at end of file diff --git a/Abgabe_6/normalMappingTODOs/common/initShaders.js b/Abgabe_6/normalMappingTODOs/common/initShaders.js new file mode 100644 index 0000000..95a6657 --- /dev/null +++ b/Abgabe_6/normalMappingTODOs/common/initShaders.js @@ -0,0 +1,46 @@ +// +// initShaders.js +// + +function initShaders( gl, vertexShaderId, fragmentShaderId ) +{ + const compileShader = ( gl, gl_shaderType, shaderSource ) => { + // Create the shader + shader = gl.createShader( gl_shaderType ); + + // Set the shader source code + gl.shaderSource( shader, shaderSource ); + + // Compile the shader to make it readable for the GPU + gl.compileShader( shader ); + var success = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + + if (!success) { + // Something went wrong during compilation; get the error + throw "could not compile shader:" + gl.getShaderInfoLog(shader); + } + else { + return shader; + } + } + + /* + * Setup shader program + */ + vShaderSource = document.querySelector( '#' + vertexShaderId ).text; + fShaderSource = document.querySelector( '#' + fragmentShaderId ).text; + + vertexShader = compileShader( gl, gl.VERTEX_SHADER, vShaderSource ); + fragmentShader = compileShader( gl, gl.FRAGMENT_SHADER, fShaderSource ); + + // Build the program + const program = gl.createProgram(); + + // Attach shaders to it + gl.attachShader( program, vertexShader ); + gl.attachShader( program, fragmentShader ); + + gl.linkProgram( program ); + + return program; +} \ No newline at end of file diff --git a/Abgabe_6/normalMappingTODOs/common/objects3D.js b/Abgabe_6/normalMappingTODOs/common/objects3D.js new file mode 100644 index 0000000..8c03792 --- /dev/null +++ b/Abgabe_6/normalMappingTODOs/common/objects3D.js @@ -0,0 +1,1949 @@ +class Object3D { + + constructor(program = defaultProgram, ka = [0.5, 0.5, 0.5, 1.0], kd = [0.5, 0.5, 0.5, 1.0], ks = [0.5, 0.5, 0.5, 1.0]) { + + this.posVBO = gl.createBuffer(); + this.indexVBO = gl.createBuffer(); + + this.positions = []; + this.indices = []; + + this.ka = ka; + this.kd = kd; + this.ks = ks; + this.specularExponent = 4.0; + + this.position = [0, 0, 0]; + this.orientation = [0, 0, 0]; + this.scale = [1, 1, 1]; + this.modelMatrix; + + this.shader = program; + gl.useProgram(this.shader); + + this.posLoc = gl.getAttribLocation(this.shader, "vPosition"); + this.normalLoc = gl.getAttribLocation(this.shader, "vNormal"); + this.modelMatrixLoc = gl.getUniformLocation(this.shader, "modelMatrix"); + this.viewMatrixLoc = gl.getUniformLocation(this.shader, "viewMatrix"); + this.projectionMatrixLoc = gl.getUniformLocation(this.shader, "projectionMatrix"); + this.lightPositionLoc = gl.getUniformLocation(this.shader, "lightPosition"); + this.IaLoc = gl.getUniformLocation(this.shader, "Ia"); + this.IdLoc = gl.getUniformLocation(this.shader, "Id"); + this.IsLoc = gl.getUniformLocation(this.shader, "Is"); + this.kaLoc = gl.getUniformLocation(this.shader, "ka"); + this.kdLoc = gl.getUniformLocation(this.shader, "kd"); + this.ksLoc = gl.getUniformLocation(this.shader, "ks"); + this.specularExponentLoc = gl.getUniformLocation(this.shader, "specExp"); + + this.SetModelMatrix(); + } + + InitBuffers() { + + gl.bindBuffer(gl.ARRAY_BUFFER, this.posVBO); + gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(this.positions), gl.STATIC_DRAW); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexVBO); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(this.indices), gl.STATIC_DRAW); + } + + SetModelMatrix (position = this.position, orientation = this.orientation, scale = this.scale) { + + this.position = position; + this.orientation = [orientation[0] * Math.PI / 180, orientation[1] * Math.PI / 180, orientation[2] * Math.PI / 180]; // Convert the orientation to RAD + this.scale = scale; + + this.modelMatrix = mat4.create(); + mat4.translate(this.modelMatrix, this.modelMatrix, position); + mat4.rotate(this.modelMatrix, this.modelMatrix, this.orientation[0], [1, 0, 0]); + mat4.rotate(this.modelMatrix, this.modelMatrix, this.orientation[1], [0, 1, 0]); + mat4.rotate(this.modelMatrix, this.modelMatrix, this.orientation[2], [0, 0, 1]); + mat4.scale(this.modelMatrix, this.modelMatrix, scale); + } + + UpdateUniforms () { + + gl.useProgram(this.shader); + + gl.uniformMatrix4fv(this.modelMatrixLoc, false, this.modelMatrix); + + gl.uniform4fv(this.kaLoc, this.ka); + gl.uniform4fv(this.kdLoc, this.kd); + gl.uniform4fv(this.ksLoc, this.ks); + gl.uniform1f(this.specularExponentLoc, this.specularExponent); + } + + Render() { + + gl.useProgram(this.shader); + + // Link data in VBO to shader variables + gl.bindBuffer(gl.ARRAY_BUFFER, this.posVBO); + gl.enableVertexAttribArray(this.posLoc); + gl.enableVertexAttribArray(this.normalLoc); + + gl.vertexAttribPointer(this.posLoc, 3, gl.FLOAT, false, 2 * 3 * 4, 0); + gl.vertexAttribPointer(this.normalLoc, 3, gl.FLOAT, false, 2 * 3 * 4, 3 * 4); + + this.UpdateUniforms(); + + // Render + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexVBO); + gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0); + } +} + + +class Island extends Object3D { + + constructor(program) { + + super(program = defaultProgram, [0.4, 0.2, 0.0, 1.0], [0.6, 0.3, 0.3, 1.0], [0.7, 0.7, 0.7, 1.0]); + + this.positions = [ + -0.344503,-0.106899,-2.313329,-0.011310,-0.533934,-0.845450, + 0.254658,0.065420,-2.430170,-0.011310,-0.533934,-0.845450, + 0.506020,-0.293147,-2.207084,-0.011310,-0.533934,-0.845450, + 1.415955,0.064912,-1.957500,0.432419,-0.749451,-0.501335, + 1.489208,-0.318759,-1.320762,0.432419,-0.749451,-0.501335, + 0.506020,-0.293147,-2.207084,0.432419,-0.749451,-0.501335, + 1.685851,0.084184,-1.268915,0.734904,-0.279119,-0.618068, + 2.014675,-0.126122,-0.782958,0.734904,-0.279119,-0.618068, + 1.489208,-0.318759,-1.320762,0.734904,-0.279119,-0.618068, + 0.957233,-1.089151,-0.905606,0.146612,-0.480540,-0.864631, + 0.454708,-1.256676,-0.897711,0.146612,-0.480540,-0.864631, + 0.810208,-0.709404,-1.141590,0.146612,-0.480540,-0.864631, + 0.454708,-1.256676,-0.897711,0.693344,-0.471028,-0.545351, + 0.739686,-1.249709,-0.541415,0.693344,-0.471028,-0.545351, + 0.231851,-1.904112,-0.621845,0.693344,-0.471028,-0.545351, + 0.810208,-0.709404,-1.141590,0.250114,-0.538384,-0.804727, + 0.052641,-1.633897,-0.758536,0.250114,-0.538384,-0.804727, + -0.020753,-0.743329,-1.377161,0.250114,-0.538384,-0.804727, + 1.364762,-0.324582,0.647285,0.703998,-0.320406,0.633820, + 2.074500,0.090083,0.068582,0.703998,-0.320406,0.633820, + 1.608835,0.037777,0.559365,0.703998,-0.320406,0.633820, + 1.364762,-0.324582,0.647285,0.168668,-0.983853,-0.059875, + 2.014675,-0.126122,-0.782958,0.168668,-0.983853,-0.059875, + 1.955554,-0.191974,0.132568,0.168668,-0.983853,-0.059875, + 2.014675,-0.126122,-0.782958,0.923533,-0.382169,0.032149, + 2.074500,0.090083,0.068582,0.923533,-0.382169,0.032149, + 1.955554,-0.191974,0.132568,0.923533,-0.382169,0.032149, + 1.364762,-0.324582,0.647285,0.782750,-0.569768,0.250335, + 1.393132,0.037777,1.383312,0.782750,-0.569768,0.250335, + 1.210661,-0.322174,1.134609,0.782750,-0.569768,0.250335, + 1.393132,0.037777,1.383312,0.384202,-0.648684,0.656962, + 0.514977,-0.286422,1.576757,0.384202,-0.648684,0.656962, + 1.210661,-0.322174,1.134609,0.384202,-0.648684,0.656962, + 0.507135,-1.581211,0.348922,0.899189,-0.417795,0.130026, + 0.342563,-2.052501,-0.027325,0.899189,-0.417795,0.130026, + 0.620568,-1.491335,-0.146730,0.899189,-0.417795,0.130026, + 0.745909,-0.723539,0.485115,-0.053516,-0.142055,0.988411, + 0.089439,-1.345612,0.360167,-0.053516,-0.142055,0.988411, + 0.507135,-1.581211,0.348922,-0.053516,-0.142055,0.988411, + 0.745909,-0.723539,0.485115,0.814255,-0.442316,0.375960, + 0.620568,-1.491335,-0.146730,0.814255,-0.442316,0.375960, + 1.089500,-0.770651,-0.314462,0.814255,-0.442316,0.375960, + -0.123718,-0.298339,1.611730,-0.310691,-0.613103,0.726344, + -0.930959,0.037777,1.550149,-0.310691,-0.613103,0.726344, + -0.866234,-0.291222,1.300128,-0.310691,-0.613103,0.726344, + 0.514977,-0.286422,1.576757,0.057026,-0.467461,0.882173, + -0.414258,0.037777,1.808618,0.057026,-0.467461,0.882173, + -0.123718,-0.298339,1.611730,0.057026,-0.467461,0.882173, + -0.930959,0.037777,1.550149,-0.545079,-0.572608,0.612379, + -1.444312,-0.282136,0.794076,-0.545079,-0.572608,0.612379, + -0.866234,-0.291222,1.300128,-0.545079,-0.572608,0.612379, + -1.591571,0.097928,0.827036,-0.822073,-0.356985,0.443574, + -1.839477,-0.177971,0.145553,-0.822073,-0.356985,0.443574, + -1.444312,-0.282136,0.794076,-0.822073,-0.356985,0.443574, + -0.936850,-0.751093,-0.176985,-0.746557,-0.495575,0.443912, + -0.611777,-1.317411,-0.262516,-0.746557,-0.495575,0.443912, + -0.326162,-1.310280,0.225784,-0.746557,-0.495575,0.443912, + -0.326162,-1.310280,0.225784,-0.314567,-0.360829,0.877980, + 0.089439,-1.345612,0.360167,-0.314567,-0.360829,0.877980, + 0.289486,-0.743127,0.679448,-0.314567,-0.360829,0.877980, + -0.326162,-1.310280,0.225784,-0.308883,-0.016409,0.950958, + 0.020776,-1.770522,0.330532,-0.308883,-0.016409,0.950958, + 0.089439,-1.345612,0.360167,-0.308883,-0.016409,0.950958, + -1.675519,-0.336500,-0.606829,-0.437848,-0.846877,-0.301808, + -1.607249,0.010755,-1.680275,-0.437848,-0.846877,-0.301808, + -0.625318,-0.725192,-1.039731,-0.437848,-0.846877,-0.301808, + -1.607249,0.010755,-1.680275,-0.071156,0.995311,-0.065514, + -2.011082,0.043485,-0.744422,-0.071156,0.995311,-0.065514, + -1.247727,0.059337,-1.332687,-0.071156,0.995311,-0.065514, + -1.839477,-0.177971,0.145553,-0.745403,-0.666250,-0.022057, + -2.011082,0.043485,-0.744422,-0.745403,-0.666250,-0.022057, + -1.675519,-0.336500,-0.606829,-0.745403,-0.666250,-0.022057, + -1.607249,0.010755,-1.680275,-0.491811,-0.843645,-0.215370, + -0.934732,-0.314137,-1.943344,-0.491811,-0.843645,-0.215370, + -0.625318,-0.725192,-1.039731,-0.491811,-0.843645,-0.215370, + -0.934732,-0.314137,-1.943344,-0.290661,-0.558811,-0.776690, + -0.344503,-0.106899,-2.313329,-0.290661,-0.558811,-0.776690, + -0.184171,-0.491687,-2.096484,-0.290661,-0.558811,-0.776690, + -1.607249,0.010755,-1.680275,-0.468506,-0.295705,-0.832503, + -0.707720,0.065178,-2.205832,-0.468506,-0.295705,-0.832503, + -0.934732,-0.314137,-1.943344,-0.468506,-0.295705,-0.832503, + -0.707720,0.065178,-2.205832,-0.411171,-0.339377,-0.846027, + -0.344503,-0.106899,-2.313329,-0.411171,-0.339377,-0.846027, + -0.934732,-0.314137,-1.943344,-0.411171,-0.339377,-0.846027, + -0.625318,-0.725192,-1.039731,-0.315603,-0.487398,-0.814149, + 0.052641,-1.633897,-0.758536,-0.315603,-0.487398,-0.814149, + -0.350659,-1.373304,-0.758204,-0.315603,-0.487398,-0.814149, + -0.350659,-1.373304,-0.758204,-0.316011,-0.488030,-0.813611, + 0.052641,-1.633897,-0.758536,-0.316011,-0.488030,-0.813611, + -0.299529,-2.155551,-0.308846,-0.316011,-0.488030,-0.813611, + -0.625318,-0.725192,-1.039731,-0.842372,-0.435616,-0.317252, + -0.611777,-1.317411,-0.262516,-0.842372,-0.435616,-0.317252, + -0.936850,-0.751093,-0.176985,-0.842372,-0.435616,-0.317252, + -0.299529,-2.155551,-0.308846,-0.858317,-0.296621,-0.418698, + -0.611777,-1.317411,-0.262516,-0.858317,-0.296621,-0.418698, + -0.350659,-1.373304,-0.758204,-0.858317,-0.296621,-0.418698, + -0.299529,-2.155551,-0.308846,-0.076337,-0.710053,-0.699999, + 0.231851,-1.904112,-0.621845,-0.076337,-0.710053,-0.699999, + -0.086080,-2.478361,-0.004677,-0.076337,-0.710053,-0.699999, + 0.231851,-1.904112,-0.621845,0.799111,-0.586126,-0.133708, + 0.091215,-2.267556,0.130842,0.799111,-0.586126,-0.133708, + -0.086080,-2.478361,-0.004677,0.799111,-0.586126,-0.133708, + 0.091215,-2.267556,0.130842,-0.208503,-0.398745,0.893045, + -0.260030,-2.240649,0.060849,-0.208503,-0.398745,0.893045, + -0.086080,-2.478361,-0.004677,-0.208503,-0.398745,0.893045, + 0.091215,-2.267556,0.130842,-0.196980,-0.021695,0.980167, + -0.470828,-1.954876,0.024811,-0.196980,-0.021695,0.980167, + -0.260030,-2.240649,0.060849,-0.196980,-0.021695,0.980167, + -0.260030,-2.240649,0.060849,-0.812251,-0.581408,-0.047047, + -0.299529,-2.155551,-0.308846,-0.812251,-0.581408,-0.047047, + -0.086080,-2.478361,-0.004677,-0.812251,-0.581408,-0.047047, + -0.278168,0.037777,-0.209083,0.064599,0.997623,0.023971, + -1.591571,0.097928,0.827036,0.064599,0.997623,0.023971, + -0.930959,0.037777,1.550149,0.064599,0.997623,0.023971, + -0.914878,0.210568,-1.267986,-0.451479,0.892219,0.010576, + -0.862298,0.231412,-0.781910,-0.451479,0.892219,0.010576, + -0.302799,0.520691,-1.301783,-0.451479,0.892219,0.010576, + -1.068480,0.101026,-0.360536,0.007341,0.999956,0.005841, + -1.736910,0.103204,0.106553,0.007341,0.999956,0.005841, + -1.591571,0.097928,0.827036,0.007341,0.999956,0.005841, + 0.236277,0.037777,0.701510,0.000000,1.000000,-0.000000, + 1.608835,0.037777,0.559365,0.000000,1.000000,-0.000000, + 0.656348,0.037777,-0.098120,0.000000,1.000000,-0.000000, + -0.930959,0.037777,1.550149,0.000000,1.000000,-0.000000, + -0.278168,0.037777,-0.209083,0.000000,1.000000,-0.000000, + 0.501631,0.037777,1.688231,0.000000,1.000000,0.000000, + 1.393132,0.037777,1.383312,0.000000,1.000000,0.000000, + 1.034499,0.275328,-1.269756,0.196507,0.940792,-0.276217, + 0.471459,0.267036,-1.698558,0.196507,0.940792,-0.276217, + 0.637660,0.376390,-1.207861,0.196507,0.940792,-0.276217, + 0.812177,0.491673,-0.567514,-0.157696,0.796105,0.584251, + 1.244986,0.398908,-0.324291,-0.157696,0.796105,0.584251, + 1.002755,0.639249,-0.717163,-0.157696,0.796105,0.584251, + 1.381545,0.288786,-0.765328,0.484775,0.872472,-0.061537, + 1.685851,0.084184,-1.268915,0.484775,0.872472,-0.061537, + 1.348978,0.284964,-1.076072,0.484775,0.872472,-0.061537, + -0.505260,0.213488,-1.704558,-0.341361,0.885806,-0.314358, + -1.247727,0.059337,-1.332687,-0.341361,0.885806,-0.314358, + -0.914878,0.210568,-1.267986,-0.341361,0.885806,-0.314358, + 0.471459,0.267036,-1.698558,0.113029,0.948800,-0.294962, + 0.254658,0.065420,-2.430170,0.113029,0.948800,-0.294962, + -0.221831,0.306144,-1.838428,0.113029,0.948800,-0.294962, + -0.221831,0.306144,-1.838428,-0.143666,0.903921,-0.402847, + -0.274246,0.065420,-2.359878,-0.143666,0.903921,-0.402847, + -0.707720,0.065178,-2.205832,-0.143666,0.903921,-0.402847, + -0.020753,-0.743329,-1.377161,0.203115,-0.908935,-0.364119, + -0.184171,-0.491687,-2.096484,0.203115,-0.908935,-0.364119, + 0.506020,-0.293147,-2.207084,0.203115,-0.908935,-0.364119, + 0.810208,-0.709404,-1.141590,0.065767,-0.508178,-0.858737, + 1.489208,-0.318759,-1.320762,0.065767,-0.508178,-0.858737, + 0.957233,-1.089151,-0.905606,0.065767,-0.508178,-0.858737, + 1.489208,-0.318759,-1.320762,0.842649,-0.529682,0.096844, + 1.089500,-0.770651,-0.314462,0.842649,-0.529682,0.096844, + 0.957233,-1.089151,-0.905606,0.842649,-0.529682,0.096844, + 1.089500,-0.770651,-0.314462,0.476105,-0.841849,0.254193, + 1.364762,-0.324582,0.647285,0.476105,-0.841849,0.254193, + 0.745909,-0.723539,0.485115,0.476105,-0.841849,0.254193, + 1.089500,-0.770651,-0.314462,0.621220,-0.763538,0.176339, + 2.014675,-0.126122,-0.782958,0.621220,-0.763538,0.176339, + 1.364762,-0.324582,0.647285,0.621220,-0.763538,0.176339, + 1.210661,-0.322174,1.134609,0.209165,-0.891710,0.401376, + 0.289486,-0.743127,0.679448,0.209165,-0.891710,0.401376, + 0.745909,-0.723539,0.485115,0.209165,-0.891710,0.401376, + 0.289486,-0.743127,0.679448,0.112256,-0.692154,0.712966, + -0.866234,-0.291222,1.300128,0.112256,-0.692154,0.712966, + -0.326162,-1.310280,0.225784,0.112256,-0.692154,0.712966, + -0.866234,-0.291222,1.300128,-0.735865,-0.635739,0.233105, + -0.936850,-0.751093,-0.176985,-0.735865,-0.635739,0.233105, + -0.326162,-1.310280,0.225784,-0.735865,-0.635739,0.233105, + -0.934732,-0.314137,-1.943344,-0.217928,-0.914338,-0.341311, + -0.020753,-0.743329,-1.377161,-0.217928,-0.914338,-0.341311, + -0.625318,-0.725192,-1.039731,-0.217928,-0.914338,-0.341311, + 0.506020,-0.293147,-2.207084,0.359758,-0.297920,-0.884205, + 0.254658,0.065420,-2.430170,0.359758,-0.297920,-0.884205, + 1.415955,0.064912,-1.957500,0.359758,-0.297920,-0.884205, + 0.506020,-0.293147,-2.207084,0.001450,-0.490493,-0.871444, + -0.184171,-0.491687,-2.096484,0.001450,-0.490493,-0.871444, + -0.344503,-0.106899,-2.313329,0.001450,-0.490493,-0.871444, + -0.344503,-0.106899,-2.313329,-0.128825,-0.209322,-0.969324, + -0.274246,0.065420,-2.359878,-0.128825,-0.209322,-0.969324, + 0.254658,0.065420,-2.430170,-0.128825,-0.209322,-0.969324, + 0.810208,-0.709404,-1.141590,0.363550,-0.827846,-0.427204, + 0.506020,-0.293147,-2.207084,0.363550,-0.827846,-0.427204, + 1.489208,-0.318759,-1.320762,0.363550,-0.827846,-0.427204, + 1.415955,0.064912,-1.957500,0.864833,-0.379805,-0.328348, + 1.685851,0.084184,-1.268915,0.864833,-0.379805,-0.328348, + 1.489208,-0.318759,-1.320762,0.864833,-0.379805,-0.328348, + 1.685851,0.084184,-1.268915,0.843529,0.099206,-0.527842, + 2.054775,0.091828,-0.677912,0.843529,0.099206,-0.527842, + 2.014675,-0.126122,-0.782958,0.843529,0.099206,-0.527842, + 0.957233,-1.089151,-0.905606,0.304896,-0.925237,-0.225775, + 0.739686,-1.249709,-0.541415,0.304896,-0.925237,-0.225775, + 0.454708,-1.256676,-0.897711,0.304896,-0.925237,-0.225775, + 0.957233,-1.089151,-0.905606,0.754980,-0.632785,0.172010, + 1.089500,-0.770651,-0.314462,0.754980,-0.632785,0.172010, + 0.739686,-1.249709,-0.541415,0.754980,-0.632785,0.172010, + 0.810208,-0.709404,-1.141590,0.158331,-0.485892,-0.859558, + 0.454708,-1.256676,-0.897711,0.158331,-0.485892,-0.859558, + 0.052641,-1.633897,-0.758536,0.158331,-0.485892,-0.859558, + 0.454708,-1.256676,-0.897711,0.071930,-0.411827,-0.908419, + 0.231851,-1.904112,-0.621845,0.071930,-0.411827,-0.908419, + 0.052641,-1.633897,-0.758536,0.071930,-0.411827,-0.908419, + 1.364762,-0.324582,0.647285,0.667049,-0.114290,0.736195, + 1.955554,-0.191974,0.132568,0.667049,-0.114290,0.736195, + 2.074500,0.090083,0.068582,0.667049,-0.114290,0.736195, + 2.014675,-0.126122,-0.782958,0.985338,-0.168554,-0.026430, + 2.054775,0.091828,-0.677912,0.985338,-0.168554,-0.026430, + 2.074500,0.090083,0.068582,0.985338,-0.168554,-0.026430, + 1.364762,-0.324582,0.647285,0.833133,-0.508251,0.218107, + 1.608835,0.037777,0.559365,0.833133,-0.508251,0.218107, + 1.393132,0.037777,1.383312,0.833133,-0.508251,0.218107, + 1.393132,0.037777,1.383312,0.308934,-0.297855,0.903240, + 0.501631,0.037777,1.688231,0.308934,-0.297855,0.903240, + 0.514977,-0.286422,1.576757,0.308934,-0.297855,0.903240, + 0.745909,-0.723539,0.485115,0.943374,-0.288606,0.163563, + 0.507135,-1.581211,0.348922,0.943374,-0.288606,0.163563, + 0.620568,-1.491335,-0.146730,0.943374,-0.288606,0.163563, + 0.507135,-1.581211,0.348922,0.227638,-0.654831,0.720678, + 0.020776,-1.770522,0.330532,0.227638,-0.654831,0.720678, + 0.342563,-2.052501,-0.027325,0.227638,-0.654831,0.720678, + 0.745909,-0.723539,0.485115,0.352005,-0.526859,0.773635, + 0.289486,-0.743127,0.679448,0.352005,-0.526859,0.773635, + 0.089439,-1.345612,0.360167,0.352005,-0.526859,0.773635, + 0.507135,-1.581211,0.348922,-0.011353,-0.067744,0.997638, + 0.089439,-1.345612,0.360167,-0.011353,-0.067744,0.997638, + 0.020776,-1.770522,0.330532,-0.011353,-0.067744,0.997638, + 1.089500,-0.770651,-0.314462,0.824551,-0.558121,-0.092827, + 0.620568,-1.491335,-0.146730,0.824551,-0.558121,-0.092827, + 0.739686,-1.249709,-0.541415,0.824551,-0.558121,-0.092827, + 0.620568,-1.491335,-0.146730,0.895938,-0.444176,-0.001524, + 0.342563,-2.052501,-0.027325,0.895938,-0.444176,-0.001524, + 0.739686,-1.249709,-0.541415,0.895938,-0.444176,-0.001524, + -0.123718,-0.298339,1.611730,-0.330784,-0.673283,0.661265, + -0.414258,0.037777,1.808618,-0.330784,-0.673283,0.661265, + -0.930959,0.037777,1.550149,-0.330784,-0.673283,0.661265, + 0.514977,-0.286422,1.576757,0.123552,-0.318115,0.939967, + 0.501631,0.037777,1.688231,0.123552,-0.318115,0.939967, + -0.414258,0.037777,1.808618,0.123552,-0.318115,0.939967, + -0.930959,0.037777,1.550149,-0.710606,-0.329252,0.621798, + -1.591571,0.097928,0.827036,-0.710606,-0.329252,0.621798, + -1.444312,-0.282136,0.794076,-0.710606,-0.329252,0.621798, + -1.591571,0.097928,0.827036,-0.914230,0.359435,0.187055, + -1.736910,0.103204,0.106553,-0.914230,0.359435,0.187055, + -1.839477,-0.177971,0.145553,-0.914230,0.359435,0.187055, + -0.326162,-1.310280,0.225784,-0.862841,0.036460,0.504158, + -0.611777,-1.317411,-0.262516,-0.862841,0.036460,0.504158, + -0.470828,-1.954876,0.024811,-0.862841,0.036460,0.504158, + -0.148262,0.773865,-0.947432,-0.214448,0.783558,-0.583137, + 0.101020,0.922236,-0.839739,-0.214448,0.783558,-0.583137, + 0.312442,0.779166,-1.109731,-0.214448,0.783558,-0.583137, + -0.326162,-1.310280,0.225784,-0.476424,-0.162478,0.864073, + -0.470828,-1.954876,0.024811,-0.476424,-0.162478,0.864073, + 0.020776,-1.770522,0.330532,-0.476424,-0.162478,0.864073, + -1.607249,0.010755,-1.680275,-0.672686,-0.690413,-0.266128, + -1.675519,-0.336500,-0.606829,-0.672686,-0.690413,-0.266128, + -2.011082,0.043485,-0.744422,-0.672686,-0.690413,-0.266128, + -1.839477,-0.177971,0.145553,-0.894170,0.362602,0.262642, + -1.736910,0.103204,0.106553,-0.894170,0.362602,0.262642, + -2.011082,0.043485,-0.744422,-0.894170,0.362602,0.262642, + -1.607249,0.010755,-1.680275,-0.088166,0.994955,-0.047871, + -1.247727,0.059337,-1.332687,-0.088166,0.994955,-0.047871, + -0.707720,0.065178,-2.205832,-0.088166,0.994955,-0.047871, + -0.707720,0.065178,-2.205832,-0.332492,-0.117227,-0.935792, + -0.274246,0.065420,-2.359878,-0.332492,-0.117227,-0.935792, + -0.344503,-0.106899,-2.313329,-0.332492,-0.117227,-0.935792, + -0.625318,-0.725192,-1.039731,-0.422393,-0.540336,-0.727751, + -0.020753,-0.743329,-1.377161,-0.422393,-0.540336,-0.727751, + 0.052641,-1.633897,-0.758536,-0.422393,-0.540336,-0.727751, + -0.625318,-0.725192,-1.039731,-0.791668,-0.492524,-0.361499, + -0.350659,-1.373304,-0.758204,-0.791668,-0.492524,-0.361499, + -0.611777,-1.317411,-0.262516,-0.791668,-0.492524,-0.361499, + -0.299529,-2.155551,-0.308846,-0.906730,-0.322801,-0.271369, + -0.470828,-1.954876,0.024811,-0.906730,-0.322801,-0.271369, + -0.611777,-1.317411,-0.262516,-0.906730,-0.322801,-0.271369, + -0.299529,-2.155551,-0.308846,-0.214713,-0.550502,-0.806750, + 0.052641,-1.633897,-0.758536,-0.214713,-0.550502,-0.806750, + 0.231851,-1.904112,-0.621845,-0.214713,-0.550502,-0.806750, + 0.231851,-1.904112,-0.621845,0.506337,-0.809792,-0.296411, + 0.342563,-2.052501,-0.027325,0.506337,-0.809792,-0.296411, + 0.091215,-2.267556,0.130842,0.506337,-0.809792,-0.296411, + 0.231851,-1.904112,-0.621845,0.773863,-0.565481,-0.285251, + 0.739686,-1.249709,-0.541415,0.773863,-0.565481,-0.285251, + 0.342563,-2.052501,-0.027325,0.773863,-0.565481,-0.285251, + 0.091215,-2.267556,0.130842,-0.375936,-0.390836,0.840190, + 0.020776,-1.770522,0.330532,-0.375936,-0.390836,0.840190, + -0.470828,-1.954876,0.024811,-0.375936,-0.390836,0.840190, + 0.342563,-2.052501,-0.027325,0.641356,-0.206036,0.739061, + 0.020776,-1.770522,0.330532,0.641356,-0.206036,0.739061, + 0.091215,-2.267556,0.130842,0.641356,-0.206036,0.739061, + -0.299529,-2.155551,-0.308846,-0.800525,-0.597048,-0.051900, + -0.260030,-2.240649,0.060849,-0.800525,-0.597048,-0.051900, + -0.470828,-1.954876,0.024811,-0.800525,-0.597048,-0.051900, + -0.278168,0.037777,-0.209083,0.073099,0.996717,0.034798, + -1.068480,0.101026,-0.360536,0.073099,0.996717,0.034798, + -1.591571,0.097928,0.827036,0.073099,0.996717,0.034798, + -1.247727,0.059337,-1.332687,-0.047039,0.998310,-0.034138, + -2.011082,0.043485,-0.744422,-0.047039,0.998310,-0.034138, + -1.068480,0.101026,-0.360536,-0.047039,0.998310,-0.034138, + -1.068480,0.101026,-0.360536,-0.037279,0.997620,-0.058000, + -2.011082,0.043485,-0.744422,-0.037279,0.997620,-0.058000, + -1.736910,0.103204,0.106553,-0.037279,0.997620,-0.058000, + -0.414258,0.037777,1.808618,0.000000,1.000000,0.000000, + 1.685851,0.084184,-1.268915,0.251796,0.856047,-0.451423, + 1.034499,0.275328,-1.269756,0.251796,0.856047,-0.451423, + 1.348978,0.284964,-1.076072,0.251796,0.856047,-0.451423, + 0.656348,0.037777,-0.098120,-0.044318,0.996952,0.064203, + 1.608835,0.037777,0.559365,-0.044318,0.996952,0.064203, + 2.074500,0.090083,0.068582,-0.044318,0.996952,0.064203, + 1.244986,0.398908,-0.324291,0.295075,0.944490,-0.144463, + 2.054775,0.091828,-0.677912,0.295075,0.944490,-0.144463, + 1.381545,0.288786,-0.765328,0.295075,0.944490,-0.144463, + -0.221831,0.306144,-1.838428,-0.498034,0.480949,-0.721560, + -0.505260,0.213488,-1.704558,-0.498034,0.480949,-0.721560, + -0.262315,0.721321,-1.533752,-0.498034,0.480949,-0.721560, + 0.471459,0.267036,-1.698558,0.121281,0.947158,-0.296955, + 1.415955,0.064912,-1.957500,0.121281,0.947158,-0.296955, + 0.254658,0.065420,-2.430170,0.121281,0.947158,-0.296955, + -0.221831,0.306144,-1.838428,-0.055013,0.908641,-0.413938, + 0.254658,0.065420,-2.430170,-0.055013,0.908641,-0.413938, + -0.274246,0.065420,-2.359878,-0.055013,0.908641,-0.413938, + -0.020753,-0.743329,-1.377161,0.149389,-0.905792,-0.396515, + 0.506020,-0.293147,-2.207084,0.149389,-0.905792,-0.396515, + 0.810208,-0.709404,-1.141590,0.149389,-0.905792,-0.396515, + 1.489208,-0.318759,-1.320762,0.497948,-0.847704,-0.182885, + 2.014675,-0.126122,-0.782958,0.497948,-0.847704,-0.182885, + 1.089500,-0.770651,-0.314462,0.497948,-0.847704,-0.182885, + 1.364762,-0.324582,0.647285,0.503912,-0.848132,0.163537, + 1.210661,-0.322174,1.134609,0.503912,-0.848132,0.163537, + 0.745909,-0.723539,0.485115,0.503912,-0.848132,0.163537, + 1.210661,-0.322174,1.134609,0.209218,-0.891736,0.401292, + 0.514977,-0.286422,1.576757,0.209218,-0.891736,0.401292, + 0.289486,-0.743127,0.679448,0.209218,-0.891736,0.401292, + 0.289486,-0.743127,0.679448,-0.162145,-0.916603,0.365442, + -0.123718,-0.298339,1.611730,-0.162145,-0.916603,0.365442, + -0.866234,-0.291222,1.300128,-0.162145,-0.916603,0.365442, + 0.289486,-0.743127,0.679448,0.041058,-0.894588,0.445002, + 0.514977,-0.286422,1.576757,0.041058,-0.894588,0.445002, + -0.123718,-0.298339,1.611730,0.041058,-0.894588,0.445002, + -0.866234,-0.291222,1.300128,-0.275026,-0.914167,0.297757, + -1.444312,-0.282136,0.794076,-0.275026,-0.914167,0.297757, + -0.936850,-0.751093,-0.176985,-0.275026,-0.914167,0.297757, + -1.444312,-0.282136,0.794076,-0.487927,-0.858194,0.159466, + -1.839477,-0.177971,0.145553,-0.487927,-0.858194,0.159466, + -0.936850,-0.751093,-0.176985,-0.487927,-0.858194,0.159466, + -0.936850,-0.751093,-0.176985,-0.403728,-0.898421,-0.172756, + -1.675519,-0.336500,-0.606829,-0.403728,-0.898421,-0.172756, + -0.625318,-0.725192,-1.039731,-0.403728,-0.898421,-0.172756, + -0.936850,-0.751093,-0.176985,-0.517675,-0.852957,0.066909, + -1.839477,-0.177971,0.145553,-0.517675,-0.852957,0.066909, + -1.675519,-0.336500,-0.606829,-0.517675,-0.852957,0.066909, + -0.934732,-0.314137,-1.943344,-0.272460,-0.925814,-0.261981, + -0.184171,-0.491687,-2.096484,-0.272460,-0.925814,-0.261981, + -0.020753,-0.743329,-1.377161,-0.272460,-0.925814,-0.261981, + -0.862298,0.231412,-0.781910,0.062061,0.842272,0.535467, + -0.404757,0.197895,-0.782219,0.062061,0.842272,0.535467, + -0.302799,0.520691,-1.301783,0.062061,0.842272,0.535467, + 0.568488,0.537125,-0.913448,-0.551248,0.683734,0.478156, + 0.656348,0.037777,-0.098120,-0.551248,0.683734,0.478156, + 0.812177,0.491673,-0.567514,-0.551248,0.683734,0.478156, + -0.262315,0.721321,-1.533752,-0.213818,0.757013,0.617424, + -0.302799,0.520691,-1.301783,-0.213818,0.757013,0.617424, + 0.115069,0.760356,-1.450921,-0.213818,0.757013,0.617424, + -0.061115,0.654189,-0.643377,0.027941,0.579677,0.814367, + 0.205810,0.801703,-0.757537,0.027941,0.579677,0.814367, + 0.101020,0.922236,-0.839739,0.027941,0.579677,0.814367, + 0.205810,0.801703,-0.757537,0.686999,0.708215,0.162680, + 0.312442,0.779166,-1.109731,0.686999,0.708215,0.162680, + 0.101020,0.922236,-0.839739,0.686999,0.708215,0.162680, + 0.656348,0.037777,-0.098120,-0.265754,0.732275,0.627015, + 0.312442,0.779166,-1.109731,-0.265754,0.732275,0.627015, + 0.344937,0.262088,-0.492076,-0.265754,0.732275,0.627015, + 0.312442,0.779166,-1.109731,0.609839,0.689476,-0.390794, + 0.115069,0.760356,-1.450921,0.609839,0.689476,-0.390794, + 0.077232,0.934717,-1.202342,0.609839,0.689476,-0.390794, + -0.278168,0.037777,-0.209083,0.191788,0.518516,0.833282, + 0.344937,0.262088,-0.492076,0.191788,0.518516,0.833282, + -0.102879,0.422805,-0.489015,0.191788,0.518516,0.833282, + -0.269697,0.566033,-0.874217,-0.848104,0.523746,0.080063, + -0.148262,0.773865,-0.947432,-0.848104,0.523746,0.080063, + -0.186512,0.743264,-1.152426,-0.848104,0.523746,0.080063, + 0.637660,0.376390,-1.207861,0.744297,0.644037,-0.176740, + 0.312442,0.779166,-1.109731,0.744297,0.644037,-0.176740, + 0.568488,0.537125,-0.913448,0.744297,0.644037,-0.176740, + -0.148262,0.773865,-0.947432,-0.588752,0.808241,-0.010797, + 0.077232,0.934717,-1.202342,-0.588752,0.808241,-0.010797, + -0.186512,0.743264,-1.152426,-0.588752,0.808241,-0.010797, + -0.278168,0.037777,-0.209083,-0.063048,0.845033,0.530984, + 0.656348,0.037777,-0.098120,-0.063048,0.845033,0.530984, + 0.344937,0.262088,-0.492076,-0.063048,0.845033,0.530984, + -0.404757,0.197895,-0.782219,-0.774175,0.405487,0.486039, + -0.102879,0.422805,-0.489015,-0.774175,0.405487,0.486039, + -0.269697,0.566033,-0.874217,-0.774175,0.405487,0.486039, + 1.002755,0.639249,-0.717163,0.009213,0.878584,-0.477499, + 0.637660,0.376390,-1.207861,0.009213,0.878584,-0.477499, + 0.568488,0.537125,-0.913448,0.009213,0.878584,-0.477499, + 1.002755,0.639249,-0.717163,-0.368310,0.852282,0.371434, + 0.568488,0.537125,-0.913448,-0.368310,0.852282,0.371434, + 0.812177,0.491673,-0.567514,-0.368310,0.852282,0.371434, + 1.002755,0.639249,-0.717163,0.680780,0.731952,0.028032, + 1.244986,0.398908,-0.324291,0.680780,0.731952,0.028032, + 1.381545,0.288786,-0.765328,0.680780,0.731952,0.028032, + 1.002755,0.639249,-0.717163,0.292029,0.806373,-0.514278, + 1.348978,0.284964,-1.076072,0.292029,0.806373,-0.514278, + 1.034499,0.275328,-1.269756,0.292029,0.806373,-0.514278, + 1.002755,0.639249,-0.717163,0.671521,0.736715,-0.079439, + 1.381545,0.288786,-0.765328,0.671521,0.736715,-0.079439, + 1.348978,0.284964,-1.076072,0.671521,0.736715,-0.079439, + 0.656348,0.037777,-0.098120,-0.204323,0.736731,0.644577, + 1.244986,0.398908,-0.324291,-0.204323,0.736731,0.644577, + 0.812177,0.491673,-0.567514,-0.204323,0.736731,0.644577, + 1.002755,0.639249,-0.717163,0.127518,0.831689,-0.540401, + 1.034499,0.275328,-1.269756,0.127518,0.831689,-0.540401, + 0.637660,0.376390,-1.207861,0.127518,0.831689,-0.540401, + 1.034499,0.275328,-1.269756,0.148193,0.965691,-0.213260, + 1.415955,0.064912,-1.957500,0.148193,0.965691,-0.213260, + 0.471459,0.267036,-1.698558,0.148193,0.965691,-0.213260, + 1.381545,0.288786,-0.765328,0.298863,0.933395,-0.198632, + 2.054775,0.091828,-0.677912,0.298863,0.933395,-0.198632, + 1.685851,0.084184,-1.268915,0.298863,0.933395,-0.198632, + 1.685851,0.084184,-1.268915,0.279128,0.950573,-0.136011, + 1.415955,0.064912,-1.957500,0.279128,0.950573,-0.136011, + 1.034499,0.275328,-1.269756,0.279128,0.950573,-0.136011, + 1.244986,0.398908,-0.324291,0.351847,0.936030,-0.007109, + 2.074500,0.090083,0.068582,0.351847,0.936030,-0.007109, + 2.054775,0.091828,-0.677912,0.351847,0.936030,-0.007109, + 0.568488,0.537125,-0.913448,0.412774,0.795871,0.442952, + 0.312442,0.779166,-1.109731,0.412774,0.795871,0.442952, + 0.656348,0.037777,-0.098120,0.412774,0.795871,0.442952, + 0.637660,0.376390,-1.207861,0.676300,0.636437,-0.370899, + 0.471459,0.267036,-1.698558,0.676300,0.636437,-0.370899, + 0.312442,0.779166,-1.109731,0.676300,0.636437,-0.370899, + 0.656348,0.037777,-0.098120,-0.112175,0.652309,0.749606, + 2.074500,0.090083,0.068582,-0.112175,0.652309,0.749606, + 1.244986,0.398908,-0.324291,-0.112175,0.652309,0.749606, + 0.312442,0.779166,-1.109731,0.900741,0.355212,0.249982, + 0.205810,0.801703,-0.757537,0.900741,0.355212,0.249982, + 0.344937,0.262088,-0.492076,0.900741,0.355212,0.249982, + -0.102879,0.422805,-0.489015,0.054740,0.547276,0.835160, + 0.205810,0.801703,-0.757537,0.054740,0.547276,0.835160, + -0.061115,0.654189,-0.643377,0.054740,0.547276,0.835160, + -0.102879,0.422805,-0.489015,0.174787,0.470544,0.864892, + 0.344937,0.262088,-0.492076,0.174787,0.470544,0.864892, + 0.205810,0.801703,-0.757537,0.174787,0.470544,0.864892, + -0.148262,0.773865,-0.947432,-0.819420,0.413037,0.397430, + -0.102879,0.422805,-0.489015,-0.819420,0.413037,0.397430, + -0.061115,0.654189,-0.643377,-0.819420,0.413037,0.397430, + -0.302799,0.520691,-1.301783,-0.935367,0.351933,0.035096, + -0.404757,0.197895,-0.782219,-0.935367,0.351933,0.035096, + -0.269697,0.566033,-0.874217,-0.935367,0.351933,0.035096, + -0.302799,0.520691,-1.301783,-0.564513,0.642593,-0.518072, + -0.186512,0.743264,-1.152426,-0.564513,0.642593,-0.518072, + 0.077232,0.934717,-1.202342,-0.564513,0.642593,-0.518072, + -0.302799,0.520691,-1.301783,-0.891873,0.451792,0.021139, + -0.269697,0.566033,-0.874217,-0.891873,0.451792,0.021139, + -0.186512,0.743264,-1.152426,-0.891873,0.451792,0.021139, + -0.302799,0.520691,-1.301783,-0.556071,0.638273,-0.532346, + 0.077232,0.934717,-1.202342,-0.556071,0.638273,-0.532346, + 0.115069,0.760356,-1.450921,-0.556071,0.638273,-0.532346, + -0.221831,0.306144,-1.838428,0.194953,0.548876,-0.812852, + 0.115069,0.760356,-1.450921,0.194953,0.548876,-0.812852, + 0.471459,0.267036,-1.698558,0.194953,0.548876,-0.812852, + -0.278168,0.037777,-0.209083,0.018057,0.952626,0.303607, + -0.862298,0.231412,-0.781910,0.018057,0.952626,0.303607, + -1.068480,0.101026,-0.360536,0.018057,0.952626,0.303607, + -0.302799,0.520691,-1.301783,-0.910049,0.378636,0.168656, + -0.262315,0.721321,-1.533752,-0.910049,0.378636,0.168656, + -0.505260,0.213488,-1.704558,-0.910049,0.378636,0.168656, + -0.302799,0.520691,-1.301783,-0.431763,0.808594,-0.399696, + -0.505260,0.213488,-1.704558,-0.431763,0.808594,-0.399696, + -0.914878,0.210568,-1.267986,-0.431763,0.808594,-0.399696, + -1.247727,0.059337,-1.332687,-0.414588,0.909991,0.005824, + -0.862298,0.231412,-0.781910,-0.414588,0.909991,0.005824, + -0.914878,0.210568,-1.267986,-0.414588,0.909991,0.005824, + -0.505260,0.213488,-1.704558,-0.279804,0.945470,-0.166723, + -0.707720,0.065178,-2.205832,-0.279804,0.945470,-0.166723, + -1.247727,0.059337,-1.332687,-0.279804,0.945470,-0.166723, + -0.221831,0.306144,-1.838428,-0.361917,0.923511,-0.127061, + -0.707720,0.065178,-2.205832,-0.361917,0.923511,-0.127061, + -0.505260,0.213488,-1.704558,-0.361917,0.923511,-0.127061, + 0.312442,0.779166,-1.109731,0.633798,0.660195,-0.403040, + 0.471459,0.267036,-1.698558,0.633798,0.660195,-0.403040, + 0.115069,0.760356,-1.450921,0.633798,0.660195,-0.403040, + -0.269697,0.566033,-0.874217,-0.662414,0.561673,0.495713, + -0.102879,0.422805,-0.489015,-0.662414,0.561673,0.495713, + -0.148262,0.773865,-0.947432,-0.662414,0.561673,0.495713, + -0.148262,0.773865,-0.947432,0.221736,0.724107,0.653072, + 0.312442,0.779166,-1.109731,0.221736,0.724107,0.653072, + 0.077232,0.934717,-1.202342,0.221736,0.724107,0.653072, + -0.404757,0.197895,-0.782219,-0.747849,0.577950,0.326642, + -0.278168,0.037777,-0.209083,-0.747849,0.577950,0.326642, + -0.102879,0.422805,-0.489015,-0.747849,0.577950,0.326642, + -0.221831,0.306144,-1.838428,0.113113,0.594980,-0.795741, + -0.262315,0.721321,-1.533752,0.113113,0.594980,-0.795741, + 0.115069,0.760356,-1.450921,0.113113,0.594980,-0.795741, + -0.278168,0.037777,-0.209083,0.070836,0.964646,0.253850, + -0.404757,0.197895,-0.782219,0.070836,0.964646,0.253850, + -0.862298,0.231412,-0.781910,0.070836,0.964646,0.253850, + -1.247727,0.059337,-1.332687,-0.462896,0.885145,0.047392, + -1.068480,0.101026,-0.360536,-0.462896,0.885145,0.047392, + -0.862298,0.231412,-0.781910,-0.462896,0.885145,0.047392, + -0.148262,0.773865,-0.947432,-0.591876,0.677685,0.436377, + -0.061115,0.654189,-0.643377,-0.591876,0.677685,0.436377, + 0.101020,0.922236,-0.839739,-0.591876,0.677685,0.436377 + ]; + + this.indices = [ + 0,1,2, + 3,4,5, + 6,7,8, + 9,10,11, + 12,13,14, + 15,16,17, + 18,19,20, + 21,22,23, + 24,25,26, + 27,28,29, + 30,31,32, + 33,34,35, + 36,37,38, + 39,40,41, + 42,43,44, + 45,46,47, + 48,49,50, + 51,52,53, + 54,55,56, + 57,58,59, + 60,61,62, + 63,64,65, + 66,67,68, + 69,70,71, + 72,73,74, + 75,76,77, + 78,79,80, + 81,82,83, + 84,85,86, + 87,88,89, + 90,91,92, + 93,94,95, + 96,97,98, + 99,100,101, + 102,103,104, + 105,106,107, + 108,109,110, + 111,112,113, + 114,115,116, + 117,118,119, + 120,121,122, + 123,120,124, + 120,125,126, + 127,128,129, + 130,131,132, + 133,134,135, + 136,137,138, + 139,140,141, + 142,143,144, + 145,146,147, + 148,149,150, + 151,152,153, + 154,155,156, + 157,158,159, + 160,161,162, + 163,164,165, + 166,167,168, + 169,170,171, + 172,173,174, + 175,176,177, + 178,179,180, + 181,182,183, + 184,185,186, + 187,188,189, + 190,191,192, + 193,194,195, + 196,197,198, + 199,200,201, + 202,203,204, + 205,206,207, + 208,209,210, + 211,212,213, + 214,215,216, + 217,218,219, + 220,221,222, + 223,224,225, + 226,227,228, + 229,230,231, + 232,233,234, + 235,236,237, + 238,239,240, + 241,242,243, + 244,245,246, + 247,248,249, + 250,251,252, + 253,254,255, + 256,257,258, + 259,260,261, + 262,263,264, + 265,266,267, + 268,269,270, + 271,272,273, + 274,275,276, + 277,278,279, + 280,281,282, + 283,284,285, + 286,287,288, + 289,290,291, + 292,293,294, + 295,296,297, + 298,299,300, + 120,126,121, + 123,301,120, + 120,301,125, + 302,303,304, + 305,306,307, + 308,309,310, + 311,312,313, + 314,315,316, + 317,318,319, + 320,321,322, + 323,324,325, + 326,327,328, + 329,330,331, + 332,333,334, + 335,336,337, + 338,339,340, + 341,342,343, + 344,345,346, + 347,348,349, + 350,351,352, + 353,354,355, + 120,122,124, + 356,357,358, + 359,360,361, + 362,363,364, + 365,366,367, + 368,369,370, + 371,372,373, + 374,375,376, + 377,378,379, + 380,381,382, + 383,384,385, + 386,387,388, + 389,390,391, + 392,393,394, + 395,396,397, + 398,399,400, + 401,402,403, + 404,405,406, + 407,408,409, + 410,411,412, + 413,414,415, + 416,417,418, + 419,420,421, + 422,423,424, + 425,426,427, + 428,429,430, + 431,432,433, + 434,435,436, + 437,438,439, + 440,441,442, + 443,444,445, + 446,447,448, + 449,450,451, + 452,453,454, + 455,456,457, + 458,459,460, + 461,462,463, + 464,465,466, + 467,468,469, + 470,471,472, + 473,474,475, + 476,477,478, + 479,480,481, + 482,483,484, + 485,486,487, + 488,489,490, + 491,492,493, + 494,495,496, + 497,498,499, + 500,501,502 + ]; + + this.colors = []; + for(var i = 0; i < this.positions.length; i += 3) { + this.colors.push(0.5, 0.5, 0.5, 1); + } + + this.InitBuffers(); + } +} + + +class River extends Object3D { + + constructor(program) { + + super(program = defaultProgram, [0.2, 0.2, 1.0, 1.0], [0.4, 0.4, 0.8, 1.0], [0.5, 0.5, 0.9, 1.0]); + + this.positions = [ + 0.0, 0.0, 14.0, 0, 1, 0, // index 0 + 1.0, 0.0, 12.5, 0, 1, 0, // index 1 + 1.5, 0.0, 12.5, 0, 1, 0, // index 2 + 1.3, 0.0, 11.0, 0, 1, 0, // index 3 + 2.3, 0.0, 11.0, 0, 1, 0, // index 4 + 1.0, 0.0, 9.5, 0, 1, 0, // index 5 + 2.5, 0.0, 9.5, 0, 1, 0, // index 6 + 0.0, 0.0, 8.0, 0, 1, 0, // index 7 + 2.0, 0.0, 8.0, 0, 1, 0, // index 8 + -2.4, 0.0, 6.0, 0, 1, 0, // index 9 + 0.1, 0.0, 6.0, 0, 1, 0, // index 10 + -3.0, 0.0, 4.0, 0, 1, 0, // index 11 + 0.0, 0.0, 4.0, 0, 1, 0, // index 12 + -2.4, 0.0, 2.0, 0, 1, 0, // index 13 + 1.1, 0.0, 2.0, 0, 1, 0, // index 14 + 0.0, 0.0, 0.0, 0, 1, 0, // index 15 + 4.0, 0.0, 0.0, 0, 1, 0, // index 16 + 0.0, -7.0, 0.0, 0, 0, 1, // index 17 -> additional for waterfall + 4.0, -6.0, 0.0, 0, 0, 1 // index 18 -> additional for waterfall + ]; + + this.indices = [ + 0, 1, 2, + 1, 2, 3, + 2, 3, 4, + 3, 4, 5, + 4, 5, 6, + 5, 6, 7, + 6, 7, 8, + 7, 8, 9, + 8, 9, 10, + 9, 10, 11, + 10, 11, 12, + 11, 12, 13, + 12, 13, 14, + 13, 14, 15, + 14, 15, 16, + 15, 16, 17, // additional for waterfall + 16, 17, 18 // additional for waterfall + ]; + + this.InitBuffers(); + } +} + + +class Tree extends Object3D { + + constructor(program) { + + super(program = defaultProgram, [0.2, 0.5, 0.0, 1.0], [0.4, 0.8, 0.2, 1.0], [0.2, 0.2, 0.5, 1.0]); + + this.positions = [ + -0.056969,0.301313,0.059775,-0.999612,-0.027868,0.000000, + -0.056969,0.301313,-0.040876,-0.999612,-0.027868,0.000000, + -0.055153,0.236174,-0.050744,-0.999612,-0.027868,0.000000, + -0.055153,0.236174,-0.050744,0.000000,0.000000,0.000000, + -0.055153,0.236174,-0.050744,0.000000,0.000000,0.000000, + 0.045498,0.236174,-0.050744,0.000000,0.000000,0.000000, + 0.045498,0.236174,-0.050744,0.385482,-0.922715,0.000000, + 0.183358,0.293767,-0.010892,0.385482,-0.922715,0.000000, + 0.183358,0.293767,0.016715,0.385482,-0.922715,0.000000, + -0.056969,0.301313,0.059775,0.000000,-0.149788,0.988718, + -0.055153,0.236174,0.049907,0.000000,-0.149788,0.988718, + 0.045498,0.236174,0.049907,0.000000,-0.149788,0.988718, + -0.055153,0.236174,0.049907,0.000000,-0.000000,1.000000, + -0.055153,0.051740,0.049907,0.000000,-0.000000,1.000000, + 0.045498,0.051740,0.049907,0.000000,-0.000000,1.000000, + 0.043682,0.301313,0.059775,0.000000,-0.616587,0.787287, + -0.037898,0.415271,0.149025,0.000000,-0.616587,0.787287, + -0.093419,0.415271,0.149025,0.000000,-0.616587,0.787287, + -0.037898,0.415271,0.093504,-0.000000,1.000000,0.000000, + -0.093419,0.415271,0.093504,-0.000000,1.000000,0.000000, + -0.093419,0.415271,0.149025,-0.000000,1.000000,0.000000, + 0.043682,0.301313,-0.040876,0.813124,0.582091,0.000000, + -0.037898,0.415271,0.093504,0.813124,0.582091,0.000000, + -0.037898,0.415271,0.149025,0.813124,0.582091,0.000000, + 0.043682,0.301313,-0.040876,0.000000,0.762678,-0.646778, + -0.056969,0.301313,-0.040876,0.000000,0.762678,-0.646778, + -0.093419,0.415271,0.093504,0.000000,0.762678,-0.646778, + -0.056969,0.301313,-0.040876,-0.952465,-0.304649,-0.000000, + -0.056969,0.301313,0.059775,-0.952465,-0.304649,-0.000000, + -0.093419,0.415271,0.149025,-0.952465,-0.304649,-0.000000, + -0.055153,0.236174,-0.050744,-0.000000,-0.716953,-0.697121, + 0.008874,0.422507,-0.242378,-0.000000,-0.716953,-0.697121, + 0.069244,0.422507,-0.242378,-0.000000,-0.716953,-0.697121, + 0.045498,0.236174,-0.050744,0.000000,0.000000,0.000000, + 0.043682,0.301313,-0.040876,0.000000,0.000000,0.000000, + 0.043682,0.301313,-0.040876,0.000000,0.000000,0.000000, + -0.056969,0.301313,-0.040876,0.000000,0.000000,0.000000, + -0.056969,0.301313,-0.040876,0.000000,0.000000,0.000000, + 0.007785,0.461577,-0.236459,0.000000,0.149788,-0.988718, + 0.068155,0.461577,-0.236459,0.000000,0.149788,-0.988718, + 0.069244,0.422507,-0.242378,0.000000,0.149788,-0.988718, + 0.043682,0.301313,-0.040876,0.991417,0.007868,0.130501, + 0.045498,0.236174,-0.050744,0.991417,0.007868,0.130501, + 0.069244,0.422507,-0.242378,0.991417,0.007868,0.130501, + -0.056969,0.301313,-0.040876,0.000000,0.773489,0.633810, + 0.043682,0.301313,-0.040876,0.000000,0.773489,0.633810, + 0.068155,0.461577,-0.236459,0.000000,0.773489,0.633810, + -0.056969,0.301313,-0.040876,-0.953672,0.018901,-0.300254, + 0.007785,0.461577,-0.236459,-0.953672,0.018901,-0.300254, + 0.008874,0.422507,-0.242378,-0.953672,0.018901,-0.300254, + 0.182859,0.311634,0.019422,0.999612,0.027867,-0.000000, + 0.183358,0.293767,0.016715,0.999612,0.027867,-0.000000, + 0.183358,0.293767,-0.010892,0.999612,0.027867,-0.000000, + 0.043682,0.301313,0.059775,0.285170,-0.135791,0.948809, + 0.045498,0.236174,0.049907,0.285170,-0.135791,0.948809, + 0.183358,0.293767,0.016715,0.285170,-0.135791,0.948809, + 0.043682,0.301313,0.059775,-0.073956,0.997261,0.000000, + 0.182859,0.311634,0.019422,-0.073956,0.997261,0.000000, + 0.182859,0.311634,-0.008185,-0.073956,0.997261,0.000000, + 0.045498,0.236174,-0.050744,0.215291,0.152140,-0.964626, + 0.043682,0.301313,-0.040876,0.215291,0.152140,-0.964626, + 0.182859,0.311634,-0.008185,0.215291,0.152140,-0.964626, + 0.045498,0.051740,0.049907,-0.000000,0.502693,0.864465, + -0.055153,0.051740,0.049907,-0.000000,0.502693,0.864465, + -0.079447,0.009962,0.074201,-0.000000,0.502693,0.864465, + 0.045498,0.236174,0.049907,1.000000,0.000000,0.000000, + 0.045498,0.051740,0.049907,1.000000,0.000000,0.000000, + 0.045498,0.051740,-0.050744,1.000000,0.000000,0.000000, + 0.045498,0.236174,-0.050744,0.000000,0.000000,-1.000000, + 0.045498,0.051740,-0.050744,0.000000,0.000000,-1.000000, + -0.055153,0.051740,-0.050744,0.000000,0.000000,-1.000000, + -0.055153,0.236174,-0.050744,-1.000000,0.000000,0.000000, + -0.055153,0.051740,-0.050744,-1.000000,0.000000,0.000000, + -0.055153,0.051740,0.049907,-1.000000,0.000000,0.000000, + -0.079447,0.009962,-0.075038,-0.000000,-1.000000,-0.000000, + 0.069792,0.009962,-0.075038,-0.000000,-1.000000,-0.000000, + 0.069792,0.009962,0.074201,-0.000000,-1.000000,-0.000000, + 0.045498,0.051740,0.049907,0.864465,0.502693,-0.000000, + 0.069792,0.009962,0.074201,0.864465,0.502693,-0.000000, + 0.069792,0.009962,-0.075038,0.864465,0.502693,-0.000000, + -0.055153,0.051740,-0.050744,0.000000,0.502693,-0.864465, + 0.045498,0.051740,-0.050744,0.000000,0.502693,-0.864465, + 0.069792,0.009962,-0.075038,0.000000,0.502693,-0.864465, + -0.055153,0.051740,0.049907,-0.864465,0.502693,0.000000, + -0.055153,0.051740,-0.050744,-0.864465,0.502693,0.000000, + -0.079447,0.009962,-0.075038,-0.864465,0.502693,0.000000, + -0.023604,0.642852,-0.220543,-0.459289,0.372406,0.806454, + -0.139997,0.499304,-0.220543,-0.459289,0.372406,0.806454, + 0.131748,0.574773,-0.100629,-0.459289,0.372406,0.806454, + 0.281596,0.451252,-0.218185,0.587257,-0.056040,0.807458, + 0.131748,0.574773,-0.100629,0.587257,-0.056040,0.807458, + 0.128755,0.410586,-0.109847,0.587257,-0.056040,0.807458, + -0.139997,0.499304,-0.220543,-0.461953,-0.659562,0.592940, + 0.128755,0.410586,-0.109847,-0.461953,-0.659562,0.592940, + 0.070558,0.502573,-0.052865,-0.461953,-0.659562,0.592940, + -0.139997,0.499304,-0.220543,-0.463939,-0.636043,0.616611, + -0.127460,0.423836,-0.288955,-0.463939,-0.636043,0.616611, + 0.128755,0.410586,-0.109847,-0.463939,-0.636043,0.616611, + 0.128755,0.410586,-0.109847,0.653439,-0.054303,0.755029, + 0.131748,0.574773,-0.100629,0.653439,-0.054303,0.755029, + 0.070558,0.502573,-0.052865,0.653439,-0.054303,0.755029, + -0.139997,0.499304,-0.220543,-0.986479,-0.163888,0.000000, + -0.139997,0.499304,-0.357368,-0.986479,-0.163888,0.000000, + -0.127460,0.423836,-0.288955,-0.986479,-0.163888,0.000000, + -0.127460,0.423836,-0.288955,-0.313653,-0.665811,-0.676992, + -0.139997,0.499304,-0.357368,-0.313653,-0.665811,-0.676992, + 0.164721,0.355756,-0.357368,-0.313653,-0.665811,-0.676992, + 0.070558,0.497457,-0.498071,-0.358604,0.771341,-0.525772, + -0.023604,0.642852,-0.220543,-0.358604,0.771341,-0.525772, + 0.202360,0.582881,-0.462644,-0.358604,0.771341,-0.525772, + 0.128755,0.410586,-0.109847,-0.181038,-0.965427,0.187552, + -0.127460,0.423836,-0.288955,-0.181038,-0.965427,0.187552, + 0.164721,0.355756,-0.357368,-0.181038,-0.965427,0.187552, + 0.131748,0.574773,-0.100629,0.738343,0.343153,0.580599, + 0.281596,0.451252,-0.218185,0.738343,0.343153,0.580599, + 0.258592,0.543865,-0.243667,0.738343,0.343153,0.580599, + -0.139997,0.499304,-0.357368,-0.343767,0.778820,-0.524656, + -0.023604,0.642852,-0.220543,-0.343767,0.778820,-0.524656, + 0.070558,0.497457,-0.498071,-0.343767,0.778820,-0.524656, + 0.070558,0.497457,-0.498071,0.484743,-0.432671,-0.760145, + 0.202360,0.582881,-0.462644,0.484743,-0.432671,-0.760145, + 0.164721,0.355756,-0.357368,0.484743,-0.432671,-0.760145, + 0.164721,0.355756,-0.357368,-0.361247,-0.766841,-0.530524, + -0.139997,0.499304,-0.357368,-0.361247,-0.766841,-0.530524, + 0.070558,0.497457,-0.498071,-0.361247,-0.766841,-0.530524, + 0.202360,0.582881,-0.462644,0.324771,0.942015,0.084446, + 0.131748,0.574773,-0.100629,0.324771,0.942015,0.084446, + 0.258592,0.543865,-0.243667,0.324771,0.942015,0.084446, + 0.131748,0.574773,-0.100629,-0.436771,0.723669,0.534354, + -0.139997,0.499304,-0.220543,-0.436771,0.723669,0.534354, + 0.070558,0.502573,-0.052865,-0.436771,0.723669,0.534354, + 0.202360,0.582881,-0.462644,0.821800,-0.346013,-0.452681, + 0.281596,0.451252,-0.218185,0.821800,-0.346013,-0.452681, + 0.164721,0.355756,-0.357368,0.821800,-0.346013,-0.452681, + -0.023604,0.642852,-0.220543,-0.776749,0.629810,0.000000, + -0.139997,0.499304,-0.357368,-0.776749,0.629810,0.000000, + -0.139997,0.499304,-0.220543,-0.776749,0.629810,0.000000, + -0.023604,0.642852,-0.220543,0.342260,0.935502,0.087712, + 0.131748,0.574773,-0.100629,0.342260,0.935502,0.087712, + 0.202360,0.582881,-0.462644,0.342260,0.935502,0.087712, + 0.258592,0.543865,-0.243667,0.960083,0.179444,-0.214569, + 0.281596,0.451252,-0.218185,0.960083,0.179444,-0.214569, + 0.202360,0.582881,-0.462644,0.960083,0.179444,-0.214569, + 0.281596,0.451252,-0.218185,0.412630,-0.874842,0.253749, + 0.128755,0.410586,-0.109847,0.412630,-0.874842,0.253749, + 0.164721,0.355756,-0.357368,0.412630,-0.874842,0.253749, + 0.239636,0.235546,-0.001961,0.293781,-0.849928,0.437395, + 0.322547,0.294289,0.056497,0.293781,-0.849928,0.437395, + 0.207968,0.275752,0.097434,0.293781,-0.849928,0.437395, + 0.322547,0.294289,0.056497,0.640793,-0.752349,-0.152826, + 0.239636,0.235546,-0.001961,0.640793,-0.752349,-0.152826, + 0.290802,0.292476,-0.067686,0.640793,-0.752349,-0.152826, + 0.239636,0.235546,-0.001961,-0.453223,-0.867180,0.206369, + 0.207968,0.275752,0.097434,-0.453223,-0.867180,0.206369, + 0.137152,0.290442,0.003639,-0.453223,-0.867180,0.206369, + 0.239636,0.235546,-0.001961,-0.470754,-0.857811,-0.206282, + 0.137152,0.290442,0.003639,-0.470754,-0.857811,-0.206282, + 0.207968,0.279664,-0.113150,-0.470754,-0.857811,-0.206282, + 0.239636,0.235546,-0.001961,0.364369,-0.825374,-0.431270, + 0.207968,0.279664,-0.113150,0.364369,-0.825374,-0.431270, + 0.290802,0.292476,-0.067686,0.364369,-0.825374,-0.431270, + 0.322547,0.294289,0.056497,0.968265,0.031160,-0.247977, + 0.290802,0.292476,-0.067686,0.968265,0.031160,-0.247977, + 0.305492,0.374381,-0.000033,0.968265,0.031160,-0.247977, + 0.207968,0.275752,0.097434,0.352065,-0.128808,0.927070, + 0.322547,0.294289,0.056497,0.352065,-0.128808,0.927070, + 0.271305,0.366839,0.086037,0.352065,-0.128808,0.927070, + 0.137152,0.290442,0.003639,-0.797548,-0.190890,0.572257, + 0.207968,0.275752,0.097434,-0.797548,-0.190890,0.572257, + 0.156725,0.378237,0.060204,-0.797548,-0.190890,0.572257, + 0.207968,0.279664,-0.113150,-0.849100,-0.173812,-0.498818, + 0.137152,0.290442,0.003639,-0.849100,-0.173812,-0.498818, + 0.156725,0.378237,-0.060271,-0.849100,-0.173812,-0.498818, + 0.290802,0.292476,-0.067686,0.494621,-0.182931,-0.849639, + 0.207968,0.279664,-0.113150,0.494621,-0.182931,-0.849639, + 0.271305,0.378237,-0.097501,0.494621,-0.182931,-0.849639, + 0.322547,0.294289,0.056497,0.823953,0.433247,0.365238, + 0.305492,0.374381,-0.000033,0.823953,0.433247,0.365238, + 0.271305,0.366839,0.086037,0.823953,0.433247,0.365238, + 0.207968,0.275752,0.097434,-0.189168,0.250340,0.949497, + 0.271305,0.366839,0.086037,-0.189168,0.250340,0.949497, + 0.156725,0.378237,0.060204,-0.189168,0.250340,0.949497, + 0.137152,0.290442,0.003639,-0.976038,0.217602,0.000000, + 0.156725,0.378237,0.060204,-0.976038,0.217602,0.000000, + 0.156725,0.378237,-0.060271,-0.976038,0.217602,0.000000, + 0.207968,0.279664,-0.113150,-0.291714,0.329966,-0.897789, + 0.156725,0.378237,-0.060271,-0.291714,0.329966,-0.897789, + 0.271305,0.378237,-0.097501,-0.291714,0.329966,-0.897789, + 0.290802,0.292476,-0.067686,0.940096,0.100469,-0.325770, + 0.271305,0.378237,-0.097501,0.940096,0.100469,-0.325770, + 0.305492,0.374381,-0.000033,0.940096,0.100469,-0.325770, + 0.271305,0.366839,0.086037,0.498729,0.823547,0.270257, + 0.305492,0.374381,-0.000033,0.498729,0.823547,0.270257, + 0.239636,0.412997,0.003822,0.498729,0.823547,0.270257, + 0.156725,0.378237,0.060204,-0.025750,0.867418,0.496913, + 0.271305,0.366839,0.086037,-0.025750,0.867418,0.496913, + 0.239636,0.412997,0.003822,-0.025750,0.867418,0.496913, + 0.156725,0.378237,-0.060271,-0.386646,0.922228,0.000000, + 0.156725,0.378237,0.060204,-0.386646,0.922228,0.000000, + 0.239636,0.412997,0.003822,-0.386646,0.922228,0.000000, + 0.271305,0.378237,-0.097501,-0.115138,0.927997,-0.354351, + 0.156725,0.378237,-0.060271,-0.115138,0.927997,-0.354351, + 0.239636,0.412997,0.003822,-0.115138,0.927997,-0.354351, + 0.305492,0.374381,-0.000033,0.494777,0.857731,-0.139617, + 0.271305,0.378237,-0.097501,0.494777,0.857731,-0.139617, + 0.239636,0.412997,0.003822,0.494777,0.857731,-0.139617, + -0.036268,0.361529,0.163458,0.245614,-0.919073,0.308188, + 0.091404,0.426523,0.255533,0.245614,-0.919073,0.308188, + -0.091304,0.397046,0.313238,0.245614,-0.919073,0.308188, + 0.173261,0.530724,0.313832,0.678737,-0.683487,0.268630, + 0.091404,0.426523,0.255533,0.678737,-0.683487,0.268630, + 0.211194,0.504732,0.151857,0.678737,-0.683487,0.268630, + -0.036268,0.361529,0.163458,-0.371219,-0.924837,0.082904, + -0.091304,0.397046,0.313238,-0.371219,-0.924837,0.082904, + -0.199772,0.427673,0.169213,-0.371219,-0.924837,0.082904, + -0.036268,0.361529,0.163458,-0.372956,-0.903573,-0.210856, + -0.199772,0.427673,0.169213,-0.372956,-0.903573,-0.210856, + -0.091304,0.415891,0.027848,-0.372956,-0.903573,-0.210856, + -0.036268,0.361529,0.163458,-0.189963,-0.935499,-0.297919, + -0.091304,0.415891,0.027848,-0.189963,-0.935499,-0.297919, + 0.084198,0.366894,0.069797,-0.189963,-0.935499,-0.297919, + 0.173261,0.530724,0.313832,0.846323,-0.458157,0.271718, + 0.211194,0.504732,0.151857,0.846323,-0.458157,0.271718, + 0.241174,0.620887,0.254329,0.846323,-0.458157,0.271718, + -0.125322,0.487354,0.416054,-0.053405,-0.597611,0.800005, + 0.033749,0.468629,0.412686,-0.053405,-0.597611,0.800005, + -0.042797,0.620887,0.521313,-0.053405,-0.597611,0.800005, + -0.309859,0.487355,0.162063,-0.916472,-0.199783,0.346649, + -0.248280,0.463910,0.311354,-0.916472,-0.199783,0.346649, + -0.326769,0.617539,0.192386,-0.916472,-0.199783,0.346649, + -0.125322,0.487354,-0.091928,-0.616355,-0.185357,-0.765343, + -0.248280,0.463910,0.012771,-0.616355,-0.185357,-0.765343, + -0.218301,0.620887,-0.049390,-0.616355,-0.185357,-0.765343, + 0.173261,0.487354,0.005089,0.431612,-0.385516,-0.815530, + 0.032055,0.467037,-0.060038,0.431612,-0.385516,-0.815530, + 0.132707,0.620887,-0.079497,0.431612,-0.385516,-0.815530, + 0.173261,0.530724,0.313832,0.789879,-0.216232,0.573877, + 0.241174,0.620887,0.254329,0.789879,-0.216232,0.573877, + 0.132707,0.620887,0.403623,0.789879,-0.216232,0.573877, + -0.125322,0.487354,0.416054,-0.714939,-0.103258,0.691520, + -0.042797,0.620887,0.521313,-0.714939,-0.103258,0.691520, + -0.218301,0.620887,0.339866,-0.714939,-0.103258,0.691520, + -0.309859,0.487355,0.162063,-0.991767,-0.128005,-0.003496, + -0.326769,0.617539,0.192386,-0.991767,-0.128005,-0.003496, + -0.326769,0.620887,0.069796,-0.991767,-0.128005,-0.003496, + -0.125322,0.487354,-0.091928,-0.520406,-0.091911,-0.848958, + -0.218301,0.620887,-0.049390,-0.520406,-0.091911,-0.848958, + -0.042797,0.615104,-0.156346,-0.520406,-0.091911,-0.848958, + 0.173261,0.487354,0.005089,0.802609,-0.125627,-0.583126, + 0.132707,0.620887,-0.079497,0.802609,-0.125627,-0.583126, + 0.241174,0.620887,0.069796,0.802609,-0.125627,-0.583126, + 0.053601,0.742690,0.364031,0.573608,0.462479,0.676082, + 0.168557,0.738438,0.269407,0.573608,0.462479,0.676082, + 0.005710,0.823999,0.349044,0.573608,0.462479,0.676082, + -0.258855,0.754420,0.319037,-0.471299,0.661699,0.583122, + -0.121286,0.777864,0.403622,-0.471299,0.661699,0.583122, + -0.169792,0.874880,0.254329,-0.471299,0.661699,0.583122, + -0.258855,0.754420,0.005089,-0.700224,0.661699,-0.268032, + -0.296788,0.777864,0.162063,-0.700224,0.661699,-0.268032, + -0.169792,0.874880,0.069797,-0.700224,0.661699,-0.268032, + 0.010880,0.723391,-0.015800,0.508800,0.284327,-0.812576, + -0.121286,0.777864,-0.079496,0.508800,0.284327,-0.812576, + 0.005710,0.846612,0.024079,0.508800,0.284327,-0.812576, + 0.224265,0.754419,0.162063,0.626249,0.619385,-0.473470, + 0.145085,0.753424,0.056032,0.626249,0.619385,-0.473470, + 0.114178,0.853428,0.145975,0.626249,0.619385,-0.473470, + -0.091304,0.397046,0.313238,-0.076005,-0.761490,0.643705, + 0.033749,0.468629,0.412686,-0.076005,-0.761490,0.643705, + -0.125322,0.487354,0.416054,-0.076005,-0.761490,0.643705, + -0.091304,0.397046,0.313238,0.252454,-0.907486,0.335763, + 0.091404,0.426523,0.255533,0.252454,-0.907486,0.335763, + 0.033749,0.468629,0.412686,0.252454,-0.907486,0.335763, + 0.091404,0.426523,0.255533,0.595517,-0.694103,0.404452, + 0.173261,0.530724,0.313832,0.595517,-0.694103,0.404452, + 0.033749,0.468629,0.412686,0.595517,-0.694103,0.404452, + 0.211194,0.504732,0.151857,0.765264,-0.631862,-0.122966, + 0.084198,0.366894,0.069797,0.765264,-0.631862,-0.122966, + 0.173261,0.487354,0.005089,0.765264,-0.631862,-0.122966, + 0.211194,0.504732,0.151857,0.654543,-0.726862,0.207955, + 0.091404,0.426523,0.255533,0.654543,-0.726862,0.207955, + 0.084198,0.366894,0.069797,0.654543,-0.726862,0.207955, + 0.091404,0.426523,0.255533,0.263121,-0.921510,0.285632, + -0.036268,0.361529,0.163458,0.263121,-0.921510,0.285632, + 0.084198,0.366894,0.069797,0.263121,-0.921510,0.285632, + -0.199772,0.427673,0.169213,-0.478748,-0.875905,0.059918, + -0.248280,0.463910,0.311354,-0.478748,-0.875905,0.059918, + -0.309859,0.487355,0.162063,-0.478748,-0.875905,0.059918, + -0.199772,0.427673,0.169213,-0.390936,-0.914986,0.099848, + -0.091304,0.397046,0.313238,-0.390936,-0.914986,0.099848, + -0.248280,0.463910,0.311354,-0.390936,-0.914986,0.099848, + -0.091304,0.397046,0.313238,-0.330688,-0.760615,0.558669, + -0.125322,0.487354,0.416054,-0.330688,-0.760615,0.558669, + -0.248280,0.463910,0.311354,-0.330688,-0.760615,0.558669, + -0.091304,0.415891,0.027848,-0.220782,-0.863886,-0.452721, + -0.248280,0.463910,0.012771,-0.220782,-0.863886,-0.452721, + -0.125322,0.487354,-0.091928,-0.220782,-0.863886,-0.452721, + -0.091304,0.415891,0.027848,-0.278079,-0.951153,-0.134092, + -0.199772,0.427673,0.169213,-0.278079,-0.951153,-0.134092, + -0.248280,0.463910,0.012771,-0.278079,-0.951153,-0.134092, + -0.199772,0.427673,0.169213,-0.472960,-0.879238,-0.057007, + -0.309859,0.487355,0.162063,-0.472960,-0.879238,-0.057007, + -0.248280,0.463910,0.012771,-0.472960,-0.879238,-0.057007, + 0.084198,0.366894,0.069797,0.394884,-0.643958,-0.655274, + 0.032055,0.467037,-0.060038,0.394884,-0.643958,-0.655274, + 0.173261,0.487354,0.005089,0.394884,-0.643958,-0.655274, + 0.084198,0.366894,0.069797,-0.084448,-0.805117,-0.587074, + -0.091304,0.415891,0.027848,-0.084448,-0.805117,-0.587074, + 0.032055,0.467037,-0.060038,-0.084448,-0.805117,-0.587074, + -0.091304,0.415891,0.027848,-0.007480,-0.859674,-0.510789, + -0.125322,0.487354,-0.091928,-0.007480,-0.859674,-0.510789, + 0.032055,0.467037,-0.060038,-0.007480,-0.859674,-0.510789, + 0.241174,0.620887,0.254329,0.992077,0.125628,-0.000000, + 0.241174,0.620887,0.069796,0.992077,0.125628,-0.000000, + 0.224265,0.754419,0.162063,0.992077,0.125628,-0.000000, + 0.241174,0.620887,0.254329,0.968266,-0.249921,0.000000, + 0.211194,0.504732,0.151857,0.968266,-0.249921,0.000000, + 0.241174,0.620887,0.069796,0.968266,-0.249921,0.000000, + 0.211194,0.504732,0.151857,0.909235,-0.369770,-0.191209, + 0.173261,0.487354,0.005089,0.909235,-0.369770,-0.191209, + 0.241174,0.620887,0.069796,0.909235,-0.369770,-0.191209, + -0.042797,0.620887,0.521313,0.470873,0.534057,0.702183, + 0.132707,0.620887,0.403623,0.470873,0.534057,0.702183, + 0.053601,0.742690,0.364031,0.470873,0.534057,0.702183, + -0.042797,0.620887,0.521313,0.531591,-0.298317,0.792728, + 0.033749,0.468629,0.412686,0.531591,-0.298317,0.792728, + 0.132707,0.620887,0.403623,0.531591,-0.298317,0.792728, + 0.033749,0.468629,0.412686,0.641314,-0.377039,0.668250, + 0.173261,0.530724,0.313832,0.641314,-0.377039,0.668250, + 0.132707,0.620887,0.403623,0.641314,-0.377039,0.668250, + -0.326769,0.617539,0.192386,-0.794880,-0.149686,0.588013, + -0.218301,0.620887,0.339866,-0.794880,-0.149686,0.588013, + -0.258855,0.754420,0.319037,-0.794880,-0.149686,0.588013, + -0.326769,0.617539,0.192386,-0.805216,0.046407,0.591163, + -0.248280,0.463910,0.311354,-0.805216,0.046407,0.591163, + -0.218301,0.620887,0.339866,-0.805216,0.046407,0.591163, + -0.248280,0.463910,0.311354,-0.646577,-0.015045,0.762700, + -0.125322,0.487354,0.416054,-0.646577,-0.015045,0.762700, + -0.218301,0.620887,0.339866,-0.646577,-0.015045,0.762700, + -0.218301,0.620887,-0.049390,-0.738657,0.049925,-0.672230, + -0.326769,0.620887,0.069796,-0.738657,0.049925,-0.672230, + -0.258855,0.754420,0.005089,-0.738657,0.049925,-0.672230, + -0.218301,0.620887,-0.049390,-0.733843,-0.124312,-0.667848, + -0.248280,0.463910,0.012771,-0.733843,-0.124312,-0.667848, + -0.326769,0.620887,0.069796,-0.733843,-0.124312,-0.667848, + -0.248280,0.463910,0.012771,-0.889697,-0.330385,-0.315095, + -0.309859,0.487355,0.162063,-0.889697,-0.330385,-0.315095, + -0.326769,0.620887,0.069796,-0.889697,-0.330385,-0.315095, + 0.132707,0.620887,-0.079497,0.260983,0.713943,-0.649749, + -0.042797,0.615104,-0.156346,0.260983,0.713943,-0.649749, + 0.010880,0.723391,-0.015800,0.260983,0.713943,-0.649749, + 0.132707,0.620887,-0.079497,0.384274,-0.358978,-0.850570, + 0.032055,0.467037,-0.060038,0.384274,-0.358978,-0.850570, + -0.042797,0.615104,-0.156346,0.384274,-0.358978,-0.850570, + 0.032055,0.467037,-0.060038,0.108863,-0.502748,-0.857551, + -0.125322,0.487354,-0.091928,0.108863,-0.502748,-0.857551, + -0.042797,0.615104,-0.156346,0.108863,-0.502748,-0.857551, + 0.132707,0.620887,0.403623,0.540329,0.556171,0.631441, + 0.168557,0.738438,0.269407,0.540329,0.556171,0.631441, + 0.053601,0.742690,0.364031,0.540329,0.556171,0.631441, + 0.132707,0.620887,0.403623,0.744731,0.390657,0.541076, + 0.241174,0.620887,0.254329,0.744731,0.390657,0.541076, + 0.168557,0.738438,0.269407,0.744731,0.390657,0.541076, + 0.241174,0.620887,0.254329,0.778049,0.420814,0.466429, + 0.224265,0.754419,0.162063,0.778049,0.420814,0.466429, + 0.168557,0.738438,0.269407,0.778049,0.420814,0.466429, + -0.218301,0.620887,0.339866,-0.520517,-0.024952,0.853487, + -0.121286,0.777864,0.403622,-0.520517,-0.024952,0.853487, + -0.258855,0.754420,0.319037,-0.520517,-0.024952,0.853487, + -0.218301,0.620887,0.339866,-0.709548,0.159774,0.686305, + -0.042797,0.620887,0.521313,-0.709548,0.159774,0.686305, + -0.121286,0.777864,0.403622,-0.709548,0.159774,0.686305, + -0.042797,0.620887,0.521313,0.289628,0.662637,0.690672, + 0.053601,0.742690,0.364031,0.289628,0.662637,0.690672, + -0.121286,0.777864,0.403622,0.289628,0.662637,0.690672, + -0.326769,0.620887,0.069796,-0.904989,0.330385,-0.268032, + -0.296788,0.777864,0.162063,-0.904989,0.330385,-0.268032, + -0.258855,0.754420,0.005089,-0.904989,0.330385,-0.268032, + -0.326769,0.620887,0.069796,-0.982776,0.184734,0.005046, + -0.326769,0.617539,0.192386,-0.982776,0.184734,0.005046, + -0.296788,0.777864,0.162063,-0.982776,0.184734,0.005046, + -0.326769,0.617539,0.192386,-0.938935,0.224846,0.260472, + -0.258855,0.754420,0.319037,-0.938935,0.224846,0.260472, + -0.296788,0.777864,0.162063,-0.938935,0.224846,0.260472, + -0.042797,0.615104,-0.156346,0.535505,0.557690,-0.634205, + -0.121286,0.777864,-0.079496,0.535505,0.557690,-0.634205, + 0.010880,0.723391,-0.015800,0.535505,0.557690,-0.634205, + -0.042797,0.615104,-0.156346,-0.510565,0.153275,-0.846068, + -0.218301,0.620887,-0.049390,-0.510565,0.153275,-0.846068, + -0.121286,0.777864,-0.079496,-0.510565,0.153275,-0.846068, + -0.218301,0.620887,-0.049390,-0.537117,0.173640,-0.825442, + -0.258855,0.754420,0.005089,-0.537117,0.173640,-0.825442, + -0.121286,0.777864,-0.079496,-0.537117,0.173640,-0.825442, + 0.241174,0.620887,0.069796,0.709751,0.459078,-0.534323, + 0.145085,0.753424,0.056032,0.709751,0.459078,-0.534323, + 0.224265,0.754419,0.162063,0.709751,0.459078,-0.534323, + 0.241174,0.620887,0.069796,0.716157,0.465177,-0.520316, + 0.132707,0.620887,-0.079497,0.716157,0.465177,-0.520316, + 0.145085,0.753424,0.056032,0.716157,0.465177,-0.520316, + 0.132707,0.620887,-0.079497,0.216745,0.687991,-0.692596, + 0.010880,0.723391,-0.015800,0.216745,0.687991,-0.692596, + 0.145085,0.753424,0.056032,0.216745,0.687991,-0.692596, + 0.005710,0.823999,0.349044,0.338289,0.888695,0.309486, + 0.114178,0.853428,0.145975,0.338289,0.888695,0.309486, + -0.042797,0.900194,0.183269,0.338289,0.888695,0.309486, + 0.005710,0.823999,0.349044,0.573113,0.710094,0.409033, + 0.168557,0.738438,0.269407,0.573113,0.710094,0.409033, + 0.114178,0.853428,0.145975,0.573113,0.710094,0.409033, + 0.168557,0.738438,0.269407,0.577848,0.708371,0.405342, + 0.224265,0.754419,0.162063,0.577848,0.708371,0.405342, + 0.114178,0.853428,0.145975,0.577848,0.708371,0.405342, + -0.169792,0.874880,0.254329,0.045372,0.912654,0.406208, + 0.005710,0.823999,0.349044,0.045372,0.912654,0.406208, + -0.042797,0.900194,0.183269,0.045372,0.912654,0.406208, + -0.169792,0.874880,0.254329,-0.061013,0.827772,0.557737, + -0.121286,0.777864,0.403622,-0.061013,0.827772,0.557737, + 0.005710,0.823999,0.349044,-0.061013,0.827772,0.557737, + -0.121286,0.777864,0.403622,0.270663,0.326360,0.905666, + 0.053601,0.742690,0.364031,0.270663,0.326360,0.905666, + 0.005710,0.823999,0.349044,0.270663,0.326360,0.905666, + -0.169792,0.874880,0.069797,-0.195487,0.980706,0.000000, + -0.169792,0.874880,0.254329,-0.195487,0.980706,0.000000, + -0.042797,0.900194,0.183269,-0.195487,0.980706,0.000000, + -0.169792,0.874880,0.069797,-0.607060,0.794656,0.000000, + -0.296788,0.777864,0.162063,-0.607060,0.794656,0.000000, + -0.169792,0.874880,0.254329,-0.607060,0.794656,0.000000, + -0.296788,0.777864,0.162063,-0.700224,0.661699,0.268032, + -0.258855,0.754420,0.319037,-0.700224,0.661699,0.268032, + -0.169792,0.874880,0.254329,-0.700224,0.661699,0.268032, + 0.005710,0.846612,0.024079,0.075868,0.951784,-0.297241, + -0.169792,0.874880,0.069797,0.075868,0.951784,-0.297241, + -0.042797,0.900194,0.183269,0.075868,0.951784,-0.297241, + 0.005710,0.846612,0.024079,-0.007516,0.837367,-0.546590, + -0.121286,0.777864,-0.079496,-0.007516,0.837367,-0.546590, + -0.169792,0.874880,0.069797,-0.007516,0.837367,-0.546590, + -0.121286,0.777864,-0.079496,-0.471299,0.661699,-0.583122, + -0.258855,0.754420,0.005089,-0.471299,0.661699,-0.583122, + -0.169792,0.874880,0.069797,-0.471299,0.661699,-0.583122, + 0.114178,0.853428,0.145975,0.221484,0.942630,-0.249789, + 0.005710,0.846612,0.024079,0.221484,0.942630,-0.249789, + -0.042797,0.900194,0.183269,0.221484,0.942630,-0.249789, + 0.114178,0.853428,0.145975,0.552425,0.645299,-0.527651, + 0.145085,0.753424,0.056032,0.552425,0.645299,-0.527651, + 0.005710,0.846612,0.024079,0.552425,0.645299,-0.527651, + 0.145085,0.753424,0.056032,0.397910,0.297556,-0.867829, + 0.010880,0.723391,-0.015800,0.397910,0.297556,-0.867829, + 0.005710,0.846612,0.024079,0.397910,0.297556,-0.867829, + 0.008874,0.422507,-0.242378,0.000000,0.149788,-0.988718, + -0.055153,0.236174,0.049907,-0.999612,-0.027868,0.000000, + 0.045498,0.236174,0.049907,0.385482,-0.922715,0.000000, + 0.043682,0.301313,0.059775,0.000000,-0.149788,0.988718, + 0.045498,0.236174,0.049907,0.000000,-0.000000,1.000000, + -0.056969,0.301313,0.059775,0.000000,-0.616587,0.787287, + -0.037898,0.415271,0.149025,-0.000000,1.000000,0.000000, + 0.043682,0.301313,0.059775,0.813124,0.582091,-0.000000, + -0.037898,0.415271,0.093504,0.000000,0.762678,-0.646778, + -0.093419,0.415271,0.093504,-0.952465,-0.304649,0.000000, + 0.045498,0.236174,-0.050744,0.000000,-0.716953,-0.697121, + 0.068155,0.461577,-0.236459,0.991417,0.007869,0.130501, + 0.043682,0.301313,-0.040876,0.991417,0.007869,0.130501, + 0.069244,0.422507,-0.242378,0.991417,0.007869,0.130501, + 0.007785,0.461577,-0.236459,0.000000,0.773489,0.633810, + -0.055153,0.236174,-0.050744,-0.953672,0.018901,-0.300255, + -0.056969,0.301313,-0.040876,-0.953672,0.018901,-0.300255, + 0.008874,0.422507,-0.242378,-0.953672,0.018901,-0.300255, + 0.182859,0.311634,-0.008185,0.999612,0.027867,0.000000, + 0.182859,0.311634,0.019422,0.285170,-0.135791,0.948809, + 0.043682,0.301313,-0.040876,-0.073956,0.997261,0.000000, + 0.183358,0.293767,-0.010892,0.215291,0.152139,-0.964626, + 0.045498,0.236174,-0.050744,0.215291,0.152139,-0.964626, + 0.182859,0.311634,-0.008185,0.215291,0.152139,-0.964626, + 0.069792,0.009962,0.074201,0.000000,0.502693,0.864465, + 0.045498,0.236174,-0.050744,1.000000,-0.000000,0.000000, + -0.055153,0.236174,-0.050744,0.000000,0.000000,-1.000000, + -0.055153,0.236174,0.049907,-1.000000,0.000000,0.000000, + -0.079447,0.009962,0.074201,-0.000000,-1.000000,0.000000, + 0.045498,0.051740,-0.050744,0.864465,0.502693,0.000000, + -0.079447,0.009962,-0.075038,0.000000,0.502693,-0.864465, + -0.079447,0.009962,0.074201,-0.864465,0.502693,0.000000 + ]; + + this.indices = [ + 0,1,2, + 3,4,5, + 6,7,8, + 9,10,11, + 12,13,14, + 15,16,17, + 18,19,20, + 21,22,23, + 24,25,26, + 27,28,29, + 30,31,32, + 33,5,34, + 35,34,36, + 37,36,4, + 38,39,40, + 41,42,43, + 44,45,46, + 47,48,49, + 50,51,52, + 53,54,55, + 56,57,58, + 59,60,61, + 62,63,64, + 65,66,67, + 68,69,70, + 71,72,73, + 74,75,76, + 77,78,79, + 80,81,82, + 83,84,85, + 86,87,88, + 89,90,91, + 92,93,94, + 95,96,97, + 98,99,100, + 101,102,103, + 104,105,106, + 107,108,109, + 110,111,112, + 113,114,115, + 116,117,118, + 119,120,121, + 122,123,124, + 125,126,127, + 128,129,130, + 131,132,133, + 134,135,136, + 137,138,139, + 140,141,142, + 143,144,145, + 146,147,148, + 149,150,151, + 152,153,154, + 155,156,157, + 158,159,160, + 161,162,163, + 164,165,166, + 167,168,169, + 170,171,172, + 173,174,175, + 176,177,178, + 179,180,181, + 182,183,184, + 185,186,187, + 188,189,190, + 191,192,193, + 194,195,196, + 197,198,199, + 200,201,202, + 203,204,205, + 206,207,208, + 209,210,211, + 212,213,214, + 215,216,217, + 218,219,220, + 221,222,223, + 224,225,226, + 227,228,229, + 230,231,232, + 233,234,235, + 236,237,238, + 239,240,241, + 242,243,244, + 245,246,247, + 248,249,250, + 251,252,253, + 254,255,256, + 257,258,259, + 260,261,262, + 263,264,265, + 266,267,268, + 269,270,271, + 272,273,274, + 275,276,277, + 278,279,280, + 281,282,283, + 284,285,286, + 287,288,289, + 290,291,292, + 293,294,295, + 296,297,298, + 299,300,301, + 302,303,304, + 305,306,307, + 308,309,310, + 311,312,313, + 314,315,316, + 317,318,319, + 320,321,322, + 323,324,325, + 326,327,328, + 329,330,331, + 332,333,334, + 335,336,337, + 338,339,340, + 341,342,343, + 344,345,346, + 347,348,349, + 350,351,352, + 353,354,355, + 356,357,358, + 359,360,361, + 362,363,364, + 365,366,367, + 368,369,370, + 371,372,373, + 374,375,376, + 377,378,379, + 380,381,382, + 383,384,385, + 386,387,388, + 389,390,391, + 392,393,394, + 395,396,397, + 398,399,400, + 401,402,403, + 404,405,406, + 407,408,409, + 410,411,412, + 413,414,415, + 416,417,418, + 419,420,421, + 422,423,424, + 425,426,427, + 428,429,430, + 431,432,433, + 434,435,436, + 437,438,439, + 440,441,442, + 443,444,445, + 446,38,40, + 447,0,2, + 33,3,5, + 448,6,8, + 449,9,11, + 450,12,14, + 451,15,17, + 452,18,20, + 453,21,23, + 454,24,26, + 455,27,29, + 456,30,32, + 35,33,34, + 37,35,36, + 3,37,4, + 457,458,459, + 460,44,46, + 461,462,463, + 464,50,52, + 465,53,55, + 466,56,58, + 467,468,469, + 470,62,64, + 471,65,67, + 472,68,70, + 473,71,73, + 474,74,76, + 475,77,79, + 476,80,82, + 477,83,85 + ]; + + this.InitBuffers(); + } +} + + +class Cloud extends Object3D { + + constructor(program) { + + super(program = defaultProgram, [0.9, 0.9, 0.9, 1.0], [0.9, 0.9, 0.9, 1.0], [1.0, 1.0, 1.0, 1.0]); + + this.positions = [ + -0.308265,-0.282990,-0.001417,-0.135946,-0.969316,0.204803, + 0.101554,-0.243033,0.459730,-0.135946,-0.969316,0.204803, + -0.309308,-0.125191,0.744740,-0.135946,-0.969316,0.204803, + 0.505238,-0.184567,0.783138,0.291647,-0.936493,-0.194738, + 0.101554,-0.243033,0.459730,0.291647,-0.936493,-0.194738, + 0.286346,-0.089592,-0.001417,0.291647,-0.936493,-0.194738, + -0.308265,-0.282990,-0.001417,0.093369,-0.974061,0.206127, + -0.309308,-0.125191,0.744740,0.093369,-0.974061,0.206127, + -0.681349,-0.318752,-0.001417,0.093369,-0.974061,0.206127, + -0.308265,-0.282990,-0.001417,0.095211,-0.993277,-0.065841, + -0.681349,-0.318752,-0.001417,0.095211,-0.993277,-0.065841, + -0.309308,-0.233630,-0.747573,0.095211,-0.993277,-0.065841, + -0.308265,-0.282990,-0.001417,0.413254,-0.908592,-0.060683, + -0.309308,-0.233630,-0.747573,0.413254,-0.908592,-0.060683, + 0.101554,-0.065793,-0.462563,0.413254,-0.908592,-0.060683, + 0.505238,-0.184567,0.783138,0.922555,-0.256327,-0.288425, + 0.286346,-0.089592,-0.001417,0.922555,-0.256327,-0.288425, + 0.469048,0.098790,0.415557,0.922555,-0.256327,-0.288425, + -0.193767,-0.184567,1.268031,-0.052729,-0.782841,0.619984, + 0.183178,-0.259167,1.205894,-0.052729,-0.782841,0.619984, + -0.000570,0.000000,1.517511,-0.052729,-0.782841,0.619984, + -0.963457,-0.122647,-0.001417,-0.849021,-0.431906,0.304335, + -0.676801,-0.160374,0.744743,-0.849021,-0.431906,0.304335, + -0.860548,0.000000,0.459731,-0.849021,-0.431906,0.304335, + -0.193767,-0.184567,-1.270864,-0.631420,-0.566375,-0.529649, + -0.676801,-0.135416,-0.747576,-0.631420,-0.566375,-0.529649, + -0.411437,0.000000,-1.208735,-0.631420,-0.566375,-0.529649, + 0.310058,-0.184567,-0.785971,0.461607,-0.847905,-0.260722, + 0.183178,-0.123648,-1.208727,0.461607,-0.847905,-0.260722, + 0.410298,0.000000,-1.208735,0.461607,-0.847905,-0.260722, + 0.505238,-0.184567,0.783138,0.968062,0.235434,0.086178, + 0.469048,0.098790,0.415557,0.968062,0.235434,0.086178, + 0.410298,0.000000,1.345405,0.968062,0.235434,0.086178, + -0.193767,-0.184567,1.268031,-0.587674,-0.362560,0.723319, + -0.000570,0.000000,1.517511,-0.587674,-0.362560,0.723319, + -0.384104,0.000000,1.205901,-0.587674,-0.362560,0.723319, + -0.963457,-0.122647,-0.001417,-0.766059,0.642771,0.000000, + -0.860548,0.000000,0.459731,-0.766059,0.642771,0.000000, + -0.860548,0.000000,-0.462565,-0.766059,0.642771,0.000000, + -0.193767,-0.184567,-1.270864,-0.598629,-0.493639,-0.630844, + -0.411437,0.000000,-1.208735,-0.598629,-0.493639,-0.630844, + -0.000570,0.000000,-1.598620,-0.598629,-0.493639,-0.630844, + 0.310058,-0.184567,-0.785971,0.937312,-0.340647,0.073525, + 0.410298,0.000000,-1.208735,0.937312,-0.340647,0.073525, + 0.384591,0.090319,-0.462565,0.937312,-0.340647,0.073525, + 0.192628,0.380510,1.268031,0.055988,0.961332,-0.269640, + 0.480481,0.216971,0.744743,0.055988,0.961332,-0.269640, + -0.002332,0.213378,0.631682,0.055988,0.961332,-0.269640, + -0.624286,0.240846,0.783138,-0.388910,0.891429,0.232601, + -0.184317,0.365906,1.039482,-0.388910,0.891429,0.232601, + -0.605569,0.380903,0.277674,-0.388910,0.891429,0.232601, + -0.701558,0.184567,-0.640105,-0.085287,0.993355,-0.077280, + -0.902876,0.216971,-0.001417,-0.085287,0.993355,-0.077280, + -0.352763,0.239456,-0.319506,-0.085287,0.993355,-0.077280, + 0.192628,0.247332,-1.168216,0.402780,0.915012,0.022813, + -0.184317,0.414270,-1.208727,0.402780,0.915012,0.022813, + -0.014225,0.327900,-0.747573,0.402780,0.915012,0.022813, + 0.272043,0.363024,-0.001417,-0.306094,0.949796,-0.064766, + 0.344697,0.335558,-0.747576,-0.306094,0.949796,-0.064766, + 0.012647,0.279427,-0.001417,-0.306094,0.949796,-0.064766, + -0.309308,-0.125191,0.744740,-0.204141,-0.976731,-0.065752, + 0.183178,-0.259167,1.205894,-0.204141,-0.976731,-0.065752, + -0.193767,-0.184567,1.268031,-0.204141,-0.976731,-0.065752, + -0.309308,-0.125191,0.744740,-0.270091,-0.962795,0.008728, + 0.101554,-0.243033,0.459730,-0.270091,-0.962795,0.008728, + 0.183178,-0.259167,1.205894,-0.270091,-0.962795,0.008728, + 0.101554,-0.243033,0.459730,0.174845,-0.983767,-0.040398, + 0.505238,-0.184567,0.783138,0.174845,-0.983767,-0.040398, + 0.183178,-0.259167,1.205894,0.174845,-0.983767,-0.040398, + 0.286346,-0.089592,-0.001417,-0.370034,-0.923554,0.100617, + 0.101554,-0.065793,-0.462563,-0.370034,-0.923554,0.100617, + 0.310058,-0.184567,-0.785971,-0.370034,-0.923554,0.100617, + 0.286346,-0.089592,-0.001417,0.325694,-0.928486,-0.178430, + 0.101554,-0.243033,0.459730,0.325694,-0.928486,-0.178430, + 0.101554,-0.065793,-0.462563,0.325694,-0.928486,-0.178430, + 0.101554,-0.243033,0.459730,0.294445,-0.938496,-0.180354, + -0.308265,-0.282990,-0.001417,0.294445,-0.938496,-0.180354, + 0.101554,-0.065793,-0.462563,0.294445,-0.938496,-0.180354, + -0.681349,-0.318752,-0.001417,-0.561972,-0.808428,0.175021, + -0.676801,-0.160374,0.744743,-0.561972,-0.808428,0.175021, + -0.963457,-0.122647,-0.001417,-0.561972,-0.808428,0.175021, + -0.681349,-0.318752,-0.001417,0.093254,-0.974059,0.206184, + -0.309308,-0.125191,0.744740,0.093254,-0.974059,0.206184, + -0.676801,-0.160374,0.744743,0.093254,-0.974059,0.206184, + -0.309308,-0.125191,0.744740,0.094455,-0.986631,-0.132804, + -0.193767,-0.184567,1.268031,0.094455,-0.986631,-0.132804, + -0.676801,-0.160374,0.744743,0.094455,-0.986631,-0.132804, + -0.309308,-0.233630,-0.747573,-0.255425,-0.955741,-0.146006, + -0.676801,-0.135416,-0.747576,-0.255425,-0.955741,-0.146006, + -0.193767,-0.184567,-1.270864,-0.255425,-0.955741,-0.146006, + -0.309308,-0.233630,-0.747573,-0.251121,-0.939641,-0.232406, + -0.681349,-0.318752,-0.001417,-0.251121,-0.939641,-0.232406, + -0.676801,-0.135416,-0.747576,-0.251121,-0.939641,-0.232406, + -0.681349,-0.318752,-0.001417,-0.559128,-0.804338,-0.201039, + -0.963457,-0.122647,-0.001417,-0.559128,-0.804338,-0.201039, + -0.676801,-0.135416,-0.747576,-0.559128,-0.804338,-0.201039, + 0.101554,-0.065793,-0.462563,-0.475912,-0.879345,0.016121, + 0.183178,-0.123648,-1.208727,-0.475912,-0.879345,0.016121, + 0.310058,-0.184567,-0.785971,-0.475912,-0.879345,0.016121, + 0.101554,-0.065793,-0.462563,0.311309,-0.944235,0.107268, + -0.309308,-0.233630,-0.747573,0.311309,-0.944235,0.107268, + 0.183178,-0.123648,-1.208727,0.311309,-0.944235,0.107268, + -0.309308,-0.233630,-0.747573,0.168152,-0.984217,-0.055152, + -0.193767,-0.184567,-1.270864,0.168152,-0.984217,-0.055152, + 0.183178,-0.123648,-1.208727,0.168152,-0.984217,-0.055152, + 0.469048,0.098790,0.415557,0.859877,0.502936,-0.087555, + 0.384591,0.090319,-0.462565,0.859877,0.502936,-0.087555, + 0.272043,0.363024,-0.001417,0.859877,0.502936,-0.087555, + 0.469048,0.098790,0.415557,0.789057,-0.610318,-0.070003, + 0.286346,-0.089592,-0.001417,0.789057,-0.610318,-0.070003, + 0.384591,0.090319,-0.462565,0.789057,-0.610318,-0.070003, + 0.286346,-0.089592,-0.001417,0.939347,-0.335944,0.069059, + 0.310058,-0.184567,-0.785971,0.939347,-0.335944,0.069059, + 0.384591,0.090319,-0.462565,0.939347,-0.335944,0.069059, + -0.000570,0.000000,1.517511,0.357658,0.378218,0.853834, + 0.410298,0.000000,1.345405,0.357658,0.378218,0.853834, + 0.192628,0.380510,1.268031,0.357658,0.378218,0.853834, + -0.000570,0.000000,1.517511,0.296553,-0.640979,0.707956, + 0.183178,-0.259167,1.205894,0.296553,-0.640979,0.707956, + 0.410298,0.000000,1.345405,0.296553,-0.640979,0.707956, + 0.183178,-0.259167,1.205894,0.609971,-0.716615,0.338228, + 0.505238,-0.184567,0.783138,0.609971,-0.716615,0.338228, + 0.410298,0.000000,1.345405,0.609971,-0.716615,0.338228, + -0.860548,0.000000,0.459731,-0.838303,0.103587,0.535273, + -0.384104,0.000000,1.205901,-0.838303,0.103587,0.535273, + -0.624286,0.240846,0.783138,-0.838303,0.103587,0.535273, + -0.860548,0.000000,0.459731,-0.842801,-0.009261,0.538145, + -0.676801,-0.160374,0.744743,-0.842801,-0.009261,0.538145, + -0.384104,0.000000,1.205901,-0.842801,-0.009261,0.538145, + -0.676801,-0.160374,0.744743,-0.655621,-0.479865,0.583001, + -0.193767,-0.184567,1.268031,-0.655621,-0.479865,0.583001, + -0.384104,0.000000,1.205901,-0.655621,-0.479865,0.583001, + -0.411437,0.000000,-1.208735,-0.832742,0.235206,-0.501218, + -0.860548,0.000000,-0.462565,-0.832742,0.235206,-0.501218, + -0.701558,0.184567,-0.640105,-0.832742,0.235206,-0.501218, + -0.411437,0.000000,-1.208735,-0.854236,-0.076976,-0.514155, + -0.676801,-0.135416,-0.747576,-0.854236,-0.076976,-0.514155, + -0.860548,0.000000,-0.462565,-0.854236,-0.076976,-0.514155, + -0.676801,-0.135416,-0.747576,-0.826542,-0.470153,-0.309491, + -0.963457,-0.122647,-0.001417,-0.826542,-0.470153,-0.309491, + -0.860548,0.000000,-0.462565,-0.826542,-0.470153,-0.309491, + 0.410298,0.000000,-1.208735,0.557388,0.586769,-0.587385, + -0.000570,0.000000,-1.598620,0.557388,0.586769,-0.587385, + 0.192628,0.247332,-1.168216,0.557388,0.586769,-0.587385, + 0.410298,0.000000,-1.208735,0.426997,-0.784344,-0.449976, + 0.183178,-0.123648,-1.208727,0.426997,-0.784344,-0.449976, + -0.000570,0.000000,-1.598620,0.426997,-0.784344,-0.449976, + 0.183178,-0.123648,-1.208727,0.208625,-0.899617,-0.383620, + -0.193767,-0.184567,-1.270864,0.208625,-0.899617,-0.383620, + -0.000570,0.000000,-1.598620,0.208625,-0.899617,-0.383620, + 0.410298,0.000000,1.345405,0.807034,0.518953,0.281752, + 0.480481,0.216971,0.744743,0.807034,0.518953,0.281752, + 0.192628,0.380510,1.268031,0.807034,0.518953,0.281752, + 0.410298,0.000000,1.345405,0.977784,-0.205778,0.039916, + 0.469048,0.098790,0.415557,0.977784,-0.205778,0.039916, + 0.480481,0.216971,0.744743,0.977784,-0.205778,0.039916, + 0.469048,0.098790,0.415557,0.901046,0.397319,-0.173935, + 0.272043,0.363024,-0.001417,0.901046,0.397319,-0.173935, + 0.480481,0.216971,0.744743,0.901046,0.397319,-0.173935, + -0.384104,0.000000,1.205901,-0.528009,0.573263,0.626559, + -0.184317,0.365906,1.039482,-0.528009,0.573263,0.626559, + -0.624286,0.240846,0.783138,-0.528009,0.573263,0.626559, + -0.384104,0.000000,1.205901,-0.517247,0.571971,0.636636, + -0.000570,0.000000,1.517511,-0.517247,0.571971,0.636636, + -0.184317,0.365906,1.039482,-0.517247,0.571971,0.636636, + -0.000570,0.000000,1.517511,-0.417595,0.636913,0.648041, + 0.192628,0.380510,1.268031,-0.417595,0.636913,0.648041, + -0.184317,0.365906,1.039482,-0.417595,0.636913,0.648041, + -0.860548,0.000000,-0.462565,-0.845037,0.449764,-0.289178, + -0.902876,0.216971,-0.001417,-0.845037,0.449764,-0.289178, + -0.701558,0.184567,-0.640105,-0.845037,0.449764,-0.289178, + -0.860548,0.000000,-0.462565,-0.981498,-0.191474,-0.000000, + -0.860548,0.000000,0.459731,-0.981498,-0.191474,-0.000000, + -0.902876,0.216971,-0.001417,-0.981498,-0.191474,-0.000000, + -0.860548,0.000000,0.459731,-0.847800,0.445630,0.287486, + -0.624286,0.240846,0.783138,-0.847800,0.445630,0.287486, + -0.902876,0.216971,-0.001417,-0.847800,0.445630,0.287486, + -0.000570,0.000000,-1.598620,0.380518,0.717678,-0.583219, + -0.184317,0.414270,-1.208727,0.380518,0.717678,-0.583219, + 0.192628,0.247332,-1.168216,0.380518,0.717678,-0.583219, + -0.000570,0.000000,-1.598620,-0.644007,0.353083,-0.678665, + -0.411437,0.000000,-1.208735,-0.644007,0.353083,-0.678665, + -0.184317,0.414270,-1.208727,-0.644007,0.353083,-0.678665, + -0.411437,0.000000,-1.208735,-0.750766,0.411610,-0.516650, + -0.701558,0.184567,-0.640105,-0.750766,0.411610,-0.516650, + -0.184317,0.414270,-1.208727,-0.750766,0.411610,-0.516650, + 0.384591,0.090319,-0.462565,0.963299,0.254811,0.084418, + 0.344697,0.335558,-0.747576,0.963299,0.254811,0.084418, + 0.272043,0.363024,-0.001417,0.963299,0.254811,0.084418, + 0.384591,0.090319,-0.462565,0.984494,0.174957,0.012740, + 0.410298,0.000000,-1.208735,0.984494,0.174957,0.012740, + 0.344697,0.335558,-0.747576,0.984494,0.174957,0.012740, + 0.410298,0.000000,-1.208735,0.664307,0.646184,-0.375691, + 0.192628,0.247332,-1.168216,0.664307,0.646184,-0.375691, + 0.344697,0.335558,-0.747576,0.664307,0.646184,-0.375691, + -0.002332,0.213378,0.631682,0.652029,0.752355,0.093919, + 0.012647,0.279427,-0.001417,0.652029,0.752355,0.093919, + -0.280090,0.522819,0.081168,0.652029,0.752355,0.093919, + -0.002332,0.213378,0.631682,-0.031512,0.994185,0.102975, + 0.480481,0.216971,0.744743,-0.031512,0.994185,0.102975, + 0.012647,0.279427,-0.001417,-0.031512,0.994185,0.102975, + 0.480481,0.216971,0.744743,-0.295985,0.918428,0.262456, + 0.272043,0.363024,-0.001417,-0.295985,0.918428,0.262456, + 0.012647,0.279427,-0.001417,-0.295985,0.918428,0.262456, + -0.605569,0.380903,0.277674,-0.063420,0.855963,0.513132, + -0.002332,0.213378,0.631682,-0.063420,0.855963,0.513132, + -0.280090,0.522819,0.081168,-0.063420,0.855963,0.513132, + -0.605569,0.380903,0.277674,0.360510,0.914958,-0.181338, + -0.184317,0.365906,1.039482,0.360510,0.914958,-0.181338, + -0.002332,0.213378,0.631682,0.360510,0.914958,-0.181338, + -0.184317,0.365906,1.039482,0.140043,0.946283,-0.291440, + 0.192628,0.380510,1.268031,0.140043,0.946283,-0.291440, + -0.002332,0.213378,0.631682,0.140043,0.946283,-0.291440, + -0.352763,0.239456,-0.319506,-0.560542,0.720651,-0.407989, + -0.605569,0.380903,0.277674,-0.560542,0.720651,-0.407989, + -0.280090,0.522819,0.081168,-0.560542,0.720651,-0.407989, + -0.352763,0.239456,-0.319506,-0.217812,0.925012,-0.311304, + -0.902876,0.216971,-0.001417,-0.217812,0.925012,-0.311304, + -0.605569,0.380903,0.277674,-0.217812,0.925012,-0.311304, + -0.902876,0.216971,-0.001417,-0.605675,0.772308,0.191568, + -0.624286,0.240846,0.783138,-0.605675,0.772308,0.191568, + -0.605569,0.380903,0.277674,-0.605675,0.772308,0.191568, + -0.014225,0.327900,-0.747573,-0.637840,0.678600,-0.364229, + -0.352763,0.239456,-0.319506,-0.637840,0.678600,-0.364229, + -0.280090,0.522819,0.081168,-0.637840,0.678600,-0.364229, + -0.014225,0.327900,-0.747573,-0.016355,0.981669,0.189891, + -0.184317,0.414270,-1.208727,-0.016355,0.981669,0.189891, + -0.352763,0.239456,-0.319506,-0.016355,0.981669,0.189891, + -0.184317,0.414270,-1.208727,-0.274149,0.952129,0.135250, + -0.701558,0.184567,-0.640105,-0.274149,0.952129,0.135250, + -0.352763,0.239456,-0.319506,-0.274149,0.952129,0.135250, + 0.012647,0.279427,-0.001417,0.643510,0.764978,0.026520, + -0.014225,0.327900,-0.747573,0.643510,0.764978,0.026520, + -0.280090,0.522819,0.081168,0.643510,0.764978,0.026520, + 0.012647,0.279427,-0.001417,-0.021286,0.997621,0.065575, + 0.344697,0.335558,-0.747576,-0.021286,0.997621,0.065575, + -0.014225,0.327900,-0.747573,-0.021286,0.997621,0.065575, + 0.344697,0.335558,-0.747576,-0.020912,0.979982,-0.197984, + 0.192628,0.247332,-1.168216,-0.020912,0.979982,-0.197984, + -0.014225,0.327900,-0.747573,-0.020912,0.979982,-0.197984 + ]; + + this.indices = [ + 0,1,2, + 3,4,5, + 6,7,8, + 9,10,11, + 12,13,14, + 15,16,17, + 18,19,20, + 21,22,23, + 24,25,26, + 27,28,29, + 30,31,32, + 33,34,35, + 36,37,38, + 39,40,41, + 42,43,44, + 45,46,47, + 48,49,50, + 51,52,53, + 54,55,56, + 57,58,59, + 60,61,62, + 63,64,65, + 66,67,68, + 69,70,71, + 72,73,74, + 75,76,77, + 78,79,80, + 81,82,83, + 84,85,86, + 87,88,89, + 90,91,92, + 93,94,95, + 96,97,98, + 99,100,101, + 102,103,104, + 105,106,107, + 108,109,110, + 111,112,113, + 114,115,116, + 117,118,119, + 120,121,122, + 123,124,125, + 126,127,128, + 129,130,131, + 132,133,134, + 135,136,137, + 138,139,140, + 141,142,143, + 144,145,146, + 147,148,149, + 150,151,152, + 153,154,155, + 156,157,158, + 159,160,161, + 162,163,164, + 165,166,167, + 168,169,170, + 171,172,173, + 174,175,176, + 177,178,179, + 180,181,182, + 183,184,185, + 186,187,188, + 189,190,191, + 192,193,194, + 195,196,197, + 198,199,200, + 201,202,203, + 204,205,206, + 207,208,209, + 210,211,212, + 213,214,215, + 216,217,218, + 219,220,221, + 222,223,224, + 225,226,227, + 228,229,230, + 231,232,233, + 234,235,236, + 237,238,239 + ]; + + this.InitBuffers(); + } +} + +function loadImage ( path ) +{ + return new Promise ( (resolve, reject) => + { + const img = new Image() ; + img.crossOrigin = 'Anonymous'; // to avoid CORS if used with Canvas + img.src = path ; + img.onload = () => { + resolve(img) ; + } + img.onerror = e => { + reject(e) ; + } + } ) +} ; + +function handleTexture(image, texture) +{ + gl.bindTexture(gl.TEXTURE_2D, texture); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); + gl.generateMipmap(gl.TEXTURE_2D); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); + gl.bindTexture(gl.TEXTURE_2D, null); +} + +class Sea extends Object3D { + + constructor(program) { + + super(program = waterProgram, [0.2, 0.2, 1.0, 1.0], [0.4, 0.4, 0.8, 1.0], [0.5, 0.5, 0.9, 1.0]); + + this.texCoordLoc = gl.getAttribLocation(this.shader, "vTexCoord"); + this.diffuseMapLoc = gl.getUniformLocation(this.shader, "diffuseMap"); + // TODO 1.3: Hole Speicheradresse der Normal-Map-Shadervariable. + + + for(let i = -10; i < 10; i += 0.5) { + for(let j = -10; j < 10; j += 0.5) { + + let firstIndex = this.positions.length / 8; + this.indices.push(firstIndex, firstIndex + 1, firstIndex + 2); + this.indices.push(firstIndex + 2, firstIndex + 1, firstIndex + 3); + + this.positions.push(i, -0.3, j, 0, 1, 0, 0, 0); + this.positions.push(i+0.5, -0.3, j, 0, 1, 0, 1, 0); + this.positions.push(i, -0.3, j+0.5, 0, 1, 0, 0, 1); + this.positions.push(i+0.5, -0.3, j+0.5, 0, 1, 0, 1, 1); + } + } + + this.handleTextures(); + } + + async handleTextures(){ + + this.diffuseTexture = gl.createTexture(); + let waterImage = await loadImage("water_diffuse.jpg"); + handleTexture(waterImage, this.diffuseTexture); + + // TODO 1.1: Erstelle analog zu diffuser Textur eine Normal Map für das Meer. + + + this.InitBuffers(); + } + + Render() { + + // Link data in VBO to shader variables + gl.bindBuffer(gl.ARRAY_BUFFER, this.posVBO); + gl.enableVertexAttribArray(this.posLoc); + gl.enableVertexAttribArray(this.normalLoc); + gl.enableVertexAttribArray(this.texCoordLoc); + + gl.vertexAttribPointer(this.posLoc, 3, gl.FLOAT, false, 8 * 4, 0); + gl.vertexAttribPointer(this.normalLoc, 3, gl.FLOAT, false, 8 * 4, 3 * 4); + gl.vertexAttribPointer(this.texCoordLoc, 2, gl.FLOAT, false, 8 * 4, 6 * 4); + + this.UpdateUniforms(); + + gl.activeTexture(gl.TEXTURE0); + gl.bindTexture(gl.TEXTURE_2D, this.diffuseTexture); + gl.uniform1i(this.diffuseMapLoc, 0); + + // TODO 1.4: Verknüpfe Normal Map analog zu diffuser Map mit Shader. + + + // Render + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexVBO); + gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0); + } +} \ No newline at end of file diff --git a/Abgabe_6/normalMappingTODOs/index.html b/Abgabe_6/normalMappingTODOs/index.html new file mode 100644 index 0000000..7efc512 --- /dev/null +++ b/Abgabe_6/normalMappingTODOs/index.html @@ -0,0 +1,170 @@ + + + + + WebGL Example + + + + + + + + + + + + +

Lorem Ipsum

+ + + If you see this, your browser doesn't support WebGL. + + + + + diff --git a/Abgabe_6/normalMappingTODOs/main.js b/Abgabe_6/normalMappingTODOs/main.js new file mode 100644 index 0000000..9755457 --- /dev/null +++ b/Abgabe_6/normalMappingTODOs/main.js @@ -0,0 +1,196 @@ +let gl; +let defaultProgram, + waterProgram; + +let objects = []; + +let viewMatrix, + projectionMatrix; + +let eye, + target, + up; + +let keyPressed = { + KeyW: false, + KeyA: false, + KeyS: false, + KeyD: false +}; + +const speed = 0.005; + + +function main() { + + // Get canvas and setup WebGL context + const canvas = document.getElementById("gl-canvas"); + gl = canvas.getContext('webgl2'); + + // Configure viewport + gl.viewport(0,0,canvas.width,canvas.height); + gl.clearColor(0.75,0.8,1.0,1.0); + + gl.enable(gl.DEPTH_TEST); + + // Init shader program via additional function and bind it + defaultProgram = initShaders(gl, "vertex-shader", "fragment-shader"); + waterProgram = initShaders(gl, "vertex-shader-water", "fragment-shader-water"); + + // Create object instances + let island = new Island(); + objects.push(island); + + let tree1 = new Tree(); + tree1.SetModelMatrix([1.3, 0, 0.6], [0, 45, 0], [0.3, 0.3, 0.3]); + objects.push(tree1); + + let tree2 = new Tree(); + tree2.SetModelMatrix([0.9, 0, 0.3], [0, 33, 0], [0.45, 0.45, 0.45]); + objects.push(tree2); + + let tree3 = new Tree(); + tree3.SetModelMatrix([0.45, 0, 0.75], [0, 0, 0], [0.4, 0.4, 0.4]); + objects.push(tree3); + + let tree4 = new Tree(); + tree4.SetModelMatrix([-1.1, 0, 0.5], [0, 222, 0], [0.42, 0.42, 0.42]); + objects.push(tree4); + + let tree5 = new Tree(); + tree5.SetModelMatrix([-0.65, 0, 0.7], [0, 79, 0], [0.32, 0.32, 0.32]); + objects.push(tree5); + + let cloud1 = new Cloud(); + cloud1.SetModelMatrix([-0.4, 1, -0.9], [0, 0, 0], [0.32, 0.32, 0.32]); + objects.push(cloud1); + + let cloud2 = new Cloud(); + cloud2.SetModelMatrix([0, 1.4, -1.6], [0, -90, 0], [0.2, 0.2, 0.2]); + objects.push(cloud2); + + let cloud3 = new Cloud(); + cloud3.SetModelMatrix([0.7, 0.9, -0.8], [0, 100, 0], [0.25, 0.25, 0.25]); + objects.push(cloud3); + + let river = new River(); + river.SetModelMatrix([0, 0.04, 1.8], [0, 185, 0], [0.11, 0.11, 0.11]); + objects.push(river); + + let sea = new Sea(); + objects.push(sea); + + // Compute view matrix + eye = vec3.fromValues(0.0, 0.3, 4.0); + target = vec3.fromValues(0.0, 0.3, 0.0); + up = vec3.fromValues(0.0, 1.0, 0.0); + + viewMatrix = mat4.create(); + mat4.lookAt(viewMatrix, eye, target, up); + + // Compute projection matrix + projectionMatrix = mat4.create(); + mat4.perspective(projectionMatrix, Math.PI * 0.25, canvas.width / canvas.height, 0.5, 100); + + for(let object of objects) { + + gl.useProgram(object.shader); + + // Set view and projection matrix + gl.uniformMatrix4fv(object.viewMatrixLoc, false, viewMatrix); + gl.uniformMatrix4fv(object.projectionMatrixLoc, false, projectionMatrix); + + // Set position und intensity of the light source + gl.uniform3fv(object.lightPositionLoc, [1.0, 2.0, 1.0]); + gl.uniform4fv(object.IaLoc, [0.4, 0.4, 0.4, 1.0]); + gl.uniform4fv(object.IdLoc, [0.8, 0.8, 0.8, 1.0]); + gl.uniform4fv(object.IsLoc, [1.0, 1.0, 1.0, 1.0]); + } + + document.addEventListener("keydown", keydown); + document.addEventListener("keyup", keyup); + document.addEventListener("mousemove", changeView); + + canvas.onmousedown = function() { + canvas.requestPointerLock(); + } + + gameLoop(); +}; + +function update() +{ + let look = vec3.create(); + vec3.sub(look, target, eye); + vec3.scale(look, look, speed); + + if(keyPressed.KeyW) { + eye[0] += look[0]; + eye[2] += look[2]; + target[0] += look[0]; + target[2] += look[2]; + } + if(keyPressed.KeyS) { + eye[0] -= look[0]; + eye[2] -= look[2]; + target[0] -= look[0]; + target[2] -= look[2]; + } + if(keyPressed.KeyA) { + eye[0] += look[2]; + eye[2] -= look[0]; + target[0] += look[2]; + target[2] -= look[0]; + } + if(keyPressed.KeyD) { + eye[0] -= look[2]; + eye[2] += look[0]; + target[0] -= look[2]; + target[2] += look[0]; + } + mat4.lookAt(viewMatrix, eye, target, up); + for(let object of objects) { + gl.useProgram(object.shader); + gl.uniformMatrix4fv(object.viewMatrixLoc, false, viewMatrix); + } +} + +function render() { + + // Only clear once + gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); + + // Call render function of each scene object + for(let object of objects) { + object.Render(); + }; +} + +function gameLoop() +{ + update(); + render(); + requestAnimationFrame(gameLoop); +} + +function keydown(e) +{ + keyPressed[e.code] = true; +} + +function keyup(e) +{ + keyPressed[e.code] = false; +} + +function changeView(e) +{ + vec3.rotateY(target, target, eye, -e.movementX * speed); + mat4.lookAt(viewMatrix, eye, target, up); + for(let object of objects) { + gl.useProgram(object.shader); + gl.uniformMatrix4fv(object.viewMatrixLoc, false, viewMatrix); + } +} + +main(); diff --git a/Abgabe_6/normalMappingTODOs/water_diffuse.jpg b/Abgabe_6/normalMappingTODOs/water_diffuse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7121777781bf5da9a4b4e53e7aab6ef85c299c8e GIT binary patch literal 134965 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

lb>qqQudVj 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 KZQ$SZFcg7aCtn} zRduCW!yzUylj&0FnoYdY?T##ySbcsGdmk|jbYY0Kx{dJtfhAO>bkXU}^is3v}qaz~` z9)Ak;9a6};ovZp+J*aqO+zrgRuaL^|^i`ah&%>N>@Y3bx(C}XrcxL9{He_2 z1-WTX@Ot#ceIKm&N)<*1K7DJLyYNJENOq=A(!T2pn9-Fj57{zb5aT(_07aI&Xom2Ld0`x(zeH@*o@GKKxc#jN+7IZe#P@(-Tf< zPWL#;?Wc9}Wc556l4L*1Q~UI~6HfJ04z1 zh{Ry4sV$7XQ%8c@0$hyZxDOV<6e-OHuhZ#Gbd1>Jrf`c(&{VQ`q_;dD|R!IkcO6}zE{k5nVDoE{D^ouo$ zK;={l=B=8|#kig{vkA)*oF0SxHQ@;K*jFeqU0s#5YZwIJ4#KEf$dWq72;<(h6hjnT zHcfn{GQC=p_nxP{Djwd8Z4S7S2qF2KCml0TTQqaNFa=W7u0TI~p2Ia>8;g;jEY>l@ zw;SB}oMsl-r6{`_60{HybNbX0_?+9fmkZ?AIjd?{Yn3wKR%+@lueszuiLT0da-1(M zPp#p)(WzZRZs(zDB_#OPikkxmAB^Ij*cd{hdJ zi;w(zxvSracQ-6w%{cnkvzKt42sI|QI4kg*r8mltNbzTn{KCLU593~A;;$G_J2IP$ z0(t{n?!V*fnae7-9)Q;+sO$Ha4o>6Eecl%-8_W^l1JlCN3XTdUDMz17!C)&4^Y0{0^@UX(tqaJB3iUU%;l&{Kptr%`@ zR@@U2$@Z?lPWWpfK`TLz!n9N2%j2{=N{GU&G5EU9{D5Z9WhuM{{X}0i1|SdJMmXf9fqqbMW3o=ylaDkQF1(~CAtKw z1J<-G9#FsqKIXd5_(72lJg?HNT6iV%xLfh`sKr!;u8-65Ec*wENg0|{tbk`Z&uZMY zmna#*$Gup$@O+V+ynAZInpn0?qmzpHnz)bNXnoXvtzL__QkzIvA1}YHAh(e~V8@!Z z1*vI3D1Mb@<`qR57_Nm;HmrD6KX#m6##>!AkIY6-)|+W}KBsaM7+mv7sUc&wF`unm z@XnVz%p9o$y?WH;1w!&aE8_fyhHXwzwx@034K6$;6FoVvO3*EYFsh>T9jlP=m6?V$ zEWG>IZ>LKfaR!iz_*~()H_CrD@(&c_~<_-w+Bq*l$Xv`m2D^s2gq(L_psI3BgZ zQxiUZTOS{e=EKxYqdClQwm)3fR=cc0ZwUa5{VH8T@;$^YV&B>u$0`q6_An|JPG*=4 z!9h5)CgW9_dGQkWt9nI?-rWx}JdDK+o$u-pIej2y6b;N(AdYFvI4NjYkcRl(u zql$`$QhgIchATy8h!4Vx`zVP!P<~asw#(#%9RT#I659g!37YvSVx=mMS2=S?N`zEV z$Ld;pG=zldSemt^+h-jswACU+kmOb#qYBBD3(4SOyKvcrmW=qR<`btU85}*`w35ss zL?q_AUkG?wV#_1MNhhHdtD$&SIV2Lx7JUXQy3jm2s1%4m9^#C4c}|@>L@@Y|Yc(Ly zG-kKAQe(yiXg#R|2R}humO45Ja7Rw`Pp2Yeg&x)N63!ty*Js?|vn7U%TF|elTwB|w z9ml<5UhB5t5V*kaSso$rIs(AY$@i=YweK|SQ=WZmyDZA)tmb^)3mH0in>~$sh=w6Lz5cO#C*-UQqiueD8Sr$sw_ zs1ADOtcbku1ZpwfuUcBH19J>lFV@^4zO3_eiVnJQd!cPKYjlid6no;VEw!{m8CuKM zd_f(W6j#Ovt#dlhk6zv~6_3|7bTAm)V@~^@60p^3xl_K!U8&vK!x>%c`PUn*YW68P z`N6^Uu0vn=l`iHVYW$6Hy4S=e-gnK{{i^zW7Yx^oZrSksMUdic&W})=#jrrXB#Xzr zX6j!Me6VvU>FZusCyxX3_K*B}s!!s0?&SIIGx*ohVX_EE;zeZne7P4oJqGv3fyrYo zb5#e6%_9@WN0c(*JOSmV8I>DCbu<`JGN(ReI980>wv3j;*+!UU_CQgeO40HvzIr@>C>vJ!RXDj)dbRf&QCtI zv8K*Sg7^d8sQ7ck5|Nn@{Y`WbczerSvmQOGhZ9zWA1%*16zIavTZ?OR6l@BRPo-Y| z)5-(`6-FH@PdE2#nwsjyXjA50wdPe+r8TMcc{N-i0`gj z<$TtSpNHRpv!8m=weYbdGbT@_Dm|oWyCdGH=+%e3wK?N#(tOOlY1V!jp8i|}@9AB1 z9uby#01b=h@upCaXrG9IO&*v(ZgpbT~DwQyphpEPDULOe& zK3E)JU{@uocu_9y3Kj3y73g}rn}Jfm3c{2@6BppIuU7$^ViLW~A)Z&}R*}lV@Y3Ex zxS;$+S{?w3-3thZ9V=zEgoNw`NzGb^RgI&}fLFY+`1-Kb=zh7vTuGQFtt;5!^=}NA z!w)YXL0rA|izt|`KDFt3)}>^@xd-sBR`x}m+(RE;_^#?c(xp4Je?f597gVb_)0xdj zVz9Pz&N||#-&)B$nCJ7Y`->SeO9Cm@dR45l0QJ2J%A358yT(@bl)a=noaMfV^GLY| zk3n5;hx|IxDzm_FJwEl+o%p zJ}0+k`{V1HTMcqMiLiq;<=Q`pq|_$?r6d#6JXd|;lK~1{hd%X%e4;o-sy{D|Nmmb2 z(noiq-b(mb(z;C^IpuM`fn1e_uWw}@K^-dK@!WR*04lx@*1mfYfv;Nr&L`5~vf7g6 zaYu1G!5l?*el?SIs6hxT8v;#olX&pl0tDUq=8G*^uH??*dkW@RC0cR3&qp@Nu@z}4 z*weaMZ)e6h`cUb*~+)w*(pg05+;t{yv5|GHwCq z*1SJh_>FL6VzZJywU&M(T!Vo>>tEB@J|CqzX!@*|A(k~pXVBNaK8oiEjyXJ>)%_dA zfRGkoK8C(+i{d@mkSfk`?rWjZJ|x_u0p^V3*1PAB!W7y^>%2R{mFVLmC8}rB8fS^^ zOAj`2`PQU9Bes54V19P2dLmxw+jsdn8j8RU~(AB;XJ!cfN*$4`3THBX35c#O|BGw)n>yW&=vnPZro zpIZGBFUe?9N!w%cY{MpaEJJcuXIH9xM3JUvdC3{|u5VfRj?BeF;XRZx_ws6sj!U^sFKUI_FL4nQ4Mq?4ao?JOdwtch&UmVJjwV$ZI%pRX1Sd`q!Z+hoTLNw3~>lzHw zIY^)<@U7M|7>Bw0p9*o6Ia7+9j!av`4kO@wD&3qi?g2$>+W0>DSpYWY+luHkABQ({ z$O(k?^shS^iKRv@x3T+nTbWR=74Ka$J43LTs=Gz{S4X7UPdtGF0J-M6EjQu((V$X< zap_z7H-bzo50#I?zG>%_Qf}v)#8fb~so0mnI#F2@*+959oC2Bk*edNato=yk!Jq@Qi0?<<>HdoTT>q7IVZhwxBB|4{L=BBd8r`r zO2rrv$&=c?hFBRYdLO*-{3l*YaC)6Z-qp_c08|#D!KKZRZD#Xk~V>R?X z%~Fo1gGp4UB{M%$xn)vvb6oVo;_BlOf<|k*yYS$=V4!yCP#+2`2NA{xuN9>{MK~j- zwrfI9l0^>++O#ei_{DcRMe9ejCsHd9OVC{y6;f-U(=^sr7+#*W=i?_%Z&Sp^<#>9q z_K-I1F76x+#PBJ%F-vgYBX#YXSc<}!Ezf*Z)-4sp;{^T{;y-iVNcsA-Cx)7EMV%W# zneg)G9+lJS8eDJ?S!ud;u!;~$_U~Gnd!ai@k8Ib0jm6ZR&!nLTilNHUp{85UG^!&U z3hlfpmi7jFUDv^{y*l@seAH-9PJGe~LaWz@d;`a64wa+r^(1QeeR@di&SeWgIbDl#`Tf ze0(V4VO2XHHe7g&KN&xrRGV672WiDr7Q5Rc@}cdOMnW9d?-(}~8zcA58lE1Dv3A>1 zl>FvG1!!6Ll1L;0B>iiho!&Isq>5#lO7d=IHQiHKpU`|WR}WFeJ062&;+cwWX@6R` zZ{m3wxtR0sTsXUUlp-}-vAUW^1fB(a)-D^|{o^aANya>HsJDT#a zSe!hkzO3@No>)5gIW%$_j;S0u!S>B_dcLA=B-*F9O6YZ+7G{*Hp*ZPTqr)?8GCFqe zUr$1&7Mi{FKcDe+sKRX~bLI)3C5h+Os$JOcQb@T=KYs`olSml=2D3h$?l zr_r48#>LaM&SY7nV>r*&r?NKT`R&^kE#yyT_rAJ-IkvR1SsaNi*GG{ z@8MHe=}j016>eAxCI}Vb)yAr`vUfgL6D5b6)WFn>Buq%faDFV1Zem-dcRnMK1z;N( zuQc(M>f5U^ll8B+$tb#%?tUZ3GKMCUlIU^XD!=m7s=hsiau-)jvThD~)$bANQe0fN z7~mSfySm&6U)H{=jVV!){Qm$|%9VClm&8(9DPbu%_pCi*##0bMkn_`;eZ&Ui__+3} z6KE+kgq)r$>Tol|#?9`1j!%ul)8%h-HeGgk<^ghYYf8cICnFIyPqkdrJSdMK3lHaA zhKJ!Dn@^Ko?ObID($M~d;GFLdD@AT)_GU4wVcwcJS&u0TVB-svdbHOwZ`g`JM(<781>CfHlrkJ78U2(sAv%zfB_lw=C|O|;m9&#yt=NP zIcj_mPVydaa(K2{S z7^&YBcrqbDE^m44f5f%1Wh=VR7PYtL_5dGQfdEF61R&DFxysI)Ypf~$tb+3a+4 zYae7gOXulTF8n~Qxp}c%t=_+JD;5o!$<%y7JZf3rXvJL&r`}iG`d5ICB8z=ZzY%z$ zVU3&ZA3zOxkBt0naUpT$kO#d##C|MB3=G?=&AegaQsIPh`tU34uo+w_!tEcEaYg~r zljd3({weXC%_HJ+aD8it)x1$La#~Z*Y}0kUPHCiK#<}asjEq#8^p!YAOCOuYg)6ks z)P>i9pMEHjCTg@Mzks|&)0ZYiRdb+IT&`965L1*(rZo~HfTml z;0EfK3Zr&ErMP>DA?%{tGoyvu3beO2?h}EYD|<`u z&BWkg2`9cQPyP^li4+Ei{#EjolBHJ6{Z|i-r&kW8ea|+$(wXaM zaE(+Lz~FTiwcy`}aoa+X$8E^&MS3QI-~ypZj1R)UFXCP%r3CFGw=KrgjCo{ccyGfI ztZFt6eXF<7yfX*@82iHv95S39a&+rWq!V(*;#s{~v@vo`m>2A*!~?}+>pGIb0Z`os zTEDGb!3N@AA5&Z(igmY{jBvLexv#OyAGc{Uj|YxZ_heYP)napi!>v}`HQR-WiOH;6 zbhw&amnSB=&kort?P)QedisB6s6y*g=&;nK%XsQ&cwfUeGfEx7uSf9Dg?zPEeDPU6 z8f#c19WpDf)3rz=10)P}ubRxUc&VotqwDgTRr!{Nowk(dp;M1~)3VdpC=T2j%7?@d zy9m+0D%sN~Sx9Z!uZzqcA{5)6hwE7?#8h!j7p-)Nn;VxuQCe1-N+t+gQdr!;00eEJZcS(<2svMndMQYEiO8N#lyWKB;R0955!iUl(}78)%pZ z91mLR$#A&5WptEJm(Od~qfSo8IpXVrrGR`7t$AOK?_p5v((*lPU&g->TP`D%ckf8HZ39gSDW~=#K|uI0G}S!x#J0Eo!KF53iIy}SzIw-OIOh4S#)SL&(!CS z!(uS@xs`FKtn!>Td8+qUamKh0lj%%*IiWZTeaONkau38;J}$Ir#Js-`3X1mBb%v1h5X~9wt?ZJ-!J20B-TQx`eAM2vL_!$%z%C4?f z`V7`=`jmF)WOf)mD+5&VWc;Kqap_q?jO$4G%tjZUJ8X4wc+NN_5o78}tJa<=^Kes| z;53GtQk*-2a(mZnpy;n4$2~jNSh_fR3sUg8Z7D;Z)@Fpd{mUFGlTBSp>Q=*(TGk#B znneEqSDg2$+rm=Yw&I_qc}o$6i{(aGnz&fCeHlPpn4rs!G3nO1pBL%{;$@7H$5CB< z{+z-+gkWQyE0Xaglt3NL`qy3q*~+IgIWf5SVWZ6kd6$XrE~5+)&re$50qP7D^L5MV zgOelvwdtNHuz(|Dt$C-2>|D&nIs7Z^DNdWEW8ip$HN)d*^2>9ay_iXoTC;8ks zfg3`KsTYU7(JWGmIXUvb3|C3ve}@WONVfeukzY+b?+)lWCVx`p$8+5@UO#s#-X7Ak=GT} z!SLQC1NR{Q73n$`frJPiOK?50TXvok48Vv6K9%{FX~YZbEvA1+;4|j%k+VFH{uNr@ z0UE)N!nAbXfiWWahTkOi+g{(I_%79eEeOwkE26XTb+Arj82VR(J~#FYk}UadAmUp1 zcXZDKvG^ScaDL778*8xe=fYuV7Z&*XEqc|rhArYDmJ#_@m7akfL1Y!=<{W!kr7I?W zT~~>#&lRiDoOg%35e=@;(BzL=>g;qxfkxQz#cV;PK@bN6@~QU28sm!myEftq_}Z4- z_wc!ksTDM3i+JJXg$Cj<2vf+ZH5m~BHG_Gnq%3}Xel_ReaJ6g7?D{G)Sjt*%YyGw) z>eWY3@f23zlHaX!+Q*AwvxKpe@XdMmivA}>9_-x#j@hr#G9DMLk7>1``S%fJGIQp! z=vs%2t%*65413lU{{V`T;fkz>735dH6cTBQt+YiiGM z`%#VwuF5zWVdRg^78a!%w`WlXw+tMi92(Knd{J`p0JsV|R~V~1fU4Zqj+(bh!FL+^ zd?gw)hNtOVGa5B!qa)P(J>ppeV|2B@Z{n61j7&c|^8G&cXcPrv4PLj_E)qamU)He1 zWt68T?0(UL$f&w;oKIfR^`vP5Vh`h8hL^9TaSlg4Ij;}Wyiq(XGUw@CKA+?p>l3cO@ewhWFODnEJbB`0aL6U%s`#VF;sj{YP%u4f%e-ad z_m!CzLUZq5qwtPFD=D;oSH~GeT6Cq#ivBj&8Mh>JbDnvxH}MXuD>+ttkF99y8sxVb zC%;o%-lZ{^mSJD3(V^@k%FpKF7+spBq=(LSfBo2UApWEs(qXbnoy`x@T%0j9hYn@=#&T1J| zs-}8YkEm`c!N=fhqqNr&);zQ1*AJjWGb)ebu8s{hW?VVVV^)PVx%Ze19XfQ=k-Z;@ z{?UcbK&bC-((QI4=Bim~j+_l3oE&|EMpnwy_#8sRBqA3PmBGfPFbza14q&B zcnb+1g><$WT=2)a#yIU=Lildh*ldXaBif_AgX~fC$@*6&BNgqmN8IGO#TnYhWI2L7 zIpmIpp9qhac|Tf;K_uBEVER>8w7ho0XK%G|#W=~_`)Z1oE`pWp$u%po;G(g`QiD&5 z3UEL6-CONLZ!=33<ksM}O@uQ~BHnpxSn{6&2t%^cud{w`#YVjSrHfiOhvSu$6yx5z&kp!%7~@eKKyksxTE^0% z2+FtuyN?d4h?Tvlshd~!c1-Tsu563@x8blnU^%Xb&iM!b<&x}S&zxI16< zsv6&j77#+Xu0LJzP*i5~KU(@6yM||4N>W>&eZ%~fp`pL1c)Xm0C+l3+z2fNNjhoCF z`qv+<_|cKrhsHhYh4GKX8H8-2Ufqp;iI(t^l}N5r^jy0yg*d6Ljh`O;OY$OcE{9KA z@gEp`PLl5BkuFFX=bESEpBY}=?^TfC`Wo};mhSfCl34R!w`3U|3=SP#YH(*bdM>iQ z%&z^M+`%YM@y#N7EoTctuG;s zH)FMN@M>{F2hH>qp<}B3slxOWs8DftM_yGzbZaTZ=vz~EVq<&`wAl4$g||DF$86JW zt>I{c9<-A|5C>o+*QS&ttz-HNg>yPnq^VRiYn;)1@q4$L#dz;pam3GkihfTkDP{hhhW2Ku|E`CGJBzMzF;X3gvX08FmF!B%0}ToeE`9B(a?1iu0?& zlGU^AFxhyA9R7(RfqCniw-%(dD2k6hjw1$ zhMR&aU20bmf~ee@qdmp^rvcC7SK+o>sk65toj#uXu!r%hjG+lw`bw2)VlbMcBtR1f+Q=!Xq&b0pkhnCiW zFt_LFTY7eh_HqIz>0N_p=^@&Qf_;P;`6QtHYnj#(;pJcl=Utus zw06;+dv~s9P>tkb!yS09s>4=IT_2EVvrd{w62;$_UX3xqqTuh?eTR9tjA@1hEUNg{FTj9S5NbIfU;11+c_