twgl.js/dist/4.x/twgl-full.min.js
Gregg Tavares e71facdfb0 build
2019-11-03 14:24:50 +09:00

6 lines
72 KiB
JavaScript

/*!
* @license twgl.js 4.13.1 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
* Available via the MIT license.
* see: http://github.com/greggman/twgl.js for details
*/
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.twgl=r():e.twgl=r()}("undefined"!=typeof self?self:this,(function(){return function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=8)}([function(e,r,t){"use strict";r.__esModule=!0,r.copyExistingProperties=function(e,r){Object.keys(r).forEach((function(t){r.hasOwnProperty(t)&&e.hasOwnProperty(t)&&(r[t]=e[t])}))},r.copyNamedProperties=function(e,r,t){e.forEach((function(e){var n=r[e];void 0!==n&&(t[e]=n)}))},r.error=function(){var e;(e=console).error.apply(e,arguments)},r.warn=function(){var e;(e=console).warn.apply(e,arguments)},r.isBuffer=function(e,r){return"undefined"!=typeof WebGLBuffer&&r instanceof WebGLBuffer},r.isRenderbuffer=function(e,r){return"undefined"!=typeof WebGLRenderbuffer&&r instanceof WebGLRenderbuffer},r.isShader=function(e,r){return"undefined"!=typeof WebGLShader&&r instanceof WebGLShader},r.isTexture=function(e,r){return"undefined"!=typeof WebGLTexture&&r instanceof WebGLTexture},r.isSampler=function(e,r){return"undefined"!=typeof WebGLSampler&&r instanceof WebGLSampler}},function(e,r,t){"use strict";r.__esModule=!0,r.getGLTypeForTypedArray=function(e){if(e instanceof Int8Array)return n;if(e instanceof Uint8Array)return o;if(e instanceof Uint8ClampedArray)return o;if(e instanceof Int16Array)return u;if(e instanceof Uint16Array)return i;if(e instanceof Int32Array)return a;if(e instanceof Uint32Array)return f;if(e instanceof Float32Array)return c;throw new Error("unsupported typed array type")},r.getGLTypeForTypedArrayType=function(e){if(e===Int8Array)return n;if(e===Uint8Array)return o;if(e===Uint8ClampedArray)return o;if(e===Int16Array)return u;if(e===Uint16Array)return i;if(e===Int32Array)return a;if(e===Uint32Array)return f;if(e===Float32Array)return c;throw new Error("unsupported typed array type")},r.getTypedArrayTypeForGLType=function(e){var r=l[e];if(!r)throw new Error("unknown gl type");return r},r.isArrayBuffer=void 0;var n=5120,o=5121,u=5122,i=5123,a=5124,f=5125,c=5126,l={},s=l;s[n]=Int8Array,s[o]=Uint8Array,s[u]=Int16Array,s[i]=Uint16Array,s[a]=Int32Array,s[f]=Uint32Array,s[c]=Float32Array,s[32819]=Uint16Array,s[32820]=Uint16Array,s[33635]=Uint16Array,s[5131]=Uint16Array,s[33640]=Uint32Array,s[35899]=Uint32Array,s[35902]=Uint32Array,s[36269]=Uint32Array,s[34042]=Uint32Array;var v="undefined"!=typeof SharedArrayBuffer?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};r.isArrayBuffer=v},function(e,r,t){"use strict";r.__esModule=!0,r.add=function(e,r,t){return(t=t||new n(3))[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t},r.copy=function(e,r){return(r=r||new n(3))[0]=e[0],r[1]=e[1],r[2]=e[2],r},r.create=function(e,r,t){var o=new n(3);e&&(o[0]=e);r&&(o[1]=r);t&&(o[2]=t);return o},r.cross=function(e,r,t){t=t||new n(3);var o=e[2]*r[0]-e[0]*r[2],u=e[0]*r[1]-e[1]*r[0];return t[0]=e[1]*r[2]-e[2]*r[1],t[1]=o,t[2]=u,t},r.distance=function(e,r){var t=e[0]-r[0],n=e[1]-r[1],o=e[2]-r[2];return Math.sqrt(t*t+n*n+o*o)},r.distanceSq=function(e,r){var t=e[0]-r[0],n=e[1]-r[1],o=e[2]-r[2];return t*t+n*n+o*o},r.divide=function(e,r,t){return(t=t||new n(3))[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t},r.divScalar=function(e,r,t){return(t=t||new n(3))[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r,t},r.dot=function(e,r){return e[0]*r[0]+e[1]*r[1]+e[2]*r[2]},r.lerp=function(e,r,t,o){return(o=o||new n(3))[0]=e[0]+t*(r[0]-e[0]),o[1]=e[1]+t*(r[1]-e[1]),o[2]=e[2]+t*(r[2]-e[2]),o},r.lerpV=function(e,r,t,o){return(o=o||new n(3))[0]=e[0]+t[0]*(r[0]-e[0]),o[1]=e[1]+t[1]*(r[1]-e[1]),o[2]=e[2]+t[2]*(r[2]-e[2]),o},r.length=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])},r.lengthSq=function(e){return e[0]*e[0]+e[1]*e[1]+e[2]*e[2]},r.max=function(e,r,t){return(t=t||new n(3))[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t},r.min=function(e,r,t){return(t=t||new n(3))[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t},r.mulScalar=function(e,r,t){return(t=t||new n(3))[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t},r.multiply=function(e,r,t){return(t=t||new n(3))[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t},r.negate=function(e,r){return(r=r||new n(3))[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r},r.normalize=function(e,r){r=r||new n(3);var t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],o=Math.sqrt(t);o>1e-5?(r[0]=e[0]/o,r[1]=e[1]/o,r[2]=e[2]/o):(r[0]=0,r[1]=0,r[2]=0);return r},r.setDefaultType=function(e){var r=n;return n=e,r},r.subtract=function(e,r,t){return(t=t||new n(3))[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t};var n=Float32Array},function(e,r,t){"use strict";r.__esModule=!0,r.isWebGL1=function(e){return!e.texStorage2D},r.isWebGL2=function(e){return!!e.texStorage2D},r.glEnumToString=void 0;var n,o,u=(n={},o={},function(e,r){return function(e){var r=e.constructor.name;if(!n[r]){for(var t in e)if("number"==typeof e[t]){var u=o[e[t]];o[e[t]]=u?"".concat(u," | ").concat(t):t}n[r]=!0}}(e),o[r]||"0x"+r.toString(16)});r.glEnumToString=u},function(e,r,t){"use strict";r.__esModule=!0,r.createAttributeSetters=G,r.createProgram=T,r.createProgramFromScripts=function(e,r,t,n,o){for(var u=j(t,n,o),i=[],a=0;a<r.length;++a){var f=g(e,r[a],e[M[a]],u.errorCallback);if(!f)return null;i.push(f)}return T(e,i,u)},r.createProgramFromSources=z,r.createProgramInfo=function(e,r,t,n,o){var u=j(t,n,o),i=!0;if(r=r.map((function(e){if(e.indexOf("\n")<0){var r=c(e);r?e=r.text:(u.errorCallback("no element with id: "+e),i=!1)}return e})),!i)return null;var a=z(e,r,u);if(!a)return null;return D(e,a)},r.createProgramInfoFromProgram=D,r.createUniformSetters=C,r.createUniformBlockSpecFromProgram=W,r.createUniformBlockInfoFromProgram=B,r.createUniformBlockInfo=function(e,r,t){return B(e,r.program,r.uniformBlockSpec,t)},r.createTransformFeedback=function(e,r,t){var n=e.createTransformFeedback();return e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,n),e.useProgram(r.program),k(e,r,t),e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null),n},r.createTransformFeedbackInfo=S,r.bindTransformFeedbackInfo=k,r.setAttributes=X,r.setBuffersAndAttributes=function(e,r,t){t.vertexArrayObject?e.bindVertexArray(t.vertexArrayObject):(X(r.attribSetters||r,t.attribs),t.indices&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indices))},r.setUniforms=function e(r,t){var n=r.uniformSetters||r;var o=arguments.length;for(var u=1;u<o;++u){var i=arguments[u];if(Array.isArray(i))for(var a=i.length,f=0;f<a;++f)e(n,i[f]);else for(var c in i){var l=n[c];l&&l(i[c])}}},r.setUniformBlock=function(e,r,t){L(e,r,t)&&e.bufferData(e.UNIFORM_BUFFER,t.array,e.DYNAMIC_DRAW)},r.setBlockUniforms=function(e,r){var t=e.uniforms;for(var n in r){var o=t[n];if(o){var u=r[n];u.length?o.set(u):o[0]=u}}},r.bindUniformBlock=L;var n=i(t(3)),o=i(t(0));function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function i(e){if(e&&e.__esModule)return e;var r=u();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(t,o,i):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}var a=o.error,f=o.warn;function c(e){return"undefined"!=typeof document&&document.getElementById?document.getElementById(e):null}var l={};function s(e,r){return l[r].bindPoint}function v(e,r){return function(t){e.uniform1i(r,t)}}function b(e,r){return function(t){e.uniform1iv(r,t)}}function y(e,r){return function(t){e.uniform2iv(r,t)}}function d(e,r){return function(t){e.uniform3iv(r,t)}}function m(e,r){return function(t){e.uniform4iv(r,t)}}function p(e,r,t,u){var i=s(0,r);return n.isWebGL2(e)?function(r){var n,a;o.isTexture(e,r)?(n=r,a=null):(n=r.texture,a=r.sampler),e.uniform1i(u,t),e.activeTexture(e.TEXTURE0+t),e.bindTexture(i,n),e.bindSampler(t,a)}:function(r){e.uniform1i(u,t),e.activeTexture(e.TEXTURE0+t),e.bindTexture(i,r)}}function x(e,r,t,u,i){for(var a=s(0,r),f=new Int32Array(i),c=0;c<i;++c)f[c]=t+c;return n.isWebGL2(e)?function(r){e.uniform1iv(u,f),r.forEach((function(r,n){var u,i;e.activeTexture(e.TEXTURE0+f[n]),o.isTexture(e,r)?(u=r,i=null):(u=r.texture,i=r.sampler),e.bindSampler(t,i),e.bindTexture(a,u)}))}:function(r){e.uniform1iv(u,f),r.forEach((function(r,t){e.activeTexture(e.TEXTURE0+f[t]),e.bindTexture(a,r)}))}}function w(e,r){return function(t){if(t.value)switch(e.disableVertexAttribArray(r),t.value.length){case 4:e.vertexAttrib4fv(r,t.value);break;case 3:e.vertexAttrib3fv(r,t.value);break;case 2:e.vertexAttrib2fv(r,t.value);break;case 1:e.vertexAttrib1fv(r,t.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else e.bindBuffer(e.ARRAY_BUFFER,t.buffer),e.enableVertexAttribArray(r),e.vertexAttribPointer(r,t.numComponents||t.size,t.type||e.FLOAT,t.normalize||!1,t.stride||0,t.offset||0),void 0!==t.divisor&&e.vertexAttribDivisor(r,t.divisor)}}function h(e,r){return function(t){if(t.value){if(e.disableVertexAttribArray(r),4!==t.value.length)throw new Error("The length of an integer constant value must be 4!");e.vertexAttrib4iv(r,t.value)}else e.bindBuffer(e.ARRAY_BUFFER,t.buffer),e.enableVertexAttribArray(r),e.vertexAttribIPointer(r,t.numComponents||t.size,t.type||e.INT,t.stride||0,t.offset||0),void 0!==t.divisor&&e.vertexAttribDivisor(r,t.divisor)}}function F(e,r){return function(t){if(t.value){if(e.disableVertexAttribArray(r),4!==t.value.length)throw new Error("The length of an unsigned integer constant value must be 4!");e.vertexAttrib4uiv(r,t.value)}else e.bindBuffer(e.ARRAY_BUFFER,t.buffer),e.enableVertexAttribArray(r),e.vertexAttribIPointer(r,t.numComponents||t.size,t.type||e.UNSIGNED_INT,t.stride||0,t.offset||0),void 0!==t.divisor&&e.vertexAttribDivisor(r,t.divisor)}}function E(e,r,t){var n=t.size,o=t.count;return function(t){e.bindBuffer(e.ARRAY_BUFFER,t.buffer);for(var u=t.size||t.numComponents||n,i=u/o,a=t.type||e.FLOAT,f=l[a].size*u,c=t.normalize||!1,s=t.offset||0,v=f/o,b=0;b<o;++b)e.enableVertexAttribArray(r+b),e.vertexAttribPointer(r+b,i,a,c,f,s+v*b),void 0!==t.divisor&&e.vertexAttribDivisor(r+b,t.divisor)}}l[5126]={Type:Float32Array,size:4,setter:function(e,r){return function(t){e.uniform1f(r,t)}},arraySetter:function(e,r){return function(t){e.uniform1fv(r,t)}}},l[35664]={Type:Float32Array,size:8,setter:function(e,r){return function(t){e.uniform2fv(r,t)}}},l[35665]={Type:Float32Array,size:12,setter:function(e,r){return function(t){e.uniform3fv(r,t)}}},l[35666]={Type:Float32Array,size:16,setter:function(e,r){return function(t){e.uniform4fv(r,t)}}},l[5124]={Type:Int32Array,size:4,setter:v,arraySetter:b},l[35667]={Type:Int32Array,size:8,setter:y},l[35668]={Type:Int32Array,size:12,setter:d},l[35669]={Type:Int32Array,size:16,setter:m},l[5125]={Type:Uint32Array,size:4,setter:function(e,r){return function(t){e.uniform1ui(r,t)}},arraySetter:function(e,r){return function(t){e.uniform1uiv(r,t)}}},l[36294]={Type:Uint32Array,size:8,setter:function(e,r){return function(t){e.uniform2uiv(r,t)}}},l[36295]={Type:Uint32Array,size:12,setter:function(e,r){return function(t){e.uniform3uiv(r,t)}}},l[36296]={Type:Uint32Array,size:16,setter:function(e,r){return function(t){e.uniform4uiv(r,t)}}},l[35670]={Type:Uint32Array,size:4,setter:v,arraySetter:b},l[35671]={Type:Uint32Array,size:8,setter:y},l[35672]={Type:Uint32Array,size:12,setter:d},l[35673]={Type:Uint32Array,size:16,setter:m},l[35674]={Type:Float32Array,size:16,setter:function(e,r){return function(t){e.uniformMatrix2fv(r,!1,t)}}},l[35675]={Type:Float32Array,size:36,setter:function(e,r){return function(t){e.uniformMatrix3fv(r,!1,t)}}},l[35676]={Type:Float32Array,size:64,setter:function(e,r){return function(t){e.uniformMatrix4fv(r,!1,t)}}},l[35685]={Type:Float32Array,size:24,setter:function(e,r){return function(t){e.uniformMatrix2x3fv(r,!1,t)}}},l[35686]={Type:Float32Array,size:32,setter:function(e,r){return function(t){e.uniformMatrix2x4fv(r,!1,t)}}},l[35687]={Type:Float32Array,size:24,setter:function(e,r){return function(t){e.uniformMatrix3x2fv(r,!1,t)}}},l[35688]={Type:Float32Array,size:48,setter:function(e,r){return function(t){e.uniformMatrix3x4fv(r,!1,t)}}},l[35689]={Type:Float32Array,size:32,setter:function(e,r){return function(t){e.uniformMatrix4x2fv(r,!1,t)}}},l[35690]={Type:Float32Array,size:48,setter:function(e,r){return function(t){e.uniformMatrix4x3fv(r,!1,t)}}},l[35678]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:3553},l[35680]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:34067},l[35679]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:32879},l[35682]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:3553},l[36289]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:35866},l[36292]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:35866},l[36293]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:34067},l[36298]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:3553},l[36299]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:32879},l[36300]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:34067},l[36303]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:35866},l[36306]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:3553},l[36307]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:32879},l[36308]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:34067},l[36311]={Type:null,size:0,setter:p,arraySetter:x,bindPoint:35866};var A={};A[5126]={size:4,setter:w},A[35664]={size:8,setter:w},A[35665]={size:12,setter:w},A[35666]={size:16,setter:w},A[5124]={size:4,setter:h},A[35667]={size:8,setter:h},A[35668]={size:12,setter:h},A[35669]={size:16,setter:h},A[5125]={size:4,setter:F},A[36294]={size:8,setter:F},A[36295]={size:12,setter:F},A[36296]={size:16,setter:F},A[35670]={size:4,setter:h},A[35671]={size:8,setter:h},A[35672]={size:12,setter:h},A[35673]={size:16,setter:h},A[35674]={size:4,setter:E,count:2},A[35675]={size:9,setter:E,count:3},A[35676]={size:16,setter:E,count:4};var O=/^[ \t]*\n/;function _(e,r,t,n){var o=n||a,u=e.createShader(t),i=0;if(O.test(r)&&(i=1,r=r.replace(O,"")),e.shaderSource(u,r),e.compileShader(u),!e.getShaderParameter(u,e.COMPILE_STATUS)){var f=e.getShaderInfoLog(u);return o(function(e,r){return r=r||0,++r,e.split("\n").map((function(e,t){return t+r+": "+e})).join("\n")}(r,i)+"\n*** Error compiling shader: "+f),e.deleteShader(u),null}return u}function j(e,r,t){var n,o;if("function"==typeof r&&(t=r,r=void 0),"function"==typeof e)t=e,e=void 0;else if(e&&!Array.isArray(e)){if(e.errorCallback)return e;var u=e;t=u.errorCallback,e=u.attribLocations,n=u.transformFeedbackVaryings,o=u.transformFeedbackMode}var i={errorCallback:t||a,transformFeedbackVaryings:n,transformFeedbackMode:o};if(e){var f={};Array.isArray(e)?e.forEach((function(e,t){f[e]=r?r[t]:t})):f=e,i.attribLocations=f}return i}var M=["VERTEX_SHADER","FRAGMENT_SHADER"];function P(e,r){return r.indexOf("frag")>=0?e.FRAGMENT_SHADER:r.indexOf("vert")>=0?e.VERTEX_SHADER:void 0}function R(e,r){r.forEach((function(r){e.deleteShader(r)}))}function T(e,r,t,n,u){for(var i=j(t,n,u),a=[],f=[],l=0;l<r.length;++l){var s=r[l];if("string"==typeof s){var v=c(s),b=v?v.text:s,y=e[M[l]];v&&v.type&&(y=P(e,v.type)||y),s=_(e,b,y,i.errorCallback),f.push(s)}o.isShader(e,s)&&a.push(s)}if(a.length!==r.length)return i.errorCallback("not enough shaders for program"),R(e,f),null;var d=e.createProgram();a.forEach((function(r){e.attachShader(d,r)})),i.attribLocations&&Object.keys(i.attribLocations).forEach((function(r){e.bindAttribLocation(d,i.attribLocations[r],r)}));var m=i.transformFeedbackVaryings;if(m&&(m.attribs&&(m=m.attribs),Array.isArray(m)||(m=Object.keys(m)),e.transformFeedbackVaryings(d,m,i.transformFeedbackMode||e.SEPARATE_ATTRIBS)),e.linkProgram(d),!e.getProgramParameter(d,e.LINK_STATUS)){var p=e.getProgramInfoLog(d);return i.errorCallback("Error in program linking:"+p),e.deleteProgram(d),R(e,f),null}return d}function g(e,r,t,n){var o,u=c(r);if(!u)throw new Error("unknown script element: ".concat(r));o=u.text;var i=t||P(e,u.type);if(!i)throw new Error("unknown shader type");return _(e,o,i,n)}function z(e,r,t,n,o){for(var u=j(t,n,o),i=[],a=0;a<r.length;++a){var f=_(e,r[a],e[M[a]],u.errorCallback);if(!f)return null;i.push(f)}return T(e,i,u)}function U(e){var r=e.name;return r.startsWith("gl_")||r.startsWith("webgl_")}function C(e,r){var t=0;function n(r,n){var o,u=e.getUniformLocation(r,n.name),i=n.size>1&&"[0]"===n.name.substr(-3),a=n.type,f=l[a];if(!f)throw new Error("unknown type: 0x".concat(a.toString(16)));if(f.bindPoint){var c=t;t+=n.size,o=i?f.arraySetter(e,a,c,u,n.size):f.setter(e,a,c,u,n.size)}else o=f.arraySetter&&i?f.arraySetter(e,u):f.setter(e,u);return o.location=u,o}for(var o={},u=e.getProgramParameter(r,e.ACTIVE_UNIFORMS),i=0;i<u;++i){var a=e.getActiveUniform(r,i);if(!U(a)){var f=a.name;"[0]"===f.substr(-3)&&(f=f.substr(0,f.length-3));var c=n(r,a);o[f]=c}}return o}function S(e,r){for(var t={},n=e.getProgramParameter(r,e.TRANSFORM_FEEDBACK_VARYINGS),o=0;o<n;++o){var u=e.getTransformFeedbackVarying(r,o);t[u.name]={index:o,type:u.type,size:u.size}}return t}function k(e,r,t){for(var n in r.transformFeedbackInfo&&(r=r.transformFeedbackInfo),t.attribs&&(t=t.attribs),t){var o=r[n];if(o){var u=t[n];u.offset?e.bindBufferRange(e.TRANSFORM_FEEDBACK_BUFFER,o.index,u.buffer,u.offset,u.size):e.bindBufferBase(e.TRANSFORM_FEEDBACK_BUFFER,o.index,u.buffer)}}}function W(e,r){for(var t=e.getProgramParameter(r,e.ACTIVE_UNIFORMS),n=[],o=[],u=0;u<t;++u){o.push(u),n.push({});var i=e.getActiveUniform(r,u);if(U(i))break;n[u].name=i.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach((function(t){var u=t[0],i=t[1];e.getActiveUniforms(r,o,e[u]).forEach((function(e,r){n[r][i]=e}))}));for(var a={},f=e.getProgramParameter(r,e.ACTIVE_UNIFORM_BLOCKS),c=0;c<f;++c){var l=e.getActiveUniformBlockName(r,c),s={index:c,usedByVertexShader:e.getActiveUniformBlockParameter(r,c,e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),usedByFragmentShader:e.getActiveUniformBlockParameter(r,c,e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),size:e.getActiveUniformBlockParameter(r,c,e.UNIFORM_BLOCK_DATA_SIZE),uniformIndices:e.getActiveUniformBlockParameter(r,c,e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)};s.used=s.usedByVertexShader||s.usedByFragmentShader,a[l]=s}return{blockSpecs:a,uniformData:n}}var I=/\[\d+\]\.$/;function B(e,r,t,n){var o=t.blockSpecs,u=t.uniformData,i=o[n];if(!i)return f("no uniform block object named:",n),{name:n,uniforms:{}};var a=new ArrayBuffer(i.size),c=e.createBuffer(),s=i.index;e.bindBuffer(e.UNIFORM_BUFFER,c),e.uniformBlockBinding(r,i.index,s);var v=n+".";I.test(v)&&(v=v.replace(I,"."));var b={};return i.uniformIndices.forEach((function(e){var r=u[e],t=l[r.type],n=t.Type,o=r.size*t.size,i=r.name;i.substr(0,v.length)===v&&(i=i.substr(v.length)),b[i]=new n(a,r.offset,o/n.BYTES_PER_ELEMENT)})),{name:n,array:a,asFloat:new Float32Array(a),buffer:c,uniforms:b}}function L(e,r,t){var n=(r.uniformBlockSpec||r).blockSpecs[t.name];if(n){var o=n.index;return e.bindBufferRange(e.UNIFORM_BUFFER,o,t.buffer,t.offset||0,t.array.byteLength),!0}return!1}function G(e,r){for(var t={},n=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES),o=0;o<n;++o){var u=e.getActiveAttrib(r,o);if(!U(u)){var i=e.getAttribLocation(r,u.name),a=A[u.type],f=a.setter(e,i,a);f.location=i,t[u.name]=f}}return t}function X(e,r){for(var t in r){var n=e[t];n&&n(r[t])}}function D(e,r){var t={program:r,uniformSetters:C(e,r),attribSetters:G(e,r)};return n.isWebGL2(e)&&(t.uniformBlockSpec=W(e,r),t.transformFeedbackInfo=S(e,r)),t}},function(e,r,t){"use strict";r.__esModule=!0,r.axisRotate=function(e,r,t,n){n=n||new f(16);var o=r[0],u=r[1],i=r[2],a=Math.sqrt(o*o+u*u+i*i),c=(o/=a)*o,l=(u/=a)*u,s=(i/=a)*i,v=Math.cos(t),b=Math.sin(t),y=1-v,d=c+(1-c)*v,m=o*u*y+i*b,p=o*i*y-u*b,x=o*u*y-i*b,w=l+(1-l)*v,h=u*i*y+o*b,F=o*i*y+u*b,E=u*i*y-o*b,A=s+(1-s)*v,O=e[0],_=e[1],j=e[2],M=e[3],P=e[4],R=e[5],T=e[6],g=e[7],z=e[8],U=e[9],C=e[10],S=e[11];n[0]=d*O+m*P+p*z,n[1]=d*_+m*R+p*U,n[2]=d*j+m*T+p*C,n[3]=d*M+m*g+p*S,n[4]=x*O+w*P+h*z,n[5]=x*_+w*R+h*U,n[6]=x*j+w*T+h*C,n[7]=x*M+w*g+h*S,n[8]=F*O+E*P+A*z,n[9]=F*_+E*R+A*U,n[10]=F*j+E*T+A*C,n[11]=F*M+E*g+A*S,e!==n&&(n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15]);return n},r.axisRotation=function(e,r,t){t=t||new f(16);var n=e[0],o=e[1],u=e[2],i=Math.sqrt(n*n+o*o+u*u),a=(n/=i)*n,c=(o/=i)*o,l=(u/=i)*u,s=Math.cos(r),v=Math.sin(r),b=1-s;return t[0]=a+(1-a)*s,t[1]=n*o*b+u*v,t[2]=n*u*b-o*v,t[3]=0,t[4]=n*o*b-u*v,t[5]=c+(1-c)*s,t[6]=o*u*b+n*v,t[7]=0,t[8]=n*u*b+o*v,t[9]=o*u*b-n*v,t[10]=l+(1-l)*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},r.copy=c,r.frustum=function(e,r,t,n,o,u,i){i=i||new f(16);var a=r-e,c=n-t,l=o-u;return i[0]=2*o/a,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=2*o/c,i[6]=0,i[7]=0,i[8]=(e+r)/a,i[9]=(n+t)/c,i[10]=u/l,i[11]=-1,i[12]=0,i[13]=0,i[14]=o*u/l,i[15]=0,i},r.getAxis=function(e,r,t){t=t||n.create();var o=4*r;return t[0]=e[o+0],t[1]=e[o+1],t[2]=e[o+2],t},r.getTranslation=function(e,r){return(r=r||n.create())[0]=e[12],r[1]=e[13],r[2]=e[14],r},r.identity=l,r.inverse=s,r.lookAt=function(e,r,t,o){o=o||new f(16);var c=u||n.create(),l=i||n.create(),s=a||n.create();return n.normalize(n.subtract(e,r,s),s),n.normalize(n.cross(t,s,c),c),n.normalize(n.cross(s,c,l),l),o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=0,o[4]=l[0],o[5]=l[1],o[6]=l[2],o[7]=0,o[8]=s[0],o[9]=s[1],o[10]=s[2],o[11]=0,o[12]=e[0],o[13]=e[1],o[14]=e[2],o[15]=1,o},r.multiply=function(e,r,t){t=t||new f(16);var n=e[0],o=e[1],u=e[2],i=e[3],a=e[4],c=e[5],l=e[6],s=e[7],v=e[8],b=e[9],y=e[10],d=e[11],m=e[12],p=e[13],x=e[14],w=e[15],h=r[0],F=r[1],E=r[2],A=r[3],O=r[4],_=r[5],j=r[6],M=r[7],P=r[8],R=r[9],T=r[10],g=r[11],z=r[12],U=r[13],C=r[14],S=r[15];return t[0]=n*h+a*F+v*E+m*A,t[1]=o*h+c*F+b*E+p*A,t[2]=u*h+l*F+y*E+x*A,t[3]=i*h+s*F+d*E+w*A,t[4]=n*O+a*_+v*j+m*M,t[5]=o*O+c*_+b*j+p*M,t[6]=u*O+l*_+y*j+x*M,t[7]=i*O+s*_+d*j+w*M,t[8]=n*P+a*R+v*T+m*g,t[9]=o*P+c*R+b*T+p*g,t[10]=u*P+l*R+y*T+x*g,t[11]=i*P+s*R+d*T+w*g,t[12]=n*z+a*U+v*C+m*S,t[13]=o*z+c*U+b*C+p*S,t[14]=u*z+l*U+y*C+x*S,t[15]=i*z+s*U+d*C+w*S,t},r.negate=function(e,r){return(r=r||new f(16))[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=-e[3],r[4]=-e[4],r[5]=-e[5],r[6]=-e[6],r[7]=-e[7],r[8]=-e[8],r[9]=-e[9],r[10]=-e[10],r[11]=-e[11],r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=-e[15],r},r.ortho=function(e,r,t,n,o,u,i){return(i=i||new f(16))[0]=2/(r-e),i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=2/(n-t),i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=2/(o-u),i[11]=0,i[12]=(r+e)/(e-r),i[13]=(n+t)/(t-n),i[14]=(u+o)/(o-u),i[15]=1,i},r.perspective=function(e,r,t,n,o){o=o||new f(16);var u=Math.tan(.5*Math.PI-.5*e),i=1/(t-n);return o[0]=u/r,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=(t+n)*i,o[11]=-1,o[12]=0,o[13]=0,o[14]=t*n*i*2,o[15]=0,o},r.rotateX=function(e,r,t){t=t||new f(16);var n=e[4],o=e[5],u=e[6],i=e[7],a=e[8],c=e[9],l=e[10],s=e[11],v=Math.cos(r),b=Math.sin(r);t[4]=v*n+b*a,t[5]=v*o+b*c,t[6]=v*u+b*l,t[7]=v*i+b*s,t[8]=v*a-b*n,t[9]=v*c-b*o,t[10]=v*l-b*u,t[11]=v*s-b*i,e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},r.rotateY=function(e,r,t){t=t||new f(16);var n=e[0],o=e[1],u=e[2],i=e[3],a=e[8],c=e[9],l=e[10],s=e[11],v=Math.cos(r),b=Math.sin(r);t[0]=v*n-b*a,t[1]=v*o-b*c,t[2]=v*u-b*l,t[3]=v*i-b*s,t[8]=v*a+b*n,t[9]=v*c+b*o,t[10]=v*l+b*u,t[11]=v*s+b*i,e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},r.rotateZ=function(e,r,t){t=t||new f(16);var n=e[0],o=e[1],u=e[2],i=e[3],a=e[4],c=e[5],l=e[6],s=e[7],v=Math.cos(r),b=Math.sin(r);t[0]=v*n+b*a,t[1]=v*o+b*c,t[2]=v*u+b*l,t[3]=v*i+b*s,t[4]=v*a-b*n,t[5]=v*c-b*o,t[6]=v*l-b*u,t[7]=v*s-b*i,e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},r.rotationX=function(e,r){r=r||new f(16);var t=Math.cos(e),n=Math.sin(e);return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=t,r[6]=n,r[7]=0,r[8]=0,r[9]=-n,r[10]=t,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},r.rotationY=function(e,r){r=r||new f(16);var t=Math.cos(e),n=Math.sin(e);return r[0]=t,r[1]=0,r[2]=-n,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=n,r[9]=0,r[10]=t,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},r.rotationZ=function(e,r){r=r||new f(16);var t=Math.cos(e),n=Math.sin(e);return r[0]=t,r[1]=n,r[2]=0,r[3]=0,r[4]=-n,r[5]=t,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},r.scale=function(e,r,t){t=t||new f(16);var n=r[0],o=r[1],u=r[2];t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=n*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=o*e[6],t[7]=o*e[7],t[8]=u*e[8],t[9]=u*e[9],t[10]=u*e[10],t[11]=u*e[11],e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},r.scaling=function(e,r){return(r=r||new f(16))[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=e[1],r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=e[2],r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},r.setAxis=function(e,r,t,n){n!==e&&(n=c(e,n));var o=4*t;return n[o+0]=r[0],n[o+1]=r[1],n[o+2]=r[2],n},r.setDefaultType=function(e){var r=f;return f=e,r},r.setTranslation=function(e,r,t){t=t||l(),e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11]);return t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t},r.transformDirection=function(e,r,t){t=t||n.create();var o=r[0],u=r[1],i=r[2];return t[0]=o*e[0]+u*e[4]+i*e[8],t[1]=o*e[1]+u*e[5]+i*e[9],t[2]=o*e[2]+u*e[6]+i*e[10],t},r.transformNormal=function(e,r,t){t=t||n.create();var o=s(e),u=r[0],i=r[1],a=r[2];return t[0]=u*o[0]+i*o[1]+a*o[2],t[1]=u*o[4]+i*o[5]+a*o[6],t[2]=u*o[8]+i*o[9]+a*o[10],t},r.transformPoint=function(e,r,t){t=t||n.create();var o=r[0],u=r[1],i=r[2],a=o*e[3]+u*e[7]+i*e[11]+e[15];return t[0]=(o*e[0]+u*e[4]+i*e[8]+e[12])/a,t[1]=(o*e[1]+u*e[5]+i*e[9]+e[13])/a,t[2]=(o*e[2]+u*e[6]+i*e[10]+e[14])/a,t},r.translate=function(e,r,t){t=t||new f(16);var n=r[0],o=r[1],u=r[2],i=e[0],a=e[1],c=e[2],l=e[3],s=e[4],v=e[5],b=e[6],y=e[7],d=e[8],m=e[9],p=e[10],x=e[11],w=e[12],h=e[13],F=e[14],E=e[15];e!==t&&(t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=s,t[5]=v,t[6]=b,t[7]=y,t[8]=d,t[9]=m,t[10]=p,t[11]=x);return t[12]=i*n+s*o+d*u+w,t[13]=a*n+v*o+m*u+h,t[14]=c*n+b*o+p*u+F,t[15]=l*n+y*o+x*u+E,t},r.translation=function(e,r){return(r=r||new f(16))[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=e[0],r[13]=e[1],r[14]=e[2],r[15]=1,r},r.transpose=function(e,r){if((r=r||new f(16))===e){var t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,r}var n=e[0],o=e[1],u=e[2],i=e[3],a=e[4],c=e[5],l=e[6],s=e[7],v=e[8],b=e[9],y=e[10],d=e[11],m=e[12],p=e[13],x=e[14],w=e[15];return r[0]=n,r[1]=a,r[2]=v,r[3]=m,r[4]=o,r[5]=c,r[6]=b,r[7]=p,r[8]=u,r[9]=l,r[10]=y,r[11]=x,r[12]=i,r[13]=s,r[14]=d,r[15]=w,r};var n=function(e){if(e&&e.__esModule)return e;var r=o();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(Object.prototype.hasOwnProperty.call(e,u)){var i=n?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(t,u,i):t[u]=e[u]}}t.default=e,r&&r.set(e,t);return t}(t(2));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}var u,i,a,f=Float32Array;function c(e,r){return(r=r||new f(16))[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function l(e){return(e=e||new f(16))[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function s(e,r){r=r||new f(16);var t=e[0],n=e[1],o=e[2],u=e[3],i=e[4],a=e[5],c=e[6],l=e[7],s=e[8],v=e[9],b=e[10],y=e[11],d=e[12],m=e[13],p=e[14],x=e[15],w=b*x,h=p*y,F=c*x,E=p*l,A=c*y,O=b*l,_=o*x,j=p*u,M=o*y,P=b*u,R=o*l,T=c*u,g=s*m,z=d*v,U=i*m,C=d*a,S=i*v,k=s*a,W=t*m,I=d*n,B=t*v,L=s*n,G=t*a,X=i*n,D=w*a+E*v+A*m-(h*a+F*v+O*m),N=h*n+_*v+P*m-(w*n+j*v+M*m),H=F*n+j*a+R*m-(E*n+_*a+T*m),q=O*n+M*a+T*v-(A*n+P*a+R*v),V=1/(t*D+i*N+s*H+d*q);return r[0]=V*D,r[1]=V*N,r[2]=V*H,r[3]=V*q,r[4]=V*(h*i+F*s+O*d-(w*i+E*s+A*d)),r[5]=V*(w*t+j*s+M*d-(h*t+_*s+P*d)),r[6]=V*(E*t+_*i+T*d-(F*t+j*i+R*d)),r[7]=V*(A*t+P*i+R*s-(O*t+M*i+T*s)),r[8]=V*(g*l+C*y+S*x-(z*l+U*y+k*x)),r[9]=V*(z*u+W*y+L*x-(g*u+I*y+B*x)),r[10]=V*(U*u+I*l+G*x-(C*u+W*l+X*x)),r[11]=V*(k*u+B*l+X*y-(S*u+L*l+G*y)),r[12]=V*(U*b+k*p+z*c-(S*p+g*c+C*b)),r[13]=V*(B*p+g*o+I*b-(W*b+L*p+z*o)),r[14]=V*(W*c+X*p+C*o-(G*p+U*o+I*c)),r[15]=V*(G*b+S*o+L*c-(B*c+X*b+k*o)),r}},function(e,r,t){"use strict";r.__esModule=!0,r.createAttribsFromArrays=p,r.createBuffersFromArrays=function(e,r){var t={};Object.keys(r).forEach((function(n){t[n]=w(e,r[n],n)})),r.indices?(t.numElements=r.indices.length,t.elementType=n.getGLTypeForTypedArray(m(r.indices),"indices")):t.numElements=function(e){var r,t;for(t=0;t<x.length&&!((r=x[t])in e);++t);t===x.length&&(r=Object.keys(e)[0]);var n=e[r],o=s(n).length,u=d(n,r),i=o/u;if(o%u>0)throw new Error("numComponents ".concat(u," not correct for length ").concat(o));return i}(r);return t},r.createBufferFromArray=w,r.createBufferFromTypedArray=c,r.createBufferInfoFromArrays=function(e,r,t){var o=p(e,r),u=Object.assign({},t||{});u.attribs=Object.assign({},t?t.attribs:{},o);var i=r.indices;if(i){var f=m(i,"indices");u.indices=c(e,f,e.ELEMENT_ARRAY_BUFFER),u.numElements=f.length,u.elementType=n.getGLTypeForTypedArray(f)}else u.numElements||(u.numElements=function(e,r){var t,n;for(n=0;n<x.length&&!((t=x[n])in r)&&!((t=a.attribPrefix+t)in r);++n);n===x.length&&(t=Object.keys(r)[0]);var o=r[t];e.bindBuffer(e.ARRAY_BUFFER,o.buffer);var u=e.getBufferParameter(e.ARRAY_BUFFER,e.BUFFER_SIZE);e.bindBuffer(e.ARRAY_BUFFER,null);var i=function(e,r){return r===e.BYTE?1:r===e.UNSIGNED_BYTE?1:r===e.SHORT?2:r===e.UNSIGNED_SHORT?2:r===e.INT?4:r===e.UNSIGNED_INT?4:r===e.FLOAT?4:0}(e,o.type),f=u/i,c=o.numComponents||o.size,l=f/c;if(l%1!=0)throw new Error("numComponents ".concat(c," not correct for length ").concat(length));return l}(e,u.attribs));return u},r.setAttribInfoBufferFromArray=function(e,r,t,n){t=m(t),void 0!==n?(e.bindBuffer(e.ARRAY_BUFFER,r.buffer),e.bufferSubData(e.ARRAY_BUFFER,n,t)):f(e,e.ARRAY_BUFFER,r.buffer,t,r.drawType)},r.setAttributePrefix=function(e){a.attribPrefix=e},r.setAttributeDefaults_=function(e){o.copyExistingProperties(e,a)},r.getNumComponents_=d,r.getArray_=s;var n=i(t(1)),o=i(t(0));function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function i(e){if(e&&e.__esModule)return e;var r=u();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(t,o,i):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}var a={attribPrefix:""};function f(e,r,t,n,o){e.bindBuffer(r,t),e.bufferData(r,n,o||e.STATIC_DRAW)}function c(e,r,t,n){if(o.isBuffer(e,r))return r;t=t||e.ARRAY_BUFFER;var u=e.createBuffer();return f(e,t,u,r,n),u}function l(e){return"indices"===e}function s(e){return e.length?e:e.data}var v=/coord|texture/i,b=/color|colour/i;function y(e,r){var t;if(r%(t=v.test(e)?2:b.test(e)?4:3)>0)throw new Error("Can not guess numComponents for attribute '".concat(e,"'. Tried ").concat(t," but ").concat(r," values is not evenly divisible by ").concat(t,". You should specify it."));return t}function d(e,r){return e.numComponents||e.size||y(r,s(e).length)}function m(e,r){if(n.isArrayBuffer(e))return e;if(n.isArrayBuffer(e.data))return e.data;Array.isArray(e)&&(e={data:e});var t=e.type;return t||(t=l(r)?Uint16Array:Float32Array),new t(e.data)}function p(e,r){var t={};return Object.keys(r).forEach((function(o){if(!l(o)){var u=r[o],i=u.attrib||u.name||u.attribName||a.attribPrefix+o;if(u.value){if(!Array.isArray(u.value)&&!n.isArrayBuffer(u.value))throw new Error("array.value is not array or typedarray");t[i]={value:u.value}}else{var f,s,v,b;if(u.buffer&&u.buffer instanceof WebGLBuffer)f=u.buffer,b=u.numComponents||u.size,s=u.type,v=u.normalize;else if("number"==typeof u||"number"==typeof u.data){var p=u.data||u,x=u.type||Float32Array,w=p*x.BYTES_PER_ELEMENT;s=n.getGLTypeForTypedArrayType(x),v=void 0!==u.normalize?u.normalize:(F=x)===Int8Array||F===Uint8Array,b=u.numComponents||u.size||y(o,p),f=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,f),e.bufferData(e.ARRAY_BUFFER,w,u.drawType||e.STATIC_DRAW)}else{var h=m(u,o);f=c(e,h,void 0,u.drawType),s=n.getGLTypeForTypedArray(h),v=void 0!==u.normalize?u.normalize:function(e){return e instanceof Int8Array||e instanceof Uint8Array}(h),b=d(u,o)}t[i]={buffer:f,numComponents:b,type:s,normalize:v,stride:u.stride||0,offset:u.offset||0,divisor:void 0===u.divisor?void 0:u.divisor,drawType:u.drawType}}}var F})),e.bindBuffer(e.ARRAY_BUFFER,null),t}var x=["position","positions","a_position"];function w(e,r,t){var n="indices"===t?e.ELEMENT_ARRAY_BUFFER:e.ARRAY_BUFFER;return c(e,m(r,t),n)}},function(e,r,t){"use strict";r.__esModule=!0,r.setTextureDefaults_=function(e){u.copyExistingProperties(e,c),e.textureColor&&Qe(e.textureColor)},r.createSampler=fr,r.createSamplers=function(e,r){var t={};return Object.keys(r).forEach((function(n){t[n]=fr(e,r[n])})),t},r.setSamplerParameters=ar,r.createTexture=Or,r.setEmptyTexture=Ar,r.setTextureFromArray=Er,r.loadTextureFromUrl=wr,r.setTextureFromElement=br,r.setTextureFilteringForSize=cr,r.setTextureParameters=ir,r.setDefaultTextureColor=Qe,r.createTextures=function(e,r,t){t=t||yr;var n=0,o=[],u={},i={};function a(){0===n&&setTimeout((function(){t(o.length?o:void 0,u,i)}),0)}return Object.keys(r).forEach((function(t){var f,c,l=r[t];("string"==typeof(c=l.src)||Array.isArray(c)&&"string"==typeof c[0])&&(f=function(e,r,u){i[t]=u,--n,e&&o.push(e),a()},++n),u[t]=Or(e,l,f)})),a(),u},r.resizeTexture=function(e,r,t,n,o,u){n=n||t.width,o=o||t.height,u=u||t.depth;var i=t.target||e.TEXTURE_2D;e.bindTexture(i,r);var a,f=t.level||0,c=t.internalFormat||t.format||e.RGBA,s=Ve(c),v=t.format||s.format,b=t.src;a=b&&(l(b)||Array.isArray(b)&&"number"==typeof b[0])?t.type||$e(e,b,s.type):t.type||s.type;if(i===e.TEXTURE_CUBE_MAP)for(var y=0;y<6;++y)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+y,f,c,n,o,0,v,a,null);else i===e.TEXTURE_3D||i===e.TEXTURE_2D_ARRAY?e.texImage3D(i,f,c,n,o,u,0,v,a,null):e.texImage2D(i,f,c,n,o,0,v,a,null)},r.canGenerateMipmap=Ke,r.canFilter=Ze,r.getNumComponentsForFormat=function(e){var r=De[e];if(!r)throw"unknown format: "+e;return r.u},r.getBytesPerElementForInternalFormat=qe,r.getFormatAndTypeForInternalFormat=Ve;var n=a(t(3)),o=a(t(1)),u=a(t(0));function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function a(e){if(e&&e.__esModule)return e;var r=i();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var u=n?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(t,o,u):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}var f,c={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},l=o.isArrayBuffer;function s(){return f=f||("undefined"!=typeof document&&document.createElement?document.createElement("canvas").getContext("2d"):null)}var v,b=6406,y=6407,d=6408,m=6409,p=6410,x=6402,w=34041,h=33321,F=36756,E=33325,A=33326,O=33330,_=33329,j=33338,M=33337,P=33340,R=33339,T=33323,g=36757,z=33327,U=33328,C=33336,S=33335,k=33332,W=33331,I=33334,B=33333,L=32849,G=35905,X=36194,D=36758,N=35898,H=35901,q=34843,V=34837,Y=36221,K=36239,Z=36215,$=36233,J=36209,Q=36227,ee=32856,re=35907,te=36759,ne=32855,oe=32854,ue=32857,ie=34842,ae=34836,fe=36220,ce=36238,le=36975,se=36214,ve=36232,be=36226,ye=36208,de=33189,me=33190,pe=36012,xe=36013,we=35056,he=5120,Fe=5121,Ee=5122,Ae=5123,Oe=5124,_e=5125,je=5126,Me=32819,Pe=32820,Re=33635,Te=5131,ge=36193,ze=33640,Ue=35899,Ce=35902,Se=36269,ke=34042,We=33319,Ie=33320,Be=6403,Le=36244,Ge=36248,Xe=36249,De={},Ne=De;function He(e){if(!v){var r={};r[b]={v:b,h:!0,F:!0,A:[1,2,2,4],type:[Fe,Te,ge,je]},r[m]={v:m,h:!0,F:!0,A:[1,2,2,4],type:[Fe,Te,ge,je]},r[p]={v:p,h:!0,F:!0,A:[2,4,4,8],type:[Fe,Te,ge,je]},r[y]={v:y,h:!0,F:!0,A:[3,6,6,12,2],type:[Fe,Te,ge,je,Re]},r[d]={v:d,h:!0,F:!0,A:[4,8,8,16,2,2],type:[Fe,Te,ge,je,Me,Pe]},r[h]={v:Be,h:!0,F:!0,A:[1],type:[Fe]},r[F]={v:Be,h:!1,F:!0,A:[1],type:[he]},r[E]={v:Be,h:!1,F:!0,A:[4,2],type:[je,Te]},r[A]={v:Be,h:!1,F:!1,A:[4],type:[je]},r[O]={v:Le,h:!0,F:!1,A:[1],type:[Fe]},r[_]={v:Le,h:!0,F:!1,A:[1],type:[he]},r[k]={v:Le,h:!0,F:!1,A:[2],type:[Ae]},r[W]={v:Le,h:!0,F:!1,A:[2],type:[Ee]},r[I]={v:Le,h:!0,F:!1,A:[4],type:[_e]},r[B]={v:Le,h:!0,F:!1,A:[4],type:[Oe]},r[T]={v:We,h:!0,F:!0,A:[2],type:[Fe]},r[g]={v:We,h:!1,F:!0,A:[2],type:[he]},r[z]={v:We,h:!1,F:!0,A:[8,4],type:[je,Te]},r[U]={v:We,h:!1,F:!1,A:[8],type:[je]},r[C]={v:Ie,h:!0,F:!1,A:[2],type:[Fe]},r[S]={v:Ie,h:!0,F:!1,A:[2],type:[he]},r[j]={v:Ie,h:!0,F:!1,A:[4],type:[Ae]},r[M]={v:Ie,h:!0,F:!1,A:[4],type:[Ee]},r[P]={v:Ie,h:!0,F:!1,A:[8],type:[_e]},r[R]={v:Ie,h:!0,F:!1,A:[8],type:[Oe]},r[L]={v:y,h:!0,F:!0,A:[3],type:[Fe]},r[G]={v:y,h:!1,F:!0,A:[3],type:[Fe]},r[X]={v:y,h:!0,F:!0,A:[3,2],type:[Fe,Re]},r[D]={v:y,h:!1,F:!0,A:[3],type:[he]},r[N]={v:y,h:!1,F:!0,A:[12,6,4],type:[je,Te,Ue]},r[H]={v:y,h:!1,F:!0,A:[12,6,4],type:[je,Te,Ce]},r[q]={v:y,h:!1,F:!0,A:[12,6],type:[je,Te]},r[V]={v:y,h:!1,F:!1,A:[12],type:[je]},r[Y]={v:Ge,h:!1,F:!1,A:[3],type:[Fe]},r[K]={v:Ge,h:!1,F:!1,A:[3],type:[he]},r[Z]={v:Ge,h:!1,F:!1,A:[6],type:[Ae]},r[$]={v:Ge,h:!1,F:!1,A:[6],type:[Ee]},r[J]={v:Ge,h:!1,F:!1,A:[12],type:[_e]},r[Q]={v:Ge,h:!1,F:!1,A:[12],type:[Oe]},r[ee]={v:d,h:!0,F:!0,A:[4],type:[Fe]},r[re]={v:d,h:!0,F:!0,A:[4],type:[Fe]},r[te]={v:d,h:!1,F:!0,A:[4],type:[he]},r[ne]={v:d,h:!0,F:!0,A:[4,2,4],type:[Fe,Pe,ze]},r[oe]={v:d,h:!0,F:!0,A:[4,2],type:[Fe,Me]},r[ue]={v:d,h:!0,F:!0,A:[4],type:[ze]},r[ie]={v:d,h:!1,F:!0,A:[16,8],type:[je,Te]},r[ae]={v:d,h:!1,F:!1,A:[16],type:[je]},r[fe]={v:Xe,h:!0,F:!1,A:[4],type:[Fe]},r[ce]={v:Xe,h:!0,F:!1,A:[4],type:[he]},r[le]={v:Xe,h:!0,F:!1,A:[4],type:[ze]},r[se]={v:Xe,h:!0,F:!1,A:[8],type:[Ae]},r[ve]={v:Xe,h:!0,F:!1,A:[8],type:[Ee]},r[be]={v:Xe,h:!0,F:!1,A:[16],type:[Oe]},r[ye]={v:Xe,h:!0,F:!1,A:[16],type:[_e]},r[de]={v:x,h:!0,F:!1,A:[2,4],type:[Ae,_e]},r[me]={v:x,h:!0,F:!1,A:[4],type:[_e]},r[pe]={v:x,h:!0,F:!1,A:[4],type:[je]},r[we]={v:w,h:!0,F:!1,A:[4],type:[ke]},r[xe]={v:w,h:!0,F:!1,A:[4],type:[Se]},Object.keys(r).forEach((function(e){var t=r[e];t.bytesPerElementMap={},t.A.forEach((function(e,r){var n=t.type[r];t.bytesPerElementMap[n]=e}))})),v=r}return v[e]}function qe(e,r){var t=He(e);if(!t)throw"unknown internal format";var n=t.bytesPerElementMap[r];if(void 0===n)throw"unknown internal format";return n}function Ve(e){var r=He(e);if(!r)throw"unknown internal format";return{format:r.v,type:r.type[0]}}function Ye(e){return 0==(e&e-1)}function Ke(e,r,t,o){if(!n.isWebGL2(e))return Ye(r)&&Ye(t);var u=He(o);if(!u)throw"unknown internal format";return u.h&&u.F}function Ze(e){var r=He(e);if(!r)throw"unknown internal format";return r.F}function $e(e,r,t){return l(r)?o.getGLTypeForTypedArray(r):t||e.UNSIGNED_BYTE}function Je(e,r,t,n,o){if(o%1!=0)throw"can't guess dimensions";if(t||n){if(n){if(!t&&(t=o/n)%1)throw"can't guess dimensions"}else if((n=o/t)%1)throw"can't guess dimensions"}else{var u=Math.sqrt(o/(r===e.TEXTURE_CUBE_MAP?6:1));u%1==0?(t=u,n=u):(t=o,n=1)}return{width:t,height:n}}function Qe(e){c.textureColor=new Uint8Array([255*e[0],255*e[1],255*e[2],255*e[3]])}Ne[b]={u:1},Ne[m]={u:1},Ne[p]={u:2},Ne[y]={u:3},Ne[d]={u:4},Ne[Be]={u:1},Ne[Le]={u:1},Ne[We]={u:2},Ne[Ie]={u:2},Ne[y]={u:3},Ne[Ge]={u:3},Ne[d]={u:4},Ne[Xe]={u:4},Ne[x]={u:1},Ne[w]={u:2};var er={};function rr(e,r){void 0!==r.colorspaceConversion&&(er.colorspaceConversion=e.getParameter(e.UNPACK_COLORSPACE_CONVERSION_WEBGL),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.colorspaceConversion)),void 0!==r.premultiplyAlpha&&(er.premultiplyAlpha=e.getParameter(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha)),void 0!==r.flipY&&(er.flipY=e.getParameter(e.UNPACK_FLIP_Y_WEBGL),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,r.flipY))}function tr(e,r){void 0!==r.colorspaceConversion&&e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,er.colorspaceConversion),void 0!==r.premultiplyAlpha&&e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,er.premultiplyAlpha),void 0!==r.flipY&&e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,er.flipY)}function nr(e){er.unpackAlignment=e.getParameter(e.UNPACK_ALIGNMENT),n.isWebGL2(e)&&(er.unpackRowLength=e.getParameter(e.UNPACK_ROW_LENGTH),er.unpackImageHeight=e.getParameter(e.UNPACK_IMAGE_HEIGHT),er.unpackSkipPixels=e.getParameter(e.UNPACK_SKIP_PIXELS),er.unpackSkipRows=e.getParameter(e.UNPACK_SKIP_ROWS),er.unpackSkipImages=e.getParameter(e.UNPACK_SKIP_IMAGES))}function or(e){e.pixelStorei(e.UNPACK_ALIGNMENT,er.unpackAlignment),n.isWebGL2(e)&&(e.pixelStorei(e.UNPACK_ROW_LENGTH,er.unpackRowLength),e.pixelStorei(e.UNPACK_IMAGE_HEIGHT,er.unpackImageHeight),e.pixelStorei(e.UNPACK_SKIP_PIXELS,er.unpackSkipPixels),e.pixelStorei(e.UNPACK_SKIP_ROWS,er.unpackSkipRows),e.pixelStorei(e.UNPACK_SKIP_IMAGES,er.unpackSkipImages))}function ur(e,r,t,n){n.minMag&&(t.call(e,r,e.TEXTURE_MIN_FILTER,n.minMag),t.call(e,r,e.TEXTURE_MAG_FILTER,n.minMag)),n.min&&t.call(e,r,e.TEXTURE_MIN_FILTER,n.min),n.mag&&t.call(e,r,e.TEXTURE_MAG_FILTER,n.mag),n.wrap&&(t.call(e,r,e.TEXTURE_WRAP_S,n.wrap),t.call(e,r,e.TEXTURE_WRAP_T,n.wrap),(r===e.TEXTURE_3D||u.isSampler(e,r))&&t.call(e,r,e.TEXTURE_WRAP_R,n.wrap)),n.wrapR&&t.call(e,r,e.TEXTURE_WRAP_R,n.wrapR),n.wrapS&&t.call(e,r,e.TEXTURE_WRAP_S,n.wrapS),n.wrapT&&t.call(e,r,e.TEXTURE_WRAP_T,n.wrapT),n.minLod&&t.call(e,r,e.TEXTURE_MIN_LOD,n.minLod),n.maxLod&&t.call(e,r,e.TEXTURE_MAX_LOD,n.maxLod),n.baseLevel&&t.call(e,r,e.TEXTURE_BASE_LEVEL,n.baseLevel),n.maxLevel&&t.call(e,r,e.TEXTURE_MAX_LEVEL,n.maxLevel)}function ir(e,r,t){var n=t.target||e.TEXTURE_2D;e.bindTexture(n,r),ur(e,n,e.texParameteri,t)}function ar(e,r,t){ur(e,r,e.samplerParameteri,t)}function fr(e,r){var t=e.createSampler();return ar(e,t,r),t}function cr(e,r,t,n,o,u,i){t=t||c.textureOptions,u=u||e.RGBA,i=i||e.UNSIGNED_BYTE;var a=t.target||e.TEXTURE_2D;if(n=n||t.width,o=o||t.height,e.bindTexture(a,r),Ke(e,n,o,u))e.generateMipmap(a);else{var f=Ze(u)?e.LINEAR:e.NEAREST;e.texParameteri(a,e.TEXTURE_MIN_FILTER,f),e.texParameteri(a,e.TEXTURE_MAG_FILTER,f),e.texParameteri(a,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(a,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}}function lr(e){return!0===e.auto||void 0===e.auto&&void 0===e.level}function sr(e,r){return(r=r||{}).cubeFaceOrder||[e.TEXTURE_CUBE_MAP_POSITIVE_X,e.TEXTURE_CUBE_MAP_NEGATIVE_X,e.TEXTURE_CUBE_MAP_POSITIVE_Y,e.TEXTURE_CUBE_MAP_NEGATIVE_Y,e.TEXTURE_CUBE_MAP_POSITIVE_Z,e.TEXTURE_CUBE_MAP_NEGATIVE_Z]}function vr(e,r){var t=sr(e,r).map((function(e,r){return{face:e,ndx:r}}));return t.sort((function(e,r){return e.face-r.face})),t}function br(e,r,t,n){var o=(n=n||c.textureOptions).target||e.TEXTURE_2D,u=n.level||0,i=t.width,a=t.height,f=n.internalFormat||n.format||e.RGBA,l=Ve(f),v=n.format||l.format,b=n.type||l.type;if(rr(e,n),e.bindTexture(o,r),o===e.TEXTURE_CUBE_MAP){var y,d,m=t.width,p=t.height;if(m/6===p)y=p,d=[0,0,1,0,2,0,3,0,4,0,5,0];else if(p/6===m)y=m,d=[0,0,0,1,0,2,0,3,0,4,0,5];else if(m/3==p/2)y=m/3,d=[0,0,1,0,2,0,0,1,1,1,2,1];else{if(m/2!=p/3)throw"can't figure out cube map from element: "+(t.src?t.src:t.nodeName);y=m/2,d=[0,0,1,0,0,1,1,1,0,2,1,2]}var x=s();x?(x.canvas.width=y,x.canvas.height=y,i=y,a=y,vr(e,n).forEach((function(r){var n=d[2*r.ndx+0]*y,o=d[2*r.ndx+1]*y;x.drawImage(t,n,o,y,y,0,0,y,y),e.texImage2D(r.face,u,f,v,b,x.canvas)})),x.canvas.width=1,x.canvas.height=1):"undefined"!=typeof createImageBitmap&&(i=y,a=y,vr(e,n).forEach((function(c){var l=d[2*c.ndx+0]*y,s=d[2*c.ndx+1]*y;e.texImage2D(c.face,u,f,y,y,0,v,b,null),createImageBitmap(t,l,s,y,y,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then((function(t){rr(e,n),e.bindTexture(o,r),e.texImage2D(c.face,u,f,v,b,t),tr(e,n),lr(n)&&cr(e,r,n,i,a,f,b)}))})))}else if(o===e.TEXTURE_3D||o===e.TEXTURE_2D_ARRAY){var w=Math.min(t.width,t.height),h=Math.max(t.width,t.height),F=h/w;if(F%1!=0)throw"can not compute 3D dimensions of element";var E=t.width===h?1:0,A=t.height===h?1:0;nr(e),e.pixelStorei(e.UNPACK_ALIGNMENT,1),e.pixelStorei(e.UNPACK_ROW_LENGTH,t.width),e.pixelStorei(e.UNPACK_IMAGE_HEIGHT,0),e.pixelStorei(e.UNPACK_SKIP_IMAGES,0),e.texImage3D(o,u,f,w,w,w,0,v,b,null);for(var O=0;O<F;++O){var _=O*w*E,j=O*w*A;e.pixelStorei(e.UNPACK_SKIP_PIXELS,_),e.pixelStorei(e.UNPACK_SKIP_ROWS,j),e.texSubImage3D(o,u,0,0,O,w,w,1,v,b,t)}or(e)}else e.texImage2D(o,u,f,v,b,t);tr(e,n),lr(n)&&cr(e,r,n,i,a,f,b),ir(e,r,n)}function yr(){}function dr(e,r){return void 0!==r||function(e){if("undefined"!=typeof document){var r=document.createElement("a");return r.href=e,r.hostname===location.hostname&&r.port===location.port&&r.protocol===location.protocol}var t=new URL(location.href).origin;return new URL(e,location.href).origin===t}(e)?r:"anonymous"}function mr(e){return"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof ImageData&&e instanceof ImageData||"undefined"!=typeof HTMLElement&&e instanceof HTMLElement}function pr(e,r,t){return mr(e)?(setTimeout((function(){t(null,e)})),e):function(e,r,t){var n;if(t=t||yr,r=void 0!==r?r:c.crossOrigin,r=dr(e,r),"undefined"!=typeof Image){n=new Image,void 0!==r&&(n.crossOrigin=r);var o=function(){n.removeEventListener("error",i),n.removeEventListener("load",a),n=null},i=function(){var r="couldn't load image: "+e;u.error(r),t(r,n),o()},a=function(){t(null,n),o()};return n.addEventListener("error",i),n.addEventListener("load",a),n.src=e,n}if("undefined"!=typeof ImageBitmap){var f,l,s=function(){t(f,l)},v={};r&&(v.mode="cors"),fetch(e,v).then((function(e){if(!e.ok)throw e;return e.blob()})).then((function(e){return createImageBitmap(e,{premultiplyAlpha:"none",colorSpaceConversion:"none"})})).then((function(e){l=e,setTimeout(s)})).catch((function(e){f=e,setTimeout(s)})),n=null}return n}(e,r,t)}function xr(e,r,t){var n=(t=t||c.textureOptions).target||e.TEXTURE_2D;if(e.bindTexture(n,r),!1!==t.color){var o=function(e){return e=e||c.textureColor,l(e)?e:new Uint8Array([255*e[0],255*e[1],255*e[2],255*e[3]])}(t.color);if(n===e.TEXTURE_CUBE_MAP)for(var u=0;u<6;++u)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+u,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,o);else n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY?e.texImage3D(n,0,e.RGBA,1,1,1,0,e.RGBA,e.UNSIGNED_BYTE,o):e.texImage2D(n,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,o)}}function wr(e,r,t,n){return n=n||yr,t=t||c.textureOptions,xr(e,r,t),pr((t=Object.assign({},t)).src,t.crossOrigin,(function(o,u){o?n(o,r,u):(br(e,r,u,t),n(null,r,u))}))}function hr(e,r,t,n){n=n||yr;var o=t.src;if(6!==o.length)throw"there must be 6 urls for a cubemap";var u=t.level||0,i=t.internalFormat||t.format||e.RGBA,a=Ve(i),f=t.format||a.format,c=t.type||e.UNSIGNED_BYTE,l=t.target||e.TEXTURE_2D;if(l!==e.TEXTURE_CUBE_MAP)throw"target must be TEXTURE_CUBE_MAP";xr(e,r,t),t=Object.assign({},t);var s,v=6,b=[],y=sr(e,t);s=o.map((function(o,a){return pr(o,t.crossOrigin,(d=y[a],function(o,a){--v,o?b.push(o):a.width!==a.height?b.push("cubemap face img is not a square: "+a.src):(rr(e,t),e.bindTexture(l,r),5===v?sr(e).forEach((function(r){e.texImage2D(r,u,i,f,c,a)})):e.texImage2D(d,u,i,f,c,a),tr(e,t),lr(t)&&e.generateMipmap(l)),0===v&&n(b.length?b:void 0,r,s)}));var d}))}function Fr(e,r,t,n){n=n||yr;var o=t.src,u=t.internalFormat||t.format||e.RGBA,i=Ve(u),a=t.format||i.format,f=t.type||e.UNSIGNED_BYTE,c=t.target||e.TEXTURE_2D_ARRAY;if(c!==e.TEXTURE_3D&&c!==e.TEXTURE_2D_ARRAY)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";xr(e,r,t),t=Object.assign({},t);var l,v=o.length,b=[],y=t.level||0,d=t.width,m=t.height,p=o.length,x=!0;l=o.map((function(o,i){return pr(o,t.crossOrigin,(w=i,function(o,i){if(--v,o)b.push(o);else{if(rr(e,t),e.bindTexture(c,r),x){x=!1,d=t.width||i.width,m=t.height||i.height,e.texImage3D(c,y,u,d,m,p,0,a,f,null);for(var h=0;h<p;++h)e.texSubImage3D(c,y,0,0,h,d,m,1,a,f,i)}else{var F,E=i;i.width===d&&i.height===m||(E=(F=s()).canvas,F.canvas.width=d,F.canvas.height=m,F.drawImage(i,0,0,d,m)),e.texSubImage3D(c,y,0,0,w,d,m,1,a,f,E),F&&E===F.canvas&&(F.canvas.width=0,F.canvas.height=0)}tr(e,t),lr(t)&&e.generateMipmap(c)}0===v&&n(b.length?b:void 0,r,l)}));var w}))}function Er(e,r,t,u){var i=(u=u||c.textureOptions).target||e.TEXTURE_2D;e.bindTexture(i,r);var a=u.width,f=u.height,s=u.depth,v=u.level||0,b=u.internalFormat||u.format||e.RGBA,y=Ve(b),d=u.format||y.format,m=u.type||$e(e,t,y.type);if(l(t))t instanceof Uint8ClampedArray&&(t=new Uint8Array(t.buffer));else{var p=o.getTypedArrayTypeForGLType(m);t=new p(t)}var x,w=qe(b,m),h=t.byteLength/w;if(h%1)throw"length wrong size for format: "+n.glEnumToString(e,d);if(i===e.TEXTURE_3D||i===e.TEXTURE_2D_ARRAY)if(a||f||s)!a||f&&s?!f||a&&s?(x=Je(e,i,a,f,h/s),a=x.width,f=x.height):(x=Je(e,i,a,s,h/f),a=x.width,s=x.height):(x=Je(e,i,f,s,h/a),f=x.width,s=x.height);else{var F=Math.cbrt(h);if(F%1!=0)throw"can't guess cube size of array of numElements: "+h;a=F,f=F,s=F}else x=Je(e,i,a,f,h),a=x.width,f=x.height;if(nr(e),e.pixelStorei(e.UNPACK_ALIGNMENT,u.unpackAlignment||1),rr(e,u),i===e.TEXTURE_CUBE_MAP){var E=h/6*(w/t.BYTES_PER_ELEMENT);vr(e,u).forEach((function(r){var n=E*r.ndx,o=t.subarray(n,n+E);e.texImage2D(r.face,v,b,a,f,0,d,m,o)}))}else i===e.TEXTURE_3D||i===e.TEXTURE_2D_ARRAY?e.texImage3D(i,v,b,a,f,s,0,d,m,t):e.texImage2D(i,v,b,a,f,0,d,m,t);return tr(e,u),or(e),{width:a,height:f,depth:s,type:m}}function Ar(e,r,t){var n=t.target||e.TEXTURE_2D;e.bindTexture(n,r);var o=t.level||0,u=t.internalFormat||t.format||e.RGBA,i=Ve(u),a=t.format||i.format,f=t.type||i.type;if(rr(e,t),n===e.TEXTURE_CUBE_MAP)for(var c=0;c<6;++c)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+c,o,u,t.width,t.height,0,a,f,null);else n===e.TEXTURE_3D||n===e.TEXTURE_2D_ARRAY?e.texImage3D(n,o,u,t.width,t.height,t.depth,0,a,f,null):e.texImage2D(n,o,u,t.width,t.height,0,a,f,null);tr(e,t)}function Or(e,r,t){t=t||yr,r=r||c.textureOptions;var n=e.createTexture(),o=r.target||e.TEXTURE_2D,u=r.width||1,i=r.height||1,a=r.internalFormat||e.RGBA,f=Ve(a),s=r.type||f.type;e.bindTexture(o,n),o===e.TEXTURE_CUBE_MAP&&(e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE));var v=r.src;if(v)if("function"==typeof v&&(v=v(e,r)),"string"==typeof v)wr(e,n,r,t);else if(l(v)||Array.isArray(v)&&("number"==typeof v[0]||Array.isArray(v[0])||l(v[0]))){var b=Er(e,n,v,r);u=b.width,i=b.height,s=b.type}else if(Array.isArray(v)&&("string"==typeof v[0]||mr(v[0])))o===e.TEXTURE_CUBE_MAP?hr(e,n,r,t):Fr(e,n,r,t);else{if(!mr(v))throw"unsupported src type";br(e,n,v,r),u=v.width,i=v.height}else Ar(e,n,r);return lr(r)&&cr(e,n,r,u,i,a,s),ir(e,n,r),n}},function(e,r,t){"use strict";r.__esModule=!0;var n={m4:!0,v3:!0,primitives:!0};r.primitives=r.v3=r.m4=void 0;var o=c(t(5));r.m4=o;var u=c(t(2));r.v3=u;var i=c(t(9));r.primitives=i;var a=t(10);function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function c(e){if(e&&e.__esModule)return e;var r=f();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var u=n?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(t,o,u):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=a[e]))}))},function(e,r,t){"use strict";r.__esModule=!0,r.create3DFVertices=P,r.createAugmentedTypedArray=b,r.createCubeVertices=_,r.createPlaneVertices=E,r.createSphereVertices=A,r.createTruncatedConeVertices=j,r.createXYQuadVertices=F,r.createCrescentVertices=R,r.createCylinderVertices=T,r.createTorusVertices=g,r.createDiscVertices=z,r.deindexVertices=function(e){var r=e.indices,t={},n=r.length;return Object.keys(e).filter(y).forEach((function(o){for(var u=e[o],i=u.numComponents,a=b(i,n,u.constructor),f=0;f<n;++f)for(var c=r[f]*i,l=0;l<i;++l)a.push(u[c+l]);t[o]=a})),t},r.flattenNormals=function(e){if(e.indices)throw new Error("can not flatten normals of indexed vertices. deindex them first");for(var r=e.normal,t=r.length,n=0;n<t;n+=9){var o=r[n+0],u=r[n+1],i=r[n+2],a=r[n+3],f=r[n+4],c=r[n+5],l=r[n+6],s=r[n+7],v=r[n+8],b=o+a+l,y=u+f+s,d=i+c+v,m=Math.sqrt(b*b+y*y+d*d);b/=m,y/=m,d/=m,r[n+0]=b,r[n+1]=y,r[n+2]=d,r[n+3]=b,r[n+4]=y,r[n+5]=d,r[n+6]=b,r[n+7]=y,r[n+8]=d}return e},r.makeRandomVertexColors=function(e,r){r=r||{};var t=e.position.numElements,n=b(4,t,Uint8Array),o=r.rand||function(e,r){return r<3?(t=256,Math.random()*t|0):255;var t};if(e.color=n,e.indices)for(var u=0;u<t;++u)n.push(o(u,0),o(u,1),o(u,2),o(u,3));else for(var i=r.vertsPerColor||3,a=t/i,f=0;f<a;++f)for(var c=[o(f,0),o(f,1),o(f,2),o(f,3)],l=0;l<i;++l)n.push(c);return e},r.reorientDirections=p,r.reorientNormals=x,r.reorientPositions=w,r.reorientVertices=h,r.concatVertices=function(e){for(var r,t={},n=function(n){var o=e[n];Object.keys(o).forEach((function(e){t[e]||(t[e]=[]),r||"indices"===e||(r=e);var n=o[e],u=s(n,e),i=l(n).length/u;t[e].push(i)}))},o=0;o<e.length;++o)n(o);var u=t[r],i={};return Object.keys(t).forEach((function(r){var t=function(r){for(var t,n=0,o=0;o<e.length;++o){var u=e[o][r],i=l(u);n+=i.length,t&&!u.data||(t=u)}return{length:n,spec:t}}(r),n=W(t.spec,t.length);!function(r,t,n){for(var o=0,u=0,i=0;i<e.length;++i){var a=e[i][r],f=l(a);"indices"===r?(k(f,n,u,o),o+=t[i]):k(f,n,u),u+=f.length}}(r,u,l(n)),i[r]=n})),i},r.duplicateVertices=function(e){var r={};return Object.keys(e).forEach((function(t){var n=e[t],o=l(n),u=W(n,o.length);k(o,l(u),0),r[t]=u})),r},r.createDiscBuffers=r.createDiscBufferInfo=r.createTorusBuffers=r.createTorusBufferInfo=r.createCylinderBuffers=r.createCylinderBufferInfo=r.createCrescentBuffers=r.createCrescentBufferInfo=r.createCresentVertices=r.createCresentBuffers=r.createCresentBufferInfo=r.createXYQuadBuffers=r.createXYQuadBufferInfo=r.createTruncatedConeBuffers=r.createTruncatedConeBufferInfo=r.createSphereBuffers=r.createSphereBufferInfo=r.createPlaneBuffers=r.createPlaneBufferInfo=r.createCubeBuffers=r.createCubeBufferInfo=r.create3DFBuffers=r.create3DFBufferInfo=void 0;var n=c(t(6)),o=c(t(0)),u=c(t(1)),i=c(t(5)),a=c(t(2));function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function c(e){if(e&&e.__esModule)return e;var r=f();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var u=n?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(t,o,u):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}var l=n.getArray_,s=n.getNumComponents_;function v(e,r){var t=0;return e.push=function(){for(var r=0;r<arguments.length;++r){var n=arguments[r];if(n instanceof Array||u.isArrayBuffer(n))for(var o=0;o<n.length;++o)e[t++]=n[o];else e[t++]=n}},e.reset=function(e){t=e||0},e.numComponents=r,Object.defineProperty(e,"numElements",{get:function(){return this.length/this.numComponents|0}}),e}function b(e,r,t){return v(new(t||Float32Array)(e*r),e)}function y(e){return"indices"!==e}function d(e,r,t){for(var n=e.length,o=new Float32Array(3),u=0;u<n;u+=3)t(r,[e[u],e[u+1],e[u+2]],o),e[u]=o[0],e[u+1]=o[1],e[u+2]=o[2]}function m(e,r,t){t=t||a.create();var n=r[0],o=r[1],u=r[2];return t[0]=n*e[0]+o*e[1]+u*e[2],t[1]=n*e[4]+o*e[5]+u*e[6],t[2]=n*e[8]+o*e[9]+u*e[10],t}function p(e,r){return d(e,r,i.transformDirection),e}function x(e,r){return d(e,i.inverse(r),m),e}function w(e,r){return d(e,r,i.transformPoint),e}function h(e,r){return Object.keys(e).forEach((function(t){var n=e[t];t.indexOf("pos")>=0?w(n,r):t.indexOf("tan")>=0||t.indexOf("binorm")>=0?p(n,r):t.indexOf("norm")>=0&&x(n,r)})),e}function F(e,r,t){return e=e||2,{position:{numComponents:2,data:[(r=r||0)+-1*(e*=.5),(t=t||0)+-1*e,r+1*e,t+-1*e,r+-1*e,t+1*e,r+1*e,t+1*e]},normal:[0,0,1,0,0,1,0,0,1,0,0,1],texcoord:[0,0,1,0,0,1,1,1],indices:[0,1,2,2,1,3]}}function E(e,r,t,n,o){e=e||1,r=r||1,t=t||1,n=n||1,o=o||i.identity();for(var u=(t+1)*(n+1),a=b(3,u),f=b(3,u),c=b(2,u),l=0;l<=n;l++)for(var s=0;s<=t;s++){var v=s/t,y=l/n;a.push(e*v-.5*e,0,r*y-.5*r),f.push(0,1,0),c.push(v,y)}for(var d=t+1,m=b(3,t*n*2,Uint16Array),p=0;p<n;p++)for(var x=0;x<t;x++)m.push((p+0)*d+x,(p+1)*d+x,(p+0)*d+x+1),m.push((p+1)*d+x,(p+1)*d+x+1,(p+0)*d+x+1);return h({position:a,normal:f,texcoord:c,indices:m},o)}function A(e,r,t,n,o,u,i){if(r<=0||t<=0)throw new Error("subdivisionAxis and subdivisionHeight must be > 0");n=n||0,u=u||0;for(var a=(o=o||Math.PI)-n,f=(i=i||2*Math.PI)-u,c=(r+1)*(t+1),l=b(3,c),s=b(3,c),v=b(2,c),y=0;y<=t;y++)for(var d=0;d<=r;d++){var m=d/r,p=y/t,x=f*m+u,w=a*p+n,h=Math.sin(x),F=Math.cos(x),E=Math.sin(w),A=F*E,O=Math.cos(w),_=h*E;l.push(e*A,e*O,e*_),s.push(A,O,_),v.push(1-m,p)}for(var j=r+1,M=b(3,r*t*2,Uint16Array),P=0;P<r;P++)for(var R=0;R<t;R++)M.push((R+0)*j+P,(R+0)*j+P+1,(R+1)*j+P),M.push((R+1)*j+P,(R+0)*j+P+1,(R+1)*j+P+1);return{position:l,normal:s,texcoord:v,indices:M}}var O=[[3,7,5,1],[6,2,0,4],[6,7,3,2],[0,1,5,4],[7,6,4,5],[2,3,1,0]];function _(e){for(var r=(e=e||1)/2,t=[[-r,-r,-r],[+r,-r,-r],[-r,+r,-r],[+r,+r,-r],[-r,-r,+r],[+r,-r,+r],[-r,+r,+r],[+r,+r,+r]],n=[[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]],o=[[1,0],[0,0],[0,1],[1,1]],u=b(3,24),i=b(3,24),a=b(2,24),f=b(3,12,Uint16Array),c=0;c<6;++c){for(var l=O[c],s=0;s<4;++s){var v=t[l[s]],y=n[c],d=o[s];u.push(v),i.push(y),a.push(d)}var m=4*c;f.push(m+0,m+1,m+2),f.push(m+0,m+2,m+3)}return{position:u,normal:i,texcoord:a,indices:f}}function j(e,r,t,n,o,u,i){if(n<3)throw new Error("radialSubdivisions must be 3 or greater");if(o<1)throw new Error("verticalSubdivisions must be 1 or greater");for(var a=void 0===u||u,f=void 0===i||i,c=(a?2:0)+(f?2:0),l=(n+1)*(o+1+c),s=b(3,l),v=b(3,l),y=b(2,l),d=b(3,n*(o+c)*2,Uint16Array),m=n+1,p=Math.atan2(e-r,t),x=Math.cos(p),w=Math.sin(p),h=o+(f?2:0),F=a?-2:0;F<=h;++F){var E=F/o,A=t*E,O=void 0;F<0?(A=0,E=1,O=e):F>o?(A=t,E=1,O=r):O=e+F/o*(r-e),-2!==F&&F!==o+2||(O=0,E=0),A-=t/2;for(var _=0;_<m;++_){var j=Math.sin(_*Math.PI*2/n),M=Math.cos(_*Math.PI*2/n);s.push(j*O,A,M*O),v.push(F<0||F>o?0:j*x,F<0?-1:F>o?1:w,F<0||F>o?0:M*x),y.push(_/n,1-E)}}for(var P=0;P<o+c;++P)for(var R=0;R<n;++R)d.push(m*(P+0)+0+R,m*(P+0)+1+R,m*(P+1)+1+R),d.push(m*(P+0)+0+R,m*(P+1)+1+R,m*(P+1)+0+R);return{position:s,normal:v,texcoord:y,indices:d}}function M(e,r){r=r||[];for(var t=[],n=0;n<e.length;n+=4){var o=e[n],u=e.slice(n+1,n+4);u.push.apply(u,r);for(var i=0;i<o;++i)t.push.apply(t,u)}return t}function P(){var e=[0,0,0,0,150,0,30,0,0,0,150,0,30,150,0,30,0,0,30,0,0,30,30,0,100,0,0,30,30,0,100,30,0,100,0,0,30,60,0,30,90,0,67,60,0,30,90,0,67,90,0,67,60,0,0,0,30,30,0,30,0,150,30,0,150,30,30,0,30,30,150,30,30,0,30,100,0,30,30,30,30,30,30,30,100,0,30,100,30,30,30,60,30,67,60,30,30,90,30,30,90,30,67,60,30,67,90,30,0,0,0,100,0,0,100,0,30,0,0,0,100,0,30,0,0,30,100,0,0,100,30,0,100,30,30,100,0,0,100,30,30,100,0,30,30,30,0,30,30,30,100,30,30,30,30,0,100,30,30,100,30,0,30,30,0,30,60,30,30,30,30,30,30,0,30,60,0,30,60,30,30,60,0,67,60,30,30,60,30,30,60,0,67,60,0,67,60,30,67,60,0,67,90,30,67,60,30,67,60,0,67,90,0,67,90,30,30,90,0,30,90,30,67,90,30,30,90,0,67,90,30,67,90,0,30,90,0,30,150,30,30,90,30,30,90,0,30,150,0,30,150,30,0,150,0,0,150,30,30,150,30,0,150,0,30,150,30,30,150,0,0,0,0,0,0,30,0,150,30,0,0,0,0,150,30,0,150,0],r=M([18,0,0,1,18,0,0,-1,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,1,0,6,1,0,0,6,0,-1,0,6,1,0,0,6,0,-1,0,6,-1,0,0]),t=M([18,200,70,120,18,80,70,200,6,70,200,210,6,200,200,70,6,210,100,70,6,210,160,70,6,70,180,210,6,100,70,210,6,76,210,100,6,140,210,80,6,90,130,110,6,160,160,220],[255]),n=e.length/3,o={position:b(3,n),texcoord:b(2,n),normal:b(3,n),color:b(4,n,Uint8Array),indices:b(3,n/3,Uint16Array)};o.position.push(e),o.texcoord.push([.22,.19,.22,.79,.34,.19,.22,.79,.34,.79,.34,.19,.34,.19,.34,.31,.62,.19,.34,.31,.62,.31,.62,.19,.34,.43,.34,.55,.49,.43,.34,.55,.49,.55,.49,.43,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0]),o.normal.push(r),o.color.push(t);for(var u=0;u<n;++u)o.indices.push(u);return o}function R(e,r,t,n,o,u,i){if(o<=0)throw new Error("subdivisionDown must be > 0");var f=2,c=(i=i||1)-(u=u||0),l=2*(o+1)*(2+f),s=b(3,l),v=b(3,l),y=b(2,l);function d(e,r,t){return e+(r-e)*t}function m(r,t,i,l,b,m){for(var p=0;p<=o;p++){var x=t/(f-1),w=p/o,h=2*(x-.5),F=(u+w*c)*Math.PI,E=Math.sin(F),A=Math.cos(F),O=d(e,r,E),_=h*n,j=A*e,M=E*O;s.push(_,j,M);var P=a.add(a.multiply([0,E,A],i),l);v.push(P),y.push(x*b+m,w)}}for(var p=0;p<f;p++){var x=2*(p/(f-1)-.5);m(r,p,[1,1,1],[0,0,0],1,0),m(r,p,[0,0,0],[x,0,0],0,0),m(t,p,[1,1,1],[0,0,0],1,0),m(t,p,[0,0,0],[x,0,0],0,1)}var w=b(3,2*o*(2+f),Uint16Array);function h(e,r){for(var t=0;t<o;++t)w.push(e+t+0,e+t+1,r+t+0),w.push(e+t+1,r+t+1,r+t+0)}var F=o+1;return h(0*F,4*F),h(5*F,7*F),h(6*F,2*F),h(3*F,1*F),{position:s,normal:v,texcoord:y,indices:w}}function T(e,r,t,n,o,u){return j(e,e,r,t,n,o,u)}function g(e,r,t,n,o,u){if(t<3)throw new Error("radialSubdivisions must be 3 or greater");if(n<3)throw new Error("verticalSubdivisions must be 3 or greater");o=o||0;for(var i=(u=u||2*Math.PI)-o,a=t+1,f=n+1,c=a*f,l=b(3,c),s=b(3,c),v=b(2,c),y=b(3,t*n*2,Uint16Array),d=0;d<f;++d)for(var m=d/n,p=m*Math.PI*2,x=Math.sin(p),w=e+x*r,h=Math.cos(p),F=h*r,E=0;E<a;++E){var A=E/t,O=o+A*i,_=Math.sin(O),j=Math.cos(O),M=_*w,P=j*w,R=_*x,T=j*x;l.push(M,F,P),s.push(R,h,T),v.push(A,1-m)}for(var g=0;g<n;++g)for(var z=0;z<t;++z){var U=1+z,C=1+g;y.push(a*g+z,a*C+z,a*g+U),y.push(a*C+z,a*C+U,a*g+U)}return{position:l,normal:s,texcoord:v,indices:y}}function z(e,r,t,n,o){if(r<3)throw new Error("divisions must be at least 3");o=o||1,n=n||0;for(var u=(r+1)*((t=t||1)+1),i=b(3,u),a=b(3,u),f=b(2,u),c=b(3,t*r*2,Uint16Array),l=0,s=e-n,v=r+1,y=0;y<=t;++y){for(var d=n+s*Math.pow(y/t,o),m=0;m<=r;++m){var p=2*Math.PI*m/r,x=d*Math.cos(p),w=d*Math.sin(p);if(i.push(x,0,w),a.push(0,1,0),f.push(1-m/r,y/t),y>0&&m!==r){var h=l+(m+1),F=l+m,E=l+m-v,A=l+(m+1)-v;c.push(h,F,E),c.push(h,E,A)}}l+=r+1}return{position:i,normal:a,texcoord:f,indices:c}}function U(e){return function(r){var t=e.apply(this,Array.prototype.slice.call(arguments,1));return n.createBuffersFromArrays(r,t)}}function C(e){return function(r){var t=e.apply(null,Array.prototype.slice.call(arguments,1));return n.createBufferInfoFromArrays(r,t)}}var S=["numComponents","size","type","normalize","stride","offset","attrib","name","attribName"];function k(e,r,t,n){n=n||0;for(var o=e.length,u=0;u<o;++u)r[t+u]=e[u]+n}function W(e,r){var t=l(e),n=new t.constructor(r),u=n;return t.numComponents&&t.numElements&&v(n,t.numComponents),e.data&&(u={data:n},o.copyNamedProperties(S,e,u)),u}var I=C(P);r.create3DFBufferInfo=I;var B=U(P);r.create3DFBuffers=B;var L=C(_);r.createCubeBufferInfo=L;var G=U(_);r.createCubeBuffers=G;var X=C(E);r.createPlaneBufferInfo=X;var D=U(E);r.createPlaneBuffers=D;var N=C(A);r.createSphereBufferInfo=N;var H=U(A);r.createSphereBuffers=H;var q=C(j);r.createTruncatedConeBufferInfo=q;var V=U(j);r.createTruncatedConeBuffers=V;var Y=C(F);r.createXYQuadBufferInfo=Y;var K=U(F);r.createXYQuadBuffers=K;var Z=C(R);r.createCrescentBufferInfo=Z;var $=U(R);r.createCrescentBuffers=$;var J=C(T);r.createCylinderBufferInfo=J;var Q=U(T);r.createCylinderBuffers=Q;var ee=C(g);r.createTorusBufferInfo=ee;var re=U(g);r.createTorusBuffers=re;var te=C(z);r.createDiscBufferInfo=te;var ne=U(z);r.createDiscBuffers=ne;var oe=Z;r.createCresentBufferInfo=oe;var ue=$;r.createCresentBuffers=ue;var ie=R;r.createCresentVertices=ie},function(e,r,t){"use strict";r.__esModule=!0;var n={addExtensionsToContext:!0,getContext:!0,getWebGLContext:!0,resizeCanvasToDisplaySize:!0,setDefaults:!0,attributes:!0,textures:!0,utils:!0,draw:!0,framebuffers:!0,programs:!0,typedarrays:!0,vertexArrays:!0};r.addExtensionsToContext=w,r.getContext=function(e,r){return function(e,r){for(var t=["webgl2","webgl","experimental-webgl"],n=null,o=0;o<t.length;++o)if(n=e.getContext(t[o],r)){d.addExtensionsToContext&&w(n);break}return n}(e,r)},r.getWebGLContext=function(e,r){return function(e,r){for(var t=["webgl","experimental-webgl"],n=null,o=0;o<t.length;++o)if(n=e.getContext(t[o],r)){d.addExtensionsToContext&&w(n);break}return n}(e,r)},r.resizeCanvasToDisplaySize=function(e,r){r=r||1,r=Math.max(0,r);var t=e.clientWidth*r|0,n=e.clientHeight*r|0;if(e.width!==t||e.height!==n)return e.width=t,e.height=n,!0;return!1},r.setDefaults=function(e){i.copyExistingProperties(e,d),o.setAttributeDefaults_(e),u.setTextureDefaults_(e)},r.vertexArrays=r.typedarrays=r.programs=r.framebuffers=r.draw=r.utils=r.textures=r.attributes=void 0;var o=y(t(6));r.attributes=o,Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=o[e]))}));var u=y(t(7));r.textures=u,Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=u[e]))}));var i=y(t(0)),a=y(t(3));r.utils=a,Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=a[e]))}));var f=y(t(11));r.draw=f,Object.keys(f).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=f[e]))}));var c=y(t(12));r.framebuffers=c,Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=c[e]))}));var l=y(t(4));r.programs=l,Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=l[e]))}));var s=y(t(1));r.typedarrays=s,Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=s[e]))}));var v=y(t(13));function b(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return b=function(){return e},e}function y(e){if(e&&e.__esModule)return e;var r=b();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var u=n?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(t,o,u):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}r.vertexArrays=v,Object.keys(v).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(n,e)||(r[e]=v[e]))}));var d={addExtensionsToContext:!0};var m=/^(.*?)_/;function p(e,r){a.glEnumToString(e,0);var t=e.getExtension(r);if(t){var n={},o=m.exec(r)[1],u="_"+o;for(var f in t){var c=t[f],l="function"==typeof c,s=l?o:u,v=f;f.endsWith(s)&&(v=f.substring(0,f.length-s.length)),void 0!==e[v]?l||e[v]===c||i.warn(v,e[v],c,f):l?e[v]=function(e){return function(){return e.apply(t,arguments)}}(c):(e[v]=c,n[v]=c)}n.constructor={name:t.constructor.name},a.glEnumToString(n,0)}return t}var x=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function w(e){for(var r=0;r<x.length;++r)p(e,x[r])}},function(e,r,t){"use strict";r.__esModule=!0,r.drawBufferInfo=u,r.drawObjectList=function(e,r){var t=null,o=null;r.forEach((function(r){if(!1!==r.active){var i=r.programInfo,a=r.vertexArrayInfo||r.bufferInfo,f=!1,c=void 0===r.type?e.TRIANGLES:r.type;i!==t&&(t=i,e.useProgram(i.program),f=!0),(f||a!==o)&&(o&&o.vertexArrayObject&&!a.vertexArrayObject&&e.bindVertexArray(null),o=a,n.setBuffersAndAttributes(e,i,a)),n.setUniforms(i,r.uniforms),u(e,a,c,r.count,r.offset,r.instanceCount)}})),o.vertexArrayObject&&e.bindVertexArray(null)};var n=function(e){if(e&&e.__esModule)return e;var r=o();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(Object.prototype.hasOwnProperty.call(e,u)){var i=n?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(t,u,i):t[u]=e[u]}}t.default=e,r&&r.set(e,t);return t}(t(4));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function u(e,r,t,n,o,u){t=void 0===t?e.TRIANGLES:t;var i=r.indices,a=r.elementType,f=void 0===n?r.numElements:n;o=void 0===o?0:o,a||i?void 0!==u?e.drawElementsInstanced(t,f,void 0===a?e.UNSIGNED_SHORT:r.elementType,o,u):e.drawElements(t,f,void 0===a?e.UNSIGNED_SHORT:r.elementType,o):void 0!==u?e.drawArraysInstanced(t,o,f,u):e.drawArrays(t,o,f)}},function(e,r,t){"use strict";r.__esModule=!0,r.bindFramebufferInfo=function(e,r,t){t=t||e.FRAMEBUFFER,r?(e.bindFramebuffer(t,r.framebuffer),e.viewport(0,0,r.width,r.height)):(e.bindFramebuffer(t,null),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight))},r.createFramebufferInfo=function(e,r,t,u){var i=e.FRAMEBUFFER,s=e.createFramebuffer();e.bindFramebuffer(i,s),t=t||e.drawingBufferWidth,u=u||e.drawingBufferHeight;var v=0,b={framebuffer:s,attachments:[],width:t,height:u};return(r=r||f).forEach((function(r){var f=r.attachment,s=r.format,y=function(e){return c[e]}(s);if(y||(y=a+v++),!f)if(function(e){return l[e]}(s))f=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,f),e.renderbufferStorage(e.RENDERBUFFER,s,t,u);else{var d=Object.assign({},r);d.width=t,d.height=u,void 0===d.auto&&(d.auto=!1,d.min=d.min||d.minMag||e.LINEAR,d.mag=d.mag||d.minMag||e.LINEAR,d.wrapS=d.wrapS||d.wrap||e.CLAMP_TO_EDGE,d.wrapT=d.wrapT||d.wrap||e.CLAMP_TO_EDGE),f=n.createTexture(e,d)}if(o.isRenderbuffer(e,f))e.framebufferRenderbuffer(i,y,e.RENDERBUFFER,f);else{if(!o.isTexture(e,f))throw new Error("unknown attachment type");void 0!==r.layer?e.framebufferTextureLayer(i,y,f,r.level||0,r.layer):e.framebufferTexture2D(i,y,r.texTarget||e.TEXTURE_2D,f,r.level||0)}b.attachments.push(f)})),b},r.resizeFramebufferInfo=function(e,r,t,u,i){u=u||e.drawingBufferWidth,i=i||e.drawingBufferHeight,r.width=u,r.height=i,(t=t||f).forEach((function(t,a){var f=r.attachments[a],c=t.format;if(o.isRenderbuffer(e,f))e.bindRenderbuffer(e.RENDERBUFFER,f),e.renderbufferStorage(e.RENDERBUFFER,c,u,i);else{if(!o.isTexture(e,f))throw new Error("unknown attachment type");n.resizeTexture(e,f,t,u,i)}}))};var n=i(t(7)),o=i(t(0));function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function i(e){if(e&&e.__esModule)return e;var r=u();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(t,o,i):t[o]=e[o]}}return t.default=e,r&&r.set(e,t),t}var a=36064,f=[{format:6408,type:5121,min:9729,wrap:33071},{format:34041}],c={};c[34041]=33306,c[6401]=36128,c[36168]=36128,c[6402]=36096,c[33189]=36096;var l={};l[32854]=!0,l[32855]=!0,l[36194]=!0,l[34041]=!0,l[33189]=!0,l[6401]=!0,l[36168]=!0},function(e,r,t){"use strict";r.__esModule=!0,r.createVertexArrayInfo=function(e,r,t){var o=e.createVertexArray();e.bindVertexArray(o),r.length||(r=[r]);return r.forEach((function(r){n.setBuffersAndAttributes(e,r,t)})),e.bindVertexArray(null),{numElements:t.numElements,elementType:t.elementType,vertexArrayObject:o}},r.createVAOAndSetAttributes=u,r.createVAOFromBufferInfo=function(e,r,t){return u(e,r.attribSetters||r,t.attribs,t.indices)};var n=function(e){if(e&&e.__esModule)return e;var r=o();if(r&&r.has(e))return r.get(e);var t={};if(null!=e){var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(Object.prototype.hasOwnProperty.call(e,u)){var i=n?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(t,u,i):t[u]=e[u]}}t.default=e,r&&r.set(e,t);return t}(t(4));function o(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return o=function(){return e},e}function u(e,r,t,o){var u=e.createVertexArray();return e.bindVertexArray(u),n.setAttributes(r,t),o&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,o),e.bindVertexArray(null),u}}])}));