hilo3d 1.18.0 → 1.18.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/Hilo3d.js +4 -4
- package/build/Hilo3d.single.js +3 -3
- package/build/math.single.js +3 -3
- package/build/polyfill.js +2 -2
- package/examples/js/init.js +1 -1
- package/package.json +1 -1
package/build/Hilo3d.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Hilo3d 1.18.0
|
|
2
|
+
* Hilo3d 1.18.1-alpha.0
|
|
3
3
|
* Copyright (c) 2017-present Alibaba Group Holding Ltd.
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
window.Hilo3d=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=
|
|
6
|
+
window.Hilo3d=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=110)}([function(t,e,n){
|
|
7
7
|
/*!
|
|
8
8
|
@fileoverview gl-matrix - High performance matrix and vector operations
|
|
9
9
|
@author Brandon Jones
|
|
@@ -31,9 +31,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
31
31
|
THE SOFTWARE.
|
|
32
32
|
|
|
33
33
|
*/
|
|
34
|
-
"undefined"!=typeof self&&self,t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=10)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*i},e.equals=function(t,e){return Math.abs(t-e)<=r*Math.max(1,Math.abs(t),Math.abs(e))};var r=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var i=Math.PI/180},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.len=e.sqrDist=e.dist=e.div=e.mul=e.sub=void 0,e.create=i,e.clone=function(t){var e=new r.ARRAY_TYPE(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},e.fromValues=function(t,e,n,i){var a=new r.ARRAY_TYPE(4);return a[0]=t,a[1]=e,a[2]=n,a[3]=i,a},e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},e.set=function(t,e,n,r,i){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t},e.subtract=a,e.multiply=s,e.divide=o,e.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t},e.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t},e.min=function(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t[2]=Math.min(e[2],n[2]),t[3]=Math.min(e[3],n[3]),t},e.max=function(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t[2]=Math.max(e[2],n[2]),t[3]=Math.max(e[3],n[3]),t},e.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t[3]=Math.round(e[3]),t},e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t},e.scaleAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t},e.distance=u,e.squaredDistance=c,e.length=f,e.squaredLength=h,e.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},e.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t},e.normalize=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n*n+r*r+i*i+a*a;return s>0&&(s=1/Math.sqrt(s),t[0]=n*s,t[1]=r*s,t[2]=i*s,t[3]=a*s),t},e.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},e.lerp=function(t,e,n,r){var i=e[0],a=e[1],s=e[2],o=e[3];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t[2]=s+r*(n[2]-s),t[3]=o+r*(n[3]-o),t},e.random=function(t,e){var n,i,a,s,o,u;e=e||1;do{o=(n=2*r.RANDOM()-1)*n+(i=2*r.RANDOM()-1)*i}while(o>=1);do{u=(a=2*r.RANDOM()-1)*a+(s=2*r.RANDOM()-1)*s}while(u>=1);var c=Math.sqrt((1-o)/u);return t[0]=e*n,t[1]=e*i,t[2]=e*a*c,t[3]=e*s*c,t},e.transformMat4=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3];return t[0]=n[0]*r+n[4]*i+n[8]*a+n[12]*s,t[1]=n[1]*r+n[5]*i+n[9]*a+n[13]*s,t[2]=n[2]*r+n[6]*i+n[10]*a+n[14]*s,t[3]=n[3]*r+n[7]*i+n[11]*a+n[15]*s,t},e.transformQuat=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[0],o=n[1],u=n[2],c=n[3],f=c*r+o*a-u*i,h=c*i+u*r-s*a,l=c*a+s*i-o*r,d=-s*r-o*i-u*a;return t[0]=f*c+d*-s+h*-u-l*-o,t[1]=h*c+d*-o+l*-s-f*-u,t[2]=l*c+d*-u+f*-o-h*-s,t[3]=e[3],t},e.str=function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],u=e[1],c=e[2],f=e[3];return Math.abs(n-o)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-u)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))&&Math.abs(a-c)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(s-f)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(f))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(){var t=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t}function s(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t[3]=e[3]*n[3],t}function o(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t[2]=e[2]/n[2],t[3]=e[3]/n[3],t}function u(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(n*n+r*r+i*i+a*a)}function c(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return n*n+r*r+i*i+a*a}function f(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.sqrt(e*e+n*n+r*r+i*i)}function h(t){var e=t[0],n=t[1],r=t[2],i=t[3];return e*e+n*n+r*r+i*i}e.sub=a,e.mul=s,e.div=o,e.dist=u,e.sqrDist=c,e.len=f,e.sqrLen=h,e.forEach=function(){var t=i();return function(e,n,r,i,a,s){var o,u=void 0;for(n||(n=4),r||(r=0),o=i?Math.min(i*n+r,e.length):e.length,u=r;u<o;u+=n)t[0]=e[u],t[1]=e[u+1],t[2]=e[u+2],t[3]=e[u+3],a(t,t,s),e[u]=t[0],e[u+1]=t[1],e[u+2]=t[2],e[u+3]=t[3];return e}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.len=e.sqrDist=e.dist=e.div=e.mul=e.sub=void 0,e.create=i,e.clone=function(t){var e=new r.ARRAY_TYPE(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},e.length=a,e.fromValues=s,e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},e.set=function(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t},e.subtract=o,e.multiply=u,e.divide=c,e.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t},e.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t},e.min=function(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t[2]=Math.min(e[2],n[2]),t},e.max=function(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t[2]=Math.max(e[2],n[2]),t},e.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t},e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t},e.scaleAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t},e.distance=f,e.squaredDistance=h,e.squaredLength=l,e.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t},e.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t},e.normalize=d,e.dot=m,e.cross=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[0],o=n[1],u=n[2];return t[0]=i*u-a*o,t[1]=a*s-r*u,t[2]=r*o-i*s,t},e.lerp=function(t,e,n,r){var i=e[0],a=e[1],s=e[2];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t[2]=s+r*(n[2]-s),t},e.hermite=function(t,e,n,r,i,a){var s=a*a,o=s*(2*a-3)+1,u=s*(a-2)+a,c=s*(a-1),f=s*(3-2*a);return t[0]=e[0]*o+n[0]*u+r[0]*c+i[0]*f,t[1]=e[1]*o+n[1]*u+r[1]*c+i[1]*f,t[2]=e[2]*o+n[2]*u+r[2]*c+i[2]*f,t},e.bezier=function(t,e,n,r,i,a){var s=1-a,o=s*s,u=a*a,c=o*s,f=3*a*o,h=3*u*s,l=u*a;return t[0]=e[0]*c+n[0]*f+r[0]*h+i[0]*l,t[1]=e[1]*c+n[1]*f+r[1]*h+i[1]*l,t[2]=e[2]*c+n[2]*f+r[2]*h+i[2]*l,t},e.random=function(t,e){e=e||1;var n=2*r.RANDOM()*Math.PI,i=2*r.RANDOM()-1,a=Math.sqrt(1-i*i)*e;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t[2]=i*e,t},e.transformMat4=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[3]*r+n[7]*i+n[11]*a+n[15];return s=s||1,t[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/s,t[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/s,t[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/s,t},e.transformMat3=function(t,e,n){var r=e[0],i=e[1],a=e[2];return t[0]=r*n[0]+i*n[3]+a*n[6],t[1]=r*n[1]+i*n[4]+a*n[7],t[2]=r*n[2]+i*n[5]+a*n[8],t},e.transformQuat=function(t,e,n){var r=n[0],i=n[1],a=n[2],s=n[3],o=e[0],u=e[1],c=e[2],f=i*c-a*u,h=a*o-r*c,l=r*u-i*o,d=i*l-a*h,m=a*f-r*l,_=r*h-i*f,p=2*s;return f*=p,h*=p,l*=p,d*=2,m*=2,_*=2,t[0]=o+f+d,t[1]=u+h+m,t[2]=c+l+_,t},e.rotateX=function(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},e.rotateY=function(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},e.rotateZ=function(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},e.angle=function(t,e){var n=s(t[0],t[1],t[2]),r=s(e[0],e[1],e[2]);d(n,n),d(r,r);var i=m(n,r);return i>1?0:i<-1?Math.PI:Math.acos(i)},e.str=function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=e[0],o=e[1],u=e[2];return Math.abs(n-s)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-o)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(o))&&Math.abs(a-u)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(u))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(){var t=new r.ARRAY_TYPE(3);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function a(t){var e=t[0],n=t[1],r=t[2];return Math.sqrt(e*e+n*n+r*r)}function s(t,e,n){var i=new r.ARRAY_TYPE(3);return i[0]=t,i[1]=e,i[2]=n,i}function o(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function u(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t}function c(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t[2]=e[2]/n[2],t}function f(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(n*n+r*r+i*i)}function h(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return n*n+r*r+i*i}function l(t){var e=t[0],n=t[1],r=t[2];return e*e+n*n+r*r}function d(t,e){var n=e[0],r=e[1],i=e[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}function m(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}e.sub=o,e.mul=u,e.div=c,e.dist=f,e.sqrDist=h,e.len=a,e.sqrLen=l,e.forEach=function(){var t=i();return function(e,n,r,i,a,s){var o,u=void 0;for(n||(n=3),r||(r=0),o=i?Math.min(i*n+r,e.length):e.length,u=r;u<o;u+=n)t[0]=e[u],t[1]=e[u+1],t[2]=e[u+2],a(t,t,s),e[u]=t[0],e[u+1]=t[1],e[u+2]=t[2];return e}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setAxes=e.sqlerp=e.rotationTo=e.equals=e.exactEquals=e.normalize=e.sqrLen=e.squaredLength=e.len=e.length=e.lerp=e.dot=e.scale=e.mul=e.add=e.set=e.copy=e.fromValues=e.clone=void 0,e.create=u,e.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},e.setAxisAngle=c,e.getAxisAngle=function(t,e){var n=2*Math.acos(e[3]),i=Math.sin(n/2);return i>r.EPSILON?(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i):(t[0]=1,t[1]=0,t[2]=0),n},e.multiply=f,e.rotateX=function(t,e,n){n*=.5;var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u+s*o,t[1]=i*u+a*o,t[2]=a*u-i*o,t[3]=s*u-r*o,t},e.rotateY=function(t,e,n){n*=.5;var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u-a*o,t[1]=i*u+s*o,t[2]=a*u+r*o,t[3]=s*u-i*o,t},e.rotateZ=function(t,e,n){n*=.5;var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u+i*o,t[1]=i*u-r*o,t[2]=a*u+s*o,t[3]=s*u-a*o,t},e.calculateW=function(t,e){var n=e[0],r=e[1],i=e[2];return t[0]=n,t[1]=r,t[2]=i,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-i*i)),t},e.slerp=h,e.random=function(t){var e=r.RANDOM(),n=r.RANDOM(),i=r.RANDOM(),a=Math.sqrt(1-e),s=Math.sqrt(e);return t[0]=a*Math.sin(2*Math.PI*n),t[1]=a*Math.cos(2*Math.PI*n),t[2]=s*Math.sin(2*Math.PI*i),t[3]=s*Math.cos(2*Math.PI*i),t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n*n+r*r+i*i+a*a,o=s?1/s:0;return t[0]=-n*o,t[1]=-r*o,t[2]=-i*o,t[3]=a*o,t},e.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},e.fromMat3=l,e.fromEuler=function(t,e,n,r){var i=.5*Math.PI/180;e*=i,n*=i,r*=i;var a=Math.sin(e),s=Math.cos(e),o=Math.sin(n),u=Math.cos(n),c=Math.sin(r),f=Math.cos(r);return t[0]=a*u*f-s*o*c,t[1]=s*o*f+a*u*c,t[2]=s*u*c-a*o*f,t[3]=s*u*f+a*o*c,t},e.str=function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"};var r=o(n(0)),i=o(n(5)),a=o(n(2)),s=o(n(1));function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function u(){var t=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function c(t,e,n){n*=.5;var r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t}function f(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*f+s*o+i*c-a*u,t[1]=i*f+s*u+a*o-r*c,t[2]=a*f+s*c+r*u-i*o,t[3]=s*f-r*o-i*u-a*c,t}function h(t,e,n,i){var a=e[0],s=e[1],o=e[2],u=e[3],c=n[0],f=n[1],h=n[2],l=n[3],d=void 0,m=void 0,_=void 0,p=void 0,g=void 0;return(m=a*c+s*f+o*h+u*l)<0&&(m=-m,c=-c,f=-f,h=-h,l=-l),1-m>r.EPSILON?(d=Math.acos(m),_=Math.sin(d),p=Math.sin((1-i)*d)/_,g=Math.sin(i*d)/_):(p=1-i,g=i),t[0]=p*a+g*c,t[1]=p*s+g*f,t[2]=p*o+g*h,t[3]=p*u+g*l,t}function l(t,e){var n=e[0]+e[4]+e[8],r=void 0;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[3*i+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;r=Math.sqrt(e[3*i+i]-e[3*a+a]-e[3*s+s]+1),t[i]=.5*r,r=.5/r,t[3]=(e[3*a+s]-e[3*s+a])*r,t[a]=(e[3*a+i]+e[3*i+a])*r,t[s]=(e[3*s+i]+e[3*i+s])*r}return t}e.clone=s.clone,e.fromValues=s.fromValues,e.copy=s.copy,e.set=s.set,e.add=s.add,e.mul=f,e.scale=s.scale,e.dot=s.dot,e.lerp=s.lerp;var d=e.length=s.length,m=(e.len=d,e.squaredLength=s.squaredLength),_=(e.sqrLen=m,e.normalize=s.normalize);e.exactEquals=s.exactEquals,e.equals=s.equals,e.rotationTo=function(){var t=a.create(),e=a.fromValues(1,0,0),n=a.fromValues(0,1,0);return function(r,i,s){var o=a.dot(i,s);return o<-.999999?(a.cross(t,e,i),a.len(t)<1e-6&&a.cross(t,n,i),a.normalize(t,t),c(r,t,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(a.cross(t,i,s),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+o,_(r,r))}}(),e.sqlerp=function(){var t=u(),e=u();return function(n,r,i,a,s,o){return h(t,r,s,o),h(e,i,a,o),h(n,t,e,2*o*(1-o)),n}}(),e.setAxes=function(){var t=i.create();return function(e,n,r,i){return t[0]=r[0],t[3]=r[1],t[6]=r[2],t[1]=i[0],t[4]=i[1],t[7]=i[2],t[2]=-n[0],t[5]=-n[1],t[8]=-n[2],_(e,l(e,t))}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(16);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},e.copy=function(t,e){return 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],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},e.fromValues=function(t,e,n,i,a,s,o,u,c,f,h,l,d,m,_,p){var g=new r.ARRAY_TYPE(16);return g[0]=t,g[1]=e,g[2]=n,g[3]=i,g[4]=a,g[5]=s,g[6]=o,g[7]=u,g[8]=c,g[9]=f,g[10]=h,g[11]=l,g[12]=d,g[13]=m,g[14]=_,g[15]=p,g},e.set=function(t,e,n,r,i,a,s,o,u,c,f,h,l,d,m,_,p){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=u,t[8]=c,t[9]=f,t[10]=h,t[11]=l,t[12]=d,t[13]=m,t[14]=_,t[15]=p,t},e.identity=i,e.transpose=function(t,e){if(t===e){var n=e[1],r=e[2],i=e[3],a=e[6],s=e[7],o=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[11]=e[14],t[12]=i,t[13]=s,t[14]=o}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=e[9],l=e[10],d=e[11],m=e[12],_=e[13],p=e[14],g=e[15],E=n*o-r*s,v=n*u-i*s,T=n*c-a*s,A=r*u-i*o,M=r*c-a*o,I=i*c-a*u,R=f*_-h*m,O=f*p-l*m,L=f*g-d*m,S=h*p-l*_,y=h*g-d*_,N=l*g-d*p,x=E*N-v*y+T*S+A*L-M*O+I*R;return x?(x=1/x,t[0]=(o*N-u*y+c*S)*x,t[1]=(i*y-r*N-a*S)*x,t[2]=(_*I-p*M+g*A)*x,t[3]=(l*M-h*I-d*A)*x,t[4]=(u*L-s*N-c*O)*x,t[5]=(n*N-i*L+a*O)*x,t[6]=(p*T-m*I-g*v)*x,t[7]=(f*I-l*T+d*v)*x,t[8]=(s*y-o*L+c*R)*x,t[9]=(r*L-n*y-a*R)*x,t[10]=(m*M-_*T+g*E)*x,t[11]=(h*T-f*M-d*E)*x,t[12]=(o*O-s*S-u*R)*x,t[13]=(n*S-r*O+i*R)*x,t[14]=(_*v-m*A-p*E)*x,t[15]=(f*A-h*v+l*E)*x,t):null},e.adjoint=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=e[9],l=e[10],d=e[11],m=e[12],_=e[13],p=e[14],g=e[15];return t[0]=o*(l*g-d*p)-h*(u*g-c*p)+_*(u*d-c*l),t[1]=-(r*(l*g-d*p)-h*(i*g-a*p)+_*(i*d-a*l)),t[2]=r*(u*g-c*p)-o*(i*g-a*p)+_*(i*c-a*u),t[3]=-(r*(u*d-c*l)-o*(i*d-a*l)+h*(i*c-a*u)),t[4]=-(s*(l*g-d*p)-f*(u*g-c*p)+m*(u*d-c*l)),t[5]=n*(l*g-d*p)-f*(i*g-a*p)+m*(i*d-a*l),t[6]=-(n*(u*g-c*p)-s*(i*g-a*p)+m*(i*c-a*u)),t[7]=n*(u*d-c*l)-s*(i*d-a*l)+f*(i*c-a*u),t[8]=s*(h*g-d*_)-f*(o*g-c*_)+m*(o*d-c*h),t[9]=-(n*(h*g-d*_)-f*(r*g-a*_)+m*(r*d-a*h)),t[10]=n*(o*g-c*_)-s*(r*g-a*_)+m*(r*c-a*o),t[11]=-(n*(o*d-c*h)-s*(r*d-a*h)+f*(r*c-a*o)),t[12]=-(s*(h*p-l*_)-f*(o*p-u*_)+m*(o*l-u*h)),t[13]=n*(h*p-l*_)-f*(r*p-i*_)+m*(r*l-i*h),t[14]=-(n*(o*p-u*_)-s*(r*p-i*_)+m*(r*u-i*o)),t[15]=n*(o*l-u*h)-s*(r*l-i*h)+f*(r*u-i*o),t},e.determinant=function(t){var e=t[0],n=t[1],r=t[2],i=t[3],a=t[4],s=t[5],o=t[6],u=t[7],c=t[8],f=t[9],h=t[10],l=t[11],d=t[12],m=t[13],_=t[14],p=t[15];return(e*s-n*a)*(h*p-l*_)-(e*o-r*a)*(f*p-l*m)+(e*u-i*a)*(f*_-h*m)+(n*o-r*s)*(c*p-l*d)-(n*u-i*s)*(c*_-h*d)+(r*u-i*o)*(c*m-f*d)},e.multiply=a,e.translate=function(t,e,n){var r=n[0],i=n[1],a=n[2],s=void 0,o=void 0,u=void 0,c=void 0,f=void 0,h=void 0,l=void 0,d=void 0,m=void 0,_=void 0,p=void 0,g=void 0;return e===t?(t[12]=e[0]*r+e[4]*i+e[8]*a+e[12],t[13]=e[1]*r+e[5]*i+e[9]*a+e[13],t[14]=e[2]*r+e[6]*i+e[10]*a+e[14],t[15]=e[3]*r+e[7]*i+e[11]*a+e[15]):(s=e[0],o=e[1],u=e[2],c=e[3],f=e[4],h=e[5],l=e[6],d=e[7],m=e[8],_=e[9],p=e[10],g=e[11],t[0]=s,t[1]=o,t[2]=u,t[3]=c,t[4]=f,t[5]=h,t[6]=l,t[7]=d,t[8]=m,t[9]=_,t[10]=p,t[11]=g,t[12]=s*r+f*i+m*a+e[12],t[13]=o*r+h*i+_*a+e[13],t[14]=u*r+l*i+p*a+e[14],t[15]=c*r+d*i+g*a+e[15]),t},e.scale=function(t,e,n){var r=n[0],i=n[1],a=n[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},e.rotate=function(t,e,n,i){var a,s,o,u,c,f,h,l,d,m,_,p,g,E,v,T,A,M,I,R,O,L,S,y,N=i[0],x=i[1],C=i[2],b=Math.sqrt(N*N+x*x+C*C);return b<r.EPSILON?null:(N*=b=1/b,x*=b,C*=b,a=Math.sin(n),o=1-(s=Math.cos(n)),u=e[0],c=e[1],f=e[2],h=e[3],l=e[4],d=e[5],m=e[6],_=e[7],p=e[8],g=e[9],E=e[10],v=e[11],T=N*N*o+s,A=x*N*o+C*a,M=C*N*o-x*a,I=N*x*o-C*a,R=x*x*o+s,O=C*x*o+N*a,L=N*C*o+x*a,S=x*C*o-N*a,y=C*C*o+s,t[0]=u*T+l*A+p*M,t[1]=c*T+d*A+g*M,t[2]=f*T+m*A+E*M,t[3]=h*T+_*A+v*M,t[4]=u*I+l*R+p*O,t[5]=c*I+d*R+g*O,t[6]=f*I+m*R+E*O,t[7]=h*I+_*R+v*O,t[8]=u*L+l*S+p*y,t[9]=c*L+d*S+g*y,t[10]=f*L+m*S+E*y,t[11]=h*L+_*S+v*y,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)},e.rotateX=function(t,e,n){var r=Math.sin(n),i=Math.cos(n),a=e[4],s=e[5],o=e[6],u=e[7],c=e[8],f=e[9],h=e[10],l=e[11];return 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]),t[4]=a*i+c*r,t[5]=s*i+f*r,t[6]=o*i+h*r,t[7]=u*i+l*r,t[8]=c*i-a*r,t[9]=f*i-s*r,t[10]=h*i-o*r,t[11]=l*i-u*r,t},e.rotateY=function(t,e,n){var r=Math.sin(n),i=Math.cos(n),a=e[0],s=e[1],o=e[2],u=e[3],c=e[8],f=e[9],h=e[10],l=e[11];return 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]),t[0]=a*i-c*r,t[1]=s*i-f*r,t[2]=o*i-h*r,t[3]=u*i-l*r,t[8]=a*r+c*i,t[9]=s*r+f*i,t[10]=o*r+h*i,t[11]=u*r+l*i,t},e.rotateZ=function(t,e,n){var r=Math.sin(n),i=Math.cos(n),a=e[0],s=e[1],o=e[2],u=e[3],c=e[4],f=e[5],h=e[6],l=e[7];return 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]),t[0]=a*i+c*r,t[1]=s*i+f*r,t[2]=o*i+h*r,t[3]=u*i+l*r,t[4]=c*i-a*r,t[5]=f*i-s*r,t[6]=h*i-o*r,t[7]=l*i-u*r,t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotation=function(t,e,n){var i,a,s,o=n[0],u=n[1],c=n[2],f=Math.sqrt(o*o+u*u+c*c);return f<r.EPSILON?null:(o*=f=1/f,u*=f,c*=f,i=Math.sin(e),s=1-(a=Math.cos(e)),t[0]=o*o*s+a,t[1]=u*o*s+c*i,t[2]=c*o*s-u*i,t[3]=0,t[4]=o*u*s-c*i,t[5]=u*u*s+a,t[6]=c*u*s+o*i,t[7]=0,t[8]=o*c*s+u*i,t[9]=u*c*s-o*i,t[10]=c*c*s+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},e.fromXRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromYRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromZRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotationTranslation=s,e.fromQuat2=function(t,e){var n=new r.ARRAY_TYPE(3),i=-e[0],a=-e[1],o=-e[2],u=e[3],c=e[4],f=e[5],h=e[6],l=e[7],d=i*i+a*a+o*o+u*u;return d>0?(n[0]=2*(c*u+l*i+f*o-h*a)/d,n[1]=2*(f*u+l*a+h*i-c*o)/d,n[2]=2*(h*u+l*o+c*a-f*i)/d):(n[0]=2*(c*u+l*i+f*o-h*a),n[1]=2*(f*u+l*a+h*i-c*o),n[2]=2*(h*u+l*o+c*a-f*i)),s(t,e,n),t},e.getTranslation=function(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t},e.getScaling=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[4],s=e[5],o=e[6],u=e[8],c=e[9],f=e[10];return t[0]=Math.sqrt(n*n+r*r+i*i),t[1]=Math.sqrt(a*a+s*s+o*o),t[2]=Math.sqrt(u*u+c*c+f*f),t},e.getRotation=function(t,e){var n=e[0]+e[5]+e[10],r=0;return n>0?(r=2*Math.sqrt(n+1),t[3]=.25*r,t[0]=(e[6]-e[9])/r,t[1]=(e[8]-e[2])/r,t[2]=(e[1]-e[4])/r):e[0]>e[5]&&e[0]>e[10]?(r=2*Math.sqrt(1+e[0]-e[5]-e[10]),t[3]=(e[6]-e[9])/r,t[0]=.25*r,t[1]=(e[1]+e[4])/r,t[2]=(e[8]+e[2])/r):e[5]>e[10]?(r=2*Math.sqrt(1+e[5]-e[0]-e[10]),t[3]=(e[8]-e[2])/r,t[0]=(e[1]+e[4])/r,t[1]=.25*r,t[2]=(e[6]+e[9])/r):(r=2*Math.sqrt(1+e[10]-e[0]-e[5]),t[3]=(e[1]-e[4])/r,t[0]=(e[8]+e[2])/r,t[1]=(e[6]+e[9])/r,t[2]=.25*r),t},e.fromRotationTranslationScale=function(t,e,n,r){var i=e[0],a=e[1],s=e[2],o=e[3],u=i+i,c=a+a,f=s+s,h=i*u,l=i*c,d=i*f,m=a*c,_=a*f,p=s*f,g=o*u,E=o*c,v=o*f,T=r[0],A=r[1],M=r[2];return t[0]=(1-(m+p))*T,t[1]=(l+v)*T,t[2]=(d-E)*T,t[3]=0,t[4]=(l-v)*A,t[5]=(1-(h+p))*A,t[6]=(_+g)*A,t[7]=0,t[8]=(d+E)*M,t[9]=(_-g)*M,t[10]=(1-(h+m))*M,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},e.fromRotationTranslationScaleOrigin=function(t,e,n,r,i){var a=e[0],s=e[1],o=e[2],u=e[3],c=a+a,f=s+s,h=o+o,l=a*c,d=a*f,m=a*h,_=s*f,p=s*h,g=o*h,E=u*c,v=u*f,T=u*h,A=r[0],M=r[1],I=r[2],R=i[0],O=i[1],L=i[2],S=(1-(_+g))*A,y=(d+T)*A,N=(m-v)*A,x=(d-T)*M,C=(1-(l+g))*M,b=(p+E)*M,P=(m+v)*I,w=(p-E)*I,H=(1-(l+_))*I;return t[0]=S,t[1]=y,t[2]=N,t[3]=0,t[4]=x,t[5]=C,t[6]=b,t[7]=0,t[8]=P,t[9]=w,t[10]=H,t[11]=0,t[12]=n[0]+R-(S*R+x*O+P*L),t[13]=n[1]+O-(y*R+C*O+w*L),t[14]=n[2]+L-(N*R+b*O+H*L),t[15]=1,t},e.fromQuat=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n+n,o=r+r,u=i+i,c=n*s,f=r*s,h=r*o,l=i*s,d=i*o,m=i*u,_=a*s,p=a*o,g=a*u;return t[0]=1-h-m,t[1]=f+g,t[2]=l-p,t[3]=0,t[4]=f-g,t[5]=1-c-m,t[6]=d+_,t[7]=0,t[8]=l+p,t[9]=d-_,t[10]=1-c-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,n,r,i,a,s){var o=1/(n-e),u=1/(i-r),c=1/(a-s);return t[0]=2*a*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*a*u,t[6]=0,t[7]=0,t[8]=(n+e)*o,t[9]=(i+r)*u,t[10]=(s+a)*c,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*a*2*c,t[15]=0,t},e.perspective=function(t,e,n,r,i){var a=1/Math.tan(e/2),s=void 0;return t[0]=a/n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(s=1/(r-i),t[10]=(i+r)*s,t[14]=2*i*r*s):(t[10]=-1,t[14]=-2*r),t},e.perspectiveFromFieldOfView=function(t,e,n,r){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),s=Math.tan(e.leftDegrees*Math.PI/180),o=Math.tan(e.rightDegrees*Math.PI/180),u=2/(s+o),c=2/(i+a);return t[0]=u,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=c,t[6]=0,t[7]=0,t[8]=-(s-o)*u*.5,t[9]=(i-a)*c*.5,t[10]=r/(n-r),t[11]=-1,t[12]=0,t[13]=0,t[14]=r*n/(n-r),t[15]=0,t},e.ortho=function(t,e,n,r,i,a,s){var o=1/(e-n),u=1/(r-i),c=1/(a-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+n)*o,t[13]=(i+r)*u,t[14]=(s+a)*c,t[15]=1,t},e.lookAt=function(t,e,n,a){var s=void 0,o=void 0,u=void 0,c=void 0,f=void 0,h=void 0,l=void 0,d=void 0,m=void 0,_=void 0,p=e[0],g=e[1],E=e[2],v=a[0],T=a[1],A=a[2],M=n[0],I=n[1],R=n[2];return Math.abs(p-M)<r.EPSILON&&Math.abs(g-I)<r.EPSILON&&Math.abs(E-R)<r.EPSILON?i(t):(l=p-M,d=g-I,m=E-R,s=T*(m*=_=1/Math.sqrt(l*l+d*d+m*m))-A*(d*=_),o=A*(l*=_)-v*m,u=v*d-T*l,(_=Math.sqrt(s*s+o*o+u*u))?(s*=_=1/_,o*=_,u*=_):(s=0,o=0,u=0),c=d*u-m*o,f=m*s-l*u,h=l*o-d*s,(_=Math.sqrt(c*c+f*f+h*h))?(c*=_=1/_,f*=_,h*=_):(c=0,f=0,h=0),t[0]=s,t[1]=c,t[2]=l,t[3]=0,t[4]=o,t[5]=f,t[6]=d,t[7]=0,t[8]=u,t[9]=h,t[10]=m,t[11]=0,t[12]=-(s*p+o*g+u*E),t[13]=-(c*p+f*g+h*E),t[14]=-(l*p+d*g+m*E),t[15]=1,t)},e.targetTo=function(t,e,n,r){var i=e[0],a=e[1],s=e[2],o=r[0],u=r[1],c=r[2],f=i-n[0],h=a-n[1],l=s-n[2],d=f*f+h*h+l*l;d>0&&(f*=d=1/Math.sqrt(d),h*=d,l*=d);var m=u*l-c*h,_=c*f-o*l,p=o*h-u*f;return(d=m*m+_*_+p*p)>0&&(m*=d=1/Math.sqrt(d),_*=d,p*=d),t[0]=m,t[1]=_,t[2]=p,t[3]=0,t[4]=h*p-l*_,t[5]=l*m-f*p,t[6]=f*_-h*m,t[7]=0,t[8]=f,t[9]=h,t[10]=l,t[11]=0,t[12]=i,t[13]=a,t[14]=s,t[15]=1,t},e.str=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2)+Math.pow(t[9],2)+Math.pow(t[10],2)+Math.pow(t[11],2)+Math.pow(t[12],2)+Math.pow(t[13],2)+Math.pow(t[14],2)+Math.pow(t[15],2))},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t[9]=e[9]+n[9],t[10]=e[10]+n[10],t[11]=e[11]+n[11],t[12]=e[12]+n[12],t[13]=e[13]+n[13],t[14]=e[14]+n[14],t[15]=e[15]+n[15],t},e.subtract=o,e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t[9]=e[9]*n,t[10]=e[10]*n,t[11]=e[11]*n,t[12]=e[12]*n,t[13]=e[13]*n,t[14]=e[14]*n,t[15]=e[15]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t[9]=e[9]+n[9]*r,t[10]=e[10]+n[10]*r,t[11]=e[11]+n[11]*r,t[12]=e[12]+n[12]*r,t[13]=e[13]+n[13]*r,t[14]=e[14]+n[14]*r,t[15]=e[15]+n[15]*r,t},e.exactEquals=function(t,e){return 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]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],f=t[7],h=t[8],l=t[9],d=t[10],m=t[11],_=t[12],p=t[13],g=t[14],E=t[15],v=e[0],T=e[1],A=e[2],M=e[3],I=e[4],R=e[5],O=e[6],L=e[7],S=e[8],y=e[9],N=e[10],x=e[11],C=e[12],b=e[13],P=e[14],w=e[15];return Math.abs(n-v)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(i-T)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(T))&&Math.abs(a-A)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(A))&&Math.abs(s-M)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(M))&&Math.abs(o-I)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(I))&&Math.abs(u-R)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(R))&&Math.abs(c-O)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(O))&&Math.abs(f-L)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(L))&&Math.abs(h-S)<=r.EPSILON*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(l-y)<=r.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(d-N)<=r.EPSILON*Math.max(1,Math.abs(d),Math.abs(N))&&Math.abs(m-x)<=r.EPSILON*Math.max(1,Math.abs(m),Math.abs(x))&&Math.abs(_-C)<=r.EPSILON*Math.max(1,Math.abs(_),Math.abs(C))&&Math.abs(p-b)<=r.EPSILON*Math.max(1,Math.abs(p),Math.abs(b))&&Math.abs(g-P)<=r.EPSILON*Math.max(1,Math.abs(g),Math.abs(P))&&Math.abs(E-w)<=r.EPSILON*Math.max(1,Math.abs(E),Math.abs(w))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function a(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=e[9],d=e[10],m=e[11],_=e[12],p=e[13],g=e[14],E=e[15],v=n[0],T=n[1],A=n[2],M=n[3];return t[0]=v*r+T*o+A*h+M*_,t[1]=v*i+T*u+A*l+M*p,t[2]=v*a+T*c+A*d+M*g,t[3]=v*s+T*f+A*m+M*E,v=n[4],T=n[5],A=n[6],M=n[7],t[4]=v*r+T*o+A*h+M*_,t[5]=v*i+T*u+A*l+M*p,t[6]=v*a+T*c+A*d+M*g,t[7]=v*s+T*f+A*m+M*E,v=n[8],T=n[9],A=n[10],M=n[11],t[8]=v*r+T*o+A*h+M*_,t[9]=v*i+T*u+A*l+M*p,t[10]=v*a+T*c+A*d+M*g,t[11]=v*s+T*f+A*m+M*E,v=n[12],T=n[13],A=n[14],M=n[15],t[12]=v*r+T*o+A*h+M*_,t[13]=v*i+T*u+A*l+M*p,t[14]=v*a+T*c+A*d+M*g,t[15]=v*s+T*f+A*m+M*E,t}function s(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=r+r,u=i+i,c=a+a,f=r*o,h=r*u,l=r*c,d=i*u,m=i*c,_=a*c,p=s*o,g=s*u,E=s*c;return t[0]=1-(d+_),t[1]=h+E,t[2]=l-g,t[3]=0,t[4]=h-E,t[5]=1-(f+_),t[6]=m+p,t[7]=0,t[8]=l+g,t[9]=m-p,t[10]=1-(f+d),t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function o(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t[9]=e[9]-n[9],t[10]=e[10]-n[10],t[11]=e[11]-n[11],t[12]=e[12]-n[12],t[13]=e[13]-n[13],t[14]=e[14]-n[14],t[15]=e[15]-n[15],t}e.mul=a,e.sub=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(9);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.clone=function(t){var e=new r.ARRAY_TYPE(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},e.copy=function(t,e){return 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},e.fromValues=function(t,e,n,i,a,s,o,u,c){var f=new r.ARRAY_TYPE(9);return f[0]=t,f[1]=e,f[2]=n,f[3]=i,f[4]=a,f[5]=s,f[6]=o,f[7]=u,f[8]=c,f},e.set=function(t,e,n,r,i,a,s,o,u,c){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=u,t[8]=c,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.transpose=function(t,e){if(t===e){var n=e[1],r=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=n,t[5]=e[7],t[6]=r,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=f*s-o*c,l=-f*a+o*u,d=c*a-s*u,m=n*h+r*l+i*d;return m?(m=1/m,t[0]=h*m,t[1]=(-f*r+i*c)*m,t[2]=(o*r-i*s)*m,t[3]=l*m,t[4]=(f*n-i*u)*m,t[5]=(-o*n+i*a)*m,t[6]=d*m,t[7]=(-c*n+r*u)*m,t[8]=(s*n-r*a)*m,t):null},e.adjoint=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8];return t[0]=s*f-o*c,t[1]=i*c-r*f,t[2]=r*o-i*s,t[3]=o*u-a*f,t[4]=n*f-i*u,t[5]=i*a-n*o,t[6]=a*c-s*u,t[7]=r*u-n*c,t[8]=n*s-r*a,t},e.determinant=function(t){var e=t[0],n=t[1],r=t[2],i=t[3],a=t[4],s=t[5],o=t[6],u=t[7],c=t[8];return e*(c*a-s*u)+n*(-c*i+s*o)+r*(u*i-a*o)},e.multiply=i,e.translate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=n[0],d=n[1];return t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=o,t[5]=u,t[6]=l*r+d*s+c,t[7]=l*i+d*o+f,t[8]=l*a+d*u+h,t},e.rotate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=Math.sin(n),d=Math.cos(n);return t[0]=d*r+l*s,t[1]=d*i+l*o,t[2]=d*a+l*u,t[3]=d*s-l*r,t[4]=d*o-l*i,t[5]=d*u-l*a,t[6]=c,t[7]=f,t[8]=h,t},e.scale=function(t,e,n){var r=n[0],i=n[1];return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t},e.fromRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=-n,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat2d=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t},e.fromQuat=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n+n,o=r+r,u=i+i,c=n*s,f=r*s,h=r*o,l=i*s,d=i*o,m=i*u,_=a*s,p=a*o,g=a*u;return t[0]=1-h-m,t[3]=f-g,t[6]=l+p,t[1]=f+g,t[4]=1-c-m,t[7]=d-_,t[2]=l-p,t[5]=d+_,t[8]=1-c-h,t},e.normalFromMat4=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=e[9],l=e[10],d=e[11],m=e[12],_=e[13],p=e[14],g=e[15],E=n*o-r*s,v=n*u-i*s,T=n*c-a*s,A=r*u-i*o,M=r*c-a*o,I=i*c-a*u,R=f*_-h*m,O=f*p-l*m,L=f*g-d*m,S=h*p-l*_,y=h*g-d*_,N=l*g-d*p,x=E*N-v*y+T*S+A*L-M*O+I*R;return x?(x=1/x,t[0]=(o*N-u*y+c*S)*x,t[1]=(u*L-s*N-c*O)*x,t[2]=(s*y-o*L+c*R)*x,t[3]=(i*y-r*N-a*S)*x,t[4]=(n*N-i*L+a*O)*x,t[5]=(r*L-n*y-a*R)*x,t[6]=(_*I-p*M+g*A)*x,t[7]=(p*T-m*I-g*v)*x,t[8]=(m*M-_*T+g*E)*x,t):null},e.projection=function(t,e,n){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/n,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t},e.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2))},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t},e.subtract=a,e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t},e.exactEquals=function(t,e){return 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]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],f=t[7],h=t[8],l=e[0],d=e[1],m=e[2],_=e[3],p=e[4],g=e[5],E=e[6],v=e[7],T=e[8];return Math.abs(n-l)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(i-d)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(a-m)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(s-_)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(o-p)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(u-g)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(c-E)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(E))&&Math.abs(f-v)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(v))&&Math.abs(h-T)<=r.EPSILON*Math.max(1,Math.abs(h),Math.abs(T))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=n[0],d=n[1],m=n[2],_=n[3],p=n[4],g=n[5],E=n[6],v=n[7],T=n[8];return t[0]=l*r+d*s+m*c,t[1]=l*i+d*o+m*f,t[2]=l*a+d*u+m*h,t[3]=_*r+p*s+g*c,t[4]=_*i+p*o+g*f,t[5]=_*a+p*u+g*h,t[6]=E*r+v*s+T*c,t[7]=E*i+v*o+T*f,t[8]=E*a+v*u+T*h,t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t}e.mul=i,e.sub=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.sqrDist=e.dist=e.div=e.mul=e.sub=e.len=void 0,e.create=i,e.clone=function(t){var e=new r.ARRAY_TYPE(2);return e[0]=t[0],e[1]=t[1],e},e.fromValues=function(t,e){var n=new r.ARRAY_TYPE(2);return n[0]=t,n[1]=e,n},e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t},e.set=function(t,e,n){return t[0]=e,t[1]=n,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t},e.subtract=a,e.multiply=s,e.divide=o,e.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t},e.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t},e.min=function(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t},e.max=function(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t},e.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t},e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t},e.scaleAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t},e.distance=u,e.squaredDistance=c,e.length=f,e.squaredLength=h,e.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t},e.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t},e.normalize=function(t,e){var n=e[0],r=e[1],i=n*n+r*r;return i>0&&(i=1/Math.sqrt(i),t[0]=e[0]*i,t[1]=e[1]*i),t},e.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]},e.cross=function(t,e,n){var r=e[0]*n[1]-e[1]*n[0];return t[0]=t[1]=0,t[2]=r,t},e.lerp=function(t,e,n,r){var i=e[0],a=e[1];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t},e.random=function(t,e){e=e||1;var n=2*r.RANDOM()*Math.PI;return t[0]=Math.cos(n)*e,t[1]=Math.sin(n)*e,t},e.transformMat2=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i,t[1]=n[1]*r+n[3]*i,t},e.transformMat2d=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i+n[4],t[1]=n[1]*r+n[3]*i+n[5],t},e.transformMat3=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[3]*i+n[6],t[1]=n[1]*r+n[4]*i+n[7],t},e.transformMat4=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[4]*i+n[12],t[1]=n[1]*r+n[5]*i+n[13],t},e.rotate=function(t,e,n,r){var i=e[0]-n[0],a=e[1]-n[1],s=Math.sin(r),o=Math.cos(r);return t[0]=i*o-a*s+n[0],t[1]=i*s+a*o+n[1],t},e.angle=function(t,e){var n=t[0],r=t[1],i=e[0],a=e[1],s=n*n+r*r;s>0&&(s=1/Math.sqrt(s));var o=i*i+a*a;o>0&&(o=1/Math.sqrt(o));var u=(n*i+r*a)*s*o;return u>1?0:u<-1?Math.PI:Math.acos(u)},e.str=function(t){return"vec2("+t[0]+", "+t[1]+")"},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]},e.equals=function(t,e){var n=t[0],i=t[1],a=e[0],s=e[1];return Math.abs(n-a)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-s)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(){var t=new r.ARRAY_TYPE(2);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0),t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function s(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t}function o(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t}function u(t,e){var n=e[0]-t[0],r=e[1]-t[1];return Math.sqrt(n*n+r*r)}function c(t,e){var n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function f(t){var e=t[0],n=t[1];return Math.sqrt(e*e+n*n)}function h(t){var e=t[0],n=t[1];return e*e+n*n}e.len=f,e.sub=a,e.mul=s,e.div=o,e.dist=u,e.sqrDist=c,e.sqrLen=h,e.forEach=function(){var t=i();return function(e,n,r,i,a,s){var o,u=void 0;for(n||(n=2),r||(r=0),o=i?Math.min(i*n+r,e.length):e.length,u=r;u<o;u+=n)t[0]=e[u],t[1]=e[u+1],a(t,t,s),e[u]=t[0],e[u+1]=t[1];return e}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sqrLen=e.squaredLength=e.len=e.length=e.dot=e.mul=e.setReal=e.getReal=void 0,e.create=function(){var t=new r.ARRAY_TYPE(8);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0),t[3]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(8);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e},e.fromValues=function(t,e,n,i,a,s,o,u){var c=new r.ARRAY_TYPE(8);return c[0]=t,c[1]=e,c[2]=n,c[3]=i,c[4]=a,c[5]=s,c[6]=o,c[7]=u,c},e.fromRotationTranslationValues=function(t,e,n,i,a,s,o){var u=new r.ARRAY_TYPE(8);u[0]=t,u[1]=e,u[2]=n,u[3]=i;var c=.5*a,f=.5*s,h=.5*o;return u[4]=c*i+f*n-h*e,u[5]=f*i+h*t-c*n,u[6]=h*i+c*e-f*t,u[7]=-c*t-f*e-h*n,u},e.fromRotationTranslation=o,e.fromTranslation=function(t,e){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*e[0],t[5]=.5*e[1],t[6]=.5*e[2],t[7]=0,t},e.fromRotation=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},e.fromMat4=function(t,e){var n=i.create();a.getRotation(n,e);var s=new r.ARRAY_TYPE(3);return a.getTranslation(s,e),o(t,n,s),t},e.copy=u,e.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},e.set=function(t,e,n,r,i,a,s,o,u){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=u,t},e.getDual=function(t,e){return t[0]=e[4],t[1]=e[5],t[2]=e[6],t[3]=e[7],t},e.setDual=function(t,e){return t[4]=e[0],t[5]=e[1],t[6]=e[2],t[7]=e[3],t},e.getTranslation=function(t,e){var n=e[4],r=e[5],i=e[6],a=e[7],s=-e[0],o=-e[1],u=-e[2],c=e[3];return t[0]=2*(n*c+a*s+r*u-i*o),t[1]=2*(r*c+a*o+i*s-n*u),t[2]=2*(i*c+a*u+n*o-r*s),t},e.translate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=.5*n[0],u=.5*n[1],c=.5*n[2],f=e[4],h=e[5],l=e[6],d=e[7];return t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=s*o+i*c-a*u+f,t[5]=s*u+a*o-r*c+h,t[6]=s*c+r*u-i*o+l,t[7]=-r*o-i*u-a*c+d,t},e.rotateX=function(t,e,n){var r=-e[0],a=-e[1],s=-e[2],o=e[3],u=e[4],c=e[5],f=e[6],h=e[7],l=u*o+h*r+c*s-f*a,d=c*o+h*a+f*r-u*s,m=f*o+h*s+u*a-c*r,_=h*o-u*r-c*a-f*s;return i.rotateX(t,e,n),r=t[0],a=t[1],s=t[2],o=t[3],t[4]=l*o+_*r+d*s-m*a,t[5]=d*o+_*a+m*r-l*s,t[6]=m*o+_*s+l*a-d*r,t[7]=_*o-l*r-d*a-m*s,t},e.rotateY=function(t,e,n){var r=-e[0],a=-e[1],s=-e[2],o=e[3],u=e[4],c=e[5],f=e[6],h=e[7],l=u*o+h*r+c*s-f*a,d=c*o+h*a+f*r-u*s,m=f*o+h*s+u*a-c*r,_=h*o-u*r-c*a-f*s;return i.rotateY(t,e,n),r=t[0],a=t[1],s=t[2],o=t[3],t[4]=l*o+_*r+d*s-m*a,t[5]=d*o+_*a+m*r-l*s,t[6]=m*o+_*s+l*a-d*r,t[7]=_*o-l*r-d*a-m*s,t},e.rotateZ=function(t,e,n){var r=-e[0],a=-e[1],s=-e[2],o=e[3],u=e[4],c=e[5],f=e[6],h=e[7],l=u*o+h*r+c*s-f*a,d=c*o+h*a+f*r-u*s,m=f*o+h*s+u*a-c*r,_=h*o-u*r-c*a-f*s;return i.rotateZ(t,e,n),r=t[0],a=t[1],s=t[2],o=t[3],t[4]=l*o+_*r+d*s-m*a,t[5]=d*o+_*a+m*r-l*s,t[6]=m*o+_*s+l*a-d*r,t[7]=_*o-l*r-d*a-m*s,t},e.rotateByQuatAppend=function(t,e,n){var r=n[0],i=n[1],a=n[2],s=n[3],o=e[0],u=e[1],c=e[2],f=e[3];return t[0]=o*s+f*r+u*a-c*i,t[1]=u*s+f*i+c*r-o*a,t[2]=c*s+f*a+o*i-u*r,t[3]=f*s-o*r-u*i-c*a,o=e[4],u=e[5],c=e[6],f=e[7],t[4]=o*s+f*r+u*a-c*i,t[5]=u*s+f*i+c*r-o*a,t[6]=c*s+f*a+o*i-u*r,t[7]=f*s-o*r-u*i-c*a,t},e.rotateByQuatPrepend=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*f+s*o+i*c-a*u,t[1]=i*f+s*u+a*o-r*c,t[2]=a*f+s*c+r*u-i*o,t[3]=s*f-r*o-i*u-a*c,o=n[4],u=n[5],c=n[6],f=n[7],t[4]=r*f+s*o+i*c-a*u,t[5]=i*f+s*u+a*o-r*c,t[6]=a*f+s*c+r*u-i*o,t[7]=s*f-r*o-i*u-a*c,t},e.rotateAroundAxis=function(t,e,n,i){if(Math.abs(i)<r.EPSILON)return u(t,e);var a=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);i*=.5;var s=Math.sin(i),o=s*n[0]/a,c=s*n[1]/a,f=s*n[2]/a,h=Math.cos(i),l=e[0],d=e[1],m=e[2],_=e[3];t[0]=l*h+_*o+d*f-m*c,t[1]=d*h+_*c+m*o-l*f,t[2]=m*h+_*f+l*c-d*o,t[3]=_*h-l*o-d*c-m*f;var p=e[4],g=e[5],E=e[6],v=e[7];return t[4]=p*h+v*o+g*f-E*c,t[5]=g*h+v*c+E*o-p*f,t[6]=E*h+v*f+p*c-g*o,t[7]=v*h-p*o-g*c-E*f,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t},e.multiply=c,e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t},e.lerp=function(t,e,n,r){var i=1-r;return f(e,n)<0&&(r=-r),t[0]=e[0]*i+n[0]*r,t[1]=e[1]*i+n[1]*r,t[2]=e[2]*i+n[2]*r,t[3]=e[3]*i+n[3]*r,t[4]=e[4]*i+n[4]*r,t[5]=e[5]*i+n[5]*r,t[6]=e[6]*i+n[6]*r,t[7]=e[7]*i+n[7]*r,t},e.invert=function(t,e){var n=l(e);return t[0]=-e[0]/n,t[1]=-e[1]/n,t[2]=-e[2]/n,t[3]=e[3]/n,t[4]=-e[4]/n,t[5]=-e[5]/n,t[6]=-e[6]/n,t[7]=e[7]/n,t},e.conjugate=function(t,e){return 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},e.normalize=function(t,e){var n=l(e);if(n>0){n=Math.sqrt(n);var r=e[0]/n,i=e[1]/n,a=e[2]/n,s=e[3]/n,o=e[4],u=e[5],c=e[6],f=e[7],h=r*o+i*u+a*c+s*f;t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=(o-r*h)/n,t[5]=(u-i*h)/n,t[6]=(c-a*h)/n,t[7]=(f-s*h)/n}return t},e.str=function(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"},e.exactEquals=function(t,e){return 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]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],f=t[7],h=e[0],l=e[1],d=e[2],m=e[3],_=e[4],p=e[5],g=e[6],E=e[7];return Math.abs(n-h)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(i-l)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(a-d)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(s-m)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(o-_)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(_))&&Math.abs(u-p)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(p))&&Math.abs(c-g)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(g))&&Math.abs(f-E)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(E))};var r=s(n(0)),i=s(n(3)),a=s(n(4));function s(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function o(t,e,n){var r=.5*n[0],i=.5*n[1],a=.5*n[2],s=e[0],o=e[1],u=e[2],c=e[3];return t[0]=s,t[1]=o,t[2]=u,t[3]=c,t[4]=r*c+i*u-a*o,t[5]=i*c+a*s-r*u,t[6]=a*c+r*o-i*s,t[7]=-r*s-i*o-a*u,t}function u(t,e){return 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}function c(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[4],u=n[5],c=n[6],f=n[7],h=e[4],l=e[5],d=e[6],m=e[7],_=n[0],p=n[1],g=n[2],E=n[3];return t[0]=r*E+s*_+i*g-a*p,t[1]=i*E+s*p+a*_-r*g,t[2]=a*E+s*g+r*p-i*_,t[3]=s*E-r*_-i*p-a*g,t[4]=r*f+s*o+i*c-a*u+h*E+m*_+l*g-d*p,t[5]=i*f+s*u+a*o-r*c+l*E+m*p+d*_-h*g,t[6]=a*f+s*c+r*u-i*o+d*E+m*g+h*p-l*_,t[7]=s*f-r*o-i*u-a*c+m*E-h*_-l*p-d*g,t}e.getReal=i.copy,e.setReal=i.copy,e.mul=c;var f=e.dot=i.dot,h=e.length=i.length,l=(e.len=h,e.squaredLength=i.squaredLength);e.sqrLen=l},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(6);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(6);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e},e.copy=function(t,e){return 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},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.fromValues=function(t,e,n,i,a,s){var o=new r.ARRAY_TYPE(6);return o[0]=t,o[1]=e,o[2]=n,o[3]=i,o[4]=a,o[5]=s,o},e.set=function(t,e,n,r,i,a,s){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=n*a-r*i;return u?(u=1/u,t[0]=a*u,t[1]=-r*u,t[2]=-i*u,t[3]=n*u,t[4]=(i*o-a*s)*u,t[5]=(r*s-n*o)*u,t):null},e.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},e.multiply=i,e.rotate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=Math.sin(n),f=Math.cos(n);return t[0]=r*f+a*c,t[1]=i*f+s*c,t[2]=r*-c+a*f,t[3]=i*-c+s*f,t[4]=o,t[5]=u,t},e.scale=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=n[0],f=n[1];return t[0]=r*c,t[1]=i*c,t[2]=a*f,t[3]=s*f,t[4]=o,t[5]=u,t},e.translate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=n[0],f=n[1];return t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=r*c+a*f+o,t[5]=i*c+s*f+u,t},e.fromRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t[4]=0,t[5]=0,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t[4]=0,t[5]=0,t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=e[0],t[5]=e[1],t},e.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+1)},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t},e.subtract=a,e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=e[0],f=e[1],h=e[2],l=e[3],d=e[4],m=e[5];return Math.abs(n-c)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(i-f)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(a-h)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(s-l)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(l))&&Math.abs(o-d)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-m)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(m))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=n[0],f=n[1],h=n[2],l=n[3],d=n[4],m=n[5];return t[0]=r*c+a*f,t[1]=i*c+s*f,t[2]=r*h+a*l,t[3]=i*h+s*l,t[4]=r*d+a*m+o,t[5]=i*d+s*m+u,t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t}e.mul=i,e.sub=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.fromValues=function(t,e,n,i){var a=new r.ARRAY_TYPE(4);return a[0]=t,a[1]=e,a[2]=n,a[3]=i,a},e.set=function(t,e,n,r,i){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t},e.transpose=function(t,e){if(t===e){var n=e[1];t[1]=e[2],t[2]=n}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n*a-i*r;return s?(s=1/s,t[0]=a*s,t[1]=-r*s,t[2]=-i*s,t[3]=n*s,t):null},e.adjoint=function(t,e){var n=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=n,t},e.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},e.multiply=i,e.rotate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u+a*o,t[1]=i*u+s*o,t[2]=r*-o+a*u,t[3]=i*-o+s*u,t},e.scale=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1];return t[0]=r*o,t[1]=i*o,t[2]=a*u,t[3]=s*u,t},e.fromRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t},e.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2))},e.LDU=function(t,e,n,r){return t[2]=r[2]/r[0],n[0]=r[0],n[1]=r[1],n[3]=r[3]-t[2]*n[1],[t,e,n]},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t},e.subtract=a,e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],u=e[1],c=e[2],f=e[3];return Math.abs(n-o)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-u)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))&&Math.abs(a-c)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(s-f)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(f))},e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*o+a*u,t[1]=i*o+s*u,t[2]=r*c+a*f,t[3]=i*c+s*f,t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t}e.mul=i,e.sub=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.vec4=e.vec3=e.vec2=e.quat2=e.quat=e.mat4=e.mat3=e.mat2d=e.mat2=e.glMatrix=void 0;var r=d(n(0)),i=d(n(9)),a=d(n(8)),s=d(n(5)),o=d(n(4)),u=d(n(3)),c=d(n(7)),f=d(n(6)),h=d(n(2)),l=d(n(1));function d(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}e.glMatrix=r,e.mat2=i,e.mat2d=a,e.mat3=s,e.mat4=o,e.quat=u,e.quat2=c,e.vec2=f,e.vec3=h,e.vec4=l}])},function(t,e,n){"use strict";var r=function(){var t,e;try{t=Object.defineProperty,e=Object.defineProperties,t({},"$",{value:0})}catch(n){"__defineGetter__"in Object&&(t=function(t,e,n){return"value"in n&&(t[e]=n.value),"get"in n&&t.__defineGetter__(e,n.get),"set"in n&&t.__defineSetter__(e,n.set),t},e=function(e,n){for(var r in n)n.hasOwnProperty(r)&&t(e,r,n[r]);return e})}var n=function(t){for(var n=1,r=arguments.length;n<r;n++){var i=arguments[n],a=void 0;for(var s in i){var o=i[s];!o||"object"!=typeof o||void 0===o.value&&"function"!=typeof o.get&&"function"!=typeof o.set?t[s]=o:(a=a||{})[s]=o}a&&e(t,a)}return t},r=function(){if(Object.__proto__)return function(t){return{__proto__:t}};var t=function(){};return function(e){return t.prototype=e,new t}}(),i={Extends:function(t){var e=this.prototype,i=r(t.prototype);n(this,t),n(i,e),i.constructor=this,this.prototype=i,this.superclass=t.prototype},Mixes:function(t){t instanceof Array||(t=[t]);for(var e,r=this.prototype;e=t.shift();)n(r,e.prototype||e)},Statics:function(t){n(this,t)}},a=function(t){var e,r,a={};for(r in t)e=t[r],i.hasOwnProperty(r)?i[r].call(this,e):a[r]=e;n(this.prototype,a)};return{create:function(t){var e=(t=t||{}).hasOwnProperty("constructor")?t.constructor:function(){};return a.call(e,t),e},mix:n}}();e.a=r},function(t,e,n){"use strict";var r={};n.r(r),n.d(r,"ACTIVE_ATTRIBUTES",(function(){return o})),n.d(r,"ACTIVE_ATTRIBUTE_MAX_LENGTH",(function(){return u})),n.d(r,"ACTIVE_TEXTURE",(function(){return c})),n.d(r,"ACTIVE_UNIFORMS",(function(){return f})),n.d(r,"ACTIVE_UNIFORM_MAX_LENGTH",(function(){return h})),n.d(r,"ALIASED_LINE_WIDTH_RANGE",(function(){return l})),n.d(r,"ALIASED_POINT_SIZE_RANGE",(function(){return d})),n.d(r,"ALPHA",(function(){return m})),n.d(r,"ALPHA_BITS",(function(){return _})),n.d(r,"ALWAYS",(function(){return p})),n.d(r,"ARRAY_BUFFER",(function(){return g})),n.d(r,"ARRAY_BUFFER_BINDING",(function(){return E})),n.d(r,"ATTACHED_SHADERS",(function(){return v})),n.d(r,"BACK",(function(){return T})),n.d(r,"BLEND",(function(){return A})),n.d(r,"BLEND_COLOR",(function(){return M})),n.d(r,"BLEND_DST_ALPHA",(function(){return I})),n.d(r,"BLEND_DST_RGB",(function(){return R})),n.d(r,"BLEND_EQUATION",(function(){return O})),n.d(r,"BLEND_EQUATION_ALPHA",(function(){return L})),n.d(r,"BLEND_EQUATION_RGB",(function(){return S})),n.d(r,"BLEND_SRC_ALPHA",(function(){return y})),n.d(r,"BLEND_SRC_RGB",(function(){return N})),n.d(r,"BLUE_BITS",(function(){return x})),n.d(r,"BOOL",(function(){return C})),n.d(r,"BOOL_VEC2",(function(){return b})),n.d(r,"BOOL_VEC3",(function(){return P})),n.d(r,"BOOL_VEC4",(function(){return w})),n.d(r,"BROWSER_DEFAULT_WEBGL",(function(){return H})),n.d(r,"BUFFER_SIZE",(function(){return D})),n.d(r,"BUFFER_USAGE",(function(){return F})),n.d(r,"BYTE",(function(){return U})),n.d(r,"CCW",(function(){return G})),n.d(r,"CLAMP_TO_EDGE",(function(){return B})),n.d(r,"COLOR_ATTACHMENT0",(function(){return V})),n.d(r,"COLOR_BUFFER_BIT",(function(){return X})),n.d(r,"COLOR_CLEAR_VALUE",(function(){return j})),n.d(r,"COLOR_WRITEMASK",(function(){return k})),n.d(r,"COMPILE_STATUS",(function(){return W})),n.d(r,"COMPRESSED_TEXTURE_FORMATS",(function(){return Y})),n.d(r,"CONSTANT_ALPHA",(function(){return z})),n.d(r,"CONSTANT_COLOR",(function(){return q})),n.d(r,"CONTEXT_LOST_WEBGL",(function(){return K})),n.d(r,"CULL_FACE",(function(){return Z})),n.d(r,"CULL_FACE_MODE",(function(){return Q})),n.d(r,"CURRENT_PROGRAM",(function(){return J})),n.d(r,"CURRENT_VERTEX_ATTRIB",(function(){return $})),n.d(r,"CW",(function(){return tt})),n.d(r,"DECR",(function(){return et})),n.d(r,"DECR_WRAP",(function(){return nt})),n.d(r,"DELETE_STATUS",(function(){return rt})),n.d(r,"DEPTH_ATTACHMENT",(function(){return it})),n.d(r,"DEPTH_BITS",(function(){return at})),n.d(r,"DEPTH_BUFFER_BIT",(function(){return st})),n.d(r,"DEPTH_CLEAR_VALUE",(function(){return ot})),n.d(r,"DEPTH_COMPONENT",(function(){return ut})),n.d(r,"DEPTH_COMPONENT16",(function(){return ct})),n.d(r,"DEPTH_FUNC",(function(){return ft})),n.d(r,"DEPTH_RANGE",(function(){return ht})),n.d(r,"DEPTH_STENCIL",(function(){return lt})),n.d(r,"DEPTH_STENCIL_ATTACHMENT",(function(){return dt})),n.d(r,"DEPTH_TEST",(function(){return mt})),n.d(r,"DEPTH_WRITEMASK",(function(){return _t})),n.d(r,"DITHER",(function(){return pt})),n.d(r,"DONT_CARE",(function(){return gt})),n.d(r,"DST_ALPHA",(function(){return Et})),n.d(r,"DST_COLOR",(function(){return vt})),n.d(r,"DYNAMIC_DRAW",(function(){return Tt})),n.d(r,"ELEMENT_ARRAY_BUFFER",(function(){return At})),n.d(r,"ELEMENT_ARRAY_BUFFER_BINDING",(function(){return Mt})),n.d(r,"EQUAL",(function(){return It})),n.d(r,"FASTEST",(function(){return Rt})),n.d(r,"FLOAT",(function(){return Ot})),n.d(r,"FLOAT_MAT2",(function(){return Lt})),n.d(r,"FLOAT_MAT3",(function(){return St})),n.d(r,"FLOAT_MAT4",(function(){return yt})),n.d(r,"FLOAT_VEC2",(function(){return Nt})),n.d(r,"FLOAT_VEC3",(function(){return xt})),n.d(r,"FLOAT_VEC4",(function(){return Ct})),n.d(r,"FRAGMENT_SHADER",(function(){return bt})),n.d(r,"FRAMEBUFFER",(function(){return Pt})),n.d(r,"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",(function(){return wt})),n.d(r,"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",(function(){return Ht})),n.d(r,"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",(function(){return Dt})),n.d(r,"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",(function(){return Ft})),n.d(r,"FRAMEBUFFER_BINDING",(function(){return Ut})),n.d(r,"FRAMEBUFFER_COMPLETE",(function(){return Gt})),n.d(r,"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",(function(){return Bt})),n.d(r,"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",(function(){return Vt})),n.d(r,"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",(function(){return Xt})),n.d(r,"FRAMEBUFFER_UNSUPPORTED",(function(){return jt})),n.d(r,"FRONT",(function(){return kt})),n.d(r,"FRONT_AND_BACK",(function(){return Wt})),n.d(r,"FRONT_FACE",(function(){return Yt})),n.d(r,"FUNC_ADD",(function(){return zt})),n.d(r,"FUNC_REVERSE_SUBTRACT",(function(){return qt})),n.d(r,"FUNC_SUBTRACT",(function(){return Kt})),n.d(r,"GENERATE_MIPMAP_HINT",(function(){return Zt})),n.d(r,"GEQUAL",(function(){return Qt})),n.d(r,"GREATER",(function(){return Jt})),n.d(r,"GREEN_BITS",(function(){return $t})),n.d(r,"HIGH_FLOAT",(function(){return te})),n.d(r,"HIGH_INT",(function(){return ee})),n.d(r,"INCR",(function(){return ne})),n.d(r,"INCR_WRAP",(function(){return re})),n.d(r,"INFO_LOG_LENGTH",(function(){return ie})),n.d(r,"INT",(function(){return ae})),n.d(r,"INT_VEC2",(function(){return se})),n.d(r,"INT_VEC3",(function(){return oe})),n.d(r,"INT_VEC4",(function(){return ue})),n.d(r,"INVALID_ENUM",(function(){return ce})),n.d(r,"INVALID_FRAMEBUFFER_OPERATION",(function(){return fe})),n.d(r,"INVALID_OPERATION",(function(){return he})),n.d(r,"INVALID_VALUE",(function(){return le})),n.d(r,"INVERT",(function(){return de})),n.d(r,"KEEP",(function(){return me})),n.d(r,"LEQUAL",(function(){return _e})),n.d(r,"LESS",(function(){return pe})),n.d(r,"LINEAR",(function(){return ge})),n.d(r,"LINEAR_MIPMAP_LINEAR",(function(){return Ee})),n.d(r,"LINEAR_MIPMAP_NEAREST",(function(){return ve})),n.d(r,"LINES",(function(){return Te})),n.d(r,"LINE_LOOP",(function(){return Ae})),n.d(r,"LINE_STRIP",(function(){return Me})),n.d(r,"LINE_WIDTH",(function(){return Ie})),n.d(r,"LINK_STATUS",(function(){return Re})),n.d(r,"LOW_FLOAT",(function(){return Oe})),n.d(r,"LOW_INT",(function(){return Le})),n.d(r,"LUMINANCE",(function(){return Se})),n.d(r,"LUMINANCE_ALPHA",(function(){return ye})),n.d(r,"MAX_COMBINED_TEXTURE_IMAGE_UNITS",(function(){return Ne})),n.d(r,"MAX_CUBE_MAP_TEXTURE_SIZE",(function(){return xe})),n.d(r,"MAX_FRAGMENT_UNIFORM_VECTORS",(function(){return Ce})),n.d(r,"MAX_RENDERBUFFER_SIZE",(function(){return be})),n.d(r,"MAX_TEXTURE_IMAGE_UNITS",(function(){return Pe})),n.d(r,"MAX_TEXTURE_SIZE",(function(){return we})),n.d(r,"MAX_VARYING_VECTORS",(function(){return He})),n.d(r,"MAX_VERTEX_ATTRIBS",(function(){return De})),n.d(r,"MAX_VERTEX_TEXTURE_IMAGE_UNITS",(function(){return Fe})),n.d(r,"MAX_VERTEX_UNIFORM_VECTORS",(function(){return Ue})),n.d(r,"MAX_VIEWPORT_DIMS",(function(){return Ge})),n.d(r,"MEDIUM_FLOAT",(function(){return Be})),n.d(r,"MEDIUM_INT",(function(){return Ve})),n.d(r,"MIRRORED_REPEAT",(function(){return Xe})),n.d(r,"NEAREST",(function(){return je})),n.d(r,"NEAREST_MIPMAP_LINEAR",(function(){return ke})),n.d(r,"NEAREST_MIPMAP_NEAREST",(function(){return We})),n.d(r,"NEVER",(function(){return Ye})),n.d(r,"NICEST",(function(){return ze})),n.d(r,"NONE",(function(){return qe})),n.d(r,"NOTEQUAL",(function(){return Ke})),n.d(r,"NO_ERROR",(function(){return Ze})),n.d(r,"NUM_COMPRESSED_TEXTURE_FORMATS",(function(){return Qe})),n.d(r,"ONE",(function(){return Je})),n.d(r,"ONE_MINUS_CONSTANT_ALPHA",(function(){return $e})),n.d(r,"ONE_MINUS_CONSTANT_COLOR",(function(){return tn})),n.d(r,"ONE_MINUS_DST_ALPHA",(function(){return en})),n.d(r,"ONE_MINUS_DST_COLOR",(function(){return nn})),n.d(r,"ONE_MINUS_SRC_ALPHA",(function(){return rn})),n.d(r,"ONE_MINUS_SRC_COLOR",(function(){return an})),n.d(r,"OUT_OF_MEMORY",(function(){return sn})),n.d(r,"PACK_ALIGNMENT",(function(){return on})),n.d(r,"POINTS",(function(){return un})),n.d(r,"POLYGON_OFFSET_FACTOR",(function(){return cn})),n.d(r,"POLYGON_OFFSET_FILL",(function(){return fn})),n.d(r,"POLYGON_OFFSET_UNITS",(function(){return hn})),n.d(r,"RED_BITS",(function(){return ln})),n.d(r,"RENDERBUFFER",(function(){return dn})),n.d(r,"RENDERBUFFER_ALPHA_SIZE",(function(){return mn})),n.d(r,"RENDERBUFFER_BINDING",(function(){return _n})),n.d(r,"RENDERBUFFER_BLUE_SIZE",(function(){return pn})),n.d(r,"RENDERBUFFER_DEPTH_SIZE",(function(){return gn})),n.d(r,"RENDERBUFFER_GREEN_SIZE",(function(){return En})),n.d(r,"RENDERBUFFER_HEIGHT",(function(){return vn})),n.d(r,"RENDERBUFFER_INTERNAL_FORMAT",(function(){return Tn})),n.d(r,"RENDERBUFFER_RED_SIZE",(function(){return An})),n.d(r,"RENDERBUFFER_STENCIL_SIZE",(function(){return Mn})),n.d(r,"RENDERBUFFER_WIDTH",(function(){return In})),n.d(r,"RENDERER",(function(){return Rn})),n.d(r,"REPEAT",(function(){return On})),n.d(r,"REPLACE",(function(){return Ln})),n.d(r,"RGB",(function(){return Sn})),n.d(r,"RGB5_A1",(function(){return yn})),n.d(r,"RGB565",(function(){return Nn})),n.d(r,"RGBA",(function(){return xn})),n.d(r,"RGBA4",(function(){return Cn})),n.d(r,"SAMPLER_2D",(function(){return bn})),n.d(r,"SAMPLER_CUBE",(function(){return Pn})),n.d(r,"SAMPLES",(function(){return wn})),n.d(r,"SAMPLE_ALPHA_TO_COVERAGE",(function(){return Hn})),n.d(r,"SAMPLE_BUFFERS",(function(){return Dn})),n.d(r,"SAMPLE_COVERAGE",(function(){return Fn})),n.d(r,"SAMPLE_COVERAGE_INVERT",(function(){return Un})),n.d(r,"SAMPLE_COVERAGE_VALUE",(function(){return Gn})),n.d(r,"SCISSOR_BOX",(function(){return Bn})),n.d(r,"SCISSOR_TEST",(function(){return Vn})),n.d(r,"SHADER_COMPILER",(function(){return Xn})),n.d(r,"SHADER_SOURCE_LENGTH",(function(){return jn})),n.d(r,"SHADER_TYPE",(function(){return kn})),n.d(r,"SHADING_LANGUAGE_VERSION",(function(){return Wn})),n.d(r,"SHORT",(function(){return Yn})),n.d(r,"SRC_ALPHA",(function(){return zn})),n.d(r,"SRC_ALPHA_SATURATE",(function(){return qn})),n.d(r,"SRC_COLOR",(function(){return Kn})),n.d(r,"STATIC_DRAW",(function(){return Zn})),n.d(r,"STENCIL_ATTACHMENT",(function(){return Qn})),n.d(r,"STENCIL_BACK_FAIL",(function(){return Jn})),n.d(r,"STENCIL_BACK_FUNC",(function(){return $n})),n.d(r,"STENCIL_BACK_PASS_DEPTH_FAIL",(function(){return tr})),n.d(r,"STENCIL_BACK_PASS_DEPTH_PASS",(function(){return er})),n.d(r,"STENCIL_BACK_REF",(function(){return nr})),n.d(r,"STENCIL_BACK_VALUE_MASK",(function(){return rr})),n.d(r,"STENCIL_BACK_WRITEMASK",(function(){return ir})),n.d(r,"STENCIL_BITS",(function(){return ar})),n.d(r,"STENCIL_BUFFER_BIT",(function(){return sr})),n.d(r,"STENCIL_CLEAR_VALUE",(function(){return or})),n.d(r,"STENCIL_FAIL",(function(){return ur})),n.d(r,"STENCIL_FUNC",(function(){return cr})),n.d(r,"STENCIL_INDEX",(function(){return fr})),n.d(r,"STENCIL_INDEX8",(function(){return hr})),n.d(r,"STENCIL_PASS_DEPTH_FAIL",(function(){return lr})),n.d(r,"STENCIL_PASS_DEPTH_PASS",(function(){return dr})),n.d(r,"STENCIL_REF",(function(){return mr})),n.d(r,"STENCIL_TEST",(function(){return _r})),n.d(r,"STENCIL_VALUE_MASK",(function(){return pr})),n.d(r,"STENCIL_WRITEMASK",(function(){return gr})),n.d(r,"STREAM_DRAW",(function(){return Er})),n.d(r,"SUBPIXEL_BITS",(function(){return vr})),n.d(r,"TEXTURE",(function(){return Tr})),n.d(r,"TEXTURE0",(function(){return Ar})),n.d(r,"TEXTURE1",(function(){return Mr})),n.d(r,"TEXTURE2",(function(){return Ir})),n.d(r,"TEXTURE3",(function(){return Rr})),n.d(r,"TEXTURE4",(function(){return Or})),n.d(r,"TEXTURE5",(function(){return Lr})),n.d(r,"TEXTURE6",(function(){return Sr})),n.d(r,"TEXTURE7",(function(){return yr})),n.d(r,"TEXTURE8",(function(){return Nr})),n.d(r,"TEXTURE9",(function(){return xr})),n.d(r,"TEXTURE10",(function(){return Cr})),n.d(r,"TEXTURE11",(function(){return br})),n.d(r,"TEXTURE12",(function(){return Pr})),n.d(r,"TEXTURE13",(function(){return wr})),n.d(r,"TEXTURE14",(function(){return Hr})),n.d(r,"TEXTURE15",(function(){return Dr})),n.d(r,"TEXTURE16",(function(){return Fr})),n.d(r,"TEXTURE17",(function(){return Ur})),n.d(r,"TEXTURE18",(function(){return Gr})),n.d(r,"TEXTURE19",(function(){return Br})),n.d(r,"TEXTURE20",(function(){return Vr})),n.d(r,"TEXTURE21",(function(){return Xr})),n.d(r,"TEXTURE22",(function(){return jr})),n.d(r,"TEXTURE23",(function(){return kr})),n.d(r,"TEXTURE24",(function(){return Wr})),n.d(r,"TEXTURE25",(function(){return Yr})),n.d(r,"TEXTURE26",(function(){return zr})),n.d(r,"TEXTURE27",(function(){return qr})),n.d(r,"TEXTURE28",(function(){return Kr})),n.d(r,"TEXTURE29",(function(){return Zr})),n.d(r,"TEXTURE30",(function(){return Qr})),n.d(r,"TEXTURE31",(function(){return Jr})),n.d(r,"TEXTURE_2D",(function(){return $r})),n.d(r,"TEXTURE_BINDING_2D",(function(){return ti})),n.d(r,"TEXTURE_BINDING_CUBE_MAP",(function(){return ei})),n.d(r,"TEXTURE_CUBE_MAP",(function(){return ni})),n.d(r,"TEXTURE_CUBE_MAP_NEGATIVE_X",(function(){return ri})),n.d(r,"TEXTURE_CUBE_MAP_NEGATIVE_Y",(function(){return ii})),n.d(r,"TEXTURE_CUBE_MAP_NEGATIVE_Z",(function(){return ai})),n.d(r,"TEXTURE_CUBE_MAP_POSITIVE_X",(function(){return si})),n.d(r,"TEXTURE_CUBE_MAP_POSITIVE_Y",(function(){return oi})),n.d(r,"TEXTURE_CUBE_MAP_POSITIVE_Z",(function(){return ui})),n.d(r,"TEXTURE_MAG_FILTER",(function(){return ci})),n.d(r,"TEXTURE_MIN_FILTER",(function(){return fi})),n.d(r,"TEXTURE_WRAP_S",(function(){return hi})),n.d(r,"TEXTURE_WRAP_T",(function(){return li})),n.d(r,"TRIANGLES",(function(){return di})),n.d(r,"TRIANGLE_FAN",(function(){return mi})),n.d(r,"TRIANGLE_STRIP",(function(){return _i})),n.d(r,"UNPACK_ALIGNMENT",(function(){return pi})),n.d(r,"UNPACK_COLORSPACE_CONVERSION_WEBGL",(function(){return gi})),n.d(r,"UNPACK_FLIP_Y_WEBGL",(function(){return Ei})),n.d(r,"UNPACK_PREMULTIPLY_ALPHA_WEBGL",(function(){return vi})),n.d(r,"UNSIGNED_BYTE",(function(){return Ti})),n.d(r,"UNSIGNED_INT",(function(){return Ai})),n.d(r,"UNSIGNED_SHORT",(function(){return Mi})),n.d(r,"UNSIGNED_SHORT_4_4_4_4",(function(){return Ii})),n.d(r,"UNSIGNED_SHORT_5_5_5_1",(function(){return Ri})),n.d(r,"UNSIGNED_SHORT_5_6_5",(function(){return Oi})),n.d(r,"VALIDATE_STATUS",(function(){return Li})),n.d(r,"VENDOR",(function(){return Si})),n.d(r,"VERSION",(function(){return yi})),n.d(r,"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",(function(){return Ni})),n.d(r,"VERTEX_ATTRIB_ARRAY_ENABLED",(function(){return xi})),n.d(r,"VERTEX_ATTRIB_ARRAY_NORMALIZED",(function(){return Ci})),n.d(r,"VERTEX_ATTRIB_ARRAY_POINTER",(function(){return bi})),n.d(r,"VERTEX_ATTRIB_ARRAY_SIZE",(function(){return Pi})),n.d(r,"VERTEX_ATTRIB_ARRAY_STRIDE",(function(){return wi})),n.d(r,"VERTEX_ATTRIB_ARRAY_TYPE",(function(){return Hi})),n.d(r,"VERTEX_SHADER",(function(){return Di})),n.d(r,"VIEWPORT",(function(){return Fi})),n.d(r,"ZERO",(function(){return Ui}));var i={};n.r(i),n.d(i,"READ_BUFFER",(function(){return Gi})),n.d(i,"UNPACK_ROW_LENGTH",(function(){return Bi})),n.d(i,"UNPACK_SKIP_ROWS",(function(){return Vi})),n.d(i,"UNPACK_SKIP_PIXELS",(function(){return Xi})),n.d(i,"PACK_ROW_LENGTH",(function(){return ji})),n.d(i,"PACK_SKIP_ROWS",(function(){return ki})),n.d(i,"PACK_SKIP_PIXELS",(function(){return Wi})),n.d(i,"TEXTURE_BINDING_3D",(function(){return Yi})),n.d(i,"UNPACK_SKIP_IMAGES",(function(){return zi})),n.d(i,"UNPACK_IMAGE_HEIGHT",(function(){return qi})),n.d(i,"MAX_3D_TEXTURE_SIZE",(function(){return Ki})),n.d(i,"MAX_ELEMENTS_VERTICES",(function(){return Zi})),n.d(i,"MAX_ELEMENTS_INDICES",(function(){return Qi})),n.d(i,"MAX_TEXTURE_LOD_BIAS",(function(){return Ji})),n.d(i,"MAX_FRAGMENT_UNIFORM_COMPONENTS",(function(){return $i})),n.d(i,"MAX_VERTEX_UNIFORM_COMPONENTS",(function(){return ta})),n.d(i,"MAX_ARRAY_TEXTURE_LAYERS",(function(){return ea})),n.d(i,"MIN_PROGRAM_TEXEL_OFFSET",(function(){return na})),n.d(i,"MAX_PROGRAM_TEXEL_OFFSET",(function(){return ra})),n.d(i,"MAX_VARYING_COMPONENTS",(function(){return ia})),n.d(i,"FRAGMENT_SHADER_DERIVATIVE_HINT",(function(){return aa})),n.d(i,"RASTERIZER_DISCARD",(function(){return sa})),n.d(i,"VERTEX_ARRAY_BINDING",(function(){return oa})),n.d(i,"MAX_VERTEX_OUTPUT_COMPONENTS",(function(){return ua})),n.d(i,"MAX_FRAGMENT_INPUT_COMPONENTS",(function(){return ca})),n.d(i,"MAX_SERVER_WAIT_TIMEOUT",(function(){return fa})),n.d(i,"MAX_ELEMENT_INDEX",(function(){return ha})),n.d(i,"RED",(function(){return la})),n.d(i,"RGB8",(function(){return da})),n.d(i,"RGBA8",(function(){return ma})),n.d(i,"RGB10_A2",(function(){return _a})),n.d(i,"TEXTURE_3D",(function(){return pa})),n.d(i,"TEXTURE_WRAP_R",(function(){return ga})),n.d(i,"TEXTURE_MIN_LOD",(function(){return Ea})),n.d(i,"TEXTURE_MAX_LOD",(function(){return va})),n.d(i,"TEXTURE_BASE_LEVEL",(function(){return Ta})),n.d(i,"TEXTURE_MAX_LEVEL",(function(){return Aa})),n.d(i,"TEXTURE_COMPARE_MODE",(function(){return Ma})),n.d(i,"TEXTURE_COMPARE_FUNC",(function(){return Ia})),n.d(i,"SRGB",(function(){return Ra})),n.d(i,"SRGB8",(function(){return Oa})),n.d(i,"SRGB8_ALPHA8",(function(){return La})),n.d(i,"COMPARE_REF_TO_TEXTURE",(function(){return Sa})),n.d(i,"RGBA32F",(function(){return ya})),n.d(i,"RGB32F",(function(){return Na})),n.d(i,"RGBA16F",(function(){return xa})),n.d(i,"RGB16F",(function(){return Ca})),n.d(i,"TEXTURE_2D_ARRAY",(function(){return ba})),n.d(i,"TEXTURE_BINDING_2D_ARRAY",(function(){return Pa})),n.d(i,"R11F_G11F_B10F",(function(){return wa})),n.d(i,"RGB9_E5",(function(){return Ha})),n.d(i,"RGBA32UI",(function(){return Da})),n.d(i,"RGB32UI",(function(){return Fa})),n.d(i,"RGBA16UI",(function(){return Ua})),n.d(i,"RGB16UI",(function(){return Ga})),n.d(i,"RGBA8UI",(function(){return Ba})),n.d(i,"RGB8UI",(function(){return Va})),n.d(i,"RGBA32I",(function(){return Xa})),n.d(i,"RGB32I",(function(){return ja})),n.d(i,"RGBA16I",(function(){return ka})),n.d(i,"RGB16I",(function(){return Wa})),n.d(i,"RGBA8I",(function(){return Ya})),n.d(i,"RGB8I",(function(){return za})),n.d(i,"RED_INTEGER",(function(){return qa})),n.d(i,"RGB_INTEGER",(function(){return Ka})),n.d(i,"RGBA_INTEGER",(function(){return Za})),n.d(i,"R8",(function(){return Qa})),n.d(i,"RG8",(function(){return Ja})),n.d(i,"R16F",(function(){return $a})),n.d(i,"R32F",(function(){return ts})),n.d(i,"RG16F",(function(){return es})),n.d(i,"RG32F",(function(){return ns})),n.d(i,"R8I",(function(){return rs})),n.d(i,"R8UI",(function(){return is})),n.d(i,"R16I",(function(){return as})),n.d(i,"R16UI",(function(){return ss})),n.d(i,"R32I",(function(){return os})),n.d(i,"R32UI",(function(){return us})),n.d(i,"RG8I",(function(){return cs})),n.d(i,"RG8UI",(function(){return fs})),n.d(i,"RG16I",(function(){return hs})),n.d(i,"RG16UI",(function(){return ls})),n.d(i,"RG32I",(function(){return ds})),n.d(i,"RG32UI",(function(){return ms})),n.d(i,"R8_SNORM",(function(){return _s})),n.d(i,"RG8_SNORM",(function(){return ps})),n.d(i,"RGB8_SNORM",(function(){return gs})),n.d(i,"RGBA8_SNORM",(function(){return Es})),n.d(i,"RGB10_A2UI",(function(){return vs})),n.d(i,"TEXTURE_IMMUTABLE_FORMAT",(function(){return Ts})),n.d(i,"TEXTURE_IMMUTABLE_LEVELS",(function(){return As})),n.d(i,"UNSIGNED_INT_2_10_10_10_REV",(function(){return Ms})),n.d(i,"UNSIGNED_INT_10F_11F_11F_REV",(function(){return Is})),n.d(i,"UNSIGNED_INT_5_9_9_9_REV",(function(){return Rs})),n.d(i,"FLOAT_32_UNSIGNED_INT_24_8_REV",(function(){return Os})),n.d(i,"UNSIGNED_INT_24_8",(function(){return Ls})),n.d(i,"HALF_FLOAT",(function(){return Ss})),n.d(i,"RG",(function(){return ys})),n.d(i,"RG_INTEGER",(function(){return Ns})),n.d(i,"INT_2_10_10_10_REV",(function(){return xs})),n.d(i,"URRENT_QUERY",(function(){return Cs})),n.d(i,"QUERY_RESULT",(function(){return bs})),n.d(i,"QUERY_RESULT_AVAILABLE",(function(){return Ps})),n.d(i,"ANY_SAMPLES_PASSED",(function(){return ws})),n.d(i,"ANY_SAMPLES_PASSED_CONSERVATIVE",(function(){return Hs})),n.d(i,"MAX_DRAW_BUFFERS",(function(){return Ds})),n.d(i,"DRAW_BUFFER0",(function(){return Fs})),n.d(i,"DRAW_BUFFER1",(function(){return Us})),n.d(i,"DRAW_BUFFER2",(function(){return Gs})),n.d(i,"DRAW_BUFFER3",(function(){return Bs})),n.d(i,"DRAW_BUFFER4",(function(){return Vs})),n.d(i,"DRAW_BUFFER5",(function(){return Xs})),n.d(i,"DRAW_BUFFER6",(function(){return js})),n.d(i,"DRAW_BUFFER7",(function(){return ks})),n.d(i,"DRAW_BUFFER8",(function(){return Ws})),n.d(i,"DRAW_BUFFER9",(function(){return Ys})),n.d(i,"DRAW_BUFFER10",(function(){return zs})),n.d(i,"DRAW_BUFFER11",(function(){return qs})),n.d(i,"DRAW_BUFFER12",(function(){return Ks})),n.d(i,"DRAW_BUFFER13",(function(){return Zs})),n.d(i,"DRAW_BUFFER14",(function(){return Qs})),n.d(i,"DRAW_BUFFER15",(function(){return Js})),n.d(i,"MAX_COLOR_ATTACHMENTS",(function(){return $s})),n.d(i,"COLOR_ATTACHMENT1",(function(){return to})),n.d(i,"COLOR_ATTACHMENT2",(function(){return eo})),n.d(i,"COLOR_ATTACHMENT3",(function(){return no})),n.d(i,"COLOR_ATTACHMENT4",(function(){return ro})),n.d(i,"COLOR_ATTACHMENT5",(function(){return io})),n.d(i,"COLOR_ATTACHMENT6",(function(){return ao})),n.d(i,"COLOR_ATTACHMENT7",(function(){return so})),n.d(i,"COLOR_ATTACHMENT8",(function(){return oo})),n.d(i,"COLOR_ATTACHMENT9",(function(){return uo})),n.d(i,"COLOR_ATTACHMENT10",(function(){return co})),n.d(i,"COLOR_ATTACHMENT11",(function(){return fo})),n.d(i,"COLOR_ATTACHMENT12",(function(){return ho})),n.d(i,"COLOR_ATTACHMENT13",(function(){return lo})),n.d(i,"COLOR_ATTACHMENT14",(function(){return mo})),n.d(i,"COLOR_ATTACHMENT15",(function(){return _o})),n.d(i,"SAMPLER_3D",(function(){return po})),n.d(i,"SAMPLER_2D_SHADOW",(function(){return go})),n.d(i,"SAMPLER_2D_ARRAY",(function(){return Eo})),n.d(i,"SAMPLER_2D_ARRAY_SHADOW",(function(){return vo})),n.d(i,"SAMPLER_CUBE_SHADOW",(function(){return To})),n.d(i,"INT_SAMPLER_2D",(function(){return Ao})),n.d(i,"INT_SAMPLER_3D",(function(){return Mo})),n.d(i,"INT_SAMPLER_CUBE",(function(){return Io})),n.d(i,"INT_SAMPLER_2D_ARRAY",(function(){return Ro})),n.d(i,"UNSIGNED_INT_SAMPLER_2D",(function(){return Oo})),n.d(i,"UNSIGNED_INT_SAMPLER_3D",(function(){return Lo})),n.d(i,"UNSIGNED_INT_SAMPLER_CUBE",(function(){return So})),n.d(i,"UNSIGNED_INT_SAMPLER_2D_ARRAY",(function(){return yo})),n.d(i,"MAX_SAMPLES",(function(){return No})),n.d(i,"SAMPLER_BINDING",(function(){return xo})),n.d(i,"PIXEL_PACK_BUFFER",(function(){return Co})),n.d(i,"PIXEL_UNPACK_BUFFER",(function(){return bo})),n.d(i,"PIXEL_PACK_BUFFER_BINDING",(function(){return Po})),n.d(i,"PIXEL_UNPACK_BUFFER_BINDING",(function(){return wo})),n.d(i,"COPY_READ_BUFFER",(function(){return Ho})),n.d(i,"COPY_WRITE_BUFFER",(function(){return Do})),n.d(i,"COPY_READ_BUFFER_BINDING",(function(){return Fo})),n.d(i,"COPY_WRITE_BUFFER_BINDING",(function(){return Uo})),n.d(i,"FLOAT_MAT2x3",(function(){return Go})),n.d(i,"FLOAT_MAT2x4",(function(){return Bo})),n.d(i,"FLOAT_MAT3x2",(function(){return Vo})),n.d(i,"FLOAT_MAT3x4",(function(){return Xo})),n.d(i,"FLOAT_MAT4x2",(function(){return jo})),n.d(i,"FLOAT_MAT4x3",(function(){return ko})),n.d(i,"UNSIGNED_INT_VEC2",(function(){return Wo})),n.d(i,"UNSIGNED_INT_VEC3",(function(){return Yo})),n.d(i,"UNSIGNED_INT_VEC4",(function(){return zo})),n.d(i,"UNSIGNED_NORMALIZED",(function(){return qo})),n.d(i,"SIGNED_NORMALIZED",(function(){return Ko})),n.d(i,"VERTEX_ATTRIB_ARRAY_INTEGER",(function(){return Zo})),n.d(i,"VERTEX_ATTRIB_ARRAY_DIVISOR",(function(){return Qo})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_MODE",(function(){return Jo})),n.d(i,"MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",(function(){return $o})),n.d(i,"TRANSFORM_FEEDBACK_VARYINGS",(function(){return tu})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_START",(function(){return eu})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_SIZE",(function(){return nu})),n.d(i,"TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",(function(){return ru})),n.d(i,"MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",(function(){return iu})),n.d(i,"MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",(function(){return au})),n.d(i,"INTERLEAVED_ATTRIBS",(function(){return su})),n.d(i,"SEPARATE_ATTRIBS",(function(){return ou})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER",(function(){return uu})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_BINDING",(function(){return cu})),n.d(i,"TRANSFORM_FEEDBACK",(function(){return fu})),n.d(i,"TRANSFORM_FEEDBACK_PAUSED",(function(){return hu})),n.d(i,"TRANSFORM_FEEDBACK_ACTIVE",(function(){return lu})),n.d(i,"TRANSFORM_FEEDBACK_BINDING",(function(){return du})),n.d(i,"FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",(function(){return mu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",(function(){return _u})),n.d(i,"FRAMEBUFFER_ATTACHMENT_RED_SIZE",(function(){return pu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",(function(){return gu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",(function(){return Eu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",(function(){return vu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",(function(){return Tu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",(function(){return Au})),n.d(i,"FRAMEBUFFER_DEFAULT",(function(){return Mu})),n.d(i,"DEPTH_STENCIL_ATTACHMENT",(function(){return Iu})),n.d(i,"DEPTH_STENCIL",(function(){return Ru})),n.d(i,"DEPTH24_STENCIL8",(function(){return Ou})),n.d(i,"DRAW_FRAMEBUFFER_BINDING",(function(){return Lu})),n.d(i,"READ_FRAMEBUFFER",(function(){return Su})),n.d(i,"DRAW_FRAMEBUFFER",(function(){return yu})),n.d(i,"READ_FRAMEBUFFER_BINDING",(function(){return Nu})),n.d(i,"RENDERBUFFER_SAMPLES",(function(){return xu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",(function(){return Cu})),n.d(i,"FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",(function(){return bu})),n.d(i,"UNIFORM_BUFFER",(function(){return Pu})),n.d(i,"UNIFORM_BUFFER_BINDING",(function(){return wu})),n.d(i,"UNIFORM_BUFFER_START",(function(){return Hu})),n.d(i,"UNIFORM_BUFFER_SIZE",(function(){return Du})),n.d(i,"MAX_VERTEX_UNIFORM_BLOCKS",(function(){return Fu})),n.d(i,"MAX_FRAGMENT_UNIFORM_BLOCKS",(function(){return Uu})),n.d(i,"MAX_COMBINED_UNIFORM_BLOCKS",(function(){return Gu})),n.d(i,"MAX_UNIFORM_BUFFER_BINDINGS",(function(){return Bu})),n.d(i,"MAX_UNIFORM_BLOCK_SIZE",(function(){return Vu})),n.d(i,"MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",(function(){return Xu})),n.d(i,"MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",(function(){return ju})),n.d(i,"UNIFORM_BUFFER_OFFSET_ALIGNMENT",(function(){return ku})),n.d(i,"ACTIVE_UNIFORM_BLOCKS",(function(){return Wu})),n.d(i,"UNIFORM_TYPE",(function(){return Yu})),n.d(i,"UNIFORM_SIZE",(function(){return zu})),n.d(i,"UNIFORM_BLOCK_INDEX",(function(){return qu})),n.d(i,"UNIFORM_OFFSET",(function(){return Ku})),n.d(i,"UNIFORM_ARRAY_STRIDE",(function(){return Zu})),n.d(i,"UNIFORM_MATRIX_STRIDE",(function(){return Qu})),n.d(i,"UNIFORM_IS_ROW_MAJOR",(function(){return Ju})),n.d(i,"UNIFORM_BLOCK_BINDING",(function(){return $u})),n.d(i,"UNIFORM_BLOCK_DATA_SIZE",(function(){return tc})),n.d(i,"UNIFORM_BLOCK_ACTIVE_UNIFORMS",(function(){return ec})),n.d(i,"UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",(function(){return nc})),n.d(i,"UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",(function(){return rc})),n.d(i,"UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",(function(){return ic})),n.d(i,"OBJECT_TYPE",(function(){return ac})),n.d(i,"SYNC_CONDITION",(function(){return sc})),n.d(i,"SYNC_STATUS",(function(){return oc})),n.d(i,"SYNC_FLAGS",(function(){return uc})),n.d(i,"SYNC_FENCE",(function(){return cc})),n.d(i,"SYNC_GPU_COMMANDS_COMPLETE",(function(){return fc})),n.d(i,"UNSIGNALED",(function(){return hc})),n.d(i,"SIGNALED",(function(){return lc})),n.d(i,"ALREADY_SIGNALED",(function(){return dc})),n.d(i,"TIMEOUT_EXPIRED",(function(){return mc})),n.d(i,"CONDITION_SATISFIED",(function(){return _c})),n.d(i,"WAIT_FAILED",(function(){return pc})),n.d(i,"SYNC_FLUSH_COMMANDS_BIT",(function(){return gc})),n.d(i,"COLOR",(function(){return Ec})),n.d(i,"DEPTH",(function(){return vc})),n.d(i,"STENCIL",(function(){return Tc})),n.d(i,"MIN",(function(){return Ac})),n.d(i,"MAX",(function(){return Mc})),n.d(i,"DEPTH_COMPONENT24",(function(){return Ic})),n.d(i,"STREAM_READ",(function(){return Rc})),n.d(i,"STREAM_COPY",(function(){return Oc})),n.d(i,"STATIC_READ",(function(){return Lc})),n.d(i,"STATIC_COPY",(function(){return Sc})),n.d(i,"DYNAMIC_READ",(function(){return yc})),n.d(i,"DYNAMIC_COPY",(function(){return Nc})),n.d(i,"DEPTH_COMPONENT32F",(function(){return xc})),n.d(i,"DEPTH32F_STENCIL8",(function(){return Cc})),n.d(i,"INVALID_INDEX",(function(){return bc})),n.d(i,"TIMEOUT_IGNO",(function(){return Pc})),n.d(i,"MAX_CLIENT_WAIT_TIMEOUT_WEBGL",(function(){return wc}));var a={};n.r(a),n.d(a,"VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",(function(){return Hc})),n.d(a,"UNMASKED_VENDOR_WEBGL",(function(){return Dc})),n.d(a,"UNMASKED_RENDERER_WEBGL",(function(){return Fc})),n.d(a,"MAX_TEXTURE_MAX_ANISOTROPY_EXT",(function(){return Uc})),n.d(a,"TEXTURE_MAX_ANISOTROPY_EXT",(function(){return Gc})),n.d(a,"COMPRESSED_RGB_S3TC_DXT1_EXT",(function(){return Bc})),n.d(a,"COMPRESSED_RGBA_S3TC_DXT1_EXT",(function(){return Vc})),n.d(a,"COMPRESSED_RGBA_S3TC_DXT3_EXT",(function(){return Xc})),n.d(a,"COMPRESSED_RGBA_S3TC_DXT5_EXT",(function(){return jc})),n.d(a,"COMPRESSED_R11_EAC",(function(){return kc})),n.d(a,"COMPRESSED_SIGNED_R11_EAC",(function(){return Wc})),n.d(a,"COMPRESSED_RG11_EAC",(function(){return Yc})),n.d(a,"COMPRESSED_SIGNED_RG11_EAC",(function(){return zc})),n.d(a,"COMPRESSED_RGB8_ETC2",(function(){return qc})),n.d(a,"COMPRESSED_RGBA8_ETC2_EAC",(function(){return Kc})),n.d(a,"COMPRESSED_SRGB8_ETC2",(function(){return Zc})),n.d(a,"COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",(function(){return Qc})),n.d(a,"COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",(function(){return Jc})),n.d(a,"COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",(function(){return $c})),n.d(a,"COMPRESSED_RGB_PVRTC_4BPPV1_IMG",(function(){return tf})),n.d(a,"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",(function(){return ef})),n.d(a,"COMPRESSED_RGB_PVRTC_2BPPV1_IMG",(function(){return nf})),n.d(a,"COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",(function(){return rf})),n.d(a,"COMPRESSED_RGB_ETC1_WEBGL",(function(){return af})),n.d(a,"_WEBGL",(function(){return sf})),n.d(a,"COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",(function(){return of})),n.d(a,"COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",(function(){return uf})),n.d(a,"UNSIGNED_INT_24_8_WEBGL",(function(){return cf})),n.d(a,"HALF_FLOAT_OES",(function(){return ff})),n.d(a,"RGBA32F_EXT",(function(){return hf})),n.d(a,"RGB32F_EXT",(function(){return lf})),n.d(a,"FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",(function(){return df})),n.d(a,"UNSIGNED_NORMALIZED_EXT",(function(){return mf})),n.d(a,"MIN_EXT",(function(){return _f})),n.d(a,"MAX_EXT",(function(){return pf})),n.d(a,"SRGB_EXT",(function(){return gf})),n.d(a,"SRGB_ALPHA_EXT",(function(){return Ef})),n.d(a,"SRGB8_ALPHA8_EXT",(function(){return vf})),n.d(a,"FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",(function(){return Tf})),n.d(a,"FRAGMENT_SHADER_DERIVATIVE_HINT_OES",(function(){return Af})),n.d(a,"COLOR_ATTACHMENT0_WEBGL",(function(){return Mf})),n.d(a,"COLOR_ATTACHMENT1_WEBGL",(function(){return If})),n.d(a,"COLOR_ATTACHMENT2_WEBGL",(function(){return Rf})),n.d(a,"COLOR_ATTACHMENT3_WEBGL",(function(){return Of})),n.d(a,"COLOR_ATTACHMENT4_WEBGL",(function(){return Lf})),n.d(a,"COLOR_ATTACHMENT5_WEBGL",(function(){return Sf})),n.d(a,"COLOR_ATTACHMENT6_WEBGL",(function(){return yf})),n.d(a,"COLOR_ATTACHMENT7_WEBGL",(function(){return Nf})),n.d(a,"COLOR_ATTACHMENT8_WEBGL",(function(){return xf})),n.d(a,"COLOR_ATTACHMENT9_WEBGL",(function(){return Cf})),n.d(a,"COLOR_ATTACHMENT10_WEBGL",(function(){return bf})),n.d(a,"COLOR_ATTACHMENT11_WEBGL",(function(){return Pf})),n.d(a,"COLOR_ATTACHMENT12_WEBGL",(function(){return wf})),n.d(a,"COLOR_ATTACHMENT13_WEBGL",(function(){return Hf})),n.d(a,"COLOR_ATTACHMENT14_WEBGL",(function(){return Df})),n.d(a,"COLOR_ATTACHMENT15_WEBGL",(function(){return Ff})),n.d(a,"DRAW_BUFFER0_WEBGL",(function(){return Uf})),n.d(a,"DRAW_BUFFER1_WEBGL",(function(){return Gf})),n.d(a,"DRAW_BUFFER2_WEBGL",(function(){return Bf})),n.d(a,"DRAW_BUFFER3_WEBGL",(function(){return Vf})),n.d(a,"DRAW_BUFFER4_WEBGL",(function(){return Xf})),n.d(a,"DRAW_BUFFER5_WEBGL",(function(){return jf})),n.d(a,"DRAW_BUFFER6_WEBGL",(function(){return kf})),n.d(a,"DRAW_BUFFER7_WEBGL",(function(){return Wf})),n.d(a,"DRAW_BUFFER8_WEBGL",(function(){return Yf})),n.d(a,"DRAW_BUFFER9_WEBGL",(function(){return zf})),n.d(a,"DRAW_BUFFER10_WEBGL",(function(){return qf})),n.d(a,"DRAW_BUFFER11_WEBGL",(function(){return Kf})),n.d(a,"DRAW_BUFFER12_WEBGL",(function(){return Zf})),n.d(a,"DRAW_BUFFER13_WEBGL",(function(){return Qf})),n.d(a,"DRAW_BUFFER14_WEBGL",(function(){return Jf})),n.d(a,"DRAW_BUFFER15_WEBGL",(function(){return $f})),n.d(a,"MAX_COLOR_ATTACHMENTS_WEBGL",(function(){return th})),n.d(a,"MAX_DRAW_BUFFERS_WEBGL",(function(){return eh})),n.d(a,"VERTEX_ARRAY_BINDING_OES",(function(){return nh})),n.d(a,"QUERY_COUNTER_BITS_EXT",(function(){return rh})),n.d(a,"CURRENT_QUERY_EXT",(function(){return ih})),n.d(a,"QUERY_RESULT_EXT",(function(){return ah})),n.d(a,"QUERY_RESULT_AVAILABLE_EXT",(function(){return sh})),n.d(a,"TIME_ELAPSED_EXT",(function(){return oh})),n.d(a,"TIMESTAMP_EXT",(function(){return uh})),n.d(a,"GPU_DISJOINT_EXT",(function(){return ch}));var s={};n.r(s),n.d(s,"POSITION",(function(){return fh})),n.d(s,"NORMAL",(function(){return hh})),n.d(s,"DEPTH",(function(){return lh})),n.d(s,"DISTANCE",(function(){return dh}));var o=35721,u=35722,c=34016,f=35718,h=35719,l=33902,d=33901,m=6406,_=3413,p=519,g=34962,E=34964,v=35717,T=1029,A=3042,M=32773,I=32970,R=32968,O=32777,L=34877,S=32777,y=32971,N=32969,x=3412,C=35670,b=35671,P=35672,w=35673,H=37444,D=34660,F=34661,U=5120,G=2305,B=33071,V=36064,X=16384,j=3106,k=3107,W=35713,Y=34467,z=32771,q=32769,K=37442,Z=2884,Q=2885,J=35725,$=34342,tt=2304,et=7683,nt=34056,rt=35712,it=36096,at=3414,st=256,ot=2931,ut=6402,ct=33189,ft=2932,ht=2928,lt=34041,dt=33306,mt=2929,_t=2930,pt=3024,gt=4352,Et=772,vt=774,Tt=35048,At=34963,Mt=34965,It=514,Rt=4353,Ot=5126,Lt=35674,St=35675,yt=35676,Nt=35664,xt=35665,Ct=35666,bt=35632,Pt=36160,wt=36049,Ht=36048,Dt=36051,Ft=36050,Ut=36006,Gt=36053,Bt=36054,Vt=36057,Xt=36055,jt=36061,kt=1028,Wt=1032,Yt=2886,zt=32774,qt=32779,Kt=32778,Zt=33170,Qt=518,Jt=516,$t=3411,te=36338,ee=36341,ne=7682,re=34055,ie=35716,ae=5124,se=35667,oe=35668,ue=35669,ce=1280,fe=1286,he=1282,le=1281,de=5386,me=7680,_e=515,pe=513,ge=9729,Ee=9987,ve=9985,Te=1,Ae=2,Me=3,Ie=2849,Re=35714,Oe=36336,Le=36339,Se=6409,ye=6410,Ne=35661,xe=34076,Ce=36349,be=34024,Pe=34930,we=3379,He=36348,De=34921,Fe=35660,Ue=36347,Ge=3386,Be=36337,Ve=36340,Xe=33648,je=9728,ke=9986,We=9984,Ye=512,ze=4354,qe=0,Ke=517,Ze=0,Qe=34466,Je=1,$e=32772,tn=32770,en=773,nn=775,rn=771,an=769,sn=1285,on=3333,un=0,cn=32824,fn=32823,hn=10752,ln=3410,dn=36161,mn=36179,_n=36007,pn=36178,gn=36180,En=36177,vn=36163,Tn=36164,An=36176,Mn=36181,In=36162,Rn=7937,On=10497,Ln=7681,Sn=6407,yn=32855,Nn=36194,xn=6408,Cn=32854,bn=35678,Pn=35680,wn=32937,Hn=32926,Dn=32936,Fn=32928,Un=32939,Gn=32938,Bn=3088,Vn=3089,Xn=36346,jn=35720,kn=35663,Wn=35724,Yn=5122,zn=770,qn=776,Kn=768,Zn=35044,Qn=36128,Jn=34817,$n=34816,tr=34818,er=34819,nr=36003,rr=36004,ir=36005,ar=3415,sr=1024,or=2961,ur=2964,cr=2962,fr=6401,hr=36168,lr=2965,dr=2966,mr=2967,_r=2960,pr=2963,gr=2968,Er=35040,vr=3408,Tr=5890,Ar=33984,Mr=33985,Ir=33986,Rr=33987,Or=33988,Lr=33989,Sr=33990,yr=33991,Nr=33992,xr=33993,Cr=33994,br=33995,Pr=33996,wr=33997,Hr=33998,Dr=33999,Fr=34e3,Ur=34001,Gr=34002,Br=34003,Vr=34004,Xr=34005,jr=34006,kr=34007,Wr=34008,Yr=34009,zr=34010,qr=34011,Kr=34012,Zr=34013,Qr=34014,Jr=34015,$r=3553,ti=32873,ei=34068,ni=34067,ri=34070,ii=34072,ai=34074,si=34069,oi=34071,ui=34073,ci=10240,fi=10241,hi=10242,li=10243,di=4,mi=6,_i=5,pi=3317,gi=37443,Ei=37440,vi=37441,Ti=5121,Ai=5125,Mi=5123,Ii=32819,Ri=32820,Oi=33635,Li=35715,Si=7936,yi=7938,Ni=34975,xi=34338,Ci=34922,bi=34373,Pi=34339,wi=34340,Hi=34341,Di=35633,Fi=2978,Ui=0,Gi=3074,Bi=3314,Vi=3315,Xi=3316,ji=3330,ki=3331,Wi=3332,Yi=32874,zi=32877,qi=32878,Ki=32883,Zi=33e3,Qi=33001,Ji=34045,$i=35657,ta=35658,ea=35071,na=35076,ra=35077,ia=35659,aa=35723,sa=35977,oa=34229,ua=37154,ca=37157,fa=37137,ha=2262,la=6403,da=32849,ma=32856,_a=32857,pa=32879,ga=32882,Ea=33082,va=33083,Ta=33084,Aa=33085,Ma=34892,Ia=34893,Ra=35904,Oa=35905,La=35907,Sa=34894,ya=34836,Na=34837,xa=34842,Ca=34843,ba=35866,Pa=35869,wa=35898,Ha=35901,Da=36208,Fa=36209,Ua=36214,Ga=36215,Ba=36220,Va=36221,Xa=36226,ja=36227,ka=36232,Wa=36233,Ya=36238,za=36239,qa=36244,Ka=36248,Za=36249,Qa=33321,Ja=33323,$a=33325,ts=33326,es=33327,ns=33328,rs=33329,is=33330,as=33331,ss=33332,os=33333,us=33334,cs=33335,fs=33336,hs=33337,ls=33338,ds=33339,ms=33340,_s=36756,ps=36757,gs=36758,Es=36759,vs=36975,Ts=37167,As=2093,Ms=33640,Is=35899,Rs=35902,Os=36269,Ls=34042,Ss=5131,ys=33319,Ns=33320,xs=2265,Cs=34917,bs=34918,Ps=34919,ws=35887,Hs=2262,Ds=34852,Fs=34853,Us=34854,Gs=34855,Bs=34856,Vs=34857,Xs=34858,js=34859,ks=34860,Ws=34861,Ys=34862,zs=34863,qs=34864,Ks=34865,Zs=34866,Qs=34867,Js=34868,$s=36063,to=36065,eo=36066,no=36067,ro=36068,io=36069,ao=36070,so=36071,oo=36072,uo=36073,co=36074,fo=36075,ho=36076,lo=36077,mo=36078,_o=2254,po=35679,go=35682,Eo=36289,vo=36292,To=36293,Ao=36298,Mo=36299,Io=36300,Ro=36303,Oo=36306,Lo=36307,So=36308,yo=36311,No=36183,xo=2193,Co=35051,bo=35052,Po=35053,wo=35055,Ho=36662,Do=36663,Fo=36662,Uo=2291,Go=35685,Bo=35686,Vo=35687,Xo=35688,jo=35689,ko=35690,Wo=36294,Yo=36295,zo=36296,qo=35863,Ko=2297,Zo=35069,Qo=2191,Jo=35967,$o=35968,tu=35971,eu=35972,nu=35973,ru=35976,iu=35978,au=35979,su=35980,ou=35981,uu=35982,cu=35983,fu=36386,hu=36387,lu=36388,du=2274,mu=33296,_u=33297,pu=33298,gu=33299,Eu=33300,vu=33301,Tu=33302,Au=33303,Mu=33304,Iu=33306,Ru=34041,Ou=35056,Lu=36006,Su=36008,yu=36009,Nu=36010,xu=36011,Cu=36052,bu=2261,Pu=35345,wu=35368,Hu=35369,Du=35370,Fu=35371,Uu=35373,Gu=35374,Bu=35375,Vu=35376,Xu=35377,ju=35379,ku=35380,Wu=35382,Yu=35383,zu=35384,qu=35386,Ku=35387,Zu=35388,Qu=35389,Ju=35390,$u=35391,tc=35392,ec=35394,nc=35395,rc=35396,ic=2212,ac=37138,sc=37139,oc=37140,uc=37141,cc=37142,fc=37143,hc=37144,lc=37145,dc=37146,mc=37147,_c=37148,pc=37149,gc=0,Ec=6144,vc=6145,Tc=6146,Ac=32775,Mc=32776,Ic=33190,Rc=35041,Oc=35042,Lc=35045,Sc=35046,yc=35049,Nc=35050,xc=36012,Cc=36013,bc=268435455,Pc=la-1,wc=2340,Hc=35070,Dc=37445,Fc=37446,Uc=34047,Gc=34046,Bc=33776,Vc=33777,Xc=33778,jc=33779,kc=37488,Wc=37489,Yc=37490,zc=37491,qc=37492,Kc=37493,Zc=37494,Qc=37495,Jc=37496,$c=37497,tf=35840,ef=35842,nf=35841,rf=35843,af=36196,sf=35986,of=35986,uf=34798,cf=34042,ff=36193,hf=34836,lf=34837,df=33297,mf=35863,_f=32775,pf=32776,gf=35904,Ef=35906,vf=35907,Tf=33296,Af=35723,Mf=36064,If=36065,Rf=36066,Of=36067,Lf=36068,Sf=36069,yf=36070,Nf=36071,xf=36072,Cf=36073,bf=36074,Pf=36075,wf=36076,Hf=36077,Df=36078,Ff=36079,Uf=34853,Gf=34854,Bf=34855,Vf=34856,Xf=34857,jf=34858,kf=34859,Wf=34860,Yf=34861,zf=34862,qf=34863,Kf=34864,Zf=34865,Qf=34866,Jf=34867,$f=34868,th=36063,eh=34852,nh=34229,rh=34916,ih=34917,ah=34918,sh=34919,oh=35007,uh=36392,ch=36795,fh="POSITION",hh="NORMAL",lh="DEPTH",dh="DISTANCE",mh={webgl:r,webglExtensions:a,webgl2:i,Hilo:s};Object.assign(mh,r,a,i,s);e.a=mh},function(t,e,n){"use strict";var r={},i={_cache:r,level:7,LEVEL_NONE:0,LEVEL_LOG:1,LEVEL_WARN:2,LEVEL_ERROR:4,log:function(){var t=this.console;return 1&this.level&&t.log.apply(t,arguments),this},warn:function(){var t=this.console;return 2&this.level&&t.warn.apply(t,arguments),this},error:function(){var t=this.console;return 4&this.level&&t.error.apply(t,arguments),this},logOnce:function(t){return r["log_"+t]||(r["log_"+t]=!0,this.log.apply(this,Array.prototype.slice.call(arguments,1))),this},warnOnce:function(t){return r["warn_"+t]||(r["warn_"+t]=!0,this.warn.apply(this,Array.prototype.slice.call(arguments,1))),this},errorOnce:function(t){return r["error_"+t]||(r["error_"+t]=!0,this.error.apply(this,Array.prototype.slice.call(arguments,1))),this},_console:console,get console(){return this._console},set console(t){this._console=t}};e.a=i},function(t,e,n){"use strict";n.r(e),n.d(e,"each",(function(){return p})),n.d(e,"getRelativePath",(function(){return d})),n.d(e,"convertUint8ArrayToString",(function(){return m})),n.d(e,"getExtension",(function(){return _})),n.d(e,"getIndexFromSortedArray",(function(){return g})),n.d(e,"insertToSortedArray",(function(){return E})),n.d(e,"padLeft",(function(){return v})),n.d(e,"getTypedArrayClass",(function(){return I})),n.d(e,"copyArrayData",(function(){return R})),n.d(e,"isStrOrNumber",(function(){return O})),n.d(e,"getTypedArrayGLType",(function(){return T})),n.d(e,"getBlobUrl",(function(){return y})),n.d(e,"isBlobUrl",(function(){return L})),n.d(e,"revokeBlobUrl",(function(){return S})),n.d(e,"isArrayLike",(function(){return N})),n.d(e,"getElementRect",(function(){return x})),n.d(e,"serialRun",(function(){return C})),n.d(e,"hasOwnProperty",(function(){return b})),n.d(e,"isWebGL2",(function(){return P}));var r=n(3),i=n(2);function a(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var s,o=i.a.BYTE,u=i.a.UNSIGNED_BYTE,c=i.a.SHORT,f=i.a.UNSIGNED_SHORT,h=i.a.UNSIGNED_INT,l=i.a.FLOAT;function d(t,e){if(/^(?:http|blob|data:|\/)/.test(e))return e;var n;for(t=t.replace(/\/[^/]*?$/,"").split("/"),e=e.split("/"),n=0;n<e.length;n++){var r=e[n];if(".."===r)t.pop();else if("."!==r)break}return t.join("/")+"/"+e.slice(n).join("/")}function m(t,e){if(window.TextDecoder)return s||(s=new TextDecoder("utf-8")),t instanceof Uint8Array||(t=new Uint8Array(t)),s.decode(t);for(var n="",r=0;r<t.length;r++)n+=String.fromCharCode(t[r]);return e&&(n=decodeURIComponent(escape(n))),n}function _(t){var e=String(t).match(/\/?[^/]+\.(\w+)(\?\S+)?$/i);return e&&e[1].toLowerCase()||null}function p(t,e){t&&(Array.isArray(t)?t.forEach(e):Object.keys(t).forEach((function(n){e(t[n],n)})))}function g(t,e,n){if(!t||!t.length)return[0,0];for(var r=0,i=t.length-1;r<=i;){var a=r+i>>1,s=n(t[a],e);if(0===s)return[a,a];s<0?r=a+1:i=a-1}return r>i?[i,r]:[r,i]}function E(t,e,n){var r=g(t,e,n);t.splice(r[1],0,e)}function v(t,e,n){return e<=t.length?t:new Array(e-t.length+1).join(n||"0")+t}function T(t){return t instanceof Float32Array?l:t instanceof Int8Array?o:t instanceof Uint8Array?u:t instanceof Int16Array?c:t instanceof Uint16Array?f:t instanceof Uint32Array?h:l}var A,M,I=(a(A={},o,Int8Array),a(A,u,Uint8Array),a(A,c,Int16Array),a(A,f,Uint16Array),a(A,h,Uint32Array),a(A,l,Float32Array),M=A,function(t){return M[t]||Float32Array});function R(t,e,n,r,i){if(t&&e){e.isGeometryData&&(e=e.data);for(var a=0;a<i;a++)t[n+a]=e[r+a]}}function O(t){return"string"==typeof t||"number"==typeof t}function L(t){return/^blob:/.test(t)}function S(t){window.URL&&URL.revokeObjectURL(t)}function y(t,e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),window.Blob&&window.URL)try{var n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}catch(e){r.a.warn("new Blob error",t)}return"data:".concat(t,";base64,").concat(btoa(m(e)))}function N(t){return Array.isArray(t)||t.BYTES_PER_ELEMENT||t.length}function x(t){var e,n=document.documentElement;try{e=t.getBoundingClientRect()}catch(n){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(window.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,i=(window.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,a=window.getComputedStyle?getComputedStyle(t):t.currentStyle,s=parseInt,o=s(a.paddingLeft)+s(a.borderLeftWidth)||0,u=s(a.paddingTop)+s(a.borderTopWidth)||0,c=s(a.paddingRight)+s(a.borderRightWidth)||0,f=s(a.paddingBottom)+s(a.borderBottomWidth)||0,h=e.top||0,l=e.left||0;return{left:l+r+o,top:h+i+u,width:(e.right||0)-c-l-o,height:(e.bottom||0)-f-h-u}}function C(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return Array.isArray(t)||(t=Object.values(t)),t.reduce((function(t,n,r){return t.then((function(){return e(n,r)}))}),Promise.resolve())}function b(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function P(t){return"undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext}},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Vector3",isVector3:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.elements=r.vec3.fromValues(t,e,n)},copy:function(t){return r.vec3.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t[2+e]=n[2],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],n[2]=t[e+2],this},set:function(t,e,n){return r.vec3.set(this.elements,t,e,n),this},add:function(t,e){return e||(e=t,t=this),r.vec3.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.vec3.subtract(this.elements,t.elements,e.elements),this},multiply:function(t,e){return e||(e=t,t=this),r.vec3.multiply(this.elements,t.elements,e.elements),this},divide:function(t,e){return e||(e=t,t=this),r.vec3.divide(this.elements,t.elements,e.elements),this},ceil:function(){return r.vec3.ceil(this.elements,this.elements),this},floor:function(){return r.vec3.floor(this.elements,this.elements),this},min:function(t,e){return e||(e=t,t=this),r.vec3.min(this.elements,t.elements,e.elements),this},max:function(t,e){return e||(e=t,t=this),r.vec3.max(this.elements,t.elements,e.elements),this},round:function(){return r.vec3.round(this.elements,this.elements),this},scale:function(t){return r.vec3.scale(this.elements,this.elements,t),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec3.scaleAndAdd(this.elements,e.elements,n.elements,t),this},distance:function(t,e){return e||(e=t,t=this),r.vec3.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec3.squaredDistance(t.elements,e.elements)},length:function(){return r.vec3.length(this.elements)},squaredLength:function(){return r.vec3.squaredLength(this.elements)},negate:function(){return r.vec3.negate(this.elements,this.elements),this},inverse:function(t){return t||(t=this),r.vec3.inverse(this.elements,t.elements),this},normalize:function(){return r.vec3.normalize(this.elements,this.elements),this},dot:function(t,e){return e||(e=t,t=this),r.vec3.dot(t.elements,e.elements)},cross:function(t,e){return e||(e=t,t=this),r.vec3.cross(this.elements,t.elements,e.elements),this},lerp:function(t,e){return r.vec3.lerp(this.elements,this.elements,t.elements,e),this},hermite:function(t,e,n,i,a){return r.vec3.hermite(this.elements,t.elements,e.elements,n.elements,i.elements,a),this},bezier:function(t,e,n,i,a){return r.vec3.bezier(this.elements,t.elements,e.elements,n.elements,i.elements,a),this},random:function(t){return r.vec3.random(this.elements,t),this},transformMat3:function(t){return r.vec3.transformMat3(this.elements,this.elements,t.elements),this},transformMat4:function(t){return r.vec3.transformMat4(this.elements,this.elements,t.elements),this},transformDirection:function(t){var e=this.elements,n=t.elements,r=e[0],i=e[1],a=e[2];return e[0]=r*n[0]+i*n[4]+a*n[8],e[1]=r*n[1]+i*n[5]+a*n[9],e[2]=r*n[2]+i*n[6]+a*n[10],this},transformQuat:function(t){return r.vec3.transformQuat(this.elements,this.elements,t.elements),this},rotateX:function(t,e){return r.vec3.rotateX(this.elements,this.elements,t.elements,e),this},rotateY:function(t,e){return r.vec3.rotateY(this.elements,this.elements,t.elements,e),this},rotateZ:function(t,e){return r.vec3.rotateZ(this.elements,this.elements,t.elements,e),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec3.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec3.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t}}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,i.prototype.div=i.prototype.divide,i.prototype.dist=i.prototype.distance,i.prototype.sqrDist=i.prototype.squaredDistance,i.prototype.len=i.prototype.length,i.prototype.sqrLen=i.prototype.squaredLength,e.a=i},function(t,e,n){"use strict";var r,i={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:(r=0,function(t){var e=++r;return t?e=t+"_"+e:e+="",e}),clamp:function(t,e,n){return Math.max(e,Math.min(n,t))},degToRad:function(t){return t*this.DEG2RAD},radToDeg:function(t){return t*this.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},nearestPowerOfTwo:function(t){return Math.pow(2,Math.round(Math.log(t)/Math.LN2))},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}};e.a=i},function(t,e,n){"use strict";var r,i=n(0),a=n(1),s=n(5),o=n(10),u=new s.a,c=new s.a,f=a.a.create({className:"Matrix4",isMatrix4:!0,constructor:function(){this.elements=i.mat4.create()},copy:function(t){return i.mat4.copy(this.elements,t.elements),this},clone:function(){var t=new this.constructor;return i.mat4.copy(t.elements,this.elements),t},toArray:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<16;r++)t[e+r]=n[r];return t},fromArray:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<16;r++)n[r]=t[e+r];return this},set:function(t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p){return i.mat4.set(this.elements,t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p),this},identity:function(){return i.mat4.identity(this.elements),this},transpose:function(){return i.mat4.transpose(this.elements,this.elements),this},invert:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.invert(this.elements,t.elements),this},adjoint:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.adjoint(this.elements,t.elements),this},determinant:function(){return i.mat4.determinant(this.elements)},multiply:function(t,e){return e||(e=t,t=this),i.mat4.multiply(this.elements,t.elements,e.elements),this},premultiply:function(t){return this.multiply(t,this),this},translate:function(t){return i.mat4.translate(this.elements,this.elements,t.elements),this},scale:function(t){return i.mat4.scale(this.elements,this.elements,t.elements),this},rotate:function(t,e){return i.mat4.rotate(this.elements,this.elements,t,e.elements),this},rotateX:function(t){return i.mat4.rotateX(this.elements,this.elements,t),this},rotateY:function(t){return i.mat4.rotateY(this.elements,this.elements,t),this},rotateZ:function(t){return i.mat4.rotateZ(this.elements,this.elements,t),this},fromTranslation:function(t){return i.mat4.fromTranslation(this.elements,t.elements),this},fromScaling:function(t){return i.mat4.fromScaling(this.elements,t.elements),this},fromRotation:function(t,e){return i.mat4.fromRotation(this.elements,t,e.elements),this},fromXRotation:function(t){return i.mat4.fromXRotation(this.elements,t),this},fromYRotation:function(t){return i.mat4.fromYRotation(this.elements,t),this},fromZRotation:function(t){return i.mat4.fromZRotation(this.elements,t),this},fromRotationTranslation:function(t,e){return i.mat4.fromRotationTranslation(this.elements,t.elements,e.elements),this},getTranslation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new s.a;return i.mat4.getTranslation(t.elements,this.elements),t},getScaling:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new s.a;return i.mat4.getScaling(t.elements,this.elements),t},getRotation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new o.a;return i.mat4.getRotation(t.elements,this.elements),t},fromRotationTranslationScale:function(t,e,n){return i.mat4.fromRotationTranslationScale(this.elements,t.elements,e.elements,n.elements),this},fromRotationTranslationScaleOrigin:function(t,e,n,r){return i.mat4.fromRotationTranslationScaleOrigin(this.elements,t.elements,e.elements,n.elements,r.elements),this},fromQuat:function(t){return i.mat4.fromQuat(this.elements,t.elements),this},frustum:function(t,e,n,r,a,s){return i.mat4.frustum(this.elements,t,e,n,r,a,s),this},perspective:function(t,e,n,r){return i.mat4.perspective(this.elements,t,e,n,r),this},perspectiveFromFieldOfView:function(t,e,n){return i.mat4.perspectiveFromFieldOfView(this.elements,t,e,n),this},ortho:function(t,e,n,r,a,s){return i.mat4.ortho(this.elements,t,e,n,r,a,s),this},lookAt:function(t,e,n){return t.isVector3||(t=u.set(t.x,t.y,t.z)),e.isVector3||(e=c.set(e.x,e.y,e.z)),i.mat4.lookAt(this.elements,t.elements,e.elements,n.elements),this},targetTo:function(t,e,n){t.isVector3||(t=u.set(t.x,t.y,t.z)),e.isVector3||(e=c.set(e.x,e.y,e.z)),t=t.elements,e=e.elements,n=n.elements;var r=this.elements,i=t[0],a=t[1],s=t[2],o=n[0],f=n[1],h=n[2],l=i-e[0],d=a-e[1],m=s-e[2],_=l*l+d*d+m*m;_>0?(l*=_=1/Math.sqrt(_),d*=_,m*=_):m=1;var p=f*m-h*d,g=h*l-o*m,E=o*d-f*l;return(_=p*p+g*g+E*E)>0?(p*=_=1/Math.sqrt(_),g*=_,E*=_):(_=(p=f*m-h*d)*p+(g=h*l-(o+=1e-7)*m)*g+(E=o*d-f*l)*E,p*=_=1/Math.sqrt(_),g*=_,E*=_),r[0]=p,r[1]=g,r[2]=E,r[3]=0,r[4]=d*E-m*g,r[5]=m*p-l*E,r[6]=l*g-d*p,r[7]=0,r[8]=l,r[9]=d,r[10]=m,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,this},frob:function(){return i.mat4.frob(this.elements)},add:function(t,e){return e||(e=t,t=this),i.mat4.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),i.mat4.subtract(this.elements,t.elements,e.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),i.mat4.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),i.mat4.equals(t.elements,e.elements)},compose:function(t,e,n,r){return r?this.fromRotationTranslationScaleOrigin(t,e,n,r):this.fromRotationTranslationScale(t,e,n),this},decompose:function(t,e,n,i){return this.getScaling(n),this.getTranslation(e),r||(r=new f),this.determinant()<0&&(n.x*=-1),r.copy(this),u.inverse(n),r.scale(u),t.fromMat4(r),i&&i.set(0,0,0),this}});f.prototype.sub=f.prototype.subtract,f.prototype.mul=f.prototype.multiply,e.a=f},function(t,e,n){"use strict";var r=n(1),i=n(12),a=n(4),s=r.a.create({Extends:i.a,className:"Color",isColor:!0,r:{get:function(){return this.x},set:function(t){this.x=t}},g:{get:function(){return this.y},set:function(t){this.y=t}},b:{get:function(){return this.z},set:function(t){this.z=t}},a:{get:function(){return this.w},set:function(t){this.w=t}},constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;s.superclass.constructor.call(this,t,e,n,r)},toRGBArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t},fromUintArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.elements[0]=t[e]/255,this.elements[1]=t[e+1]/255,this.elements[2]=t[e+2]/255,this.elements[3]=t[e+3]/255,this},fromHEX:function(t){return"number"==typeof t?t=Object(a.padLeft)(t.toString(16),6):("#"===t[0]&&(t=t.slice(1)),3===t.length&&(t=t.replace(/(\w)/g,"$1$1"))),this.elements[0]=parseInt(t.slice(0,2),16)/255,this.elements[1]=parseInt(t.slice(2,4),16)/255,this.elements[2]=parseInt(t.slice(4,6),16)/255,this},toHEX:function(){for(var t="",e=0;e<3;e++)t+=Object(a.padLeft)(Math.floor(255*this.elements[e]).toString(16),2);return t}});e.a=s},function(t,e,n){"use strict";var r=n(1).a.create({constructor:function(t,e,n){this.type=t,this.target=e,this.detail=n,this.timeStamp=+new Date},type:null,target:null,detail:null,timeStamp:0,stopImmediatePropagation:function(){this._stopped=!0}}),i={_listeners:null,on:function(t,e,n){for(var r=this._listeners=this._listeners||{},i=r[t]=r[t]||[],a=0,s=i.length;a<s;a++){if(i[a].listener===e)return this}return i.push({listener:e,once:n}),this},off:function(t,e){if(0===arguments.length)return this._listeners=null,this;var n=this._listeners&&this._listeners[t];if(n&&n.length>0){if(1===arguments.length)return delete this._listeners[t],this;for(var r=0,i=n.length;r<i;r++){var a=n[r];if(a.listener===e){n.splice(r,1);break}}}return this},fire:function(t,e){var n,i;"string"==typeof t?i=t:(n=t,i=t.type);var a=this._listeners;if(!a)return!1;var s=a[i];if(s&&s.length>0){var o=s.slice(0);if((n=n||new r(i,this,e))._stopped)return!1;for(var u=0;u<o.length;u++){var c=o[u];if(c.listener.call(this,n),c.once){var f=s.indexOf(c);f>-1&&s.splice(f,1)}}return!0}return!1}};e.a=i},function(t,e,n){"use strict";var r=n(0),i=n(11),a=n(1),s=n(9),o=new i.a,u=a.a.create({Mixes:s.a,className:"Quaternion",isQuaternion:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;this.elements=r.quat.fromValues(t,e,n,i)},copy:function(t,e){return r.quat.copy(this.elements,t.elements),e||this.fire("update"),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2],t[3])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,r=this.elements;return r[0]=t[e],r[1]=t[e+1],r[2]=t[e+2],r[3]=t[e+3],n||this.fire("update"),this},set:function(t,e,n,i,a){return r.quat.set(this.elements,t,e,n,i),a||this.fire("update"),this},identity:function(t){return r.quat.identity(this.elements),t||this.fire("update"),this},rotationTo:function(t,e,n){return r.quat.rotationTo(this.elements,t.elements,e.elements),n||this.fire("update"),this},setAxes:function(t,e,n,i){return r.quat.setAxes(this.elements,t.elements,e.elements,n.elements),i||this.fire("update"),this},setAxisAngle:function(t,e,n){return r.quat.setAxisAngle(this.elements,t.elements,e),n||this.fire("update"),this},getAxisAngle:function(t){return r.quat.getAxisAngle(t.elements,this.elements)},add:function(t,e){return r.quat.add(this.elements,this.elements,t.elements),e||this.fire("update"),this},multiply:function(t,e){return r.quat.multiply(this.elements,this.elements,t.elements),e||this.fire("update"),this},premultiply:function(t,e){return r.quat.multiply(this.elements,t.elements,this.elements),e||this.fire("update"),this},scale:function(t,e){return r.quat.scale(this.elements,this.elements,t),e||this.fire("update"),this},rotateX:function(t,e){return r.quat.rotateX(this.elements,this.elements,t),e||this.fire("update"),this},rotateY:function(t,e){return r.quat.rotateY(this.elements,this.elements,t),e||this.fire("update"),this},rotateZ:function(t,e){return r.quat.rotateZ(this.elements,this.elements,t),e||this.fire("update"),this},calculateW:function(t){return r.quat.calculateW(this.elements,this.elements),t||this.fire("update"),this},dot:function(t){return r.quat.dot(this.elements,t.elements)},lerp:function(t,e,n){return r.quat.lerp(this.elements,this.elements,t.elements,e),n||this.fire("update"),this},slerp:function(t,e,n){return r.quat.slerp(this.elements,this.elements,t.elements,e),n||this.fire("update"),this},sqlerp:function(t,e,n,i,a,s){return r.quat.sqlerp(this.elements,t.elements,e.elements,n.elements,i.elements,a),s||this.fire("update"),this},invert:function(t){return r.quat.invert(this.elements,this.elements),t||this.fire("update"),this},conjugate:function(t){return r.quat.conjugate(this.elements,this.elements),t||this.fire("update"),this},length:function(){return r.quat.length(this.elements)},squaredLength:function(){return r.quat.squaredLength(this.elements)},normalize:function(t){return r.quat.normalize(this.elements,this.elements),t||this.fire("update"),this},fromMat3:function(t,e){return r.quat.fromMat3(this.elements,t.elements),e||this.fire("update"),this},fromMat4:function(t,e){return o.fromMat4(t),this.fromMat3(o,e),this},exactEquals:function(t){return r.quat.exactEquals(this.elements,t.elements)},equals:function(t){return r.quat.equals(this.elements,t.elements)},fromEuler:function(t,e){var n=.5*t.x,r=.5*t.y,i=.5*t.z,a=t.order||"ZYX",s=Math.sin(n),o=Math.cos(n),u=Math.sin(r),c=Math.cos(r),f=Math.sin(i),h=Math.cos(i),l=this.elements;return"XYZ"===a?(l[0]=s*c*h+o*u*f,l[1]=o*u*h-s*c*f,l[2]=o*c*f+s*u*h,l[3]=o*c*h-s*u*f):"YXZ"===a?(l[0]=s*c*h+o*u*f,l[1]=o*u*h-s*c*f,l[2]=o*c*f-s*u*h,l[3]=o*c*h+s*u*f):"ZXY"===a?(l[0]=s*c*h-o*u*f,l[1]=o*u*h+s*c*f,l[2]=o*c*f+s*u*h,l[3]=o*c*h-s*u*f):"ZYX"===a?(l[0]=s*c*h-o*u*f,l[1]=o*u*h+s*c*f,l[2]=o*c*f-s*u*h,l[3]=o*c*h+s*u*f):"YZX"===a?(l[0]=s*c*h+o*u*f,l[1]=o*u*h+s*c*f,l[2]=o*c*f-s*u*h,l[3]=o*c*h-s*u*f):"XZY"===a&&(l[0]=s*c*h-o*u*f,l[1]=o*u*h-s*c*f,l[2]=o*c*f+s*u*h,l[3]=o*c*h+s*u*f),e||this.fire("update"),this},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this.fire("update")}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this.fire("update")}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this.fire("update")}},w:{get:function(){return this.elements[3]},set:function(t){this.elements[3]=t,this.fire("update")}}});u.prototype.mul=u.prototype.multiply,u.prototype.len=u.prototype.length,u.prototype.sqrLen=u.prototype.squaredLength,e.a=u},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Matrix3",isMatrix3:!0,constructor:function(){this.elements=r.mat3.create()},copy:function(t){return r.mat3.copy(this.elements,t.elements),this},clone:function(){var t=new this.constructor;return r.mat3.copy(t.elements,this.elements),t},toArray:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<9;r++)t[e+r]=n[r];return t},fromArray:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<9;r++)n[r]=t[e+r];return this},set:function(t,e,n,i,a,s,o,u,c){return r.mat3.set(this.elements,t,e,n,i,a,s,o,u,c),this},identity:function(){return r.mat3.identity(this.elements),this},transpose:function(){return r.mat3.transpose(this.elements,this.elements),this},invert:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return r.mat3.invert(this.elements,t.elements),this},adjoint:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return r.mat3.adjoint(this.elements,t.elements),this},determinant:function(){return r.mat3.determinant(this.elements)},multiply:function(t,e){return e||(e=t,t=this),r.mat3.multiply(this.elements,t.elements,e.elements),this},premultiply:function(t){return this.multiply(t,this),this},translate:function(t){return r.mat3.translate(this.elements,this.elements,t.elements),this},rotate:function(t){return r.mat3.rotate(this.elements,this.elements,t),this},scale:function(t){return r.mat3.scale(this.elements,this.elements,t.elements),this},fromTranslation:function(t){return r.mat3.fromTranslation(this.elements,t.elements),this},fromRotation:function(t){return r.mat3.fromRotation(this.elements,t),this},fromScaling:function(t){return r.mat3.fromScaling(this.elements,t.elements),this},fromQuat:function(t){return r.mat3.fromQuat(this.elements,t.elements),this},normalFromMat4:function(t){return r.mat3.normalFromMat4(this.elements,t.elements),this},fromMat4:function(t){return r.mat3.fromMat4(this.elements,t.elements),this},frob:function(){return r.mat3.frob(this.elements)},add:function(t,e){return e||(e=t,t=this),r.mat3.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.mat3.subtract(this.elements,t.elements,e.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),r.mat3.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.mat3.equals(t.elements,e.elements)},fromRotationTranslationScale:function(t,e,n,r,i){var a=Math.cos(t),s=Math.sin(t);return this.set(r*a,-i*s,0,r*s,i*a,0,e,n,1),this}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,e.a=i},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Vector4",isVector4:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;this.elements=r.vec4.fromValues(t,e,n,i)},copy:function(t){return r.vec4.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2],t[3])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t[2+e]=n[2],t[3+e]=n[3],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],n[2]=t[e+2],n[3]=t[e+3],this},set:function(t,e,n,i){return r.vec4.set(this.elements,t,e,n,i),this},add:function(t,e){return e||(e=t,t=this),r.vec4.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.vec4.subtract(this.elements,t.elements,e.elements),this},multiply:function(t,e){return e||(e=t,t=this),r.vec4.multiply(this.elements,t.elements,e.elements),this},divide:function(t,e){return e||(e=t,t=this),r.vec4.divide(this.elements,t.elements,e.elements),this},ceil:function(){return r.vec4.ceil(this.elements,this.elements),this},floor:function(){return r.vec4.floor(this.elements,this.elements),this},min:function(t,e){return e||(e=t,t=this),r.vec4.min(this.elements,t.elements,e.elements),this},max:function(t,e){return e||(e=t,t=this),r.vec4.max(this.elements,t.elements,e.elements),this},round:function(){return r.vec4.round(this.elements,this.elements),this},scale:function(t){return r.vec4.scale(this.elements,this.elements,t),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec4.scaleAndAdd(this.elements,e.elements,n.elements,t),this},distance:function(t,e){return e||(e=t,t=this),r.vec4.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec4.squaredDistance(t.elements,e.elements)},length:function(){return r.vec4.length(this.elements)},squaredLength:function(){return r.vec4.squaredLength(this.elements)},negate:function(){return r.vec4.negate(this.elements,this.elements),this},inverse:function(t){return t||(t=this),r.vec4.inverse(this.elements,t.elements),this},normalize:function(){return r.vec4.normalize(this.elements,this.elements),this},dot:function(t,e){return e||(e=t,t=this),r.vec4.dot(t.elements,e.elements)},lerp:function(t,e){return r.vec4.lerp(this.elements,this.elements,t.elements,e),this},random:function(t){return t=t||1,this.elements[0]=Math.random(),this.elements[1]=Math.random(),this.elements[2]=Math.random(),this.elements[3]=Math.random(),this.normalize(),this.scale(t),this},transformMat4:function(t){return r.vec4.transformMat4(this.elements,this.elements,t.elements),this},transformQuat:function(t){return r.vec4.transformQuat(this.elements,this.elements,t.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec4.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec4.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t}},w:{get:function(){return this.elements[3]},set:function(t){this.elements[3]=t}}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,i.prototype.div=i.prototype.divide,i.prototype.dist=i.prototype.distance,i.prototype.sqrDist=i.prototype.squaredDistance,i.prototype.len=i.prototype.length,i.prototype.sqrLen=i.prototype.squaredLength,e.a=i},function(t,e,n){"use strict";var r=n(1),i=n(6),a=n(7),s=n(3),o=new a.a,u=i.a.DEG2RAD,c=i.a.RAD2DEG,f=r.a.create({className:"Euler",isEuler:!0,order:"ZYX",constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.elements=new Float32Array([t,e,n]),this.updateDegrees()},clone:function(){var t=new this.constructor;return t.copy(this),t},copy:function(t){return this.elements[0]=t.x,this.elements[1]=t.y,this.elements[2]=t.z,this.order=t.order,this.updateDegrees(),this},set:function(t,e,n){return this.elements[0]=t,this.elements[1]=e,this.elements[2]=n,this.updateDegrees(),this},setDegree:function(t,e,n){return this._degX=t,this._degY=e,this._degZ=n,this.updateRadians(),this},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.elements[0]=t[e],this.elements[1]=t[e+1],this.elements[2]=t[e+2],this.updateDegrees(),this},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t[e]=this.elements[0],t[e+1]=this.elements[1],t[e+2]=this.elements[2],t},fromMat4:function(t,e){var n=t.elements,r=n[0],a=n[1],o=n[2],u=n[4],c=n[5],f=n[6],h=n[8],l=n[9],d=n[10];e=e||this.order,this.order=e;var m=i.a.clamp;return"XYZ"===e?(this.elements[1]=Math.asin(m(h,-1,1)),Math.abs(h)<.99999?(this.elements[0]=Math.atan2(-l,d),this.elements[2]=Math.atan2(-u,r)):(this.elements[0]=Math.atan2(f,c),this.elements[2]=0)):"YXZ"===e?(this.elements[0]=Math.asin(-m(l,-1,1)),Math.abs(l)<.99999?(this.elements[1]=Math.atan2(h,d),this.elements[2]=Math.atan2(a,c)):(this.elements[1]=Math.atan2(-o,r),this.elements[2]=0)):"ZXY"===e?(this.elements[0]=Math.asin(m(f,-1,1)),Math.abs(f)<.99999?(this.elements[1]=Math.atan2(-o,d),this.elements[2]=Math.atan2(-u,c)):(this.elements[1]=0,this.elements[2]=Math.atan2(a,r))):"ZYX"===e?(this.elements[1]=Math.asin(-m(o,-1,1)),Math.abs(o)<.99999?(this.elements[0]=Math.atan2(f,d),this.elements[2]=Math.atan2(a,r)):(this.elements[0]=0,this.elements[2]=Math.atan2(-u,c))):"YZX"===e?(this.elements[2]=Math.asin(m(a,-1,1)),Math.abs(a)<.99999?(this.elements[0]=Math.atan2(-l,c),this.elements[1]=Math.atan2(-o,r)):(this.elements[0]=0,this.elements[1]=Math.atan2(h,d))):"XZY"===e?(this.elements[2]=Math.asin(-m(u,-1,1)),Math.abs(u)<.99999?(this.elements[0]=Math.atan2(f,c),this.elements[1]=Math.atan2(h,r)):(this.elements[0]=Math.atan2(-l,d),this.elements[1]=0)):s.a.warn("Euler fromMat4() unsupported order: "+e),this.updateDegrees(),this},fromQuat:function(t,e){return o.fromQuat(t),this.fromMat4(o,e)},updateDegrees:function(){return this._degX=this.elements[0]*c,this._degY=this.elements[1]*c,this._degZ=this.elements[2]*c,this},updateRadians:function(){return this.elements[0]=this._degX*u,this.elements[1]=this._degY*u,this.elements[2]=this._degZ*u,this},degX:{get:function(){return this._degX},set:function(t){this._degX=t,this.elements[0]=t*u}},degY:{get:function(){return this._degY},set:function(t){this._degY=t,this.elements[1]=t*u}},degZ:{get:function(){return this._degZ},set:function(t){this._degZ=t,this.elements[2]=t*u}},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this._degX=t*c}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this._degY=t*c}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this._degZ=t*c}}});e.a=f},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Vector2",isVector2:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.elements=r.vec2.fromValues(t,e)},copy:function(t){return r.vec2.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],this},set:function(t,e){return r.vec2.set(this.elements,t,e),this},add:function(t,e){return e||(e=t,t=this),r.vec2.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.vec2.subtract(this.elements,t.elements,e.elements),this},multiply:function(t,e){return e||(e=t,t=this),r.vec2.multiply(this.elements,t.elements,e.elements),this},divide:function(t,e){return e||(e=t,t=this),r.vec2.divide(this.elements,t.elements,e.elements),this},ceil:function(){return r.vec2.ceil(this.elements,this.elements),this},floor:function(){return r.vec2.floor(this.elements,this.elements),this},min:function(t,e){return e||(e=t,t=this),r.vec2.min(this.elements,t.elements,e.elements),this},max:function(t,e){return e||(e=t,t=this),r.vec2.max(this.elements,t.elements,e.elements),this},round:function(){return r.vec2.round(this.elements,this.elements),this},scale:function(t){return r.vec2.scale(this.elements,this.elements,t),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec2.scaleAndAdd(this.elements,e.elements,n.elements,t),this},distance:function(t,e){return e||(e=t,t=this),r.vec2.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec2.squaredDistance(t.elements,e.elements)},length:function(){return r.vec2.length(this.elements)},squaredLength:function(){return r.vec2.squaredLength(this.elements)},negate:function(){return r.vec2.negate(this.elements,this.elements),this},inverse:function(t){return t||(t=this),r.vec2.inverse(this.elements,t.elements),this},normalize:function(){return r.vec2.normalize(this.elements,this.elements),this},dot:function(t,e){return e||(e=t,t=this),r.vec2.dot(t.elements,e.elements)},cross:function(t,e){return e||(e=t,t=this),r.vec2.cross(this.elements,t.elements,e.elements),this},lerp:function(t,e){return r.vec2.lerp(this.elements,this.elements,t.elements,e),this},random:function(t){return r.vec2.random(this.elements,t),this},transformMat3:function(t){return r.vec2.transformMat3(this.elements,this.elements,t.elements),this},transformMat4:function(t){return r.vec2.transformMat4(this.elements,this.elements,t.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec2.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec2.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,i.prototype.div=i.prototype.divide,i.prototype.dist=i.prototype.distance,i.prototype.sqrDist=i.prototype.squaredDistance,i.prototype.len=i.prototype.length,i.prototype.sqrLen=i.prototype.squaredLength,e.a=i},function(t,e){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=2)}([function(t,e,n){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function i(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}var a=n(1),s={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR",COLOR_0:"COLOR",COLOR_1:"COLOR_1",TEXCOORD:"TEXCOORD",TEXCOORD_0:"TEXCOORD",TEXCOORD_1:"TEXCOORD_1",TEXCOORD_2:"TEXCOORD_2",TANGENT:"TANGENT",JOINT:"JOINT",JOINTS_0:"JOINT",WEIGHT:"WEIGHT",WEIGHTS_0:"WEIGHT"},o=["POSITION","NORMAL","COLOR","TEXCOORD","TANGENT","JOINT","WEIGHT","OTHER","TEXCOORD_1","TEXCOORD_2","COLOR_1"],u={POSITION:0,NORMAL:1,COLOR:2,TEXCOORD:3,TANGENT:4,JOINT:5,WEIGHT:6,OTHER:7,TEXCOORD_1:8,TEXCOORD_2:9,COLOR_1:10},c={POSITION:"vertices",NORMAL:"normals",COLOR:"colors",TEXCOORD:"uvs",TEXCOORD_1:"uvs1",TEXCOORD_2:"uvs2",TANGENT:"tangents",JOINT:"skinIndices",WEIGHT:"skinWeights"},f={vertices:"POSITION",_normals:"NORMAL",colors:"COLOR",uvs:"TEXCOORD",uvs1:"TEXCOORD_1",uvs2:"TEXCOORD_2",_tangents:"TANGENT",skinIndices:"JOINT",skinWeights:"WEIGHT"},h={POSITION:3,NORMAL:3,COLOR:3,COLOR_1:3,TEXCOORD:2,TEXCOORD_1:2,TEXCOORD_2:2,TANGENT:4,JOINT:4,WEIGHT:4},l=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.indices=e,this.mode=n,this.attrs=[],this.attrIndexMap={}}return i(t,null,[{key:"cp",value:function(t){return t}},{key:"minus",value:function(t,e){return t-e}},{key:"plus",value:function(t,e){return t+e}},{key:"pp",value:function(t,e,n,r){return r-e-n+t}},{key:"depp",value:function(t,e,n,r){return e+n-t+r}},{key:"ATTR",get:function(){return s}},{key:"ATTR_NAME_ID",get:function(){return u}}]),i(t,[{key:"getAttrLength",value:function(){return this.attrs[0].data.length/this.attrs[0].itemCount}},{key:"attrIdToName",value:function(t){return o[t]||"OTHER"}},{key:"addAttr",value:function(t,e,n){s[t]?(this.attrIndexMap[t]=this.attrs.length,n||(n=h[t])):n||(n=1),this.attrs.push({name:t,itemCount:n,data:e})}},{key:"getAttr",value:function(t){if(this.attrIndexMap[t])return this.attrs[this.attrIndexMap[t]];for(var e=this.attrs.length-1;e>=0;e--){var n=this.attrs[e];if(n.name===t)return n}}},{key:"cal",value:function(t,e,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),a=3;a<r;a++)i[a-3]=arguments[a];this.attrs.forEach((function(r,a){for(var s=r.data,o=t.attrs[a].data,u=e*r.itemCount,c=r.itemCount-1;c>=0;c--)o[u+c]=n.apply(null,i.map((function(t){return s[t*r.itemCount+c]})))}))}},{key:"quantize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attrs.forEach((function(e){if("JOINT"!==e.name&&0!=t[e.name]){var n=a.encode(e.data,t[e.name]||12);e.quantizationBit=n.quantizationBit,e.min=n.min,e.max=n.max,e.data=n.data}}))}},{key:"dequantize",value:function(){this.attrs.forEach((function(t){t.quantizationBit&&(t.data=a.decode(t.data,t.quantizationBit,t.min,t.max))}))}},{key:"convertTypedArray",value:function(){!this.indices||this.indices instanceof Array||(this.indices=Array.from(this.indices)),this.attrs.forEach((function(t){t.data instanceof Array||t.data instanceof Float32Array||(t.data=Array.from(t.data))}))}},{key:"clearEBAttrs",value:function(){delete this.clers,delete this.holes,delete this.handles}},{key:"convertToTypedArray",value:function(){this.indices instanceof Array&&(this.getAttrLength()>65535?this.indices=new Uint32Array(this.indices):this.indices=new Uint16Array(this.indices)),this.attrs.forEach((function(t){t.data instanceof Array&&(t.data=new Float32Array(t.data))}))}},{key:"prepareToWorkerSend",value:function(){return this.clearEBAttrs(),this.convertToTypedArray(),this.getAllBuffers()}},{key:"clone",value:function(){var e=new t(Array.from(this.indices),this.mode);return Object.assign(e.attrIndexMap,this.attrIndexMap),e.attrs=this.attrs.map((function(t){var e=Object.assign({},t);return e.data=Array.from(e.data),e})),e}},{key:"cloneStruct",value:function(){var e=new t;return e.mode=this.mode,this.indices&&(e.indices=[]),Object.assign(e.attrIndexMap,this.attrIndexMap),e.attrs=this.attrs.map((function(t){var e=Object.assign({},t);return e.data=[],e})),e}},{key:"toHilo3dGeometry",value:function(t,e){var n=e||new t.Geometry;return this.indices&&(this.indices.BYTES_PER_ELEMENT?n.indices=new t.GeometryData(this.indices,1):this.getAttrLength()>65535?n.indices=new t.GeometryData(new Uint32Array(this.indices),1):n.indices=new t.GeometryData(new Uint16Array(this.indices),1)),this.attrs.forEach((function(e){var r=c[e.name];r&&(e.data.BYTES_PER_ELEMENT?n[r]=new t.GeometryData(e.data,e.itemCount):n[r]=new t.GeometryData(new Float32Array(e.data),e.itemCount))})),n}},{key:"getAllBuffers",value:function(){var t=[];return this.indices.BYTES_PER_ELEMENT&&t.push(this.indices.buffer),this.attrs.forEach((function(e){e.data&&e.data.BYTES_PER_ELEMENT&&t.push(e.data.buffer)})),t}}],[{key:"fromGLTFPrimitive",value:function(e){var n=new t(e.indices,e.mode),r=e.attributes,i=0;for(var a in r.POSITION&&(i=r.POSITION.length/3),r)if(s[a]){var o=h[s[a]];i&&(o=r[a].length/i),n.addAttr(s[a],r[a],o)}else console.warn("Dont support attribute",a);return n}},{key:"fromHilo3dGeometry",value:function(e){var n=new t(e.indices.data,e.mode);for(var r in f)e[r]&&n.addAttr(f[r],e[r].data,e[r].size);return n}}]),t}();t.exports=l},function(t,e){var n={};function r(t){return n[t]||(n[t]=Math.pow(2,t)-1),n[t]}t.exports={cal:function(t,e,n,i){var a=r(i),s=n-e;return Math.round((t-e)/s*a)},encode:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=t.length,i=r(e),a=1/0,s=-1/0,o=0;o<n;o++)a=Math.min(a,t[o]),s=Math.max(s,t[o]);var u=s-a||1,c=[];for(o=0;o<n;o++)c[o]=Math.round((t[o]-a)/u*i);return{min:a,max:s,quantizationBit:e,data:c}},encodeWithMinAndMax:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:8,s=t.length,o=r(a),u=i-n||1,c=0;c<s;c++)e[c]=Math.round((t[c]-n)/u*o);return e},decode:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,a=t.length,s=r(e),o=i-n,u=new Float32Array(a),c=0;c<a;c++)u[c]=n+o*(t[c]/s);return u},normalize:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,r=t.length,i=0;i<r;i+=n){for(var a=0,s=0;s<n;s++)a+=t[i+s]*t[i+s];for(a=Math.sqrt(a),s=0;s<n;s++)e[i+s]=t[i+s]/a}return e}}},function(t,e,n){t.exports=n(3)},function(t,e,n){var r=n(4);r.Geometry=n(0),t.exports=r},function(t,e,n){var r=n(0),i=n(5),a=n(7),s=n(8),o=n(9),u=[i],c=[a];function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t instanceof Uint8Array&&(e=t.byteOffset,t=t.buffer),function(t){return new u[t.type](t).decompress()}(function(t,e){var n=new Uint8Array(t,e,4);if(65!==n[0]||77!==n[1]||67!==n[2])throw new Error("The file is not AMC format!");var r=c[n[3]].read(t,e+4);return r.geometry.type=n[3],r.geometry}(t,e))}var h,l=null,d=null;function m(t,e){return!l&&o()?(l=new s({wasmURL:t,memPages:e}),d=l.init()):d||Promise.resolve()}function _(t,e,n){if(l||m(e,n),!l||!l.isReady)return f(t);try{return l.decompress(t)}catch(e){return console.warn("wasm decompress error",e),f(t)}}var p=null;function g(t){return t=t||"https://g.alicdn.com/hilo/amc/0.1.27/worker.js",p||(!1===h||"undefined"==typeof Worker?Promise.reject("dont support web worker"):p=/^(?:http|blob|data:|\/\/)/.test(t)?new Promise((function(e,n){var r=new XMLHttpRequest;r.addEventListener("load",(function(){if("undefined"==typeof URL||"undefined"==typeof Blob)h=new Worker("data:application/javascript, ".concat(this.responseText));else{var t=URL.createObjectURL(new Blob([this.responseText]));h=new Worker(t)}h.onerror=function(t){console.log("web worker error",t),h=!1,n(t)},e(h)})),r.addEventListener("error",(function(t){return n(t)})),r.open("get",t,!0),r.send()})):new Promise((function(e,n){(h=new Worker(t)).onerror=function(t){console.log("web worker init error",t),h=!1,n(t)},e(h)})))}var E=0;function v(t,e,n,i){return e=e&&o(),t=new Uint8Array(t),g(i).then((function(i){return new Promise((function(a,s){var o=E++,u=function(e){if(e.data.id===o)if(i.removeEventListener("message",u),u=null,e.data.data){var n=e.data.data;n.constructor=r,n.__proto__=r.prototype,a(n)}else a(f(t))};i.addEventListener("message",u),i.postMessage({id:o,data:t,useWASM:e,wasmURL:n},[t.buffer])}))})).catch((function(r){return e?_(t,n):f(t)}))}t.exports={initWASM:m,initWorker:g,decompress:function(t,e,n){var r=o();return!r||t.byteLength>1048576?v(t,r,e,n):r?Promise.resolve(_(t,e)):Promise.resolve(f(t))},decompressWithJS:f,decompressWithWASM:_,decompressWithWorker:v,destory:function(){h&&(h.terminate(),h=null,p=null),l&&(l=null,d=null)}}},function(t,e,n){function r(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var a=n(0),o=(n(1),n(6)),u=o.map,c=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.geometry=e,this.faceCount=e.clers.length,this.clers=e.clers,this.holes=e.holes,this.handles=e.handles,this.createHandleMap(this.handles),this.vertexCount=e.getAttrLength(),this.noParallelogramPrediction=!!e.noParallelogramPrediction}var e,n;return e=t,(n=[{key:"nextCorner",value:function(t){return t<0?-1:t+(t%3==2?-2:1)}},{key:"prevCorner",value:function(t){return t<0?-1:t+(t%3?-1:2)}},{key:"createHandleMap",value:function(t){var e=this.handlesMap={};if(t)for(var n=t.length-1;n>=0;n-=2)e[t[n]]=t[n-1]}},{key:"mapBoundary",value:function(t){for(var e=this.indices,n=t.length,r=this.currentVertex,i=this.currentVertex-n+1,a=n-1;a>=0;a--)e[this.nextCorner(t[a])]=r,r=i,e[this.prevCorner(t[a])]=i++;this.currentVertex-=n}},{key:"mapHoleBoundary",value:function(t){for(var e=this.indices,n=t.length,r=this.currentVertex-n+1,i=r,a=n-1;a>=0;a--)e[this.nextCorner(t[a])]=r++,e[this.prevCorner(t[a])]=a?r:i;this.currentVertex-=n}},{key:"fixNegativeIndex",value:function(t){for(var e=t,n=this.indices;n[t]<0;){if(e===-n[-n[t]]||n[t]===n[-n[t]]){console.warn("dead loop bug!!"),n[s]=0;break}n[t]=n[-n[t]]}}},{key:"fixIndicesAndReadVertice",value:function(){for(var t,e=this.indices,n=this.handlesMap,r=this.clers,i=r.length,a=-1,s=[],u=0,c=0;u<i;u++,c+=3)-1===a?(this.fixNegativeIndex(c+1),this.fixNegativeIndex(c+2)):(e[c+1]=e[this.prevCorner(a)],e[c+2]=e[this.nextCorner(a)]),this.fixNegativeIndex(c),-1===a?(this.readVertex(e[c+2]),this.readVertex(e[c+1]),this.readVertex(e[c])):this.readVertex(e[c],a),a=c+1,(t=r[u])!==o.S||n[u]?t===o.E||t===o.F?a=s.pop():t===o.R&&(a=c+2):s.push(c+2),t===o.F&&(a=-1,delete this.lastReadVertexIndex),this._onDecompressFace(u,t)}},{key:"readVertex",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;if(!this.readedVertexMap[t]&&(this.readedVertexMap[t]=1,!this.noParallelogramPrediction)){var n=this.indices,r=this.geometry;-1===e?void 0!==this.lastReadVertexIndex&&r.cal(r,t,a.plus,this.lastReadVertexIndex,t):r.cal(r,t,a.depp,n[e],n[this.prevCorner(e)],n[this.nextCorner(e)],t),this.lastReadVertexIndex=t}}},{key:"markCorner",value:function(t,e){var n=this.indices;void 0===n[this.nextCorner(t)]&&(n[this.nextCorner(t)]=-this.prevCorner(e[0])),void 0===n[this.prevCorner(t)]&&(n[this.prevCorner(t)]=-this.nextCorner(e[e.length-1]))}},{key:"onFaceC",value:function(t){var e=this.indices,n=3*this.currentFace,r=this.currentVertex--;e[n]=r;var i=t.pop();return e[this.nextCorner(i)]=r,e[this.prevCorner(i)]=-this.nextCorner(t[t.length-1]),i=t.shift(),e[this.prevCorner(i)]=r,e[this.nextCorner(i)]=-this.prevCorner(t[0]),t.push(n),t}},{key:"onFaceL",value:function(t){var e=3*this.currentFace;return this.markCorner(t.pop(),t),t.unshift(e+2),t.push(e),t}},{key:"onFaceF",value:function(t,e){return t&&this.mapBoundary(t),this.onFaceE(null,e)}},{key:"onFaceE",value:function(t,e){var n=3*this.currentFace;return t&&e.push(t),[n+2,n+1,n]}},{key:"onFaceR",value:function(t){var e=3*this.currentFace;return this.markCorner(t.pop(),t),t.push(e+1,e),t}},{key:"onHandleEnd",value:function(t,e,n){var r=this.indices,i=3*this.currentFace,a=this.handlesMap[this.currentFace],s=e.splice(0,t);return e.shift(),n.push(s),r[this.nextCorner(a)]=-(i+1),r[this.prevCorner(a)]=-this.nextCorner(s[s.length-1]),r[i]=-this.prevCorner(s[0]),e.push(i),e}},{key:"onHandleStart",value:function(t,e){for(var n,i=this.indices,a=3*this.currentFace,s=this.handlesMap[this.currentFace],o=e.length-1;o>=0;o--){var u=e[o].indexOf(s);if(u>=0){var c,f=(n=e.splice(o,1)[0]).splice(0,u);n.shift(),(c=n).push.apply(c,r(f));break}}return i[this.nextCorner(s)]=-(a+1),i[this.prevCorner(s)]=-this.nextCorner(n[n.length-1]),i[a]=-this.prevCorner(t[0]),(t=n.concat(t)).push(a),t}},{key:"onFaceS",value:function(t,e,n){var r=this.handlesMap,i=this.indices,a=3*this.currentFace;if(r[this.currentFace]){this.markCorner(t.pop(),t);var s=t.indexOf(r[this.currentFace]);t=s>=0?this.onHandleEnd(s,t,n):this.onHandleStart(t,n)}else{var o=t.pop();this.markCorner(o,t),i[a]=-this.nextCorner(o);var u=e.pop();this.markCorner(u.pop(),u),(t=u.concat(t)).push(a)}return t}},{key:"onFaceM",value:function(t,e,n){var r=this.indices,i=3*this.currentFace,a=t.splice(0,this.holes[this.currentHole--]);this.mapHoleBoundary(a);var s=r[this.prevCorner(a[0])];r[i]=s;var o=t.pop();return r[this.prevCorner(o)]=-this.nextCorner(t[t.length-1]),r[this.nextCorner(o)]=s,o=t.shift(),r[this.prevCorner(o)]=s,r[this.nextCorner(o)]=-this.prevCorner(t[0]),t.push(i),t}},{key:"decompress",value:function(){this.readedVertexMap=new Uint8Array(this.vertexCount);var t=this.faceCount,e=this.indices=new Array(3*t);this.currentFace=t-1,this.currentVertex=this.vertexCount-1,this.currentHole=this.holes.length-1;for(var n,r=this.clers,i=[],a=[];this.currentFace>=0;){var s="onFace"+u[r[this.currentFace]];this[s]?n=this[s](n,i,a):console.warn("has no ".concat(s)),this.currentFace--}return this.mapBoundary(n),this.fixIndicesAndReadVertice(this.indices),this.geometry.indices=e,this.geometry.dequantize(),this.geometry}},{key:"_onDecompressFace",value:function(t,e){this.onDecompressFace&&this.onDecompressFace(t,e)}}])&&i(e.prototype,n),t}();t.exports=c},function(t,e){var n={C:0,R:1,L:2,S:3,E:4,M:5,F:6},r=[];for(var i in n)r[n[i]]=i;n.map=r,t.exports=n},function(t,e,n){var r=n(0);function i(t,e,n,r){return new t(e.slice(n,n+r*t.BYTES_PER_ELEMENT))}t.exports={read:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=new DataView(t),a=new r,s=function(t,e){var n={};return n.version=t.getUint8(e++),n.faceCount=t.getUint32(e,!0),e+=4,n.vertexCount=t.getUint32(e,!0),e+=4,n.attrCount=t.getUint8(e++),n.noParallelogramPrediction=t.getUint8(e++),n.holesCount=t.getUint16(e,!0),e+=2,n.handlesCount=t.getUint16(e,!0),e+=2,n.headerBytes=15,n}(n,e);return e+=s.headerBytes,a.mode="CLERS",e=function(t,e,n,r){for(var a=0;a<r.attrCount;a++){var s={},o=e.getUint16(n,!0);n+=2,s.name=t.attrIdToName(o),s.itemCount=e.getUint8(n++),s.quantizationBit=e.getUint8(n++),s.min=e.getFloat32(n,!0),n+=4,s.max=e.getFloat32(n,!0),n+=4,s.data=i(Int16Array,e.buffer,n,s.itemCount*r.vertexCount),n+=s.itemCount*r.vertexCount*2,t.attrs.push(s)}return n}(a,n,e=function(t,e,n,r){return t.clers=new Uint8Array(e.buffer,n,r.faceCount),n+r.faceCount}(a,n,e=function(t,e,n,r){return r.handlesCount?(t.handles=i(Uint32Array,e.buffer,n,2*r.handlesCount),n+8*r.handlesCount):(t.handles=[],n)}(a,n,e=function(t,e,n,r){return r.holesCount?(t.holes=i(Uint16Array,e.buffer,n,r.holesCount),n+2*r.holesCount):(t.holes=[],n)}(a,n,e,s),s),s),s),{header:s,geometry:a,offset:e}}}},function(t,e,n){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var i=n(0),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.wasmURL=e.wasmURL||"https://ossgw.alicdn.com/tmall-c3/tmx/70b8d82ccf33e97a124e54c2d6a3e0c7.wasm",this.memPages=e.memPages||256,this.memPages<256&&(this.memPages=256),this.isReady=!1}var e,n;return e=t,(n=[{key:"initASMJS",value:function(){this.isReady=!0,this.dv=new DataView(HEAP8.buffer),this.heap8=HEAP8,this.ins={exports:{__Z7AMCinitj:Module.__Z7AMCinitj,__Z12AMDecompressv:Module.__Z12AMDecompressv}}}},{key:"init",value:function(){var t=this,e=this.memory=new WebAssembly.Memory({initial:this.memPages});this.dv=new DataView(e.buffer);var n=this.heap8=new Uint8Array(e.buffer),r={global:{NaN:5,Infinity:6},env:{memoryBase:0,memory:e,_malloc:function(){return 2097152},_memset:function(t,e,r){return n.fill(e,t,t+r),t},_printf:function(t,e){for(var r=t;n[r];)r++;var i=String.fromCharCode.apply(String,function(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}(n.slice(t,r))),a=0;i=i.replace(/%([duf])/g,(function(t,n){return"d"===n||"u"===n?dv.getInt32(e+4*a++,!0):"f"===n?dv.getFloat32(e+4*a++,!0):void 0})),console.log(i)}}};return fetch(this.wasmURL).then((function(t){return t.arrayBuffer()})).then((function(t){return WebAssembly.instantiate(t,r)})).then((function(e){t.module=e,t.ins=e.instance,t.isReady=!0})).catch((function(t){return console.log("wasm load error, use js ver")}))}},{key:"getDataAddr",value:function(t){return this.ins.exports.__Z7AMCinitj(t)}},{key:"decompress",value:function(t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var e=this.dv,n=this.heap8,r=this.getDataAddr(t.length);n.set(t,r);var a=this.ins.exports.__Z12AMDecompressv();if(a<=0)throw console.error("decompression error code: "+a),new Error("decompression error code: "+a);for(var s=e.getUint32(a,!0),o=e.getUint32(a+4,!0),u=e.getUint32(a+8,!0),c=e.getUint32(a+12,!0),f=[],h=0;h<c;h++){var l=a+16+12*h;f.push([e.getUint32(l,!0),e.getUint32(l+4,!0),e.getUint32(l+8,!0)])}var d=new Uint32Array(e.buffer,o,3*s);d=u>65536?new Uint32Array(d):new Uint16Array(d);var m=new i(d);return f.forEach((function(t){var n=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,i=!1,a=void 0;try{for(var s,o=t[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,a=t}finally{try{r||null==o.return||o.return()}finally{if(i)throw a}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}(t,3),r=n[0],i=n[1],a=n[2],s=new Float32Array(e.buffer.slice(a,a+u*i*4));m.addAttr(m.attrIdToName(r),s,i)})),m}}])&&r(e.prototype,n),t}();t.exports=a},function(t,e){var n;t.exports=function(){return void 0===n&&(n=function(){if("undefined"==typeof WebAssembly||"undefined"==typeof fetch||function(){if(!/iPad|iPhone|iPod/i.test(navigator.userAgent))return!1;if(/OS (\d+)_(\d+)_?(\d+)?/i.test(navigator.userAgent)){var t=Number(RegExp.$1),e=Number(RegExp.$2);if(11===t&&e>=3||t>11)return!1}return!0}())return!1;try{var t=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),e=new WebAssembly.Module(t);return 0!==new WebAssembly.Instance(e,{}).exports.test(4)}catch(t){return console.log("err while check WebAssembly",t),!1}}()),n}}])},function(t,e,n){"use strict";var r=n(34),i=n.n(r),a=n(1),s=n(5),o=a.a.create({className:"Ray",isRay:!0,origin:{get:function(){return this._origin},set:function(t){this._origin=t,this._ray.origin=t.elements}},direction:{get:function(){return this._direction},set:function(t){this._direction=t,this._ray.direction=t.elements}},constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._ray=new i.a,this.origin=t.origin||new s.a(0,0,0),this.direction=t.direction||new s.a(0,0,-1)},set:function(t,e){return this.origin=t,this.direction=e,this},copy:function(t){this.origin.copy(t.origin),this.direction.copy(t.direction)},clone:function(){return new this.constructor({origin:this.origin.clone(),direction:this.direction.clone()})},fromCamera:function(t,e,n,r,i){t.isPerspectiveCamera?(t.worldMatrix.getTranslation(this.origin),this.direction.set(e,n,0),this.direction.copy(t.unprojectVector(this.direction,r,i)),this.direction.sub(this.origin).normalize()):t.isOrthographicCamera&&(this.origin.set(e,n,(t.near+t.far)/(t.near-t.far)),this.origin.copy(t.unprojectVector(this.origin,r,i)),this.direction.set(0,0,-1).transformDirection(t.worldMatrix).normalize())},transformMat4:function(t){this.origin.transformMat4(t),this.direction.transformDirection(t).normalize()},sortPoints:function(t,e){var n=this;e?t.sort((function(t,r){return n.squaredDistance(t[e])-n.squaredDistance(r[e])})):t.sort((function(t,e){return n.squaredDistance(t)-n.squaredDistance(e)}))},squaredDistance:function(t){return this.origin.squaredDistance(t)},distance:function(t){return this.origin.distance(t)},intersectsSphere:function(t,e){var n=this._ray.intersectsSphere(t,e);return this._getRes(n)},intersectsPlane:function(t,e){var n=this._ray.intersectsPlane(t,e);return this._getRes(n)},intersectsTriangle:function(t){var e=this._ray.intersectsTriangle(t);return this._getRes(e)},intersectsBox:function(t){var e=this._ray.intersectsBox(t);return this._getRes(e)},intersectsTriangleCell:function(t,e){var n=this._ray.intersectsTriangleCell(t,e);return this._getRes(n)},_getRes:function(t){return t?new s.a(t[0],t[1],t[2]):null}});e.a=o},function(t,e,n){"use strict";var r=n(0),i=n(1),a=n(9),s=n(5),o=i.a.create({Mixes:a.a,Extends:s.a,className:"Vector3Notifier",isVector3Notifier:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.elements=r.vec3.fromValues(t,e,n)},copy:function(t){return r.vec3.copy(this.elements,t.elements),this.fire("update"),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t[2+e]=n[2],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],n[2]=t[e+2],this.fire("update"),this},set:function(t,e,n){return r.vec3.set(this.elements,t,e,n),this.fire("update"),this},add:function(t,e){return e||(e=t,t=this),r.vec3.add(this.elements,t.elements,e.elements),this.fire("update"),this},subtract:function(t,e){return e||(e=t,t=this),r.vec3.subtract(this.elements,t.elements,e.elements),this.fire("update"),this},multiply:function(t,e){return e||(e=t,t=this),r.vec3.multiply(this.elements,t.elements,e.elements),this.fire("update"),this},divide:function(t,e){return e||(e=t,t=this),r.vec3.divide(this.elements,t.elements,e.elements),this.fire("update"),this},ceil:function(){return r.vec3.ceil(this.elements,this.elements),this.fire("update"),this},floor:function(){return r.vec3.floor(this.elements,this.elements),this.fire("update"),this},min:function(t,e){return e||(e=t,t=this),r.vec3.min(this.elements,t.elements,e.elements),this.fire("update"),this},max:function(t,e){return e||(e=t,t=this),r.vec3.max(this.elements,t.elements,e.elements),this.fire("update"),this},round:function(){return r.vec3.round(this.elements,this.elements),this.fire("update"),this},scale:function(t){return r.vec3.scale(this.elements,this.elements,t),this.fire("update"),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec3.scaleAndAdd(this.elements,e.elements,n.elements,t),this.fire("update"),this},distance:function(t,e){return e||(e=t,t=this),r.vec3.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec3.squaredDistance(t.elements,e.elements)},length:function(){return r.vec3.length(this.elements)},squaredLength:function(){return r.vec3.squaredLength(this.elements)},negate:function(){return r.vec3.negate(this.elements,this.elements),this.fire("update"),this},inverse:function(t){return t||(t=this),r.vec3.inverse(this.elements,t.elements),this.fire("update"),this},normalize:function(){return r.vec3.normalize(this.elements,this.elements),this.fire("update"),this},dot:function(t,e){return e||(e=t,t=this),r.vec3.dot(t.elements,e.elements)},cross:function(t,e){return e||(e=t,t=this),r.vec3.cross(this.elements,t.elements,e.elements),this.fire("update"),this},lerp:function(t,e){return r.vec3.lerp(this.elements,this.elements,t.elements,e),this.fire("update"),this},hermite:function(t,e,n,i,a){return r.vec3.hermite(this.elements,t.elements,e.elements,n.elements,i.elements,a),this.fire("update"),this},bezier:function(t,e,n,i,a){return r.vec3.bezier(this.elements,t.elements,e.elements,n.elements,i.elements,a),this.fire("update"),this},random:function(t){return r.vec3.random(this.elements,t),this.fire("update"),this},transformMat3:function(t){return r.vec3.transformMat3(this.elements,this.elements,t.elements),this.fire("update"),this},transformMat4:function(t){return r.vec3.transformMat4(this.elements,this.elements,t.elements),this.fire("update"),this},transformDirection:function(t){var e=this.elements,n=t.elements,r=e[0],i=e[1],a=e[2];return e[0]=r*n[0]+i*n[4]+a*n[8],e[1]=r*n[1]+i*n[5]+a*n[9],e[2]=r*n[2]+i*n[6]+a*n[10],this.fire("update"),this},transformQuat:function(t){return r.vec3.transformQuat(this.elements,this.elements,t.elements),this.fire("update"),this},rotateX:function(t,e){return r.vec3.rotateX(this.elements,this.elements,t.elements,e),this.fire("update"),this},rotateY:function(t,e){return r.vec3.rotateY(this.elements,this.elements,t.elements,e),this.fire("update"),this},rotateZ:function(t,e){return r.vec3.rotateZ(this.elements,this.elements,t.elements,e),this.fire("update"),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec3.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec3.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this.fire("update")}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this.fire("update")}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this.fire("update")}}});e.a=o},function(t,e){t.exports="#define GLSLIFY 1\n#define HILO_FRONT_SIDE 1028\n#define HILO_BACK_SIDE 1029\n#define HILO_FRONT_AND_BACK_SIDE 1032\n#define HILO_PI 3.141592653589793\n#define HILO_INVERSE_PI 0.3183098861837907"},function(t,e,n){"use strict";var r=n(1),i=n(5),a=r.a.create({className:"Plane",isPlane:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new i.a,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.normal=t,this.distance=e},copy:function(t){return this.normal.copy(t.normal),this.distance=t.distance,this},clone:function(){return new this.constructor(this.normal.clone(),this.distance)},set:function(t,e,n,r){return this.normal.set(t,e,n),this.distance=r,this},normalize:function(){var t=1/this.normal.length();return this.normal.scale(t),this.distance*=t,this},distanceToPoint:function(t){return this.normal.dot(t)+this.distance},projectPoint:function(t){return(new i.a).copy(this.normal).scale(-this.distanceToPoint(t)).add(t)}});e.a=a},function(t,e,n){"use strict";var r=n(1),i=n(5),a=new i.a,s=r.a.create({className:"Sphere",isSphere:!0,radius:0,constructor:function(t){Object.assign(this,t),this.center||(this.center=new i.a(0,0,0))},clone:function(){var t=new this.constructor;return t.copy(this),t},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},fromPoints:function(t){for(var e=this.center,n=0,r=0;r<t.length;r+=3){var i=t[r]-e.x,a=t[r+1]-e.y,s=t[r+2]-e.z;n=Math.max(i*i+a*a+s*s,n)}return this.radius=Math.sqrt(n),this},fromGeometryData:function(t){var e=this.center,n=0;return t.traverse((function(t){var r=t.x-e.x,i=t.y-e.y,a=t.z-e.z;n=Math.max(r*r+i*i+a*a,n)})),this.radius=Math.sqrt(n),this},transformMat4:function(t){this.center.transformMat4(t);var e=t.getScaling(a);return this.radius*=Math.max(e.x,e.y,e.z),this}});e.a=s},function(t,e,n){"use strict";var r,i=n(0),a=n(1),s=n(9),o=n(5),u=n(7),c=n(10),f=new o.a,h=new o.a,l=a.a.create({Mixes:s.a,Extends:u.a,className:"Matrix4Notifier",isMatrix4Notifier:!0,constructor:function(){this.elements=i.mat4.create()},copy:function(t){return i.mat4.copy(this.elements,t.elements),this.fire("update"),this},fromArray:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<16;r++)n[r]=t[e+r];return this.fire("update"),this},set:function(t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p){return i.mat4.set(this.elements,t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p),this.fire("update"),this},identity:function(){return i.mat4.identity(this.elements),this.fire("update"),this},transpose:function(){return i.mat4.transpose(this.elements,this.elements),this.fire("update"),this},invert:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.invert(this.elements,t.elements),this.fire("update"),this},adjoint:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.adjoint(this.elements,t.elements),this.fire("update"),this},determinant:function(){return i.mat4.determinant(this.elements)},multiply:function(t,e){return e||(e=t,t=this),i.mat4.multiply(this.elements,t.elements,e.elements),this.fire("update"),this},premultiply:function(t){return this.multiply(t,this),this.fire("update"),this},translate:function(t){return i.mat4.translate(this.elements,this.elements,t.elements),this.fire("update"),this},scale:function(t){return i.mat4.scale(this.elements,this.elements,t.elements),this.fire("update"),this},rotate:function(t,e){return i.mat4.rotate(this.elements,this.elements,t,e.elements),this.fire("update"),this},rotateX:function(t){return i.mat4.rotateX(this.elements,this.elements,t),this.fire("update"),this},rotateY:function(t){return i.mat4.rotateY(this.elements,this.elements,t),this.fire("update"),this},rotateZ:function(t){return i.mat4.rotateZ(this.elements,this.elements,t),this.fire("update"),this},fromTranslation:function(t){return i.mat4.fromTranslation(this.elements,t.elements),this.fire("update"),this},fromScaling:function(t){return i.mat4.fromScaling(this.elements,t.elements),this.fire("update"),this},fromRotation:function(t,e){return i.mat4.fromRotation(this.elements,t,e.elements),this.fire("update"),this},fromXRotation:function(t){return i.mat4.fromXRotation(this.elements,t),this.fire("update"),this},fromYRotation:function(t){return i.mat4.fromYRotation(this.elements,t),this.fire("update"),this},fromZRotation:function(t){return i.mat4.fromZRotation(this.elements,t),this.fire("update"),this},fromRotationTranslation:function(t,e){return i.mat4.fromRotationTranslation(this.elements,t.elements,e.elements),this.fire("update"),this},getTranslation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new o.a;return i.mat4.getTranslation(t.elements,this.elements),t},getScaling:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new o.a;return i.mat4.getScaling(t.elements,this.elements),t},getRotation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new c.a;return i.mat4.getRotation(t.elements,this.elements),t},fromRotationTranslationScale:function(t,e,n){return i.mat4.fromRotationTranslationScale(this.elements,t.elements,e.elements,n.elements),this.fire("update"),this},fromRotationTranslationScaleOrigin:function(t,e,n,r,a){return i.mat4.fromRotationTranslationScaleOrigin(this.elements,t.elements,e.elements,n.elements,r.elements),a||this.fire("update"),this},fromQuat:function(t){return i.mat4.fromQuat(this.elements,t.elements),this.fire("update"),this},frustum:function(t,e,n,r,a,s){return i.mat4.frustum(this.elements,t,e,n,r,a,s),this.fire("update"),this},perspective:function(t,e,n,r){return i.mat4.perspective(this.elements,t,e,n,r),this.fire("update"),this},perspectiveFromFieldOfView:function(t,e,n){return i.mat4.perspectiveFromFieldOfView(this.elements,t,e,n),this.fire("update"),this},ortho:function(t,e,n,r,a,s){return i.mat4.ortho(this.elements,t,e,n,r,a,s),this.fire("update"),this},lookAt:function(t,e,n){return t.isVector3||(t=f.set(t.x,t.y,t.z)),e.isVector3||(e=h.set(e.x,e.y,e.z)),i.mat4.lookAt(this.elements,t.elements,e.elements,n.elements),this.fire("update"),this},targetTo:function(t,e,n){t.isVector3||(t=f.set(t.x,t.y,t.z)),e.isVector3||(e=h.set(e.x,e.y,e.z)),t=t.elements,e=e.elements,n=n.elements;var r=this.elements,i=t[0],a=t[1],s=t[2],o=n[0],u=n[1],c=n[2],l=i-e[0],d=a-e[1],m=s-e[2],_=l*l+d*d+m*m;_>0?(l*=_=1/Math.sqrt(_),d*=_,m*=_):m=1;var p=u*m-c*d,g=c*l-o*m,E=o*d-u*l;return(_=p*p+g*g+E*E)>0?(p*=_=1/Math.sqrt(_),g*=_,E*=_):(_=(p=u*m-c*d)*p+(g=c*l-(o+=1e-7)*m)*g+(E=o*d-u*l)*E,p*=_=1/Math.sqrt(_),g*=_,E*=_),r[0]=p,r[1]=g,r[2]=E,r[3]=0,r[4]=d*E-m*g,r[5]=m*p-l*E,r[6]=l*g-d*p,r[7]=0,r[8]=l,r[9]=d,r[10]=m,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,this.fire("update"),this},frob:function(){return i.mat4.frob(this.elements)},add:function(t,e){return e||(e=t,t=this),i.mat4.add(this.elements,t.elements,e.elements),this.fire("update"),this},subtract:function(t,e){return e||(e=t,t=this),i.mat4.subtract(this.elements,t.elements,e.elements),this.fire("update"),this},exactEquals:function(t,e){return e||(e=t,t=this),i.mat4.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),i.mat4.equals(t.elements,e.elements)},compose:function(t,e,n,r){return r?this.fromRotationTranslationScaleOrigin(t,e,n,r):this.fromRotationTranslationScale(t,e,n),this},decompose:function(t,e,n,i){return this.getScaling(n),this.getTranslation(e),r||(r=new u.a),this.determinant()<0&&(n.x*=-1),r.copy(this),f.inverse(n),r.scale(f),t.fromMat4(r),i&&i.set(0,0,0),this}});e.a=l},function(t,e,n){"use strict";var r=n(1),i=n(9),a=n(6),s=n(13),o=a.a.DEG2RAD,u=a.a.RAD2DEG,c=r.a.create({Mixes:i.a,Extends:s.a,className:"EulerNotifier",isEulerNotifier:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;s.a.call(this,t,e,n)},updateDegrees:function(){return c.superclass.updateDegrees.call(this),this.fire("update"),this},updateRadians:function(){return c.superclass.updateRadians.call(this),this.fire("update"),this},degX:{get:function(){return this._degX},set:function(t){this._degX=t,this.elements[0]=t*o,this.fire("update")}},degY:{get:function(){return this._degY},set:function(t){this._degY=t,this.elements[1]=t*o,this.fire("update")}},degZ:{get:function(){return this._degZ},set:function(t){this._degZ=t,this.elements[2]=t*o,this.fire("update")}},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this._degX=t*u,this.fire("update")}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this._degY=t*u,this.fire("update")}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this._degZ=t*u,this.fire("update")}}});e.a=c},function(t,e,n){"use strict";var r=n(1),i=n(19),a=r.a.create({className:"Frustum",isFrustum:!0,constructor:function(){this.planes=[];for(var t=6;t--;)this.planes.push(new i.a)},copy:function(t){var e=t.planes;return this.planes.forEach((function(t,n){t.copy(e[n])})),this},clone:function(){var t=new this.constructor;return t.copy(this),t},fromMatrix:function(t){var e=this.planes,n=t.elements,r=n[0],i=n[1],a=n[2],s=n[3],o=n[4],u=n[5],c=n[6],f=n[7],h=n[8],l=n[9],d=n[10],m=n[11],_=n[12],p=n[13],g=n[14],E=n[15];return e[0].set(s-r,f-o,m-h,E-_).normalize(),e[1].set(s+r,f+o,m+h,E+_).normalize(),e[2].set(s+i,f+u,m+l,E+p).normalize(),e[3].set(s-i,f-u,m-l,E-p).normalize(),e[4].set(s-a,f-c,m-d,E-g).normalize(),e[5].set(s+a,f+c,m+d,E+g).normalize(),this},intersectsSphere:function(t){for(var e=this.planes,n=t.center,r=-t.radius,i=0;i<6;i++){if(e[i].distanceToPoint(n)<r)return!1}return!0}});e.a=a},function(t,e){t.exports="#ifndef HILO_IS_WEBGL2\n #ifdef HILO_USE_SHADER_TEXTURE_LOD\n #extension GL_EXT_shader_texture_lod: enable\n #endif\n\n #ifdef HILO_USE_FRAG_DEPTH\n #extension GL_EXT_frag_depth: enable\n #endif\n\n #ifdef HILO_USE_DRAW_BUFFERS\n #extension GL_EXT_draw_buffers: enable\n#define GLSLIFY 1\n\n #endif\n#endif"},function(t,e){t.exports="#ifdef GL_ES\nprecision HILO_MAX_FRAGMENT_PRECISION float;\n#define GLSLIFY 1\n#endif"},function(t,e){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},function(t,e,n){"use strict";n.r(e),n.d(e,"Color",(function(){return r.a})),n.d(e,"Euler",(function(){return i.a})),n.d(e,"EulerNotifier",(function(){return a.a})),n.d(e,"Frustum",(function(){return s.a})),n.d(e,"math",(function(){return o.a})),n.d(e,"Matrix3",(function(){return u.a})),n.d(e,"Matrix4",(function(){return c.a})),n.d(e,"Matrix4Notifier",(function(){return f.a})),n.d(e,"Plane",(function(){return h.a})),n.d(e,"Quaternion",(function(){return l.a})),n.d(e,"Ray",(function(){return d.a})),n.d(e,"Sphere",(function(){return m.a})),n.d(e,"SphericalHarmonics3",(function(){return v})),n.d(e,"Vector2",(function(){return T.a})),n.d(e,"Vector3",(function(){return p.a})),n.d(e,"Vector3Notifier",(function(){return A.a})),n.d(e,"Vector4",(function(){return M.a}));var r=n(8),i=n(13),a=n(22),s=n(23),o=n(6),u=n(11),c=n(7),f=n(21),h=n(19),l=n(10),d=n(16),m=n(20),_=n(1),p=n(5),g=new Float32Array(27),E=_.a.create({className:"SphericalHarmonics3",isSphericalHarmonics3:!0,Statics:{SH3_SCALE:[Math.sqrt(1/(4*Math.PI)),-Math.sqrt(3/(4*Math.PI)),Math.sqrt(3/(4*Math.PI)),-Math.sqrt(3/(4*Math.PI)),Math.sqrt(15/(4*Math.PI)),-Math.sqrt(15/(4*Math.PI)),Math.sqrt(5/(16*Math.PI)),-Math.sqrt(15/(4*Math.PI)),Math.sqrt(15/(16*Math.PI))]},constructor:function(){this.coefficients=[];for(var t=0;t<9;t++)this.coefficients.push(new p.a)},scale:function(t){return this.coefficients.forEach((function(e){e.scale(t)})),this},fromArray:function(t){return 9===t.length?this.coefficients.forEach((function(e,n){e.fromArray(t[n])})):27===t.length&&this.coefficients.forEach((function(e,n){e.fromArray(t,3*n)})),this},scaleForRender:function(){var t=E.SH3_SCALE;return this.coefficients.forEach((function(e,n){e.scale(t[n])})),this.scale(1/Math.PI),this},toArray:function(){return this.coefficients.forEach((function(t,e){t.toArray(g,3*e)})),g},clone:function(){var t=new this.constructor;return t.copy(this),t},copy:function(t){var e=t.coefficients;return this.coefficients.forEach((function(t,n){t.copy(e[n])})),this}}),v=E,T=n(14),A=n(17),M=n(12)},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_USE_LOG_DEPTH) && defined(HILO_USE_FRAG_DEPTH)\n uniform float u_logDepth;\n varying float v_fragDepth;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_USE_LOG_DEPTH) && defined(HILO_USE_FRAG_DEPTH)\n gl_FragDepthEXT = log2( v_fragDepth ) * u_logDepth * 0.5;\n#endif"},function(t,e){t.exports=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}},function(t,e){t.exports=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}},function(t,e){t.exports=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}},function(t,e){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},function(t,e,n){var r=n(88),i=n(90),a=n(91),s=n(94),o=n(33),u=[[0,0,0],[0,0,0],[0,0,0]],c=[0,0,0];function f(t,e){this.origin=t||[0,0,0],this.direction=e||[0,0,-1]}t.exports=f,f.prototype.set=function(t,e){this.origin=t,this.direction=e},f.prototype.copy=function(t){o(this.origin,t.origin),o(this.direction,t.direction)},f.prototype.clone=function(){var t=new f;return t.copy(this),t},f.prototype.intersectsSphere=function(t,e){return a(c,this.origin,this.direction,t,e)},f.prototype.intersectsPlane=function(t,e){return i(c,this.origin,this.direction,t,e)},f.prototype.intersectsTriangle=function(t){return r(c,this.origin,this.direction,t)},f.prototype.intersectsBox=function(t){return s(c,this.origin,this.direction,t)},f.prototype.intersectsTriangleCell=function(t,e){var n=t[0],r=t[1],i=t[2];return u[0]=e[n],u[1]=e[r],u[2]=e[i],this.intersectsTriangle(u)}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_COLOR\n varying vec4 v_color;\n#endif\n\n#ifdef HILO_USE_HDR\n uniform float u_exposure;\n#endif\n\n#ifdef HILO_GAMMA_CORRECTION\n uniform float u_gammaFactor;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_TEXCOORD0\n varying vec2 v_texcoord0;\n#endif\n\n#ifdef HILO_HAS_TEXCOORD1\n varying vec2 v_texcoord1;\n#endif\n\n#if defined(HILO_HAS_TEXCOORD0) || defined(HILO_HAS_TEXCOORD1)\n #if defined(HILO_HAS_TEXCOORD0) && defined(HILO_HAS_TEXCOORD1)\n #define HILO_SAMPLER_2D hiloSampler2D\n // https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Opaque_types\n #define HILO_TEXTURE_2D(HILO_SAMPLER_2D) hiloTexture2D(HILO_SAMPLER_2D.texture, HILO_SAMPLER_2D.uv)\n struct hiloSampler2D{\n sampler2D texture;\n int uv; \n };\n \n vec4 hiloTexture2D(sampler2D texture, int uv){\n if(uv == 0){\n return texture2D(texture, v_texcoord0);\n }\n else{\n return texture2D(texture, v_texcoord1);\n }\n }\n #else\n #ifdef HILO_HAS_TEXCOORD1\n #define HILO_V_TEXCOORD v_texcoord1\n #else\n #define HILO_V_TEXCOORD v_texcoord0\n #endif\n #define HILO_SAMPLER_2D sampler2D\n #define HILO_TEXTURE_2D(HILO_SAMPLER_2D) texture2D(HILO_SAMPLER_2D, HILO_V_TEXCOORD)\n #endif\n#endif\n\n\n#ifdef HILO_DIFFUSE_CUBE_MAP\n varying vec3 v_position;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_NORMAL\n varying vec3 v_normal;\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n varying mat3 v_TBN;\n #ifdef HILO_NORMAL_MAP\n uniform HILO_SAMPLER_2D u_normalMap;\n \n #ifdef HILO_NORMAL_MAP_SCALE\n uniform float u_normalMapScale;\n #endif\n #endif\n\n #ifdef HILO_CLEARCOAT_NORMAL_MAP\n uniform HILO_SAMPLER_2D u_clearcoatNormalMap;\n #endif\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FRAG_POS)\n varying vec3 v_fragPos;\n#endif"},function(t,e,n){t.exports="#define GLSLIFY 1\n#ifdef HILO_DIRECTIONAL_LIGHTS\n uniform vec3 u_directionalLightsColor[HILO_DIRECTIONAL_LIGHTS];\n uniform vec3 u_directionalLightsInfo[HILO_DIRECTIONAL_LIGHTS];\n #ifdef HILO_DIRECTIONAL_LIGHTS_SMC\n uniform sampler2D u_directionalLightsShadowMap[HILO_DIRECTIONAL_LIGHTS_SMC];\n uniform vec2 u_directionalLightsShadowMapSize[HILO_DIRECTIONAL_LIGHTS_SMC];\n uniform mat4 u_directionalLightSpaceMatrix[HILO_DIRECTIONAL_LIGHTS_SMC];\n uniform vec2 u_directionalLightsShadowBias[HILO_DIRECTIONAL_LIGHTS_SMC];\n #endif\n#endif\n\n#ifdef HILO_SPOT_LIGHTS\n uniform vec3 u_spotLightsPos[HILO_SPOT_LIGHTS];\n uniform vec3 u_spotLightsDir[HILO_SPOT_LIGHTS];\n uniform vec3 u_spotLightsColor[HILO_SPOT_LIGHTS];\n uniform vec2 u_spotLightsCutoffs[HILO_SPOT_LIGHTS];\n uniform vec3 u_spotLightsInfo[HILO_SPOT_LIGHTS];\n uniform float u_spotLightsRange[HILO_SPOT_LIGHTS];\n #ifdef HILO_SPOT_LIGHTS_SMC\n uniform sampler2D u_spotLightsShadowMap[HILO_SPOT_LIGHTS_SMC];\n uniform vec2 u_spotLightsShadowMapSize[HILO_SPOT_LIGHTS_SMC];\n uniform mat4 u_spotLightSpaceMatrix[HILO_SPOT_LIGHTS_SMC];\n uniform vec2 u_spotLightsShadowBias[HILO_SPOT_LIGHTS_SMC];\n #endif\n#endif\n\n#ifdef HILO_POINT_LIGHTS\n uniform vec3 u_pointLightsPos[HILO_POINT_LIGHTS];\n uniform vec3 u_pointLightsColor[HILO_POINT_LIGHTS];\n uniform vec3 u_pointLightsInfo[HILO_POINT_LIGHTS];\n uniform float u_pointLightsRange[HILO_POINT_LIGHTS];\n #ifdef HILO_POINT_LIGHTS_SMC\n uniform samplerCube u_pointLightsShadowMap[HILO_POINT_LIGHTS_SMC];\n uniform mat4 u_pointLightSpaceMatrix[HILO_POINT_LIGHTS_SMC];\n uniform vec2 u_pointLightsShadowBias[HILO_POINT_LIGHTS_SMC];\n uniform vec2 u_pointLightCamera[HILO_POINT_LIGHTS_SMC];\n #endif\n#endif\n\n#ifdef HILO_AREA_LIGHTS\n uniform vec3 u_areaLightsPos[HILO_AREA_LIGHTS];\n uniform vec3 u_areaLightsColor[HILO_AREA_LIGHTS];\n uniform vec3 u_areaLightsWidth[HILO_AREA_LIGHTS];\n uniform vec3 u_areaLightsHeight[HILO_AREA_LIGHTS];\n uniform sampler2D u_areaLightsLtcTexture1;\n uniform sampler2D u_areaLightsLtcTexture2;\n\n "+n(105)+"\n#endif\n\n#ifdef HILO_AMBIENT_LIGHTS\n uniform vec3 u_ambientLightsColor;\n#endif\n\n"+n(58)+"\n"+n(59)+"\n"+n(60)+"\n"+n(61)+"\n"+n(62)},function(t,e){t.exports="#define GLSLIFY 1\nvec4 textureEnvMap(sampler2D uTexture, vec3 position){\n return texture2D(uTexture, vec2(atan(position.x, position.z) * HILO_INVERSE_PI * 0.5+0.5, acos(position.y) * HILO_INVERSE_PI));\n}\n\nvec4 textureEnvMap(samplerCube uTexture, vec3 position){\n return textureCube(uTexture, position);\n}\n\nvec4 textureEnvMapIncludeMipmapsLod(sampler2D uTexture, vec3 position, float lod){\n lod = floor(lod);\n vec2 uv = vec2(atan(position.x, position.z) * HILO_INVERSE_PI * 0.5+0.5, acos(position.y) * HILO_INVERSE_PI);\n\n float scale = pow(2.0, lod);\n\n return texture2D(uTexture, vec2(uv.x / scale, (uv.y / scale / 2.0) + 1.0 - 1.0/pow(2.0, lod)));\n}\n\n#ifdef HILO_USE_SHADER_TEXTURE_LOD\n vec4 textureEnvMapLod(sampler2D uTexture, vec3 position, float lod){\n return texture2DLodEXT(uTexture, vec2(atan(position.x, position.z) * HILO_INVERSE_PI * 0.5+0.5, acos(position.y) * HILO_INVERSE_PI), lod);\n }\n\n vec4 textureEnvMapLod(samplerCube uTexture, vec3 position, float lod){\n return textureCubeLodEXT(uTexture, position, lod);\n }\n#endif\n\n"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_TRANSPARENCY_MAP\n uniform HILO_SAMPLER_2D u_transparency;\n#else\n uniform float u_transparency;\n#endif\n\n#ifdef HILO_ALPHA_CUTOFF\n uniform float u_alphaCutoff;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_FOG\n varying float v_dist;\n uniform vec4 u_fogColor;\n \n #ifdef HILO_FOG_LINEAR\n uniform vec2 u_fogInfo;\n #else\n uniform float u_fogInfo;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_NORMAL_MAP\n vec3 normal = HILO_TEXTURE_2D(u_normalMap).rgb * 2.0 - 1.0;\n #ifdef HILO_NORMAL_MAP_SCALE\n normal.xy *= u_normalMapScale;\n #endif\n normal = normalize(v_TBN * normal);\n#elif defined(HILO_HAS_NORMAL)\n vec3 normal = normalize(v_normal);\n#else\n vec3 normal = vec3(0, 0, 1);\n#endif\n\n#ifdef HILO_HAS_CLEARCOAT\n #ifdef HILO_CLEARCOAT_NORMAL_MAP\n vec3 clearcoatNormal = HILO_TEXTURE_2D(u_clearcoatNormalMap).rgb * 2.0 - 1.0;\n clearcoatNormal = normalize(v_TBN * clearcoatNormal);\n #elif defined(HILO_HAS_NORMAL)\n vec3 clearcoatNormal = normalize(v_normal);\n #else\n vec3 clearcoatNormal = vec3(0, 0, 1);\n #endif\n#endif\n\n#if HILO_SIDE == HILO_BACK_SIDE\n normal = -normal;\n #ifdef HILO_HAS_CLEARCOAT\n clearcoatNormal = -clearcoatNormal;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_LIGHT\n #if HILO_SIDE == HILO_FRONT_AND_BACK_SIDE\n normal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\nfloat transparency = 1.0;\n#ifdef HILO_TRANSPARENCY_MAP\n transparency = HILO_TEXTURE_2D(u_transparency).r;\n#else\n transparency = u_transparency;\n#endif\ncolor.a *= transparency;\n#ifdef HILO_ALPHA_CUTOFF\n if (color.a < u_alphaCutoff) {\n discard;\n } else {\n color.a = 1.0;\n }\n#endif"},function(t,e,n){t.exports="#define GLSLIFY 1\n#ifdef HILO_IGNORE_TRANSPARENT\ncolor.a = 1.0;\n#endif\n\n#ifdef HILO_USE_HDR\n color.rgb = vec3(1.0) - exp(-color.rgb * u_exposure);\n#endif\n\n#ifdef HILO_GAMMA_CORRECTION\n color.rgb = pow(color.rgb, vec3(1.0 / u_gammaFactor));\n#endif\n\n"+n(67)+"\n\n#ifdef HILO_PREMULTIPLY_ALPHA\n color.rgb *= color.a;\n#endif\n\ngl_FragColor = color;"},function(t,e){t.exports="#define GLSLIFY 1\n"},function(t,e){t.exports="#ifdef GL_ES\nprecision HILO_MAX_VERTEX_PRECISION float;\n#define GLSLIFY 1\n#endif"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(24)+"\n"+n(18)+"\n"+n(25)+"\n\n"+n(36)+"\n"+n(37)+"\n"+n(38)+"\n"+n(39)+"\n"+n(56)+"\n"+n(40)+"\n"+n(63)+"\n"+n(42)+"\n"+n(43)+"\n"+n(28)+"\n\nvoid main(void) {\n vec4 diffuse = vec4(0., 0., 0., 1.);\n vec4 color = vec4(0., 0., 0., 1.);\n\n "+n(44)+"\n "+n(45)+"\n "+n(65)+"\n "+n(66)+"\n "+n(46)+"\n "+n(47)+"\n "+n(29)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(48)+"\n"+n(18)+"\n"+n(49)+"\n\nattribute vec3 a_position;\nuniform mat4 u_modelViewProjectionMatrix;\n\n"+n(68)+"\n"+n(69)+"\n"+n(70)+"\n"+n(71)+"\n"+n(72)+"\n"+n(73)+"\n"+n(74)+"\n"+n(75)+"\nvoid main(void) {\n vec4 pos = vec4(a_position, 1.0);\n #ifdef HILO_HAS_TEXCOORD0\n vec2 uv = a_texcoord0;\n #endif\n #ifdef HILO_HAS_TEXCOORD1\n vec2 uv1 = a_texcoord1;\n #endif\n #ifdef HILO_HAS_NORMAL\n vec3 normal = a_normal;\n #endif\n\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n vec4 tangent = a_tangent;\n #endif\n\n "+n(76)+"\n "+n(77)+"\n "+n(78)+"\n "+n(79)+"\n "+n(80)+"\n "+n(81)+"\n "+n(82)+"\n\n gl_Position = u_modelViewProjectionMatrix * pos;\n\n "+n(83)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(24)+"\n"+n(18)+"\n"+n(25)+"\n\n#if defined(HILO_VERTEX_TYPE_POSITION)\n varying vec3 v_fragPos;\n#elif defined(HILO_VERTEX_TYPE_NORMAL)\n varying vec3 v_normal;\n#elif defined(HILO_VERTEX_TYPE_DEPTH)\n uniform float u_cameraFar;\n uniform float u_cameraNear;\n uniform float u_cameraType;\n#elif defined(HILO_VERTEX_TYPE_DISTANCE)\n "+n(84)+"\n\n uniform float u_cameraFar;\n uniform float u_cameraNear;\n varying vec3 v_fragPos;\n#endif\n\nvec4 transformDataToColor(vec3 data){\n #ifdef HILO_WRITE_ORIGIN_DATA\n return vec4(data, 1.0);\n #else\n return vec4(data * 0.5 + 0.5, 1.0);\n #endif\n}\n\n"+n(28)+"\n\nvoid main(void) {\n #if defined(HILO_VERTEX_TYPE_POSITION)\n gl_FragColor = transformDataToColor(v_fragPos);\n #elif defined(HILO_VERTEX_TYPE_NORMAL)\n gl_FragColor = transformDataToColor(v_normal);\n #elif defined(HILO_VERTEX_TYPE_DEPTH)\n float z;\n #ifdef HILO_WRITE_ORIGIN_DATA\n z = gl_FragCoord.z;\n #else\n // OrthographicCamera\n if(u_cameraType < 1.0){\n z = gl_FragCoord.z;\n }\n // PerspectiveCamera\n else{\n z = gl_FragCoord.z * 2.0 - 1.0;\n z = (2.0 * u_cameraNear * u_cameraFar) / (u_cameraFar + u_cameraNear - z * (u_cameraFar - u_cameraNear));\n }\n #endif\n gl_FragColor = vec4(z, z, z, 1.0);\n #elif defined(HILO_VERTEX_TYPE_DISTANCE)\n float distance = length(v_fragPos);\n #ifdef HILO_WRITE_ORIGIN_DATA\n gl_FragColor = vec4(distance, distance, distance, 1.0);\n #else\n gl_FragColor = packFloat((distance - u_cameraNear)/(u_cameraFar - u_cameraNear));\n #endif\n #endif\n "+n(29)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(24)+"\n"+n(18)+"\n"+n(25)+"\n\n"+n(36)+"\n"+n(37)+"\n"+n(38)+"\n"+n(39)+"\n"+n(85)+"\n"+n(40)+"\n"+n(42)+"\n"+n(43)+"\n"+n(28)+"\n\nvoid main(void) {\n vec4 color = vec4(0., 0., 0., 1.);\n\n "+n(44)+"\n "+n(45)+"\n "+n(87)+"\n "+n(47)+"\n "+n(29)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(24)+"\n"+n(18)+"\n"+n(25)+"\n\nvarying vec2 v_texcoord0;\nuniform sampler2D u_diffuse;\n\nvoid main(void) { \n gl_FragColor = texture2D(u_diffuse, v_texcoord0);\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(48)+"\n"+n(18)+"\n"+n(49)+"\n\nattribute vec2 a_position;\nattribute vec2 a_texcoord0;\nvarying vec2 v_texcoord0;\n\n\nvoid main(void) {\n vec4 pos = vec4(a_position, 0.0, 1.0);\n gl_Position = pos;\n v_texcoord0 = a_texcoord0;\n}"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_DIFFUSE_MAP)\n uniform HILO_SAMPLER_2D u_diffuse;\n#elif defined(HILO_DIFFUSE_CUBE_MAP)\n uniform samplerCube u_diffuse;\n#else\n uniform vec4 u_diffuse;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\nfloat transpose(float m) {\n return m;\n}\n\nmat2 transpose(mat2 m) {\n return mat2(m[0][0], m[1][0],\n m[0][1], m[1][1]);\n}\n\nmat3 transpose(mat3 m) {\n return mat3(m[0][0], m[1][0], m[2][0],\n m[0][1], m[1][1], m[2][1],\n m[0][2], m[1][2], m[2][2]);\n}\n\nmat4 transpose(mat4 m) {\n return mat4(m[0][0], m[1][0], m[2][0], m[3][0],\n m[0][1], m[1][1], m[2][1], m[3][1],\n m[0][2], m[1][2], m[2][2], m[3][2],\n m[0][3], m[1][3], m[2][3], m[3][3]);\n}"},function(t,e){t.exports="#define GLSLIFY 1\nfloat getDiffuse(vec3 normal, vec3 lightDir){\n return max(dot(normal, lightDir), 0.0);\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nfloat getSpecular(vec3 cameraPos, vec3 fragPos, vec3 lightDir, vec3 normal, float shininess){\n vec3 viewDir = normalize(cameraPos - fragPos);\n #ifdef LIGHT_TYPE_PHONG\n return pow(max(dot(viewDir, reflect(-lightDir, normal), 0.0), shininess);\n #else\n return pow(max(dot(normal, normalize(lightDir + viewDir)), 0.0), shininess);\n #endif\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nfloat getLightAttenuation(vec3 distanceVec, vec3 info, float range){\n float distance = length(distanceVec);\n float attenuation = 1.0;\n #ifdef HILO_USE_PHYSICS_LIGHT\n attenuation = max(1.0 / (distance * distance), 0.001);\n if (range > 0.0) {\n attenuation *= max(min(1.0 - pow( distance / range, 4.0 ), 1.0), 0.0);\n }\n #else\n attenuation = 1.0/(info.x + info.y * distance + info.z * distance * distance);\n #endif\n\n return attenuation;\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nfloat unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n float depth = dot(rgbaDepth, bitShift);\n return depth;\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nbool isOutOfRange(vec2 pos) {\n if (pos.x < 0.0 || pos.x > 1.0 || pos.y < 0.0 || pos.y > 1.0) {\n return true;\n }\n return false;\n}\n\nfloat getShadow(sampler2D shadowMap, vec2 shadowMapSize, float bias, vec3 fragPos, mat4 lightSpaceMatrix) {\n vec4 fragPosLightSpace = lightSpaceMatrix * vec4(fragPos, 1.0);\n vec3 projCoords = fragPosLightSpace.xyz / fragPosLightSpace.w;\n projCoords = projCoords * 0.5 + 0.5;\n if (isOutOfRange(projCoords.xy)) {\n return 1.0;\n }\n float currentDepth = projCoords.z;\n float shadow = 0.0;\n vec2 texelSize = 1.0 / shadowMapSize;\n for (int x = -1; x <= 1; ++x) {\n for (int y = -1; y <= 1; ++y) {\n vec2 pos = projCoords.xy + vec2(x, y) * texelSize;\n if (!isOutOfRange(pos)) {\n float pcfDepth = texture2D(shadowMap, pos).r;\n shadow += currentDepth - bias > pcfDepth ? 1.0 : 0.0;\n }\n }\n }\n return 1.0 - shadow / 9.0;\n}\n\nfloat getShadow(samplerCube shadowMap, float bias, vec3 lightPos, vec3 position, vec2 camera, mat4 lightSpaceMatrix) {\n vec4 distanceVec = lightSpaceMatrix * vec4(position, 1.0) - lightSpaceMatrix * vec4(lightPos, 1.0);\n float currentDistance = length(distanceVec);\n vec3 direction = normalize(distanceVec).xyz;\n\n float shadow = 0.0;\n const float samples = 2.0;\n const float offset = 0.01;\n const float step = offset / (samples * 0.5);\n for(float x = -offset; x < offset; x +=step)\n {\n for(float y = -offset; y < offset; y +=step)\n {\n for(float z = -offset; z < offset; z +=step)\n {\n float closestDistance = camera[0] + (camera[1] - camera[0]) * unpackFloat(textureCube(shadowMap, direction + vec3(x, y, z)));\n if (closestDistance == camera[0]) {\n continue;\n }\n else if(currentDistance - bias > closestDistance)\n shadow += 1.0;\n }\n }\n }\n shadow /= (samples * samples * samples);\n\n return 1.0 - shadow;\n}\n\n"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(41)+"\n"+n(64)+"\n\n#ifdef HILO_HAS_LIGHT\n #ifdef HILO_HAS_SPECULAR\n uniform float u_shininess;\n #ifdef HILO_SPECULAR_MAP\n uniform HILO_SAMPLER_2D u_specular;\n #else\n uniform vec4 u_specular;\n #endif\n #endif\n #ifdef HILO_EMISSION_MAP\n uniform HILO_SAMPLER_2D u_emission;\n #else\n uniform vec4 u_emission;\n #endif\n #ifdef HILO_AMBIENT_MAP\n uniform HILO_SAMPLER_2D u_ambient;\n #endif\n #ifdef HILO_SPECULAR_ENV_MAP\n #ifdef HILO_SPECULAR_ENV_MAP_CUBE\n uniform samplerCube u_specularEnvMap;\n #else\n uniform sampler2D u_specularEnvMap;\n #endif\n uniform mat4 u_specularEnvMatrix;\n uniform float u_reflectivity;\n uniform float u_refractRatio;\n uniform float u_refractivity;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_FIX_MAX_BUG\n float hilo_max(float a, float b){\n if (a > b) {\n return a;\n }\n return b;\n }\n #define HILO_MAX(a, b) hilo_max(a, b);\n#else\n #define HILO_MAX(a, b) max(a, b);\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_DIFFUSE_MAP)\n diffuse = HILO_TEXTURE_2D(u_diffuse);\n#elif defined(HILO_DIFFUSE_CUBE_MAP)\n diffuse = textureCube(u_diffuse, v_position);\n#elif defined(HILO_HAS_COLOR)\n diffuse = v_color;\n#else\n diffuse = u_diffuse;\n#endif\ncolor.a = diffuse.a;"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_LIGHT\n vec3 lightDiffuse = vec3(0, 0, 0);\n vec3 lightAmbient = vec3(0, 0, 0);\n vec3 viewPos = vec3(0, 0, 0);\n\n #ifdef HILO_AMBIENT_MAP\n lightAmbient = HILO_TEXTURE_2D(u_ambient).rgb;\n #else\n lightAmbient = diffuse.rgb;\n #endif\n\n #ifdef HILO_HAS_SPECULAR\n vec3 lightSpecular = vec3(0, 0, 0);\n #ifdef HILO_SPECULAR_MAP\n vec4 specular = HILO_TEXTURE_2D(u_specular);\n #else\n vec4 specular = u_specular;\n #endif\n #endif\n \n #ifdef HILO_EMISSION_MAP\n vec4 emission = HILO_TEXTURE_2D(u_emission);\n #else\n vec4 emission = u_emission;\n #endif\n\n #ifdef HILO_DIRECTIONAL_LIGHTS\n for(int i = 0;i < HILO_DIRECTIONAL_LIGHTS;i++){\n vec3 lightDir = -u_directionalLightsInfo[i];\n\n float shadow = 1.0;\n #ifdef HILO_DIRECTIONAL_LIGHTS_SMC\n if (i < HILO_DIRECTIONAL_LIGHTS_SMC) {\n float bias = HILO_MAX(u_directionalLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_directionalLightsShadowBias[i][0]);\n shadow = getShadow(u_directionalLightsShadowMap[i], u_directionalLightsShadowMapSize[i], bias, v_fragPos, u_directionalLightSpaceMatrix[i]);\n }\n #endif\n\n float diff = getDiffuse(normal, lightDir);\n lightDiffuse += diff * u_directionalLightsColor[i] * shadow;\n\n #ifdef HILO_HAS_SPECULAR\n float spec = getSpecular(viewPos, v_fragPos, lightDir, normal, u_shininess);\n lightSpecular += spec * u_directionalLightsColor[i] * shadow;\n #endif\n }\n #endif\n\n #ifdef HILO_SPOT_LIGHTS\n for(int i = 0; i < HILO_SPOT_LIGHTS; i++){\n vec3 lightDir = -u_spotLightsDir[i];\n vec3 distanceVec = u_spotLightsPos[i] - v_fragPos;\n\n float shadow = 1.0;\n #ifdef HILO_SPOT_LIGHTS_SMC\n if (i < HILO_SPOT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_spotLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_spotLightsShadowBias[i][0]);\n shadow = getShadow(u_spotLightsShadowMap[i], u_spotLightsShadowMapSize[i], bias, v_fragPos, u_spotLightSpaceMatrix[i]);\n }\n #endif\n \n float diff = getDiffuse(normal, normalize(distanceVec));\n float theta = dot(normalize(distanceVec), lightDir);\n float epsilon = u_spotLightsCutoffs[i][0] - u_spotLightsCutoffs[i][1];\n float intensity = clamp((theta - u_spotLightsCutoffs[i][1]) / epsilon, 0.0, 1.0);\n float attenuation = getLightAttenuation(distanceVec, u_spotLightsInfo[i], u_spotLightsRange[i]);\n\n lightDiffuse += intensity * attenuation * shadow * diff * u_spotLightsColor[i];\n\n #ifdef HILO_HAS_SPECULAR\n float spec = getSpecular(viewPos, v_fragPos, lightDir, normal, u_shininess);\n lightSpecular += intensity * attenuation * shadow * spec * u_spotLightsColor[i];\n #endif\n }\n #endif\n\n #ifdef HILO_POINT_LIGHTS\n for(int i = 0;i < HILO_POINT_LIGHTS;i++){\n vec3 distanceVec = u_pointLightsPos[i] - v_fragPos;\n vec3 lightDir = normalize(distanceVec);\n\n float shadow = 1.0;\n #ifdef HILO_POINT_LIGHTS_SMC\n if (i < HILO_POINT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_pointLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_pointLightsShadowBias[i][0]);\n shadow = getShadow(u_pointLightsShadowMap[i], bias, u_pointLightsPos[i], v_fragPos, u_pointLightCamera[i], u_pointLightSpaceMatrix[i]);\n }\n #endif\n \n float diff = getDiffuse(normal, lightDir);\n float attenuation = getLightAttenuation(distanceVec, u_pointLightsInfo[i], u_pointLightsRange[i]);\n lightDiffuse += diff * attenuation * u_pointLightsColor[i] * shadow;\n\n #ifdef HILO_HAS_SPECULAR\n float spec = getSpecular(viewPos, v_fragPos, lightDir, normal, u_shininess);\n lightSpecular += spec * attenuation * u_pointLightsColor[i] * shadow;\n #endif\n }\n #endif\n\n #ifdef HILO_AREA_LIGHTS\n #ifndef HILO_HAS_SPECULAR\n vec4 specular = vec4(0.0, 0.0, 0.0, 0.0);\n #endif\n vec3 viewDir = normalize(vec3(0, 0, 0) - v_fragPos);\n for(int i = 0; i < HILO_AREA_LIGHTS; i++){\n color.rgb += getAreaLight(diffuse.rgb, specular.rgb, sqrt(2.0/(u_shininess+2.0)), normal, viewDir, v_fragPos, u_areaLightsPos[i], u_areaLightsColor[i], u_areaLightsWidth[i], u_areaLightsHeight[i], u_areaLightsLtcTexture1, u_areaLightsLtcTexture2);\n }\n #endif\n\n #ifdef HILO_AMBIENT_LIGHTS\n color.rgb += u_ambientLightsColor * lightAmbient;\n #endif\n\n #if defined(HILO_SPECULAR_ENV_MAP) && defined(HILO_HAS_SPECULAR)\n vec3 I = normalize(v_fragPos - viewPos);\n if (u_reflectivity > 0.0) {\n vec3 R = reflect(I, normal);\n R = normalize(vec3(u_specularEnvMatrix * vec4(R, 1.0)));\n lightSpecular += textureEnvMap(u_specularEnvMap, R).rgb * u_reflectivity;\n }\n if (u_refractivity > 0.0) {\n vec3 R = refract(I, normal, u_refractRatio);\n R = normalize(vec3(u_specularEnvMatrix * vec4(R, 1.0)));\n lightSpecular += textureEnvMap(u_specularEnvMap, R).rgb * u_refractivity;\n }\n #endif\n\n color.rgb += lightDiffuse * diffuse.rgb;\n #ifdef HILO_HAS_SPECULAR\n color.rgb += lightSpecular * specular.rgb;\n #endif\n\n color.rgb += emission.rgb;\n#else\n color.rgb = diffuse.rgb;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_FOG\n float fogFactor = 1.0;\n\n #ifdef HILO_FOG_LINEAR\n fogFactor = (u_fogInfo.y - v_dist)/(u_fogInfo.y - u_fogInfo.x);\n #elif defined(HILO_FOG_EXP)\n fogFactor = exp(-abs(u_fogInfo * v_dist));\n #elif defined(HILO_FOG_EXP2)\n fogFactor = exp(-(u_fogInfo * v_dist) * (u_fogInfo * v_dist)); \n #endif\n \n fogFactor = clamp(fogFactor, 0.0, 1.0);\n color = mix(u_fogColor, color, fogFactor);\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_QUANTIZED\n #ifdef HILO_POSITION_QUANTIZED\n uniform mat4 u_positionDecodeMat;\n #endif\n #ifdef HILO_NORMAL_QUANTIZED\n uniform mat4 u_normalDecodeMat;\n #endif\n #ifdef HILO_UV_QUANTIZED\n uniform mat3 u_uvDecodeMat;\n #endif\n #ifdef HILO_UV1_QUANTIZED\n uniform mat3 u_uv1DecodeMat;\n #endif\n\n vec2 unQuantize(vec2 data, mat3 decodeMat) {\n vec3 result = vec3(data, 1.0);\n result = decodeMat * result;\n return result.xy;\n }\n\n vec3 unQuantize(vec3 data, mat4 decodeMat) {\n vec4 result = vec4(data, 1.0);\n result = decodeMat * result;\n return result.xyz;\n }\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_JOINT_COUNT\n attribute vec4 a_skinIndices;\n attribute vec4 a_skinWeights;\n #ifdef HILO_JOINT_MAT_MAP\n uniform sampler2D u_jointMatTexture;\n uniform vec2 u_jointMatTextureSize;\n mat4 getJointMat(float index) {\n index *= 4.0;\n float x = float(mod(index, u_jointMatTextureSize.x));\n float y = float(floor(index / u_jointMatTextureSize.x));\n float dx = 1.0 / float(u_jointMatTextureSize.x);\n float dy = 1.0 / float(u_jointMatTextureSize.y);\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(u_jointMatTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(u_jointMatTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(u_jointMatTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(u_jointMatTexture, vec2(dx * (x + 3.5), y));\n mat4 mat = mat4(v1, v2, v3, v4);\n return mat;\n }\n\n mat4 getJointMat(vec4 weights, vec4 indices) {\n mat4 mat = weights.x * getJointMat(indices.x);\n mat += weights.y * getJointMat(indices.y);\n mat += weights.z * getJointMat(indices.z);\n mat += weights.w * getJointMat(indices.w);\n return mat;\n }\n #else\n uniform mat4 u_jointMat[HILO_JOINT_COUNT];\n \n mat4 getJointMat(vec4 weights, vec4 indices) {\n mat4 mat = weights.x * u_jointMat[int(indices.x)];\n mat += weights.y * u_jointMat[int(indices.y)];\n mat += weights.z * u_jointMat[int(indices.z)];\n mat += weights.w * u_jointMat[int(indices.w)];\n return mat;\n }\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_TEXCOORD0\n attribute vec2 a_texcoord0;\n varying vec2 v_texcoord0;\n #ifdef HILO_UV_MATRIX\n uniform mat3 u_uvMatrix;\n #endif\n#endif\n\n#ifdef HILO_HAS_TEXCOORD1\n attribute vec2 a_texcoord1;\n varying vec2 v_texcoord1;\n #ifdef HILO_UV_MATRIX1\n uniform mat3 u_uvMatrix1;\n #endif\n#endif\n\n#ifdef HILO_DIFFUSE_CUBE_MAP\n varying vec3 v_position;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_NORMAL\n attribute vec3 a_normal;\n uniform mat3 u_normalMatrix;\n varying vec3 v_normal;\n\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n attribute vec4 a_tangent;\n varying mat3 v_TBN;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FOG) || defined(HILO_HAS_FRAG_POS)\n uniform mat4 u_modelViewMatrix;\n #ifdef HILO_HAS_FOG\n varying float v_dist;\n #endif\n\n #if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FRAG_POS) \n varying vec3 v_fragPos;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_MORPH_TARGET_COUNT\n uniform float u_morphWeights[HILO_MORPH_TARGET_COUNT];\n\n #if HILO_MORPH_TARGET_COUNT > 0\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition0;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal0;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent0;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 1\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition1;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal1;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent1;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 2\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition2;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal2;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent2;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 3\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition3;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal3;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent3;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 4\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition4;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal4;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent4;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 5\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition5;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal5;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent5;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 6\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition6;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal6;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent6;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 7\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition7;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal7;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent7;\n #endif\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_COLOR\n #if HILO_COLOR_SIZE == 3\n attribute vec3 a_color;\n #elif HILO_COLOR_SIZE == 4\n attribute vec4 a_color;\n #endif\n varying vec4 v_color;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_USE_LOG_DEPTH\n #ifdef HILO_USE_FRAG_DEPTH\n varying float v_fragDepth;\n #else\n uniform float u_logDepth;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_COLOR\n #if HILO_COLOR_SIZE == 3\n v_color = vec4(a_color, 1.0);\n #elif HILO_COLOR_SIZE == 4\n v_color = a_color;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_QUANTIZED\n #ifdef HILO_POSITION_QUANTIZED\n pos.xyz = unQuantize(pos.xyz, u_positionDecodeMat);\n #endif\n #if defined(HILO_HAS_TEXCOORD0) && defined(HILO_UV_QUANTIZED)\n uv = unQuantize(uv, u_uvDecodeMat);\n #endif\n #if defined(HILO_HAS_TEXCOORD1) && defined(HILO_UV1_QUANTIZED)\n uv1 = unQuantize(uv1, u_uv1DecodeMat);\n #endif\n #if defined(HILO_HAS_NORMAL) && defined(HILO_NORMAL_QUANTIZED)\n normal = unQuantize(normal, u_normalDecodeMat);\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_MORPH_TARGET_COUNT\n #if HILO_MORPH_TARGET_COUNT > 0\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition0 * u_morphWeights[0];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal0 * u_morphWeights[0];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent0 * u_morphWeights[0];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 1\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition1 * u_morphWeights[1];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal1 * u_morphWeights[1];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent1 * u_morphWeights[1];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 2\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition2 * u_morphWeights[2];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal2 * u_morphWeights[2];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent2 * u_morphWeights[2];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 3\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition3 * u_morphWeights[3];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal3 * u_morphWeights[3];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent3 * u_morphWeights[3];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 4\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition4 * u_morphWeights[4];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal4 * u_morphWeights[4];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent4 * u_morphWeights[4];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 5\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition5 * u_morphWeights[5];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal5 * u_morphWeights[5];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent5 * u_morphWeights[5];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 6\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition6 * u_morphWeights[6];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal6 * u_morphWeights[6];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent6 * u_morphWeights[6];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 7\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition7 * u_morphWeights[7];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal7 * u_morphWeights[7];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent7 * u_morphWeights[7];\n #endif\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_JOINT_COUNT\n mat4 skinMat = getJointMat(a_skinWeights, a_skinIndices);\n pos = skinMat * pos;\n\n #ifdef HILO_HAS_NORMAL\n normal = mat3(skinMat) * normal;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_TEXCOORD0\n #ifdef HILO_UV_MATRIX\n v_texcoord0 = (u_uvMatrix * vec3(uv, 1.0)).xy;\n #else\n v_texcoord0 = uv;\n #endif\n#endif\n#ifdef HILO_HAS_TEXCOORD1\n #ifdef HILO_UV_MATRIX1\n v_texcoord1 = (u_uvMatrix1 * vec3(uv1, 1.0)).xy;\n #else\n v_texcoord1 = uv1;\n #endif\n#endif\n#ifdef HILO_DIFFUSE_CUBE_MAP\n v_position = pos.xyz;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_NORMAL\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n vec3 T = normalize(u_normalMatrix * tangent.xyz);\n vec3 N = normalize(u_normalMatrix * normal);\n T = normalize(T - dot(T, N) * N);\n vec3 B = cross(N, T) * tangent.w;\n v_TBN = mat3(T, B, N);\n #endif\n v_normal = normalize(u_normalMatrix * normal);\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FOG) || defined(HILO_HAS_FRAG_POS)\n vec3 fragPos = (u_modelViewMatrix * pos).xyz;\n\n #if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FRAG_POS)\n v_fragPos = fragPos;\n #endif\n\n #ifdef HILO_HAS_FOG\n v_dist = length(fragPos);\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_USE_LOG_DEPTH\n #ifdef HILO_USE_FRAG_DEPTH\n v_fragDepth = 1.0 + gl_Position.w;\n #else\n gl_Position.z = log2( max( 1e-6, gl_Position.w + 1.0 ) ) * u_logDepth - 1.0;\n gl_Position.z *= gl_Position.w;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n// https://github.com/playcanvas/engine/blob/master/src/graphics/program-lib/chunks/packDepth.frag\n// Packing a float in GLSL with multiplication and mod\n// http://blog.gradientstudios.com/2012/08/23/shadow-map-improvement\nvec4 packFloat(float depth) {\n const vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n const vec4 bit_mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\n // combination of mod and multiplication and division works better\n vec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n res -= res.xxyz * bit_mask;\n return res;\n}\n\n\n\n"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(41)+"\n"+n(86)+"\n"+n(64)+'\n\nuniform vec4 u_baseColor;\nuniform vec4 u_emissionFactor;\n\n#ifdef HILO_BASE_COLOR_MAP\n uniform HILO_SAMPLER_2D u_baseColorMap;\n#endif\n\n#ifdef HILO_NEED_WORLD_NORMAL\n uniform mat3 u_viewInverseNormalMatrix;\n#endif\n\n#ifdef HILO_HAS_LIGHT\n uniform float u_metallic;\n #ifdef HILO_METALLIC_MAP\n uniform HILO_SAMPLER_2D u_metallicMap;\n #endif\n uniform float u_roughness;\n #ifdef HILO_ROUGHNESS_MAP\n uniform HILO_SAMPLER_2D u_roughnessMap;\n #endif\n #ifdef HILO_METALLIC_ROUGHNESS_MAP\n uniform HILO_SAMPLER_2D u_metallicRoughnessMap;\n #endif\n #ifdef HILO_OCCLUSION_MAP\n uniform HILO_SAMPLER_2D u_occlusionMap;\n #endif\n\n #ifdef HILO_OCCLUSION_STRENGTH\n uniform float u_occlusionStrength;\n #endif\n\n #ifdef HILO_DIFFUSE_ENV_MAP\n #ifdef HILO_DIFFUSE_ENV_MAP_CUBE\n uniform samplerCube u_diffuseEnvMap;\n #else\n uniform sampler2D u_diffuseEnvMap;\n #endif\n uniform float u_diffuseEnvIntensity;\n #elif defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)\n uniform vec3 u_diffuseEnvSphereHarmonics3[9];\n uniform float u_diffuseEnvIntensity;\n #endif\n #ifdef HILO_SPECULAR_ENV_MAP\n uniform sampler2D u_brdfLUT;\n #ifdef HILO_SPECULAR_ENV_MAP_CUBE\n uniform samplerCube u_specularEnvMap;\n #else\n uniform sampler2D u_specularEnvMap;\n #endif\n uniform float u_specularEnvIntensity;\n\n uniform float u_specularEnvMapMipCount;\n #endif\n\n #ifdef HILO_EMISSION_MAP\n uniform HILO_SAMPLER_2D u_emission;\n #endif\n\n #ifdef HILO_PBR_SPECULAR_GLOSSINESS\n uniform vec4 u_specular;\n uniform float u_glossiness;\n #ifdef HILO_SPECULAR_GLOSSINESS_MAP\n uniform HILO_SAMPLER_2D u_specularGlossinessMap;\n #endif\n #endif\n\n #ifdef HILO_LIGHT_MAP\n uniform HILO_SAMPLER_2D u_lightMap;\n #endif\n\n #ifdef HILO_HAS_CLEARCOAT\n uniform float u_clearcoatFactor;\n #ifdef HILO_CLEARCOAT_MAP\n uniform HILO_SAMPLER_2D u_clearcoatMap;\n #endif\n\n uniform float u_clearcoatRoughnessFactor;\n #ifdef HILO_CLEARCOAT_ROUGHNESS_MAP\n uniform HILO_SAMPLER_2D u_clearcoatRoughnessMap;\n #endif\n #endif\n\n\n // PBR Based on https://github.com/KhronosGroup/glTF-WebGL-PBR\n\n // Basic Lambertian diffuse\n // Implementation from Lambert\'s Photometria https://archive.org/details/lambertsphotome00lambgoog\n // See also [1], Equation 1\n vec3 diffuse(vec3 diffuseColor) {\n return diffuseColor * HILO_INVERSE_PI;\n }\n\n // The following equation models the Fresnel reflectance term of the spec equation (aka F())\n // Implementation of fresnel from [4], Equation 15\n vec3 specularReflection(vec3 reflectance0, vec3 reflectance90, float VdotH) {\n return reflectance0 + (reflectance90 - reflectance0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0);\n }\n\n // This calculates the specular geometric attenuation (aka G()),\n // where rougher material will reflect less light back to the viewer.\n // This implementation is based on [1] Equation 4, and we adopt their modifications to\n // alphaRoughness as input as originally proposed in [2].\n float geometricOcclusion(float NdotL, float NdotV, float alphaRoughness) {\n float r = alphaRoughness * alphaRoughness;\n\n float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r + (1.0 - r) * (NdotL * NdotL)));\n float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r + (1.0 - r) * (NdotV * NdotV)));\n return attenuationL * attenuationV;\n }\n\n // The following equation(s) model the distribution of microfacet normals across the area being drawn (aka D())\n // Implementation from "Average Irregularity Representation of a Roughened Surface for Ray Reflection" by T. S. Trowbridge, and K. P. Reitz\n // Follows the distribution function recommended in the SIGGRAPH 2013 course notes from EPIC Games [1], Equation 3.\n float microfacetDistribution(float alphaRoughness, float NdotH) {\n float roughnessSq = alphaRoughness * alphaRoughness;\n float f = (NdotH * roughnessSq - NdotH) * NdotH + 1.0;\n return roughnessSq * HILO_INVERSE_PI / (f * f);\n }\n\n vec3 computeDiffuseSHLight(vec3 normal, in vec3 sh[9]) {\n return sh[0] +\n sh[1] * (normal.y) +\n sh[2] * (normal.z) +\n sh[3] * (normal.x) +\n sh[4] * (normal.y * normal.x) +\n sh[5] * (normal.y * normal.z) +\n sh[6] * ((3.0 * normal.z * normal.z) - 1.0) +\n sh[7] * (normal.z * normal.x) +\n sh[8] * (normal.x * normal.x - (normal.y * normal.y));\n }\n\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Vendor/EXT_lights_image_based/README.md#rgbd\n vec3 decodeRGBD(in vec4 color){\n return color.rgb / color.a;\n }\n\n vec3 getIBLClearCoatContribution(in vec3 N, in vec3 V, vec3 diffuseColor, vec3 specularColor, float ao, float NdotV, float perceptualRoughness) {\n vec3 color = vec3(.0, .0, .0);\n #ifdef HILO_SPECULAR_ENV_MAP\n vec3 R = -normalize(reflect(V, N));\n vec3 brdf = texture2D(u_brdfLUT, vec2(NdotV, 1.0 - perceptualRoughness)).rgb;\n #ifdef HILO_IS_SPECULAR_ENV_MAP_INCLUDE_MIPMAPS\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapIncludeMipmapsLod(u_specularEnvMap, R, lod);\n #elif defined(HILO_USE_SHADER_TEXTURE_LOD)\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapLod(u_specularEnvMap, R, lod);\n #else\n vec4 specularEnvMap = textureEnvMap(u_specularEnvMap, R);\n #endif\n\n vec3 specularLight = decodeRGBD(specularEnvMap);\n\n #ifdef HILO_GAMMA_CORRECTION\n specularLight = sRGBToLinear(specularLight);\n #endif\n color.rgb += specularLight * (specularColor * brdf.x + brdf.y) * u_specularEnvIntensity;\n #endif\n return color;\n }\n\n vec3 getIBLContribution(in vec3 N, in vec3 V, vec3 diffuseColor, vec3 specularColor, float ao, float NdotV, float perceptualRoughness) {\n vec3 color = vec3(.0, .0, .0);\n #ifdef HILO_NEED_WORLD_NORMAL\n N = u_viewInverseNormalMatrix * N;\n V = u_viewInverseNormalMatrix * V;\n #endif\n #if defined(HILO_DIFFUSE_ENV_MAP) || defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)\n #ifdef HILO_DIFFUSE_ENV_MAP\n #ifdef HILO_GAMMA_CORRECTION\n vec3 diffuseLight = sRGBToLinear(textureEnvMap(u_diffuseEnvMap, N)).rgb;\n #else\n vec3 diffuseLight = textureEnvMap(u_diffuseEnvMap, N).rgb;\n #endif\n #elif defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)\n vec3 diffuseLight = computeDiffuseSHLight(N, u_diffuseEnvSphereHarmonics3);\n #endif\n color.rgb += diffuseLight * diffuseColor * ao * u_diffuseEnvIntensity;\n #endif\n\n #ifdef HILO_SPECULAR_ENV_MAP\n vec3 R = -normalize(reflect(V, N));\n vec3 brdf = texture2D(u_brdfLUT, vec2(NdotV, 1.0 - perceptualRoughness)).rgb;\n #ifdef HILO_IS_SPECULAR_ENV_MAP_INCLUDE_MIPMAPS\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapIncludeMipmapsLod(u_specularEnvMap, R, lod);\n #elif defined(HILO_USE_SHADER_TEXTURE_LOD)\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapLod(u_specularEnvMap, R, lod);\n #else\n vec4 specularEnvMap = textureEnvMap(u_specularEnvMap, R);\n #endif\n\n vec3 specularLight = decodeRGBD(specularEnvMap);\n\n #ifdef HILO_GAMMA_CORRECTION\n specularLight = sRGBToLinear(specularLight);\n #endif\n color.rgb += specularLight * (specularColor * brdf.x + brdf.y) * u_specularEnvIntensity;\n #endif\n return color;\n }\n\n vec3 calculateLo(vec3 N, vec3 V, vec3 L, vec3 reflectance0, vec3 reflectance90, float alphaRoughness, vec3 diffuseColor, float NdotV) {\n vec3 H = normalize(L + V);\n float NdotL = clamp(dot(N, L), 0.001, 1.0);\n float NdotH = clamp(dot(N, H), 0.0, 1.0);\n float LdotH = clamp(dot(L, H), 0.0, 1.0);\n float VdotH = clamp(dot(V, H), 0.0, 1.0);\n // Calculate the shading terms for the microfacet specular shading model\n vec3 F = specularReflection(reflectance0, reflectance90, VdotH);\n float G = geometricOcclusion(NdotL, NdotV, alphaRoughness);\n float D = microfacetDistribution(alphaRoughness, NdotH);\n\n vec3 diffuseContrib;\n\n #ifdef HILO_LIGHT_MAP\n diffuseContrib = vec3(0.0);\n #else\n diffuseContrib = (1.0 - F) * diffuse(diffuseColor);\n #endif\n vec3 specContrib = F * G * D / (4.0 * NdotL * NdotV);\n // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)\n return NdotL * (diffuseContrib + specContrib);\n }\n\n #ifdef HILO_HAS_CLEARCOAT\n float calculateClearcoatBRDF(vec3 N, vec3 V, vec3 L, float clearcoatAlphaRoughness, float NdotV) {\n vec3 H = normalize(L + V);\n float NdotL = clamp(dot(N, L), 0.001, 1.0);\n float NdotH = clamp(dot(N, H), 0.0, 1.0);\n float VdotH = clamp(dot(V, H), 0.0, 1.0);\n\n float G = geometricOcclusion(NdotL, NdotV, clearcoatAlphaRoughness);\n float D = microfacetDistribution(clearcoatAlphaRoughness, NdotH);\n\n float clearcoatLayer = G * D / (4.0 * NdotV);\n\n return clearcoatLayer;\n }\n #endif\n#endif'},function(t,e){t.exports="#define GLSLIFY 1\nvec4 sRGBToLinear( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\n\nvec3 sRGBToLinear( in vec3 value ) {\n return vec3( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ));\n}\n\n"},function(t,e,n){t.exports="#define GLSLIFY 1\nvec4 baseColor = u_baseColor;\nvec3 emissionColor = u_emissionFactor.rgb;\n\n#ifdef HILO_BASE_COLOR_MAP\n #ifdef HILO_GAMMA_CORRECTION\n baseColor *= sRGBToLinear(HILO_TEXTURE_2D(u_baseColorMap));\n #else\n baseColor *= HILO_TEXTURE_2D(u_baseColorMap);\n #endif\n#endif\n\n#if defined(HILO_HAS_COLOR)\n baseColor *= v_color;\n#endif\n\ncolor.a = baseColor.a;\n\n"+n(46)+"\n\n#ifdef HILO_HAS_LIGHT\n vec3 viewPos = vec3(0, 0, 0);\n vec3 N = normal;\n vec3 V = normalize(viewPos - v_fragPos);\n\n #ifdef HILO_OCCLUSION_MAP\n float ao = HILO_TEXTURE_2D(u_occlusionMap).r;\n #else\n float ao = 1.0;\n #endif\n\n #ifdef HILO_PBR_SPECULAR_GLOSSINESS\n vec3 specular = u_specular.rgb;\n float glossiness = u_glossiness;\n #ifdef HILO_SPECULAR_GLOSSINESS_MAP\n vec4 specularGlossiness = sRGBToLinear(HILO_TEXTURE_2D(u_specularGlossinessMap));\n specular = specularGlossiness.rgb * specular;\n glossiness = specularGlossiness.a * glossiness;\n #endif\n float roughness = 1.0 - glossiness;\n float metallic = 0.0;\n vec3 diffuseColor = baseColor.rgb * (1.0 - max(max(specular.r, specular.g), specular.b));\n vec3 specularColor = specular;\n #else\n float metallic = u_metallic;\n float roughness = u_roughness;\n #ifdef HILO_METALLIC_MAP\n metallic = HILO_TEXTURE_2D(u_metallicMap).r * u_metallic;\n #endif\n #ifdef HILO_ROUGHNESS_MAP\n roughness = HILO_TEXTURE_2D(u_roughnessMap).r * u_roughness;\n #endif\n #ifdef HILO_METALLIC_ROUGHNESS_MAP\n vec4 metallicRoughnessMap = HILO_TEXTURE_2D(u_metallicRoughnessMap);\n #ifdef HILO_IS_OCCLUSION_MAP_IN_METALLIC_ROUGHNESS_MAP\n ao = metallicRoughnessMap.r;\n #endif\n roughness = metallicRoughnessMap.g * u_roughness;\n metallic = metallicRoughnessMap.b * u_metallic;\n #endif\n roughness = clamp(roughness, 0.04, 1.0);\n metallic = clamp(metallic, 0.0, 1.0);\n vec3 f0 = vec3(0.04);\n vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);\n diffuseColor *= 1.0 - metallic;\n vec3 specularColor = mix(f0, baseColor.rgb, metallic);\n #endif\n\n #ifdef HILO_OCCLUSION_STRENGTH\n ao = mix(1.0, ao, u_occlusionStrength);\n #endif\n\n float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n // For typical incident reflectance range (between 4% to 100%) set the grazing reflectance to 100% for typical fresnel effect.\n // For very low reflectance range on highly diffuse objects (below 4%), incrementally reduce grazing reflecance to 0%.\n float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n vec3 specularEnvironmentR0 = specularColor.rgb;\n vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;\n\n float NdotV = clamp(abs(dot(N, V)), 0.001, 1.0);\n float alphaRoughness = roughness * roughness;\n\n #ifdef HILO_HAS_CLEARCOAT\n float clearcoatFactor = u_clearcoatFactor;\n #ifdef HILO_CLEARCOAT_MAP\n clearcoatFactor *= HILO_TEXTURE_2D(u_clearcoatMap).r;\n #endif\n float clearcoatRoughnessFactor = u_clearcoatRoughnessFactor;\n #ifdef HILO_CLEARCOAT_ROUGHNESS_MAP\n clearcoatRoughnessFactor *= HILO_TEXTURE_2D(u_clearcoatRoughnessMap).g;\n #endif\n\n float clearcoatAlphaRoughnessFactor = clearcoatRoughnessFactor * clearcoatRoughnessFactor;\n vec3 NC = clearcoatNormal;\n float NCdotV = clamp(abs(dot(NC, V)), 0.001, 1.0);\n float clearCoatFresnel = 0.04 + (1.0 - 0.04) * pow((1.0 - abs(NCdotV)),5.0);\n vec3 clearCoatLayer = vec3(0.0);\n #endif\n\n #ifdef HILO_DIRECTIONAL_LIGHTS\n for(int i = 0;i < HILO_DIRECTIONAL_LIGHTS;i++){\n vec3 lightDir = normalize(-u_directionalLightsInfo[i]);\n vec3 radiance = u_directionalLightsColor[i];\n float shadow = 1.0;\n #ifdef HILO_DIRECTIONAL_LIGHTS_SMC\n if (i < HILO_DIRECTIONAL_LIGHTS_SMC) {\n float bias = HILO_MAX(u_directionalLightsShadowBias[i][1] * (1.0 - dot(N, lightDir)), u_directionalLightsShadowBias[i][0]);\n shadow = getShadow(u_directionalLightsShadowMap[i], u_directionalLightsShadowMapSize[i], bias, v_fragPos, u_directionalLightSpaceMatrix[i]);\n }\n #endif\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += shadow * radiance * calculateClearcoatBRDF(NC, V, lightDir, clearcoatAlphaRoughnessFactor, NCdotV);\n #endif\n color.rgb += shadow * radiance * calculateLo(N, V, lightDir, specularEnvironmentR0, specularEnvironmentR90, alphaRoughness, diffuseColor, NdotV);\n }\n #endif\n\n #ifdef HILO_SPOT_LIGHTS\n for(int i = 0; i < HILO_SPOT_LIGHTS; i++){\n vec3 lightDir = normalize(-u_spotLightsDir[i]);\n vec3 distanceVec = u_spotLightsPos[i] - v_fragPos;\n\n float theta = dot(normalize(distanceVec), lightDir);\n float epsilon = u_spotLightsCutoffs[i][0] - u_spotLightsCutoffs[i][1];\n float intensity = clamp((theta - u_spotLightsCutoffs[i][1]) / epsilon, 0.0, 1.0);\n float attenuation = getLightAttenuation(distanceVec, u_spotLightsInfo[i], u_spotLightsRange[i]);\n vec3 radiance = intensity * attenuation * u_spotLightsColor[i];\n\n float shadow = 1.0;\n #ifdef HILO_SPOT_LIGHTS_SMC\n if (i < HILO_SPOT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_spotLightsShadowBias[i][1] * (1.0 - dot(N, lightDir)), u_spotLightsShadowBias[i][0]);\n shadow = getShadow(u_spotLightsShadowMap[i], u_spotLightsShadowMapSize[i], bias, v_fragPos, u_spotLightSpaceMatrix[i]);\n }\n #endif\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += shadow * radiance * calculateClearcoatBRDF(NC, V, lightDir, clearcoatAlphaRoughnessFactor, NCdotV);\n #endif\n color.rgb += shadow * radiance * calculateLo(N, V, lightDir, specularEnvironmentR0, specularEnvironmentR90, alphaRoughness, diffuseColor, NdotV);\n }\n #endif\n\n #ifdef HILO_POINT_LIGHTS\n for(int i = 0; i < HILO_POINT_LIGHTS; i++){\n vec3 distanceVec = u_pointLightsPos[i] - v_fragPos;\n vec3 lightDir = normalize(distanceVec);\n\n float shadow = 1.0;\n #ifdef HILO_POINT_LIGHTS_SMC\n if (i < HILO_POINT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_pointLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_pointLightsShadowBias[i][0]);\n shadow = getShadow(u_pointLightsShadowMap[i], bias, u_pointLightsPos[i], v_fragPos, u_pointLightCamera[i], u_pointLightSpaceMatrix[i]);\n }\n #endif\n\n float attenuation = getLightAttenuation(distanceVec, u_pointLightsInfo[i], u_pointLightsRange[i]);\n vec3 radiance = attenuation * u_pointLightsColor[i];\n\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += shadow * radiance * calculateClearcoatBRDF(NC, V, lightDir, clearcoatAlphaRoughnessFactor, NCdotV);\n #endif\n color.rgb += shadow * radiance * calculateLo(N, V, lightDir, specularEnvironmentR0, specularEnvironmentR90, alphaRoughness, diffuseColor, NdotV);\n }\n #endif\n\n #ifdef HILO_AREA_LIGHTS\n for(int i = 0; i < HILO_AREA_LIGHTS; i++){\n color.rgb += getAreaLight(diffuseColor, specularColor, roughness, N, V, v_fragPos, u_areaLightsPos[i], u_areaLightsColor[i], u_areaLightsWidth[i], u_areaLightsHeight[i], u_areaLightsLtcTexture1, u_areaLightsLtcTexture2);\n }\n #endif\n\n #ifdef HILO_LIGHT_MAP\n vec4 lightMapColor = HILO_TEXTURE_2D(u_lightMap);\n // https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_lights_image_based#rgbd\n color.rgb += baseColor.rgb * decodeRGBD(lightMapColor);\n #endif\n\n // IBL\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += getIBLClearCoatContribution(NC, V, diffuseColor, vec3(.04), ao, NCdotV, clearcoatRoughnessFactor)/clearCoatFresnel;\n #endif\n color.rgb += getIBLContribution(N, V, diffuseColor, specularColor, ao, NdotV, roughness);\n\n #if defined(HILO_AMBIENT_LIGHTS) && (defined(HILO_IS_DIFFUESENV_AND_AMBIENTLIGHT_WORK_TOGETHER) || (!defined(HILO_DIFFUSE_ENV_MAP) && !defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)))\n color.rgb += u_ambientLightsColor * baseColor.rgb * ao;\n #endif\n\n #ifdef HILO_EMISSION_MAP\n #ifdef HILO_GAMMA_CORRECTION\n emissionColor *= sRGBToLinear(HILO_TEXTURE_2D(u_emission)).rgb;\n #else\n emissionColor *= HILO_TEXTURE_2D(u_emission).rgb;\n #endif\n #endif\n\n color.rgb += emissionColor;\n\n #ifdef HILO_HAS_CLEARCOAT\n float t = clearcoatFactor * clearCoatFresnel;\n color.rgb = color.rgb * (1.0 - t) + clearCoatLayer * t;\n #endif\n#else\n color.rgb = baseColor.rgb;\n color.rgb += emissionColor;\n#endif"},function(t,e,n){var r=n(89),i=n(26),a=n(30),s=[0,0,0],o=[0,0,0],u=[0,0,0],c=[0,0,0],f=[0,0,0];t.exports=function(t,e,n,h){a(s,h[1],h[0]),a(o,h[2],h[0]),r(c,n,o);var l=i(s,c);if(l<1e-6)return null;a(u,e,h[0]);var d=i(u,c);if(d<0||d>l)return null;r(f,u,s);var m=i(n,f);if(m<0||d+m>l)return null;var _=i(o,f)/l;return t[0]=e[0]+_*n[0],t[1]=e[1]+_*n[1],t[2]=e[2]+_*n[2],t}},function(t,e){t.exports=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[0],o=n[1],u=n[2];return t[0]=i*u-a*o,t[1]=a*s-r*u,t[2]=r*o-i*s,t}},function(t,e,n){var r=n(26),i=n(31),a=n(32),s=n(33);t.exports=function(t,e,n,u,c){var f=r(n,u);if(0!==f){var h=-(r(e,u)+c)/f;return h<0?null:(a(o,n,h),i(t,e,o))}return r(u,e)+c===0?s(t,e):null};var o=[0,0,0]},function(t,e,n){var r=n(92),i=n(26),a=n(30),s=n(93),o=n(32),u=n(31),c=[0,0,0];t.exports=function(t,e,n,f,h){a(c,f,e);var l=i(n,c);if(l<0)return null;s(c,e,n,l);var d=r(f,c),m=h*h;if(d>m)return null;return o(t,n,l-Math.sqrt(m-d)),u(t,t,e)}},function(t,e){t.exports=function(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return n*n+r*r+i*i}},function(t,e){t.exports=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t}},function(t,e){function n(t,e,n){for(var r=t.length,i=-1/0,a=1/0,s=0;s<r;s++){var o=(n[0][s]-t[s])/e[s],u=(n[1][s]-t[s])/e[s];if(o>u){var c=o;o=u,u=c}if(u<i||o>a)return 1/0;o>i&&(i=o),u<a&&(a=u)}return i>a?1/0:i}t.exports=function(t,e,r,i){var a=n(e,r,i);if(a===1/0)t=null;else{t=t||[];for(var s=0;s<e.length;s++)t[s]=e[s]+r[s]*a}return t},t.exports.distance=n},function(t,e,n){"use strict";
|
|
34
|
+
"undefined"!=typeof self&&self,t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=10)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*i},e.equals=function(t,e){return Math.abs(t-e)<=r*Math.max(1,Math.abs(t),Math.abs(e))};var r=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var i=Math.PI/180},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.len=e.sqrDist=e.dist=e.div=e.mul=e.sub=void 0,e.create=i,e.clone=function(t){var e=new r.ARRAY_TYPE(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},e.fromValues=function(t,e,n,i){var a=new r.ARRAY_TYPE(4);return a[0]=t,a[1]=e,a[2]=n,a[3]=i,a},e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},e.set=function(t,e,n,r,i){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t},e.subtract=a,e.multiply=s,e.divide=o,e.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t},e.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t},e.min=function(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t[2]=Math.min(e[2],n[2]),t[3]=Math.min(e[3],n[3]),t},e.max=function(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t[2]=Math.max(e[2],n[2]),t[3]=Math.max(e[3],n[3]),t},e.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t[3]=Math.round(e[3]),t},e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t},e.scaleAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t},e.distance=u,e.squaredDistance=c,e.length=f,e.squaredLength=h,e.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},e.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t},e.normalize=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n*n+r*r+i*i+a*a;return s>0&&(s=1/Math.sqrt(s),t[0]=n*s,t[1]=r*s,t[2]=i*s,t[3]=a*s),t},e.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},e.lerp=function(t,e,n,r){var i=e[0],a=e[1],s=e[2],o=e[3];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t[2]=s+r*(n[2]-s),t[3]=o+r*(n[3]-o),t},e.random=function(t,e){var n,i,a,s,o,u;e=e||1;do{o=(n=2*r.RANDOM()-1)*n+(i=2*r.RANDOM()-1)*i}while(o>=1);do{u=(a=2*r.RANDOM()-1)*a+(s=2*r.RANDOM()-1)*s}while(u>=1);var c=Math.sqrt((1-o)/u);return t[0]=e*n,t[1]=e*i,t[2]=e*a*c,t[3]=e*s*c,t},e.transformMat4=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3];return t[0]=n[0]*r+n[4]*i+n[8]*a+n[12]*s,t[1]=n[1]*r+n[5]*i+n[9]*a+n[13]*s,t[2]=n[2]*r+n[6]*i+n[10]*a+n[14]*s,t[3]=n[3]*r+n[7]*i+n[11]*a+n[15]*s,t},e.transformQuat=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[0],o=n[1],u=n[2],c=n[3],f=c*r+o*a-u*i,h=c*i+u*r-s*a,l=c*a+s*i-o*r,d=-s*r-o*i-u*a;return t[0]=f*c+d*-s+h*-u-l*-o,t[1]=h*c+d*-o+l*-s-f*-u,t[2]=l*c+d*-u+f*-o-h*-s,t[3]=e[3],t},e.str=function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],u=e[1],c=e[2],f=e[3];return Math.abs(n-o)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-u)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))&&Math.abs(a-c)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(s-f)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(f))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(){var t=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t}function s(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t[3]=e[3]*n[3],t}function o(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t[2]=e[2]/n[2],t[3]=e[3]/n[3],t}function u(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(n*n+r*r+i*i+a*a)}function c(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return n*n+r*r+i*i+a*a}function f(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.sqrt(e*e+n*n+r*r+i*i)}function h(t){var e=t[0],n=t[1],r=t[2],i=t[3];return e*e+n*n+r*r+i*i}e.sub=a,e.mul=s,e.div=o,e.dist=u,e.sqrDist=c,e.len=f,e.sqrLen=h,e.forEach=function(){var t=i();return function(e,n,r,i,a,s){var o,u=void 0;for(n||(n=4),r||(r=0),o=i?Math.min(i*n+r,e.length):e.length,u=r;u<o;u+=n)t[0]=e[u],t[1]=e[u+1],t[2]=e[u+2],t[3]=e[u+3],a(t,t,s),e[u]=t[0],e[u+1]=t[1],e[u+2]=t[2],e[u+3]=t[3];return e}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.len=e.sqrDist=e.dist=e.div=e.mul=e.sub=void 0,e.create=i,e.clone=function(t){var e=new r.ARRAY_TYPE(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},e.length=a,e.fromValues=s,e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},e.set=function(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t},e.subtract=o,e.multiply=u,e.divide=c,e.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t},e.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t},e.min=function(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t[2]=Math.min(e[2],n[2]),t},e.max=function(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t[2]=Math.max(e[2],n[2]),t},e.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t},e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t},e.scaleAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t},e.distance=f,e.squaredDistance=h,e.squaredLength=l,e.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t},e.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t},e.normalize=d,e.dot=m,e.cross=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[0],o=n[1],u=n[2];return t[0]=i*u-a*o,t[1]=a*s-r*u,t[2]=r*o-i*s,t},e.lerp=function(t,e,n,r){var i=e[0],a=e[1],s=e[2];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t[2]=s+r*(n[2]-s),t},e.hermite=function(t,e,n,r,i,a){var s=a*a,o=s*(2*a-3)+1,u=s*(a-2)+a,c=s*(a-1),f=s*(3-2*a);return t[0]=e[0]*o+n[0]*u+r[0]*c+i[0]*f,t[1]=e[1]*o+n[1]*u+r[1]*c+i[1]*f,t[2]=e[2]*o+n[2]*u+r[2]*c+i[2]*f,t},e.bezier=function(t,e,n,r,i,a){var s=1-a,o=s*s,u=a*a,c=o*s,f=3*a*o,h=3*u*s,l=u*a;return t[0]=e[0]*c+n[0]*f+r[0]*h+i[0]*l,t[1]=e[1]*c+n[1]*f+r[1]*h+i[1]*l,t[2]=e[2]*c+n[2]*f+r[2]*h+i[2]*l,t},e.random=function(t,e){e=e||1;var n=2*r.RANDOM()*Math.PI,i=2*r.RANDOM()-1,a=Math.sqrt(1-i*i)*e;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t[2]=i*e,t},e.transformMat4=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[3]*r+n[7]*i+n[11]*a+n[15];return s=s||1,t[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/s,t[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/s,t[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/s,t},e.transformMat3=function(t,e,n){var r=e[0],i=e[1],a=e[2];return t[0]=r*n[0]+i*n[3]+a*n[6],t[1]=r*n[1]+i*n[4]+a*n[7],t[2]=r*n[2]+i*n[5]+a*n[8],t},e.transformQuat=function(t,e,n){var r=n[0],i=n[1],a=n[2],s=n[3],o=e[0],u=e[1],c=e[2],f=i*c-a*u,h=a*o-r*c,l=r*u-i*o,d=i*l-a*h,m=a*f-r*l,_=r*h-i*f,p=2*s;return f*=p,h*=p,l*=p,d*=2,m*=2,_*=2,t[0]=o+f+d,t[1]=u+h+m,t[2]=c+l+_,t},e.rotateX=function(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},e.rotateY=function(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},e.rotateZ=function(t,e,n,r){var i=[],a=[];return i[0]=e[0]-n[0],i[1]=e[1]-n[1],i[2]=e[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},e.angle=function(t,e){var n=s(t[0],t[1],t[2]),r=s(e[0],e[1],e[2]);d(n,n),d(r,r);var i=m(n,r);return i>1?0:i<-1?Math.PI:Math.acos(i)},e.str=function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=e[0],o=e[1],u=e[2];return Math.abs(n-s)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-o)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(o))&&Math.abs(a-u)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(u))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(){var t=new r.ARRAY_TYPE(3);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function a(t){var e=t[0],n=t[1],r=t[2];return Math.sqrt(e*e+n*n+r*r)}function s(t,e,n){var i=new r.ARRAY_TYPE(3);return i[0]=t,i[1]=e,i[2]=n,i}function o(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function u(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t}function c(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t[2]=e[2]/n[2],t}function f(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(n*n+r*r+i*i)}function h(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return n*n+r*r+i*i}function l(t){var e=t[0],n=t[1],r=t[2];return e*e+n*n+r*r}function d(t,e){var n=e[0],r=e[1],i=e[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}function m(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}e.sub=o,e.mul=u,e.div=c,e.dist=f,e.sqrDist=h,e.len=a,e.sqrLen=l,e.forEach=function(){var t=i();return function(e,n,r,i,a,s){var o,u=void 0;for(n||(n=3),r||(r=0),o=i?Math.min(i*n+r,e.length):e.length,u=r;u<o;u+=n)t[0]=e[u],t[1]=e[u+1],t[2]=e[u+2],a(t,t,s),e[u]=t[0],e[u+1]=t[1],e[u+2]=t[2];return e}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setAxes=e.sqlerp=e.rotationTo=e.equals=e.exactEquals=e.normalize=e.sqrLen=e.squaredLength=e.len=e.length=e.lerp=e.dot=e.scale=e.mul=e.add=e.set=e.copy=e.fromValues=e.clone=void 0,e.create=u,e.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},e.setAxisAngle=c,e.getAxisAngle=function(t,e){var n=2*Math.acos(e[3]),i=Math.sin(n/2);return i>r.EPSILON?(t[0]=e[0]/i,t[1]=e[1]/i,t[2]=e[2]/i):(t[0]=1,t[1]=0,t[2]=0),n},e.multiply=f,e.rotateX=function(t,e,n){n*=.5;var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u+s*o,t[1]=i*u+a*o,t[2]=a*u-i*o,t[3]=s*u-r*o,t},e.rotateY=function(t,e,n){n*=.5;var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u-a*o,t[1]=i*u+s*o,t[2]=a*u+r*o,t[3]=s*u-i*o,t},e.rotateZ=function(t,e,n){n*=.5;var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u+i*o,t[1]=i*u-r*o,t[2]=a*u+s*o,t[3]=s*u-a*o,t},e.calculateW=function(t,e){var n=e[0],r=e[1],i=e[2];return t[0]=n,t[1]=r,t[2]=i,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-i*i)),t},e.slerp=h,e.random=function(t){var e=r.RANDOM(),n=r.RANDOM(),i=r.RANDOM(),a=Math.sqrt(1-e),s=Math.sqrt(e);return t[0]=a*Math.sin(2*Math.PI*n),t[1]=a*Math.cos(2*Math.PI*n),t[2]=s*Math.sin(2*Math.PI*i),t[3]=s*Math.cos(2*Math.PI*i),t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n*n+r*r+i*i+a*a,o=s?1/s:0;return t[0]=-n*o,t[1]=-r*o,t[2]=-i*o,t[3]=a*o,t},e.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},e.fromMat3=l,e.fromEuler=function(t,e,n,r){var i=.5*Math.PI/180;e*=i,n*=i,r*=i;var a=Math.sin(e),s=Math.cos(e),o=Math.sin(n),u=Math.cos(n),c=Math.sin(r),f=Math.cos(r);return t[0]=a*u*f-s*o*c,t[1]=s*o*f+a*u*c,t[2]=s*u*c-a*o*f,t[3]=s*u*f+a*o*c,t},e.str=function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"};var r=o(n(0)),i=o(n(5)),a=o(n(2)),s=o(n(1));function o(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function u(){var t=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function c(t,e,n){n*=.5;var r=Math.sin(n);return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=Math.cos(n),t}function f(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*f+s*o+i*c-a*u,t[1]=i*f+s*u+a*o-r*c,t[2]=a*f+s*c+r*u-i*o,t[3]=s*f-r*o-i*u-a*c,t}function h(t,e,n,i){var a=e[0],s=e[1],o=e[2],u=e[3],c=n[0],f=n[1],h=n[2],l=n[3],d=void 0,m=void 0,_=void 0,p=void 0,g=void 0;return(m=a*c+s*f+o*h+u*l)<0&&(m=-m,c=-c,f=-f,h=-h,l=-l),1-m>r.EPSILON?(d=Math.acos(m),_=Math.sin(d),p=Math.sin((1-i)*d)/_,g=Math.sin(i*d)/_):(p=1-i,g=i),t[0]=p*a+g*c,t[1]=p*s+g*f,t[2]=p*o+g*h,t[3]=p*u+g*l,t}function l(t,e){var n=e[0]+e[4]+e[8],r=void 0;if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,r=.5/r,t[0]=(e[5]-e[7])*r,t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[3*i+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;r=Math.sqrt(e[3*i+i]-e[3*a+a]-e[3*s+s]+1),t[i]=.5*r,r=.5/r,t[3]=(e[3*a+s]-e[3*s+a])*r,t[a]=(e[3*a+i]+e[3*i+a])*r,t[s]=(e[3*s+i]+e[3*i+s])*r}return t}e.clone=s.clone,e.fromValues=s.fromValues,e.copy=s.copy,e.set=s.set,e.add=s.add,e.mul=f,e.scale=s.scale,e.dot=s.dot,e.lerp=s.lerp;var d=e.length=s.length,m=(e.len=d,e.squaredLength=s.squaredLength),_=(e.sqrLen=m,e.normalize=s.normalize);e.exactEquals=s.exactEquals,e.equals=s.equals,e.rotationTo=function(){var t=a.create(),e=a.fromValues(1,0,0),n=a.fromValues(0,1,0);return function(r,i,s){var o=a.dot(i,s);return o<-.999999?(a.cross(t,e,i),a.len(t)<1e-6&&a.cross(t,n,i),a.normalize(t,t),c(r,t,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(a.cross(t,i,s),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+o,_(r,r))}}(),e.sqlerp=function(){var t=u(),e=u();return function(n,r,i,a,s,o){return h(t,r,s,o),h(e,i,a,o),h(n,t,e,2*o*(1-o)),n}}(),e.setAxes=function(){var t=i.create();return function(e,n,r,i){return t[0]=r[0],t[3]=r[1],t[6]=r[2],t[1]=i[0],t[4]=i[1],t[7]=i[2],t[2]=-n[0],t[5]=-n[1],t[8]=-n[2],_(e,l(e,t))}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(16);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},e.copy=function(t,e){return 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],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},e.fromValues=function(t,e,n,i,a,s,o,u,c,f,h,l,d,m,_,p){var g=new r.ARRAY_TYPE(16);return g[0]=t,g[1]=e,g[2]=n,g[3]=i,g[4]=a,g[5]=s,g[6]=o,g[7]=u,g[8]=c,g[9]=f,g[10]=h,g[11]=l,g[12]=d,g[13]=m,g[14]=_,g[15]=p,g},e.set=function(t,e,n,r,i,a,s,o,u,c,f,h,l,d,m,_,p){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=u,t[8]=c,t[9]=f,t[10]=h,t[11]=l,t[12]=d,t[13]=m,t[14]=_,t[15]=p,t},e.identity=i,e.transpose=function(t,e){if(t===e){var n=e[1],r=e[2],i=e[3],a=e[6],s=e[7],o=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[11]=e[14],t[12]=i,t[13]=s,t[14]=o}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=e[9],l=e[10],d=e[11],m=e[12],_=e[13],p=e[14],g=e[15],E=n*o-r*s,v=n*u-i*s,T=n*c-a*s,A=r*u-i*o,M=r*c-a*o,I=i*c-a*u,R=f*_-h*m,O=f*p-l*m,L=f*g-d*m,S=h*p-l*_,y=h*g-d*_,N=l*g-d*p,x=E*N-v*y+T*S+A*L-M*O+I*R;return x?(x=1/x,t[0]=(o*N-u*y+c*S)*x,t[1]=(i*y-r*N-a*S)*x,t[2]=(_*I-p*M+g*A)*x,t[3]=(l*M-h*I-d*A)*x,t[4]=(u*L-s*N-c*O)*x,t[5]=(n*N-i*L+a*O)*x,t[6]=(p*T-m*I-g*v)*x,t[7]=(f*I-l*T+d*v)*x,t[8]=(s*y-o*L+c*R)*x,t[9]=(r*L-n*y-a*R)*x,t[10]=(m*M-_*T+g*E)*x,t[11]=(h*T-f*M-d*E)*x,t[12]=(o*O-s*S-u*R)*x,t[13]=(n*S-r*O+i*R)*x,t[14]=(_*v-m*A-p*E)*x,t[15]=(f*A-h*v+l*E)*x,t):null},e.adjoint=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=e[9],l=e[10],d=e[11],m=e[12],_=e[13],p=e[14],g=e[15];return t[0]=o*(l*g-d*p)-h*(u*g-c*p)+_*(u*d-c*l),t[1]=-(r*(l*g-d*p)-h*(i*g-a*p)+_*(i*d-a*l)),t[2]=r*(u*g-c*p)-o*(i*g-a*p)+_*(i*c-a*u),t[3]=-(r*(u*d-c*l)-o*(i*d-a*l)+h*(i*c-a*u)),t[4]=-(s*(l*g-d*p)-f*(u*g-c*p)+m*(u*d-c*l)),t[5]=n*(l*g-d*p)-f*(i*g-a*p)+m*(i*d-a*l),t[6]=-(n*(u*g-c*p)-s*(i*g-a*p)+m*(i*c-a*u)),t[7]=n*(u*d-c*l)-s*(i*d-a*l)+f*(i*c-a*u),t[8]=s*(h*g-d*_)-f*(o*g-c*_)+m*(o*d-c*h),t[9]=-(n*(h*g-d*_)-f*(r*g-a*_)+m*(r*d-a*h)),t[10]=n*(o*g-c*_)-s*(r*g-a*_)+m*(r*c-a*o),t[11]=-(n*(o*d-c*h)-s*(r*d-a*h)+f*(r*c-a*o)),t[12]=-(s*(h*p-l*_)-f*(o*p-u*_)+m*(o*l-u*h)),t[13]=n*(h*p-l*_)-f*(r*p-i*_)+m*(r*l-i*h),t[14]=-(n*(o*p-u*_)-s*(r*p-i*_)+m*(r*u-i*o)),t[15]=n*(o*l-u*h)-s*(r*l-i*h)+f*(r*u-i*o),t},e.determinant=function(t){var e=t[0],n=t[1],r=t[2],i=t[3],a=t[4],s=t[5],o=t[6],u=t[7],c=t[8],f=t[9],h=t[10],l=t[11],d=t[12],m=t[13],_=t[14],p=t[15];return(e*s-n*a)*(h*p-l*_)-(e*o-r*a)*(f*p-l*m)+(e*u-i*a)*(f*_-h*m)+(n*o-r*s)*(c*p-l*d)-(n*u-i*s)*(c*_-h*d)+(r*u-i*o)*(c*m-f*d)},e.multiply=a,e.translate=function(t,e,n){var r=n[0],i=n[1],a=n[2],s=void 0,o=void 0,u=void 0,c=void 0,f=void 0,h=void 0,l=void 0,d=void 0,m=void 0,_=void 0,p=void 0,g=void 0;return e===t?(t[12]=e[0]*r+e[4]*i+e[8]*a+e[12],t[13]=e[1]*r+e[5]*i+e[9]*a+e[13],t[14]=e[2]*r+e[6]*i+e[10]*a+e[14],t[15]=e[3]*r+e[7]*i+e[11]*a+e[15]):(s=e[0],o=e[1],u=e[2],c=e[3],f=e[4],h=e[5],l=e[6],d=e[7],m=e[8],_=e[9],p=e[10],g=e[11],t[0]=s,t[1]=o,t[2]=u,t[3]=c,t[4]=f,t[5]=h,t[6]=l,t[7]=d,t[8]=m,t[9]=_,t[10]=p,t[11]=g,t[12]=s*r+f*i+m*a+e[12],t[13]=o*r+h*i+_*a+e[13],t[14]=u*r+l*i+p*a+e[14],t[15]=c*r+d*i+g*a+e[15]),t},e.scale=function(t,e,n){var r=n[0],i=n[1],a=n[2];return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},e.rotate=function(t,e,n,i){var a,s,o,u,c,f,h,l,d,m,_,p,g,E,v,T,A,M,I,R,O,L,S,y,N=i[0],x=i[1],C=i[2],b=Math.sqrt(N*N+x*x+C*C);return b<r.EPSILON?null:(N*=b=1/b,x*=b,C*=b,a=Math.sin(n),o=1-(s=Math.cos(n)),u=e[0],c=e[1],f=e[2],h=e[3],l=e[4],d=e[5],m=e[6],_=e[7],p=e[8],g=e[9],E=e[10],v=e[11],T=N*N*o+s,A=x*N*o+C*a,M=C*N*o-x*a,I=N*x*o-C*a,R=x*x*o+s,O=C*x*o+N*a,L=N*C*o+x*a,S=x*C*o-N*a,y=C*C*o+s,t[0]=u*T+l*A+p*M,t[1]=c*T+d*A+g*M,t[2]=f*T+m*A+E*M,t[3]=h*T+_*A+v*M,t[4]=u*I+l*R+p*O,t[5]=c*I+d*R+g*O,t[6]=f*I+m*R+E*O,t[7]=h*I+_*R+v*O,t[8]=u*L+l*S+p*y,t[9]=c*L+d*S+g*y,t[10]=f*L+m*S+E*y,t[11]=h*L+_*S+v*y,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)},e.rotateX=function(t,e,n){var r=Math.sin(n),i=Math.cos(n),a=e[4],s=e[5],o=e[6],u=e[7],c=e[8],f=e[9],h=e[10],l=e[11];return 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]),t[4]=a*i+c*r,t[5]=s*i+f*r,t[6]=o*i+h*r,t[7]=u*i+l*r,t[8]=c*i-a*r,t[9]=f*i-s*r,t[10]=h*i-o*r,t[11]=l*i-u*r,t},e.rotateY=function(t,e,n){var r=Math.sin(n),i=Math.cos(n),a=e[0],s=e[1],o=e[2],u=e[3],c=e[8],f=e[9],h=e[10],l=e[11];return 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]),t[0]=a*i-c*r,t[1]=s*i-f*r,t[2]=o*i-h*r,t[3]=u*i-l*r,t[8]=a*r+c*i,t[9]=s*r+f*i,t[10]=o*r+h*i,t[11]=u*r+l*i,t},e.rotateZ=function(t,e,n){var r=Math.sin(n),i=Math.cos(n),a=e[0],s=e[1],o=e[2],u=e[3],c=e[4],f=e[5],h=e[6],l=e[7];return 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]),t[0]=a*i+c*r,t[1]=s*i+f*r,t[2]=o*i+h*r,t[3]=u*i+l*r,t[4]=c*i-a*r,t[5]=f*i-s*r,t[6]=h*i-o*r,t[7]=l*i-u*r,t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotation=function(t,e,n){var i,a,s,o=n[0],u=n[1],c=n[2],f=Math.sqrt(o*o+u*u+c*c);return f<r.EPSILON?null:(o*=f=1/f,u*=f,c*=f,i=Math.sin(e),s=1-(a=Math.cos(e)),t[0]=o*o*s+a,t[1]=u*o*s+c*i,t[2]=c*o*s-u*i,t[3]=0,t[4]=o*u*s-c*i,t[5]=u*u*s+a,t[6]=c*u*s+o*i,t[7]=0,t[8]=o*c*s+u*i,t[9]=u*c*s-o*i,t[10]=c*c*s+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},e.fromXRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromYRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromZRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.fromRotationTranslation=s,e.fromQuat2=function(t,e){var n=new r.ARRAY_TYPE(3),i=-e[0],a=-e[1],o=-e[2],u=e[3],c=e[4],f=e[5],h=e[6],l=e[7],d=i*i+a*a+o*o+u*u;return d>0?(n[0]=2*(c*u+l*i+f*o-h*a)/d,n[1]=2*(f*u+l*a+h*i-c*o)/d,n[2]=2*(h*u+l*o+c*a-f*i)/d):(n[0]=2*(c*u+l*i+f*o-h*a),n[1]=2*(f*u+l*a+h*i-c*o),n[2]=2*(h*u+l*o+c*a-f*i)),s(t,e,n),t},e.getTranslation=function(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t},e.getScaling=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[4],s=e[5],o=e[6],u=e[8],c=e[9],f=e[10];return t[0]=Math.sqrt(n*n+r*r+i*i),t[1]=Math.sqrt(a*a+s*s+o*o),t[2]=Math.sqrt(u*u+c*c+f*f),t},e.getRotation=function(t,e){var n=e[0]+e[5]+e[10],r=0;return n>0?(r=2*Math.sqrt(n+1),t[3]=.25*r,t[0]=(e[6]-e[9])/r,t[1]=(e[8]-e[2])/r,t[2]=(e[1]-e[4])/r):e[0]>e[5]&&e[0]>e[10]?(r=2*Math.sqrt(1+e[0]-e[5]-e[10]),t[3]=(e[6]-e[9])/r,t[0]=.25*r,t[1]=(e[1]+e[4])/r,t[2]=(e[8]+e[2])/r):e[5]>e[10]?(r=2*Math.sqrt(1+e[5]-e[0]-e[10]),t[3]=(e[8]-e[2])/r,t[0]=(e[1]+e[4])/r,t[1]=.25*r,t[2]=(e[6]+e[9])/r):(r=2*Math.sqrt(1+e[10]-e[0]-e[5]),t[3]=(e[1]-e[4])/r,t[0]=(e[8]+e[2])/r,t[1]=(e[6]+e[9])/r,t[2]=.25*r),t},e.fromRotationTranslationScale=function(t,e,n,r){var i=e[0],a=e[1],s=e[2],o=e[3],u=i+i,c=a+a,f=s+s,h=i*u,l=i*c,d=i*f,m=a*c,_=a*f,p=s*f,g=o*u,E=o*c,v=o*f,T=r[0],A=r[1],M=r[2];return t[0]=(1-(m+p))*T,t[1]=(l+v)*T,t[2]=(d-E)*T,t[3]=0,t[4]=(l-v)*A,t[5]=(1-(h+p))*A,t[6]=(_+g)*A,t[7]=0,t[8]=(d+E)*M,t[9]=(_-g)*M,t[10]=(1-(h+m))*M,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},e.fromRotationTranslationScaleOrigin=function(t,e,n,r,i){var a=e[0],s=e[1],o=e[2],u=e[3],c=a+a,f=s+s,h=o+o,l=a*c,d=a*f,m=a*h,_=s*f,p=s*h,g=o*h,E=u*c,v=u*f,T=u*h,A=r[0],M=r[1],I=r[2],R=i[0],O=i[1],L=i[2],S=(1-(_+g))*A,y=(d+T)*A,N=(m-v)*A,x=(d-T)*M,C=(1-(l+g))*M,b=(p+E)*M,P=(m+v)*I,w=(p-E)*I,H=(1-(l+_))*I;return t[0]=S,t[1]=y,t[2]=N,t[3]=0,t[4]=x,t[5]=C,t[6]=b,t[7]=0,t[8]=P,t[9]=w,t[10]=H,t[11]=0,t[12]=n[0]+R-(S*R+x*O+P*L),t[13]=n[1]+O-(y*R+C*O+w*L),t[14]=n[2]+L-(N*R+b*O+H*L),t[15]=1,t},e.fromQuat=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n+n,o=r+r,u=i+i,c=n*s,f=r*s,h=r*o,l=i*s,d=i*o,m=i*u,_=a*s,p=a*o,g=a*u;return t[0]=1-h-m,t[1]=f+g,t[2]=l-p,t[3]=0,t[4]=f-g,t[5]=1-c-m,t[6]=d+_,t[7]=0,t[8]=l+p,t[9]=d-_,t[10]=1-c-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,n,r,i,a,s){var o=1/(n-e),u=1/(i-r),c=1/(a-s);return t[0]=2*a*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*a*u,t[6]=0,t[7]=0,t[8]=(n+e)*o,t[9]=(i+r)*u,t[10]=(s+a)*c,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*a*2*c,t[15]=0,t},e.perspective=function(t,e,n,r,i){var a=1/Math.tan(e/2),s=void 0;return t[0]=a/n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(s=1/(r-i),t[10]=(i+r)*s,t[14]=2*i*r*s):(t[10]=-1,t[14]=-2*r),t},e.perspectiveFromFieldOfView=function(t,e,n,r){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),s=Math.tan(e.leftDegrees*Math.PI/180),o=Math.tan(e.rightDegrees*Math.PI/180),u=2/(s+o),c=2/(i+a);return t[0]=u,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=c,t[6]=0,t[7]=0,t[8]=-(s-o)*u*.5,t[9]=(i-a)*c*.5,t[10]=r/(n-r),t[11]=-1,t[12]=0,t[13]=0,t[14]=r*n/(n-r),t[15]=0,t},e.ortho=function(t,e,n,r,i,a,s){var o=1/(e-n),u=1/(r-i),c=1/(a-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+n)*o,t[13]=(i+r)*u,t[14]=(s+a)*c,t[15]=1,t},e.lookAt=function(t,e,n,a){var s=void 0,o=void 0,u=void 0,c=void 0,f=void 0,h=void 0,l=void 0,d=void 0,m=void 0,_=void 0,p=e[0],g=e[1],E=e[2],v=a[0],T=a[1],A=a[2],M=n[0],I=n[1],R=n[2];return Math.abs(p-M)<r.EPSILON&&Math.abs(g-I)<r.EPSILON&&Math.abs(E-R)<r.EPSILON?i(t):(l=p-M,d=g-I,m=E-R,s=T*(m*=_=1/Math.sqrt(l*l+d*d+m*m))-A*(d*=_),o=A*(l*=_)-v*m,u=v*d-T*l,(_=Math.sqrt(s*s+o*o+u*u))?(s*=_=1/_,o*=_,u*=_):(s=0,o=0,u=0),c=d*u-m*o,f=m*s-l*u,h=l*o-d*s,(_=Math.sqrt(c*c+f*f+h*h))?(c*=_=1/_,f*=_,h*=_):(c=0,f=0,h=0),t[0]=s,t[1]=c,t[2]=l,t[3]=0,t[4]=o,t[5]=f,t[6]=d,t[7]=0,t[8]=u,t[9]=h,t[10]=m,t[11]=0,t[12]=-(s*p+o*g+u*E),t[13]=-(c*p+f*g+h*E),t[14]=-(l*p+d*g+m*E),t[15]=1,t)},e.targetTo=function(t,e,n,r){var i=e[0],a=e[1],s=e[2],o=r[0],u=r[1],c=r[2],f=i-n[0],h=a-n[1],l=s-n[2],d=f*f+h*h+l*l;d>0&&(f*=d=1/Math.sqrt(d),h*=d,l*=d);var m=u*l-c*h,_=c*f-o*l,p=o*h-u*f;return(d=m*m+_*_+p*p)>0&&(m*=d=1/Math.sqrt(d),_*=d,p*=d),t[0]=m,t[1]=_,t[2]=p,t[3]=0,t[4]=h*p-l*_,t[5]=l*m-f*p,t[6]=f*_-h*m,t[7]=0,t[8]=f,t[9]=h,t[10]=l,t[11]=0,t[12]=i,t[13]=a,t[14]=s,t[15]=1,t},e.str=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2)+Math.pow(t[9],2)+Math.pow(t[10],2)+Math.pow(t[11],2)+Math.pow(t[12],2)+Math.pow(t[13],2)+Math.pow(t[14],2)+Math.pow(t[15],2))},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t[9]=e[9]+n[9],t[10]=e[10]+n[10],t[11]=e[11]+n[11],t[12]=e[12]+n[12],t[13]=e[13]+n[13],t[14]=e[14]+n[14],t[15]=e[15]+n[15],t},e.subtract=o,e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t[9]=e[9]*n,t[10]=e[10]*n,t[11]=e[11]*n,t[12]=e[12]*n,t[13]=e[13]*n,t[14]=e[14]*n,t[15]=e[15]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t[9]=e[9]+n[9]*r,t[10]=e[10]+n[10]*r,t[11]=e[11]+n[11]*r,t[12]=e[12]+n[12]*r,t[13]=e[13]+n[13]*r,t[14]=e[14]+n[14]*r,t[15]=e[15]+n[15]*r,t},e.exactEquals=function(t,e){return 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]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],f=t[7],h=t[8],l=t[9],d=t[10],m=t[11],_=t[12],p=t[13],g=t[14],E=t[15],v=e[0],T=e[1],A=e[2],M=e[3],I=e[4],R=e[5],O=e[6],L=e[7],S=e[8],y=e[9],N=e[10],x=e[11],C=e[12],b=e[13],P=e[14],w=e[15];return Math.abs(n-v)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(i-T)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(T))&&Math.abs(a-A)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(A))&&Math.abs(s-M)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(M))&&Math.abs(o-I)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(I))&&Math.abs(u-R)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(R))&&Math.abs(c-O)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(O))&&Math.abs(f-L)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(L))&&Math.abs(h-S)<=r.EPSILON*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(l-y)<=r.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(d-N)<=r.EPSILON*Math.max(1,Math.abs(d),Math.abs(N))&&Math.abs(m-x)<=r.EPSILON*Math.max(1,Math.abs(m),Math.abs(x))&&Math.abs(_-C)<=r.EPSILON*Math.max(1,Math.abs(_),Math.abs(C))&&Math.abs(p-b)<=r.EPSILON*Math.max(1,Math.abs(p),Math.abs(b))&&Math.abs(g-P)<=r.EPSILON*Math.max(1,Math.abs(g),Math.abs(P))&&Math.abs(E-w)<=r.EPSILON*Math.max(1,Math.abs(E),Math.abs(w))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function a(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=e[9],d=e[10],m=e[11],_=e[12],p=e[13],g=e[14],E=e[15],v=n[0],T=n[1],A=n[2],M=n[3];return t[0]=v*r+T*o+A*h+M*_,t[1]=v*i+T*u+A*l+M*p,t[2]=v*a+T*c+A*d+M*g,t[3]=v*s+T*f+A*m+M*E,v=n[4],T=n[5],A=n[6],M=n[7],t[4]=v*r+T*o+A*h+M*_,t[5]=v*i+T*u+A*l+M*p,t[6]=v*a+T*c+A*d+M*g,t[7]=v*s+T*f+A*m+M*E,v=n[8],T=n[9],A=n[10],M=n[11],t[8]=v*r+T*o+A*h+M*_,t[9]=v*i+T*u+A*l+M*p,t[10]=v*a+T*c+A*d+M*g,t[11]=v*s+T*f+A*m+M*E,v=n[12],T=n[13],A=n[14],M=n[15],t[12]=v*r+T*o+A*h+M*_,t[13]=v*i+T*u+A*l+M*p,t[14]=v*a+T*c+A*d+M*g,t[15]=v*s+T*f+A*m+M*E,t}function s(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=r+r,u=i+i,c=a+a,f=r*o,h=r*u,l=r*c,d=i*u,m=i*c,_=a*c,p=s*o,g=s*u,E=s*c;return t[0]=1-(d+_),t[1]=h+E,t[2]=l-g,t[3]=0,t[4]=h-E,t[5]=1-(f+_),t[6]=m+p,t[7]=0,t[8]=l+g,t[9]=m-p,t[10]=1-(f+d),t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}function o(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t[9]=e[9]-n[9],t[10]=e[10]-n[10],t[11]=e[11]-n[11],t[12]=e[12]-n[12],t[13]=e[13]-n[13],t[14]=e[14]-n[14],t[15]=e[15]-n[15],t}e.mul=a,e.sub=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(9);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.clone=function(t){var e=new r.ARRAY_TYPE(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},e.copy=function(t,e){return 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},e.fromValues=function(t,e,n,i,a,s,o,u,c){var f=new r.ARRAY_TYPE(9);return f[0]=t,f[1]=e,f[2]=n,f[3]=i,f[4]=a,f[5]=s,f[6]=o,f[7]=u,f[8]=c,f},e.set=function(t,e,n,r,i,a,s,o,u,c){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=u,t[8]=c,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.transpose=function(t,e){if(t===e){var n=e[1],r=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=n,t[5]=e[7],t[6]=r,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=f*s-o*c,l=-f*a+o*u,d=c*a-s*u,m=n*h+r*l+i*d;return m?(m=1/m,t[0]=h*m,t[1]=(-f*r+i*c)*m,t[2]=(o*r-i*s)*m,t[3]=l*m,t[4]=(f*n-i*u)*m,t[5]=(-o*n+i*a)*m,t[6]=d*m,t[7]=(-c*n+r*u)*m,t[8]=(s*n-r*a)*m,t):null},e.adjoint=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8];return t[0]=s*f-o*c,t[1]=i*c-r*f,t[2]=r*o-i*s,t[3]=o*u-a*f,t[4]=n*f-i*u,t[5]=i*a-n*o,t[6]=a*c-s*u,t[7]=r*u-n*c,t[8]=n*s-r*a,t},e.determinant=function(t){var e=t[0],n=t[1],r=t[2],i=t[3],a=t[4],s=t[5],o=t[6],u=t[7],c=t[8];return e*(c*a-s*u)+n*(-c*i+s*o)+r*(u*i-a*o)},e.multiply=i,e.translate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=n[0],d=n[1];return t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=o,t[5]=u,t[6]=l*r+d*s+c,t[7]=l*i+d*o+f,t[8]=l*a+d*u+h,t},e.rotate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=Math.sin(n),d=Math.cos(n);return t[0]=d*r+l*s,t[1]=d*i+l*o,t[2]=d*a+l*u,t[3]=d*s-l*r,t[4]=d*o-l*i,t[5]=d*u-l*a,t[6]=c,t[7]=f,t[8]=h,t},e.scale=function(t,e,n){var r=n[0],i=n[1];return t[0]=r*e[0],t[1]=r*e[1],t[2]=r*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t},e.fromRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=-n,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat2d=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t},e.fromQuat=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n+n,o=r+r,u=i+i,c=n*s,f=r*s,h=r*o,l=i*s,d=i*o,m=i*u,_=a*s,p=a*o,g=a*u;return t[0]=1-h-m,t[3]=f-g,t[6]=l+p,t[1]=f+g,t[4]=1-c-m,t[7]=d-_,t[2]=l-p,t[5]=d+_,t[8]=1-c-h,t},e.normalFromMat4=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=e[6],c=e[7],f=e[8],h=e[9],l=e[10],d=e[11],m=e[12],_=e[13],p=e[14],g=e[15],E=n*o-r*s,v=n*u-i*s,T=n*c-a*s,A=r*u-i*o,M=r*c-a*o,I=i*c-a*u,R=f*_-h*m,O=f*p-l*m,L=f*g-d*m,S=h*p-l*_,y=h*g-d*_,N=l*g-d*p,x=E*N-v*y+T*S+A*L-M*O+I*R;return x?(x=1/x,t[0]=(o*N-u*y+c*S)*x,t[1]=(u*L-s*N-c*O)*x,t[2]=(s*y-o*L+c*R)*x,t[3]=(i*y-r*N-a*S)*x,t[4]=(n*N-i*L+a*O)*x,t[5]=(r*L-n*y-a*R)*x,t[6]=(_*I-p*M+g*A)*x,t[7]=(p*T-m*I-g*v)*x,t[8]=(m*M-_*T+g*E)*x,t):null},e.projection=function(t,e,n){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/n,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t},e.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2))},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t[8]=e[8]+n[8],t},e.subtract=a,e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t[6]=e[6]+n[6]*r,t[7]=e[7]+n[7]*r,t[8]=e[8]+n[8]*r,t},e.exactEquals=function(t,e){return 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]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],f=t[7],h=t[8],l=e[0],d=e[1],m=e[2],_=e[3],p=e[4],g=e[5],E=e[6],v=e[7],T=e[8];return Math.abs(n-l)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(i-d)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(a-m)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(s-_)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(o-p)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(u-g)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(c-E)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(E))&&Math.abs(f-v)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(v))&&Math.abs(h-T)<=r.EPSILON*Math.max(1,Math.abs(h),Math.abs(T))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=e[6],f=e[7],h=e[8],l=n[0],d=n[1],m=n[2],_=n[3],p=n[4],g=n[5],E=n[6],v=n[7],T=n[8];return t[0]=l*r+d*s+m*c,t[1]=l*i+d*o+m*f,t[2]=l*a+d*u+m*h,t[3]=_*r+p*s+g*c,t[4]=_*i+p*o+g*f,t[5]=_*a+p*u+g*h,t[6]=E*r+v*s+T*c,t[7]=E*i+v*o+T*f,t[8]=E*a+v*u+T*h,t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t[6]=e[6]-n[6],t[7]=e[7]-n[7],t[8]=e[8]-n[8],t}e.mul=i,e.sub=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.forEach=e.sqrLen=e.sqrDist=e.dist=e.div=e.mul=e.sub=e.len=void 0,e.create=i,e.clone=function(t){var e=new r.ARRAY_TYPE(2);return e[0]=t[0],e[1]=t[1],e},e.fromValues=function(t,e){var n=new r.ARRAY_TYPE(2);return n[0]=t,n[1]=e,n},e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t},e.set=function(t,e,n){return t[0]=e,t[1]=n,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t},e.subtract=a,e.multiply=s,e.divide=o,e.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t},e.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t},e.min=function(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t},e.max=function(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t},e.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t},e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t},e.scaleAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t},e.distance=u,e.squaredDistance=c,e.length=f,e.squaredLength=h,e.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t},e.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t},e.normalize=function(t,e){var n=e[0],r=e[1],i=n*n+r*r;return i>0&&(i=1/Math.sqrt(i),t[0]=e[0]*i,t[1]=e[1]*i),t},e.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]},e.cross=function(t,e,n){var r=e[0]*n[1]-e[1]*n[0];return t[0]=t[1]=0,t[2]=r,t},e.lerp=function(t,e,n,r){var i=e[0],a=e[1];return t[0]=i+r*(n[0]-i),t[1]=a+r*(n[1]-a),t},e.random=function(t,e){e=e||1;var n=2*r.RANDOM()*Math.PI;return t[0]=Math.cos(n)*e,t[1]=Math.sin(n)*e,t},e.transformMat2=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i,t[1]=n[1]*r+n[3]*i,t},e.transformMat2d=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[2]*i+n[4],t[1]=n[1]*r+n[3]*i+n[5],t},e.transformMat3=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[3]*i+n[6],t[1]=n[1]*r+n[4]*i+n[7],t},e.transformMat4=function(t,e,n){var r=e[0],i=e[1];return t[0]=n[0]*r+n[4]*i+n[12],t[1]=n[1]*r+n[5]*i+n[13],t},e.rotate=function(t,e,n,r){var i=e[0]-n[0],a=e[1]-n[1],s=Math.sin(r),o=Math.cos(r);return t[0]=i*o-a*s+n[0],t[1]=i*s+a*o+n[1],t},e.angle=function(t,e){var n=t[0],r=t[1],i=e[0],a=e[1],s=n*n+r*r;s>0&&(s=1/Math.sqrt(s));var o=i*i+a*a;o>0&&(o=1/Math.sqrt(o));var u=(n*i+r*a)*s*o;return u>1?0:u<-1?Math.PI:Math.acos(u)},e.str=function(t){return"vec2("+t[0]+", "+t[1]+")"},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]},e.equals=function(t,e){var n=t[0],i=t[1],a=e[0],s=e[1];return Math.abs(n-a)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-s)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(){var t=new r.ARRAY_TYPE(2);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0),t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function s(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t}function o(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t}function u(t,e){var n=e[0]-t[0],r=e[1]-t[1];return Math.sqrt(n*n+r*r)}function c(t,e){var n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function f(t){var e=t[0],n=t[1];return Math.sqrt(e*e+n*n)}function h(t){var e=t[0],n=t[1];return e*e+n*n}e.len=f,e.sub=a,e.mul=s,e.div=o,e.dist=u,e.sqrDist=c,e.sqrLen=h,e.forEach=function(){var t=i();return function(e,n,r,i,a,s){var o,u=void 0;for(n||(n=2),r||(r=0),o=i?Math.min(i*n+r,e.length):e.length,u=r;u<o;u+=n)t[0]=e[u],t[1]=e[u+1],a(t,t,s),e[u]=t[0],e[u+1]=t[1];return e}}()},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sqrLen=e.squaredLength=e.len=e.length=e.dot=e.mul=e.setReal=e.getReal=void 0,e.create=function(){var t=new r.ARRAY_TYPE(8);return r.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0),t[3]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(8);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e},e.fromValues=function(t,e,n,i,a,s,o,u){var c=new r.ARRAY_TYPE(8);return c[0]=t,c[1]=e,c[2]=n,c[3]=i,c[4]=a,c[5]=s,c[6]=o,c[7]=u,c},e.fromRotationTranslationValues=function(t,e,n,i,a,s,o){var u=new r.ARRAY_TYPE(8);u[0]=t,u[1]=e,u[2]=n,u[3]=i;var c=.5*a,f=.5*s,h=.5*o;return u[4]=c*i+f*n-h*e,u[5]=f*i+h*t-c*n,u[6]=h*i+c*e-f*t,u[7]=-c*t-f*e-h*n,u},e.fromRotationTranslation=o,e.fromTranslation=function(t,e){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*e[0],t[5]=.5*e[1],t[6]=.5*e[2],t[7]=0,t},e.fromRotation=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},e.fromMat4=function(t,e){var n=i.create();a.getRotation(n,e);var s=new r.ARRAY_TYPE(3);return a.getTranslation(s,e),o(t,n,s),t},e.copy=u,e.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},e.set=function(t,e,n,r,i,a,s,o,u){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=u,t},e.getDual=function(t,e){return t[0]=e[4],t[1]=e[5],t[2]=e[6],t[3]=e[7],t},e.setDual=function(t,e){return t[4]=e[0],t[5]=e[1],t[6]=e[2],t[7]=e[3],t},e.getTranslation=function(t,e){var n=e[4],r=e[5],i=e[6],a=e[7],s=-e[0],o=-e[1],u=-e[2],c=e[3];return t[0]=2*(n*c+a*s+r*u-i*o),t[1]=2*(r*c+a*o+i*s-n*u),t[2]=2*(i*c+a*u+n*o-r*s),t},e.translate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=.5*n[0],u=.5*n[1],c=.5*n[2],f=e[4],h=e[5],l=e[6],d=e[7];return t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=s*o+i*c-a*u+f,t[5]=s*u+a*o-r*c+h,t[6]=s*c+r*u-i*o+l,t[7]=-r*o-i*u-a*c+d,t},e.rotateX=function(t,e,n){var r=-e[0],a=-e[1],s=-e[2],o=e[3],u=e[4],c=e[5],f=e[6],h=e[7],l=u*o+h*r+c*s-f*a,d=c*o+h*a+f*r-u*s,m=f*o+h*s+u*a-c*r,_=h*o-u*r-c*a-f*s;return i.rotateX(t,e,n),r=t[0],a=t[1],s=t[2],o=t[3],t[4]=l*o+_*r+d*s-m*a,t[5]=d*o+_*a+m*r-l*s,t[6]=m*o+_*s+l*a-d*r,t[7]=_*o-l*r-d*a-m*s,t},e.rotateY=function(t,e,n){var r=-e[0],a=-e[1],s=-e[2],o=e[3],u=e[4],c=e[5],f=e[6],h=e[7],l=u*o+h*r+c*s-f*a,d=c*o+h*a+f*r-u*s,m=f*o+h*s+u*a-c*r,_=h*o-u*r-c*a-f*s;return i.rotateY(t,e,n),r=t[0],a=t[1],s=t[2],o=t[3],t[4]=l*o+_*r+d*s-m*a,t[5]=d*o+_*a+m*r-l*s,t[6]=m*o+_*s+l*a-d*r,t[7]=_*o-l*r-d*a-m*s,t},e.rotateZ=function(t,e,n){var r=-e[0],a=-e[1],s=-e[2],o=e[3],u=e[4],c=e[5],f=e[6],h=e[7],l=u*o+h*r+c*s-f*a,d=c*o+h*a+f*r-u*s,m=f*o+h*s+u*a-c*r,_=h*o-u*r-c*a-f*s;return i.rotateZ(t,e,n),r=t[0],a=t[1],s=t[2],o=t[3],t[4]=l*o+_*r+d*s-m*a,t[5]=d*o+_*a+m*r-l*s,t[6]=m*o+_*s+l*a-d*r,t[7]=_*o-l*r-d*a-m*s,t},e.rotateByQuatAppend=function(t,e,n){var r=n[0],i=n[1],a=n[2],s=n[3],o=e[0],u=e[1],c=e[2],f=e[3];return t[0]=o*s+f*r+u*a-c*i,t[1]=u*s+f*i+c*r-o*a,t[2]=c*s+f*a+o*i-u*r,t[3]=f*s-o*r-u*i-c*a,o=e[4],u=e[5],c=e[6],f=e[7],t[4]=o*s+f*r+u*a-c*i,t[5]=u*s+f*i+c*r-o*a,t[6]=c*s+f*a+o*i-u*r,t[7]=f*s-o*r-u*i-c*a,t},e.rotateByQuatPrepend=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*f+s*o+i*c-a*u,t[1]=i*f+s*u+a*o-r*c,t[2]=a*f+s*c+r*u-i*o,t[3]=s*f-r*o-i*u-a*c,o=n[4],u=n[5],c=n[6],f=n[7],t[4]=r*f+s*o+i*c-a*u,t[5]=i*f+s*u+a*o-r*c,t[6]=a*f+s*c+r*u-i*o,t[7]=s*f-r*o-i*u-a*c,t},e.rotateAroundAxis=function(t,e,n,i){if(Math.abs(i)<r.EPSILON)return u(t,e);var a=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);i*=.5;var s=Math.sin(i),o=s*n[0]/a,c=s*n[1]/a,f=s*n[2]/a,h=Math.cos(i),l=e[0],d=e[1],m=e[2],_=e[3];t[0]=l*h+_*o+d*f-m*c,t[1]=d*h+_*c+m*o-l*f,t[2]=m*h+_*f+l*c-d*o,t[3]=_*h-l*o-d*c-m*f;var p=e[4],g=e[5],E=e[6],v=e[7];return t[4]=p*h+v*o+g*f-E*c,t[5]=g*h+v*c+E*o-p*f,t[6]=E*h+v*f+p*c-g*o,t[7]=v*h-p*o-g*c-E*f,t},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t[6]=e[6]+n[6],t[7]=e[7]+n[7],t},e.multiply=c,e.scale=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t},e.lerp=function(t,e,n,r){var i=1-r;return f(e,n)<0&&(r=-r),t[0]=e[0]*i+n[0]*r,t[1]=e[1]*i+n[1]*r,t[2]=e[2]*i+n[2]*r,t[3]=e[3]*i+n[3]*r,t[4]=e[4]*i+n[4]*r,t[5]=e[5]*i+n[5]*r,t[6]=e[6]*i+n[6]*r,t[7]=e[7]*i+n[7]*r,t},e.invert=function(t,e){var n=l(e);return t[0]=-e[0]/n,t[1]=-e[1]/n,t[2]=-e[2]/n,t[3]=e[3]/n,t[4]=-e[4]/n,t[5]=-e[5]/n,t[6]=-e[6]/n,t[7]=e[7]/n,t},e.conjugate=function(t,e){return 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},e.normalize=function(t,e){var n=l(e);if(n>0){n=Math.sqrt(n);var r=e[0]/n,i=e[1]/n,a=e[2]/n,s=e[3]/n,o=e[4],u=e[5],c=e[6],f=e[7],h=r*o+i*u+a*c+s*f;t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=(o-r*h)/n,t[5]=(u-i*h)/n,t[6]=(c-a*h)/n,t[7]=(f-s*h)/n}return t},e.str=function(t){return"quat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+")"},e.exactEquals=function(t,e){return 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]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],f=t[7],h=e[0],l=e[1],d=e[2],m=e[3],_=e[4],p=e[5],g=e[6],E=e[7];return Math.abs(n-h)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(i-l)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(a-d)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(s-m)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(o-_)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(_))&&Math.abs(u-p)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(p))&&Math.abs(c-g)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(g))&&Math.abs(f-E)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(E))};var r=s(n(0)),i=s(n(3)),a=s(n(4));function s(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function o(t,e,n){var r=.5*n[0],i=.5*n[1],a=.5*n[2],s=e[0],o=e[1],u=e[2],c=e[3];return t[0]=s,t[1]=o,t[2]=u,t[3]=c,t[4]=r*c+i*u-a*o,t[5]=i*c+a*s-r*u,t[6]=a*c+r*o-i*s,t[7]=-r*s-i*o-a*u,t}function u(t,e){return 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}function c(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[4],u=n[5],c=n[6],f=n[7],h=e[4],l=e[5],d=e[6],m=e[7],_=n[0],p=n[1],g=n[2],E=n[3];return t[0]=r*E+s*_+i*g-a*p,t[1]=i*E+s*p+a*_-r*g,t[2]=a*E+s*g+r*p-i*_,t[3]=s*E-r*_-i*p-a*g,t[4]=r*f+s*o+i*c-a*u+h*E+m*_+l*g-d*p,t[5]=i*f+s*u+a*o-r*c+l*E+m*p+d*_-h*g,t[6]=a*f+s*c+r*u-i*o+d*E+m*g+h*p-l*_,t[7]=s*f-r*o-i*u-a*c+m*E-h*_-l*p-d*g,t}e.getReal=i.copy,e.setReal=i.copy,e.mul=c;var f=e.dot=i.dot,h=e.length=i.length,l=(e.len=h,e.squaredLength=i.squaredLength);e.sqrLen=l},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(6);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(6);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e},e.copy=function(t,e){return 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},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},e.fromValues=function(t,e,n,i,a,s){var o=new r.ARRAY_TYPE(6);return o[0]=t,o[1]=e,o[2]=n,o[3]=i,o[4]=a,o[5]=s,o},e.set=function(t,e,n,r,i,a,s){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=s,t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],u=n*a-r*i;return u?(u=1/u,t[0]=a*u,t[1]=-r*u,t[2]=-i*u,t[3]=n*u,t[4]=(i*o-a*s)*u,t[5]=(r*s-n*o)*u,t):null},e.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},e.multiply=i,e.rotate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=Math.sin(n),f=Math.cos(n);return t[0]=r*f+a*c,t[1]=i*f+s*c,t[2]=r*-c+a*f,t[3]=i*-c+s*f,t[4]=o,t[5]=u,t},e.scale=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=n[0],f=n[1];return t[0]=r*c,t[1]=i*c,t[2]=a*f,t[3]=s*f,t[4]=o,t[5]=u,t},e.translate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=n[0],f=n[1];return t[0]=r,t[1]=i,t[2]=a,t[3]=s,t[4]=r*c+a*f+o,t[5]=i*c+s*f+u,t},e.fromRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t[4]=0,t[5]=0,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t[4]=0,t[5]=0,t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=e[0],t[5]=e[1],t},e.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+1)},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t[4]=e[4]+n[4],t[5]=e[5]+n[5],t},e.subtract=a,e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*n,t[5]=e[5]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t[4]=e[4]+n[4]*r,t[5]=e[5]+n[5]*r,t},e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=e[0],f=e[1],h=e[2],l=e[3],d=e[4],m=e[5];return Math.abs(n-c)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(i-f)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(a-h)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(s-l)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(l))&&Math.abs(o-d)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-m)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(m))};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=e[4],u=e[5],c=n[0],f=n[1],h=n[2],l=n[3],d=n[4],m=n[5];return t[0]=r*c+a*f,t[1]=i*c+s*f,t[2]=r*h+a*l,t[3]=i*h+s*l,t[4]=r*d+a*m+o,t[5]=i*d+s*m+u,t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t[4]=e[4]-n[4],t[5]=e[5]-n[5],t}e.mul=i,e.sub=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sub=e.mul=void 0,e.create=function(){var t=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},e.clone=function(t){var e=new r.ARRAY_TYPE(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},e.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},e.fromValues=function(t,e,n,i){var a=new r.ARRAY_TYPE(4);return a[0]=t,a[1]=e,a[2]=n,a[3]=i,a},e.set=function(t,e,n,r,i){return t[0]=e,t[1]=n,t[2]=r,t[3]=i,t},e.transpose=function(t,e){if(t===e){var n=e[1];t[1]=e[2],t[2]=n}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t},e.invert=function(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],s=n*a-i*r;return s?(s=1/s,t[0]=a*s,t[1]=-r*s,t[2]=-i*s,t[3]=n*s,t):null},e.adjoint=function(t,e){var n=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=n,t},e.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},e.multiply=i,e.rotate=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(n),u=Math.cos(n);return t[0]=r*u+a*o,t[1]=i*u+s*o,t[2]=r*-o+a*u,t[3]=i*-o+s*u,t},e.scale=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1];return t[0]=r*o,t[1]=i*o,t[2]=a*u,t[3]=s*u,t},e.fromRotation=function(t,e){var n=Math.sin(e),r=Math.cos(e);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t},e.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t},e.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},e.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2))},e.LDU=function(t,e,n,r){return t[2]=r[2]/r[0],n[0]=r[0],n[1]=r[1],n[3]=r[3]-t[2]*n[1],[t,e,n]},e.add=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3],t},e.subtract=a,e.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},e.equals=function(t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],u=e[1],c=e[2],f=e[3];return Math.abs(n-o)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-u)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(u))&&Math.abs(a-c)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(s-f)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(f))},e.multiplyScalar=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t},e.multiplyScalarAndAdd=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t[3]=e[3]+n[3]*r,t};var r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(0));function i(t,e,n){var r=e[0],i=e[1],a=e[2],s=e[3],o=n[0],u=n[1],c=n[2],f=n[3];return t[0]=r*o+a*u,t[1]=i*o+s*u,t[2]=r*c+a*f,t[3]=i*c+s*f,t}function a(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t[3]=e[3]-n[3],t}e.mul=i,e.sub=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.vec4=e.vec3=e.vec2=e.quat2=e.quat=e.mat4=e.mat3=e.mat2d=e.mat2=e.glMatrix=void 0;var r=d(n(0)),i=d(n(9)),a=d(n(8)),s=d(n(5)),o=d(n(4)),u=d(n(3)),c=d(n(7)),f=d(n(6)),h=d(n(2)),l=d(n(1));function d(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}e.glMatrix=r,e.mat2=i,e.mat2d=a,e.mat3=s,e.mat4=o,e.quat=u,e.quat2=c,e.vec2=f,e.vec3=h,e.vec4=l}])},function(t,e,n){"use strict";var r=function(){var t,e;try{t=Object.defineProperty,e=Object.defineProperties,t({},"$",{value:0})}catch(n){"__defineGetter__"in Object&&(t=function(t,e,n){return"value"in n&&(t[e]=n.value),"get"in n&&t.__defineGetter__(e,n.get),"set"in n&&t.__defineSetter__(e,n.set),t},e=function(e,n){for(var r in n)n.hasOwnProperty(r)&&t(e,r,n[r]);return e})}var n=function(t){for(var n=1,r=arguments.length;n<r;n++){var i=arguments[n],a=void 0;for(var s in i){var o=i[s];!o||"object"!=typeof o||void 0===o.value&&"function"!=typeof o.get&&"function"!=typeof o.set?t[s]=o:(a=a||{})[s]=o}a&&e(t,a)}return t},r=function(){if(Object.__proto__)return function(t){return{__proto__:t}};var t=function(){};return function(e){return t.prototype=e,new t}}(),i={Extends:function(t){var e=this.prototype,i=r(t.prototype);n(this,t),n(i,e),i.constructor=this,this.prototype=i,this.superclass=t.prototype},Mixes:function(t){t instanceof Array||(t=[t]);for(var e,r=this.prototype;e=t.shift();)n(r,e.prototype||e)},Statics:function(t){n(this,t)}},a=function(t){var e,r,a={};for(r in t)e=t[r],i.hasOwnProperty(r)?i[r].call(this,e):a[r]=e;n(this.prototype,a)};return{create:function(t){var e=(t=t||{}).hasOwnProperty("constructor")?t.constructor:function(){};return a.call(e,t),e},mix:n}}();e.a=r},function(t,e,n){"use strict";var r={};n.r(r),n.d(r,"ACTIVE_ATTRIBUTES",(function(){return o})),n.d(r,"ACTIVE_ATTRIBUTE_MAX_LENGTH",(function(){return u})),n.d(r,"ACTIVE_TEXTURE",(function(){return c})),n.d(r,"ACTIVE_UNIFORMS",(function(){return f})),n.d(r,"ACTIVE_UNIFORM_MAX_LENGTH",(function(){return h})),n.d(r,"ALIASED_LINE_WIDTH_RANGE",(function(){return l})),n.d(r,"ALIASED_POINT_SIZE_RANGE",(function(){return d})),n.d(r,"ALPHA",(function(){return m})),n.d(r,"ALPHA_BITS",(function(){return _})),n.d(r,"ALWAYS",(function(){return p})),n.d(r,"ARRAY_BUFFER",(function(){return g})),n.d(r,"ARRAY_BUFFER_BINDING",(function(){return E})),n.d(r,"ATTACHED_SHADERS",(function(){return v})),n.d(r,"BACK",(function(){return T})),n.d(r,"BLEND",(function(){return A})),n.d(r,"BLEND_COLOR",(function(){return M})),n.d(r,"BLEND_DST_ALPHA",(function(){return I})),n.d(r,"BLEND_DST_RGB",(function(){return R})),n.d(r,"BLEND_EQUATION",(function(){return O})),n.d(r,"BLEND_EQUATION_ALPHA",(function(){return L})),n.d(r,"BLEND_EQUATION_RGB",(function(){return S})),n.d(r,"BLEND_SRC_ALPHA",(function(){return y})),n.d(r,"BLEND_SRC_RGB",(function(){return N})),n.d(r,"BLUE_BITS",(function(){return x})),n.d(r,"BOOL",(function(){return C})),n.d(r,"BOOL_VEC2",(function(){return b})),n.d(r,"BOOL_VEC3",(function(){return P})),n.d(r,"BOOL_VEC4",(function(){return w})),n.d(r,"BROWSER_DEFAULT_WEBGL",(function(){return H})),n.d(r,"BUFFER_SIZE",(function(){return D})),n.d(r,"BUFFER_USAGE",(function(){return F})),n.d(r,"BYTE",(function(){return U})),n.d(r,"CCW",(function(){return G})),n.d(r,"CLAMP_TO_EDGE",(function(){return B})),n.d(r,"COLOR_ATTACHMENT0",(function(){return V})),n.d(r,"COLOR_BUFFER_BIT",(function(){return X})),n.d(r,"COLOR_CLEAR_VALUE",(function(){return j})),n.d(r,"COLOR_WRITEMASK",(function(){return k})),n.d(r,"COMPILE_STATUS",(function(){return W})),n.d(r,"COMPRESSED_TEXTURE_FORMATS",(function(){return Y})),n.d(r,"CONSTANT_ALPHA",(function(){return z})),n.d(r,"CONSTANT_COLOR",(function(){return q})),n.d(r,"CONTEXT_LOST_WEBGL",(function(){return Z})),n.d(r,"CULL_FACE",(function(){return K})),n.d(r,"CULL_FACE_MODE",(function(){return Q})),n.d(r,"CURRENT_PROGRAM",(function(){return J})),n.d(r,"CURRENT_VERTEX_ATTRIB",(function(){return $})),n.d(r,"CW",(function(){return tt})),n.d(r,"DECR",(function(){return et})),n.d(r,"DECR_WRAP",(function(){return nt})),n.d(r,"DELETE_STATUS",(function(){return rt})),n.d(r,"DEPTH_ATTACHMENT",(function(){return it})),n.d(r,"DEPTH_BITS",(function(){return at})),n.d(r,"DEPTH_BUFFER_BIT",(function(){return st})),n.d(r,"DEPTH_CLEAR_VALUE",(function(){return ot})),n.d(r,"DEPTH_COMPONENT",(function(){return ut})),n.d(r,"DEPTH_COMPONENT16",(function(){return ct})),n.d(r,"DEPTH_FUNC",(function(){return ft})),n.d(r,"DEPTH_RANGE",(function(){return ht})),n.d(r,"DEPTH_STENCIL",(function(){return lt})),n.d(r,"DEPTH_STENCIL_ATTACHMENT",(function(){return dt})),n.d(r,"DEPTH_TEST",(function(){return mt})),n.d(r,"DEPTH_WRITEMASK",(function(){return _t})),n.d(r,"DITHER",(function(){return pt})),n.d(r,"DONT_CARE",(function(){return gt})),n.d(r,"DST_ALPHA",(function(){return Et})),n.d(r,"DST_COLOR",(function(){return vt})),n.d(r,"DYNAMIC_DRAW",(function(){return Tt})),n.d(r,"ELEMENT_ARRAY_BUFFER",(function(){return At})),n.d(r,"ELEMENT_ARRAY_BUFFER_BINDING",(function(){return Mt})),n.d(r,"EQUAL",(function(){return It})),n.d(r,"FASTEST",(function(){return Rt})),n.d(r,"FLOAT",(function(){return Ot})),n.d(r,"FLOAT_MAT2",(function(){return Lt})),n.d(r,"FLOAT_MAT3",(function(){return St})),n.d(r,"FLOAT_MAT4",(function(){return yt})),n.d(r,"FLOAT_VEC2",(function(){return Nt})),n.d(r,"FLOAT_VEC3",(function(){return xt})),n.d(r,"FLOAT_VEC4",(function(){return Ct})),n.d(r,"FRAGMENT_SHADER",(function(){return bt})),n.d(r,"FRAMEBUFFER",(function(){return Pt})),n.d(r,"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",(function(){return wt})),n.d(r,"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",(function(){return Ht})),n.d(r,"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",(function(){return Dt})),n.d(r,"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",(function(){return Ft})),n.d(r,"FRAMEBUFFER_BINDING",(function(){return Ut})),n.d(r,"FRAMEBUFFER_COMPLETE",(function(){return Gt})),n.d(r,"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",(function(){return Bt})),n.d(r,"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",(function(){return Vt})),n.d(r,"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",(function(){return Xt})),n.d(r,"FRAMEBUFFER_UNSUPPORTED",(function(){return jt})),n.d(r,"FRONT",(function(){return kt})),n.d(r,"FRONT_AND_BACK",(function(){return Wt})),n.d(r,"FRONT_FACE",(function(){return Yt})),n.d(r,"FUNC_ADD",(function(){return zt})),n.d(r,"FUNC_REVERSE_SUBTRACT",(function(){return qt})),n.d(r,"FUNC_SUBTRACT",(function(){return Zt})),n.d(r,"GENERATE_MIPMAP_HINT",(function(){return Kt})),n.d(r,"GEQUAL",(function(){return Qt})),n.d(r,"GREATER",(function(){return Jt})),n.d(r,"GREEN_BITS",(function(){return $t})),n.d(r,"HIGH_FLOAT",(function(){return te})),n.d(r,"HIGH_INT",(function(){return ee})),n.d(r,"INCR",(function(){return ne})),n.d(r,"INCR_WRAP",(function(){return re})),n.d(r,"INFO_LOG_LENGTH",(function(){return ie})),n.d(r,"INT",(function(){return ae})),n.d(r,"INT_VEC2",(function(){return se})),n.d(r,"INT_VEC3",(function(){return oe})),n.d(r,"INT_VEC4",(function(){return ue})),n.d(r,"INVALID_ENUM",(function(){return ce})),n.d(r,"INVALID_FRAMEBUFFER_OPERATION",(function(){return fe})),n.d(r,"INVALID_OPERATION",(function(){return he})),n.d(r,"INVALID_VALUE",(function(){return le})),n.d(r,"INVERT",(function(){return de})),n.d(r,"KEEP",(function(){return me})),n.d(r,"LEQUAL",(function(){return _e})),n.d(r,"LESS",(function(){return pe})),n.d(r,"LINEAR",(function(){return ge})),n.d(r,"LINEAR_MIPMAP_LINEAR",(function(){return Ee})),n.d(r,"LINEAR_MIPMAP_NEAREST",(function(){return ve})),n.d(r,"LINES",(function(){return Te})),n.d(r,"LINE_LOOP",(function(){return Ae})),n.d(r,"LINE_STRIP",(function(){return Me})),n.d(r,"LINE_WIDTH",(function(){return Ie})),n.d(r,"LINK_STATUS",(function(){return Re})),n.d(r,"LOW_FLOAT",(function(){return Oe})),n.d(r,"LOW_INT",(function(){return Le})),n.d(r,"LUMINANCE",(function(){return Se})),n.d(r,"LUMINANCE_ALPHA",(function(){return ye})),n.d(r,"MAX_COMBINED_TEXTURE_IMAGE_UNITS",(function(){return Ne})),n.d(r,"MAX_CUBE_MAP_TEXTURE_SIZE",(function(){return xe})),n.d(r,"MAX_FRAGMENT_UNIFORM_VECTORS",(function(){return Ce})),n.d(r,"MAX_RENDERBUFFER_SIZE",(function(){return be})),n.d(r,"MAX_TEXTURE_IMAGE_UNITS",(function(){return Pe})),n.d(r,"MAX_TEXTURE_SIZE",(function(){return we})),n.d(r,"MAX_VARYING_VECTORS",(function(){return He})),n.d(r,"MAX_VERTEX_ATTRIBS",(function(){return De})),n.d(r,"MAX_VERTEX_TEXTURE_IMAGE_UNITS",(function(){return Fe})),n.d(r,"MAX_VERTEX_UNIFORM_VECTORS",(function(){return Ue})),n.d(r,"MAX_VIEWPORT_DIMS",(function(){return Ge})),n.d(r,"MEDIUM_FLOAT",(function(){return Be})),n.d(r,"MEDIUM_INT",(function(){return Ve})),n.d(r,"MIRRORED_REPEAT",(function(){return Xe})),n.d(r,"NEAREST",(function(){return je})),n.d(r,"NEAREST_MIPMAP_LINEAR",(function(){return ke})),n.d(r,"NEAREST_MIPMAP_NEAREST",(function(){return We})),n.d(r,"NEVER",(function(){return Ye})),n.d(r,"NICEST",(function(){return ze})),n.d(r,"NONE",(function(){return qe})),n.d(r,"NOTEQUAL",(function(){return Ze})),n.d(r,"NO_ERROR",(function(){return Ke})),n.d(r,"NUM_COMPRESSED_TEXTURE_FORMATS",(function(){return Qe})),n.d(r,"ONE",(function(){return Je})),n.d(r,"ONE_MINUS_CONSTANT_ALPHA",(function(){return $e})),n.d(r,"ONE_MINUS_CONSTANT_COLOR",(function(){return tn})),n.d(r,"ONE_MINUS_DST_ALPHA",(function(){return en})),n.d(r,"ONE_MINUS_DST_COLOR",(function(){return nn})),n.d(r,"ONE_MINUS_SRC_ALPHA",(function(){return rn})),n.d(r,"ONE_MINUS_SRC_COLOR",(function(){return an})),n.d(r,"OUT_OF_MEMORY",(function(){return sn})),n.d(r,"PACK_ALIGNMENT",(function(){return on})),n.d(r,"POINTS",(function(){return un})),n.d(r,"POLYGON_OFFSET_FACTOR",(function(){return cn})),n.d(r,"POLYGON_OFFSET_FILL",(function(){return fn})),n.d(r,"POLYGON_OFFSET_UNITS",(function(){return hn})),n.d(r,"RED_BITS",(function(){return ln})),n.d(r,"RENDERBUFFER",(function(){return dn})),n.d(r,"RENDERBUFFER_ALPHA_SIZE",(function(){return mn})),n.d(r,"RENDERBUFFER_BINDING",(function(){return _n})),n.d(r,"RENDERBUFFER_BLUE_SIZE",(function(){return pn})),n.d(r,"RENDERBUFFER_DEPTH_SIZE",(function(){return gn})),n.d(r,"RENDERBUFFER_GREEN_SIZE",(function(){return En})),n.d(r,"RENDERBUFFER_HEIGHT",(function(){return vn})),n.d(r,"RENDERBUFFER_INTERNAL_FORMAT",(function(){return Tn})),n.d(r,"RENDERBUFFER_RED_SIZE",(function(){return An})),n.d(r,"RENDERBUFFER_STENCIL_SIZE",(function(){return Mn})),n.d(r,"RENDERBUFFER_WIDTH",(function(){return In})),n.d(r,"RENDERER",(function(){return Rn})),n.d(r,"REPEAT",(function(){return On})),n.d(r,"REPLACE",(function(){return Ln})),n.d(r,"RGB",(function(){return Sn})),n.d(r,"RGB5_A1",(function(){return yn})),n.d(r,"RGB565",(function(){return Nn})),n.d(r,"RGBA",(function(){return xn})),n.d(r,"RGBA4",(function(){return Cn})),n.d(r,"SAMPLER_2D",(function(){return bn})),n.d(r,"SAMPLER_CUBE",(function(){return Pn})),n.d(r,"SAMPLES",(function(){return wn})),n.d(r,"SAMPLE_ALPHA_TO_COVERAGE",(function(){return Hn})),n.d(r,"SAMPLE_BUFFERS",(function(){return Dn})),n.d(r,"SAMPLE_COVERAGE",(function(){return Fn})),n.d(r,"SAMPLE_COVERAGE_INVERT",(function(){return Un})),n.d(r,"SAMPLE_COVERAGE_VALUE",(function(){return Gn})),n.d(r,"SCISSOR_BOX",(function(){return Bn})),n.d(r,"SCISSOR_TEST",(function(){return Vn})),n.d(r,"SHADER_COMPILER",(function(){return Xn})),n.d(r,"SHADER_SOURCE_LENGTH",(function(){return jn})),n.d(r,"SHADER_TYPE",(function(){return kn})),n.d(r,"SHADING_LANGUAGE_VERSION",(function(){return Wn})),n.d(r,"SHORT",(function(){return Yn})),n.d(r,"SRC_ALPHA",(function(){return zn})),n.d(r,"SRC_ALPHA_SATURATE",(function(){return qn})),n.d(r,"SRC_COLOR",(function(){return Zn})),n.d(r,"STATIC_DRAW",(function(){return Kn})),n.d(r,"STENCIL_ATTACHMENT",(function(){return Qn})),n.d(r,"STENCIL_BACK_FAIL",(function(){return Jn})),n.d(r,"STENCIL_BACK_FUNC",(function(){return $n})),n.d(r,"STENCIL_BACK_PASS_DEPTH_FAIL",(function(){return tr})),n.d(r,"STENCIL_BACK_PASS_DEPTH_PASS",(function(){return er})),n.d(r,"STENCIL_BACK_REF",(function(){return nr})),n.d(r,"STENCIL_BACK_VALUE_MASK",(function(){return rr})),n.d(r,"STENCIL_BACK_WRITEMASK",(function(){return ir})),n.d(r,"STENCIL_BITS",(function(){return ar})),n.d(r,"STENCIL_BUFFER_BIT",(function(){return sr})),n.d(r,"STENCIL_CLEAR_VALUE",(function(){return or})),n.d(r,"STENCIL_FAIL",(function(){return ur})),n.d(r,"STENCIL_FUNC",(function(){return cr})),n.d(r,"STENCIL_INDEX",(function(){return fr})),n.d(r,"STENCIL_INDEX8",(function(){return hr})),n.d(r,"STENCIL_PASS_DEPTH_FAIL",(function(){return lr})),n.d(r,"STENCIL_PASS_DEPTH_PASS",(function(){return dr})),n.d(r,"STENCIL_REF",(function(){return mr})),n.d(r,"STENCIL_TEST",(function(){return _r})),n.d(r,"STENCIL_VALUE_MASK",(function(){return pr})),n.d(r,"STENCIL_WRITEMASK",(function(){return gr})),n.d(r,"STREAM_DRAW",(function(){return Er})),n.d(r,"SUBPIXEL_BITS",(function(){return vr})),n.d(r,"TEXTURE",(function(){return Tr})),n.d(r,"TEXTURE0",(function(){return Ar})),n.d(r,"TEXTURE1",(function(){return Mr})),n.d(r,"TEXTURE2",(function(){return Ir})),n.d(r,"TEXTURE3",(function(){return Rr})),n.d(r,"TEXTURE4",(function(){return Or})),n.d(r,"TEXTURE5",(function(){return Lr})),n.d(r,"TEXTURE6",(function(){return Sr})),n.d(r,"TEXTURE7",(function(){return yr})),n.d(r,"TEXTURE8",(function(){return Nr})),n.d(r,"TEXTURE9",(function(){return xr})),n.d(r,"TEXTURE10",(function(){return Cr})),n.d(r,"TEXTURE11",(function(){return br})),n.d(r,"TEXTURE12",(function(){return Pr})),n.d(r,"TEXTURE13",(function(){return wr})),n.d(r,"TEXTURE14",(function(){return Hr})),n.d(r,"TEXTURE15",(function(){return Dr})),n.d(r,"TEXTURE16",(function(){return Fr})),n.d(r,"TEXTURE17",(function(){return Ur})),n.d(r,"TEXTURE18",(function(){return Gr})),n.d(r,"TEXTURE19",(function(){return Br})),n.d(r,"TEXTURE20",(function(){return Vr})),n.d(r,"TEXTURE21",(function(){return Xr})),n.d(r,"TEXTURE22",(function(){return jr})),n.d(r,"TEXTURE23",(function(){return kr})),n.d(r,"TEXTURE24",(function(){return Wr})),n.d(r,"TEXTURE25",(function(){return Yr})),n.d(r,"TEXTURE26",(function(){return zr})),n.d(r,"TEXTURE27",(function(){return qr})),n.d(r,"TEXTURE28",(function(){return Zr})),n.d(r,"TEXTURE29",(function(){return Kr})),n.d(r,"TEXTURE30",(function(){return Qr})),n.d(r,"TEXTURE31",(function(){return Jr})),n.d(r,"TEXTURE_2D",(function(){return $r})),n.d(r,"TEXTURE_BINDING_2D",(function(){return ti})),n.d(r,"TEXTURE_BINDING_CUBE_MAP",(function(){return ei})),n.d(r,"TEXTURE_CUBE_MAP",(function(){return ni})),n.d(r,"TEXTURE_CUBE_MAP_NEGATIVE_X",(function(){return ri})),n.d(r,"TEXTURE_CUBE_MAP_NEGATIVE_Y",(function(){return ii})),n.d(r,"TEXTURE_CUBE_MAP_NEGATIVE_Z",(function(){return ai})),n.d(r,"TEXTURE_CUBE_MAP_POSITIVE_X",(function(){return si})),n.d(r,"TEXTURE_CUBE_MAP_POSITIVE_Y",(function(){return oi})),n.d(r,"TEXTURE_CUBE_MAP_POSITIVE_Z",(function(){return ui})),n.d(r,"TEXTURE_MAG_FILTER",(function(){return ci})),n.d(r,"TEXTURE_MIN_FILTER",(function(){return fi})),n.d(r,"TEXTURE_WRAP_S",(function(){return hi})),n.d(r,"TEXTURE_WRAP_T",(function(){return li})),n.d(r,"TRIANGLES",(function(){return di})),n.d(r,"TRIANGLE_FAN",(function(){return mi})),n.d(r,"TRIANGLE_STRIP",(function(){return _i})),n.d(r,"UNPACK_ALIGNMENT",(function(){return pi})),n.d(r,"UNPACK_COLORSPACE_CONVERSION_WEBGL",(function(){return gi})),n.d(r,"UNPACK_FLIP_Y_WEBGL",(function(){return Ei})),n.d(r,"UNPACK_PREMULTIPLY_ALPHA_WEBGL",(function(){return vi})),n.d(r,"UNSIGNED_BYTE",(function(){return Ti})),n.d(r,"UNSIGNED_INT",(function(){return Ai})),n.d(r,"UNSIGNED_SHORT",(function(){return Mi})),n.d(r,"UNSIGNED_SHORT_4_4_4_4",(function(){return Ii})),n.d(r,"UNSIGNED_SHORT_5_5_5_1",(function(){return Ri})),n.d(r,"UNSIGNED_SHORT_5_6_5",(function(){return Oi})),n.d(r,"VALIDATE_STATUS",(function(){return Li})),n.d(r,"VENDOR",(function(){return Si})),n.d(r,"VERSION",(function(){return yi})),n.d(r,"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",(function(){return Ni})),n.d(r,"VERTEX_ATTRIB_ARRAY_ENABLED",(function(){return xi})),n.d(r,"VERTEX_ATTRIB_ARRAY_NORMALIZED",(function(){return Ci})),n.d(r,"VERTEX_ATTRIB_ARRAY_POINTER",(function(){return bi})),n.d(r,"VERTEX_ATTRIB_ARRAY_SIZE",(function(){return Pi})),n.d(r,"VERTEX_ATTRIB_ARRAY_STRIDE",(function(){return wi})),n.d(r,"VERTEX_ATTRIB_ARRAY_TYPE",(function(){return Hi})),n.d(r,"VERTEX_SHADER",(function(){return Di})),n.d(r,"VIEWPORT",(function(){return Fi})),n.d(r,"ZERO",(function(){return Ui}));var i={};n.r(i),n.d(i,"READ_BUFFER",(function(){return Gi})),n.d(i,"UNPACK_ROW_LENGTH",(function(){return Bi})),n.d(i,"UNPACK_SKIP_ROWS",(function(){return Vi})),n.d(i,"UNPACK_SKIP_PIXELS",(function(){return Xi})),n.d(i,"PACK_ROW_LENGTH",(function(){return ji})),n.d(i,"PACK_SKIP_ROWS",(function(){return ki})),n.d(i,"PACK_SKIP_PIXELS",(function(){return Wi})),n.d(i,"TEXTURE_BINDING_3D",(function(){return Yi})),n.d(i,"UNPACK_SKIP_IMAGES",(function(){return zi})),n.d(i,"UNPACK_IMAGE_HEIGHT",(function(){return qi})),n.d(i,"MAX_3D_TEXTURE_SIZE",(function(){return Zi})),n.d(i,"MAX_ELEMENTS_VERTICES",(function(){return Ki})),n.d(i,"MAX_ELEMENTS_INDICES",(function(){return Qi})),n.d(i,"MAX_TEXTURE_LOD_BIAS",(function(){return Ji})),n.d(i,"MAX_FRAGMENT_UNIFORM_COMPONENTS",(function(){return $i})),n.d(i,"MAX_VERTEX_UNIFORM_COMPONENTS",(function(){return ta})),n.d(i,"MAX_ARRAY_TEXTURE_LAYERS",(function(){return ea})),n.d(i,"MIN_PROGRAM_TEXEL_OFFSET",(function(){return na})),n.d(i,"MAX_PROGRAM_TEXEL_OFFSET",(function(){return ra})),n.d(i,"MAX_VARYING_COMPONENTS",(function(){return ia})),n.d(i,"FRAGMENT_SHADER_DERIVATIVE_HINT",(function(){return aa})),n.d(i,"RASTERIZER_DISCARD",(function(){return sa})),n.d(i,"VERTEX_ARRAY_BINDING",(function(){return oa})),n.d(i,"MAX_VERTEX_OUTPUT_COMPONENTS",(function(){return ua})),n.d(i,"MAX_FRAGMENT_INPUT_COMPONENTS",(function(){return ca})),n.d(i,"MAX_SERVER_WAIT_TIMEOUT",(function(){return fa})),n.d(i,"MAX_ELEMENT_INDEX",(function(){return ha})),n.d(i,"RED",(function(){return la})),n.d(i,"RGB8",(function(){return da})),n.d(i,"RGBA8",(function(){return ma})),n.d(i,"RGB10_A2",(function(){return _a})),n.d(i,"TEXTURE_3D",(function(){return pa})),n.d(i,"TEXTURE_WRAP_R",(function(){return ga})),n.d(i,"TEXTURE_MIN_LOD",(function(){return Ea})),n.d(i,"TEXTURE_MAX_LOD",(function(){return va})),n.d(i,"TEXTURE_BASE_LEVEL",(function(){return Ta})),n.d(i,"TEXTURE_MAX_LEVEL",(function(){return Aa})),n.d(i,"TEXTURE_COMPARE_MODE",(function(){return Ma})),n.d(i,"TEXTURE_COMPARE_FUNC",(function(){return Ia})),n.d(i,"SRGB",(function(){return Ra})),n.d(i,"SRGB8",(function(){return Oa})),n.d(i,"SRGB8_ALPHA8",(function(){return La})),n.d(i,"COMPARE_REF_TO_TEXTURE",(function(){return Sa})),n.d(i,"RGBA32F",(function(){return ya})),n.d(i,"RGB32F",(function(){return Na})),n.d(i,"RGBA16F",(function(){return xa})),n.d(i,"RGB16F",(function(){return Ca})),n.d(i,"TEXTURE_2D_ARRAY",(function(){return ba})),n.d(i,"TEXTURE_BINDING_2D_ARRAY",(function(){return Pa})),n.d(i,"R11F_G11F_B10F",(function(){return wa})),n.d(i,"RGB9_E5",(function(){return Ha})),n.d(i,"RGBA32UI",(function(){return Da})),n.d(i,"RGB32UI",(function(){return Fa})),n.d(i,"RGBA16UI",(function(){return Ua})),n.d(i,"RGB16UI",(function(){return Ga})),n.d(i,"RGBA8UI",(function(){return Ba})),n.d(i,"RGB8UI",(function(){return Va})),n.d(i,"RGBA32I",(function(){return Xa})),n.d(i,"RGB32I",(function(){return ja})),n.d(i,"RGBA16I",(function(){return ka})),n.d(i,"RGB16I",(function(){return Wa})),n.d(i,"RGBA8I",(function(){return Ya})),n.d(i,"RGB8I",(function(){return za})),n.d(i,"RED_INTEGER",(function(){return qa})),n.d(i,"RGB_INTEGER",(function(){return Za})),n.d(i,"RGBA_INTEGER",(function(){return Ka})),n.d(i,"R8",(function(){return Qa})),n.d(i,"RG8",(function(){return Ja})),n.d(i,"R16F",(function(){return $a})),n.d(i,"R32F",(function(){return ts})),n.d(i,"RG16F",(function(){return es})),n.d(i,"RG32F",(function(){return ns})),n.d(i,"R8I",(function(){return rs})),n.d(i,"R8UI",(function(){return is})),n.d(i,"R16I",(function(){return as})),n.d(i,"R16UI",(function(){return ss})),n.d(i,"R32I",(function(){return os})),n.d(i,"R32UI",(function(){return us})),n.d(i,"RG8I",(function(){return cs})),n.d(i,"RG8UI",(function(){return fs})),n.d(i,"RG16I",(function(){return hs})),n.d(i,"RG16UI",(function(){return ls})),n.d(i,"RG32I",(function(){return ds})),n.d(i,"RG32UI",(function(){return ms})),n.d(i,"R8_SNORM",(function(){return _s})),n.d(i,"RG8_SNORM",(function(){return ps})),n.d(i,"RGB8_SNORM",(function(){return gs})),n.d(i,"RGBA8_SNORM",(function(){return Es})),n.d(i,"RGB10_A2UI",(function(){return vs})),n.d(i,"TEXTURE_IMMUTABLE_FORMAT",(function(){return Ts})),n.d(i,"TEXTURE_IMMUTABLE_LEVELS",(function(){return As})),n.d(i,"UNSIGNED_INT_2_10_10_10_REV",(function(){return Ms})),n.d(i,"UNSIGNED_INT_10F_11F_11F_REV",(function(){return Is})),n.d(i,"UNSIGNED_INT_5_9_9_9_REV",(function(){return Rs})),n.d(i,"FLOAT_32_UNSIGNED_INT_24_8_REV",(function(){return Os})),n.d(i,"UNSIGNED_INT_24_8",(function(){return Ls})),n.d(i,"HALF_FLOAT",(function(){return Ss})),n.d(i,"RG",(function(){return ys})),n.d(i,"RG_INTEGER",(function(){return Ns})),n.d(i,"INT_2_10_10_10_REV",(function(){return xs})),n.d(i,"URRENT_QUERY",(function(){return Cs})),n.d(i,"QUERY_RESULT",(function(){return bs})),n.d(i,"QUERY_RESULT_AVAILABLE",(function(){return Ps})),n.d(i,"ANY_SAMPLES_PASSED",(function(){return ws})),n.d(i,"ANY_SAMPLES_PASSED_CONSERVATIVE",(function(){return Hs})),n.d(i,"MAX_DRAW_BUFFERS",(function(){return Ds})),n.d(i,"DRAW_BUFFER0",(function(){return Fs})),n.d(i,"DRAW_BUFFER1",(function(){return Us})),n.d(i,"DRAW_BUFFER2",(function(){return Gs})),n.d(i,"DRAW_BUFFER3",(function(){return Bs})),n.d(i,"DRAW_BUFFER4",(function(){return Vs})),n.d(i,"DRAW_BUFFER5",(function(){return Xs})),n.d(i,"DRAW_BUFFER6",(function(){return js})),n.d(i,"DRAW_BUFFER7",(function(){return ks})),n.d(i,"DRAW_BUFFER8",(function(){return Ws})),n.d(i,"DRAW_BUFFER9",(function(){return Ys})),n.d(i,"DRAW_BUFFER10",(function(){return zs})),n.d(i,"DRAW_BUFFER11",(function(){return qs})),n.d(i,"DRAW_BUFFER12",(function(){return Zs})),n.d(i,"DRAW_BUFFER13",(function(){return Ks})),n.d(i,"DRAW_BUFFER14",(function(){return Qs})),n.d(i,"DRAW_BUFFER15",(function(){return Js})),n.d(i,"MAX_COLOR_ATTACHMENTS",(function(){return $s})),n.d(i,"COLOR_ATTACHMENT1",(function(){return to})),n.d(i,"COLOR_ATTACHMENT2",(function(){return eo})),n.d(i,"COLOR_ATTACHMENT3",(function(){return no})),n.d(i,"COLOR_ATTACHMENT4",(function(){return ro})),n.d(i,"COLOR_ATTACHMENT5",(function(){return io})),n.d(i,"COLOR_ATTACHMENT6",(function(){return ao})),n.d(i,"COLOR_ATTACHMENT7",(function(){return so})),n.d(i,"COLOR_ATTACHMENT8",(function(){return oo})),n.d(i,"COLOR_ATTACHMENT9",(function(){return uo})),n.d(i,"COLOR_ATTACHMENT10",(function(){return co})),n.d(i,"COLOR_ATTACHMENT11",(function(){return fo})),n.d(i,"COLOR_ATTACHMENT12",(function(){return ho})),n.d(i,"COLOR_ATTACHMENT13",(function(){return lo})),n.d(i,"COLOR_ATTACHMENT14",(function(){return mo})),n.d(i,"COLOR_ATTACHMENT15",(function(){return _o})),n.d(i,"SAMPLER_3D",(function(){return po})),n.d(i,"SAMPLER_2D_SHADOW",(function(){return go})),n.d(i,"SAMPLER_2D_ARRAY",(function(){return Eo})),n.d(i,"SAMPLER_2D_ARRAY_SHADOW",(function(){return vo})),n.d(i,"SAMPLER_CUBE_SHADOW",(function(){return To})),n.d(i,"INT_SAMPLER_2D",(function(){return Ao})),n.d(i,"INT_SAMPLER_3D",(function(){return Mo})),n.d(i,"INT_SAMPLER_CUBE",(function(){return Io})),n.d(i,"INT_SAMPLER_2D_ARRAY",(function(){return Ro})),n.d(i,"UNSIGNED_INT_SAMPLER_2D",(function(){return Oo})),n.d(i,"UNSIGNED_INT_SAMPLER_3D",(function(){return Lo})),n.d(i,"UNSIGNED_INT_SAMPLER_CUBE",(function(){return So})),n.d(i,"UNSIGNED_INT_SAMPLER_2D_ARRAY",(function(){return yo})),n.d(i,"MAX_SAMPLES",(function(){return No})),n.d(i,"SAMPLER_BINDING",(function(){return xo})),n.d(i,"PIXEL_PACK_BUFFER",(function(){return Co})),n.d(i,"PIXEL_UNPACK_BUFFER",(function(){return bo})),n.d(i,"PIXEL_PACK_BUFFER_BINDING",(function(){return Po})),n.d(i,"PIXEL_UNPACK_BUFFER_BINDING",(function(){return wo})),n.d(i,"COPY_READ_BUFFER",(function(){return Ho})),n.d(i,"COPY_WRITE_BUFFER",(function(){return Do})),n.d(i,"COPY_READ_BUFFER_BINDING",(function(){return Fo})),n.d(i,"COPY_WRITE_BUFFER_BINDING",(function(){return Uo})),n.d(i,"FLOAT_MAT2x3",(function(){return Go})),n.d(i,"FLOAT_MAT2x4",(function(){return Bo})),n.d(i,"FLOAT_MAT3x2",(function(){return Vo})),n.d(i,"FLOAT_MAT3x4",(function(){return Xo})),n.d(i,"FLOAT_MAT4x2",(function(){return jo})),n.d(i,"FLOAT_MAT4x3",(function(){return ko})),n.d(i,"UNSIGNED_INT_VEC2",(function(){return Wo})),n.d(i,"UNSIGNED_INT_VEC3",(function(){return Yo})),n.d(i,"UNSIGNED_INT_VEC4",(function(){return zo})),n.d(i,"UNSIGNED_NORMALIZED",(function(){return qo})),n.d(i,"SIGNED_NORMALIZED",(function(){return Zo})),n.d(i,"VERTEX_ATTRIB_ARRAY_INTEGER",(function(){return Ko})),n.d(i,"VERTEX_ATTRIB_ARRAY_DIVISOR",(function(){return Qo})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_MODE",(function(){return Jo})),n.d(i,"MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",(function(){return $o})),n.d(i,"TRANSFORM_FEEDBACK_VARYINGS",(function(){return tu})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_START",(function(){return eu})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_SIZE",(function(){return nu})),n.d(i,"TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",(function(){return ru})),n.d(i,"MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",(function(){return iu})),n.d(i,"MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",(function(){return au})),n.d(i,"INTERLEAVED_ATTRIBS",(function(){return su})),n.d(i,"SEPARATE_ATTRIBS",(function(){return ou})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER",(function(){return uu})),n.d(i,"TRANSFORM_FEEDBACK_BUFFER_BINDING",(function(){return cu})),n.d(i,"TRANSFORM_FEEDBACK",(function(){return fu})),n.d(i,"TRANSFORM_FEEDBACK_PAUSED",(function(){return hu})),n.d(i,"TRANSFORM_FEEDBACK_ACTIVE",(function(){return lu})),n.d(i,"TRANSFORM_FEEDBACK_BINDING",(function(){return du})),n.d(i,"FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",(function(){return mu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",(function(){return _u})),n.d(i,"FRAMEBUFFER_ATTACHMENT_RED_SIZE",(function(){return pu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",(function(){return gu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",(function(){return Eu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",(function(){return vu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",(function(){return Tu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",(function(){return Au})),n.d(i,"FRAMEBUFFER_DEFAULT",(function(){return Mu})),n.d(i,"DEPTH_STENCIL_ATTACHMENT",(function(){return Iu})),n.d(i,"DEPTH_STENCIL",(function(){return Ru})),n.d(i,"DEPTH24_STENCIL8",(function(){return Ou})),n.d(i,"DRAW_FRAMEBUFFER_BINDING",(function(){return Lu})),n.d(i,"READ_FRAMEBUFFER",(function(){return Su})),n.d(i,"DRAW_FRAMEBUFFER",(function(){return yu})),n.d(i,"READ_FRAMEBUFFER_BINDING",(function(){return Nu})),n.d(i,"RENDERBUFFER_SAMPLES",(function(){return xu})),n.d(i,"FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",(function(){return Cu})),n.d(i,"FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",(function(){return bu})),n.d(i,"UNIFORM_BUFFER",(function(){return Pu})),n.d(i,"UNIFORM_BUFFER_BINDING",(function(){return wu})),n.d(i,"UNIFORM_BUFFER_START",(function(){return Hu})),n.d(i,"UNIFORM_BUFFER_SIZE",(function(){return Du})),n.d(i,"MAX_VERTEX_UNIFORM_BLOCKS",(function(){return Fu})),n.d(i,"MAX_FRAGMENT_UNIFORM_BLOCKS",(function(){return Uu})),n.d(i,"MAX_COMBINED_UNIFORM_BLOCKS",(function(){return Gu})),n.d(i,"MAX_UNIFORM_BUFFER_BINDINGS",(function(){return Bu})),n.d(i,"MAX_UNIFORM_BLOCK_SIZE",(function(){return Vu})),n.d(i,"MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",(function(){return Xu})),n.d(i,"MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",(function(){return ju})),n.d(i,"UNIFORM_BUFFER_OFFSET_ALIGNMENT",(function(){return ku})),n.d(i,"ACTIVE_UNIFORM_BLOCKS",(function(){return Wu})),n.d(i,"UNIFORM_TYPE",(function(){return Yu})),n.d(i,"UNIFORM_SIZE",(function(){return zu})),n.d(i,"UNIFORM_BLOCK_INDEX",(function(){return qu})),n.d(i,"UNIFORM_OFFSET",(function(){return Zu})),n.d(i,"UNIFORM_ARRAY_STRIDE",(function(){return Ku})),n.d(i,"UNIFORM_MATRIX_STRIDE",(function(){return Qu})),n.d(i,"UNIFORM_IS_ROW_MAJOR",(function(){return Ju})),n.d(i,"UNIFORM_BLOCK_BINDING",(function(){return $u})),n.d(i,"UNIFORM_BLOCK_DATA_SIZE",(function(){return tc})),n.d(i,"UNIFORM_BLOCK_ACTIVE_UNIFORMS",(function(){return ec})),n.d(i,"UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",(function(){return nc})),n.d(i,"UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",(function(){return rc})),n.d(i,"UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",(function(){return ic})),n.d(i,"OBJECT_TYPE",(function(){return ac})),n.d(i,"SYNC_CONDITION",(function(){return sc})),n.d(i,"SYNC_STATUS",(function(){return oc})),n.d(i,"SYNC_FLAGS",(function(){return uc})),n.d(i,"SYNC_FENCE",(function(){return cc})),n.d(i,"SYNC_GPU_COMMANDS_COMPLETE",(function(){return fc})),n.d(i,"UNSIGNALED",(function(){return hc})),n.d(i,"SIGNALED",(function(){return lc})),n.d(i,"ALREADY_SIGNALED",(function(){return dc})),n.d(i,"TIMEOUT_EXPIRED",(function(){return mc})),n.d(i,"CONDITION_SATISFIED",(function(){return _c})),n.d(i,"WAIT_FAILED",(function(){return pc})),n.d(i,"SYNC_FLUSH_COMMANDS_BIT",(function(){return gc})),n.d(i,"COLOR",(function(){return Ec})),n.d(i,"DEPTH",(function(){return vc})),n.d(i,"STENCIL",(function(){return Tc})),n.d(i,"MIN",(function(){return Ac})),n.d(i,"MAX",(function(){return Mc})),n.d(i,"DEPTH_COMPONENT24",(function(){return Ic})),n.d(i,"STREAM_READ",(function(){return Rc})),n.d(i,"STREAM_COPY",(function(){return Oc})),n.d(i,"STATIC_READ",(function(){return Lc})),n.d(i,"STATIC_COPY",(function(){return Sc})),n.d(i,"DYNAMIC_READ",(function(){return yc})),n.d(i,"DYNAMIC_COPY",(function(){return Nc})),n.d(i,"DEPTH_COMPONENT32F",(function(){return xc})),n.d(i,"DEPTH32F_STENCIL8",(function(){return Cc})),n.d(i,"INVALID_INDEX",(function(){return bc})),n.d(i,"TIMEOUT_IGNO",(function(){return Pc})),n.d(i,"MAX_CLIENT_WAIT_TIMEOUT_WEBGL",(function(){return wc}));var a={};n.r(a),n.d(a,"VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",(function(){return Hc})),n.d(a,"UNMASKED_VENDOR_WEBGL",(function(){return Dc})),n.d(a,"UNMASKED_RENDERER_WEBGL",(function(){return Fc})),n.d(a,"MAX_TEXTURE_MAX_ANISOTROPY_EXT",(function(){return Uc})),n.d(a,"TEXTURE_MAX_ANISOTROPY_EXT",(function(){return Gc})),n.d(a,"COMPRESSED_RGB_S3TC_DXT1_EXT",(function(){return Bc})),n.d(a,"COMPRESSED_RGBA_S3TC_DXT1_EXT",(function(){return Vc})),n.d(a,"COMPRESSED_RGBA_S3TC_DXT3_EXT",(function(){return Xc})),n.d(a,"COMPRESSED_RGBA_S3TC_DXT5_EXT",(function(){return jc})),n.d(a,"COMPRESSED_R11_EAC",(function(){return kc})),n.d(a,"COMPRESSED_SIGNED_R11_EAC",(function(){return Wc})),n.d(a,"COMPRESSED_RG11_EAC",(function(){return Yc})),n.d(a,"COMPRESSED_SIGNED_RG11_EAC",(function(){return zc})),n.d(a,"COMPRESSED_RGB8_ETC2",(function(){return qc})),n.d(a,"COMPRESSED_RGBA8_ETC2_EAC",(function(){return Zc})),n.d(a,"COMPRESSED_SRGB8_ETC2",(function(){return Kc})),n.d(a,"COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",(function(){return Qc})),n.d(a,"COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",(function(){return Jc})),n.d(a,"COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",(function(){return $c})),n.d(a,"COMPRESSED_RGB_PVRTC_4BPPV1_IMG",(function(){return tf})),n.d(a,"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",(function(){return ef})),n.d(a,"COMPRESSED_RGB_PVRTC_2BPPV1_IMG",(function(){return nf})),n.d(a,"COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",(function(){return rf})),n.d(a,"COMPRESSED_RGB_ETC1_WEBGL",(function(){return af})),n.d(a,"_WEBGL",(function(){return sf})),n.d(a,"COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",(function(){return of})),n.d(a,"COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",(function(){return uf})),n.d(a,"UNSIGNED_INT_24_8_WEBGL",(function(){return cf})),n.d(a,"HALF_FLOAT_OES",(function(){return ff})),n.d(a,"RGBA32F_EXT",(function(){return hf})),n.d(a,"RGB32F_EXT",(function(){return lf})),n.d(a,"FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",(function(){return df})),n.d(a,"UNSIGNED_NORMALIZED_EXT",(function(){return mf})),n.d(a,"MIN_EXT",(function(){return _f})),n.d(a,"MAX_EXT",(function(){return pf})),n.d(a,"SRGB_EXT",(function(){return gf})),n.d(a,"SRGB_ALPHA_EXT",(function(){return Ef})),n.d(a,"SRGB8_ALPHA8_EXT",(function(){return vf})),n.d(a,"FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",(function(){return Tf})),n.d(a,"FRAGMENT_SHADER_DERIVATIVE_HINT_OES",(function(){return Af})),n.d(a,"COLOR_ATTACHMENT0_WEBGL",(function(){return Mf})),n.d(a,"COLOR_ATTACHMENT1_WEBGL",(function(){return If})),n.d(a,"COLOR_ATTACHMENT2_WEBGL",(function(){return Rf})),n.d(a,"COLOR_ATTACHMENT3_WEBGL",(function(){return Of})),n.d(a,"COLOR_ATTACHMENT4_WEBGL",(function(){return Lf})),n.d(a,"COLOR_ATTACHMENT5_WEBGL",(function(){return Sf})),n.d(a,"COLOR_ATTACHMENT6_WEBGL",(function(){return yf})),n.d(a,"COLOR_ATTACHMENT7_WEBGL",(function(){return Nf})),n.d(a,"COLOR_ATTACHMENT8_WEBGL",(function(){return xf})),n.d(a,"COLOR_ATTACHMENT9_WEBGL",(function(){return Cf})),n.d(a,"COLOR_ATTACHMENT10_WEBGL",(function(){return bf})),n.d(a,"COLOR_ATTACHMENT11_WEBGL",(function(){return Pf})),n.d(a,"COLOR_ATTACHMENT12_WEBGL",(function(){return wf})),n.d(a,"COLOR_ATTACHMENT13_WEBGL",(function(){return Hf})),n.d(a,"COLOR_ATTACHMENT14_WEBGL",(function(){return Df})),n.d(a,"COLOR_ATTACHMENT15_WEBGL",(function(){return Ff})),n.d(a,"DRAW_BUFFER0_WEBGL",(function(){return Uf})),n.d(a,"DRAW_BUFFER1_WEBGL",(function(){return Gf})),n.d(a,"DRAW_BUFFER2_WEBGL",(function(){return Bf})),n.d(a,"DRAW_BUFFER3_WEBGL",(function(){return Vf})),n.d(a,"DRAW_BUFFER4_WEBGL",(function(){return Xf})),n.d(a,"DRAW_BUFFER5_WEBGL",(function(){return jf})),n.d(a,"DRAW_BUFFER6_WEBGL",(function(){return kf})),n.d(a,"DRAW_BUFFER7_WEBGL",(function(){return Wf})),n.d(a,"DRAW_BUFFER8_WEBGL",(function(){return Yf})),n.d(a,"DRAW_BUFFER9_WEBGL",(function(){return zf})),n.d(a,"DRAW_BUFFER10_WEBGL",(function(){return qf})),n.d(a,"DRAW_BUFFER11_WEBGL",(function(){return Zf})),n.d(a,"DRAW_BUFFER12_WEBGL",(function(){return Kf})),n.d(a,"DRAW_BUFFER13_WEBGL",(function(){return Qf})),n.d(a,"DRAW_BUFFER14_WEBGL",(function(){return Jf})),n.d(a,"DRAW_BUFFER15_WEBGL",(function(){return $f})),n.d(a,"MAX_COLOR_ATTACHMENTS_WEBGL",(function(){return th})),n.d(a,"MAX_DRAW_BUFFERS_WEBGL",(function(){return eh})),n.d(a,"VERTEX_ARRAY_BINDING_OES",(function(){return nh})),n.d(a,"QUERY_COUNTER_BITS_EXT",(function(){return rh})),n.d(a,"CURRENT_QUERY_EXT",(function(){return ih})),n.d(a,"QUERY_RESULT_EXT",(function(){return ah})),n.d(a,"QUERY_RESULT_AVAILABLE_EXT",(function(){return sh})),n.d(a,"TIME_ELAPSED_EXT",(function(){return oh})),n.d(a,"TIMESTAMP_EXT",(function(){return uh})),n.d(a,"GPU_DISJOINT_EXT",(function(){return ch}));var s={};n.r(s),n.d(s,"POSITION",(function(){return fh})),n.d(s,"NORMAL",(function(){return hh})),n.d(s,"DEPTH",(function(){return lh})),n.d(s,"DISTANCE",(function(){return dh}));var o=35721,u=35722,c=34016,f=35718,h=35719,l=33902,d=33901,m=6406,_=3413,p=519,g=34962,E=34964,v=35717,T=1029,A=3042,M=32773,I=32970,R=32968,O=32777,L=34877,S=32777,y=32971,N=32969,x=3412,C=35670,b=35671,P=35672,w=35673,H=37444,D=34660,F=34661,U=5120,G=2305,B=33071,V=36064,X=16384,j=3106,k=3107,W=35713,Y=34467,z=32771,q=32769,Z=37442,K=2884,Q=2885,J=35725,$=34342,tt=2304,et=7683,nt=34056,rt=35712,it=36096,at=3414,st=256,ot=2931,ut=6402,ct=33189,ft=2932,ht=2928,lt=34041,dt=33306,mt=2929,_t=2930,pt=3024,gt=4352,Et=772,vt=774,Tt=35048,At=34963,Mt=34965,It=514,Rt=4353,Ot=5126,Lt=35674,St=35675,yt=35676,Nt=35664,xt=35665,Ct=35666,bt=35632,Pt=36160,wt=36049,Ht=36048,Dt=36051,Ft=36050,Ut=36006,Gt=36053,Bt=36054,Vt=36057,Xt=36055,jt=36061,kt=1028,Wt=1032,Yt=2886,zt=32774,qt=32779,Zt=32778,Kt=33170,Qt=518,Jt=516,$t=3411,te=36338,ee=36341,ne=7682,re=34055,ie=35716,ae=5124,se=35667,oe=35668,ue=35669,ce=1280,fe=1286,he=1282,le=1281,de=5386,me=7680,_e=515,pe=513,ge=9729,Ee=9987,ve=9985,Te=1,Ae=2,Me=3,Ie=2849,Re=35714,Oe=36336,Le=36339,Se=6409,ye=6410,Ne=35661,xe=34076,Ce=36349,be=34024,Pe=34930,we=3379,He=36348,De=34921,Fe=35660,Ue=36347,Ge=3386,Be=36337,Ve=36340,Xe=33648,je=9728,ke=9986,We=9984,Ye=512,ze=4354,qe=0,Ze=517,Ke=0,Qe=34466,Je=1,$e=32772,tn=32770,en=773,nn=775,rn=771,an=769,sn=1285,on=3333,un=0,cn=32824,fn=32823,hn=10752,ln=3410,dn=36161,mn=36179,_n=36007,pn=36178,gn=36180,En=36177,vn=36163,Tn=36164,An=36176,Mn=36181,In=36162,Rn=7937,On=10497,Ln=7681,Sn=6407,yn=32855,Nn=36194,xn=6408,Cn=32854,bn=35678,Pn=35680,wn=32937,Hn=32926,Dn=32936,Fn=32928,Un=32939,Gn=32938,Bn=3088,Vn=3089,Xn=36346,jn=35720,kn=35663,Wn=35724,Yn=5122,zn=770,qn=776,Zn=768,Kn=35044,Qn=36128,Jn=34817,$n=34816,tr=34818,er=34819,nr=36003,rr=36004,ir=36005,ar=3415,sr=1024,or=2961,ur=2964,cr=2962,fr=6401,hr=36168,lr=2965,dr=2966,mr=2967,_r=2960,pr=2963,gr=2968,Er=35040,vr=3408,Tr=5890,Ar=33984,Mr=33985,Ir=33986,Rr=33987,Or=33988,Lr=33989,Sr=33990,yr=33991,Nr=33992,xr=33993,Cr=33994,br=33995,Pr=33996,wr=33997,Hr=33998,Dr=33999,Fr=34e3,Ur=34001,Gr=34002,Br=34003,Vr=34004,Xr=34005,jr=34006,kr=34007,Wr=34008,Yr=34009,zr=34010,qr=34011,Zr=34012,Kr=34013,Qr=34014,Jr=34015,$r=3553,ti=32873,ei=34068,ni=34067,ri=34070,ii=34072,ai=34074,si=34069,oi=34071,ui=34073,ci=10240,fi=10241,hi=10242,li=10243,di=4,mi=6,_i=5,pi=3317,gi=37443,Ei=37440,vi=37441,Ti=5121,Ai=5125,Mi=5123,Ii=32819,Ri=32820,Oi=33635,Li=35715,Si=7936,yi=7938,Ni=34975,xi=34338,Ci=34922,bi=34373,Pi=34339,wi=34340,Hi=34341,Di=35633,Fi=2978,Ui=0,Gi=3074,Bi=3314,Vi=3315,Xi=3316,ji=3330,ki=3331,Wi=3332,Yi=32874,zi=32877,qi=32878,Zi=32883,Ki=33e3,Qi=33001,Ji=34045,$i=35657,ta=35658,ea=35071,na=35076,ra=35077,ia=35659,aa=35723,sa=35977,oa=34229,ua=37154,ca=37157,fa=37137,ha=2262,la=6403,da=32849,ma=32856,_a=32857,pa=32879,ga=32882,Ea=33082,va=33083,Ta=33084,Aa=33085,Ma=34892,Ia=34893,Ra=35904,Oa=35905,La=35907,Sa=34894,ya=34836,Na=34837,xa=34842,Ca=34843,ba=35866,Pa=35869,wa=35898,Ha=35901,Da=36208,Fa=36209,Ua=36214,Ga=36215,Ba=36220,Va=36221,Xa=36226,ja=36227,ka=36232,Wa=36233,Ya=36238,za=36239,qa=36244,Za=36248,Ka=36249,Qa=33321,Ja=33323,$a=33325,ts=33326,es=33327,ns=33328,rs=33329,is=33330,as=33331,ss=33332,os=33333,us=33334,cs=33335,fs=33336,hs=33337,ls=33338,ds=33339,ms=33340,_s=36756,ps=36757,gs=36758,Es=36759,vs=36975,Ts=37167,As=2093,Ms=33640,Is=35899,Rs=35902,Os=36269,Ls=34042,Ss=5131,ys=33319,Ns=33320,xs=2265,Cs=34917,bs=34918,Ps=34919,ws=35887,Hs=2262,Ds=34852,Fs=34853,Us=34854,Gs=34855,Bs=34856,Vs=34857,Xs=34858,js=34859,ks=34860,Ws=34861,Ys=34862,zs=34863,qs=34864,Zs=34865,Ks=34866,Qs=34867,Js=34868,$s=36063,to=36065,eo=36066,no=36067,ro=36068,io=36069,ao=36070,so=36071,oo=36072,uo=36073,co=36074,fo=36075,ho=36076,lo=36077,mo=36078,_o=2254,po=35679,go=35682,Eo=36289,vo=36292,To=36293,Ao=36298,Mo=36299,Io=36300,Ro=36303,Oo=36306,Lo=36307,So=36308,yo=36311,No=36183,xo=2193,Co=35051,bo=35052,Po=35053,wo=35055,Ho=36662,Do=36663,Fo=36662,Uo=2291,Go=35685,Bo=35686,Vo=35687,Xo=35688,jo=35689,ko=35690,Wo=36294,Yo=36295,zo=36296,qo=35863,Zo=2297,Ko=35069,Qo=2191,Jo=35967,$o=35968,tu=35971,eu=35972,nu=35973,ru=35976,iu=35978,au=35979,su=35980,ou=35981,uu=35982,cu=35983,fu=36386,hu=36387,lu=36388,du=2274,mu=33296,_u=33297,pu=33298,gu=33299,Eu=33300,vu=33301,Tu=33302,Au=33303,Mu=33304,Iu=33306,Ru=34041,Ou=35056,Lu=36006,Su=36008,yu=36009,Nu=36010,xu=36011,Cu=36052,bu=2261,Pu=35345,wu=35368,Hu=35369,Du=35370,Fu=35371,Uu=35373,Gu=35374,Bu=35375,Vu=35376,Xu=35377,ju=35379,ku=35380,Wu=35382,Yu=35383,zu=35384,qu=35386,Zu=35387,Ku=35388,Qu=35389,Ju=35390,$u=35391,tc=35392,ec=35394,nc=35395,rc=35396,ic=2212,ac=37138,sc=37139,oc=37140,uc=37141,cc=37142,fc=37143,hc=37144,lc=37145,dc=37146,mc=37147,_c=37148,pc=37149,gc=0,Ec=6144,vc=6145,Tc=6146,Ac=32775,Mc=32776,Ic=33190,Rc=35041,Oc=35042,Lc=35045,Sc=35046,yc=35049,Nc=35050,xc=36012,Cc=36013,bc=268435455,Pc=la-1,wc=2340,Hc=35070,Dc=37445,Fc=37446,Uc=34047,Gc=34046,Bc=33776,Vc=33777,Xc=33778,jc=33779,kc=37488,Wc=37489,Yc=37490,zc=37491,qc=37492,Zc=37493,Kc=37494,Qc=37495,Jc=37496,$c=37497,tf=35840,ef=35842,nf=35841,rf=35843,af=36196,sf=35986,of=35986,uf=34798,cf=34042,ff=36193,hf=34836,lf=34837,df=33297,mf=35863,_f=32775,pf=32776,gf=35904,Ef=35906,vf=35907,Tf=33296,Af=35723,Mf=36064,If=36065,Rf=36066,Of=36067,Lf=36068,Sf=36069,yf=36070,Nf=36071,xf=36072,Cf=36073,bf=36074,Pf=36075,wf=36076,Hf=36077,Df=36078,Ff=36079,Uf=34853,Gf=34854,Bf=34855,Vf=34856,Xf=34857,jf=34858,kf=34859,Wf=34860,Yf=34861,zf=34862,qf=34863,Zf=34864,Kf=34865,Qf=34866,Jf=34867,$f=34868,th=36063,eh=34852,nh=34229,rh=34916,ih=34917,ah=34918,sh=34919,oh=35007,uh=36392,ch=36795,fh="POSITION",hh="NORMAL",lh="DEPTH",dh="DISTANCE",mh={webgl:r,webglExtensions:a,webgl2:i,Hilo:s};Object.assign(mh,r,a,i,s);e.a=mh},function(t,e,n){"use strict";var r={},i={_cache:r,level:7,LEVEL_NONE:0,LEVEL_LOG:1,LEVEL_WARN:2,LEVEL_ERROR:4,log:function(){var t=this.console;return 1&this.level&&t.log.apply(t,arguments),this},warn:function(){var t=this.console;return 2&this.level&&t.warn.apply(t,arguments),this},error:function(){var t=this.console;return 4&this.level&&t.error.apply(t,arguments),this},logOnce:function(t){return r["log_"+t]||(r["log_"+t]=!0,this.log.apply(this,Array.prototype.slice.call(arguments,1))),this},warnOnce:function(t){return r["warn_"+t]||(r["warn_"+t]=!0,this.warn.apply(this,Array.prototype.slice.call(arguments,1))),this},errorOnce:function(t){return r["error_"+t]||(r["error_"+t]=!0,this.error.apply(this,Array.prototype.slice.call(arguments,1))),this},_console:console,get console(){return this._console},set console(t){this._console=t}};e.a=i},function(t,e,n){"use strict";n.r(e),n.d(e,"each",(function(){return p})),n.d(e,"getRelativePath",(function(){return d})),n.d(e,"convertUint8ArrayToString",(function(){return m})),n.d(e,"getExtension",(function(){return _})),n.d(e,"getIndexFromSortedArray",(function(){return g})),n.d(e,"insertToSortedArray",(function(){return E})),n.d(e,"padLeft",(function(){return v})),n.d(e,"getTypedArrayClass",(function(){return I})),n.d(e,"copyArrayData",(function(){return R})),n.d(e,"isStrOrNumber",(function(){return O})),n.d(e,"getTypedArrayGLType",(function(){return T})),n.d(e,"getBlobUrl",(function(){return y})),n.d(e,"isBlobUrl",(function(){return L})),n.d(e,"revokeBlobUrl",(function(){return S})),n.d(e,"isArrayLike",(function(){return N})),n.d(e,"getElementRect",(function(){return x})),n.d(e,"serialRun",(function(){return C})),n.d(e,"hasOwnProperty",(function(){return b})),n.d(e,"isWebGL2",(function(){return P}));var r=n(3),i=n(2);function a(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var s,o=i.a.BYTE,u=i.a.UNSIGNED_BYTE,c=i.a.SHORT,f=i.a.UNSIGNED_SHORT,h=i.a.UNSIGNED_INT,l=i.a.FLOAT;function d(t,e){if(/^(?:http|blob|data:|\/)/.test(e))return e;var n;for(t=t.replace(/\/[^/]*?$/,"").split("/"),e=e.split("/"),n=0;n<e.length;n++){var r=e[n];if(".."===r)t.pop();else if("."!==r)break}return t.join("/")+"/"+e.slice(n).join("/")}function m(t,e){if(window.TextDecoder)return s||(s=new TextDecoder("utf-8")),t instanceof Uint8Array||(t=new Uint8Array(t)),s.decode(t);for(var n="",r=0;r<t.length;r++)n+=String.fromCharCode(t[r]);return e&&(n=decodeURIComponent(escape(n))),n}function _(t){var e=String(t).match(/\/?[^/]+\.(\w+)(\?\S+)?$/i);return e&&e[1].toLowerCase()||null}function p(t,e){t&&(Array.isArray(t)?t.forEach(e):Object.keys(t).forEach((function(n){e(t[n],n)})))}function g(t,e,n){if(!t||!t.length)return[0,0];for(var r=0,i=t.length-1;r<=i;){var a=r+i>>1,s=n(t[a],e);if(0===s)return[a,a];s<0?r=a+1:i=a-1}return r>i?[i,r]:[r,i]}function E(t,e,n){var r=g(t,e,n);t.splice(r[1],0,e)}function v(t,e,n){return e<=t.length?t:new Array(e-t.length+1).join(n||"0")+t}function T(t){return t instanceof Float32Array?l:t instanceof Int8Array?o:t instanceof Uint8Array?u:t instanceof Int16Array?c:t instanceof Uint16Array?f:t instanceof Uint32Array?h:l}var A,M,I=(a(A={},o,Int8Array),a(A,u,Uint8Array),a(A,c,Int16Array),a(A,f,Uint16Array),a(A,h,Uint32Array),a(A,l,Float32Array),M=A,function(t){return M[t]||Float32Array});function R(t,e,n,r,i){if(t&&e){e.isGeometryData&&(e=e.data);for(var a=0;a<i;a++)t[n+a]=e[r+a]}}function O(t){return"string"==typeof t||"number"==typeof t}function L(t){return/^blob:/.test(t)}function S(t){window.URL&&URL.revokeObjectURL(t)}function y(t,e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),window.Blob&&window.URL)try{var n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}catch(e){r.a.warn("new Blob error",t)}return"data:".concat(t,";base64,").concat(btoa(m(e)))}function N(t){return Array.isArray(t)||t.BYTES_PER_ELEMENT||t.length}function x(t){var e,n=document.documentElement;try{e=t.getBoundingClientRect()}catch(n){e={top:t.offsetTop,left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,bottom:t.offsetTop+t.offsetHeight}}var r=(window.pageXOffset||n.scrollLeft)-(n.clientLeft||0)||0,i=(window.pageYOffset||n.scrollTop)-(n.clientTop||0)||0,a=window.getComputedStyle?getComputedStyle(t):t.currentStyle,s=parseInt,o=s(a.paddingLeft)+s(a.borderLeftWidth)||0,u=s(a.paddingTop)+s(a.borderTopWidth)||0,c=s(a.paddingRight)+s(a.borderRightWidth)||0,f=s(a.paddingBottom)+s(a.borderBottomWidth)||0,h=e.top||0,l=e.left||0;return{left:l+r+o,top:h+i+u,width:(e.right||0)-c-l-o,height:(e.bottom||0)-f-h-u}}function C(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;return Array.isArray(t)||(t=Object.values(t)),t.reduce((function(t,n,r){return t.then((function(){return e(n,r)}))}),Promise.resolve())}function b(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function P(t){return"undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext}},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Vector3",isVector3:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.elements=r.vec3.fromValues(t,e,n)},copy:function(t){return r.vec3.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t[2+e]=n[2],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],n[2]=t[e+2],this},set:function(t,e,n){return r.vec3.set(this.elements,t,e,n),this},add:function(t,e){return e||(e=t,t=this),r.vec3.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.vec3.subtract(this.elements,t.elements,e.elements),this},multiply:function(t,e){return e||(e=t,t=this),r.vec3.multiply(this.elements,t.elements,e.elements),this},divide:function(t,e){return e||(e=t,t=this),r.vec3.divide(this.elements,t.elements,e.elements),this},ceil:function(){return r.vec3.ceil(this.elements,this.elements),this},floor:function(){return r.vec3.floor(this.elements,this.elements),this},min:function(t,e){return e||(e=t,t=this),r.vec3.min(this.elements,t.elements,e.elements),this},max:function(t,e){return e||(e=t,t=this),r.vec3.max(this.elements,t.elements,e.elements),this},round:function(){return r.vec3.round(this.elements,this.elements),this},scale:function(t){return r.vec3.scale(this.elements,this.elements,t),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec3.scaleAndAdd(this.elements,e.elements,n.elements,t),this},distance:function(t,e){return e||(e=t,t=this),r.vec3.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec3.squaredDistance(t.elements,e.elements)},length:function(){return r.vec3.length(this.elements)},squaredLength:function(){return r.vec3.squaredLength(this.elements)},negate:function(){return r.vec3.negate(this.elements,this.elements),this},inverse:function(t){return t||(t=this),r.vec3.inverse(this.elements,t.elements),this},normalize:function(){return r.vec3.normalize(this.elements,this.elements),this},dot:function(t,e){return e||(e=t,t=this),r.vec3.dot(t.elements,e.elements)},cross:function(t,e){return e||(e=t,t=this),r.vec3.cross(this.elements,t.elements,e.elements),this},lerp:function(t,e){return r.vec3.lerp(this.elements,this.elements,t.elements,e),this},hermite:function(t,e,n,i,a){return r.vec3.hermite(this.elements,t.elements,e.elements,n.elements,i.elements,a),this},bezier:function(t,e,n,i,a){return r.vec3.bezier(this.elements,t.elements,e.elements,n.elements,i.elements,a),this},random:function(t){return r.vec3.random(this.elements,t),this},transformMat3:function(t){return r.vec3.transformMat3(this.elements,this.elements,t.elements),this},transformMat4:function(t){return r.vec3.transformMat4(this.elements,this.elements,t.elements),this},transformDirection:function(t){var e=this.elements,n=t.elements,r=e[0],i=e[1],a=e[2];return e[0]=r*n[0]+i*n[4]+a*n[8],e[1]=r*n[1]+i*n[5]+a*n[9],e[2]=r*n[2]+i*n[6]+a*n[10],this},transformQuat:function(t){return r.vec3.transformQuat(this.elements,this.elements,t.elements),this},rotateX:function(t,e){return r.vec3.rotateX(this.elements,this.elements,t.elements,e),this},rotateY:function(t,e){return r.vec3.rotateY(this.elements,this.elements,t.elements,e),this},rotateZ:function(t,e){return r.vec3.rotateZ(this.elements,this.elements,t.elements,e),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec3.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec3.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t}}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,i.prototype.div=i.prototype.divide,i.prototype.dist=i.prototype.distance,i.prototype.sqrDist=i.prototype.squaredDistance,i.prototype.len=i.prototype.length,i.prototype.sqrLen=i.prototype.squaredLength,e.a=i},function(t,e,n){"use strict";var r,i={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:(r=0,function(t){var e=++r;return t?e=t+"_"+e:e+="",e}),clamp:function(t,e,n){return Math.max(e,Math.min(n,t))},degToRad:function(t){return t*this.DEG2RAD},radToDeg:function(t){return t*this.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},nearestPowerOfTwo:function(t){return Math.pow(2,Math.round(Math.log(t)/Math.LN2))},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}};e.a=i},function(t,e,n){"use strict";var r,i=n(0),a=n(1),s=n(5),o=n(9),u=new s.a,c=new s.a,f=a.a.create({className:"Matrix4",isMatrix4:!0,constructor:function(){this.elements=i.mat4.create()},copy:function(t){return i.mat4.copy(this.elements,t.elements),this},clone:function(){var t=new this.constructor;return i.mat4.copy(t.elements,this.elements),t},toArray:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<16;r++)t[e+r]=n[r];return t},fromArray:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<16;r++)n[r]=t[e+r];return this},set:function(t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p){return i.mat4.set(this.elements,t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p),this},identity:function(){return i.mat4.identity(this.elements),this},transpose:function(){return i.mat4.transpose(this.elements,this.elements),this},invert:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.invert(this.elements,t.elements),this},adjoint:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.adjoint(this.elements,t.elements),this},determinant:function(){return i.mat4.determinant(this.elements)},multiply:function(t,e){return e||(e=t,t=this),i.mat4.multiply(this.elements,t.elements,e.elements),this},premultiply:function(t){return this.multiply(t,this),this},translate:function(t){return i.mat4.translate(this.elements,this.elements,t.elements),this},scale:function(t){return i.mat4.scale(this.elements,this.elements,t.elements),this},rotate:function(t,e){return i.mat4.rotate(this.elements,this.elements,t,e.elements),this},rotateX:function(t){return i.mat4.rotateX(this.elements,this.elements,t),this},rotateY:function(t){return i.mat4.rotateY(this.elements,this.elements,t),this},rotateZ:function(t){return i.mat4.rotateZ(this.elements,this.elements,t),this},fromTranslation:function(t){return i.mat4.fromTranslation(this.elements,t.elements),this},fromScaling:function(t){return i.mat4.fromScaling(this.elements,t.elements),this},fromRotation:function(t,e){return i.mat4.fromRotation(this.elements,t,e.elements),this},fromXRotation:function(t){return i.mat4.fromXRotation(this.elements,t),this},fromYRotation:function(t){return i.mat4.fromYRotation(this.elements,t),this},fromZRotation:function(t){return i.mat4.fromZRotation(this.elements,t),this},fromRotationTranslation:function(t,e){return i.mat4.fromRotationTranslation(this.elements,t.elements,e.elements),this},getTranslation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new s.a;return i.mat4.getTranslation(t.elements,this.elements),t},getScaling:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new s.a;return i.mat4.getScaling(t.elements,this.elements),t},getRotation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new o.a;return i.mat4.getRotation(t.elements,this.elements),t},fromRotationTranslationScale:function(t,e,n){return i.mat4.fromRotationTranslationScale(this.elements,t.elements,e.elements,n.elements),this},fromRotationTranslationScaleOrigin:function(t,e,n,r){return i.mat4.fromRotationTranslationScaleOrigin(this.elements,t.elements,e.elements,n.elements,r.elements),this},fromQuat:function(t){return i.mat4.fromQuat(this.elements,t.elements),this},frustum:function(t,e,n,r,a,s){return i.mat4.frustum(this.elements,t,e,n,r,a,s),this},perspective:function(t,e,n,r){return i.mat4.perspective(this.elements,t,e,n,r),this},perspectiveFromFieldOfView:function(t,e,n){return i.mat4.perspectiveFromFieldOfView(this.elements,t,e,n),this},ortho:function(t,e,n,r,a,s){return i.mat4.ortho(this.elements,t,e,n,r,a,s),this},lookAt:function(t,e,n){return t.isVector3||(t=u.set(t.x,t.y,t.z)),e.isVector3||(e=c.set(e.x,e.y,e.z)),i.mat4.lookAt(this.elements,t.elements,e.elements,n.elements),this},targetTo:function(t,e,n){t.isVector3||(t=u.set(t.x,t.y,t.z)),e.isVector3||(e=c.set(e.x,e.y,e.z)),t=t.elements,e=e.elements,n=n.elements;var r=this.elements,i=t[0],a=t[1],s=t[2],o=n[0],f=n[1],h=n[2],l=i-e[0],d=a-e[1],m=s-e[2],_=l*l+d*d+m*m;_>0?(l*=_=1/Math.sqrt(_),d*=_,m*=_):m=1;var p=f*m-h*d,g=h*l-o*m,E=o*d-f*l;return(_=p*p+g*g+E*E)>0?(p*=_=1/Math.sqrt(_),g*=_,E*=_):(_=(p=f*m-h*d)*p+(g=h*l-(o+=1e-7)*m)*g+(E=o*d-f*l)*E,p*=_=1/Math.sqrt(_),g*=_,E*=_),r[0]=p,r[1]=g,r[2]=E,r[3]=0,r[4]=d*E-m*g,r[5]=m*p-l*E,r[6]=l*g-d*p,r[7]=0,r[8]=l,r[9]=d,r[10]=m,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,this},frob:function(){return i.mat4.frob(this.elements)},add:function(t,e){return e||(e=t,t=this),i.mat4.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),i.mat4.subtract(this.elements,t.elements,e.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),i.mat4.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),i.mat4.equals(t.elements,e.elements)},compose:function(t,e,n,r){return r?this.fromRotationTranslationScaleOrigin(t,e,n,r):this.fromRotationTranslationScale(t,e,n),this},decompose:function(t,e,n,i){return this.getScaling(n),this.getTranslation(e),r||(r=new f),this.determinant()<0&&(n.x*=-1),r.copy(this),u.inverse(n),r.scale(u),t.fromMat4(r),i&&i.set(0,0,0),this}});f.prototype.sub=f.prototype.subtract,f.prototype.mul=f.prototype.multiply,e.a=f},function(t,e,n){"use strict";var r=n(1),i=n(11),a=n(4),s=r.a.create({Extends:i.a,className:"Color",isColor:!0,r:{get:function(){return this.x},set:function(t){this.x=t}},g:{get:function(){return this.y},set:function(t){this.y=t}},b:{get:function(){return this.z},set:function(t){this.z=t}},a:{get:function(){return this.w},set:function(t){this.w=t}},constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;s.superclass.constructor.call(this,t,e,n,r)},toRGBArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t},fromUintArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.elements[0]=t[e]/255,this.elements[1]=t[e+1]/255,this.elements[2]=t[e+2]/255,this.elements[3]=t[e+3]/255,this},fromHEX:function(t){return"number"==typeof t?t=Object(a.padLeft)(t.toString(16),6):("#"===t[0]&&(t=t.slice(1)),3===t.length&&(t=t.replace(/(\w)/g,"$1$1"))),this.elements[0]=parseInt(t.slice(0,2),16)/255,this.elements[1]=parseInt(t.slice(2,4),16)/255,this.elements[2]=parseInt(t.slice(4,6),16)/255,this},toHEX:function(){for(var t="",e=0;e<3;e++)t+=Object(a.padLeft)(Math.floor(255*this.elements[e]).toString(16),2);return t}});e.a=s},function(t,e,n){"use strict";var r=n(0),i=n(10),a=n(1),s=new i.a,o=a.a.create({className:"Quaternion",isQuaternion:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;this.elements=r.quat.fromValues(t,e,n,i)},copy:function(t){return r.quat.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2],t[3])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e],n[1]=t[e+1],n[2]=t[e+2],n[3]=t[e+3],this},set:function(t,e,n,i){return r.quat.set(this.elements,t,e,n,i),this},identity:function(){return r.quat.identity(this.elements),this},rotationTo:function(t,e){return r.quat.rotationTo(this.elements,t.elements,e.elements),this},setAxes:function(t,e,n){return r.quat.setAxes(this.elements,t.elements,e.elements,n.elements),this},setAxisAngle:function(t,e){return r.quat.setAxisAngle(this.elements,t.elements,e),this},getAxisAngle:function(t){return r.quat.getAxisAngle(t.elements,this.elements)},add:function(t){return r.quat.add(this.elements,this.elements,t.elements),this},multiply:function(t){return r.quat.multiply(this.elements,this.elements,t.elements),this},premultiply:function(t){return r.quat.multiply(this.elements,t.elements,this.elements),this},scale:function(t){return r.quat.scale(this.elements,this.elements,t),this},rotateX:function(t){return r.quat.rotateX(this.elements,this.elements,t),this},rotateY:function(t){return r.quat.rotateY(this.elements,this.elements,t),this},rotateZ:function(t){return r.quat.rotateZ(this.elements,this.elements,t),this},calculateW:function(){return r.quat.calculateW(this.elements,this.elements),this},dot:function(t){return r.quat.dot(this.elements,t.elements)},lerp:function(t,e){return r.quat.lerp(this.elements,this.elements,t.elements,e),this},slerp:function(t,e){return r.quat.slerp(this.elements,this.elements,t.elements,e),this},sqlerp:function(t,e,n,i,a){return r.quat.sqlerp(this.elements,t.elements,e.elements,n.elements,i.elements,a),this},invert:function(){return r.quat.invert(this.elements,this.elements),this},conjugate:function(){return r.quat.conjugate(this.elements,this.elements),this},length:function(){return r.quat.length(this.elements)},squaredLength:function(){return r.quat.squaredLength(this.elements)},normalize:function(){return r.quat.normalize(this.elements,this.elements),this},fromMat3:function(t){return r.quat.fromMat3(this.elements,t.elements),this},fromMat4:function(t){return s.fromMat4(t),this.fromMat3(s),this},exactEquals:function(t){return r.quat.exactEquals(this.elements,t.elements)},equals:function(t){return r.quat.equals(this.elements,t.elements)},fromEuler:function(t){var e=.5*t.x,n=.5*t.y,r=.5*t.z,i=t.order||"ZYX",a=Math.sin(e),s=Math.cos(e),o=Math.sin(n),u=Math.cos(n),c=Math.sin(r),f=Math.cos(r),h=this.elements;return"XYZ"===i?(h[0]=a*u*f+s*o*c,h[1]=s*o*f-a*u*c,h[2]=s*u*c+a*o*f,h[3]=s*u*f-a*o*c):"YXZ"===i?(h[0]=a*u*f+s*o*c,h[1]=s*o*f-a*u*c,h[2]=s*u*c-a*o*f,h[3]=s*u*f+a*o*c):"ZXY"===i?(h[0]=a*u*f-s*o*c,h[1]=s*o*f+a*u*c,h[2]=s*u*c+a*o*f,h[3]=s*u*f-a*o*c):"ZYX"===i?(h[0]=a*u*f-s*o*c,h[1]=s*o*f+a*u*c,h[2]=s*u*c-a*o*f,h[3]=s*u*f+a*o*c):"YZX"===i?(h[0]=a*u*f+s*o*c,h[1]=s*o*f+a*u*c,h[2]=s*u*c-a*o*f,h[3]=s*u*f-a*o*c):"XZY"===i&&(h[0]=a*u*f-s*o*c,h[1]=s*o*f-a*u*c,h[2]=s*u*c+a*o*f,h[3]=s*u*f+a*o*c),this},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t}},w:{get:function(){return this.elements[3]},set:function(t){this.elements[3]=t}}});o.prototype.mul=o.prototype.multiply,o.prototype.len=o.prototype.length,o.prototype.sqrLen=o.prototype.squaredLength,e.a=o},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Matrix3",isMatrix3:!0,constructor:function(){this.elements=r.mat3.create()},copy:function(t){return r.mat3.copy(this.elements,t.elements),this},clone:function(){var t=new this.constructor;return r.mat3.copy(t.elements,this.elements),t},toArray:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<9;r++)t[e+r]=n[r];return t},fromArray:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<9;r++)n[r]=t[e+r];return this},set:function(t,e,n,i,a,s,o,u,c){return r.mat3.set(this.elements,t,e,n,i,a,s,o,u,c),this},identity:function(){return r.mat3.identity(this.elements),this},transpose:function(){return r.mat3.transpose(this.elements,this.elements),this},invert:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return r.mat3.invert(this.elements,t.elements),this},adjoint:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return r.mat3.adjoint(this.elements,t.elements),this},determinant:function(){return r.mat3.determinant(this.elements)},multiply:function(t,e){return e||(e=t,t=this),r.mat3.multiply(this.elements,t.elements,e.elements),this},premultiply:function(t){return this.multiply(t,this),this},translate:function(t){return r.mat3.translate(this.elements,this.elements,t.elements),this},rotate:function(t){return r.mat3.rotate(this.elements,this.elements,t),this},scale:function(t){return r.mat3.scale(this.elements,this.elements,t.elements),this},fromTranslation:function(t){return r.mat3.fromTranslation(this.elements,t.elements),this},fromRotation:function(t){return r.mat3.fromRotation(this.elements,t),this},fromScaling:function(t){return r.mat3.fromScaling(this.elements,t.elements),this},fromQuat:function(t){return r.mat3.fromQuat(this.elements,t.elements),this},normalFromMat4:function(t){return r.mat3.normalFromMat4(this.elements,t.elements),this},fromMat4:function(t){return r.mat3.fromMat4(this.elements,t.elements),this},frob:function(){return r.mat3.frob(this.elements)},add:function(t,e){return e||(e=t,t=this),r.mat3.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.mat3.subtract(this.elements,t.elements,e.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),r.mat3.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.mat3.equals(t.elements,e.elements)},fromRotationTranslationScale:function(t,e,n,r,i){var a=Math.cos(t),s=Math.sin(t);return this.set(r*a,-i*s,0,r*s,i*a,0,e,n,1),this}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,e.a=i},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Vector4",isVector4:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;this.elements=r.vec4.fromValues(t,e,n,i)},copy:function(t){return r.vec4.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2],t[3])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t[2+e]=n[2],t[3+e]=n[3],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],n[2]=t[e+2],n[3]=t[e+3],this},set:function(t,e,n,i){return r.vec4.set(this.elements,t,e,n,i),this},add:function(t,e){return e||(e=t,t=this),r.vec4.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.vec4.subtract(this.elements,t.elements,e.elements),this},multiply:function(t,e){return e||(e=t,t=this),r.vec4.multiply(this.elements,t.elements,e.elements),this},divide:function(t,e){return e||(e=t,t=this),r.vec4.divide(this.elements,t.elements,e.elements),this},ceil:function(){return r.vec4.ceil(this.elements,this.elements),this},floor:function(){return r.vec4.floor(this.elements,this.elements),this},min:function(t,e){return e||(e=t,t=this),r.vec4.min(this.elements,t.elements,e.elements),this},max:function(t,e){return e||(e=t,t=this),r.vec4.max(this.elements,t.elements,e.elements),this},round:function(){return r.vec4.round(this.elements,this.elements),this},scale:function(t){return r.vec4.scale(this.elements,this.elements,t),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec4.scaleAndAdd(this.elements,e.elements,n.elements,t),this},distance:function(t,e){return e||(e=t,t=this),r.vec4.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec4.squaredDistance(t.elements,e.elements)},length:function(){return r.vec4.length(this.elements)},squaredLength:function(){return r.vec4.squaredLength(this.elements)},negate:function(){return r.vec4.negate(this.elements,this.elements),this},inverse:function(t){return t||(t=this),r.vec4.inverse(this.elements,t.elements),this},normalize:function(){return r.vec4.normalize(this.elements,this.elements),this},dot:function(t,e){return e||(e=t,t=this),r.vec4.dot(t.elements,e.elements)},lerp:function(t,e){return r.vec4.lerp(this.elements,this.elements,t.elements,e),this},random:function(t){return t=t||1,this.elements[0]=Math.random(),this.elements[1]=Math.random(),this.elements[2]=Math.random(),this.elements[3]=Math.random(),this.normalize(),this.scale(t),this},transformMat4:function(t){return r.vec4.transformMat4(this.elements,this.elements,t.elements),this},transformQuat:function(t){return r.vec4.transformQuat(this.elements,this.elements,t.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec4.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec4.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t}},w:{get:function(){return this.elements[3]},set:function(t){this.elements[3]=t}}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,i.prototype.div=i.prototype.divide,i.prototype.dist=i.prototype.distance,i.prototype.sqrDist=i.prototype.squaredDistance,i.prototype.len=i.prototype.length,i.prototype.sqrLen=i.prototype.squaredLength,e.a=i},function(t,e,n){"use strict";var r=n(1),i=n(6),a=n(7),s=n(3),o=new a.a,u=i.a.DEG2RAD,c=i.a.RAD2DEG,f=r.a.create({className:"Euler",isEuler:!0,order:"ZYX",constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.elements=new Float32Array([t,e,n]),this.updateDegrees()},clone:function(){var t=new this.constructor;return t.copy(this),t},copy:function(t){return this.elements[0]=t.x,this.elements[1]=t.y,this.elements[2]=t.z,this.order=t.order,this.updateDegrees(),this},set:function(t,e,n){return this.elements[0]=t,this.elements[1]=e,this.elements[2]=n,this.updateDegrees(),this},setDegree:function(t,e,n){return this._degX=t,this._degY=e,this._degZ=n,this.updateRadians(),this},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.elements[0]=t[e],this.elements[1]=t[e+1],this.elements[2]=t[e+2],this.updateDegrees(),this},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t[e]=this.elements[0],t[e+1]=this.elements[1],t[e+2]=this.elements[2],t},fromMat4:function(t,e){var n=t.elements,r=n[0],a=n[1],o=n[2],u=n[4],c=n[5],f=n[6],h=n[8],l=n[9],d=n[10];e=e||this.order,this.order=e;var m=i.a.clamp;return"XYZ"===e?(this.elements[1]=Math.asin(m(h,-1,1)),Math.abs(h)<.99999?(this.elements[0]=Math.atan2(-l,d),this.elements[2]=Math.atan2(-u,r)):(this.elements[0]=Math.atan2(f,c),this.elements[2]=0)):"YXZ"===e?(this.elements[0]=Math.asin(-m(l,-1,1)),Math.abs(l)<.99999?(this.elements[1]=Math.atan2(h,d),this.elements[2]=Math.atan2(a,c)):(this.elements[1]=Math.atan2(-o,r),this.elements[2]=0)):"ZXY"===e?(this.elements[0]=Math.asin(m(f,-1,1)),Math.abs(f)<.99999?(this.elements[1]=Math.atan2(-o,d),this.elements[2]=Math.atan2(-u,c)):(this.elements[1]=0,this.elements[2]=Math.atan2(a,r))):"ZYX"===e?(this.elements[1]=Math.asin(-m(o,-1,1)),Math.abs(o)<.99999?(this.elements[0]=Math.atan2(f,d),this.elements[2]=Math.atan2(a,r)):(this.elements[0]=0,this.elements[2]=Math.atan2(-u,c))):"YZX"===e?(this.elements[2]=Math.asin(m(a,-1,1)),Math.abs(a)<.99999?(this.elements[0]=Math.atan2(-l,c),this.elements[1]=Math.atan2(-o,r)):(this.elements[0]=0,this.elements[1]=Math.atan2(h,d))):"XZY"===e?(this.elements[2]=Math.asin(-m(u,-1,1)),Math.abs(u)<.99999?(this.elements[0]=Math.atan2(f,c),this.elements[1]=Math.atan2(h,r)):(this.elements[0]=Math.atan2(-l,d),this.elements[1]=0)):s.a.warn("Euler fromMat4() unsupported order: "+e),this.updateDegrees(),this},fromQuat:function(t,e){return o.fromQuat(t),this.fromMat4(o,e)},updateDegrees:function(){return this._degX=this.elements[0]*c,this._degY=this.elements[1]*c,this._degZ=this.elements[2]*c,this},updateRadians:function(){return this.elements[0]=this._degX*u,this.elements[1]=this._degY*u,this.elements[2]=this._degZ*u,this},degX:{get:function(){return this._degX},set:function(t){this._degX=t,this.elements[0]=t*u}},degY:{get:function(){return this._degY},set:function(t){this._degY=t,this.elements[1]=t*u}},degZ:{get:function(){return this._degZ},set:function(t){this._degZ=t,this.elements[2]=t*u}},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this._degX=t*c}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this._degY=t*c}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this._degZ=t*c}}});e.a=f},function(t,e,n){"use strict";var r=n(0),i=n(1).a.create({className:"Vector2",isVector2:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.elements=r.vec2.fromValues(t,e)},copy:function(t){return r.vec2.copy(this.elements,t.elements),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],this},set:function(t,e){return r.vec2.set(this.elements,t,e),this},add:function(t,e){return e||(e=t,t=this),r.vec2.add(this.elements,t.elements,e.elements),this},subtract:function(t,e){return e||(e=t,t=this),r.vec2.subtract(this.elements,t.elements,e.elements),this},multiply:function(t,e){return e||(e=t,t=this),r.vec2.multiply(this.elements,t.elements,e.elements),this},divide:function(t,e){return e||(e=t,t=this),r.vec2.divide(this.elements,t.elements,e.elements),this},ceil:function(){return r.vec2.ceil(this.elements,this.elements),this},floor:function(){return r.vec2.floor(this.elements,this.elements),this},min:function(t,e){return e||(e=t,t=this),r.vec2.min(this.elements,t.elements,e.elements),this},max:function(t,e){return e||(e=t,t=this),r.vec2.max(this.elements,t.elements,e.elements),this},round:function(){return r.vec2.round(this.elements,this.elements),this},scale:function(t){return r.vec2.scale(this.elements,this.elements,t),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec2.scaleAndAdd(this.elements,e.elements,n.elements,t),this},distance:function(t,e){return e||(e=t,t=this),r.vec2.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec2.squaredDistance(t.elements,e.elements)},length:function(){return r.vec2.length(this.elements)},squaredLength:function(){return r.vec2.squaredLength(this.elements)},negate:function(){return r.vec2.negate(this.elements,this.elements),this},inverse:function(t){return t||(t=this),r.vec2.inverse(this.elements,t.elements),this},normalize:function(){return r.vec2.normalize(this.elements,this.elements),this},dot:function(t,e){return e||(e=t,t=this),r.vec2.dot(t.elements,e.elements)},cross:function(t,e){return e||(e=t,t=this),r.vec2.cross(this.elements,t.elements,e.elements),this},lerp:function(t,e){return r.vec2.lerp(this.elements,this.elements,t.elements,e),this},random:function(t){return r.vec2.random(this.elements,t),this},transformMat3:function(t){return r.vec2.transformMat3(this.elements,this.elements,t.elements),this},transformMat4:function(t){return r.vec2.transformMat4(this.elements,this.elements,t.elements),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec2.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec2.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t}}});i.prototype.sub=i.prototype.subtract,i.prototype.mul=i.prototype.multiply,i.prototype.div=i.prototype.divide,i.prototype.dist=i.prototype.distance,i.prototype.sqrDist=i.prototype.squaredDistance,i.prototype.len=i.prototype.length,i.prototype.sqrLen=i.prototype.squaredLength,e.a=i},function(t,e){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=2)}([function(t,e,n){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function i(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}var a=n(1),s={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR",COLOR_0:"COLOR",COLOR_1:"COLOR_1",TEXCOORD:"TEXCOORD",TEXCOORD_0:"TEXCOORD",TEXCOORD_1:"TEXCOORD_1",TEXCOORD_2:"TEXCOORD_2",TANGENT:"TANGENT",JOINT:"JOINT",JOINTS_0:"JOINT",WEIGHT:"WEIGHT",WEIGHTS_0:"WEIGHT"},o=["POSITION","NORMAL","COLOR","TEXCOORD","TANGENT","JOINT","WEIGHT","OTHER","TEXCOORD_1","TEXCOORD_2","COLOR_1"],u={POSITION:0,NORMAL:1,COLOR:2,TEXCOORD:3,TANGENT:4,JOINT:5,WEIGHT:6,OTHER:7,TEXCOORD_1:8,TEXCOORD_2:9,COLOR_1:10},c={POSITION:"vertices",NORMAL:"normals",COLOR:"colors",TEXCOORD:"uvs",TEXCOORD_1:"uvs1",TEXCOORD_2:"uvs2",TANGENT:"tangents",JOINT:"skinIndices",WEIGHT:"skinWeights"},f={vertices:"POSITION",_normals:"NORMAL",colors:"COLOR",uvs:"TEXCOORD",uvs1:"TEXCOORD_1",uvs2:"TEXCOORD_2",_tangents:"TANGENT",skinIndices:"JOINT",skinWeights:"WEIGHT"},h={POSITION:3,NORMAL:3,COLOR:3,COLOR_1:3,TEXCOORD:2,TEXCOORD_1:2,TEXCOORD_2:2,TANGENT:4,JOINT:4,WEIGHT:4},l=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.indices=e,this.mode=n,this.attrs=[],this.attrIndexMap={}}return i(t,null,[{key:"cp",value:function(t){return t}},{key:"minus",value:function(t,e){return t-e}},{key:"plus",value:function(t,e){return t+e}},{key:"pp",value:function(t,e,n,r){return r-e-n+t}},{key:"depp",value:function(t,e,n,r){return e+n-t+r}},{key:"ATTR",get:function(){return s}},{key:"ATTR_NAME_ID",get:function(){return u}}]),i(t,[{key:"getAttrLength",value:function(){return this.attrs[0].data.length/this.attrs[0].itemCount}},{key:"attrIdToName",value:function(t){return o[t]||"OTHER"}},{key:"addAttr",value:function(t,e,n){s[t]?(this.attrIndexMap[t]=this.attrs.length,n||(n=h[t])):n||(n=1),this.attrs.push({name:t,itemCount:n,data:e})}},{key:"getAttr",value:function(t){if(this.attrIndexMap[t])return this.attrs[this.attrIndexMap[t]];for(var e=this.attrs.length-1;e>=0;e--){var n=this.attrs[e];if(n.name===t)return n}}},{key:"cal",value:function(t,e,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),a=3;a<r;a++)i[a-3]=arguments[a];this.attrs.forEach((function(r,a){for(var s=r.data,o=t.attrs[a].data,u=e*r.itemCount,c=r.itemCount-1;c>=0;c--)o[u+c]=n.apply(null,i.map((function(t){return s[t*r.itemCount+c]})))}))}},{key:"quantize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.attrs.forEach((function(e){if("JOINT"!==e.name&&0!=t[e.name]){var n=a.encode(e.data,t[e.name]||12);e.quantizationBit=n.quantizationBit,e.min=n.min,e.max=n.max,e.data=n.data}}))}},{key:"dequantize",value:function(){this.attrs.forEach((function(t){t.quantizationBit&&(t.data=a.decode(t.data,t.quantizationBit,t.min,t.max))}))}},{key:"convertTypedArray",value:function(){!this.indices||this.indices instanceof Array||(this.indices=Array.from(this.indices)),this.attrs.forEach((function(t){t.data instanceof Array||t.data instanceof Float32Array||(t.data=Array.from(t.data))}))}},{key:"clearEBAttrs",value:function(){delete this.clers,delete this.holes,delete this.handles}},{key:"convertToTypedArray",value:function(){this.indices instanceof Array&&(this.getAttrLength()>65535?this.indices=new Uint32Array(this.indices):this.indices=new Uint16Array(this.indices)),this.attrs.forEach((function(t){t.data instanceof Array&&(t.data=new Float32Array(t.data))}))}},{key:"prepareToWorkerSend",value:function(){return this.clearEBAttrs(),this.convertToTypedArray(),this.getAllBuffers()}},{key:"clone",value:function(){var e=new t(Array.from(this.indices),this.mode);return Object.assign(e.attrIndexMap,this.attrIndexMap),e.attrs=this.attrs.map((function(t){var e=Object.assign({},t);return e.data=Array.from(e.data),e})),e}},{key:"cloneStruct",value:function(){var e=new t;return e.mode=this.mode,this.indices&&(e.indices=[]),Object.assign(e.attrIndexMap,this.attrIndexMap),e.attrs=this.attrs.map((function(t){var e=Object.assign({},t);return e.data=[],e})),e}},{key:"toHilo3dGeometry",value:function(t,e){var n=e||new t.Geometry;return this.indices&&(this.indices.BYTES_PER_ELEMENT?n.indices=new t.GeometryData(this.indices,1):this.getAttrLength()>65535?n.indices=new t.GeometryData(new Uint32Array(this.indices),1):n.indices=new t.GeometryData(new Uint16Array(this.indices),1)),this.attrs.forEach((function(e){var r=c[e.name];r&&(e.data.BYTES_PER_ELEMENT?n[r]=new t.GeometryData(e.data,e.itemCount):n[r]=new t.GeometryData(new Float32Array(e.data),e.itemCount))})),n}},{key:"getAllBuffers",value:function(){var t=[];return this.indices.BYTES_PER_ELEMENT&&t.push(this.indices.buffer),this.attrs.forEach((function(e){e.data&&e.data.BYTES_PER_ELEMENT&&t.push(e.data.buffer)})),t}}],[{key:"fromGLTFPrimitive",value:function(e){var n=new t(e.indices,e.mode),r=e.attributes,i=0;for(var a in r.POSITION&&(i=r.POSITION.length/3),r)if(s[a]){var o=h[s[a]];i&&(o=r[a].length/i),n.addAttr(s[a],r[a],o)}else console.warn("Dont support attribute",a);return n}},{key:"fromHilo3dGeometry",value:function(e){var n=new t(e.indices.data,e.mode);for(var r in f)e[r]&&n.addAttr(f[r],e[r].data,e[r].size);return n}}]),t}();t.exports=l},function(t,e){var n={};function r(t){return n[t]||(n[t]=Math.pow(2,t)-1),n[t]}t.exports={cal:function(t,e,n,i){var a=r(i),s=n-e;return Math.round((t-e)/s*a)},encode:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=t.length,i=r(e),a=1/0,s=-1/0,o=0;o<n;o++)a=Math.min(a,t[o]),s=Math.max(s,t[o]);var u=s-a||1,c=[];for(o=0;o<n;o++)c[o]=Math.round((t[o]-a)/u*i);return{min:a,max:s,quantizationBit:e,data:c}},encodeWithMinAndMax:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:8,s=t.length,o=r(a),u=i-n||1,c=0;c<s;c++)e[c]=Math.round((t[c]-n)/u*o);return e},decode:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,a=t.length,s=r(e),o=i-n,u=new Float32Array(a),c=0;c<a;c++)u[c]=n+o*(t[c]/s);return u},normalize:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,r=t.length,i=0;i<r;i+=n){for(var a=0,s=0;s<n;s++)a+=t[i+s]*t[i+s];for(a=Math.sqrt(a),s=0;s<n;s++)e[i+s]=t[i+s]/a}return e}}},function(t,e,n){t.exports=n(3)},function(t,e,n){var r=n(4);r.Geometry=n(0),t.exports=r},function(t,e,n){var r=n(0),i=n(5),a=n(7),s=n(8),o=n(9),u=[i],c=[a];function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t instanceof Uint8Array&&(e=t.byteOffset,t=t.buffer),function(t){return new u[t.type](t).decompress()}(function(t,e){var n=new Uint8Array(t,e,4);if(65!==n[0]||77!==n[1]||67!==n[2])throw new Error("The file is not AMC format!");var r=c[n[3]].read(t,e+4);return r.geometry.type=n[3],r.geometry}(t,e))}var h,l=null,d=null;function m(t,e){return!l&&o()?(l=new s({wasmURL:t,memPages:e}),d=l.init()):d||Promise.resolve()}function _(t,e,n){if(l||m(e,n),!l||!l.isReady)return f(t);try{return l.decompress(t)}catch(e){return console.warn("wasm decompress error",e),f(t)}}var p=null;function g(t){return t=t||"https://g.alicdn.com/hilo/amc/0.1.27/worker.js",p||(!1===h||"undefined"==typeof Worker?Promise.reject("dont support web worker"):p=/^(?:http|blob|data:|\/\/)/.test(t)?new Promise((function(e,n){var r=new XMLHttpRequest;r.addEventListener("load",(function(){if("undefined"==typeof URL||"undefined"==typeof Blob)h=new Worker("data:application/javascript, ".concat(this.responseText));else{var t=URL.createObjectURL(new Blob([this.responseText]));h=new Worker(t)}h.onerror=function(t){console.log("web worker error",t),h=!1,n(t)},e(h)})),r.addEventListener("error",(function(t){return n(t)})),r.open("get",t,!0),r.send()})):new Promise((function(e,n){(h=new Worker(t)).onerror=function(t){console.log("web worker init error",t),h=!1,n(t)},e(h)})))}var E=0;function v(t,e,n,i){return e=e&&o(),t=new Uint8Array(t),g(i).then((function(i){return new Promise((function(a,s){var o=E++,u=function(e){if(e.data.id===o)if(i.removeEventListener("message",u),u=null,e.data.data){var n=e.data.data;n.constructor=r,n.__proto__=r.prototype,a(n)}else a(f(t))};i.addEventListener("message",u),i.postMessage({id:o,data:t,useWASM:e,wasmURL:n},[t.buffer])}))})).catch((function(r){return e?_(t,n):f(t)}))}t.exports={initWASM:m,initWorker:g,decompress:function(t,e,n){var r=o();return!r||t.byteLength>1048576?v(t,r,e,n):r?Promise.resolve(_(t,e)):Promise.resolve(f(t))},decompressWithJS:f,decompressWithWASM:_,decompressWithWorker:v,destory:function(){h&&(h.terminate(),h=null,p=null),l&&(l=null,d=null)}}},function(t,e,n){function r(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var a=n(0),o=(n(1),n(6)),u=o.map,c=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.geometry=e,this.faceCount=e.clers.length,this.clers=e.clers,this.holes=e.holes,this.handles=e.handles,this.createHandleMap(this.handles),this.vertexCount=e.getAttrLength(),this.noParallelogramPrediction=!!e.noParallelogramPrediction}var e,n;return e=t,(n=[{key:"nextCorner",value:function(t){return t<0?-1:t+(t%3==2?-2:1)}},{key:"prevCorner",value:function(t){return t<0?-1:t+(t%3?-1:2)}},{key:"createHandleMap",value:function(t){var e=this.handlesMap={};if(t)for(var n=t.length-1;n>=0;n-=2)e[t[n]]=t[n-1]}},{key:"mapBoundary",value:function(t){for(var e=this.indices,n=t.length,r=this.currentVertex,i=this.currentVertex-n+1,a=n-1;a>=0;a--)e[this.nextCorner(t[a])]=r,r=i,e[this.prevCorner(t[a])]=i++;this.currentVertex-=n}},{key:"mapHoleBoundary",value:function(t){for(var e=this.indices,n=t.length,r=this.currentVertex-n+1,i=r,a=n-1;a>=0;a--)e[this.nextCorner(t[a])]=r++,e[this.prevCorner(t[a])]=a?r:i;this.currentVertex-=n}},{key:"fixNegativeIndex",value:function(t){for(var e=t,n=this.indices;n[t]<0;){if(e===-n[-n[t]]||n[t]===n[-n[t]]){console.warn("dead loop bug!!"),n[s]=0;break}n[t]=n[-n[t]]}}},{key:"fixIndicesAndReadVertice",value:function(){for(var t,e=this.indices,n=this.handlesMap,r=this.clers,i=r.length,a=-1,s=[],u=0,c=0;u<i;u++,c+=3)-1===a?(this.fixNegativeIndex(c+1),this.fixNegativeIndex(c+2)):(e[c+1]=e[this.prevCorner(a)],e[c+2]=e[this.nextCorner(a)]),this.fixNegativeIndex(c),-1===a?(this.readVertex(e[c+2]),this.readVertex(e[c+1]),this.readVertex(e[c])):this.readVertex(e[c],a),a=c+1,(t=r[u])!==o.S||n[u]?t===o.E||t===o.F?a=s.pop():t===o.R&&(a=c+2):s.push(c+2),t===o.F&&(a=-1,delete this.lastReadVertexIndex),this._onDecompressFace(u,t)}},{key:"readVertex",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;if(!this.readedVertexMap[t]&&(this.readedVertexMap[t]=1,!this.noParallelogramPrediction)){var n=this.indices,r=this.geometry;-1===e?void 0!==this.lastReadVertexIndex&&r.cal(r,t,a.plus,this.lastReadVertexIndex,t):r.cal(r,t,a.depp,n[e],n[this.prevCorner(e)],n[this.nextCorner(e)],t),this.lastReadVertexIndex=t}}},{key:"markCorner",value:function(t,e){var n=this.indices;void 0===n[this.nextCorner(t)]&&(n[this.nextCorner(t)]=-this.prevCorner(e[0])),void 0===n[this.prevCorner(t)]&&(n[this.prevCorner(t)]=-this.nextCorner(e[e.length-1]))}},{key:"onFaceC",value:function(t){var e=this.indices,n=3*this.currentFace,r=this.currentVertex--;e[n]=r;var i=t.pop();return e[this.nextCorner(i)]=r,e[this.prevCorner(i)]=-this.nextCorner(t[t.length-1]),i=t.shift(),e[this.prevCorner(i)]=r,e[this.nextCorner(i)]=-this.prevCorner(t[0]),t.push(n),t}},{key:"onFaceL",value:function(t){var e=3*this.currentFace;return this.markCorner(t.pop(),t),t.unshift(e+2),t.push(e),t}},{key:"onFaceF",value:function(t,e){return t&&this.mapBoundary(t),this.onFaceE(null,e)}},{key:"onFaceE",value:function(t,e){var n=3*this.currentFace;return t&&e.push(t),[n+2,n+1,n]}},{key:"onFaceR",value:function(t){var e=3*this.currentFace;return this.markCorner(t.pop(),t),t.push(e+1,e),t}},{key:"onHandleEnd",value:function(t,e,n){var r=this.indices,i=3*this.currentFace,a=this.handlesMap[this.currentFace],s=e.splice(0,t);return e.shift(),n.push(s),r[this.nextCorner(a)]=-(i+1),r[this.prevCorner(a)]=-this.nextCorner(s[s.length-1]),r[i]=-this.prevCorner(s[0]),e.push(i),e}},{key:"onHandleStart",value:function(t,e){for(var n,i=this.indices,a=3*this.currentFace,s=this.handlesMap[this.currentFace],o=e.length-1;o>=0;o--){var u=e[o].indexOf(s);if(u>=0){var c,f=(n=e.splice(o,1)[0]).splice(0,u);n.shift(),(c=n).push.apply(c,r(f));break}}return i[this.nextCorner(s)]=-(a+1),i[this.prevCorner(s)]=-this.nextCorner(n[n.length-1]),i[a]=-this.prevCorner(t[0]),(t=n.concat(t)).push(a),t}},{key:"onFaceS",value:function(t,e,n){var r=this.handlesMap,i=this.indices,a=3*this.currentFace;if(r[this.currentFace]){this.markCorner(t.pop(),t);var s=t.indexOf(r[this.currentFace]);t=s>=0?this.onHandleEnd(s,t,n):this.onHandleStart(t,n)}else{var o=t.pop();this.markCorner(o,t),i[a]=-this.nextCorner(o);var u=e.pop();this.markCorner(u.pop(),u),(t=u.concat(t)).push(a)}return t}},{key:"onFaceM",value:function(t,e,n){var r=this.indices,i=3*this.currentFace,a=t.splice(0,this.holes[this.currentHole--]);this.mapHoleBoundary(a);var s=r[this.prevCorner(a[0])];r[i]=s;var o=t.pop();return r[this.prevCorner(o)]=-this.nextCorner(t[t.length-1]),r[this.nextCorner(o)]=s,o=t.shift(),r[this.prevCorner(o)]=s,r[this.nextCorner(o)]=-this.prevCorner(t[0]),t.push(i),t}},{key:"decompress",value:function(){this.readedVertexMap=new Uint8Array(this.vertexCount);var t=this.faceCount,e=this.indices=new Array(3*t);this.currentFace=t-1,this.currentVertex=this.vertexCount-1,this.currentHole=this.holes.length-1;for(var n,r=this.clers,i=[],a=[];this.currentFace>=0;){var s="onFace"+u[r[this.currentFace]];this[s]?n=this[s](n,i,a):console.warn("has no ".concat(s)),this.currentFace--}return this.mapBoundary(n),this.fixIndicesAndReadVertice(this.indices),this.geometry.indices=e,this.geometry.dequantize(),this.geometry}},{key:"_onDecompressFace",value:function(t,e){this.onDecompressFace&&this.onDecompressFace(t,e)}}])&&i(e.prototype,n),t}();t.exports=c},function(t,e){var n={C:0,R:1,L:2,S:3,E:4,M:5,F:6},r=[];for(var i in n)r[n[i]]=i;n.map=r,t.exports=n},function(t,e,n){var r=n(0);function i(t,e,n,r){return new t(e.slice(n,n+r*t.BYTES_PER_ELEMENT))}t.exports={read:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=new DataView(t),a=new r,s=function(t,e){var n={};return n.version=t.getUint8(e++),n.faceCount=t.getUint32(e,!0),e+=4,n.vertexCount=t.getUint32(e,!0),e+=4,n.attrCount=t.getUint8(e++),n.noParallelogramPrediction=t.getUint8(e++),n.holesCount=t.getUint16(e,!0),e+=2,n.handlesCount=t.getUint16(e,!0),e+=2,n.headerBytes=15,n}(n,e);return e+=s.headerBytes,a.mode="CLERS",e=function(t,e,n,r){for(var a=0;a<r.attrCount;a++){var s={},o=e.getUint16(n,!0);n+=2,s.name=t.attrIdToName(o),s.itemCount=e.getUint8(n++),s.quantizationBit=e.getUint8(n++),s.min=e.getFloat32(n,!0),n+=4,s.max=e.getFloat32(n,!0),n+=4,s.data=i(Int16Array,e.buffer,n,s.itemCount*r.vertexCount),n+=s.itemCount*r.vertexCount*2,t.attrs.push(s)}return n}(a,n,e=function(t,e,n,r){return t.clers=new Uint8Array(e.buffer,n,r.faceCount),n+r.faceCount}(a,n,e=function(t,e,n,r){return r.handlesCount?(t.handles=i(Uint32Array,e.buffer,n,2*r.handlesCount),n+8*r.handlesCount):(t.handles=[],n)}(a,n,e=function(t,e,n,r){return r.holesCount?(t.holes=i(Uint16Array,e.buffer,n,r.holesCount),n+2*r.holesCount):(t.holes=[],n)}(a,n,e,s),s),s),s),{header:s,geometry:a,offset:e}}}},function(t,e,n){function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var i=n(0),a=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.wasmURL=e.wasmURL||"https://ossgw.alicdn.com/tmall-c3/tmx/70b8d82ccf33e97a124e54c2d6a3e0c7.wasm",this.memPages=e.memPages||256,this.memPages<256&&(this.memPages=256),this.isReady=!1}var e,n;return e=t,(n=[{key:"initASMJS",value:function(){this.isReady=!0,this.dv=new DataView(HEAP8.buffer),this.heap8=HEAP8,this.ins={exports:{__Z7AMCinitj:Module.__Z7AMCinitj,__Z12AMDecompressv:Module.__Z12AMDecompressv}}}},{key:"init",value:function(){var t=this,e=this.memory=new WebAssembly.Memory({initial:this.memPages});this.dv=new DataView(e.buffer);var n=this.heap8=new Uint8Array(e.buffer),r={global:{NaN:5,Infinity:6},env:{memoryBase:0,memory:e,_malloc:function(){return 2097152},_memset:function(t,e,r){return n.fill(e,t,t+r),t},_printf:function(t,e){for(var r=t;n[r];)r++;var i=String.fromCharCode.apply(String,function(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}(n.slice(t,r))),a=0;i=i.replace(/%([duf])/g,(function(t,n){return"d"===n||"u"===n?dv.getInt32(e+4*a++,!0):"f"===n?dv.getFloat32(e+4*a++,!0):void 0})),console.log(i)}}};return fetch(this.wasmURL).then((function(t){return t.arrayBuffer()})).then((function(t){return WebAssembly.instantiate(t,r)})).then((function(e){t.module=e,t.ins=e.instance,t.isReady=!0})).catch((function(t){return console.log("wasm load error, use js ver")}))}},{key:"getDataAddr",value:function(t){return this.ins.exports.__Z7AMCinitj(t)}},{key:"decompress",value:function(t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var e=this.dv,n=this.heap8,r=this.getDataAddr(t.length);n.set(t,r);var a=this.ins.exports.__Z12AMDecompressv();if(a<=0)throw console.error("decompression error code: "+a),new Error("decompression error code: "+a);for(var s=e.getUint32(a,!0),o=e.getUint32(a+4,!0),u=e.getUint32(a+8,!0),c=e.getUint32(a+12,!0),f=[],h=0;h<c;h++){var l=a+16+12*h;f.push([e.getUint32(l,!0),e.getUint32(l+4,!0),e.getUint32(l+8,!0)])}var d=new Uint32Array(e.buffer,o,3*s);d=u>65536?new Uint32Array(d):new Uint16Array(d);var m=new i(d);return f.forEach((function(t){var n=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,i=!1,a=void 0;try{for(var s,o=t[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,a=t}finally{try{r||null==o.return||o.return()}finally{if(i)throw a}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}(t,3),r=n[0],i=n[1],a=n[2],s=new Float32Array(e.buffer.slice(a,a+u*i*4));m.addAttr(m.attrIdToName(r),s,i)})),m}}])&&r(e.prototype,n),t}();t.exports=a},function(t,e){var n;t.exports=function(){return void 0===n&&(n=function(){if("undefined"==typeof WebAssembly||"undefined"==typeof fetch||function(){if(!/iPad|iPhone|iPod/i.test(navigator.userAgent))return!1;if(/OS (\d+)_(\d+)_?(\d+)?/i.test(navigator.userAgent)){var t=Number(RegExp.$1),e=Number(RegExp.$2);if(11===t&&e>=3||t>11)return!1}return!0}())return!1;try{var t=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),e=new WebAssembly.Module(t);return 0!==new WebAssembly.Instance(e,{}).exports.test(4)}catch(t){return console.log("err while check WebAssembly",t),!1}}()),n}}])},function(t,e,n){"use strict";var r=n(33),i=n.n(r),a=n(1),s=n(5),o=a.a.create({className:"Ray",isRay:!0,origin:{get:function(){return this._origin},set:function(t){this._origin=t,this._ray.origin=t.elements}},direction:{get:function(){return this._direction},set:function(t){this._direction=t,this._ray.direction=t.elements}},constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._ray=new i.a,this.origin=t.origin||new s.a(0,0,0),this.direction=t.direction||new s.a(0,0,-1)},set:function(t,e){return this.origin=t,this.direction=e,this},copy:function(t){this.origin.copy(t.origin),this.direction.copy(t.direction)},clone:function(){return new this.constructor({origin:this.origin.clone(),direction:this.direction.clone()})},fromCamera:function(t,e,n,r,i){t.isPerspectiveCamera?(t.worldMatrix.getTranslation(this.origin),this.direction.set(e,n,0),this.direction.copy(t.unprojectVector(this.direction,r,i)),this.direction.sub(this.origin).normalize()):t.isOrthographicCamera&&(this.origin.set(e,n,(t.near+t.far)/(t.near-t.far)),this.origin.copy(t.unprojectVector(this.origin,r,i)),this.direction.set(0,0,-1).transformDirection(t.worldMatrix).normalize())},transformMat4:function(t){this.origin.transformMat4(t),this.direction.transformDirection(t).normalize()},sortPoints:function(t,e){var n=this;e?t.sort((function(t,r){return n.squaredDistance(t[e])-n.squaredDistance(r[e])})):t.sort((function(t,e){return n.squaredDistance(t)-n.squaredDistance(e)}))},squaredDistance:function(t){return this.origin.squaredDistance(t)},distance:function(t){return this.origin.distance(t)},intersectsSphere:function(t,e){var n=this._ray.intersectsSphere(t,e);return this._getRes(n)},intersectsPlane:function(t,e){var n=this._ray.intersectsPlane(t,e);return this._getRes(n)},intersectsTriangle:function(t){var e=this._ray.intersectsTriangle(t);return this._getRes(e)},intersectsBox:function(t){var e=this._ray.intersectsBox(t);return this._getRes(e)},intersectsTriangleCell:function(t,e){var n=this._ray.intersectsTriangleCell(t,e);return this._getRes(n)},_getRes:function(t){return t?new s.a(t[0],t[1],t[2]):null}});e.a=o},function(t,e,n){"use strict";var r=n(0),i=n(1),a=n(5),s=i.a.create({Extends:a.a,className:"Vector3Notifier",isVector3Notifier:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.elements=r.vec3.fromValues(t,e,n)},onUpdate:function(){},copy:function(t){return r.vec3.copy(this.elements,t.elements),this.onUpdate(),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[0+e]=n[0],t[1+e]=n[1],t[2+e]=n[2],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e+0],n[1]=t[e+1],n[2]=t[e+2],this.onUpdate(),this},set:function(t,e,n){return r.vec3.set(this.elements,t,e,n),this.onUpdate(),this},add:function(t,e){return e||(e=t,t=this),r.vec3.add(this.elements,t.elements,e.elements),this.onUpdate(),this},subtract:function(t,e){return e||(e=t,t=this),r.vec3.subtract(this.elements,t.elements,e.elements),this.onUpdate(),this},multiply:function(t,e){return e||(e=t,t=this),r.vec3.multiply(this.elements,t.elements,e.elements),this.onUpdate(),this},divide:function(t,e){return e||(e=t,t=this),r.vec3.divide(this.elements,t.elements,e.elements),this.onUpdate(),this},ceil:function(){return r.vec3.ceil(this.elements,this.elements),this.onUpdate(),this},floor:function(){return r.vec3.floor(this.elements,this.elements),this.onUpdate(),this},min:function(t,e){return e||(e=t,t=this),r.vec3.min(this.elements,t.elements,e.elements),this.onUpdate(),this},max:function(t,e){return e||(e=t,t=this),r.vec3.max(this.elements,t.elements,e.elements),this.onUpdate(),this},round:function(){return r.vec3.round(this.elements,this.elements),this.onUpdate(),this},scale:function(t){return r.vec3.scale(this.elements,this.elements,t),this.onUpdate(),this},scaleAndAdd:function(t,e,n){return n||(n=e,e=this),r.vec3.scaleAndAdd(this.elements,e.elements,n.elements,t),this.onUpdate(),this},distance:function(t,e){return e||(e=t,t=this),r.vec3.distance(t.elements,e.elements)},squaredDistance:function(t,e){return e||(e=t,t=this),r.vec3.squaredDistance(t.elements,e.elements)},length:function(){return r.vec3.length(this.elements)},squaredLength:function(){return r.vec3.squaredLength(this.elements)},negate:function(){return r.vec3.negate(this.elements,this.elements),this.onUpdate(),this},inverse:function(t){return t||(t=this),r.vec3.inverse(this.elements,t.elements),this.onUpdate(),this},normalize:function(){return r.vec3.normalize(this.elements,this.elements),this.onUpdate(),this},dot:function(t,e){return e||(e=t,t=this),r.vec3.dot(t.elements,e.elements)},cross:function(t,e){return e||(e=t,t=this),r.vec3.cross(this.elements,t.elements,e.elements),this.onUpdate(),this},lerp:function(t,e){return r.vec3.lerp(this.elements,this.elements,t.elements,e),this.onUpdate(),this},hermite:function(t,e,n,i,a){return r.vec3.hermite(this.elements,t.elements,e.elements,n.elements,i.elements,a),this.onUpdate(),this},bezier:function(t,e,n,i,a){return r.vec3.bezier(this.elements,t.elements,e.elements,n.elements,i.elements,a),this.onUpdate(),this},random:function(t){return r.vec3.random(this.elements,t),this.onUpdate(),this},transformMat3:function(t){return r.vec3.transformMat3(this.elements,this.elements,t.elements),this.onUpdate(),this},transformMat4:function(t){return r.vec3.transformMat4(this.elements,this.elements,t.elements),this.onUpdate(),this},transformDirection:function(t){var e=this.elements,n=t.elements,r=e[0],i=e[1],a=e[2];return e[0]=r*n[0]+i*n[4]+a*n[8],e[1]=r*n[1]+i*n[5]+a*n[9],e[2]=r*n[2]+i*n[6]+a*n[10],this.onUpdate(),this},transformQuat:function(t){return r.vec3.transformQuat(this.elements,this.elements,t.elements),this.onUpdate(),this},rotateX:function(t,e){return r.vec3.rotateX(this.elements,this.elements,t.elements,e),this.onUpdate(),this},rotateY:function(t,e){return r.vec3.rotateY(this.elements,this.elements,t.elements,e),this.onUpdate(),this},rotateZ:function(t,e){return r.vec3.rotateZ(this.elements,this.elements,t.elements,e),this.onUpdate(),this},exactEquals:function(t,e){return e||(e=t,t=this),r.vec3.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),r.vec3.equals(t.elements,e.elements)},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this.onUpdate()}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this.onUpdate()}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this.onUpdate()}}});e.a=s},function(t,e){t.exports="#define GLSLIFY 1\n#define HILO_FRONT_SIDE 1028\n#define HILO_BACK_SIDE 1029\n#define HILO_FRONT_AND_BACK_SIDE 1032\n#define HILO_PI 3.141592653589793\n#define HILO_INVERSE_PI 0.3183098861837907"},function(t,e,n){"use strict";var r=n(1),i=n(5),a=r.a.create({className:"Plane",isPlane:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new i.a,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.normal=t,this.distance=e},copy:function(t){return this.normal.copy(t.normal),this.distance=t.distance,this},clone:function(){return new this.constructor(this.normal.clone(),this.distance)},set:function(t,e,n,r){return this.normal.set(t,e,n),this.distance=r,this},normalize:function(){var t=1/this.normal.length();return this.normal.scale(t),this.distance*=t,this},distanceToPoint:function(t){return this.normal.dot(t)+this.distance},projectPoint:function(t){return(new i.a).copy(this.normal).scale(-this.distanceToPoint(t)).add(t)}});e.a=a},function(t,e,n){"use strict";var r=n(1),i=n(5),a=new i.a,s=r.a.create({className:"Sphere",isSphere:!0,radius:0,constructor:function(t){Object.assign(this,t),this.center||(this.center=new i.a(0,0,0))},clone:function(){var t=new this.constructor;return t.copy(this),t},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},fromPoints:function(t){for(var e=this.center,n=0,r=0;r<t.length;r+=3){var i=t[r]-e.x,a=t[r+1]-e.y,s=t[r+2]-e.z;n=Math.max(i*i+a*a+s*s,n)}return this.radius=Math.sqrt(n),this},fromGeometryData:function(t){var e=this.center,n=0;return t.traverse((function(t){var r=t.x-e.x,i=t.y-e.y,a=t.z-e.z;n=Math.max(r*r+i*i+a*a,n)})),this.radius=Math.sqrt(n),this},transformMat4:function(t){this.center.transformMat4(t);var e=t.getScaling(a);return this.radius*=Math.max(e.x,e.y,e.z),this}});e.a=s},function(t,e,n){"use strict";var r,i=n(0),a=n(1),s=n(5),o=n(7),u=n(9),c=new s.a,f=new s.a,h=a.a.create({Extends:o.a,className:"Matrix4Notifier",isMatrix4Notifier:!0,constructor:function(){this.elements=i.mat4.create()},onUpdate:function(){},copy:function(t){return i.mat4.copy(this.elements,t.elements),this.onUpdate(),this},fromArray:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements,r=0;r<16;r++)n[r]=t[e+r];return this.onUpdate(),this},set:function(t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p){return i.mat4.set(this.elements,t,e,n,r,a,s,o,u,c,f,h,l,d,m,_,p),this.onUpdate(),this},identity:function(){return i.mat4.identity(this.elements),this.onUpdate(),this},transpose:function(){return i.mat4.transpose(this.elements,this.elements),this.onUpdate(),this},invert:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.invert(this.elements,t.elements),this.onUpdate(),this},adjoint:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;return i.mat4.adjoint(this.elements,t.elements),this.onUpdate(),this},determinant:function(){return i.mat4.determinant(this.elements)},multiply:function(t,e){return e||(e=t,t=this),i.mat4.multiply(this.elements,t.elements,e.elements),this.onUpdate(),this},premultiply:function(t){return this.multiply(t,this),this.onUpdate(),this},translate:function(t){return i.mat4.translate(this.elements,this.elements,t.elements),this.onUpdate(),this},scale:function(t){return i.mat4.scale(this.elements,this.elements,t.elements),this.onUpdate(),this},rotate:function(t,e){return i.mat4.rotate(this.elements,this.elements,t,e.elements),this.onUpdate(),this},rotateX:function(t){return i.mat4.rotateX(this.elements,this.elements,t),this.onUpdate(),this},rotateY:function(t){return i.mat4.rotateY(this.elements,this.elements,t),this.onUpdate(),this},rotateZ:function(t){return i.mat4.rotateZ(this.elements,this.elements,t),this.onUpdate(),this},fromTranslation:function(t){return i.mat4.fromTranslation(this.elements,t.elements),this.onUpdate(),this},fromScaling:function(t){return i.mat4.fromScaling(this.elements,t.elements),this.onUpdate(),this},fromRotation:function(t,e){return i.mat4.fromRotation(this.elements,t,e.elements),this.onUpdate(),this},fromXRotation:function(t){return i.mat4.fromXRotation(this.elements,t),this.onUpdate(),this},fromYRotation:function(t){return i.mat4.fromYRotation(this.elements,t),this.onUpdate(),this},fromZRotation:function(t){return i.mat4.fromZRotation(this.elements,t),this.onUpdate(),this},fromRotationTranslation:function(t,e){return i.mat4.fromRotationTranslation(this.elements,t.elements,e.elements),this.onUpdate(),this},getTranslation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new s.a;return i.mat4.getTranslation(t.elements,this.elements),t},getScaling:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new s.a;return i.mat4.getScaling(t.elements,this.elements),t},getRotation:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new u.a;return i.mat4.getRotation(t.elements,this.elements),t},fromRotationTranslationScale:function(t,e,n){return i.mat4.fromRotationTranslationScale(this.elements,t.elements,e.elements,n.elements),this.onUpdate(),this},fromRotationTranslationScaleOrigin:function(t,e,n,r,a){return i.mat4.fromRotationTranslationScaleOrigin(this.elements,t.elements,e.elements,n.elements,r.elements),a||this.onUpdate(),this},fromQuat:function(t){return i.mat4.fromQuat(this.elements,t.elements),this.onUpdate(),this},frustum:function(t,e,n,r,a,s){return i.mat4.frustum(this.elements,t,e,n,r,a,s),this.onUpdate(),this},perspective:function(t,e,n,r){return i.mat4.perspective(this.elements,t,e,n,r),this.onUpdate(),this},perspectiveFromFieldOfView:function(t,e,n){return i.mat4.perspectiveFromFieldOfView(this.elements,t,e,n),this.onUpdate(),this},ortho:function(t,e,n,r,a,s){return i.mat4.ortho(this.elements,t,e,n,r,a,s),this.onUpdate(),this},lookAt:function(t,e,n){return t.isVector3||(t=c.set(t.x,t.y,t.z)),e.isVector3||(e=f.set(e.x,e.y,e.z)),i.mat4.lookAt(this.elements,t.elements,e.elements,n.elements),this.onUpdate(),this},targetTo:function(t,e,n){t.isVector3||(t=c.set(t.x,t.y,t.z)),e.isVector3||(e=f.set(e.x,e.y,e.z)),t=t.elements,e=e.elements,n=n.elements;var r=this.elements,i=t[0],a=t[1],s=t[2],o=n[0],u=n[1],h=n[2],l=i-e[0],d=a-e[1],m=s-e[2],_=l*l+d*d+m*m;_>0?(l*=_=1/Math.sqrt(_),d*=_,m*=_):m=1;var p=u*m-h*d,g=h*l-o*m,E=o*d-u*l;return(_=p*p+g*g+E*E)>0?(p*=_=1/Math.sqrt(_),g*=_,E*=_):(_=(p=u*m-h*d)*p+(g=h*l-(o+=1e-7)*m)*g+(E=o*d-u*l)*E,p*=_=1/Math.sqrt(_),g*=_,E*=_),r[0]=p,r[1]=g,r[2]=E,r[3]=0,r[4]=d*E-m*g,r[5]=m*p-l*E,r[6]=l*g-d*p,r[7]=0,r[8]=l,r[9]=d,r[10]=m,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,this.onUpdate(),this},frob:function(){return i.mat4.frob(this.elements)},add:function(t,e){return e||(e=t,t=this),i.mat4.add(this.elements,t.elements,e.elements),this.onUpdate(),this},subtract:function(t,e){return e||(e=t,t=this),i.mat4.subtract(this.elements,t.elements,e.elements),this.onUpdate(),this},exactEquals:function(t,e){return e||(e=t,t=this),i.mat4.exactEquals(t.elements,e.elements)},equals:function(t,e){return e||(e=t,t=this),i.mat4.equals(t.elements,e.elements)},compose:function(t,e,n,r){return r?this.fromRotationTranslationScaleOrigin(t,e,n,r):this.fromRotationTranslationScale(t,e,n),this},decompose:function(t,e,n,i){return this.getScaling(n),this.getTranslation(e),r||(r=new o.a),this.determinant()<0&&(n.x*=-1),r.copy(this),c.inverse(n),r.scale(c),t.fromMat4(r),i&&i.set(0,0,0),this}});e.a=h},function(t,e,n){"use strict";var r=n(1),i=n(6),a=n(12),s=i.a.DEG2RAD,o=i.a.RAD2DEG,u=r.a.create({Extends:a.a,className:"EulerNotifier",isEulerNotifier:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;a.a.call(this,t,e,n)},onUpdate:function(){},updateDegrees:function(){return u.superclass.updateDegrees.call(this),this.onUpdate(),this},updateRadians:function(){return u.superclass.updateRadians.call(this),this.onUpdate(),this},degX:{get:function(){return this._degX},set:function(t){this._degX=t,this.elements[0]=t*s,this.onUpdate()}},degY:{get:function(){return this._degY},set:function(t){this._degY=t,this.elements[1]=t*s,this.onUpdate()}},degZ:{get:function(){return this._degZ},set:function(t){this._degZ=t,this.elements[2]=t*s,this.onUpdate()}},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this._degX=t*o,this.onUpdate()}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this._degY=t*o,this.onUpdate()}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this._degZ=t*o,this.onUpdate()}}});e.a=u},function(t,e,n){"use strict";var r=n(1),i=n(18),a=r.a.create({className:"Frustum",isFrustum:!0,constructor:function(){this.planes=[];for(var t=6;t--;)this.planes.push(new i.a)},copy:function(t){var e=t.planes;return this.planes.forEach((function(t,n){t.copy(e[n])})),this},clone:function(){var t=new this.constructor;return t.copy(this),t},fromMatrix:function(t){var e=this.planes,n=t.elements,r=n[0],i=n[1],a=n[2],s=n[3],o=n[4],u=n[5],c=n[6],f=n[7],h=n[8],l=n[9],d=n[10],m=n[11],_=n[12],p=n[13],g=n[14],E=n[15];return e[0].set(s-r,f-o,m-h,E-_).normalize(),e[1].set(s+r,f+o,m+h,E+_).normalize(),e[2].set(s+i,f+u,m+l,E+p).normalize(),e[3].set(s-i,f-u,m-l,E-p).normalize(),e[4].set(s-a,f-c,m-d,E-g).normalize(),e[5].set(s+a,f+c,m+d,E+g).normalize(),this},intersectsSphere:function(t){for(var e=this.planes,n=t.center,r=-t.radius,i=0;i<6;i++){if(e[i].distanceToPoint(n)<r)return!1}return!0}});e.a=a},function(t,e){t.exports="#ifndef HILO_IS_WEBGL2\n #ifdef HILO_USE_SHADER_TEXTURE_LOD\n #extension GL_EXT_shader_texture_lod: enable\n #endif\n\n #ifdef HILO_USE_FRAG_DEPTH\n #extension GL_EXT_frag_depth: enable\n #endif\n\n #ifdef HILO_USE_DRAW_BUFFERS\n #extension GL_EXT_draw_buffers: enable\n#define GLSLIFY 1\n\n #endif\n#endif"},function(t,e){t.exports="#ifdef GL_ES\nprecision HILO_MAX_FRAGMENT_PRECISION float;\n#define GLSLIFY 1\n#endif"},function(t,e){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},function(t,e,n){"use strict";n.r(e),n.d(e,"Color",(function(){return r.a})),n.d(e,"Euler",(function(){return i.a})),n.d(e,"EulerNotifier",(function(){return a.a})),n.d(e,"Frustum",(function(){return s.a})),n.d(e,"math",(function(){return o.a})),n.d(e,"Matrix3",(function(){return u.a})),n.d(e,"Matrix4",(function(){return c.a})),n.d(e,"Matrix4Notifier",(function(){return f.a})),n.d(e,"Plane",(function(){return h.a})),n.d(e,"Quaternion",(function(){return l.a})),n.d(e,"Ray",(function(){return d.a})),n.d(e,"Sphere",(function(){return m.a})),n.d(e,"SphericalHarmonics3",(function(){return v})),n.d(e,"Vector2",(function(){return T.a})),n.d(e,"Vector3",(function(){return p.a})),n.d(e,"Vector3Notifier",(function(){return A.a})),n.d(e,"Vector4",(function(){return M.a}));var r=n(8),i=n(12),a=n(21),s=n(22),o=n(6),u=n(10),c=n(7),f=n(20),h=n(18),l=n(9),d=n(15),m=n(19),_=n(1),p=n(5),g=new Float32Array(27),E=_.a.create({className:"SphericalHarmonics3",isSphericalHarmonics3:!0,Statics:{SH3_SCALE:[Math.sqrt(1/(4*Math.PI)),-Math.sqrt(3/(4*Math.PI)),Math.sqrt(3/(4*Math.PI)),-Math.sqrt(3/(4*Math.PI)),Math.sqrt(15/(4*Math.PI)),-Math.sqrt(15/(4*Math.PI)),Math.sqrt(5/(16*Math.PI)),-Math.sqrt(15/(4*Math.PI)),Math.sqrt(15/(16*Math.PI))]},constructor:function(){this.coefficients=[];for(var t=0;t<9;t++)this.coefficients.push(new p.a)},scale:function(t){return this.coefficients.forEach((function(e){e.scale(t)})),this},fromArray:function(t){return 9===t.length?this.coefficients.forEach((function(e,n){e.fromArray(t[n])})):27===t.length&&this.coefficients.forEach((function(e,n){e.fromArray(t,3*n)})),this},scaleForRender:function(){var t=E.SH3_SCALE;return this.coefficients.forEach((function(e,n){e.scale(t[n])})),this.scale(1/Math.PI),this},toArray:function(){return this.coefficients.forEach((function(t,e){t.toArray(g,3*e)})),g},clone:function(){var t=new this.constructor;return t.copy(this),t},copy:function(t){var e=t.coefficients;return this.coefficients.forEach((function(t,n){t.copy(e[n])})),this}}),v=E,T=n(13),A=n(16),M=n(11)},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_USE_LOG_DEPTH) && defined(HILO_USE_FRAG_DEPTH)\n uniform float u_logDepth;\n varying float v_fragDepth;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_USE_LOG_DEPTH) && defined(HILO_USE_FRAG_DEPTH)\n gl_FragDepthEXT = log2( v_fragDepth ) * u_logDepth * 0.5;\n#endif"},function(t,e){t.exports=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}},function(t,e){t.exports=function(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}},function(t,e){t.exports=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}},function(t,e){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},function(t,e,n){var r=n(87),i=n(89),a=n(90),s=n(93),o=n(32),u=[[0,0,0],[0,0,0],[0,0,0]],c=[0,0,0];function f(t,e){this.origin=t||[0,0,0],this.direction=e||[0,0,-1]}t.exports=f,f.prototype.set=function(t,e){this.origin=t,this.direction=e},f.prototype.copy=function(t){o(this.origin,t.origin),o(this.direction,t.direction)},f.prototype.clone=function(){var t=new f;return t.copy(this),t},f.prototype.intersectsSphere=function(t,e){return a(c,this.origin,this.direction,t,e)},f.prototype.intersectsPlane=function(t,e){return i(c,this.origin,this.direction,t,e)},f.prototype.intersectsTriangle=function(t){return r(c,this.origin,this.direction,t)},f.prototype.intersectsBox=function(t){return s(c,this.origin,this.direction,t)},f.prototype.intersectsTriangleCell=function(t,e){var n=t[0],r=t[1],i=t[2];return u[0]=e[n],u[1]=e[r],u[2]=e[i],this.intersectsTriangle(u)}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_COLOR\n varying vec4 v_color;\n#endif\n\n#ifdef HILO_USE_HDR\n uniform float u_exposure;\n#endif\n\n#ifdef HILO_GAMMA_CORRECTION\n uniform float u_gammaFactor;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_TEXCOORD0\n varying vec2 v_texcoord0;\n#endif\n\n#ifdef HILO_HAS_TEXCOORD1\n varying vec2 v_texcoord1;\n#endif\n\n#if defined(HILO_HAS_TEXCOORD0) || defined(HILO_HAS_TEXCOORD1)\n #if defined(HILO_HAS_TEXCOORD0) && defined(HILO_HAS_TEXCOORD1)\n #define HILO_SAMPLER_2D hiloSampler2D\n // https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Opaque_types\n #define HILO_TEXTURE_2D(HILO_SAMPLER_2D) hiloTexture2D(HILO_SAMPLER_2D.texture, HILO_SAMPLER_2D.uv)\n struct hiloSampler2D{\n sampler2D texture;\n int uv; \n };\n \n vec4 hiloTexture2D(sampler2D texture, int uv){\n if(uv == 0){\n return texture2D(texture, v_texcoord0);\n }\n else{\n return texture2D(texture, v_texcoord1);\n }\n }\n #else\n #ifdef HILO_HAS_TEXCOORD1\n #define HILO_V_TEXCOORD v_texcoord1\n #else\n #define HILO_V_TEXCOORD v_texcoord0\n #endif\n #define HILO_SAMPLER_2D sampler2D\n #define HILO_TEXTURE_2D(HILO_SAMPLER_2D) texture2D(HILO_SAMPLER_2D, HILO_V_TEXCOORD)\n #endif\n#endif\n\n\n#ifdef HILO_DIFFUSE_CUBE_MAP\n varying vec3 v_position;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_NORMAL\n varying vec3 v_normal;\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n varying mat3 v_TBN;\n #ifdef HILO_NORMAL_MAP\n uniform HILO_SAMPLER_2D u_normalMap;\n \n #ifdef HILO_NORMAL_MAP_SCALE\n uniform float u_normalMapScale;\n #endif\n #endif\n\n #ifdef HILO_CLEARCOAT_NORMAL_MAP\n uniform HILO_SAMPLER_2D u_clearcoatNormalMap;\n #endif\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FRAG_POS)\n varying vec3 v_fragPos;\n#endif"},function(t,e,n){t.exports="#define GLSLIFY 1\n#ifdef HILO_DIRECTIONAL_LIGHTS\n uniform vec3 u_directionalLightsColor[HILO_DIRECTIONAL_LIGHTS];\n uniform vec3 u_directionalLightsInfo[HILO_DIRECTIONAL_LIGHTS];\n #ifdef HILO_DIRECTIONAL_LIGHTS_SMC\n uniform sampler2D u_directionalLightsShadowMap[HILO_DIRECTIONAL_LIGHTS_SMC];\n uniform vec2 u_directionalLightsShadowMapSize[HILO_DIRECTIONAL_LIGHTS_SMC];\n uniform mat4 u_directionalLightSpaceMatrix[HILO_DIRECTIONAL_LIGHTS_SMC];\n uniform vec2 u_directionalLightsShadowBias[HILO_DIRECTIONAL_LIGHTS_SMC];\n #endif\n#endif\n\n#ifdef HILO_SPOT_LIGHTS\n uniform vec3 u_spotLightsPos[HILO_SPOT_LIGHTS];\n uniform vec3 u_spotLightsDir[HILO_SPOT_LIGHTS];\n uniform vec3 u_spotLightsColor[HILO_SPOT_LIGHTS];\n uniform vec2 u_spotLightsCutoffs[HILO_SPOT_LIGHTS];\n uniform vec3 u_spotLightsInfo[HILO_SPOT_LIGHTS];\n uniform float u_spotLightsRange[HILO_SPOT_LIGHTS];\n #ifdef HILO_SPOT_LIGHTS_SMC\n uniform sampler2D u_spotLightsShadowMap[HILO_SPOT_LIGHTS_SMC];\n uniform vec2 u_spotLightsShadowMapSize[HILO_SPOT_LIGHTS_SMC];\n uniform mat4 u_spotLightSpaceMatrix[HILO_SPOT_LIGHTS_SMC];\n uniform vec2 u_spotLightsShadowBias[HILO_SPOT_LIGHTS_SMC];\n #endif\n#endif\n\n#ifdef HILO_POINT_LIGHTS\n uniform vec3 u_pointLightsPos[HILO_POINT_LIGHTS];\n uniform vec3 u_pointLightsColor[HILO_POINT_LIGHTS];\n uniform vec3 u_pointLightsInfo[HILO_POINT_LIGHTS];\n uniform float u_pointLightsRange[HILO_POINT_LIGHTS];\n #ifdef HILO_POINT_LIGHTS_SMC\n uniform samplerCube u_pointLightsShadowMap[HILO_POINT_LIGHTS_SMC];\n uniform mat4 u_pointLightSpaceMatrix[HILO_POINT_LIGHTS_SMC];\n uniform vec2 u_pointLightsShadowBias[HILO_POINT_LIGHTS_SMC];\n uniform vec2 u_pointLightCamera[HILO_POINT_LIGHTS_SMC];\n #endif\n#endif\n\n#ifdef HILO_AREA_LIGHTS\n uniform vec3 u_areaLightsPos[HILO_AREA_LIGHTS];\n uniform vec3 u_areaLightsColor[HILO_AREA_LIGHTS];\n uniform vec3 u_areaLightsWidth[HILO_AREA_LIGHTS];\n uniform vec3 u_areaLightsHeight[HILO_AREA_LIGHTS];\n uniform sampler2D u_areaLightsLtcTexture1;\n uniform sampler2D u_areaLightsLtcTexture2;\n\n "+n(104)+"\n#endif\n\n#ifdef HILO_AMBIENT_LIGHTS\n uniform vec3 u_ambientLightsColor;\n#endif\n\n"+n(57)+"\n"+n(58)+"\n"+n(59)+"\n"+n(60)+"\n"+n(61)},function(t,e){t.exports="#define GLSLIFY 1\nvec4 textureEnvMap(sampler2D uTexture, vec3 position){\n return texture2D(uTexture, vec2(atan(position.x, position.z) * HILO_INVERSE_PI * 0.5+0.5, acos(position.y) * HILO_INVERSE_PI));\n}\n\nvec4 textureEnvMap(samplerCube uTexture, vec3 position){\n return textureCube(uTexture, position);\n}\n\nvec4 textureEnvMapIncludeMipmapsLod(sampler2D uTexture, vec3 position, float lod){\n lod = floor(lod);\n vec2 uv = vec2(atan(position.x, position.z) * HILO_INVERSE_PI * 0.5+0.5, acos(position.y) * HILO_INVERSE_PI);\n\n float scale = pow(2.0, lod);\n\n return texture2D(uTexture, vec2(uv.x / scale, (uv.y / scale / 2.0) + 1.0 - 1.0/pow(2.0, lod)));\n}\n\n#ifdef HILO_USE_SHADER_TEXTURE_LOD\n vec4 textureEnvMapLod(sampler2D uTexture, vec3 position, float lod){\n return texture2DLodEXT(uTexture, vec2(atan(position.x, position.z) * HILO_INVERSE_PI * 0.5+0.5, acos(position.y) * HILO_INVERSE_PI), lod);\n }\n\n vec4 textureEnvMapLod(samplerCube uTexture, vec3 position, float lod){\n return textureCubeLodEXT(uTexture, position, lod);\n }\n#endif\n\n"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_TRANSPARENCY_MAP\n uniform HILO_SAMPLER_2D u_transparency;\n#else\n uniform float u_transparency;\n#endif\n\n#ifdef HILO_ALPHA_CUTOFF\n uniform float u_alphaCutoff;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_FOG\n varying float v_dist;\n uniform vec4 u_fogColor;\n \n #ifdef HILO_FOG_LINEAR\n uniform vec2 u_fogInfo;\n #else\n uniform float u_fogInfo;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_NORMAL_MAP\n vec3 normal = HILO_TEXTURE_2D(u_normalMap).rgb * 2.0 - 1.0;\n #ifdef HILO_NORMAL_MAP_SCALE\n normal.xy *= u_normalMapScale;\n #endif\n normal = normalize(v_TBN * normal);\n#elif defined(HILO_HAS_NORMAL)\n vec3 normal = normalize(v_normal);\n#else\n vec3 normal = vec3(0, 0, 1);\n#endif\n\n#ifdef HILO_HAS_CLEARCOAT\n #ifdef HILO_CLEARCOAT_NORMAL_MAP\n vec3 clearcoatNormal = HILO_TEXTURE_2D(u_clearcoatNormalMap).rgb * 2.0 - 1.0;\n clearcoatNormal = normalize(v_TBN * clearcoatNormal);\n #elif defined(HILO_HAS_NORMAL)\n vec3 clearcoatNormal = normalize(v_normal);\n #else\n vec3 clearcoatNormal = vec3(0, 0, 1);\n #endif\n#endif\n\n#if HILO_SIDE == HILO_BACK_SIDE\n normal = -normal;\n #ifdef HILO_HAS_CLEARCOAT\n clearcoatNormal = -clearcoatNormal;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_LIGHT\n #if HILO_SIDE == HILO_FRONT_AND_BACK_SIDE\n normal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\nfloat transparency = 1.0;\n#ifdef HILO_TRANSPARENCY_MAP\n transparency = HILO_TEXTURE_2D(u_transparency).r;\n#else\n transparency = u_transparency;\n#endif\ncolor.a *= transparency;\n#ifdef HILO_ALPHA_CUTOFF\n if (color.a < u_alphaCutoff) {\n discard;\n } else {\n color.a = 1.0;\n }\n#endif"},function(t,e,n){t.exports="#define GLSLIFY 1\n#ifdef HILO_IGNORE_TRANSPARENT\ncolor.a = 1.0;\n#endif\n\n#ifdef HILO_USE_HDR\n color.rgb = vec3(1.0) - exp(-color.rgb * u_exposure);\n#endif\n\n#ifdef HILO_GAMMA_CORRECTION\n color.rgb = pow(color.rgb, vec3(1.0 / u_gammaFactor));\n#endif\n\n"+n(66)+"\n\n#ifdef HILO_PREMULTIPLY_ALPHA\n color.rgb *= color.a;\n#endif\n\ngl_FragColor = color;"},function(t,e){t.exports="#define GLSLIFY 1\n"},function(t,e){t.exports="#ifdef GL_ES\nprecision HILO_MAX_VERTEX_PRECISION float;\n#define GLSLIFY 1\n#endif"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(23)+"\n"+n(17)+"\n"+n(24)+"\n\n"+n(35)+"\n"+n(36)+"\n"+n(37)+"\n"+n(38)+"\n"+n(55)+"\n"+n(39)+"\n"+n(62)+"\n"+n(41)+"\n"+n(42)+"\n"+n(27)+"\n\nvoid main(void) {\n vec4 diffuse = vec4(0., 0., 0., 1.);\n vec4 color = vec4(0., 0., 0., 1.);\n\n "+n(43)+"\n "+n(44)+"\n "+n(64)+"\n "+n(65)+"\n "+n(45)+"\n "+n(46)+"\n "+n(28)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(47)+"\n"+n(17)+"\n"+n(48)+"\n\nattribute vec3 a_position;\nuniform mat4 u_modelViewProjectionMatrix;\n\n"+n(67)+"\n"+n(68)+"\n"+n(69)+"\n"+n(70)+"\n"+n(71)+"\n"+n(72)+"\n"+n(73)+"\n"+n(74)+"\nvoid main(void) {\n vec4 pos = vec4(a_position, 1.0);\n #ifdef HILO_HAS_TEXCOORD0\n vec2 uv = a_texcoord0;\n #endif\n #ifdef HILO_HAS_TEXCOORD1\n vec2 uv1 = a_texcoord1;\n #endif\n #ifdef HILO_HAS_NORMAL\n vec3 normal = a_normal;\n #endif\n\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n vec4 tangent = a_tangent;\n #endif\n\n "+n(75)+"\n "+n(76)+"\n "+n(77)+"\n "+n(78)+"\n "+n(79)+"\n "+n(80)+"\n "+n(81)+"\n\n gl_Position = u_modelViewProjectionMatrix * pos;\n\n "+n(82)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(23)+"\n"+n(17)+"\n"+n(24)+"\n\n#if defined(HILO_VERTEX_TYPE_POSITION)\n varying vec3 v_fragPos;\n#elif defined(HILO_VERTEX_TYPE_NORMAL)\n varying vec3 v_normal;\n#elif defined(HILO_VERTEX_TYPE_DEPTH)\n uniform float u_cameraFar;\n uniform float u_cameraNear;\n uniform float u_cameraType;\n#elif defined(HILO_VERTEX_TYPE_DISTANCE)\n "+n(83)+"\n\n uniform float u_cameraFar;\n uniform float u_cameraNear;\n varying vec3 v_fragPos;\n#endif\n\nvec4 transformDataToColor(vec3 data){\n #ifdef HILO_WRITE_ORIGIN_DATA\n return vec4(data, 1.0);\n #else\n return vec4(data * 0.5 + 0.5, 1.0);\n #endif\n}\n\n"+n(27)+"\n\nvoid main(void) {\n #if defined(HILO_VERTEX_TYPE_POSITION)\n gl_FragColor = transformDataToColor(v_fragPos);\n #elif defined(HILO_VERTEX_TYPE_NORMAL)\n gl_FragColor = transformDataToColor(v_normal);\n #elif defined(HILO_VERTEX_TYPE_DEPTH)\n float z;\n #ifdef HILO_WRITE_ORIGIN_DATA\n z = gl_FragCoord.z;\n #else\n // OrthographicCamera\n if(u_cameraType < 1.0){\n z = gl_FragCoord.z;\n }\n // PerspectiveCamera\n else{\n z = gl_FragCoord.z * 2.0 - 1.0;\n z = (2.0 * u_cameraNear * u_cameraFar) / (u_cameraFar + u_cameraNear - z * (u_cameraFar - u_cameraNear));\n }\n #endif\n gl_FragColor = vec4(z, z, z, 1.0);\n #elif defined(HILO_VERTEX_TYPE_DISTANCE)\n float distance = length(v_fragPos);\n #ifdef HILO_WRITE_ORIGIN_DATA\n gl_FragColor = vec4(distance, distance, distance, 1.0);\n #else\n gl_FragColor = packFloat((distance - u_cameraNear)/(u_cameraFar - u_cameraNear));\n #endif\n #endif\n "+n(28)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(23)+"\n"+n(17)+"\n"+n(24)+"\n\n"+n(35)+"\n"+n(36)+"\n"+n(37)+"\n"+n(38)+"\n"+n(84)+"\n"+n(39)+"\n"+n(41)+"\n"+n(42)+"\n"+n(27)+"\n\nvoid main(void) {\n vec4 color = vec4(0., 0., 0., 1.);\n\n "+n(43)+"\n "+n(44)+"\n "+n(86)+"\n "+n(46)+"\n "+n(28)+"\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(23)+"\n"+n(17)+"\n"+n(24)+"\n\nvarying vec2 v_texcoord0;\nuniform sampler2D u_diffuse;\n\nvoid main(void) { \n gl_FragColor = texture2D(u_diffuse, v_texcoord0);\n}"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(47)+"\n"+n(17)+"\n"+n(48)+"\n\nattribute vec2 a_position;\nattribute vec2 a_texcoord0;\nvarying vec2 v_texcoord0;\n\n\nvoid main(void) {\n vec4 pos = vec4(a_position, 0.0, 1.0);\n gl_Position = pos;\n v_texcoord0 = a_texcoord0;\n}"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_DIFFUSE_MAP)\n uniform HILO_SAMPLER_2D u_diffuse;\n#elif defined(HILO_DIFFUSE_CUBE_MAP)\n uniform samplerCube u_diffuse;\n#else\n uniform vec4 u_diffuse;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifndef HILO_IS_WEBGL2\n float transpose(float m) {\n return m;\n }\n\n mat2 transpose(mat2 m) {\n return mat2(m[0][0], m[1][0],\n m[0][1], m[1][1]);\n }\n\n mat3 transpose(mat3 m) {\n return mat3(m[0][0], m[1][0], m[2][0],\n m[0][1], m[1][1], m[2][1],\n m[0][2], m[1][2], m[2][2]);\n }\n\n mat4 transpose(mat4 m) {\n return mat4(m[0][0], m[1][0], m[2][0], m[3][0],\n m[0][1], m[1][1], m[2][1], m[3][1],\n m[0][2], m[1][2], m[2][2], m[3][2],\n m[0][3], m[1][3], m[2][3], m[3][3]);\n }\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\nfloat getDiffuse(vec3 normal, vec3 lightDir){\n return max(dot(normal, lightDir), 0.0);\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nfloat getSpecular(vec3 cameraPos, vec3 fragPos, vec3 lightDir, vec3 normal, float shininess){\n vec3 viewDir = normalize(cameraPos - fragPos);\n #ifdef LIGHT_TYPE_PHONG\n return pow(max(dot(viewDir, reflect(-lightDir, normal), 0.0), shininess);\n #else\n return pow(max(dot(normal, normalize(lightDir + viewDir)), 0.0), shininess);\n #endif\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nfloat getLightAttenuation(vec3 distanceVec, vec3 info, float range){\n float distance = length(distanceVec);\n float attenuation = 1.0;\n #ifdef HILO_USE_PHYSICS_LIGHT\n attenuation = max(1.0 / (distance * distance), 0.001);\n if (range > 0.0) {\n attenuation *= max(min(1.0 - pow( distance / range, 4.0 ), 1.0), 0.0);\n }\n #else\n attenuation = 1.0/(info.x + info.y * distance + info.z * distance * distance);\n #endif\n\n return attenuation;\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nfloat unpackFloat(vec4 rgbaDepth) {\n const vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n float depth = dot(rgbaDepth, bitShift);\n return depth;\n}\n\n"},function(t,e){t.exports="#define GLSLIFY 1\nbool isOutOfRange(vec2 pos) {\n if (pos.x < 0.0 || pos.x > 1.0 || pos.y < 0.0 || pos.y > 1.0) {\n return true;\n }\n return false;\n}\n\nfloat getShadow(sampler2D shadowMap, vec2 shadowMapSize, float bias, vec3 fragPos, mat4 lightSpaceMatrix) {\n vec4 fragPosLightSpace = lightSpaceMatrix * vec4(fragPos, 1.0);\n vec3 projCoords = fragPosLightSpace.xyz / fragPosLightSpace.w;\n projCoords = projCoords * 0.5 + 0.5;\n if (isOutOfRange(projCoords.xy)) {\n return 1.0;\n }\n float currentDepth = projCoords.z;\n float shadow = 0.0;\n vec2 texelSize = 1.0 / shadowMapSize;\n for (int x = -1; x <= 1; ++x) {\n for (int y = -1; y <= 1; ++y) {\n vec2 pos = projCoords.xy + vec2(x, y) * texelSize;\n if (!isOutOfRange(pos)) {\n float pcfDepth = texture2D(shadowMap, pos).r;\n shadow += currentDepth - bias > pcfDepth ? 1.0 : 0.0;\n }\n }\n }\n return 1.0 - shadow / 9.0;\n}\n\nfloat getShadow(samplerCube shadowMap, float bias, vec3 lightPos, vec3 position, vec2 camera, mat4 lightSpaceMatrix) {\n vec4 distanceVec = lightSpaceMatrix * vec4(position, 1.0) - lightSpaceMatrix * vec4(lightPos, 1.0);\n float currentDistance = length(distanceVec);\n vec3 direction = normalize(distanceVec).xyz;\n\n float shadow = 0.0;\n const float samples = 2.0;\n const float offset = 0.01;\n const float step = offset / (samples * 0.5);\n for(float x = -offset; x < offset; x +=step)\n {\n for(float y = -offset; y < offset; y +=step)\n {\n for(float z = -offset; z < offset; z +=step)\n {\n float closestDistance = camera[0] + (camera[1] - camera[0]) * unpackFloat(textureCube(shadowMap, direction + vec3(x, y, z)));\n if (closestDistance == camera[0]) {\n continue;\n }\n else if(currentDistance - bias > closestDistance)\n shadow += 1.0;\n }\n }\n }\n shadow /= (samples * samples * samples);\n\n return 1.0 - shadow;\n}\n\n"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(40)+"\n"+n(63)+"\n\n#ifdef HILO_HAS_LIGHT\n #ifdef HILO_HAS_SPECULAR\n uniform float u_shininess;\n #ifdef HILO_SPECULAR_MAP\n uniform HILO_SAMPLER_2D u_specular;\n #else\n uniform vec4 u_specular;\n #endif\n #endif\n #ifdef HILO_EMISSION_MAP\n uniform HILO_SAMPLER_2D u_emission;\n #else\n uniform vec4 u_emission;\n #endif\n #ifdef HILO_AMBIENT_MAP\n uniform HILO_SAMPLER_2D u_ambient;\n #endif\n #ifdef HILO_SPECULAR_ENV_MAP\n #ifdef HILO_SPECULAR_ENV_MAP_CUBE\n uniform samplerCube u_specularEnvMap;\n #else\n uniform sampler2D u_specularEnvMap;\n #endif\n uniform mat4 u_specularEnvMatrix;\n uniform float u_reflectivity;\n uniform float u_refractRatio;\n uniform float u_refractivity;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_FIX_MAX_BUG\n float hilo_max(float a, float b){\n if (a > b) {\n return a;\n }\n return b;\n }\n #define HILO_MAX(a, b) hilo_max(a, b);\n#else\n #define HILO_MAX(a, b) max(a, b);\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_DIFFUSE_MAP)\n diffuse = HILO_TEXTURE_2D(u_diffuse);\n#elif defined(HILO_DIFFUSE_CUBE_MAP)\n diffuse = textureCube(u_diffuse, v_position);\n#elif defined(HILO_HAS_COLOR)\n diffuse = v_color;\n#else\n diffuse = u_diffuse;\n#endif\ncolor.a = diffuse.a;"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_LIGHT\n vec3 lightDiffuse = vec3(0, 0, 0);\n vec3 lightAmbient = vec3(0, 0, 0);\n vec3 viewPos = vec3(0, 0, 0);\n\n #ifdef HILO_AMBIENT_MAP\n lightAmbient = HILO_TEXTURE_2D(u_ambient).rgb;\n #else\n lightAmbient = diffuse.rgb;\n #endif\n\n #ifdef HILO_HAS_SPECULAR\n vec3 lightSpecular = vec3(0, 0, 0);\n #ifdef HILO_SPECULAR_MAP\n vec4 specular = HILO_TEXTURE_2D(u_specular);\n #else\n vec4 specular = u_specular;\n #endif\n #endif\n \n #ifdef HILO_EMISSION_MAP\n vec4 emission = HILO_TEXTURE_2D(u_emission);\n #else\n vec4 emission = u_emission;\n #endif\n\n #ifdef HILO_DIRECTIONAL_LIGHTS\n for(int i = 0;i < HILO_DIRECTIONAL_LIGHTS;i++){\n vec3 lightDir = -u_directionalLightsInfo[i];\n\n float shadow = 1.0;\n #ifdef HILO_DIRECTIONAL_LIGHTS_SMC\n if (i < HILO_DIRECTIONAL_LIGHTS_SMC) {\n float bias = HILO_MAX(u_directionalLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_directionalLightsShadowBias[i][0]);\n shadow = getShadow(u_directionalLightsShadowMap[i], u_directionalLightsShadowMapSize[i], bias, v_fragPos, u_directionalLightSpaceMatrix[i]);\n }\n #endif\n\n float diff = getDiffuse(normal, lightDir);\n lightDiffuse += diff * u_directionalLightsColor[i] * shadow;\n\n #ifdef HILO_HAS_SPECULAR\n float spec = getSpecular(viewPos, v_fragPos, lightDir, normal, u_shininess);\n lightSpecular += spec * u_directionalLightsColor[i] * shadow;\n #endif\n }\n #endif\n\n #ifdef HILO_SPOT_LIGHTS\n for(int i = 0; i < HILO_SPOT_LIGHTS; i++){\n vec3 lightDir = -u_spotLightsDir[i];\n vec3 distanceVec = u_spotLightsPos[i] - v_fragPos;\n\n float shadow = 1.0;\n #ifdef HILO_SPOT_LIGHTS_SMC\n if (i < HILO_SPOT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_spotLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_spotLightsShadowBias[i][0]);\n shadow = getShadow(u_spotLightsShadowMap[i], u_spotLightsShadowMapSize[i], bias, v_fragPos, u_spotLightSpaceMatrix[i]);\n }\n #endif\n \n float diff = getDiffuse(normal, normalize(distanceVec));\n float theta = dot(normalize(distanceVec), lightDir);\n float epsilon = u_spotLightsCutoffs[i][0] - u_spotLightsCutoffs[i][1];\n float intensity = clamp((theta - u_spotLightsCutoffs[i][1]) / epsilon, 0.0, 1.0);\n float attenuation = getLightAttenuation(distanceVec, u_spotLightsInfo[i], u_spotLightsRange[i]);\n\n lightDiffuse += intensity * attenuation * shadow * diff * u_spotLightsColor[i];\n\n #ifdef HILO_HAS_SPECULAR\n float spec = getSpecular(viewPos, v_fragPos, lightDir, normal, u_shininess);\n lightSpecular += intensity * attenuation * shadow * spec * u_spotLightsColor[i];\n #endif\n }\n #endif\n\n #ifdef HILO_POINT_LIGHTS\n for(int i = 0;i < HILO_POINT_LIGHTS;i++){\n vec3 distanceVec = u_pointLightsPos[i] - v_fragPos;\n vec3 lightDir = normalize(distanceVec);\n\n float shadow = 1.0;\n #ifdef HILO_POINT_LIGHTS_SMC\n if (i < HILO_POINT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_pointLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_pointLightsShadowBias[i][0]);\n shadow = getShadow(u_pointLightsShadowMap[i], bias, u_pointLightsPos[i], v_fragPos, u_pointLightCamera[i], u_pointLightSpaceMatrix[i]);\n }\n #endif\n \n float diff = getDiffuse(normal, lightDir);\n float attenuation = getLightAttenuation(distanceVec, u_pointLightsInfo[i], u_pointLightsRange[i]);\n lightDiffuse += diff * attenuation * u_pointLightsColor[i] * shadow;\n\n #ifdef HILO_HAS_SPECULAR\n float spec = getSpecular(viewPos, v_fragPos, lightDir, normal, u_shininess);\n lightSpecular += spec * attenuation * u_pointLightsColor[i] * shadow;\n #endif\n }\n #endif\n\n #ifdef HILO_AREA_LIGHTS\n #ifndef HILO_HAS_SPECULAR\n vec4 specular = vec4(0.0, 0.0, 0.0, 0.0);\n #endif\n vec3 viewDir = normalize(vec3(0, 0, 0) - v_fragPos);\n for(int i = 0; i < HILO_AREA_LIGHTS; i++){\n color.rgb += getAreaLight(diffuse.rgb, specular.rgb, sqrt(2.0/(u_shininess+2.0)), normal, viewDir, v_fragPos, u_areaLightsPos[i], u_areaLightsColor[i], u_areaLightsWidth[i], u_areaLightsHeight[i], u_areaLightsLtcTexture1, u_areaLightsLtcTexture2);\n }\n #endif\n\n #ifdef HILO_AMBIENT_LIGHTS\n color.rgb += u_ambientLightsColor * lightAmbient;\n #endif\n\n #if defined(HILO_SPECULAR_ENV_MAP) && defined(HILO_HAS_SPECULAR)\n vec3 I = normalize(v_fragPos - viewPos);\n if (u_reflectivity > 0.0) {\n vec3 R = reflect(I, normal);\n R = normalize(vec3(u_specularEnvMatrix * vec4(R, 1.0)));\n lightSpecular += textureEnvMap(u_specularEnvMap, R).rgb * u_reflectivity;\n }\n if (u_refractivity > 0.0) {\n vec3 R = refract(I, normal, u_refractRatio);\n R = normalize(vec3(u_specularEnvMatrix * vec4(R, 1.0)));\n lightSpecular += textureEnvMap(u_specularEnvMap, R).rgb * u_refractivity;\n }\n #endif\n\n color.rgb += lightDiffuse * diffuse.rgb;\n #ifdef HILO_HAS_SPECULAR\n color.rgb += lightSpecular * specular.rgb;\n #endif\n\n color.rgb += emission.rgb;\n#else\n color.rgb = diffuse.rgb;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_FOG\n float fogFactor = 1.0;\n\n #ifdef HILO_FOG_LINEAR\n fogFactor = (u_fogInfo.y - v_dist)/(u_fogInfo.y - u_fogInfo.x);\n #elif defined(HILO_FOG_EXP)\n fogFactor = exp(-abs(u_fogInfo * v_dist));\n #elif defined(HILO_FOG_EXP2)\n fogFactor = exp(-(u_fogInfo * v_dist) * (u_fogInfo * v_dist)); \n #endif\n \n fogFactor = clamp(fogFactor, 0.0, 1.0);\n color = mix(u_fogColor, color, fogFactor);\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_QUANTIZED\n #ifdef HILO_POSITION_QUANTIZED\n uniform mat4 u_positionDecodeMat;\n #endif\n #ifdef HILO_NORMAL_QUANTIZED\n uniform mat4 u_normalDecodeMat;\n #endif\n #ifdef HILO_UV_QUANTIZED\n uniform mat3 u_uvDecodeMat;\n #endif\n #ifdef HILO_UV1_QUANTIZED\n uniform mat3 u_uv1DecodeMat;\n #endif\n\n vec2 unQuantize(vec2 data, mat3 decodeMat) {\n vec3 result = vec3(data, 1.0);\n result = decodeMat * result;\n return result.xy;\n }\n\n vec3 unQuantize(vec3 data, mat4 decodeMat) {\n vec4 result = vec4(data, 1.0);\n result = decodeMat * result;\n return result.xyz;\n }\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_JOINT_COUNT\n attribute vec4 a_skinIndices;\n attribute vec4 a_skinWeights;\n #ifdef HILO_JOINT_MAT_MAP\n uniform sampler2D u_jointMatTexture;\n uniform vec2 u_jointMatTextureSize;\n mat4 getJointMat(float index) {\n index *= 4.0;\n float x = float(mod(index, u_jointMatTextureSize.x));\n float y = float(floor(index / u_jointMatTextureSize.x));\n float dx = 1.0 / float(u_jointMatTextureSize.x);\n float dy = 1.0 / float(u_jointMatTextureSize.y);\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(u_jointMatTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(u_jointMatTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(u_jointMatTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(u_jointMatTexture, vec2(dx * (x + 3.5), y));\n mat4 mat = mat4(v1, v2, v3, v4);\n return mat;\n }\n\n mat4 getJointMat(vec4 weights, vec4 indices) {\n mat4 mat = weights.x * getJointMat(indices.x);\n mat += weights.y * getJointMat(indices.y);\n mat += weights.z * getJointMat(indices.z);\n mat += weights.w * getJointMat(indices.w);\n return mat;\n }\n #else\n uniform mat4 u_jointMat[HILO_JOINT_COUNT];\n \n mat4 getJointMat(vec4 weights, vec4 indices) {\n mat4 mat = weights.x * u_jointMat[int(indices.x)];\n mat += weights.y * u_jointMat[int(indices.y)];\n mat += weights.z * u_jointMat[int(indices.z)];\n mat += weights.w * u_jointMat[int(indices.w)];\n return mat;\n }\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_TEXCOORD0\n attribute vec2 a_texcoord0;\n varying vec2 v_texcoord0;\n #ifdef HILO_UV_MATRIX\n uniform mat3 u_uvMatrix;\n #endif\n#endif\n\n#ifdef HILO_HAS_TEXCOORD1\n attribute vec2 a_texcoord1;\n varying vec2 v_texcoord1;\n #ifdef HILO_UV_MATRIX1\n uniform mat3 u_uvMatrix1;\n #endif\n#endif\n\n#ifdef HILO_DIFFUSE_CUBE_MAP\n varying vec3 v_position;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_NORMAL\n attribute vec3 a_normal;\n uniform mat3 u_normalMatrix;\n varying vec3 v_normal;\n\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n attribute vec4 a_tangent;\n varying mat3 v_TBN;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FOG) || defined(HILO_HAS_FRAG_POS)\n uniform mat4 u_modelViewMatrix;\n #ifdef HILO_HAS_FOG\n varying float v_dist;\n #endif\n\n #if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FRAG_POS) \n varying vec3 v_fragPos;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_MORPH_TARGET_COUNT\n uniform float u_morphWeights[HILO_MORPH_TARGET_COUNT];\n\n #if HILO_MORPH_TARGET_COUNT > 0\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition0;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal0;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent0;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 1\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition1;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal1;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent1;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 2\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition2;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal2;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent2;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 3\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition3;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal3;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent3;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 4\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition4;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal4;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent4;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 5\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition5;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal5;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent5;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 6\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition6;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal6;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent6;\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 7\n #ifdef HILO_MORPH_HAS_POSITION\n attribute vec3 a_morphPosition7;\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n attribute vec3 a_morphNormal7;\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n attribute vec3 a_morphTangent7;\n #endif\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_COLOR\n #if HILO_COLOR_SIZE == 3\n attribute vec3 a_color;\n #elif HILO_COLOR_SIZE == 4\n attribute vec4 a_color;\n #endif\n varying vec4 v_color;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_USE_LOG_DEPTH\n #ifdef HILO_USE_FRAG_DEPTH\n varying float v_fragDepth;\n #else\n uniform float u_logDepth;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_COLOR\n #if HILO_COLOR_SIZE == 3\n v_color = vec4(a_color, 1.0);\n #elif HILO_COLOR_SIZE == 4\n v_color = a_color;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_QUANTIZED\n #ifdef HILO_POSITION_QUANTIZED\n pos.xyz = unQuantize(pos.xyz, u_positionDecodeMat);\n #endif\n #if defined(HILO_HAS_TEXCOORD0) && defined(HILO_UV_QUANTIZED)\n uv = unQuantize(uv, u_uvDecodeMat);\n #endif\n #if defined(HILO_HAS_TEXCOORD1) && defined(HILO_UV1_QUANTIZED)\n uv1 = unQuantize(uv1, u_uv1DecodeMat);\n #endif\n #if defined(HILO_HAS_NORMAL) && defined(HILO_NORMAL_QUANTIZED)\n normal = unQuantize(normal, u_normalDecodeMat);\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_MORPH_TARGET_COUNT\n #if HILO_MORPH_TARGET_COUNT > 0\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition0 * u_morphWeights[0];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal0 * u_morphWeights[0];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent0 * u_morphWeights[0];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 1\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition1 * u_morphWeights[1];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal1 * u_morphWeights[1];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent1 * u_morphWeights[1];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 2\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition2 * u_morphWeights[2];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal2 * u_morphWeights[2];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent2 * u_morphWeights[2];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 3\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition3 * u_morphWeights[3];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal3 * u_morphWeights[3];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent3 * u_morphWeights[3];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 4\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition4 * u_morphWeights[4];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal4 * u_morphWeights[4];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent4 * u_morphWeights[4];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 5\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition5 * u_morphWeights[5];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal5 * u_morphWeights[5];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent5 * u_morphWeights[5];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 6\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition6 * u_morphWeights[6];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal6 * u_morphWeights[6];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent6 * u_morphWeights[6];\n #endif\n #endif\n\n #if HILO_MORPH_TARGET_COUNT > 7\n #ifdef HILO_MORPH_HAS_POSITION\n pos.xyz += a_morphPosition7 * u_morphWeights[7];\n #endif\n #if defined(HILO_MORPH_HAS_NORMAL) && defined(HILO_HAS_NORMAL)\n normal += a_morphNormal7 * u_morphWeights[7];\n #endif\n #if defined(HILO_MORPH_HAS_TANGENT) && defined(HILO_HAS_TANGENT)\n tangent.xyz += a_morphTangent7 * u_morphWeights[7];\n #endif\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_JOINT_COUNT\n mat4 skinMat = getJointMat(a_skinWeights, a_skinIndices);\n pos = skinMat * pos;\n\n #ifdef HILO_HAS_NORMAL\n normal = mat3(skinMat) * normal;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_TEXCOORD0\n #ifdef HILO_UV_MATRIX\n v_texcoord0 = (u_uvMatrix * vec3(uv, 1.0)).xy;\n #else\n v_texcoord0 = uv;\n #endif\n#endif\n#ifdef HILO_HAS_TEXCOORD1\n #ifdef HILO_UV_MATRIX1\n v_texcoord1 = (u_uvMatrix1 * vec3(uv1, 1.0)).xy;\n #else\n v_texcoord1 = uv1;\n #endif\n#endif\n#ifdef HILO_DIFFUSE_CUBE_MAP\n v_position = pos.xyz;\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_HAS_NORMAL\n #if defined(HILO_NORMAL_MAP) || defined(HILO_CLEARCOAT_NORMAL_MAP)\n vec3 T = normalize(u_normalMatrix * tangent.xyz);\n vec3 N = normalize(u_normalMatrix * normal);\n T = normalize(T - dot(T, N) * N);\n vec3 B = cross(N, T) * tangent.w;\n v_TBN = mat3(T, B, N);\n #endif\n v_normal = normalize(u_normalMatrix * normal);\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FOG) || defined(HILO_HAS_FRAG_POS)\n vec3 fragPos = (u_modelViewMatrix * pos).xyz;\n\n #if defined(HILO_HAS_LIGHT) || defined(HILO_HAS_FRAG_POS)\n v_fragPos = fragPos;\n #endif\n\n #ifdef HILO_HAS_FOG\n v_dist = length(fragPos);\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n#ifdef HILO_USE_LOG_DEPTH\n #ifdef HILO_USE_FRAG_DEPTH\n v_fragDepth = 1.0 + gl_Position.w;\n #else\n gl_Position.z = log2( max( 1e-6, gl_Position.w + 1.0 ) ) * u_logDepth - 1.0;\n gl_Position.z *= gl_Position.w;\n #endif\n#endif"},function(t,e){t.exports="#define GLSLIFY 1\n// https://github.com/playcanvas/engine/blob/master/src/graphics/program-lib/chunks/packDepth.frag\n// Packing a float in GLSL with multiplication and mod\n// http://blog.gradientstudios.com/2012/08/23/shadow-map-improvement\nvec4 packFloat(float depth) {\n const vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n const vec4 bit_mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\n // combination of mod and multiplication and division works better\n vec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n res -= res.xxyz * bit_mask;\n return res;\n}\n\n\n\n"},function(t,e,n){t.exports="#define GLSLIFY 1\n"+n(40)+"\n"+n(85)+"\n"+n(63)+'\n\nuniform vec4 u_baseColor;\nuniform vec4 u_emissionFactor;\n\n#ifdef HILO_BASE_COLOR_MAP\n uniform HILO_SAMPLER_2D u_baseColorMap;\n#endif\n\n#ifdef HILO_NEED_WORLD_NORMAL\n uniform mat3 u_viewInverseNormalMatrix;\n#endif\n\n#ifdef HILO_HAS_LIGHT\n uniform float u_metallic;\n #ifdef HILO_METALLIC_MAP\n uniform HILO_SAMPLER_2D u_metallicMap;\n #endif\n uniform float u_roughness;\n #ifdef HILO_ROUGHNESS_MAP\n uniform HILO_SAMPLER_2D u_roughnessMap;\n #endif\n #ifdef HILO_METALLIC_ROUGHNESS_MAP\n uniform HILO_SAMPLER_2D u_metallicRoughnessMap;\n #endif\n #ifdef HILO_OCCLUSION_MAP\n uniform HILO_SAMPLER_2D u_occlusionMap;\n #endif\n\n #ifdef HILO_OCCLUSION_STRENGTH\n uniform float u_occlusionStrength;\n #endif\n\n #ifdef HILO_DIFFUSE_ENV_MAP\n #ifdef HILO_DIFFUSE_ENV_MAP_CUBE\n uniform samplerCube u_diffuseEnvMap;\n #else\n uniform sampler2D u_diffuseEnvMap;\n #endif\n uniform float u_diffuseEnvIntensity;\n #elif defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)\n uniform vec3 u_diffuseEnvSphereHarmonics3[9];\n uniform float u_diffuseEnvIntensity;\n #endif\n #ifdef HILO_SPECULAR_ENV_MAP\n uniform sampler2D u_brdfLUT;\n #ifdef HILO_SPECULAR_ENV_MAP_CUBE\n uniform samplerCube u_specularEnvMap;\n #else\n uniform sampler2D u_specularEnvMap;\n #endif\n uniform float u_specularEnvIntensity;\n\n uniform float u_specularEnvMapMipCount;\n #endif\n\n #ifdef HILO_EMISSION_MAP\n uniform HILO_SAMPLER_2D u_emission;\n #endif\n\n #ifdef HILO_PBR_SPECULAR_GLOSSINESS\n uniform vec4 u_specular;\n uniform float u_glossiness;\n #ifdef HILO_SPECULAR_GLOSSINESS_MAP\n uniform HILO_SAMPLER_2D u_specularGlossinessMap;\n #endif\n #endif\n\n #ifdef HILO_LIGHT_MAP\n uniform HILO_SAMPLER_2D u_lightMap;\n #endif\n\n #ifdef HILO_HAS_CLEARCOAT\n uniform float u_clearcoatFactor;\n #ifdef HILO_CLEARCOAT_MAP\n uniform HILO_SAMPLER_2D u_clearcoatMap;\n #endif\n\n uniform float u_clearcoatRoughnessFactor;\n #ifdef HILO_CLEARCOAT_ROUGHNESS_MAP\n uniform HILO_SAMPLER_2D u_clearcoatRoughnessMap;\n #endif\n #endif\n\n\n // PBR Based on https://github.com/KhronosGroup/glTF-WebGL-PBR\n\n // Basic Lambertian diffuse\n // Implementation from Lambert\'s Photometria https://archive.org/details/lambertsphotome00lambgoog\n // See also [1], Equation 1\n vec3 diffuse(vec3 diffuseColor) {\n return diffuseColor * HILO_INVERSE_PI;\n }\n\n // The following equation models the Fresnel reflectance term of the spec equation (aka F())\n // Implementation of fresnel from [4], Equation 15\n vec3 specularReflection(vec3 reflectance0, vec3 reflectance90, float VdotH) {\n return reflectance0 + (reflectance90 - reflectance0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0);\n }\n\n // This calculates the specular geometric attenuation (aka G()),\n // where rougher material will reflect less light back to the viewer.\n // This implementation is based on [1] Equation 4, and we adopt their modifications to\n // alphaRoughness as input as originally proposed in [2].\n float geometricOcclusion(float NdotL, float NdotV, float alphaRoughness) {\n float r = alphaRoughness * alphaRoughness;\n\n float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r + (1.0 - r) * (NdotL * NdotL)));\n float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r + (1.0 - r) * (NdotV * NdotV)));\n return attenuationL * attenuationV;\n }\n\n // The following equation(s) model the distribution of microfacet normals across the area being drawn (aka D())\n // Implementation from "Average Irregularity Representation of a Roughened Surface for Ray Reflection" by T. S. Trowbridge, and K. P. Reitz\n // Follows the distribution function recommended in the SIGGRAPH 2013 course notes from EPIC Games [1], Equation 3.\n float microfacetDistribution(float alphaRoughness, float NdotH) {\n float roughnessSq = alphaRoughness * alphaRoughness;\n float f = (NdotH * roughnessSq - NdotH) * NdotH + 1.0;\n return roughnessSq * HILO_INVERSE_PI / (f * f);\n }\n\n vec3 computeDiffuseSHLight(vec3 normal, in vec3 sh[9]) {\n return sh[0] +\n sh[1] * (normal.y) +\n sh[2] * (normal.z) +\n sh[3] * (normal.x) +\n sh[4] * (normal.y * normal.x) +\n sh[5] * (normal.y * normal.z) +\n sh[6] * ((3.0 * normal.z * normal.z) - 1.0) +\n sh[7] * (normal.z * normal.x) +\n sh[8] * (normal.x * normal.x - (normal.y * normal.y));\n }\n\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/2.0/Vendor/EXT_lights_image_based/README.md#rgbd\n vec3 decodeRGBD(in vec4 color){\n return color.rgb / color.a;\n }\n\n vec3 getIBLClearCoatContribution(in vec3 N, in vec3 V, vec3 diffuseColor, vec3 specularColor, float ao, float NdotV, float perceptualRoughness) {\n vec3 color = vec3(.0, .0, .0);\n #ifdef HILO_SPECULAR_ENV_MAP\n vec3 R = -normalize(reflect(V, N));\n vec3 brdf = texture2D(u_brdfLUT, vec2(NdotV, 1.0 - perceptualRoughness)).rgb;\n #ifdef HILO_IS_SPECULAR_ENV_MAP_INCLUDE_MIPMAPS\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapIncludeMipmapsLod(u_specularEnvMap, R, lod);\n #elif defined(HILO_USE_SHADER_TEXTURE_LOD)\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapLod(u_specularEnvMap, R, lod);\n #else\n vec4 specularEnvMap = textureEnvMap(u_specularEnvMap, R);\n #endif\n\n vec3 specularLight = decodeRGBD(specularEnvMap);\n\n #ifdef HILO_GAMMA_CORRECTION\n specularLight = sRGBToLinear(specularLight);\n #endif\n color.rgb += specularLight * (specularColor * brdf.x + brdf.y) * u_specularEnvIntensity;\n #endif\n return color;\n }\n\n vec3 getIBLContribution(in vec3 N, in vec3 V, vec3 diffuseColor, vec3 specularColor, float ao, float NdotV, float perceptualRoughness) {\n vec3 color = vec3(.0, .0, .0);\n #ifdef HILO_NEED_WORLD_NORMAL\n N = u_viewInverseNormalMatrix * N;\n V = u_viewInverseNormalMatrix * V;\n #endif\n #if defined(HILO_DIFFUSE_ENV_MAP) || defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)\n #ifdef HILO_DIFFUSE_ENV_MAP\n #ifdef HILO_GAMMA_CORRECTION\n vec3 diffuseLight = sRGBToLinear(textureEnvMap(u_diffuseEnvMap, N)).rgb;\n #else\n vec3 diffuseLight = textureEnvMap(u_diffuseEnvMap, N).rgb;\n #endif\n #elif defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)\n vec3 diffuseLight = computeDiffuseSHLight(N, u_diffuseEnvSphereHarmonics3);\n #endif\n color.rgb += diffuseLight * diffuseColor * ao * u_diffuseEnvIntensity;\n #endif\n\n #ifdef HILO_SPECULAR_ENV_MAP\n vec3 R = -normalize(reflect(V, N));\n vec3 brdf = texture2D(u_brdfLUT, vec2(NdotV, 1.0 - perceptualRoughness)).rgb;\n #ifdef HILO_IS_SPECULAR_ENV_MAP_INCLUDE_MIPMAPS\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapIncludeMipmapsLod(u_specularEnvMap, R, lod);\n #elif defined(HILO_USE_SHADER_TEXTURE_LOD)\n float lod = clamp(perceptualRoughness * u_specularEnvMapMipCount, 0.0, u_specularEnvMapMipCount);\n vec4 specularEnvMap = textureEnvMapLod(u_specularEnvMap, R, lod);\n #else\n vec4 specularEnvMap = textureEnvMap(u_specularEnvMap, R);\n #endif\n\n vec3 specularLight = decodeRGBD(specularEnvMap);\n\n #ifdef HILO_GAMMA_CORRECTION\n specularLight = sRGBToLinear(specularLight);\n #endif\n color.rgb += specularLight * (specularColor * brdf.x + brdf.y) * u_specularEnvIntensity;\n #endif\n return color;\n }\n\n vec3 calculateLo(vec3 N, vec3 V, vec3 L, vec3 reflectance0, vec3 reflectance90, float alphaRoughness, vec3 diffuseColor, float NdotV) {\n vec3 H = normalize(L + V);\n float NdotL = clamp(dot(N, L), 0.001, 1.0);\n float NdotH = clamp(dot(N, H), 0.0, 1.0);\n float LdotH = clamp(dot(L, H), 0.0, 1.0);\n float VdotH = clamp(dot(V, H), 0.0, 1.0);\n // Calculate the shading terms for the microfacet specular shading model\n vec3 F = specularReflection(reflectance0, reflectance90, VdotH);\n float G = geometricOcclusion(NdotL, NdotV, alphaRoughness);\n float D = microfacetDistribution(alphaRoughness, NdotH);\n\n vec3 diffuseContrib;\n\n #ifdef HILO_LIGHT_MAP\n diffuseContrib = vec3(0.0);\n #else\n diffuseContrib = (1.0 - F) * diffuse(diffuseColor);\n #endif\n vec3 specContrib = F * G * D / (4.0 * NdotL * NdotV);\n // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)\n return NdotL * (diffuseContrib + specContrib);\n }\n\n #ifdef HILO_HAS_CLEARCOAT\n float calculateClearcoatBRDF(vec3 N, vec3 V, vec3 L, float clearcoatAlphaRoughness, float NdotV) {\n vec3 H = normalize(L + V);\n float NdotL = clamp(dot(N, L), 0.001, 1.0);\n float NdotH = clamp(dot(N, H), 0.0, 1.0);\n float VdotH = clamp(dot(V, H), 0.0, 1.0);\n\n float G = geometricOcclusion(NdotL, NdotV, clearcoatAlphaRoughness);\n float D = microfacetDistribution(clearcoatAlphaRoughness, NdotH);\n\n float clearcoatLayer = G * D / (4.0 * NdotV);\n\n return clearcoatLayer;\n }\n #endif\n#endif'},function(t,e){t.exports="#define GLSLIFY 1\nvec4 sRGBToLinear( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\n\nvec3 sRGBToLinear( in vec3 value ) {\n return vec3( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ));\n}\n\n"},function(t,e,n){t.exports="#define GLSLIFY 1\nvec4 baseColor = u_baseColor;\nvec3 emissionColor = u_emissionFactor.rgb;\n\n#ifdef HILO_BASE_COLOR_MAP\n #ifdef HILO_GAMMA_CORRECTION\n baseColor *= sRGBToLinear(HILO_TEXTURE_2D(u_baseColorMap));\n #else\n baseColor *= HILO_TEXTURE_2D(u_baseColorMap);\n #endif\n#endif\n\n#if defined(HILO_HAS_COLOR)\n baseColor *= v_color;\n#endif\n\ncolor.a = baseColor.a;\n\n"+n(45)+"\n\n#ifdef HILO_HAS_LIGHT\n vec3 viewPos = vec3(0, 0, 0);\n vec3 N = normal;\n vec3 V = normalize(viewPos - v_fragPos);\n\n #ifdef HILO_OCCLUSION_MAP\n float ao = HILO_TEXTURE_2D(u_occlusionMap).r;\n #else\n float ao = 1.0;\n #endif\n\n #ifdef HILO_PBR_SPECULAR_GLOSSINESS\n vec3 specular = u_specular.rgb;\n float glossiness = u_glossiness;\n #ifdef HILO_SPECULAR_GLOSSINESS_MAP\n vec4 specularGlossiness = sRGBToLinear(HILO_TEXTURE_2D(u_specularGlossinessMap));\n specular = specularGlossiness.rgb * specular;\n glossiness = specularGlossiness.a * glossiness;\n #endif\n float roughness = 1.0 - glossiness;\n float metallic = 0.0;\n vec3 diffuseColor = baseColor.rgb * (1.0 - max(max(specular.r, specular.g), specular.b));\n vec3 specularColor = specular;\n #else\n float metallic = u_metallic;\n float roughness = u_roughness;\n #ifdef HILO_METALLIC_MAP\n metallic = HILO_TEXTURE_2D(u_metallicMap).r * u_metallic;\n #endif\n #ifdef HILO_ROUGHNESS_MAP\n roughness = HILO_TEXTURE_2D(u_roughnessMap).r * u_roughness;\n #endif\n #ifdef HILO_METALLIC_ROUGHNESS_MAP\n vec4 metallicRoughnessMap = HILO_TEXTURE_2D(u_metallicRoughnessMap);\n #ifdef HILO_IS_OCCLUSION_MAP_IN_METALLIC_ROUGHNESS_MAP\n ao = metallicRoughnessMap.r;\n #endif\n roughness = metallicRoughnessMap.g * u_roughness;\n metallic = metallicRoughnessMap.b * u_metallic;\n #endif\n roughness = clamp(roughness, 0.04, 1.0);\n metallic = clamp(metallic, 0.0, 1.0);\n vec3 f0 = vec3(0.04);\n vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);\n diffuseColor *= 1.0 - metallic;\n vec3 specularColor = mix(f0, baseColor.rgb, metallic);\n #endif\n\n #ifdef HILO_OCCLUSION_STRENGTH\n ao = mix(1.0, ao, u_occlusionStrength);\n #endif\n\n float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n // For typical incident reflectance range (between 4% to 100%) set the grazing reflectance to 100% for typical fresnel effect.\n // For very low reflectance range on highly diffuse objects (below 4%), incrementally reduce grazing reflecance to 0%.\n float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);\n vec3 specularEnvironmentR0 = specularColor.rgb;\n vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;\n\n float NdotV = clamp(abs(dot(N, V)), 0.001, 1.0);\n float alphaRoughness = roughness * roughness;\n\n #ifdef HILO_HAS_CLEARCOAT\n float clearcoatFactor = u_clearcoatFactor;\n #ifdef HILO_CLEARCOAT_MAP\n clearcoatFactor *= HILO_TEXTURE_2D(u_clearcoatMap).r;\n #endif\n float clearcoatRoughnessFactor = u_clearcoatRoughnessFactor;\n #ifdef HILO_CLEARCOAT_ROUGHNESS_MAP\n clearcoatRoughnessFactor *= HILO_TEXTURE_2D(u_clearcoatRoughnessMap).g;\n #endif\n\n float clearcoatAlphaRoughnessFactor = clearcoatRoughnessFactor * clearcoatRoughnessFactor;\n vec3 NC = clearcoatNormal;\n float NCdotV = clamp(abs(dot(NC, V)), 0.001, 1.0);\n float clearCoatFresnel = 0.04 + (1.0 - 0.04) * pow((1.0 - abs(NCdotV)),5.0);\n vec3 clearCoatLayer = vec3(0.0);\n #endif\n\n #ifdef HILO_DIRECTIONAL_LIGHTS\n for(int i = 0;i < HILO_DIRECTIONAL_LIGHTS;i++){\n vec3 lightDir = normalize(-u_directionalLightsInfo[i]);\n vec3 radiance = u_directionalLightsColor[i];\n float shadow = 1.0;\n #ifdef HILO_DIRECTIONAL_LIGHTS_SMC\n if (i < HILO_DIRECTIONAL_LIGHTS_SMC) {\n float bias = HILO_MAX(u_directionalLightsShadowBias[i][1] * (1.0 - dot(N, lightDir)), u_directionalLightsShadowBias[i][0]);\n shadow = getShadow(u_directionalLightsShadowMap[i], u_directionalLightsShadowMapSize[i], bias, v_fragPos, u_directionalLightSpaceMatrix[i]);\n }\n #endif\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += shadow * radiance * calculateClearcoatBRDF(NC, V, lightDir, clearcoatAlphaRoughnessFactor, NCdotV);\n #endif\n color.rgb += shadow * radiance * calculateLo(N, V, lightDir, specularEnvironmentR0, specularEnvironmentR90, alphaRoughness, diffuseColor, NdotV);\n }\n #endif\n\n #ifdef HILO_SPOT_LIGHTS\n for(int i = 0; i < HILO_SPOT_LIGHTS; i++){\n vec3 lightDir = normalize(-u_spotLightsDir[i]);\n vec3 distanceVec = u_spotLightsPos[i] - v_fragPos;\n\n float theta = dot(normalize(distanceVec), lightDir);\n float epsilon = u_spotLightsCutoffs[i][0] - u_spotLightsCutoffs[i][1];\n float intensity = clamp((theta - u_spotLightsCutoffs[i][1]) / epsilon, 0.0, 1.0);\n float attenuation = getLightAttenuation(distanceVec, u_spotLightsInfo[i], u_spotLightsRange[i]);\n vec3 radiance = intensity * attenuation * u_spotLightsColor[i];\n\n float shadow = 1.0;\n #ifdef HILO_SPOT_LIGHTS_SMC\n if (i < HILO_SPOT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_spotLightsShadowBias[i][1] * (1.0 - dot(N, lightDir)), u_spotLightsShadowBias[i][0]);\n shadow = getShadow(u_spotLightsShadowMap[i], u_spotLightsShadowMapSize[i], bias, v_fragPos, u_spotLightSpaceMatrix[i]);\n }\n #endif\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += shadow * radiance * calculateClearcoatBRDF(NC, V, lightDir, clearcoatAlphaRoughnessFactor, NCdotV);\n #endif\n color.rgb += shadow * radiance * calculateLo(N, V, lightDir, specularEnvironmentR0, specularEnvironmentR90, alphaRoughness, diffuseColor, NdotV);\n }\n #endif\n\n #ifdef HILO_POINT_LIGHTS\n for(int i = 0; i < HILO_POINT_LIGHTS; i++){\n vec3 distanceVec = u_pointLightsPos[i] - v_fragPos;\n vec3 lightDir = normalize(distanceVec);\n\n float shadow = 1.0;\n #ifdef HILO_POINT_LIGHTS_SMC\n if (i < HILO_POINT_LIGHTS_SMC) {\n float bias = HILO_MAX(u_pointLightsShadowBias[i][1] * (1.0 - dot(normal, lightDir)), u_pointLightsShadowBias[i][0]);\n shadow = getShadow(u_pointLightsShadowMap[i], bias, u_pointLightsPos[i], v_fragPos, u_pointLightCamera[i], u_pointLightSpaceMatrix[i]);\n }\n #endif\n\n float attenuation = getLightAttenuation(distanceVec, u_pointLightsInfo[i], u_pointLightsRange[i]);\n vec3 radiance = attenuation * u_pointLightsColor[i];\n\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += shadow * radiance * calculateClearcoatBRDF(NC, V, lightDir, clearcoatAlphaRoughnessFactor, NCdotV);\n #endif\n color.rgb += shadow * radiance * calculateLo(N, V, lightDir, specularEnvironmentR0, specularEnvironmentR90, alphaRoughness, diffuseColor, NdotV);\n }\n #endif\n\n #ifdef HILO_AREA_LIGHTS\n for(int i = 0; i < HILO_AREA_LIGHTS; i++){\n color.rgb += getAreaLight(diffuseColor, specularColor, roughness, N, V, v_fragPos, u_areaLightsPos[i], u_areaLightsColor[i], u_areaLightsWidth[i], u_areaLightsHeight[i], u_areaLightsLtcTexture1, u_areaLightsLtcTexture2);\n }\n #endif\n\n #ifdef HILO_LIGHT_MAP\n vec4 lightMapColor = HILO_TEXTURE_2D(u_lightMap);\n // https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_lights_image_based#rgbd\n color.rgb += baseColor.rgb * decodeRGBD(lightMapColor);\n #endif\n\n // IBL\n #ifdef HILO_HAS_CLEARCOAT\n clearCoatLayer += getIBLClearCoatContribution(NC, V, diffuseColor, vec3(.04), ao, NCdotV, clearcoatRoughnessFactor)/clearCoatFresnel;\n #endif\n color.rgb += getIBLContribution(N, V, diffuseColor, specularColor, ao, NdotV, roughness);\n\n #if defined(HILO_AMBIENT_LIGHTS) && (defined(HILO_IS_DIFFUESENV_AND_AMBIENTLIGHT_WORK_TOGETHER) || (!defined(HILO_DIFFUSE_ENV_MAP) && !defined(HILO_DIFFUSE_ENV_SPHERE_HARMONICS3)))\n color.rgb += u_ambientLightsColor * baseColor.rgb * ao;\n #endif\n\n #ifdef HILO_EMISSION_MAP\n #ifdef HILO_GAMMA_CORRECTION\n emissionColor *= sRGBToLinear(HILO_TEXTURE_2D(u_emission)).rgb;\n #else\n emissionColor *= HILO_TEXTURE_2D(u_emission).rgb;\n #endif\n #endif\n\n color.rgb += emissionColor;\n\n #ifdef HILO_HAS_CLEARCOAT\n float t = clearcoatFactor * clearCoatFresnel;\n color.rgb = color.rgb * (1.0 - t) + clearCoatLayer * t;\n #endif\n#else\n color.rgb = baseColor.rgb;\n color.rgb += emissionColor;\n#endif"},function(t,e,n){var r=n(88),i=n(25),a=n(29),s=[0,0,0],o=[0,0,0],u=[0,0,0],c=[0,0,0],f=[0,0,0];t.exports=function(t,e,n,h){a(s,h[1],h[0]),a(o,h[2],h[0]),r(c,n,o);var l=i(s,c);if(l<1e-6)return null;a(u,e,h[0]);var d=i(u,c);if(d<0||d>l)return null;r(f,u,s);var m=i(n,f);if(m<0||d+m>l)return null;var _=i(o,f)/l;return t[0]=e[0]+_*n[0],t[1]=e[1]+_*n[1],t[2]=e[2]+_*n[2],t}},function(t,e){t.exports=function(t,e,n){var r=e[0],i=e[1],a=e[2],s=n[0],o=n[1],u=n[2];return t[0]=i*u-a*o,t[1]=a*s-r*u,t[2]=r*o-i*s,t}},function(t,e,n){var r=n(25),i=n(30),a=n(31),s=n(32);t.exports=function(t,e,n,u,c){var f=r(n,u);if(0!==f){var h=-(r(e,u)+c)/f;return h<0?null:(a(o,n,h),i(t,e,o))}return r(u,e)+c===0?s(t,e):null};var o=[0,0,0]},function(t,e,n){var r=n(91),i=n(25),a=n(29),s=n(92),o=n(31),u=n(30),c=[0,0,0];t.exports=function(t,e,n,f,h){a(c,f,e);var l=i(n,c);if(l<0)return null;s(c,e,n,l);var d=r(f,c),m=h*h;if(d>m)return null;return o(t,n,l-Math.sqrt(m-d)),u(t,t,e)}},function(t,e){t.exports=function(t,e){var n=e[0]-t[0],r=e[1]-t[1],i=e[2]-t[2];return n*n+r*r+i*i}},function(t,e){t.exports=function(t,e,n,r){return t[0]=e[0]+n[0]*r,t[1]=e[1]+n[1]*r,t[2]=e[2]+n[2]*r,t}},function(t,e){function n(t,e,n){for(var r=t.length,i=-1/0,a=1/0,s=0;s<r;s++){var o=(n[0][s]-t[s])/e[s],u=(n[1][s]-t[s])/e[s];if(o>u){var c=o;o=u,u=c}if(u<i||o>a)return 1/0;o>i&&(i=o),u<a&&(a=u)}return i>a?1/0:i}t.exports=function(t,e,r,i){var a=n(e,r,i);if(a===1/0)t=null;else{t=t||[];for(var s=0;s<e.length;s++)t[s]=e[s]+r[s]*a}return t},t.exports.distance=n},function(t,e,n){"use strict";
|
|
35
35
|
/*
|
|
36
36
|
object-assign
|
|
37
37
|
(c) Sindre Sorhus
|
|
38
38
|
@license MIT
|
|
39
|
-
*/var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function s(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,o,u=s(t),c=1;c<arguments.length;c++){for(var f in n=Object(arguments[c]))i.call(n,f)&&(u[f]=n[f]);if(r){o=r(n);for(var h=0;h<o.length;h++)a.call(n,o[h])&&(u[o[h]]=n[o[h]])}}return u}},function(t,e,n){"use strict";var r,i,a,s;Object.keys||(Object.keys=(r=Object.prototype.hasOwnProperty,i=!{toString:null}.propertyIsEnumerable("toString"),s=(a=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(t){if("object"!=typeof t&&("function"!=typeof t||null===t))throw new TypeError("Object.keys called on non-object");var e,n,o=[];for(e in t)r.call(t,e)&&o.push(e);if(i)for(n=0;n<s;n++)r.call(t,a[n])&&o.push(a[n]);return o}))},function(t,e,n){"use strict";t.exports=function(t){return Object.keys(t).map((function(e){return t[e]}))}},function(t,e,n){"use strict";t.exports="function"==typeof Promise?Promise:n(101)},function(t,e){t.exports=function(t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var e=0,n=t.length;function r(){var r="";do{var i=t[e];if(10==i){++e;break}r+=String.fromCharCode(i)}while(++e<n);return r}for(var i=0,a=0,s=1,o=!1,u=0;u<20;u++){var c,f=r();if(c=f.match("#\\?RADIANCE"));else if(c=f.match("FORMAT=32-bit_rle_rgbe"))o=!0;else if(c=f.match("EXPOSURE=\\s*([0-9]*[.][0-9]*)"))s=Number(c[1]);else if(c=f.match("#.*"));else if(c=f.match("-Y ([0-9]+) \\+X ([0-9]+)")){a=Number(c[1]),i=Number(c[2]);break}}if(!o)throw new Error("File is not run length encoded!");var h=new Uint8Array(i*a*4);!function(t,e,n,r,i,a){var s,o,u,c=new Array(4),f=null,h=new Array(2),l=t.length;function d(e){var n=0;do{e[n++]=t[r]}while(++r<l&&n<e.length);return n}function m(e,n,i){var a=0;do{e[n+a++]=t[r]}while(++r<l&&a<i);return a}function _(t,e,n,r){var i=4*r,a=m(e,n,i);if(a<i)throw new Error("Error reading raw pixels: got "+a+" bytes, expected "+i)}for(;a>0;){if(d(c)<c.length)throw new Error("Error reading bytes: expected "+c.length);if(2!=c[0]||2!=c[1]||0!=(128&c[2]))return e[n++]=c[0],e[n++]=c[1],e[n++]=c[2],e[n++]=c[3],void _(0,e,n,i*a-1);if(((255&c[2])<<8|255&c[3])!=i)throw new Error("Wrong scanline width "+((255&c[2])<<8|255&c[3])+", expected "+i);null==f&&(f=new Array(4*i)),s=0;for(var p=0;p<4;p++)for(o=(p+1)*i;s<o;){if(d(h)<h.length)throw new Error("Error reading 2-byte buffer");if((255&h[0])>128){if(0==(u=(255&h[0])-128)||u>o-s)throw new Error("Bad scanline data");for(;u-- >0;)f[s++]=h[1]}else{if(0==(u=255&h[0])||u>o-s)throw new Error("Bad scanline data");if(f[s++]=h[1],--u>0){if(m(f,s,u)<u)throw new Error("Error reading non-run data");s+=u}}}for(p=0;p<i;p++)e[n+0]=f[p],e[n+1]=f[p+i],e[n+2]=f[p+2*i],e[n+3]=f[p+3*i],n+=4;a--}}(t,h,0,e,i,a);for(var l=new Float32Array(i*a*4),d=0;d<h.length;d+=4){var m=h[d+0]/255,_=h[d+1]/255,p=h[d+2]/255,g=h[d+3],E=Math.pow(2,g-128);m*=E,_*=E,p*=E;var v=d;l[v+0]=m,l[v+1]=_,l[v+2]=p,l[v+3]=1}return{shape:[i,a],exposure:s,gamma:1,data:l}}},function(t,e,n){"use strict";n.r(e);var r=n(95),i=n.n(r),a=n(96),s=n.n(a),o=n(97),u=n.n(o),c=n(98),f=n.n(c);Object.assign||(Object.assign=i.a),Object.keys||(Object.keys=s.a),Object.values||(Object.values=u.a),"undefined"==typeof Promise&&(window.Promise=f.a),[Int8Array,Uint8Array,Int16Array,Uint16Array,Uint32Array,Float32Array].forEach((function(t){t.prototype.slice||Object.defineProperty(t.prototype,"slice",{value:function(e,n){return new t(Array.prototype.slice.call(this,e,n))}}),t.prototype.forEach||Object.defineProperty(t.prototype,"forEach",{value:function(t,e){e=e||this;for(var n=0,r=this.length;n!==r;++n)t.call(e,this[n],n,this)}})}))},function(t,e,n){"use strict";(function(e,n){var r,i=function(){},a=void 0!==e&&void 0!==e.process&&"function"==typeof e.process.emit,s=void 0===n?setTimeout:n,o=[];function u(){for(var t=0;t<o.length;t++)o[t][0](o[t][1]);o=[],r=!1}function c(t,e){o.push([t,e]),r||(r=!0,s(u,0))}function f(t){var e=t.owner,n=e._state,r=e._data,i=t[n],a=t.then;if("function"==typeof i){n="fulfilled";try{r=i(r)}catch(t){m(a,t)}}h(a,r)||("fulfilled"===n&&l(a,r),"rejected"===n&&m(a,r))}function h(t,e){var n;try{if(t===e)throw new TypeError("A promises callback cannot return that same promise.");if(e&&("function"==typeof e||"object"==typeof e)){var r=e.then;if("function"==typeof r)return r.call(e,(function(r){n||(n=!0,e===r?d(t,r):l(t,r))}),(function(e){n||(n=!0,m(t,e))})),!0}}catch(e){return n||m(t,e),!0}return!1}function l(t,e){t!==e&&h(t,e)||d(t,e)}function d(t,e){"pending"===t._state&&(t._state="settled",t._data=e,c(p,t))}function m(t,e){"pending"===t._state&&(t._state="settled",t._data=e,c(g,t))}function _(t){t._then=t._then.forEach(f)}function p(t){t._state="fulfilled",_(t)}function g(t){t._state="rejected",_(t),!t._handled&&a&&e.process.emit("unhandledRejection",t._data,t)}function E(t){e.process.emit("rejectionHandled",t)}function v(t){if("function"!=typeof t)throw new TypeError("Promise resolver "+t+" is not a function");if(this instanceof v==!1)throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._then=[],function(t,e){function n(t){m(e,t)}try{t((function(t){l(e,t)}),n)}catch(t){n(t)}}(t,this)}v.prototype={constructor:v,_state:"pending",_then:null,_data:void 0,_handled:!1,then:function(t,e){var n={owner:this,then:new this.constructor(i),fulfilled:t,rejected:e};return!e&&!t||this._handled||(this._handled=!0,"rejected"===this._state&&a&&c(E,this)),"fulfilled"===this._state||"rejected"===this._state?c(f,n):this._then.push(n),n.then},catch:function(t){return this.then(null,t)}},v.all=function(t){if(!Array.isArray(t))throw new TypeError("You must pass an array to Promise.all().");return new v((function(e,n){var r=[],i=0;function a(t){return i++,function(n){r[t]=n,--i||e(r)}}for(var s,o=0;o<t.length;o++)(s=t[o])&&"function"==typeof s.then?s.then(a(o),n):r[o]=s;i||e(r)}))},v.race=function(t){if(!Array.isArray(t))throw new TypeError("You must pass an array to Promise.race().");return new v((function(e,n){for(var r,i=0;i<t.length;i++)(r=t[i])&&"function"==typeof r.then?r.then(e,n):e(r)}))},v.resolve=function(t){return t&&"object"==typeof t&&t.constructor===v?t:new v((function(e){e(t)}))},v.reject=function(t){return new v((function(e,n){n(t)}))},t.exports=v}).call(this,n(35),n(102).setImmediate)},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new a(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(103),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(35))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,a,s,o,u=1,c={},f=!1,h=t.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(t);l=l&&l.setTimeout?l:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){m(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){m(t.data)},r=function(t){a.port2.postMessage(t)}):h&&"onreadystatechange"in h.createElement("script")?(i=h.documentElement,r=function(t){var e=h.createElement("script");e.onreadystatechange=function(){m(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(m,0,t)}:(s="setImmediate$"+Math.random()+"$",o=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&m(+e.data.slice(s.length))},t.addEventListener?t.addEventListener("message",o,!1):t.attachEvent("onmessage",o),r=function(e){t.postMessage(s+e,"*")}),l.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var i={callback:t,args:e};return c[u]=i,r(u),u++},l.clearImmediate=d}function d(t){delete c[t]}function m(t){if(f)setTimeout(m,0,t);else{var e=c[t];if(e){f=!0;try{!function(t){var e=t.callback,n=t.args;switch(n.length){case 0:e();break;case 1:e(n[0]);break;case 2:e(n[0],n[1]);break;case 3:e(n[0],n[1],n[2]);break;default:e.apply(void 0,n)}}(e)}finally{d(t),f=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(35),n(104))},function(t,e){var n,r,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var u,c=[],f=!1,h=-1;function l(){f&&u&&(f=!1,u.length?c=u.concat(c):h=-1,c.length&&d())}function d(){if(!f){var t=o(l);f=!0;for(var e=c.length;e;){for(u=c,c=[];++h<e;)u&&u[h].run();h=-1,e=c.length}u=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function m(t,e){this.fun=t,this.array=e}function _(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new m(t,e)),1!==c.length||f||o(d)},m.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=_,i.addListener=_,i.once=_,i.off=_,i.removeListener=_,i.removeAllListeners=_,i.emit=_,i.prependListener=_,i.prependOnceListener=_,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(t,e,n){t.exports="#define GLSLIFY 1\n// modified from https://github.com/mrdoob/three.js/blob/dev/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl#L26\n\n"+n(57)+"\n\nvec2 LTC_Uv(const in vec3 N, const in vec3 V, const in float roughness) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = (LUT_SIZE - 1.0) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = clamp(dot(N, V), 0.0, 1.0);\n vec2 uv = vec2(roughness, sqrt(1.0 - dotNV));\n uv = (uv * LUT_SCALE) + LUT_BIAS;\n return uv;\n}\n\nfloat LTC_ClippedSphereFormFactor(const in vec3 f) {\n float l = length(f);\n return max(((l * l) + f.z) / (l + 1.0), 0.0);\n}\n\nvec3 LTC_EdgeVectorFormFactor(const in vec3 v1, const in vec3 v2) {\n float x = dot(v1, v2);\n float y = abs(x);\n float a = 0.8543985 + ((0.4965155 + (0.0145206 * y)) * y);\n float b = 3.4175940 + ((4.1616724 + y) * y);\n float v = a / b;\n float theta_sintheta = x > 0.0 ? v : (0.5 * inversesqrt(max(1.0 - (x * x), 1e-7))) - v;\n return cross(v1, v2) * theta_sintheta;\n}\n\nvec3 LTC_Evaluate(const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[4]) {\n vec3 v1 = rectCoords[1] - rectCoords[0];\n vec3 v2 = rectCoords[3] - rectCoords[0];\n vec3 lightNormal = cross(v1, v2);\n if (dot(lightNormal, P - rectCoords[0]) < 0.0)\n return vec3(0.0);\n vec3 T1, T2;\n T1 = normalize(V - (N * dot(V, N)));\n T2 = -cross(N, T1);\n mat3 mat = mInv * transpose(mat3(T1, T2, N));\n vec3 coords[4];\n coords[0] = mat * (rectCoords[0] - P);\n coords[1] = mat * (rectCoords[1] - P);\n coords[2] = mat * (rectCoords[2] - P);\n coords[3] = mat * (rectCoords[3] - P);\n coords[0] = normalize(coords[0]);\n coords[1] = normalize(coords[1]);\n coords[2] = normalize(coords[2]);\n coords[3] = normalize(coords[3]);\n vec3 vectorFormFactor = vec3(0.0);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[0], coords[1]);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[1], coords[2]);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[2], coords[3]);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[3], coords[0]);\n float result = LTC_ClippedSphereFormFactor(vectorFormFactor);\n return vec3(result);\n}\n\nvec3 getAreaLight(const in vec3 diffuseColor, const in vec3 specularColor, const in float roughness, const in vec3 normal, const in vec3 viewDir, const in vec3 position, const in vec3 lightPos, const in vec3 lightColor, const in vec3 halfWidth, const in vec3 halfHeight, const in sampler2D areaLightsLtcTexture1, const in sampler2D areaLightsLtcTexture2){\n vec3 rectCoords[4];\n rectCoords[0] = (lightPos - halfWidth) - halfHeight;\n rectCoords[1] = (lightPos + halfWidth) - halfHeight;\n rectCoords[2] = (lightPos + halfWidth) + halfHeight;\n rectCoords[3] = (lightPos - halfWidth) + halfHeight;\n \n vec2 uv = LTC_Uv(normal, viewDir, roughness);\n vec4 t1 = texture2D(areaLightsLtcTexture1, uv);\n vec4 t2 = texture2D(areaLightsLtcTexture2, uv);\n\n mat3 mInv = mat3(vec3(t1.x, 0, t1.y), vec3(0, 1, 0), vec3(t1.z, 0, t1.w));\n vec3 fresnel = (specularColor * t2.x) + ((vec3(1.0) - specularColor) * t2.y);\n \n vec3 color = vec3(0.0, 0.0, 0.0);\n color += ((lightColor * fresnel) * LTC_Evaluate(normal, viewDir, position, mInv, rectCoords));\n color += ((lightColor * diffuseColor) * LTC_Evaluate(normal, viewDir, position, mat3(1.0), rectCoords));\n return color;\n}\n\n"},function(t,e){t.exports="#version 300 es\n#define GLSLIFY 1\n#define HILO_IS_WEBGL2\n#define attribute in\n#define varying out\n#define texture2D texture\n#define textureCube texture\n#define texture2DLodEXT textureLod\n#define textureCubeLodEXT textureLod"},function(t,e){t.exports="#version 300 es\n#define GLSLIFY 1\n#define HILO_IS_WEBGL2\n#define varying in\n#define texture2D texture\n#define textureCube texture\n#define texture2DLodEXT textureLod\n#define textureCubeLodEXT textureLod\n#define gl_FragColor hilo_FragData0\n#define gl_FragDepthEXT gl_FragDepth\nlayout(location = 0) out highp vec4 hilo_FragData0;"},function(t,e,n){"use strict";n.r(e),n.d(e,"util",(function(){return i})),n.d(e,"GLTFExtensions",(function(){return r})),n.d(e,"Class",(function(){return a.a})),n.d(e,"EventMixin",(function(){return s.a})),n.d(e,"Fog",(function(){return Hr})),n.d(e,"Mesh",(function(){return Br})),n.d(e,"Node",(function(){return g})),n.d(e,"SkinedMesh",(function(){return kr})),n.d(e,"Skeleton",(function(){return Yr})),n.d(e,"Stage",(function(){return gi})),n.d(e,"Tween",(function(){return Gi})),n.d(e,"version",(function(){return zr})),n.d(e,"BoxGeometry",(function(){return Vi})),n.d(e,"Geometry",(function(){return K})),n.d(e,"GeometryData",(function(){return b})),n.d(e,"MorphGeometry",(function(){return Tr})),n.d(e,"PlaneGeometry",(function(){return Yi})),n.d(e,"SphereGeometry",(function(){return qi})),n.d(e,"Camera",(function(){return O})),n.d(e,"PerspectiveCamera",(function(){return Q})),n.d(e,"OrthographicCamera",(function(){return Dn})),n.d(e,"Buffer",(function(){return jt})),n.d(e,"UniformBuffer",(function(){return Ki})),n.d(e,"capabilities",(function(){return lt})),n.d(e,"extensions",(function(){return ht})),n.d(e,"Framebuffer",(function(){return we})),n.d(e,"glType",(function(){return Ct})),n.d(e,"logGLResource",(function(){return Qi})),n.d(e,"Program",(function(){return Ft})),n.d(e,"RenderInfo",(function(){return qr})),n.d(e,"RenderList",(function(){return Jr})),n.d(e,"VertexArrayObject",(function(){return Qt})),n.d(e,"WebGLRenderer",(function(){return mi})),n.d(e,"WebGLResourceManager",(function(){return ti})),n.d(e,"WebGLState",(function(){return $r})),n.d(e,"BasicLoader",(function(){return na})),n.d(e,"CubeTextureLoader",(function(){return sa})),n.d(e,"GLTFLoader",(function(){return Xa})),n.d(e,"GLTFParser",(function(){return Ba})),n.d(e,"AliAMCExtension",(function(){return Rr})),n.d(e,"HDRLoader",(function(){return Za})),n.d(e,"KTXLoader",(function(){return $a})),n.d(e,"LoadCache",(function(){return $i})),n.d(e,"LoadQueue",(function(){return ts})),n.d(e,"ShaderMaterialLoader",(function(){return ns})),n.d(e,"TextureLoader",(function(){return is})),n.d(e,"Loader",(function(){return ia})),n.d(e,"Texture",(function(){return _e})),n.d(e,"LazyTexture",(function(){return ha})),n.d(e,"CubeTexture",(function(){return Ve})),n.d(e,"DataTexture",(function(){return qe})),n.d(e,"Shader",(function(){return Rt})),n.d(e,"BasicMaterial",(function(){return Sn})),n.d(e,"GeometryMaterial",(function(){return wn})),n.d(e,"Material",(function(){return On})),n.d(e,"PBRMaterial",(function(){return ua})),n.d(e,"semantic",(function(){return hn})),n.d(e,"ShaderMaterial",(function(){return pr})),n.d(e,"AxisHelper",(function(){return us})),n.d(e,"AxisNetHelper",(function(){return hs})),n.d(e,"CameraHelper",(function(){return _s})),n.d(e,"AmbientLight",(function(){return gs})),n.d(e,"AreaLight",(function(){return vs})),n.d(e,"DirectionalLight",(function(){return fr})),n.d(e,"CubeLightShadow",(function(){return ir})),n.d(e,"Light",(function(){return A})),n.d(e,"LightManager",(function(){return ii})),n.d(e,"LightShadow",(function(){return jn})),n.d(e,"PointLight",(function(){return sr})),n.d(e,"SpotLight",(function(){return mr})),n.d(e,"Animation",(function(){return Sa})),n.d(e,"AnimationStates",(function(){return Oa})),n.d(e,"MeshPicker",(function(){return Is})),n.d(e,"Ticker",(function(){return Rs})),n.d(e,"log",(function(){return m.a})),n.d(e,"Cache",(function(){return J})),n.d(e,"browser",(function(){return _i})),n.d(e,"WebGLSupport",(function(){return Os})),n.d(e,"constants",(function(){return P.a})),n.d(e,"Color",(function(){return Ls.Color})),n.d(e,"Euler",(function(){return Ls.Euler})),n.d(e,"EulerNotifier",(function(){return Ls.EulerNotifier})),n.d(e,"Frustum",(function(){return Ls.Frustum})),n.d(e,"math",(function(){return Ls.math})),n.d(e,"Matrix3",(function(){return Ls.Matrix3})),n.d(e,"Matrix4",(function(){return Ls.Matrix4})),n.d(e,"Matrix4Notifier",(function(){return Ls.Matrix4Notifier})),n.d(e,"Plane",(function(){return Ls.Plane})),n.d(e,"Quaternion",(function(){return Ls.Quaternion})),n.d(e,"Ray",(function(){return Ls.Ray})),n.d(e,"Sphere",(function(){return Ls.Sphere})),n.d(e,"SphericalHarmonics3",(function(){return Ls.SphericalHarmonics3})),n.d(e,"Vector2",(function(){return Ls.Vector2})),n.d(e,"Vector3",(function(){return Ls.Vector3})),n.d(e,"Vector3Notifier",(function(){return Ls.Vector3Notifier})),n.d(e,"Vector4",(function(){return Ls.Vector4}));var r={};n.r(r),n.d(r,"ALI_amc_mesh_compression",(function(){return Rr})),n.d(r,"WEB3D_quantized_attributes",(function(){return Lr})),n.d(r,"HILO_animation_clips",(function(){return Sr})),n.d(r,"ALI_animation_clips",(function(){return yr})),n.d(r,"ALI_bounding_box",(function(){return Nr})),n.d(r,"KHR_materials_pbrSpecularGlossiness",(function(){return xr})),n.d(r,"KHR_materials_clearcoat",(function(){return Cr})),n.d(r,"KHR_lights_punctual",(function(){return br})),n.d(r,"KHR_techniques_webgl",(function(){return Pr}));var i=n(4),a=n(1),s=n(9),o=n(7),u=n(21),c=n(5),f=n(17),h=n(22),l=n(10),d=n(6),m=n(3),_=new c.a(0,1,0),p=new o.a,g=a.a.create({Statics:{TRAVERSE_STOP_NONE:0,TRAVERSE_STOP_CHILDREN:1,TRAVERSE_STOP_ALL:2},Mixes:s.a,isNode:!0,className:"Node",name:"",anim:null,animationId:"",jointName:"",autoUpdateWorldMatrix:!0,autoUpdateChildWorldMatrix:!0,parent:null,_quatDirty:!1,_matrixDirty:!1,needCallChildUpdate:!0,visible:!0,pointerEnabled:!0,pointerChildren:!0,useHandCursor:!1,userData:null,onUpdate:null,__forceUseParentWorldMatrix:!1,constructor:function(t){var e=this;this.id=d.a.generateUUID(this.className),this.up=_.clone(),this.children=[],this.worldMatrix=new o.a,this._matrix=new u.a,this._position=new f.a(0,0,0),this._scale=new f.a(1,1,1),this._pivot=new f.a(0,0,0),this._rotation=new h.a,this._quaternion=new l.a,this._matrix.on("update",(function(){e._onMatrixUpdate()})),this._position.on("update",(function(){e._onPositionUpdate()})),this._scale.on("update",(function(){e._onScaleUpdate()})),this._pivot.on("update",(function(){e._onPivotUpdate()})),this._rotation.on("update",(function(){e._onRotationUpdate()})),this._quaternion.on("update",(function(){e._onQuaternionUpdate()})),Object.assign(this,t)},clone:function(t){var e=new this.constructor;return e.name=this.name,e.jointName=this.jointName,e.animationId=this.animationId,e.setPosition(this.x,this.y,this.z),e.setScale(this.scaleX,this.scaleY,this.scaleZ),e.setRotation(this.rotationX,this.rotationY,this.rotationZ),this.children.forEach((function(t){e.addChild(t.clone(!0))})),t||(this.anim&&(e.anim=this.anim.clone(e)),e.resetSkinedMeshRootNode()),e},setAnim:function(t){return this.anim=t,t.rootNode=this,this},resetSkinedMeshRootNode:function(){var t=this;this.traverse((function(e){e.isSkinedMesh&&e.skeleton&&(e.skeleton.rootNode=t)}),!0)},getChildrenNameMap:function(){var t={};return this.traverse((function(e){t[e.name]=e;var n=e._originName;void 0===n||t[n]||(t[n]=e)}),!0),t},addChild:function(t){return t.parent&&t.removeFromParent(),t.parent=this,this.children.push(t),this},removeChild:function(t){var e=this.children.indexOf(t);return e>-1&&(this.children.splice(e,1),t.parent=null),this},addTo:function(t){return t.addChild(this),this},removeFromParent:function(){return this.parent&&this.parent.removeChild(this),this},updateMatrix:function(){return this._matrixDirty&&(this._matrixDirty=!1,this.matrixVersion++,this._matrix.fromRotationTranslationScaleOrigin(this.quaternion,this._position,this._scale,this._pivot,!0)),this},updateQuaternion:function(){return this._quatDirty&&(this._quatDirty=!1,this._quaternion.fromEuler(this._rotation,!0)),this},updateTransform:function(){return this._matrix.decompose(this._quaternion,this._position,this._scale,this._pivot),this._onQuaternionUpdate(),this._matrixDirty=!1,this},updateMatrixWorld:function(t){return this.traverse((function(e){return(e.autoUpdateWorldMatrix||t)&&(e.parent?e.__forceUseParentWorldMatrix?e.worldMatrix.copy(e.parent.worldMatrix):e.worldMatrix.multiply(e.parent.worldMatrix,e.matrix):e.worldMatrix.copy(e.matrix)),e.autoUpdateChildWorldMatrix||t?0:1})),this},getConcatenatedMatrix:function(t){for(var e=new o.a,n=this;n&&n!==t;n=n.parent)e.multiply(n.matrix,e);return e},_traverse:function(t,e){if(!e){var n=t(this);if(2===n||1===n)return n}for(var r=this.children,i=0,a=r.length;i<a;i++){var s=r[i]._traverse(t,!1);if(2===s)return s}return 0},traverse:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._traverse(t,e),this},traverseBFS:function(t){var e,n,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(n=r?this.children:[this];n.length;){e=n,n=[];for(var i=0,a=e.length;i<a;i++){var s=e[i],o=t(s);if(2===o)return this;1!==o&&(n=n.concat(s.children))}}return this},getChildByFnBFS:function(t){var e=null;return this.traverseBFS((function(n){return t(n)?(e=n,2):0}),!0),e},getChildByNamePath:function(t){for(var e=this,n=function(){var n=t[r],i=e.getChildByFnBFS((function(t){return t.name===n}));if(!i)return{v:null};e=i},r=0,i=t.length;r<i;r++){var a=n();if("object"==typeof a)return a.v}return e},traverseUpdate:function(t){return this.traverse((function(e){return e.onUpdate&&e.onUpdate(t),e.needCallChildUpdate?0:1})),this},getChildByFn:function(t){var e=null;return this.traverse((function(n){return t(n)?(e=n,2):0}),!0),e},getChildrenByFn:function(t){var e=[];return this.traverse((function(n){t(n)&&e.push(n)}),!0),e},getChildByName:function(t){return this.getChildByFn((function(e){return e.name===t}))},getChildrenByName:function(t){return this.getChildrenByFn((function(e){return e.name===t}))},getChildById:function(t){return this.getChildByFn((function(e){return e.id===t}))},getChildrenByClassName:function(t){return this.getChildrenByFn((function(e){return e.className===t}))},getChildrenByBaseClassName:function(t){return this.getChildrenByFn((function(e){return e["is"+t]}))},setScale:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return this._scale.set(t,e,n),this},setPosition:function(t,e,n){return this._position.set(t,e,n),this},setRotation:function(t,e,n){return this._rotation.setDegree(t,e,n),this},setPivot:function(t,e,n){return this._pivot.set(t,e,n),this},lookAt:function(t){return this.isCamera?p.targetTo(this,t,this.up):p.targetTo(t,this,this.up),this._quaternion.fromMat4(p),this},raycast:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!this.visible)return null;var r=[];return this.traverse((function(e){if(n&&!e.pointerEnabled)return 1;if(e.isMesh){var i=e.raycast(t,!1);i&&(r=r.concat(i.map((function(t){return{mesh:e,point:t}}))))}return n&&!e.pointerChildren?1:0})),r.length?(e&&t.sortPoints(r,"point"),r):null},matrix:{get:function(){return this.updateMatrix(),this._matrix},set:function(t){m.a.warnOnce("Node.matrix.set","node.matrix is readOnly.Use node.matrix.copy instead."),this._matrix.copy(t)}},position:{get:function(){return this._position},set:function(t){m.a.warnOnce("Node.position.set","node.position is readOnly.Use node.position.copy instead."),this._position.copy(t)}},x:{get:function(){return this._position.elements[0]},set:function(t){this._position.elements[0]=t,this._matrixDirty=!0}},y:{get:function(){return this._position.elements[1]},set:function(t){this._position.elements[1]=t,this._matrixDirty=!0}},z:{get:function(){return this._position.elements[2]},set:function(t){this._position.elements[2]=t,this._matrixDirty=!0}},scale:{get:function(){return this._scale},set:function(t){m.a.warnOnce("Node.scale.set","node.scale is readOnly.Use node.scale.copy instead."),this._scale.copy(t)}},scaleX:{get:function(){return this._scale.elements[0]},set:function(t){this._scale.elements[0]=t,this._matrixDirty=!0}},scaleY:{get:function(){return this._scale.elements[1]},set:function(t){this._scale.elements[1]=t,this._matrixDirty=!0}},scaleZ:{get:function(){return this._scale.elements[2]},set:function(t){this._scale.elements[2]=t,this._matrixDirty=!0}},pivot:{get:function(){return this._pivot},set:function(t){m.a.warnOnce("Node.pivot.set","node.pivot is readOnly.Use node.pivot.copy instead."),this._pivot.copy(t)}},pivotX:{get:function(){return this._pivot.elements[0]},set:function(t){this._pivot.elements[0]=t,this._matrixDirty=!0}},pivotY:{get:function(){return this._pivot.elements[1]},set:function(t){this._pivot.elements[1]=t,this._matrixDirty=!0}},pivotZ:{get:function(){return this._pivot.elements[2]},set:function(t){this._pivot.elements[2]=t,this._matrixDirty=!0}},rotation:{get:function(){return this._rotation},set:function(t){m.a.warnOnce("Node.rotation.set","node.rotation is readOnly.Use node.rotation.copy instead."),this._rotation.copy(t)}},rotationX:{get:function(){return this._rotation.degX},set:function(t){this._rotation.degX=t}},rotationY:{get:function(){return this._rotation.degY},set:function(t){this._rotation.degY=t}},rotationZ:{get:function(){return this._rotation.degZ},set:function(t){this._rotation.degZ=t}},quaternion:{get:function(){return this.updateQuaternion(),this._quaternion},set:function(t){m.a.warnOnce("Node.quaternion.set","node.quaternion is readOnly.Use node.quaternion.copy instead."),this._quaternion.copy(t)}},matrixVersion:0,getBounds:function(t,e,n){return e?e.multiply(this.matrix):e=this.getConcatenatedMatrix(t),this.children.forEach((function(t){n=t.getBounds(null,e.clone(),n)})),this.isMesh&&(n=this.geometry.getBounds(e,n)),n},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"===t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=Object.assign({},t);e.type="mouseover",this.fire(e)}}else"mouseout"===t.type&&(this.__mouseOver=!1);var n=this.parent;t._stopped||t._stopPropagationed||!n||n._fireMouseEvent(t)},destroy:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getChildrenByBaseClassName("Node");return this.off(),n.forEach((function(n){n.isMesh?n.destroy(t,e):(n.off(),n.removeFromParent())})),this.removeFromParent(),this},_onMatrixUpdate:function(){this.matrixVersion++,this.updateTransform()},_onPositionUpdate:function(){this._matrixDirty=!0},_onScaleUpdate:function(){this._matrixDirty=!0},_onPivotUpdate:function(){this._matrixDirty=!0},_onRotationUpdate:function(){this._quatDirty=!0,this._matrixDirty=!0},_onQuaternionUpdate:function(){this._rotation.fromQuat(this._quaternion),this._quatDirty=!1}}),E=n(8),v=new E.a,T=a.a.create({Extends:g,isLight:!0,className:"Light",amount:1,enabled:!0,constantAttenuation:1,linearAttenuation:0,quadraticAttenuation:0,_range:0,range:{get:function(){return this._range},set:function(t){this.constantAttenuation=1,t<=0?(this.linearAttenuation=0,this.quadraticAttenuation=0):(this.linearAttenuation=4.5/t,this.quadraticAttenuation=75/(t*t)),this._range=t}},shadow:null,isDirty:!1,constructor:function(t){this.color=new E.a(1,1,1),T.superclass.constructor.call(this,t)},toInfoArray:function(t,e){return t[e+0]=this.constantAttenuation,t[e+1]=this.linearAttenuation,t[e+2]=this.quadraticAttenuation,this},getRealColor:function(){return v.copy(this.color).scale(this.amount)},createShadowMap:function(t,e){}}),A=T,M=n(23),I=new o.a,R=a.a.create({Extends:g,isCamera:!0,className:"Camera",_needUpdateProjectionMatrix:!0,_isGeometryDirty:!1,constructor:function(t){this.viewMatrix=new o.a,this.projectionMatrix=new o.a,this.viewProjectionMatrix=new o.a,this._frustum=new M.a,R.superclass.constructor.call(this,t)},updateViewMatrix:function(){return this.updateMatrixWorld(!0),this.viewMatrix.invert(this.worldMatrix),this},updateProjectionMatrix:function(){},getGeometry:function(t){},updateViewProjectionMatrix:function(){return this._needUpdateProjectionMatrix&&(this.updateProjectionMatrix(),this._needUpdateProjectionMatrix=!1),this.updateViewMatrix(),this.viewProjectionMatrix.multiply(this.projectionMatrix,this.viewMatrix),this.updateFrustum(this.viewProjectionMatrix),this},getModelViewMatrix:function(t,e){return(e=e||new o.a).multiply(this.viewMatrix,t.worldMatrix),e},getModelProjectionMatrix:function(t,e){return(e=e||new o.a).multiply(this.viewProjectionMatrix,t.worldMatrix),e},projectVector:function(t,e,n){var r=t.clone();return r.transformMat4(this.viewProjectionMatrix),e&&n&&(r.x=(r.x+1)/2*e,r.y=n-(r.y+1)/2*n),r},unprojectVector:function(t,e,n){var r=t.clone();return e&&n&&(r.x=r.x/e*2-1,r.y=1-r.y/n*2),I.invert(this.viewProjectionMatrix),r.transformMat4(I),r},isPointVisible:function(t){return!!this._frustum.intersectsSphere({center:t,radius:0})},isMeshVisible:function(t){var e=t.geometry;if(e){var n=e.getSphereBounds(t.worldMatrix);if(this._frustum.intersectsSphere(n))return!0}return!1},updateFrustum:function(t){return this._frustum.fromMatrix(t),this}}),O=R,L=n(14),S=n(12),y=n(11),N=n(20),x={2:new L.a,3:new c.a,4:new S.a,16:new o.a},C=a.a.create({className:"GeometryData",isGeometryData:!0,size:void 0,normalized:!1,type:void 0,_isSubDirty:!1,_isAllDirty:!1,isDirty:{get:function(){return this._isSubDirty||this._isAllDirty},set:function(t){this._isAllDirty=t,!1===t&&this.clearSubData()}},bufferViewId:void 0,glBuffer:null,constructor:function(t,e,n){this.id=d.a.generateUUID(this.className),this.data=t,this.size=e,Object.assign(this,n),this.bufferViewId||(this.bufferViewId=this.id),this.size||m.a.warn("GeometryData.constructor: geometryData must set size!",this)},_stride:0,stride:{get:function(){return this._stride},set:function(t){this._stride=t,this.strideSize=0===t?0:t/this.data.BYTES_PER_ELEMENT}},strideSize:0,_offset:0,offset:{get:function(){return this._offset},set:function(t){this._offset=t,this.offsetSize=t/this.data.BYTES_PER_ELEMENT}},offsetSize:0,data:{set:function(t){t&&(this._data=t,this.type=Object(i.getTypedArrayGLType)(t),this.stride=this._stride,this.offset=this._offset,this._isAllDirty=!0)},get:function(){return this._data}},length:{get:function(){return this._data.length}},realLength:{get:function(){return 0===this.strideSize?this._data.length:this._data.length/this.strideSize*this.size}},getByteLength:function(){return this._data.BYTES_PER_ELEMENT*this.realLength},count:{get:function(){return 0===this.strideSize?this._data.length/this.size:this._data.length/this.strideSize}},setSubData:function(t,e){this._isSubDirty=!0,this.data.set(e,t),this.subDataList||(this.subDataList=[]);var n=e.BYTES_PER_ELEMENT*t;this.subDataList.push({byteOffset:n,data:e})},clearSubData:function(){this.subDataList&&(this.subDataList.length=0),this._isSubDirty=!1},clone:function(){var t=new C(null,1);return t.copy(this),t},copy:function(t){var e=t.data;this.data=new e.constructor(e),this.size=t.size,this.stride=t.stride,this.normalized=t.normalized,this.type=t.type,this.offset=t.offset},getOffset:function(t){var e=this.strideSize;return 0===e?t*this.size:t*e+this.offsetSize},get:function(t){var e=this.getOffset(t);return this.getByOffset(e)},getCopy:function(t){return this.get(t).clone()},set:function(t,e){var n=this.getOffset(t);return this.setByOffset(n,e),n},getByOffset:function(t){var e=this.size;return e>1?x[e].fromArray(this._data,t):this._data[t]},setByOffset:function(t,e){var n=this.size,r=this._data;n>1?e.toArray(r,t):r[t]=e,this._isAllDirty=!0},traverse:function(t){for(var e=this.count,n=0;n<e;n++){var r=this.getOffset(n);if(t(this.getByOffset(r),n,r))return!0}return!1},traverseByComponent:function(t){for(var e=this.count,n=this.size,r=this._data,i=0;i<e;i++)for(var a=this.getOffset(i),s=i*n,o=0;o<n;o++){var u=a+o;if(t(r[u],s+o,u))return!0}return!1},merge:function(t,e){if(t.type!==this.type||t.size!==this.size)return m.a.warn("geometryData type or size not same, cannot merge!",this,t),this;var n=Object(i.getTypedArrayClass)(this.type),r=this.realLength,a=t.realLength,s=new n(r+a);return this.traverseByComponent((function(t,e){s[e]=t})),t.traverseByComponent((function(t,n){e&&(t=e(t,n)),s[r+n]=t})),this.stride=0,this.offset=0,this.data=s,this}}),b=C,P=n(2),w=P.a.TRIANGLES,H=P.a.LINES,D=P.a.FRONT,F=P.a.BACK,U=P.a.FRONT_AND_BACK,G=new c.a,B=new c.a,V=new c.a,X=new S.a,j=new L.a,k=new L.a,W=new L.a,Y=new y.a,z=new o.a,q=new l.a,K=a.a.create({isGeometry:!0,className:"Geometry",vertices:null,uvs:null,uvs1:null,colors:null,indices:null,skinIndices:null,skinWeights:null,mode:w,isStatic:!0,isDirty:!0,useAABBRaycast:!1,userData:null,constructor:function(t){this.id=d.a.generateUUID(this.className),Object.assign(this,t),this.currentVerticesCount=0,this.currentIndicesCount=0},_needUpdateNormals:!1,normals:{get:function(){return!this._needUpdateNormals&&this._normals||this.calculateNormals(),this._normals},set:function(t){this._normals=t,this._needUpdateNormals=!1}},calculateNormals:function(){var t=this.vertices;if(t){this._normals||(this._normals=new b(new Float32Array(t.realLength),3));var e,n=this._normals;if(this.indices)e=this.indices.data;else{var r=t.length/3;e=new Array(r);for(var i=0;i<r;i++)e[i]=i}for(var a=0,s=new Uint8Array(t.count),o=0;o<e.length;o+=3){a=e[o],G.copy(t.get(a)),a=e[o+1],B.copy(t.get(a)),a=e[o+2],V.copy(t.get(a)),B.sub(G),V.sub(G),B.cross(V);for(var u=0;u<3;u++){if(s[a=e[o+u]]){var c=n.get(a);c.scale(s[a]),c.add(B),c.scale(1/(s[a]+1)),n.set(a,c)}else n.set(a,B);s[a]++}}this.isDirty=!0,this._needUpdateNormals=!1}else m.a.warnOnce("geometry.calculateNormals","geometry.calculateNormals error:no vertices data.")},tangents:{get:function(){return this._tangents||this.calculateTangents(this.uvs,"_tangents"),this._tangents},set:function(t){this._tangents=t}},tangents1:{get:function(){return this._tangents1||this.calculateTangents(this.uvs1,"_tangents1"),this._tangents1},set:function(t){this._tangents1=t}},calculateTangents:function(t,e){var n=this.vertices;if(n){this[e]||(this[e]=new b(new Float32Array(4*n.count),4));var r,i=this[e];if(this.indices)r=this.indices.data;else{var a=n.length/3;r=new Array(a);for(var s=0;s<a;s++)r[s]=s}for(var o=0,u=0;u<r.length;u+=3){o=r[u],G.copy(n.get(o)),j.copy(t.get(o)),o=r[u+1],B.copy(n.get(o)),k.copy(t.get(o)),o=r[u+2],V.copy(n.get(o)),W.copy(t.get(o)),B.sub(G),V.sub(G),k.sub(j),W.sub(j);var c=1/(k.x*W.y-W.x*k.y);Number.isFinite(c)?(G.x=c*(W.y*B.x-k.y*V.x),G.y=c*(W.y*B.y-k.y*V.y),G.z=c*(W.y*B.z-k.y*V.z)):(G.x=0,G.y=0,G.z=1),X.set(G.x,G.y,G.z,1),i.set(r[u],X),i.set(r[u+1],X),i.set(r[u+2],X)}this.isDirty=!0}else m.a.warnOnce("geometry.calculateTangents","geometry.calculateTangents error:no vertices data.")},convertToLinesMode:function(){if(this.mode===w)if(this.indices){for(var t=new Uint16Array(2*this.indices.length),e=this.indices.data,n=0;n<e.length;n+=3)t[2*n]=e[n],t[2*n+1]=e[n+1],t[2*n+2]=e[n+1],t[2*n+3]=e[n+2],t[2*n+4]=e[n+2],t[2*n+5]=e[n];this.indices.data=t,this.mode=H}else m.a.warn("Has no indices!");else m.a.warn("Only support convert triangles to lines mode!")},translate:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.transformMat4(z.fromTranslation(G.set(t,e,n))),this},scale:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return this.transformMat4(z.fromScaling(G.set(t,e,n))),this},rotate:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.transformMat4(z.fromQuat(q.fromEuler({x:t*d.a.DEG2RAD,y:e*d.a.DEG2RAD,z:n*d.a.DEG2RAD}))),this},transformMat4:function(t){var e=this.vertices;if(e&&e.traverse((function(n,r,i){e.setByOffset(i,n.transformMat4(t))})),Y.normalFromMat4(t),this._normals){var n=this.normals;n.traverse((function(t,e,r){n.setByOffset(r,t.transformMat3(Y).normalize())}))}if(this._tangents){var r=this.tangents;r.traverse((function(t,e,n){r.setByOffset(n,t.transformMat3(Y).normalize())}))}return this.isDirty=!0,this},merge:function(t,e){var n=t.vertices;if(n&&this.vertices){var r=this.vertices.count;e&&(n=t.vertices.clone()).traverse((function(t,r,i){n.setByOffset(i,t.transformMat4(e))})),this.vertices.merge(n),this.indices&&t.indices?this.indices.merge(t.indices,(function(t){return t+r})):this.indices=null}return this.uvs&&t.uvs?this.uvs.merge(t.uvs):this.uvs=null,this.uvs1&&t.uvs1?this.uvs1.merge(t.uvs1):this.uvs1=null,this.colors&&t.colors?this.colors.merge(t.colors):this.colors=null,this._normals&&(this._normals=null),this._tangents&&(this._tangents=null),this._tangents1&&(this._tangents1=null),this.isDirty=!0,this},ensureData:function(t,e,n,r){var i=this[t];if(!i||n>i.length){var a=new r(n);i?(a.set(i.data),i.data=a):this[t]=new b(a,e)}},addPoints:function(){var t=this,e=[].slice.call(arguments),n=3*(this.currentVerticesCount+e.length);this.ensureData("vertices",3,n,Float32Array);var r=this.vertices.data;return e.forEach((function(e){var n=3*t.currentVerticesCount++;r[n]=e[0],r[n+1]=e[1],r[n+2]=e[2]})),this.currentVerticesCount-e.length},addIndices:function(){var t=this,e=[].slice.call(arguments),n=this.currentIndicesCount+e.length;this.ensureData("indices",1,n,Uint16Array);var r=this.indices.data;e.forEach((function(e){r[t.currentIndicesCount++]=e})),this._needUpdateNormals=!0},addLine:function(t,e){var n=this.addPoints(t,e);this.addIndices(n,n+1)},addFace:function(t,e,n){var r=this.addPoints(t,e,n);this.addIndices(r,r+1,r+2)},addRect:function(t,e,n,r){var i=this.addPoints(t,e,n,r);this.addIndices(i,i+1,i+2,i,i+2,i+3)},setVertexUV:function(t,e){this.ensureData("uvs",2,this.vertices.length/3*2,Float32Array);for(var n=this.uvs.data,r=0;r<e.length;r++)n[t+2*r]=e[r][0],n[t+2*r+1]=e[r][1]},setFaceUV:function(t,e,n,r){this.setVertexUV(t,[e,n,r])},setRectUV:function(t,e,n,r,i){this.setVertexUV(t,[e,n,r,i])},getBounds:function(t,e){e||(e={xMin:1/0,xMax:-1/0,yMin:1/0,yMax:-1/0,zMin:1/0,zMax:-1/0});var n=this.vertices;return n?(n.traverse((function(n){t&&n.transformMat4(t),e.xMax=Math.max(e.xMax,n.x),e.yMax=Math.max(e.yMax,n.y),e.zMax=Math.max(e.zMax,n.z),e.xMin=Math.min(e.xMin,n.x),e.yMin=Math.min(e.yMin,n.y),e.zMin=Math.min(e.zMin,n.z)})),e.width=e.xMax-e.xMin,e.height=e.yMax-e.yMin,e.depth=e.zMax-e.zMin,e.x=(e.xMin+e.xMax)/2,e.y=(e.yMin+e.yMax)/2,e.z=(e.zMin+e.zMax)/2,e):(m.a.warnOnce("geometry.getBounds","geometry has no vertices data, geometry.getBounds will return Infinity bounds."),e)},getLocalBounds:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._localBounds&&!t||(this._localBounds=this.getBounds()),this._localBounds},getSphereBounds:function(t){this._sphereBounds||(this._sphereBounds=new N.a);var e=this._sphereBounds;return e.copy(this.getLocalSphereBounds()),t&&e.transformMat4(t),e},getLocalSphereBounds:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this._localSphereBounds||t){var e=this.getLocalBounds(t),n=new N.a({center:new c.a(e.x,e.y,e.z)}),r=this.vertices;r?n.fromGeometryData(r):(m.a.warnOnce("geometry.getLocalSphereBounds","geometry has no vertices data, geometry.getLocalSphereBounds will return Infinity bounds."),n.radius=1/0),this._localSphereBounds=n}return this._localSphereBounds},convertToNoIndices:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3;if(this.mode===w)if(this.indices){for(var e=this.indices.data,n=e.length,r=new Float32Array(n*t),a=this.uvs?new Float32Array(2*n):null,s=new Float32Array(3*n),o=this.colors?new Float32Array(this.colors.size*n):null,u=this.skinIndices?new Float32Array(4*n):null,c=this.skinWeights?new Float32Array(4*n):null,f=0;f<n;f++){var h=e[f];Object(i.copyArrayData)(r,this.vertices,f*t,3*h,3),4===t&&(r[4*f+3]=1),Object(i.copyArrayData)(a,this.uvs,2*f,2*h,2),Object(i.copyArrayData)(s,this.normals,3*f,3*h,3),Object(i.copyArrayData)(u,this.skinIndices,4*f,4*h,4),Object(i.copyArrayData)(c,this.skinWeights,4*f,4*h,4),this.colors&&Object(i.copyArrayData)(o,this.colors,f*this.colors.size,h*this.colors.size,this.colors.size)}delete this.indices,this.vertices.data=r,this.uvs&&(this.uvs.data=a),this.normals&&(this.normals.data=s),this.colors&&(this.colors.data=o),this.skinIndices&&(this.skinIndices.data=u),this.skinWeights&&(this.skinWeights.data=c)}else m.a.warn("Has no indices!");else m.a.warn("Only support convert triangles to lines mode!")},clone:function(){var t=new this.constructor({mode:this.mode});return this.vertices&&(t.vertices=this.vertices.clone()),this.uvs&&(t.uvs=this.uvs.clone()),this.uvs1&&(t.uvs1=this.uvs1.clone()),this.colors&&(t.colors=this.colors.clone()),this.indices&&(t.indices=this.indices.clone()),this.skinWeights&&(t.skinWeights=this.skinWeights.clone()),this.skinIndices&&(t.skinIndices=this.skinIndices.clone()),this._normals&&(t._normals=this._normals.clone()),this._tangents&&(t._tangents=this._tangents.clone()),this._tangents1&&(t._tangents1=this._tangents1.clone()),this.positionDecodeMat&&(t.positionDecodeMat=this.positionDecodeMat),this.uvDecodeMat&&(t.uvDecodeMat=this.uvDecodeMat),this.uv1DecodeMat&&(t.uv1DecodeMat=this.uv1DecodeMat),this.normalDecodeMat&&(t.normalDecodeMat=this.normalDecodeMat),t},_aabbRaycast:function(t){var e=this.getLocalBounds(),n=t.intersectsBox([[e.xMin,e.yMin,e.zMin],[e.xMax,e.yMax,e.zMax]]);return n?[n]:null},_raycast:function(t,e){var n=this.vertices;if(!n)return null;var r,i=this.indices,a=[],s=[];r=i?i.realLength:n.realLength/3;for(var o=0;o<r;o+=3){var u=i?i.get(o):o;G.copy(n.get(u)),u=i?i.get(o+1):o+1,B.copy(n.get(u)),u=i?i.get(o+2):o+2,V.copy(n.get(u));var c=void 0;e===D?(a[0]=G.elements,a[1]=B.elements,a[2]=V.elements,c=t.intersectsTriangle(a)):e===F?(a[1]=G.elements,a[0]=B.elements,a[2]=V.elements,c=t.intersectsTriangle(a)):e===U&&(a[0]=G.elements,a[1]=B.elements,a[2]=V.elements,(c=t.intersectsTriangle(a))||(a[1]=G.elements,a[0]=B.elements,a[2]=V.elements,c=t.intersectsTriangle(a))),c&&s.push(c)}return s.length?s:null},raycast:function(t,e){var n,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return(n=this.useAABBRaycast?this._aabbRaycast(t):this._raycast(t,e))&&r&&t.sortPoints(n),n},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.positionDecodeMat&&(t.QUANTIZED=1,t.POSITION_QUANTIZED=1),this.normalDecodeMat&&(t.QUANTIZED=1,t.NORMAL_QUANTIZED=1),this.uvDecodeMat&&(t.QUANTIZED=1,t.UV_QUANTIZED=1),this.uv1DecodeMat&&(t.QUANTIZED=1,t.UV1_QUANTIZED=1),this.colors&&(t.HAS_COLOR=1,t.COLOR_SIZE=this.colors.size),t},getShaderKey:function(){return void 0===this._shaderKey&&(this._shaderKey="geometry",this.isMorphGeometry?this._shaderKey+="_id_".concat(this.id):(this.colors&&(this._shaderKey+="_colors"),this.positionDecodeMat&&(this._shaderKey+="positionDecodeMat"))),this._shaderKey},getSize:function(){var t=0;for(var e in this)Object(i.hasOwnProperty)(this,e)&&this[e]&&this[e].isGeometryData&&(t+=this[e].getByteLength());return t},destroy:function(){m.a.warn("Geometry.destroy has been deprecated, use mesh.destroy(renderer) instead.")}}),Z=a.a.create({Extends:O,isPerspectiveCamera:!0,className:"PerspectiveCamera",_near:.1,near:{get:function(){return this._near},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._near=t}},_far:null,far:{get:function(){return this._far},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._far=t}},_fov:50,fov:{get:function(){return this._fov},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._fov=t}},_aspect:1,aspect:{get:function(){return this._aspect},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._aspect=t}},constructor:function(t){Z.superclass.constructor.call(this,t),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=this.projectionMatrix.elements,e=this.near,n=this.far,r=this.aspect,i=this.fov,a=1/Math.tan(.5*d.a.degToRad(i));if(t[0]=a/r,t[5]=a,t[11]=-1,t[15]=0,n){var s=1/(e-n);t[10]=(e+n)*s,t[14]=2*n*e*s}else t[10]=-1,t[14]=-2*e},getGeometry:function(t){if(t||!this._geometry||this._isGeometryDirty){this._isGeometryDirty=!1;var e=new K,n=Math.tan(this.fov/2*Math.PI/180),r=this.near,i=this.far,a=r*n,s=i*n,o=this.aspect*a,u=this.aspect*s,c=[-o,-a,-r],f=[o,-a,-r],h=[o,a,-r],l=[-o,a,-r],d=[-u,-s,-i],m=[u,-s,-i],_=[u,s,-i],p=[-u,s,-i];e.addRect(d,m,_,p),e.addRect(m,f,h,_),e.addRect(f,c,l,h),e.addRect(c,d,p,l),e.addRect(p,_,h,l),e.addRect(c,f,m,d),this._geometry=e}return this._geometry}}),Q=Z,J=a.a.create({constructor:function(){this._cache={}},get:function(t){return this._cache[t]},getObject:function(t){return this._cache[t.__cacheId]},add:function(t,e){"object"==typeof e&&(e.__cacheId=t),this._cache[t]=e},remove:function(t){delete this._cache[t]},removeObject:function(t){delete this._cache[t.__cacheId]},removeAll:function(){this._cache={}},each:function(t){var e=this._cache;for(var n in e)t(e[n],n)}});function $(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function tt(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(i=r.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"))?a:String(a)),r)}var i,a}function et(t,e,n){return e&&tt(t.prototype,e),n&&tt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function nt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rt(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(i=r.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"))?a:String(a)),r)}var i,a}function it(t,e,n){return e&&rt(t.prototype,e),n&&rt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function at(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function st(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(i=r.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"))?a:String(a)),r)}var i,a}function ot(t,e,n){return e&&st(t.prototype,e),n&&st(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var ut={OES_texture_float:{name:"OES_texture_float"},EXT_frag_depth:{name:"EXT_frag_depth"},OES_element_index_uint:{name:"OES_element_index_uint"},EXT_shader_texture_lod:{name:"EXT_shader_texture_lod"},EXT_sRGB:{name:"EXT_sRGB"}},ct={OES_vertex_array_object:{WebGL1:function(){function t(e){$(this,t),this._ext=e}return et(t,[{key:"createVertexArray",value:function(t){return this._ext.createVertexArrayOES(t)}},{key:"deleteVertexArray",value:function(t){this._ext.deleteVertexArrayOES(t)}},{key:"isVertexArray",value:function(t){return this._ext.isVertexArrayOES(t)}},{key:"bindVertexArray",value:function(t){this._ext.bindVertexArrayOES(t)}}]),t}(),WebGL2:function(){function t(e){$(this,t),this._gl=e}return et(t,[{key:"createVertexArray",value:function(t){return this._gl.createVertexArray(t)}},{key:"deleteVertexArray",value:function(t){this._gl.deleteVertexArray(t)}},{key:"isVertexArray",value:function(t){return this._gl.isVertexArray(t)}},{key:"bindVertexArray",value:function(t){this._gl.bindVertexArray(t)}}]),t}()},ANGLE_instanced_arrays:{WebGL1:function(){function t(e){nt(this,t),this._ext=e}return it(t,[{key:"drawArraysInstanced",value:function(t,e,n,r){this._ext.drawArraysInstancedANGLE(t,e,n,r)}},{key:"drawElementsInstanced",value:function(t,e,n,r,i){this._ext.drawElementsInstancedANGLE(t,e,n,r,i)}},{key:"vertexAttribDivisor",value:function(t,e){this._ext.vertexAttribDivisorANGLE(t,e)}}]),t}(),WebGL2:function(){function t(e){nt(this,t),this._gl=e}return it(t,[{key:"drawArraysInstanced",value:function(t,e,n,r){this._gl.drawArraysInstanced(t,e,n,r)}},{key:"drawElementsInstanced",value:function(t,e,n,r,i){this._gl.drawElementsInstanced(t,e,n,r,i)}},{key:"vertexAttribDivisor",value:function(t,e){this._gl.vertexAttribDivisor(t,e)}}]),t}()},WEBGL_draw_buffers:{WebGL1:function(){function t(e){at(this,t),this._ext=e}return ot(t,[{key:"drawBuffers",value:function(t){this._ext.drawBuffersWEBGL(t)}}]),t}(),WebGL2:function(){function t(e){at(this,t),this._gl=e}return ot(t,[{key:"drawBuffers",value:function(t){this._gl.drawBuffers(t)}}]),t}()}},ft={instanced:void 0,vao:void 0,drawBuffers:void 0,texFloat:void 0,fragDepth:void 0,loseContext:void 0,textureFilterAnisotropic:void 0,sRGB:void 0,_usedExtensions:{},_disabledExtensions:{},init:function(t){this.reset(t)},reset:function(t){this.gl=t,this.isWebGL2=Object(i.isWebGL2)(t);var e=this._usedExtensions;for(var n in e){var r=e[n];this[r]=void 0,this.get(n,r)}},use:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;this._usedExtensions[t]=e,this.gl&&this.get(t,e)},get:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;if(this._disabledExtensions[t])return null;var n=this[e];return void 0===n&&(n=this._getExtension(t),this[e]=n),n},disable:function(t){this._disabledExtensions[t]=!0},enable:function(t){this._disabledExtensions[t]=!1},_getExtension:function(t){var e=this.gl;if(this.isWebGL2&&ut[t])return ut[t];var n=ct[t];if(n){if(this.isWebGL2)return new n.WebGL2(e);var r=this._getOriginExtension(t);return r?new n.WebGL1(r):null}return this._getOriginExtension(t)},_getOriginExtension:function(t){var e=this.gl;return e&&e.getExtension&&(e.getExtension(t)||e.getExtension("WEBKIT_"+t)||e.getExtension("MOZ_"+t))||null}};ft.use("ANGLE_instanced_arrays","instanced"),ft.use("OES_vertex_array_object","vao"),ft.use("OES_texture_float","texFloat"),ft.use("OES_element_index_uint","uintIndices"),ft.use("EXT_shader_texture_lod","shaderTextureLod"),ft.use("EXT_frag_depth","fragDepth"),ft.use("EXT_texture_filter_anisotropic","textureFilterAnisotropic"),ft.use("WEBGL_lose_context","loseContext"),ft.use("EXT_color_buffer_float","colorBufferFloat"),ft.use("EXT_sRGB","sRGB"),ft.use("WEBGL_draw_buffers","drawBuffers");var ht=ft,lt={isWebGL2:!1,MAX_TEXTURE_INDEX:null,MAX_PRECISION:null,MAX_VERTEX_PRECISION:null,MAX_FRAGMENT_PRECISION:null,VERTEX_TEXTURE_FLOAT:null,FRAGMENT_TEXTURE_FLOAT:null,MAX_TEXTURE_MAX_ANISOTROPY:1,MAX_RENDERBUFFER_SIZE:void 0,MAX_COMBINED_TEXTURE_IMAGE_UNITS:void 0,MAX_CUBE_MAP_TEXTURE_SIZE:void 0,MAX_FRAGMENT_UNIFORM_VECTORS:void 0,MAX_TEXTURE_IMAGE_UNITS:void 0,MAX_TEXTURE_SIZE:void 0,MAX_VARYING_VECTORS:void 0,MAX_VERTEX_ATTRIBS:void 0,MAX_VERTEX_TEXTURE_IMAGE_UNITS:void 0,MAX_VERTEX_UNIFORM_VECTORS:void 0,init:function(t){var e=this;this.gl=t,this.isWebGL2=Object(i.isWebGL2)(t);["MAX_RENDERBUFFER_SIZE","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS"].forEach((function(t){e.get(t)})),this.MAX_TEXTURE_INDEX=this.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,this.MAX_VERTEX_PRECISION=this._getMaxSupportPrecision(t.VERTEX_SHADER),this.MAX_FRAGMENT_PRECISION=this._getMaxSupportPrecision(t.FRAGMENT_SHADER),this.MAX_PRECISION=this.getMaxPrecision(this.MAX_FRAGMENT_PRECISION,this.MAX_VERTEX_PRECISION),this.VERTEX_TEXTURE_FLOAT=!!ht.texFloat&&this.MAX_VERTEX_TEXTURE_IMAGE_UNITS>0,this.FRAGMENT_TEXTURE_FLOAT=!!ht.texFloat,this.FRAG_DEPTH=!!ht.fragDepth,this.SHADER_TEXTURE_LOD=!!ht.shaderTextureLod,this.DRAW_BUFFERS=!!ht.drawBuffers,ht.textureFilterAnisotropic&&(this.MAX_TEXTURE_MAX_ANISOTROPY=t.getParameter(ht.textureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT))},get:function(t){var e=this.gl,n=this[t];return void 0===n&&(n=this[t]=e.getParameter(e[t])),n},_getMaxSupportPrecision:function(t){var e=this.gl,n="lowp";if(e.getShaderPrecisionFormat)for(var r=[{name:"highp",type:e.HIGH_FLOAT},{name:"mediump",type:e.MEDIUM_FLOAT}],i=0;i<r.length;i++){var a=r[i];if((e.getShaderPrecisionFormat(t,a.type)||{}).precision>0){n=a.name;break}}else n="mediump";return n},getMaxPrecision:function(t,e){return"highp"===t||"mediump"===t&&"lowp"===e?e:t}},dt=n(50),mt=n.n(dt),_t=n(51),pt=n.n(_t),gt=n(52),Et=n.n(gt),vt=n(53),Tt=n.n(vt),At=new J,Mt=new J,It=a.a.create({isShader:!0,className:"Shader",vs:"",fs:"",Statics:{commonOptions:{},shaders:{"chunk/baseDefine.glsl":n(18),"chunk/color.frag":n(36),"chunk/color.vert":n(74),"chunk/color_main.vert":n(76),"chunk/diffuse.frag":n(56),"chunk/diffuse_main.frag":n(65),"chunk/extensions.frag":n(24),"chunk/extensions.vert":n(48),"chunk/fog.frag":n(43),"chunk/fog_main.frag":n(67),"chunk/frag_color.frag":n(47),"chunk/joint.vert":n(69),"chunk/joint_main.vert":n(79),"chunk/light.frag":n(40),"chunk/lightFog.frag":n(39),"chunk/lightFog.vert":n(72),"chunk/lightFog_main.frag":n(45),"chunk/lightFog_main.vert":n(82),"chunk/logDepth.frag":n(28),"chunk/logDepth_main.frag":n(29),"chunk/logDepth.vert":n(75),"chunk/logDepth_main.vert":n(83),"chunk/morph.vert":n(73),"chunk/morph_main.vert":n(78),"chunk/normal.frag":n(38),"chunk/normal.vert":n(71),"chunk/normal_main.frag":n(44),"chunk/normal_main.vert":n(81),"chunk/pbr.frag":n(85),"chunk/pbr_main.frag":n(87),"chunk/phong.frag":n(63),"chunk/phong_main.frag":n(66),"chunk/precision.frag":n(25),"chunk/precision.vert":n(49),"chunk/transparency.frag":n(42),"chunk/transparency_main.frag":n(46),"chunk/unQuantize.vert":n(68),"chunk/unQuantize_main.vert":n(77),"chunk/uv.frag":n(37),"chunk/uv.vert":n(70),"chunk/uv_main.vert":n(80),"method/encoding.glsl":n(86),"method/getDiffuse.glsl":n(58),"method/getLightAttenuation.glsl":n(60),"method/getShadow.glsl":n(62),"method/getSpecular.glsl":n(59),"method/packFloat.glsl":n(84),"method/textureEnvMap.glsl":n(41),"method/transpose.glsl":n(57),"method/unpackFloat.glsl":n(61),"basic.frag":n(50),"basic.vert":n(51),"geometry.frag":n(52),"pbr.frag":n(53),"screen.frag":n(54),"screen.vert":n(55)},init:function(t){this.renderer=t,this.commonHeader=this._getCommonHeader(this.renderer)},cache:{get:function(){return At}},headerCache:{get:function(){return Mt}},reset:function(t){At.removeAll()},getHeaderKey:function(t,e,n,r,i){var a="header_"+e.id+"_"+n.lightInfo.uid;return t.isSkinedMesh&&(a+="_joint"+t.skeleton.jointCount),r&&(a+="_fog_"+r.mode),a+="_"+t.geometry.getShaderKey(),i&&(a+="_fogDepth"),a},getHeader:function(t,e,n,r,i){var a=this.getHeaderKey(t,e,n,r),s=Mt.get(a);if(!s||e.isDirty){var o={};Object.assign(o,this.commonOptions);var u=e.lightType;u&&"NONE"!==u&&n.getRenderOption(o),e.getRenderOption(o),t.getRenderOption(o),r&&(o.HAS_FOG=1,r.getRenderOption(o)),i&&(o.USE_LOG_DEPTH=1,lt.FRAG_DEPTH&&(o.USE_FRAG_DEPTH=1)),o.HAS_NORMAL&&o.NORMAL_MAP&&(o.HAS_TANGENT=1),o.RECEIVE_SHADOWS||(delete o.DIRECTIONAL_LIGHTS_SMC,delete o.SPOT_LIGHTS_SMC,delete o.POINT_LIGHTS_SMC),s="#define SHADER_NAME ".concat(e.shaderName||e.className,"\n"),s+=Object.keys(o).map((function(t){return t.indexOf("HILO_CUSTUM_OPTION_")>-1?"#define ".concat(t.replace("HILO_CUSTUM_OPTION_","")," ").concat(o[t]):"#define HILO_".concat(t," ").concat(o[t])})).join("\n")+"\n",Mt.add(a,s)}return s},_getCommonHeader:function(t){var e=lt.getMaxPrecision(lt.MAX_VERTEX_PRECISION,t.vertexPrecision),n=lt.getMaxPrecision(lt.MAX_FRAGMENT_PRECISION,t.fragmentPrecision),r=lt.getMaxPrecision(e,n);return"\n#define HILO_MAX_PRECISION ".concat(r,"\n#define HILO_MAX_VERTEX_PRECISION ").concat(e,"\n#define HILO_MAX_FRAGMENT_PRECISION ").concat(n,"\n")},getShader:function(t,e,n,r,i,a){var s=this.getHeader(t,e,r,i,a);return e.isBasicMaterial||e.isPBRMaterial?this.getBasicShader(e,n,s):e.isShaderMaterial?this.getCustomShader(e.vs,e.fs,s,e.shaderCacheId||e.id,e.useHeaderCache):null},getBasicShader:function(t,e,n){var r="";e&&(r=(r=t.getInstancedUniforms().map((function(t){return t.name}))).join("|"));var i=t.className+":"+r;t.onBeforeCompile&&(i+=":"+(t.shaderCacheId||t.id));var a=At.get(i);if(!a){var s="",o=pt.a;if(t.isBasicMaterial?t.isGeometryMaterial?s+=Et.a:s+=mt.a:t.isPBRMaterial&&(s+=Tt.a),t.onBeforeCompile){var u=t.onBeforeCompile(o,s);s=u.fs,o=u.vs}if(r){var c=new RegExp("^\\s*uniform\\s+(\\w+)\\s+(".concat(r,");"),"gm");o=o.replace(c,"attribute $1 $2;")}a=this.getCustomShader(o,s,n,i,!0)}if(a){var f=this._getNumId(a);null!==f&&(t._shaderNumId=f)}return a},_getNumId:function(t){var e=t.id.match(/_(\d+)/);return e&&e[1]?parseInt(e[1],10):null},getCustomShader:function(t,e,n,r,i){var a,s=this.commonHeader;return r&&(i&&(r+=":"+n),a=At.get(r)),a||(a=new It({vs:s+n+t,fs:s+n+e}),r&&At.add(r,a)),a}},alwaysUse:!1,constructor:function(t){this.id=d.a.generateUUID(this.className),Object.assign(this,t)},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){return this._isDestroyed||(At.removeObject(this),this._isDestroyed=!0),this}}),Rt=It,Ot=n(55),Lt=n.n(Ot),St=n(54),yt=n.n(St),Nt=[{name:"FLOAT",byteSize:4,uniformFuncName:"uniform1f",type:"Scalar",size:1},{name:"FLOAT_VEC2",byteSize:8,uniformFuncName:"uniform2f",type:"Vector",size:2},{name:"FLOAT_VEC3",byteSize:12,uniformFuncName:"uniform3f",type:"Vector",size:3},{name:"FLOAT_VEC4",byteSize:16,uniformFuncName:"uniform4f",type:"Vector",size:4},{name:"FLOAT_MAT2",byteSize:16,uniformFuncName:"uniformMatrix2fv",type:"Matrix",size:4},{name:"FLOAT_MAT3",byteSize:36,uniformFuncName:"uniformMatrix3fv",type:"Matrix",size:9},{name:"FLOAT_MAT4",byteSize:64,uniformFuncName:"uniformMatrix4fv",type:"Matrix",size:16},{name:"INT",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1},{name:"INT_VEC2",byteSize:8,uniformFuncName:"uniform2i",type:"Vector",size:2},{name:"INT_VEC3",byteSize:12,uniformFuncName:"uniform3i",type:"Vector",size:3},{name:"INT_VEC4",byteSize:16,uniformFuncName:"uniform4i",type:"Vector",size:4},{name:"BOOL",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1},{name:"BOOL_VEC2",byteSize:8,uniformFuncName:"uniform2i",type:"Vector",size:2},{name:"BOOL_VEC3",byteSize:12,uniformFuncName:"uniform3i",type:"Vector",size:3},{name:"BOOL_VEC4",byteSize:16,uniformFuncName:"uniform4i",type:"Vector",size:4},{name:"SAMPLER_2D",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1},{name:"SAMPLER_CUBE",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1}],xt={},Ct={dict:xt,init:function(t){Nt.forEach((function(e){var n,r,i=e.name,a=e.uniformFuncName,s=a+"v";"Matrix"===e.type?n=r=function(e,n){void 0!==n&&t[a](e,!1,n)}:(n=function(e,n){void 0!==n&&t[a](e,n)},r=function(e,n){t[s](e,n)}),xt[t[i]]=Object.assign(e,{glValue:t[i],uniform:n,uniformArray:r})}))},get:function(t){return xt[t]}},bt=n(106),Pt=n(107),wt=P.a.VERTEX_SHADER,Ht=new J,Dt=a.a.create({Statics:{cache:{get:function(){return Ht}},reset:function(t){Ht.each((function(t){t.destroy()}))},getProgram:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.id,i=Ht.get(r);return i||(i=new Dt({state:e,vertexShader:t.vs,fragShader:t.fs,ignoreError:n}),Ht.add(r,i)),i},getBlankProgram:function(t){var e=Rt.getCustomShader("void main(){}","precision HILO_MAX_FRAGMENT_PRECISION float;void main(){gl_FragColor = vec4(0.0);}","","__hiloBlankShader");return this.getProgram(e,t,!0)}},className:"Program",isProgram:!0,fragShader:"",vertexShader:"",attributes:null,uniforms:null,uniformBlocks:null,program:null,gl:null,state:null,alwaysUse:!1,isWebGL2:!1,constructor:function(t){return this.id=d.a.generateUUID(this.className),Object.assign(this,t),this._dict={},this.attributes={},this.uniforms={},this.uniformBlocks={},this.gl=this.state.gl,this.isWebGL2=this.state.isWebGL2,this.program=this.createProgram(),this.program?(this.initAttributes(),this.initUniforms(),this):this.ignoreError?this:Dt.getBlankProgram(t.state)},createProgram:function(){var t=this.gl,e=t.createProgram(),n=this.createShader(t.VERTEX_SHADER,this.vertexShader),r=this.createShader(t.FRAGMENT_SHADER,this.fragShader);if(n&&r){if(t.attachShader(e,n),t.attachShader(e,r),t.linkProgram(e),t.deleteShader(n),t.deleteShader(r),!t.getProgramParameter(e,t.LINK_STATUS)){var i=t.getProgramInfoLog(e);return m.a.error("compileProgramError: "+i,this),t.deleteProgram(e),null}return e}return null},useProgram:function(){this.state.useProgram(this.program)},createShader:function(t,e){this.isWebGL2&&(e=this._convertToGLSL300(t,e));var n=this.gl,r=n.createShader(t);if(n.shaderSource(r,e),n.compileShader(r),!n.getShaderParameter(r,n.COMPILE_STATUS)){var i=n.getShaderInfoLog(r);return m.a.error("compileShaderError: "+i,e.split("\n").map((function(t,e){return"".concat(e+1," ").concat(t)})).join("\n")),null}return r},_convertToGLSL300:function(t,e){return t===wt?bt+e:(Pt+e).replace(/gl_FragData\[(\d)\]/g,"hilo_FragData$1")},initAttributes:function(){for(var t=this,e=this.gl,n=this.program,r=e.getProgramParameter(n,e.ACTIVE_ATTRIBUTES),i=ht.instanced,a=function(){var r=e.getActiveAttrib(n,s),a=r.name,o=r.type,u=r.size,c=e.getAttribLocation(n,a),f=Ct.get(o),h=function(t){var n=t.type,r=void 0===n?e.FLOAT:n,i=t.normalized,a=void 0!==i&&i,s=t.stride,o=void 0===s?0:s,u=t.offset,h=void 0===u?0:u,l=t.size,d=void 0===l?f.size:l;e.vertexAttribPointer(c,d,r,a,o,h)},l=function(){e.enableVertexAttribArray(c)},d=function(){},m=function(t,e){t[c]=e};if(i&&(d=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;i.vertexAttribDivisor(c,t)}),"Matrix"===f.type){var _=f.byteSize,p=f.size,g=Math.sqrt(p),E=4*g,v=function(t){for(var e=0;e<g;e++)t(c+e,e)};h=function(t){var n,r=t.type,i=void 0===r?e.FLOAT:r,a=t.normalized,s=void 0!==a&&a,o=t.stride,u=void 0===o?0:o,c=t.offset,f=void 0===c?0:c;n=0===u?_:u,v((function(t,r){e.vertexAttribPointer(t,g,i,s,n,f+E*r)}))},l=function(){v((function(t){e.enableVertexAttribArray(t)}))},m=function(t,e){v((function(n){t[n]=e}))},i&&(d=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;v((function(e){i.vertexAttribDivisor(e,t)}))})}t.attributes[a]={name:a,location:c,type:o,size:u,glTypeInfo:f,pointer:h,enable:l,divisor:d,addTo:m}},s=0;s<r;s++)a()},initUniforms:function(){var t,e=this,n=this.gl,r=this.program,i=this.uniforms,a=this.uniformBlocks,s=n.getProgramParameter(r,n.ACTIVE_UNIFORMS);if(this.isWebGL2){for(var o=n.getProgramParameter(r,n.ACTIVE_UNIFORM_BLOCKS),u=function(t){var i=n.getActiveUniformBlockName(r,t),s=n.getUniformBlockIndex(r,i);n.uniformBlockBinding(r,s,t),a[i]={blockIndex:s},Object.defineProperty(e,i,{set:function(e){n.bindBufferBase(n.UNIFORM_BUFFER,t,e.getBuffer(n).buffer)}})},c=0;c<o;c++)u(c);for(var f=[],h=0;h<s;h++)f.push(h);t=n.getActiveUniforms(r,f,n.UNIFORM_BLOCK_INDEX)}for(var l=0,d=function(){var a=n.getActiveUniform(r,m),s=a.name,o=a.size,u=a.type;if(t&&-1!==t[m])return"continue";s=s.replace(/\[0\]$/,"");var c=n.getUniformLocation(r,s),f=Ct.get(u),h=f.uniformArray,d=f.uniform;i[s]={name:s,location:c,type:u,size:o,glTypeInfo:f},u!==n.SAMPLER_2D&&u!==n.SAMPLER_CUBE||(i[s].textureIndex=l,l+=o),Object.defineProperty(e,s,{set:f.size>1||o>1?function(t){h(c,t)}:function(t){e._dict[s]!==t&&(e._dict[s]=t,d(c,t))}})},m=0;m<s;m++)d()},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){return this._isDestroyed||(this.gl.deleteProgram(this.program),this.uniforms=null,this.uniformBlocks=null,this.attributes=null,this.program=null,this.gl=null,this.state=null,this._dict=null,Ht.removeObject(this),this._isDestroyed=!0),this}}),Ft=Dt,Ut=P.a.ARRAY_BUFFER,Gt=P.a.ELEMENT_ARRAY_BUFFER,Bt=P.a.STATIC_DRAW,Vt=new J,Xt=a.a.create({Statics:{cache:{get:function(){return Vt}},reset:function(t){Vt.each((function(t){t.destroy()}))},createVertexBuffer:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Bt;return this.createBuffer(t,Ut,e,n)},createBuffer:function(t,e,n,r){var i=n.bufferViewId,a=Vt.get(i);return a||(n.isDirty=!1,a=new Xt(t,e,n.data,r),Vt.add(i,a),a)},createIndexBuffer:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Bt;return this.createBuffer(t,Gt,e,n)}},className:"Buffer",isBuffer:!0,constructor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ut,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Bt;this.id=d.a.generateUUID(this.className),this.gl=t,this.target=e,this.usage=r,this.buffer=t.createBuffer(),n&&this.bufferData(n)},bind:function(){return this.gl.bindBuffer(this.target,this.buffer),this},bufferData:function(t){var e=this.gl,n=this.target,r=this.usage;return this.bind(),e.bufferData(n,t,r),this.data=t,this},bufferSubData:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.gl,i=this.target;return n||this.bind(),r.bufferSubData(i,t,e),this},uploadGeometryData:function(t){var e=this,n=t.subDataList;return!this.data||this.data.byteLength<t.data.byteLength||!0===t._isAllDirty?this.bufferData(t.data):n&&n.length?(this.bind(),n.forEach((function(t){e.bufferSubData(t.byteOffset,t.data,!0)}))):this.bufferData(t.data),t.isDirty=!1,this},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){return this._isDestroyed||(this.gl.deleteBuffer(this.buffer),this.data=null,Vt.removeObject(this),this._isDestroyed=!0),this}}),jt=Xt,kt=new ArrayBuffer(1),Wt={getTypedArray:function(t,e){return this._updateBuffer(e*t.BYTES_PER_ELEMENT),new t(kt,0,e)},fillArrayData:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0,i=e.length;r<i;r++)t[n+r]=e[r]},_updateBuffer:function(t){kt.byteLength<t&&(kt=new ArrayBuffer(2*t))}},Yt=P.a.TRIANGLES,zt=[],qt=null,Kt=new J,Zt=a.a.create({Statics:{cache:{get:function(){return Kt}},getVao:function(t,e,n){var r=Kt.get(e);return r?n.mode&&n.mode!==r.mode&&(r.mode=n.mode):(r=new Zt(t,e,n),Kt.add(e,r)),r},reset:function(t){qt=null,zt=[],this.bindSystemVao(),Kt.each((function(e){e.destroy(t)}))},bindSystemVao:function(){ht.vao&&ht.vao.bindVertexArray(null),qt=null}},className:"VertexArrayObject",isVertexArrayObject:!0,vertexCount:null,useVao:!1,useInstanced:!1,mode:Yt,isDirty:!0,constructor:function(t,e,n){this.gl=t,this.id=e,this.instancedExtension=ht.instanced,this.vaoExtension=ht.vao,Object.assign(this,n),this.vaoExtension||(this.useVao=!1),this.instancedExtension||(this.useInstanced=!1),this.useVao&&(this.vao=this.vaoExtension.createVertexArray()),this.attributes=[],this.activeStates=[],this.indexBuffer=null},bind:function(){qt!==this&&(this.useVao?this.vaoExtension.bindVertexArray(this.vao):this.bindSystemVao(),qt=this)},bindSystemVao:function(){var t=this.gl;qt&&qt.useVao&&qt.unbind();var e,n=this.activeStates;this.attributes.forEach((function(t){var n=t.buffer,r=t.attribute,i=t.geometryData;e!==n&&(e=n,n.bind()),r.enable(),r.pointer(i),t.useInstanced?r.divisor(1):r.divisor(0)})),zt.forEach((function(e,r){var i=n[r];e&&!i&&(e.attribute.divisor(0),t.disableVertexAttribArray(r))})),this.indexBuffer&&this.indexBuffer.bind(),zt=n},unbind:function(){this.useVao&&this.vaoExtension.bindVertexArray(null),qt=null},draw:function(){this.bind();var t=this.gl,e=this.mode;this.indexBuffer?t.drawElements(e,this.vertexCount,this.indexType,0):t.drawArrays(e,0,this.getVertexCount())},getVertexCount:function(){if(null===this.vertexCount){var t=this.attributes[0];this.vertexCount=t?t.geometryData.count:0}return this.vertexCount},drawInstance:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.bind();var e=this.gl,n=this.mode;this.useInstanced&&(this.indexBuffer?this.instancedExtension.drawElementsInstanced(n,this.vertexCount,e.UNSIGNED_SHORT,0,t):this.instancedExtension.drawArraysInstanced(n,0,this.getVertexCount(),t))},addIndexBuffer:function(t,e){this.bind();var n=this.gl,r=this.indexBuffer;return this.indexType=t.type,r?t.isDirty&&(r.uploadGeometryData(t),this.vertexCount=t.length):((r=jt.createIndexBuffer(n,t,e)).bind(),this.indexBuffer=r,this.vertexCount=t.length),r},addAttribute:function(t,e,n,r){this.bind();var i=this.gl,a=e.name,s=this[a];if(!s){var o=jt.createVertexBuffer(i,t,n);o.bind(),e.enable(),e.pointer(t),s={attribute:e,buffer:o,geometryData:t},this.attributes.push(s),this[a]=s,e.addTo(this.activeStates,s),r&&r(s)}if(t.isDirty){var u=s.buffer;u.bind(),e.enable(),e.pointer(t),u.uploadGeometryData(t)}return s},addInstancedAttribute:function(t,e,n){this.bind();var r=this.gl,i=t.name,a=t.glTypeInfo,s=Wt.getTypedArray(Float32Array,e.length*a.size);e.forEach((function(t,e){void 0!==n(t)?Wt.fillArrayData(s,n(t),e*a.size):m.a.warn("no attributeData:"+i+"-"+t.name)}));var o,u=this[i];return u?(o=u.geometryData).data=s:o=new b(s,1),this.addAttribute(o,t,r.DYNAMIC_DRAW,(function(e){t.divisor(1),e.useInstanced=!0}))},getResources:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.attributes&&this.attributes.forEach((function(e){t.push(e.buffer)})),this.indexBuffer&&t.push(this.indexBuffer),t},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){var t=this;return this._isDestroyed||(this.instancedExtension=null,this.useVao&&(this.vaoExtension.deleteVertexArray(this.vao),this.vao=null,this.vaoExtension=null),this.gl=null,this.indexBuffer=null,this.attributes.forEach((function(e){var n=e.attribute||{};t[n.name]=null})),this.attributes=null,this.activeStates=null,Kt.removeObject(this),this._isDestroyed=!0),this}}),Qt=Zt,Jt=P.a.TEXTURE_2D,$t=P.a.FLOAT,te=P.a.RGB,ee=P.a.RGBA,ne=P.a.RGB32F,re=P.a.RGBA32F,ie=P.a.LINEAR,ae=P.a.NEAREST,se=P.a.REPEAT,oe=P.a.CLAMP_TO_EDGE,ue=P.a.UNSIGNED_BYTE,ce=P.a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,fe=P.a.UNPACK_FLIP_Y_WEBGL,he=P.a.UNPACK_COLORSPACE_CONVERSION_WEBGL,le=P.a.BROWSER_DEFAULT_WEBGL,de=P.a.NONE,me=new J,_e=a.a.create({Statics:{cache:{get:function(){return me}},reset:function(t){me.each((function(e,n){t.deleteTexture(e),me.remove(n)}))}},isTexture:!0,className:"Texture",isImageCanRelease:!1,_isImageReleased:!1,_image:null,image:{get:function(){return this._isImageReleased&&m.a.errorOnce("Read Texture.image(".concat(this.id,")"),"Read Texture.image after image released!"),this._image},set:function(t){this._image=t,this._isImageReleased=!1}},_releaseImage:function(){this._canvasImage=null,this._canvasCtx=null,this._originImage=null,this._image=null,this.mipmaps=null,this._isImageReleased=!0},mipmaps:null,target:Jt,internalFormat:ee,format:ee,type:ue,width:0,height:0,border:0,magFilter:ie,minFilter:ie,wrapS:se,wrapT:se,name:"",premultiplyAlpha:!1,flipY:!1,colorSpaceConversion:!0,compressed:!1,needUpdate:!0,needDestroy:!1,autoUpdate:!1,uv:0,anisotropic:1,origWidth:{get:function(){return this._originImage?this._originImage.width||this.width:this.image&&this.image.width||this.width}},origHeight:{get:function(){return this.originImage?this._originImage.height||this.height:this.image&&this.image.height||this.height}},useMipmap:{get:function(){return this.minFilter!==ie&&this.minFilter!==ae},set:function(){m.a.warn("texture.useMipmap is readOnly!")}},useRepeat:{get:function(){return this.wrapS!==oe||this.wrapT!==oe},set:function(){m.a.warn("texture.useRepeat is readOnly!")}},mipmapCount:{get:function(){return Math.floor(Math.log2(Math.max(this.width,this.height))+1)},set:function(){m.a.warn("texture.mipmapCount is readOnly!")}},constructor:function(t){this.id=d.a.generateUUID(this.className),Object.assign(this,t)},isImgPowerOfTwo:function(t){return d.a.isPowerOfTwo(t.width)&&d.a.isPowerOfTwo(t.height)},getSupportSize:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.width,r=t.height;e&&!this.isImgPowerOfTwo(t)&&(n=d.a.nextPowerOfTwo(n),r=d.a.nextPowerOfTwo(r));var i=lt.MAX_TEXTURE_SIZE;return i&&(n>i&&(n=i),r>i&&(r=i)),{width:n,height:r}},resizeImgToPowerOfTwo:function(t){var e=this.getSupportSize(t,!0);return this.resizeImg(t,e.width,e.height)},resizeImg:function(t,e,n){if(t.width===e&&t.height===n)return t;var r=this._canvasImage;return r?(r.width=e,r.height=n,this._canvasCtx=r.getContext("2d")):((r=document.createElement("canvas")).width=e,r.height=n,this._canvasImage=r,this._canvasCtx=r.getContext("2d")),this._canvasCtx.drawImage(t,0,0,t.width,t.height,0,0,e,n),m.a.warnOnce("Texture.resizeImg(".concat(this.id,")"),"image size(".concat(t.width,"x").concat(t.height,") is not support. Resized to ").concat(r.width,"x").concat(r.height),t.src),this._originImage=t,r},_glUploadTexture:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.width,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:this.height,s=t.gl,o=this.type,u=this.format,c=this.internalFormat;return this.compressed?s.compressedTexImage2D(e,r,c,i,a,this.border,n):(c=this._fixInternalFormat(t,o,u,c),n&&void 0!==n.width?s.texImage2D(e,r,c,u,this.type,n):s.texImage2D(e,r,c,i,a,this.border,u,this.type,n)),this},_fixInternalFormat:function(t,e,n,r){return t.isWebGL2?e===$t&&(n===ee?r=re:n===te&&(r=ne)):n!==r&&(r=this.format),r},_uploadTexture:function(t){var e=this;return this.useMipmap&&this.mipmaps?this.mipmaps.forEach((function(n,r){e._glUploadTexture(t,e.target,n.data,r,n.width,n.height)})):this._glUploadTexture(t,this.target,this.image,0),this},_updatePixelStorei:function(){var t=this.state;t.pixelStorei(ce,this.premultiplyAlpha),t.pixelStorei(fe,!!this.flipY),t.pixelStorei(he,this.colorSpaceConversion?le:de)},updateTexture:function(t,e){var n=t.gl;if(this.needUpdate||this.autoUpdate){this._originImage&&this.image===this._canvasImage&&(this.image=this._originImage);var r=this.useMipmap,i=this.useRepeat;if(this.image&&!this.image.length){if(!t.isWebGL2){var a=i||r,s=this.getSupportSize(this.image,a);this.image=this.resizeImg(this.image,s.width,s.height)}this.width=this.image.width,this.height=this.image.height}t.activeTexture(n.TEXTURE0+lt.MAX_TEXTURE_INDEX),t.bindTexture(this.target,e),this._updatePixelStorei(),this._uploadTexture(t),r&&(this.compressed?this.mipmaps||(m.a.warn("Compressed texture has no mipmips, changed the minFilter from ".concat(this.minFilter," to Linear!"),this),this.minFilter=ie):n.generateMipmap(this.target)),n.texParameterf(this.target,n.TEXTURE_MAG_FILTER,this.magFilter),n.texParameterf(this.target,n.TEXTURE_MIN_FILTER,this.minFilter),n.texParameterf(this.target,n.TEXTURE_WRAP_S,this.wrapS),n.texParameterf(this.target,n.TEXTURE_WRAP_T,this.wrapT);var o=ht.textureFilterAnisotropic;o&&this.anisotropic>1&&n.texParameterf(this.target,o.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(this.anisotropic,lt.MAX_TEXTURE_MAX_ANISOTROPY)),this.needUpdate=!1}return this._needUpdateSubTexture&&(this._uploadSubTextures(t,e),this._needUpdateSubTexture=!1),this},_uploadSubTextures:function(t,e){var n=this;if(this._subTextureList&&this._subTextureList.length>0){var r=t.gl;t.activeTexture(r.TEXTURE0+lt.MAX_TEXTURE_INDEX),t.bindTexture(this.target,e),this._updatePixelStorei(),this._subTextureList.forEach((function(t){var e=t[0],i=t[1],a=t[2];r.texSubImage2D(n.target,0,e,i,n.format,n.type,a)})),this._subTextureList.length=0}},_needUpdateSubTexture:!1,_subTextureList:null,updateSubTexture:function(t,e,n){this._subTextureList||(this._subTextureList=[]),this._subTextureList.push([t,e,n]),this._needUpdateSubTexture=!0},getGLTexture:function(t){this.state=t;var e=this.gl=t.gl,n=this.id;this.needDestroy&&(this.destroy(),this.needDestroy=!1);var r=me.get(n);return r||(r=e.createTexture(),me.add(n,r),this.needUpdate=!0),this.updateTexture(t,r),this.isImageCanRelease&&this._releaseImage(),r},setGLTexture:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&this.destroy(),me.add(this.id,t),this},destroy:function(){var t=this.id,e=me.get(t);return e&&this.gl&&(this.gl.deleteTexture(e),me.remove(t)),this},clone:function(){var t=Object.assign({},this);return delete t.id,new this.constructor(t)}}),pe=P.a.FRAMEBUFFER,ge=P.a.TEXTURE_2D,Ee=P.a.RGBA,ve=P.a.UNSIGNED_BYTE,Te=P.a.COLOR_ATTACHMENT0,Ae=P.a.DEPTH_STENCIL_ATTACHMENT,Me=P.a.DEPTH_STENCIL,Ie=P.a.DEPTH_TEST,Re=P.a.CULL_FACE,Oe=P.a.TRIANGLE_STRIP,Le=P.a.NEAREST,Se=P.a.CLAMP_TO_EDGE,ye=P.a.COLOR_BUFFER_BIT,Ne=P.a.READ_FRAMEBUFFER,xe=P.a.DRAW_FRAMEBUFFER,Ce=new J,be={framebufferTarget:pe,attachment:Te,target:ge,format:Ee,internalFormat:Ee,type:ve,minFilter:Le,magFilter:Le,wrapS:Se,wrapT:Se},Pe=a.a.create({Statics:{ATTACHMENT_TYPE_TEXTURE:"TEXTURE",ATTACHMENT_TYPE_RENDERBUFFER:"RENDERBUFFER",cache:{get:function(){return Ce}},reset:function(t){Ce.each((function(t){t.reset()}))},destroy:function(t){Ce.each((function(t){t.destroy()}))}},className:"Framebuffer",isFramebuffer:!0,bufferInternalFormat:Me,framebufferTarget:be.framebufferTarget,target:be.target,format:be.format,internalFormat:be.internalFormat,type:be.type,minFilter:be.minFilter,magFilter:be.magFilter,wrapS:be.wrapS,wrapT:be.wrapT,data:null,attachment:be.attachment,needRenderbuffer:!0,useVao:!0,renderer:null,texture:null,renderbuffer:null,framebuffer:null,_isInit:!1,colorAttachmentInfos:void 0,depthStencilAttachmentInfo:void 0,constructor:function(t,e){this.id=d.a.generateUUID(this.className),this.renderer=t,Object.assign(this,e),this.width||(this.width=t.width),this.height||(this.height=t.height),void 0===this.colorAttachmentInfos&&(this.colorAttachmentInfos=[{attachmentType:Pe.ATTACHMENT_TYPE_TEXTURE,framebufferTarget:this.framebufferTarget,target:this.target,format:this.format,internalFormat:this.internalFormat,type:this.type,minFilter:this.minFilter,magFilter:this.magFilter,wrapS:this.wrapS,wrapT:this.wrapT,data:this.data}]),void 0===this.depthStencilAttachmentInfo&&this.needRenderbuffer&&(this.depthStencilAttachmentInfo={attachmentType:Pe.ATTACHMENT_TYPE_RENDERBUFFER,framebufferTarget:this.framebufferTarget,attachment:Ae,internalFormat:Me}),Ce.add(this.id,this)},init:function(){if(!this._isInit&&this.renderer.isInit){this._isInit=!0;var t=this.renderer;this.gl=t.gl,this.state=t.state,this.reset()}},reset:function(){this.destroyResource();var t=this.gl;this.framebuffer=t.createFramebuffer(),this.bind(),this._createAttachments(),this.isComplete()||m.a.warn("Framebuffer is not complete => "+t.checkFramebufferStatus(t.FRAMEBUFFER)),this.unbind()},_createAttachments:function(){var t=this,e=this.colorAttachmentInfos,n=this.depthStencilAttachmentInfo,r=[];if(e&&e.forEach((function(e,n){var i=Te+n;switch(e.attachmentType){case Pe.ATTACHMENT_TYPE_RENDERBUFFER:t._createRenderbufferAttachment(e,i);break;case Pe.ATTACHMENT_TYPE_TEXTURE:default:t._createTextureAttachment(e,i)}r.push(i)})),n){var i=n.attachment;switch(n.attachmentType){case Pe.ATTACHMENT_TYPE_RENDERBUFFER:this._createRenderbufferAttachment(n,i);break;case Pe.ATTACHMENT_TYPE_TEXTURE:default:this._createTextureAttachment(n,i)}}r.length>1&<.DRAW_BUFFERS&&ht.drawBuffers.drawBuffers(r)},_createTextureAttachment:function(t,e){var n=this.state,r=n.gl,i=Object.assign({},be,t),a=new _e({minFilter:i.minFilter,magFilter:i.magFilter,internalFormat:i.internalFormat,format:i.format,type:i.type,width:this.width,height:this.height,image:i.data,wrapS:i.wrapS,wrapT:i.wrapT}),s=a.getGLTexture(n);return r.framebufferTexture2D(i.framebufferTarget,e,i.target,s,0),t.texture=a,e===Te&&(this.texture=a),a},_createRenderbufferAttachment:function(t,e){var n=this.gl,r=this.width,i=this.height,a=n.createRenderbuffer();return n.bindRenderbuffer(n.RENDERBUFFER,a),t.samples>0?n.renderbufferStorageMultisample(n.RENDERBUFFER,t.samples,t.internalFormat,r,i):n.renderbufferStorage(n.RENDERBUFFER,t.internalFormat,r,i),n.framebufferRenderbuffer(t.framebufferTarget||be.framebufferTarget,e,n.RENDERBUFFER,a),t.renderbuffer=a,a},isComplete:function(){var t=this.gl;return!(!t||t.checkFramebufferStatus(t.FRAMEBUFFER)!==t.FRAMEBUFFER_COMPLETE)},bind:function(){this.init(),this._isInit&&this.state.bindFramebuffer(this.gl.FRAMEBUFFER,this.framebuffer)},unbind:function(){if(this.init(),this._isInit){var t=this.state;t.bindFramebuffer(this.gl.FRAMEBUFFER,t.preFramebuffer)}},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new E.a(0,0,0,0);if(this._isInit){var e=this.gl;e.clearColor(t.r,t.g,t.b,t.a),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}},render:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;if(this._isInit){var s=this.gl,o=this.state,u=this.colorAttachmentInfos;if(!a){if(!u[0])return;a=u[0].texture}o.disable(Ie),o.disable(Re),i&&this.clear(i);var c=Rt.getCustomShader(Lt.a,yt.a,"","FramebufferTextureShader"),f=Ft.getProgram(c,o);f.useProgram();var h="".concat(t,"_").concat(e,"_").concat(n,"_").concat(r,"_").concat(f.id),l=Qt.getVao(s,h,{useVao:this.useVao,useInstanced:!1,mode:Oe});if(l.isDirty){l.isDirty=!1;var d=[t=2*t-1,e=1-2*e,t+(n*=2),e,t,e-(r*=2),t+n,e-r];l.addAttribute(new b(new Float32Array(d),2),f.attributes.a_position),l.addAttribute(new b(new Float32Array([0,1,1,1,0,0,1,0]),2),f.attributes.a_texcoord0)}o.activeTexture(s.TEXTURE0),o.bindTexture(s.TEXTURE_2D,a.getGLTexture(o)),l.draw()}},resize:function(t,e,n){(n||this.width!==t||this.height!==e)&&(this.width=t,this.height=e,this._isInit&&this.reset())},readPixels:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=Object(i.getTypedArrayClass)(this.type),s=new a(n*r*4);if(this._isInit){var o=this.gl;e=this.height-e-r,this.bind(),o.readPixels(t,e,n,r,this.format,this.type,s),this.unbind()}return s},copyFramebuffer:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.init(),this._isInit){var n=this.gl,r=e.mask,i=e.filter,a=e.srcSize,s=e.dstSize;r||(r=ye),i||(i=Le),a||(a=[0,0,t.width,t.height]),s||(s=[0,0,this.width,this.height]),n.bindFramebuffer(Ne,t.framebuffer),n.bindFramebuffer(xe,this.framebuffer),n.blitFramebuffer(a[0],a[1],a[2],a[3],s[0],s[1],s[2],s[3],r,i),n.bindFramebuffer(Ne,null),n.bindFramebuffer(xe,null)}},destroy:function(){return this._isDestroyed||(this.destroyResource(),this.gl=null,Ce.removeObject(this),this._isDestroyed=!0),this},destroyResource:function(){var t=this.gl;if(t&&(this.framebuffer&&(t.deleteFramebuffer(this.framebuffer),this.framebuffer=null),this.colorAttachmentInfos&&this.colorAttachmentInfos.forEach((function(e){var n=e.texture,r=e.renderbuffer;e.texture=null,e.renderbuffer=null,n?n.destroy():r&&t.deleteRenderbuffer(r)})),this.depthStencilAttachmentInfo)){var e=this.depthStencilAttachmentInfo,n=e.texture,r=e.renderbuffer;this.depthStencilAttachmentInfo.texture=null,this.depthStencilAttachmentInfo.renderbuffer=null,n?n.destroy():r&&t.deleteRenderbuffer(r)}}}),we=Pe,He=P.a.TEXTURE_CUBE_MAP,De=P.a.RGB,Fe=P.a.LINEAR,Ue=P.a.CLAMP_TO_EDGE,Ge=P.a.TEXTURE_CUBE_MAP_POSITIVE_X,Be=a.a.create({Extends:_e,isCubeTexture:!0,className:"CubeTexture",target:He,internalFormat:De,format:De,magFilter:Fe,minFilter:Fe,wrapS:Ue,wrapT:Ue,constructor:function(t){Be.superclass.constructor.call(this,t),this.image=this.image||[]},_uploadTexture:function(t){var e=this,n=this.image;Array.isArray(n)&&6===n.length?(n[0]&&n[0].width&&(this.width=n[0].width,this.height=n[0].height),n.forEach((function(n,r){e._glUploadTexture(t,Ge+r,n,0)}))):m.a.error("CubeTexture image must be an Array of length 6",n)},right:{get:function(){return this.image[0]},set:function(t){this.image[0]=t}},left:{get:function(){return this.image[1]},set:function(t){this.image[1]=t}},top:{get:function(){return this.image[2]},set:function(t){this.image[2]=t}},bottom:{get:function(){return this.image[3]},set:function(t){this.image[3]=t}},front:{get:function(){return this.image[4]},set:function(t){this.image[4]=t}},back:{get:function(){return this.image[5]},set:function(t){this.image[5]=t}}}),Ve=Be,Xe=P.a.TEXTURE_2D,je=P.a.RGBA,ke=P.a.NEAREST,We=P.a.CLAMP_TO_EDGE,Ye=P.a.FLOAT,ze=a.a.create({Extends:_e,isDataTexture:!0,className:"DataTexture",target:Xe,internalFormat:je,format:je,type:Ye,magFilter:ke,minFilter:ke,wrapS:We,wrapT:We,dataLength:0,resetSize:function(t){if(t!==this.dataLength){this.dataLength=t;var e=d.a.nextPowerOfTwo(t/4),n=Math.max(Math.log2(e),4),r=Math.floor(n/2),a=n-r;this.width=Math.pow(2,r),this.height=Math.pow(2,a),this.DataClass=Object(i.getTypedArrayClass)(this.type)}},data:{get:function(){return this.image},set:function(t){if(this.image!==t){this.resetSize(t.length);var e=this.width*this.height*4;e===t.length&&t instanceof this.DataClass?this.image=t:(this.image&&this.image.length===e||(this.image=new this.DataClass(e)),this.image.set(t,0)),this.needUpdate=!0}}},constructor:function(t){ze.superclass.constructor.call(this,t)}}),qe=ze;function Ke(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,s,o=[],u=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(o.push(r.value),o.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return Ze(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ze(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ze(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Qe,Je,$e,tn,en,nn,rn,an=new c.a,sn=new y.a,on=new o.a,un=new Float32Array([.5,.5,.5,1]),cn=new Float32Array([0,0]),fn={state:null,camera:null,lightManager:null,fog:null,gl:null,renderer:null,blankInfo:{get:function(){}},init:function(t,e,n,r,i){nn=this._renderer=t,tn=this.state=e,Qe=this.camera=n,$e=this.lightManager=r,en=this.fog=i,Je=this.gl=tn.gl},setCamera:function(t){Qe=this.camera=t},handlerColorOrTexture:function(t,e){return t&&t.isTexture?this.handlerTexture(t,e):(t&&t.isColor?t.toArray(un):un[0]=un[1]=un[2]=.5,un)},handlerTexture:function(t,e){if(t&&t.isTexture)return this.handlerGLTexture(t.target,t.getGLTexture(tn),e)},handlerGLTexture:function(t,e,n){if(e)return tn.activeTexture(Je.TEXTURE0+n),tn.bindTexture(t,e),n},handlerUV:function(t){return t&&t.isTexture&&t.uv||0},POSITION:{get:function(t,e,n){return t.geometry.vertices}},NORMAL:{get:function(t,e,n){return t.geometry.normals}},TANGENT:{get:function(t,e,n){var r=e.normalMap||e.clearcoatNormalMap;return r&&r.isTexture&&1===Number(r.uv)?t.geometry.tangents1:t.geometry.tangents}},TEXCOORD_0:{get:function(t,e,n){if(t.geometry.uvs)return t.geometry.uvs}},TEXCOORD_1:{get:function(t,e,n){if(t.geometry.uvs1)return t.geometry.uvs1}},UVMATRIX_0:{get:function(t,e,n){if(e.uvMatrix)return e.uvMatrix.elements}},UVMATRIX_1:{get:function(t,e,n){if(e.uvMatrix1)return e.uvMatrix1.elements}},CAMERAFAR:{get:function(t,e,n){if(Qe.isPerspectiveCamera)return Qe.far}},CAMERANEAR:{get:function(t,e,n){if(Qe.isPerspectiveCamera)return Qe.near}},CAMERATYPE:{get:function(t,e,n){return Qe.isPerspectiveCamera?1:0}},CAMERAPOSITION:{get:function(t,e,n){return Qe.worldMatrix.getTranslation(an).elements}},COLOR_0:{get:function(t,e,n){if(t.geometry.colors)return t.geometry.colors}},SKININDICES:{get:function(t,e,n){return t.geometry.skinIndices}},JOINT:{get:function(t,e,n){return t.geometry.skinIndices}},WEIGHT:{get:function(t,e,n){return t.geometry.skinWeights}},SKINWEIGHTS:{get:function(t,e,n){return t.geometry.skinWeights}},RENDERERSIZE:{get:function(t,e,n){return cn[0]=nn.width,cn[1]=nn.height,cn}},LOCAL:{get:function(t,e,n){return t.matrix.elements},isDependMesh:!0},MODEL:{get:function(t,e,n){return t.worldMatrix.elements},isDependMesh:!0},VIEW:{get:function(t,e,n){return Qe.viewMatrix.elements}},PROJECTION:{get:function(t,e,n){return Qe.projectionMatrix.elements}},VIEWPROJECTION:{get:function(t,e,n){return Qe.viewProjectionMatrix.elements}},MODELVIEW:{get:function(t,e,n){return Qe.getModelViewMatrix(t,on).elements},isDependMesh:!0},MODELVIEWPROJECTION:{get:function(t,e,n){return Qe.getModelProjectionMatrix(t,on).elements},isDependMesh:!0},MODELINVERSE:{get:function(t,e,n){return on.invert(t.worldMatrix).elements},isDependMesh:!0},VIEWINVERSE:{get:function(t,e,n){return Qe.worldMatrix.elements}},VIEWINVERSEINVERSETRANSPOSE:{get:function(t,e,n){return sn.normalFromMat4(Qe.worldMatrix).elements}},PROJECTIONINVERSE:{get:function(t,e,n){return on.invert(Qe.projectionMatrix).elements}},MODELVIEWINVERSE:{get:function(t,e,n){return on.invert(Qe.getModelViewMatrix(t,on)).elements},isDependMesh:!0},MODELVIEWPROJECTIONINVERSE:{get:function(t,e,n){return on.invert(Qe.getModelProjectionMatrix(t,on)).elements},isDependMesh:!0},MODELINVERSETRANSPOSE:{get:function(t,e,n){return sn.normalFromMat4(t.worldMatrix).elements},isDependMesh:!0},MODELVIEWINVERSETRANSPOSE:{get:function(t,e,n){return sn.normalFromMat4(Qe.getModelViewMatrix(t,on)).elements},isDependMesh:!0},VIEWPORT:void 0,JOINTMATRIX:{get:function(t,e,n){if(t.isSkinedMesh)return t.getJointMat();m.a.warnOnce("semantic.JOINTMATRIX(".concat(t.id,")"),"Current mesh is not SkinedMesh!",t.id)},isDependMesh:!0,notSupportInstanced:!0},JOINTMATRIXTEXTURE:{get:function(t,e,n){if(t.isSkinedMesh)return t.updateJointMatTexture(),fn.handlerTexture(t.jointMatTexture,n.textureIndex);m.a.warnOnce("semantic.JOINTMATRIXTEXTURE(".concat(t.id,")"),"Current mesh is not SkinedMesh!",t.id)},isDependMesh:!0,notSupportInstanced:!0},JOINTMATRIXTEXTURESIZE:{get:function(t,e,n){if(t.isSkinedMesh)return t.initJointMatTexture(),[t.jointMatTexture.width,t.jointMatTexture.height];m.a.warnOnce("semantic.JOINTMATRIXTEXTURESIZE(".concat(t.id,")"),"Current mesh is not SkinedMesh!",t.id)},isDependMesh:!0,notSupportInstanced:!0},NORMALMAPSCALE:{get:function(t,e,n){return e.normalMapScale}},OCCLUSIONSTRENGTH:{get:function(t,e,n){return e.occlusionStrength}},SHININESS:{get:function(t,e,n){return e.shininess}},SPECULARENVMATRIX:{get:function(t,e,n){return e.specularEnvMatrix&&e.specularEnvMap?e.specularEnvMatrix.elements:(on.identity(),on.elements)}},REFLECTIVITY:{get:function(t,e,n){return e.reflectivity}},REFRACTRATIO:{get:function(t,e,n){return e.refractRatio}},REFRACTIVITY:{get:function(t,e,n){return e.refractivity}},LOGDEPTH:{get:function(t,e,n){return 2/(Math.log(Qe.far+1)/Math.LN2)}},AMBIENTLIGHTSCOLOR:{get:function(t,e,n){return $e.ambientInfo}},DIRECTIONALLIGHTSCOLOR:{get:function(t,e,n){return $e.directionalInfo.colors}},DIRECTIONALLIGHTSINFO:{get:function(t,e,n){return $e.directionalInfo.infos}},DIRECTIONALLIGHTSSHADOWMAP:{get:function(t,e,n){return $e.directionalInfo.shadowMap.map((function(t,e){return fn.handlerTexture(t,n.textureIndex+e)}))}},DIRECTIONALLIGHTSSHADOWMAPSIZE:{get:function(t,e,n){return $e.directionalInfo.shadowMapSize}},DIRECTIONALLIGHTSSHADOWBIAS:{get:function(t,e,n){return $e.directionalInfo.shadowBias}},DIRECTIONALLIGHTSPACEMATRIX:{get:function(t,e,n){return $e.directionalInfo.lightSpaceMatrix}},POINTLIGHTSPOS:{get:function(t,e,n){return $e.pointInfo.poses}},POINTLIGHTSCOLOR:{get:function(t,e,n){return $e.pointInfo.colors}},POINTLIGHTSINFO:{get:function(t,e,n){return $e.pointInfo.infos}},POINTLIGHTSRANGE:{get:function(t,e,n){return $e.pointInfo.ranges}},POINTLIGHTSSHADOWMAP:{get:function(t,e,n){return $e.pointInfo.shadowMap.map((function(t,e){return fn.handlerTexture(t,n.textureIndex+e)}))}},POINTLIGHTSSHADOWBIAS:{get:function(t,e,n){return $e.pointInfo.shadowBias}},POINTLIGHTSPACEMATRIX:{get:function(t,e,n){return $e.pointInfo.lightSpaceMatrix}},POINTLIGHTCAMERA:{get:function(t,e,n){return $e.pointInfo.cameras}},SPOTLIGHTSPOS:{get:function(t,e,n){return $e.spotInfo.poses}},SPOTLIGHTSDIR:{get:function(t,e,n){return $e.spotInfo.dirs}},SPOTLIGHTSCOLOR:{get:function(t,e,n){return $e.spotInfo.colors}},SPOTLIGHTSCUTOFFS:{get:function(t,e,n){return $e.spotInfo.cutoffs}},SPOTLIGHTSINFO:{get:function(t,e,n){return $e.spotInfo.infos}},SPOTLIGHTSRANGE:{get:function(t,e,n){return $e.spotInfo.ranges}},SPOTLIGHTSSHADOWMAP:{get:function(t,e,n){return $e.spotInfo.shadowMap.map((function(t,e){return fn.handlerTexture(t,n.textureIndex+e)}))}},SPOTLIGHTSSHADOWMAPSIZE:{get:function(t,e,n){return $e.spotInfo.shadowMapSize}},SPOTLIGHTSSHADOWBIAS:{get:function(t,e,n){return $e.spotInfo.shadowBias}},SPOTLIGHTSPACEMATRIX:{get:function(t,e,n){return $e.spotInfo.lightSpaceMatrix}},AREALIGHTSCOLOR:{get:function(t,e,n){return $e.areaInfo.colors}},AREALIGHTSPOS:{get:function(t,e,n){return $e.areaInfo.poses}},AREALIGHTSWIDTH:{get:function(t,e,n){return $e.areaInfo.width}},AREALIGHTSHEIGHT:{get:function(t,e,n){return $e.areaInfo.height}},AREALIGHTSLTCTEXTURE1:{get:function(t,e,n){return fn.handlerTexture($e.areaInfo.ltcTexture1,n.textureIndex)}},AREALIGHTSLTCTEXTURE2:{get:function(t,e,n){return fn.handlerTexture($e.areaInfo.ltcTexture2,n.textureIndex)}},FOGCOLOR:{get:function(t,e,n){if(en)return en.color.elements}},FOGINFO:{get:function(t,e,n){if(en)return en.getInfo()}},POSITIONDECODEMAT:{get:function(t,e,n){return t.geometry.positionDecodeMat},isDependMesh:!0},NORMALDECODEMAT:{get:function(t,e,n){return t.geometry.normalDecodeMat},isDependMesh:!0},UVDECODEMAT:{get:function(t,e,n){return t.geometry.uvDecodeMat},isDependMesh:!0},UV1DECODEMAT:{get:function(t,e,n){return t.geometry.uv1DecodeMat},isDependMesh:!0},BASECOLOR:{get:function(t,e,n){return e.baseColor.elements}},EMISSIONFACTOR:{get:function(t,e,n){return e.emissionFactor.elements}},METALLIC:{get:function(t,e,n){return e.metallic}},ROUGHNESS:{get:function(t,e,n){return e.roughness}},DIFFUSEENVMAP:{get:function(t,e,n){return fn.handlerTexture(e.diffuseEnvMap,n.textureIndex)}},DIFFUSEENVINTENSITY:{get:function(t,e,n){return e.diffuseEnvIntensity}},DIFFUSEENVSPHEREHARMONICS3:{get:function(t,e,n){var r=e.diffuseEnvSphereHarmonics3;if(r)return r.toArray()}},BRDFLUT:{get:function(t,e,n){return fn.handlerTexture(e.brdfLUT,n.textureIndex)}},SPECULARENVMAP:{get:function(t,e,n){return fn.handlerTexture(e.specularEnvMap,n.textureIndex)}},SPECULARENVINTENSITY:{get:function(t,e,n){return e.specularEnvIntensity}},SPECULARENVMAPMIPCOUNT:{get:function(t,e,n){var r=e.specularEnvMap;return r?r.mipmapCount:1}},GLOSSINESS:{get:function(t,e,n){return e.glossiness}},ALPHACUTOFF:{get:function(t,e,n){return e.alphaCutoff}},EXPOSURE:{get:function(t,e,n){return e.exposure}},GAMMAFACTOR:{get:function(t,e,n){return e.gammaFactor}},MORPHWEIGHTS:{isDependMesh:!0,notSupportInstanced:!0,get:function(t,e,n){var r=t.geometry;if(r.isMorphGeometry&&r.weights)return r.weights}},CLEARCOATFACTOR:{isDependMesh:!1,notSupportInstanced:!1,get:function(t,e,n){return e.clearcoatFactor}},CLEARCOATROUGHNESSFACTOR:{isDependMesh:!1,notSupportInstanced:!1,get:function(t,e,n){return e.clearcoatRoughnessFactor}}};fn._TIME=(rn=(new Date).getTime(),{isDependMesh:!1,notSupportInstanced:!1,get:function(t,e,n){return.001*((new Date).getTime()-rn)}}),[["POSITION","vertices"],["NORMAL","normals"],["TANGENT","tangents"]].forEach((function(t){for(var e=0;e<8;e++)fn["MORPH"+t[0]+e]={get:function(t,e){return function(n,r,i){var a=n.geometry;if(a.isMorphGeometry&&a.targets&&a.targets[t]){var s=a._originalMorphIndices?a._originalMorphIndices[e]:e,o=a.targets[t][s],u="_target_".concat(t,"_").concat(e);return a[u]!==s&&o&&(o.isDirty=!0,a[u]=s),o}}}(t[1],e)}})),[["DIFFUSE","diffuse"],["SPECULAR","specular"],["EMISSION","emission"],["AMBIENT","ambient"]].forEach((function(t){var e=Ke(t,2),n=e[0],r=e[1];fn[n]={get:function(t,e,n){return fn.handlerColorOrTexture(e[r],n.textureIndex)}},fn["".concat(n,"UV")]={get:function(t,e,n){return fn.handlerUV(e[r])}}})),[["NORMALMAP","normalMap"],["PARALLAXMAP","parallaxMap"],["BASECOLORMAP","baseColorMap"],["METALLICMAP","metallicMap"],["ROUGHNESSMAP","roughnessMap"],["METALLICROUGHNESSMAP","metallicRoughnessMap"],["OCCLUSIONMAP","occlusionMap"],["SPECULARGLOSSINESSMAP","specularGlossinessMap"],["LIGHTMAP","lightMap"],["CLEARCOATMAP","clearcoatMap"],["CLEARCOATROUGHNESSMAP","clearcoatRoughnessMap"],["CLEARCOATNORMALMAP","clearcoatNormalMap"]].forEach((function(t){var e=Ke(t,2),n=e[0],r=e[1];fn[n]={get:function(t,e,n){return fn.handlerTexture(e[r],n.textureIndex)}},fn["".concat(n,"UV")]={get:function(t,e,n){return fn.handlerUV(e[r])}}})),[["TRANSPARENCY","transparency"]].forEach((function(t){var e=Ke(t,2),n=e[0],r=e[1];fn[n]={get:function(t,e,n){var i=e[r];return i&&i.isTexture?fn.handlerTexture(i,n.textureIndex):null!=i?i:1}},fn["".concat(n,"UV")]={get:function(t,e,n){return fn.handlerUV(e[r])}}}));var hn=fn,ln=P.a.LEQUAL,dn=P.a.BACK,mn=P.a.FRONT,_n=P.a.FRONT_AND_BACK,pn=P.a.ZERO,gn=P.a.FUNC_ADD,En=P.a.ONE,vn=P.a.SRC_ALPHA,Tn=P.a.ONE_MINUS_SRC_ALPHA,An=P.a.CCW,Mn=P.a.ALWAYS,In=P.a.KEEP,Rn={isBlankInfo:!0,get:function(){}},On=a.a.create({isMaterial:!0,className:"Material",name:null,shaderCacheId:null,shaderName:null,lightType:"NONE",wireframe:!1,frontFace:An,depthTest:!0,sampleAlphaToCoverage:!1,depthMask:!0,depthRange:[0,1],depthFunc:ln,_cullFace:!0,normalMap:null,parallaxMap:null,normalMapScale:1,ignoreTranparent:!1,gammaCorrection:!1,usePhysicsLight:!1,isDiffuesEnvAndAmbientLightWorkTogether:!1,userData:null,renderOrder:0,_premultiplyAlpha:!0,premultiplyAlpha:{get:function(){return this._premultiplyAlpha},set:function(t){this._premultiplyAlpha=t,this.transparent&&this.setDefaultTransparentBlend()}},gammaOutput:{get:function(){return m.a.warnOnce("Matrial.gammaOutput","material.gammaOutput has deprecated. Use material.gammaCorrection instead."),this.gammaCorrection},set:function(t){m.a.warnOnce("Matrial.gammaOutput","material.gammaOutput has deprecated. Use material.gammaCorrection instead."),this.gammaCorrection=t}},gammaFactor:2.2,castShadows:!0,receiveShadows:!0,uvMatrix:null,uvMatrix1:null,cullFace:{get:function(){return this._cullFace},set:function(t){this._cullFace=t,t?this.cullFaceType=this._cullFaceType:this._side=_n}},_cullFaceType:dn,cullFaceType:{get:function(){return this._cullFaceType},set:function(t){this._cullFaceType=t,this._cullFace&&(t===dn?this._side=mn:t===mn&&(this._side=dn))}},_side:mn,side:{get:function(){return this._side},set:function(t){this._side!==t&&(this._side=t,t===_n?this._cullFace=!1:(this._cullFace=!0,t===mn?this._cullFaceType=dn:t===dn&&(this._cullFaceType=mn)))}},blend:!1,blendEquation:gn,blendEquationAlpha:gn,blendSrc:En,blendDst:pn,blendSrcAlpha:En,blendDstAlpha:pn,stencilTest:!1,stencilMask:255,stencilFunc:Mn,stencilFuncRef:1,stencilFuncMask:255,stencilOpFail:In,stencilOpZFail:In,stencilOpZPass:In,isDirty:!1,transparency:1,_transparent:!1,transparent:{get:function(){return this._transparent},set:function(t){this._transparent!==t&&(this._transparent=t,t?this.setDefaultTransparentBlend():(this.blend=!1,this.depthMask=!0))}},setDefaultTransparentBlend:function(){this.blend=!0,this.depthMask=!1,this.premultiplyAlpha?(this.blendSrc=En,this.blendDst=Tn,this.blendSrcAlpha=En,this.blendDstAlpha=Tn):(this.blendSrc=vn,this.blendDst=Tn,this.blendSrcAlpha=vn,this.blendDstAlpha=Tn)},alphaCutoff:0,useHDR:!1,exposure:1,enableTextureLod:!1,enableDrawBuffers:!1,needBasicUnifroms:!0,needBasicAttributes:!0,constructor:function(t){this.id=d.a.generateUUID(this.className),this.uniforms={},this.attributes={},Object.assign(this,t),this.needBasicAttributes&&this.addBasicAttributes(),this.needBasicUnifroms&&this.addBasicUniforms()},addBasicAttributes:function(){var t=this.attributes;this._copyProps(t,{a_position:"POSITION",a_normal:"NORMAL",a_tangent:"TANGENT",a_texcoord0:"TEXCOORD_0",a_texcoord1:"TEXCOORD_1",a_color:"COLOR_0",a_skinIndices:"SKININDICES",a_skinWeights:"SKINWEIGHTS"}),["POSITION","NORMAL","TANGENT"].forEach((function(e){for(var n=e.slice(0,1)+e.slice(1).toLowerCase(),r=0;r<8;r++){var i="a_morph"+n+r;void 0===t[i]&&(t[i]="MORPH"+e+r)}}))},addBasicUniforms:function(){this._copyProps(this.uniforms,{u_modelMatrix:"MODEL",u_viewMatrix:"VIEW",u_projectionMatrix:"PROJECTION",u_modelViewMatrix:"MODELVIEW",u_modelViewProjectionMatrix:"MODELVIEWPROJECTION",u_viewInverseNormalMatrix:"VIEWINVERSEINVERSETRANSPOSE",u_normalMatrix:"MODELVIEWINVERSETRANSPOSE",u_normalWorldMatrix:"MODELINVERSETRANSPOSE",u_cameraPosition:"CAMERAPOSITION",u_rendererSize:"RENDERERSIZE",u_logDepth:"LOGDEPTH",u_ambientLightsColor:"AMBIENTLIGHTSCOLOR",u_directionalLightsColor:"DIRECTIONALLIGHTSCOLOR",u_directionalLightsInfo:"DIRECTIONALLIGHTSINFO",u_directionalLightsShadowMap:"DIRECTIONALLIGHTSSHADOWMAP",u_directionalLightsShadowMapSize:"DIRECTIONALLIGHTSSHADOWMAPSIZE",u_directionalLightsShadowBias:"DIRECTIONALLIGHTSSHADOWBIAS",u_directionalLightSpaceMatrix:"DIRECTIONALLIGHTSPACEMATRIX",u_pointLightsPos:"POINTLIGHTSPOS",u_pointLightsColor:"POINTLIGHTSCOLOR",u_pointLightsInfo:"POINTLIGHTSINFO",u_pointLightsRange:"POINTLIGHTSRANGE",u_pointLightsShadowBias:"POINTLIGHTSSHADOWBIAS",u_pointLightsShadowMap:"POINTLIGHTSSHADOWMAP",u_pointLightSpaceMatrix:"POINTLIGHTSPACEMATRIX",u_pointLightCamera:"POINTLIGHTCAMERA",u_spotLightsPos:"SPOTLIGHTSPOS",u_spotLightsDir:"SPOTLIGHTSDIR",u_spotLightsColor:"SPOTLIGHTSCOLOR",u_spotLightsCutoffs:"SPOTLIGHTSCUTOFFS",u_spotLightsInfo:"SPOTLIGHTSINFO",u_spotLightsRange:"SPOTLIGHTSRANGE",u_spotLightsShadowMap:"SPOTLIGHTSSHADOWMAP",u_spotLightsShadowMapSize:"SPOTLIGHTSSHADOWMAPSIZE",u_spotLightsShadowBias:"SPOTLIGHTSSHADOWBIAS",u_spotLightSpaceMatrix:"SPOTLIGHTSPACEMATRIX",u_areaLightsPos:"AREALIGHTSPOS",u_areaLightsColor:"AREALIGHTSCOLOR",u_areaLightsWidth:"AREALIGHTSWIDTH",u_areaLightsHeight:"AREALIGHTSHEIGHT",u_areaLightsLtcTexture1:"AREALIGHTSLTCTEXTURE1",u_areaLightsLtcTexture2:"AREALIGHTSLTCTEXTURE2",u_jointMat:"JOINTMATRIX",u_jointMatTexture:"JOINTMATRIXTEXTURE",u_jointMatTextureSize:"JOINTMATRIXTEXTURESIZE",u_positionDecodeMat:"POSITIONDECODEMAT",u_normalDecodeMat:"NORMALDECODEMAT",u_uvDecodeMat:"UVDECODEMAT",u_uv1DecodeMat:"UV1DECODEMAT",u_morphWeights:"MORPHWEIGHTS",u_normalMapScale:"NORMALMAPSCALE",u_emission:"EMISSION",u_transparency:"TRANSPARENCY",u_uvMatrix:"UVMATRIX_0",u_uvMatrix1:"UVMATRIX_1",u_fogColor:"FOGCOLOR",u_fogInfo:"FOGINFO",u_alphaCutoff:"ALPHACUTOFF",u_exposure:"EXPOSURE",u_gammaFactor:"GAMMAFACTOR"}),this.addTextureUniforms({u_normalMap:"NORMALMAP",u_parallaxMap:"PARALLAXMAP",u_emission:"EMISSION",u_transparency:"TRANSPARENCY"})},addTextureUniforms:function(t){var e={};for(var n in t){var r=t[n];e[n]=r,e["".concat(n,".texture")]=r,e["".concat(n,".uv")]="".concat(r,"UV")}this._copyProps(this.uniforms,e)},getRenderOption:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.lightType;e["LIGHT_TYPE_".concat(n)]=1,e.SIDE=this.side,"NONE"!==n&&(e.HAS_LIGHT=1),this.premultiplyAlpha&&(e.PREMULTIPLY_ALPHA=1),lt.SHADER_TEXTURE_LOD&&this.enableTextureLod&&(e.USE_SHADER_TEXTURE_LOD=1),lt.DRAW_BUFFERS&&this.enableDrawBuffers&&(e.USE_DRAW_BUFFERS=1);var r=this._textureOption.reset(e);return e.HAS_LIGHT&&(e.HAS_NORMAL=1,r.add(this.normalMap,"NORMAL_MAP",(function(){1!==t.normalMapScale&&(e.NORMAL_MAP_SCALE=1)}))),r.add(this.parallaxMap,"PARALLAX_MAP"),r.add(this.emission,"EMISSION_MAP"),r.add(this.transparency,"TRANSPARENCY_MAP"),this.ignoreTranparent&&(e.IGNORE_TRANSPARENT=1),this.alphaCutoff>0&&(e.ALPHA_CUTOFF=1),this.useHDR&&(e.USE_HDR=1),this.gammaCorrection&&(e.GAMMA_CORRECTION=1),this.receiveShadows&&(e.RECEIVE_SHADOWS=1),this.castShadows&&(e.CAST_SHADOWS=1),this.uvMatrix&&(e.UV_MATRIX=1),this.uvMatrix1&&(e.UV_MATRIX1=1),this.usePhysicsLight&&(e.USE_PHYSICS_LIGHT=1),this.isDiffuesEnvAndAmbientLightWorkTogether&&(e.IS_DIFFUESENV_AND_AMBIENTLIGHT_WORK_TOGETHER=1),r.update(),e},_textureOption:{uvTypes:null,option:null,reset:function(t){return this.option=t,this.uvTypes={},this},add:function(t,e,n){if(t&&t.isTexture){var r=this.uvTypes,i=this.option,a=t.uv||0;r[a]=1,i[e]=a,t.isCubeTexture&&(i["".concat(e,"_CUBE")]=1),n&&n(t)}return this},update:function(){var t=[0,1],e=this.uvTypes,n=this.option;for(var r in e)-1!==t.indexOf(Number(r))?n["HAS_TEXCOORD".concat(r)]=1:(m.a.warnOnce("Material._textureOption.update(".concat(r,")"),"uv_".concat(r," not support!")),n.HAS_TEXCOORD0=1);return this}},getInstancedUniforms:function(){var t=this._instancedUniforms;if(!this._instancedUniforms){var e=this.uniforms;for(var n in t=this._instancedUniforms=[],e){var r=this.getUniformInfo(n);r.isDependMesh&&!r.notSupportInstanced&&t.push({name:n,info:r})}}return t},getUniformData:function(t,e,n){return this.getUniformInfo(t).get(e,this,n)},getAttributeData:function(t,e,n){return this.getAttributeInfo(t).get(e,this,n)},getUniformInfo:function(t){return this.getInfo("uniforms",t)},getAttributeInfo:function(t){return this.getInfo("attributes",t)},getInfo:function(t,e){var n=this[t][e];return"string"==typeof n&&(n=hn[n]),n&&n.get||(m.a.warnOnce("material.getInfo-"+e,"Material.getInfo: no this semantic:"+e),n=Rn),n},clone:function(){var t=new this.constructor;for(var e in this)"id"!==e&&(t[e]=this[e]);return t},destroyTextures:function(){this.getTextures().forEach((function(t){t.destroy()}))},getTextures:function(){var t=[];for(var e in this){var n=this[e];n&&n.isTexture&&t.push(n)}return t},_copyProps:function(t,e){for(var n in e)void 0===t[n]&&(t[n]=e[n])}}),Ln=a.a.create({Extends:On,isBasicMaterial:!0,className:"BasicMaterial",lightType:"BLINN-PHONG",diffuse:null,ambient:null,specular:null,emission:null,specularEnvMap:null,specularEnvMatrix:null,reflectivity:0,refractRatio:0,refractivity:0,shininess:32,usedUniformVectors:11,constructor:function(t){this.diffuse=new E.a(.5,.5,.5),this.specular=new E.a(1,1,1),this.emission=new E.a(0,0,0),Ln.superclass.constructor.call(this,t),Object.assign(this.uniforms,{u_diffuse:"DIFFUSE",u_specular:"SPECULAR",u_ambient:"AMBIENT",u_shininess:"SHININESS",u_reflectivity:"REFLECTIVITY",u_refractRatio:"REFRACTRATIO",u_refractivity:"REFRACTIVITY",u_specularEnvMap:"SPECULARENVMAP",u_specularEnvMatrix:"SPECULARENVMATRIX"}),this.addTextureUniforms({u_diffuse:"DIFFUSE",u_specular:"SPECULAR",u_ambient:"AMBIENT"})},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Ln.superclass.getRenderOption.call(this,t);var e=this._textureOption.reset(t),n=this.lightType;"PHONG"!==n&&"BLINN-PHONG"!==n||(t.HAS_SPECULAR=1);var r=this.diffuse;return r&&r.isTexture&&(r.isCubeTexture?t.DIFFUSE_CUBE_MAP=1:e.add(this.diffuse,"DIFFUSE_MAP")),t.HAS_LIGHT&&(e.add(this.specular,"SPECULAR_MAP"),e.add(this.ambient,"AMBIENT_MAP"),e.add(this.specularEnvMap,"SPECULAR_ENV_MAP")),e.update(),t}}),Sn=Ln,yn=P.a.POSITION,Nn=P.a.NORMAL,xn=P.a.DEPTH,Cn=P.a.DISTANCE,bn=P.a.NONE,Pn=a.a.create({Extends:Sn,isGeometryMaterial:!0,className:"GeometryMaterial",vertexType:yn,lightType:bn,writeOriginData:!1,constructor:function(t){Pn.superclass.constructor.call(this,t),Object.assign(this.uniforms,{u_cameraFar:"CAMERAFAR",u_cameraNear:"CAMERANEAR",u_cameraType:"CAMERATYPE"})},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch(Pn.superclass.getRenderOption.call(this,t),t["VERTEX_TYPE_".concat(this.vertexType)]=1,this.vertexType){case yn:t.HAS_FRAG_POS=1;break;case Nn:t.HAS_NORMAL=1;break;case xn:break;case Cn:t.HAS_FRAG_POS=1}return this.writeOriginData&&(t.WRITE_ORIGIN_DATA=1),t}}),wn=Pn,Hn=a.a.create({Extends:O,isOrthographicCamera:!0,className:"OrthographicCamera",_left:-1,left:{get:function(){return this._left},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._left=t}},_right:1,right:{get:function(){return this._right},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._right=t}},_bottom:-1,bottom:{get:function(){return this._bottom},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._bottom=t}},_top:1,top:{get:function(){return this._top},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._top=t}},_near:.1,near:{get:function(){return this._near},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._near=t}},_far:1,far:{get:function(){return this._far},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._far=t}},constructor:function(t){Hn.superclass.constructor.call(this,t),this.updateProjectionMatrix()},updateProjectionMatrix:function(){this.projectionMatrix.ortho(this.left,this.right,this.bottom,this.top,this.near,this.far)},getGeometry:function(t){if(t||!this._geometry||this._isGeometryDirty){this._isGeometryDirty=!1;var e=new K,n=[this.left,this.bottom,-this.near],r=[this.right,this.bottom,-this.near],i=[this.right,this.top,-this.near],a=[this.left,this.top,-this.near],s=[this.left,this.bottom,-this.far],o=[this.right,this.bottom,-this.far],u=[this.right,this.top,-this.far],c=[this.left,this.top,-this.far];e.addRect(s,o,u,c),e.addRect(o,r,i,u),e.addRect(r,n,a,i),e.addRect(n,s,c,a),e.addRect(c,u,i,a),e.addRect(n,r,o,s),this._geometry=e}return this._geometry}}),Dn=Hn,Fn=P.a.DEPTH,Un=P.a.BACK,Gn=null,Bn=new E.a(1,1,1),Vn=new o.a,Xn=function(t){return t.material.castShadows},jn=a.a.create({isLightShadow:!0,className:"LightShadow",light:null,renderer:null,framebuffer:null,camera:null,width:1024,height:1024,maxBias:.05,minBias:.005,cameraInfo:null,debug:!1,constructor:function(t){this.id=d.a.generateUUID(this.className),Object.assign(this,t)},createFramebuffer:function(){this.framebuffer||(this.framebuffer=new we(this.renderer,{width:this.width,height:this.height}),this.debug&&this.showShadowMap())},updateLightCamera:function(t){this.light.isDirectionalLight?this.updateDirectionalLightCamera(t):this.light.isSpotLight&&this.updateSpotLightCamera(t)},updateDirectionalLightCamera:function(t){var e=this.light;if(this.camera.lookAt(e.direction),this.cameraInfo)this.updateCustumCamera(this.cameraInfo);else{var n=t.getGeometry();if(n){this.camera.updateViewMatrix(),Vn.multiply(this.camera.viewMatrix,t.worldMatrix);var r=n.getBounds(Vn);this.camera.near=-r.zMax,this.camera.far=-r.zMin,this.camera.left=r.xMin,this.camera.right=r.xMax,this.camera.bottom=r.yMin,this.camera.top=r.yMax}}this.camera.updateViewMatrix()},updateCustumCamera:function(t){for(var e in t)this.camera[e]=t[e]},updateSpotLightCamera:function(t){var e=this.light;this.camera.lookAt(e.direction),this.cameraInfo?this.updateCustumCamera(this.cameraInfo):(this.camera.fov=2*e.outerCutoff,this.camera.near=.01,this.camera.far=t.far,this.camera.aspect=1),this.camera.updateViewMatrix()},createCamera:function(t){this.camera||(this.light.isDirectionalLight?this.camera=new Dn:this.light.isSpotLight&&(this.camera=new Q),this.camera.addTo(this.light)),(this.light.isDirty||this._cameraMatrixVersion!==t.matrixVersion)&&(this.updateLightCamera(t),this._cameraMatrixVersion=t.matrixVersion,this.light.isDirty=!1)},createShadowMap:function(t){this.createFramebuffer(),this.createCamera(t);var e=this.renderer,n=this.framebuffer,r=this.camera;Gn||(Gn=new wn({vertexType:Fn,side:Un,writeOriginData:!0})),n.bind(),e.state.viewport(0,0,this.width,this.height),e.clear(Bn),r.updateViewProjectionMatrix(),hn.setCamera(r),e.forceMaterial=Gn,this.renderShadowScene(e),delete e.forceMaterial,n.unbind(),hn.setCamera(t),e.viewport()},renderShadowScene:function(t){t.renderList.traverse((function(e){Xn(e)&&t.renderMesh(e)}),(function(e){t.renderInstancedMeshes(e.filter((function(t){return Xn(t)})))}))},showShadowMap:function(){var t=this;this.renderer.on("afterRender",(function(){t.framebuffer.render(0,.7,.3,.3)}))}}),kn=P.a.DISTANCE,Wn=P.a.BACK,Yn=P.a.TEXTURE_CUBE_MAP,zn=P.a.TEXTURE0,qn=P.a.TEXTURE_CUBE_MAP_POSITIVE_X,Kn=P.a.NEAREST,Zn=P.a.FRAMEBUFFER,Qn=P.a.FRAMEBUFFER_COMPLETE,Jn=null,$n=new E.a(0,0,0,0),tr=new c.a,er=[[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,-1,0,0,-1,0,0,0,1,0,0,-1,0,-1,0,0,-1,0]],nr=function(t,e){if(t.material.castShadows){if(!t.frustumTest)return!0;if(e.isMeshVisible(t))return!0}return!1},rr=a.a.create({isLightShadow:!0,className:"CubeLightShadow",Extends:jn,light:null,renderer:null,framebuffer:null,camera:null,width:1024,height:1024,maxBias:.05,minBias:.005,debug:!1,constructor:function(t){rr.superclass.constructor.call(this,t)},createFramebuffer:function(){if(!this.framebuffer){this.framebuffer=new we(this.renderer,{target:Yn,width:1024,height:1024,createTexture:function(){var t=this.state.gl,e=new Ve({image:[null,null,null,null,null,null],type:this.type,format:this.format,internalFormat:this.internalFormat,magFilter:Kn,minFilter:Kn,width:1024,height:1024});return t.checkFramebufferStatus(Zn)!==Qn&&m.a.warn("Framebuffer is not complete",t.checkFramebufferStatus(Zn)),e},bindTexture:function(t){t=t||0;var e=this.state,n=e.gl,r=this.texture.getGLTexture(e);e.activeTexture(zn+lt.MAX_TEXTURE_INDEX),e.bindTexture(this.target,r),n.framebufferTexture2D(Zn,this.attachment,qn+t,r,0)}})}},updateLightCamera:function(t){this.camera.fov=90,this.camera.near=t.near,this.camera.far=t.far,this.camera.aspect=1,this.camera.updateViewMatrix()},createCamera:function(t){this.camera||(this.camera=new Q,this.updateLightCamera(t))},createShadowMap:function(t){this.createFramebuffer(),this.createCamera(t);var e=this.renderer,n=this.framebuffer,r=this.camera;Jn||(Jn=new wn({vertexType:kn,side:Wn,writeOriginData:!1})),n.bind(),e.state.viewport(0,0,n.width,n.height),this.light.worldMatrix.getTranslation(r.position);for(var i=0;i<6;i++)n.bindTexture(i),tr.fromArray(er[0],3*i).add(r.position),r.up.fromArray(er[1],3*i),r.lookAt(tr),r.updateViewProjectionMatrix(),e.clear($n),hn.setCamera(r),e.forceMaterial=Jn,this.renderShadowScene(e);r.matrix.identity(),r.updateViewProjectionMatrix(),delete e.forceMaterial,n.unbind(),hn.setCamera(t),e.viewport()},renderShadowScene:function(t){var e=t.renderList,n=this.camera;e.traverse((function(e){nr(e,n)&&t.renderMesh(e)}),(function(e){var r=e.filter((function(t){return nr(t,n)}));t.renderInstancedMeshes(r)}))}}),ir=rr,ar=a.a.create({Extends:A,isPointLight:!0,className:"PointLight",constructor:function(t){ar.superclass.constructor.call(this,t)},createShadowMap:function(t,e){this.shadow&&(this.lightShadow||(this.lightShadow=new ir({light:this,renderer:t}),"minBias"in this.shadow&&(this.lightShadow.minBias=this.shadow.minBias),"maxBias"in this.shadow&&(this.lightShadow.maxBias=this.shadow.maxBias)),this.lightShadow.createShadowMap(e))}}),sr=ar,or=new o.a,ur=new c.a,cr=a.a.create({Extends:A,isDirectionalLight:!0,className:"DirectionalLight",constructor:function(t){this.direction=new c.a(0,0,1),cr.superclass.constructor.call(this,t)},createShadowMap:function(t,e){this.shadow&&(this.lightShadow||(this.lightShadow=new jn({light:this,renderer:t,width:this.shadow.width||t.width,height:this.shadow.height||t.height,debug:this.shadow.debug,cameraInfo:this.shadow.cameraInfo}),"minBias"in this.shadow&&(this.lightShadow.minBias=this.shadow.minBias),"maxBias"in this.shadow&&(this.lightShadow.maxBias=this.shadow.maxBias)),this.lightShadow.createShadowMap(e))},getWorldDirection:function(){return ur.copy(this.direction).transformDirection(this.worldMatrix).normalize(),ur},getViewDirection:function(t){var e=t.getModelViewMatrix(this,or);return ur.copy(this.direction).transformDirection(e).normalize(),ur}}),fr=cr,hr=new o.a,lr=new c.a,dr=a.a.create({Extends:A,isSpotLight:!0,className:"SpotLight",_cutoffCos:.9763,_cutoff:12.5,cutoff:{get:function(){return this._cutoff},set:function(t){this._cutoff=t,this._cutoffCos=Math.cos(d.a.degToRad(t))}},_outerCutoffCos:.9537,_outerCutoff:17.5,outerCutoff:{get:function(){return this._outerCutoff},set:function(t){this._outerCutoff=t,this._outerCutoffCos=Math.cos(d.a.degToRad(t))}},constructor:function(t){this.direction=new c.a(0,0,1),dr.superclass.constructor.call(this,t)},createShadowMap:function(t,e){this.shadow&&(this.lightShadow||(this.lightShadow=new jn({light:this,renderer:t,width:this.shadow.width||t.width,height:this.shadow.height||t.height,debug:this.shadow.debug,cameraInfo:this.shadow.cameraInfo}),"minBias"in this.shadow&&(this.lightShadow.minBias=this.shadow.minBias),"maxBias"in this.shadow&&(this.lightShadow.maxBias=this.shadow.maxBias)),this.lightShadow.createShadowMap(e))},getWorldDirection:function(){return lr.copy(this.direction).transformDirection(this.worldMatrix).normalize(),lr},getViewDirection:function(t){var e=t.getModelViewMatrix(this,hr);return lr.copy(this.direction).transformDirection(e).normalize(),lr}}),mr=dr,_r=a.a.create({Extends:On,isShaderMaterial:!0,className:"ShaderMaterial",vs:"",fs:"",useHeaderCache:!1,constructor:function(t){_r.superclass.constructor.call(this,t)},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(_r.superclass.getRenderOption.call(this,t),this.getCustomRenderOption){var e=this.getCustomRenderOption({});for(var n in e)t["HILO_CUSTUM_OPTION_".concat(n)]=e[n]}return t},getCustomRenderOption:null}),pr=_r,gr=n(15),Er=n.n(gr),vr=a.a.create({Extends:K,isMorphGeometry:!0,className:"MorphGeometry",isStatic:!1,weights:[],targets:null,constructor:function(t){vr.superclass.constructor.call(this,t),this.weights=this.weights||[]},update:function(t,e){this.weights=t,this._originalMorphIndices=e},clone:function(){return K.prototype.clone.call(this,{targets:this.targets,weights:this.weights})},getRenderOption:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return vr.superclass.getRenderOption.call(this,e),this.targets&&(this._maxMorphTargetCount||(this._maxMorphTargetCount=Math.floor(8/Object.keys(this.targets).length)),Object(i.each)(this.targets,(function(n,r){e.MORPH_TARGET_COUNT=Math.min(n.length,t._maxMorphTargetCount),"vertices"===r?e.MORPH_HAS_POSITION=1:"normals"===r?e.MORPH_HAS_NORMAL=1:"tangents"===r&&(e.MORPH_HAS_TANGENT=1)}))),e}}),Tr=vr,Ar={POSITION:{name:"vertices",decodeMatName:"positionDecodeMat"},TEXCOORD_0:{name:"uvs",decodeMatName:"uvDecodeMat"},TEXCOORD_1:{name:"uvs1",decodeMatName:"uv1DecodeMat"},NORMAL:{name:"normals",decodeMatName:"normalDecodeMat"},JOINT:{name:"skinIndices"},JOINTS_0:{name:"skinIndices"},WEIGHT:{name:"skinWeights"},WEIGHTS_0:{name:"skinWeights"},TANGENT:{name:"tangents"},COLOR_0:{name:"colors"}},Mr={Geometry:K,GeometryData:b};var Ir={_decodeTotalTime:0,wasmURL:"",workerURL:"",useWASM:!0,useWebWorker:!0,useAuto:!0,init:function(){return Ir.useAuto?Er.a.initWASM(Ir.wasmURL,Ir.memPages):Ir.useWebWorker?Er.a.initWorker(Ir.workerURL):Ir.useWASM?Er.a.initWASM(Ir.wasmURL,Ir.memPages):Promise.resolve()},parse:function(t,e,n,r){var i=Date.now(),a=e.bufferViews[t.bufferView],s=Ir.wasmURL,o=Ir.workerURL,u=Ir.useAuto,c=Ir.useWASM,f=Ir.useWebWorker,h=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);function l(e){Ir._decodeTotalTime+=Date.now()-i;var n=e.toHilo3dGeometry(Mr,r.primitive._geometry);return t.targets&&(n=function(t,e,n){if(!n.isMorphGeometry){var r=new Tr;for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&"id"!==i&&(r[i]=n[i]);r.targets={},n=r}for(var a=n.targets,s=0;s<t.targets.length;s++){var o=t.targets[s];for(var u in o)if(u in Ar){var c=o[u],f=Ar[u].name;a[f]||(a[f]=[]);var h=e.attrs[c];a[f].push(new b(h.data,h.itemCount))}}return t.weights?n.weights=t.weights:n.weights=new Float32Array(t.targets.length),n}(t,e,n)),n}return u?Er.a.decompress(h,s,o).then(l):f?Er.a.decompressWithWorker(h,c,s,o).then(l):l(c?Er.a.decompressWithWASM(h,s):Er.a.decompressWithJS(h))},freeMemory:function(){Er.a.destory()}},Rr=Ir,Or=P.a.SAMPLER_2D,Lr={unQuantizeData:function(t,e){if(!e)return t;var n=Math.sqrt(e.length),r=n-1,i=new Float32Array(t.length),a=[];return t.traverse((function(t,s){t.toArray?t.toArray(a):a[0]=t;for(var o=s*r,u=0;u<n;u++){i[o+u]=0;for(var c=0;c<n;c++){var f=c===r?1:a[c];i[o+u]+=e[c*n+u]*f}}})),t.data=i,t.stride=0,t.offset=0,t},parse:function(t,e,n,r){var i=t.decodeMatrix;return r.isDecode?n=Lr.unQuantizeData(n,i):n.decodeMat=i,n}},Sr={parseOnEnd:function(t,e,n){if(!n.anim||e.isMultiAnim)return n;for(var r in t){var i=t[r];n.anim.addClip(r,i[0],i[1])}return n}},yr=Sr,Nr={parse:function(t,e,n){return t.center=t.max.map((function(e,n){return(e+t.min[n])/2})),t.width=t.max[0]-t.min[0],t.height=t.max[1]-t.min[1],t.depth=t.max[2]-t.min[2],t.size=Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2)+Math.pow(t.depth,2)),n.bounds=t,n}},xr={getUsedTextureNameMap:function(t,e){t.diffuseTexture&&(e[t.diffuseTexture.index]=!0),t.specularGlossinessTexture&&(e[t.specularGlossinessTexture.index]=!0)},parse:function(t,e,n){return t.diffuseFactor&&n.baseColor.fromArray(t.diffuseFactor),t.diffuseTexture&&(n.baseColorMap=e.getTexture(t.diffuseTexture)),t.specularFactor&&(n.specular.fromArray(t.specularFactor),n.specular.a=1),"glossinessFactor"in t&&(n.glossiness=t.glossinessFactor),t.specularGlossinessTexture&&(n.specularGlossinessMap=e.getTexture(t.specularGlossinessTexture)),n.isSpecularGlossiness=!0,n}},Cr={getUsedTextureNameMap:function(t,e){t.clearcoatTexture&&(e[t.clearcoatTexture.index]=!0),t.clearcoatRoughnessTexture&&(e[t.clearcoatRoughnessTexture.index]=!0),t.clearcoatNormalTexture&&(e[t.clearcoatNormalTexture.index]=!0)},parse:function(t,e,n){return t.clearcoatFactor&&(n.clearcoatFactor=t.clearcoatFactor),t.clearcoatTexture&&(n.clearcoatMap=e.getTexture(t.clearcoatTexture)),t.clearcoatRoughnessFactor&&(n.clearcoatRoughnessFactor=t.clearcoatRoughnessFactor),t.clearcoatRoughnessTexture&&(n.clearcoatRoughnessMap=e.getTexture(t.clearcoatRoughnessTexture)),t.clearcoatNormalTexture&&(n.clearcoatNormalMap=e.getTexture(t.clearcoatNormalTexture)),n}},br={parse:function(t,e,n){if(!e.isUseExtension(e.json,"KHR_lights_punctual")||!e.json.extensions.KHR_lights_punctual.lights)return n;var r,i=e.json.extensions.KHR_lights_punctual.lights[t.light];if(!i)return n;var a=new E.a(1,1,1,1);i.color&&(a.r=i.color[0],a.g=i.color[1],a.b=i.color[2]);var s=void 0!==i.intensity?i.intensity:1,o=i.name||"",u=i.spot||{},c=void 0!==u.innerConeAngle?d.a.radToDeg(u.innerConeAngle):0,f=void 0!==u.outerConeAngle?d.a.radToDeg(u.outerConeAngle):45,h=i.range||0;switch(i.type){case"directional":(r=new fr({color:a,amount:s,name:o,range:h})).direction.set(0,0,-1);break;case"point":r=new sr({color:a,amount:s,name:o,range:h});break;case"spot":(r=new mr({color:a,amount:s,name:o,range:h,cutoff:c,outerCutoff:f})).direction.set(0,0,-1);break;default:return n}return r&&(n.addChild(r),e.lights.push(r)),n}},Pr={init:function(t,e){var n=[],r=(e.json.extensions||{}).KHR_techniques_webgl||{},a=r.programs||[],s=r.shaders||[],o=r.techniques||[];return e.shaders={},s.forEach((function(r,a){var s=i.getRelativePath(e.src,r.uri);e.preHandlerShaderURI&&(s=e.preHandlerShaderURI(s,a,r)),n.push(t.loadRes(s).then((function(t){e.shaders[a]=t})))})),e.programs={},a.forEach((function(t,n){e.programs[n]=Object.assign({},t)})),e.techniques={},o.forEach((function(t,n){var r=(e.techniques[n]=Object.assign({},t)).textureInfos={},i=t.uniforms||{};for(var a in i){var s=i[a];s.type===Or&&(r[a]=s.value||{})}})),Promise.all(n)},getUsedTextureNameMap:function(t,e,n){var r=n.techniques[t.technique],i=t.values||{};if(r){var a=r.textureInfos;for(var s in a){var o=void 0;i[s]&&void 0!==i[s].index?o=i[s].index:void 0!==a[s].index&&(o=a[s].index),void 0!==o&&(e[o]=!0)}}},parse:function(t,e,n){var r=e.textures||[],i=e.techniques[t.technique];if(!i)return n;var a=e.programs[i.program];if(!a)return n;var s=e.shaders[a.fragmentShader],o=e.shaders[a.vertexShader],u=i.uniforms||{},c=i.attributes||{},f=t.values||{},h={},l={},d=function(){var t,n=u[m]||{},i=f[m];if(void 0===i&&(i=n.value),void 0!==i)if(n.type===Or){var a=i.index||0;t={get:function(t,e,n){return hn.handlerTexture(r[a],n.textureIndex)}}}else t={get:function(){return i}};else if(n.semantic&&hn[n.semantic]){var s,o=hn[n.semantic],c=n.node;t=void 0!==c?{get:function(t,n,r){return void 0===s&&(s=e.node.getChildByFn((function(t){return t.animationId===c}))||t),o.get(s,n,r)}}:n.semantic}l[m]=t};for(var m in u)d();for(var _ in c){var p=c[_]||{};p.semantic&&(h[_]=p.semantic)}var g=new pr({needBasicUnifroms:!1,needBasicAttributes:!1,useHeaderCache:!0,premultiplyAlpha:!1,vs:o,fs:s,attributes:h,uniforms:l});return void 0!==t.premultiplyAlpha&&(g.premultiplyAlpha=t.premultiplyAlpha),t.defines&&(g.getCustomRenderOption=function(){return t.defines}),void 0!==a.name&&(g.shaderName=a.name,g.shaderCacheId="KHR_techniques_webgl_".concat(a.name)),g}},wr=new Float32Array(2),Hr=a.a.create({isFog:!0,className:"Fog",mode:"LINEAR",start:5,end:10,density:.1,constructor:function(t){this.id=d.a.generateUUID(this.className),this.color=new E.a(1,1,1,1),Object.assign(this,t)},getInfo:function(){return"LINEAR"===this.mode?(wr[0]=this.start,wr[1]=this.end,wr):this.density},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t["FOG_".concat(this.mode)]=1,t}}),Dr=n(16),Fr=new Dr.a,Ur=new o.a,Gr=a.a.create({Extends:g,isMesh:!0,className:"Mesh",geometry:null,material:null,useInstanced:!1,frustumTest:!0,constructor:function(t){Gr.superclass.constructor.call(this,t)},clone:function(t){var e=g.prototype.clone.call(this,t);return Object.assign(e,{geometry:this.geometry,material:this.material}),e},raycast:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.visible)return null;var n=this.geometry,r=this.material,i=this.worldMatrix;if(n&&r){Ur.invert(i),Fr.copy(t),Fr.transformMat4(Ur);var a=n.raycast(Fr,r.side,e);if(a)return a.forEach((function(t){t.transformMat4(i)})),a}return null},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.geometry.getRenderOption(t),t},isDestroyed:{get:function(){return this._isDestroyed}},destroy:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._isDestroyed)return this;this.removeFromParent();var n=t.resourceManager;return n.destroyMesh(this),this.material&&e&&this.material.destroyTextures(),this.off(),this.geometry=null,this.material=null,this._isDestroyed=!0,this}}),Br=Gr,Vr=new o.a,Xr=new o.a,jr=a.a.create({Extends:Br,isSkinedMesh:!0,className:"SkinedMesh",useInstanced:!1,jointMatTexture:null,frustumTest:!1,skeleton:null,constructor:function(t){jr.superclass.constructor.call(this,t)},getJointMat:function(){var t=this;if(this.skeleton&&!(this.skeleton.jointCount<=0)){var e=this.skeleton.jointNodeList,n=this.skeleton.inverseBindMatrices,r=16*this.skeleton.jointCount;return this.jointMat&&this.jointMat.length===r||(this.jointMat=new Float32Array(r)),this.clonedFrom?Xr.invert(this.clonedFrom.worldMatrix):Xr.invert(this.worldMatrix),e.forEach((function(e,r){Vr.copy(Xr),Vr.multiply(e.worldMatrix),Vr.multiply(n[r]),Vr.toArray(t.jointMat,16*r)})),this.jointMat}},resetJointNamesByNodeName:function(t){this.skeleton.resetJointNamesByNodeName(t)},resetSkinIndices:function(t){var e=this.skeleton;if(e){var n=this.geometry,r=n.skinIndices;if(r){this.material.isDirty=!0,n.isDirty=!0,r.isDirty=!0;var i=new S.a;r.traverse((function(n,a,s){n.elements.forEach((function(n,r){var a=e.jointNames[n],s=t.jointNames.indexOf(a);s>=0?i.elements[r]=s:m.a.warnOnce("SkinedMesh.resetSkinIndices","SkinedMesh.resetSkinIndices: no jointName found!",a)})),r.setByOffset(s,i)}))}}},initJointMatTexture:function(){if(!this.jointMatTexture){var t=this.getJointMat();this.jointMatTexture=new qe({data:t})}return this.jointMatTexture},updateJointMatTexture:function(){if(this.jointMatTexture){var t=this.getJointMat();this.jointMatTexture.data.set(t,0),this.jointMatTexture.needUpdate=!0}else this.initJointMatTexture()},clone:function(t){var e=Br.prototype.clone.call(this,t);return Object.assign(e,{useInstanced:this.useInstanced,skeleton:this.skeleton.clone()}),e.clonedFrom=this,e},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};jr.superclass.getRenderOption.call(this,t);var e=this.skeleton.jointCount;if(e&&(t.JOINT_COUNT=e,lt.VERTEX_TEXTURE_FLOAT)){var n=(lt.MAX_VERTEX_UNIFORM_VECTORS-22)/4;e>n&&(t.JOINT_MAT_MAP=1)}return t}}),kr=jr,Wr=a.a.create({isSkeleton:!0,className:"Skeleton",userData:null,constructor:function(t){this.id=d.a.generateUUID(this.className),this.jointNodeList=[],this.jointNames=[],this.inverseBindMatrices=[],Object.assign(this,t)},jointCount:{get:function(){return this.jointNodeList.length}},_rootNode:null,rootNode:{get:function(){return this._rootNode},set:function(t){this._rootNode=t,t&&this._initJointNodeList()}},_initJointNodeList:function(){var t={};this.rootNode.traverse((function(e){t[e.jointName]=e})),this.jointNodeList=this.jointNames.map((function(e){return t[e]}))},resetJointNamesByNodeName:function(t){var e=this.jointNames;this.jointNodeList.forEach((function(n,r){var i=t.rootNode.getChildByName(n.name);i&&(e[r]=i.jointName)}))},clone:function(t){var e=new Wr;return e.copy(this,t),e},copy:function(t,e){return this.inverseBindMatrices=t.inverseBindMatrices,this.jointNames=t.jointNames.slice(),void 0===e&&(e=t.rootNode),this.rootNode=e,this}}),Yr=Wr,zr="1.18.0",qr=a.a.create({className:"RenderInfo",isRenderInfo:!0,constructor:function(){this.reset()},addFaceCount:function(t){this._currentFaceCount+=t},addDrawCount:function(t){this._currentDrawCount+=t},reset:function(){this.faceCount=Math.floor(this._currentFaceCount),this.drawCount=Math.floor(this._currentDrawCount),this._currentFaceCount=0,this._currentDrawCount=0}}),Kr=new c.a,Zr=function(t,e){var n=t.material.renderOrder,r=e.material.renderOrder;if(n!==r)return n-r;var i=t.material._shaderNumId||0,a=e.material._shaderNumId||0;return i!==a?i-a:t._sortRenderZ-e._sortRenderZ},Qr=function(t,e){var n=t.material.renderOrder,r=e.material.renderOrder;return n!==r?n-r:e._sortRenderZ-t._sortRenderZ},Jr=a.a.create({className:"RenderList",isRenderList:!0,useInstanced:!1,constructor:function(){this.opaqueList=[],this.transparentList=[],this.instancedDict={}},reset:function(){this.opaqueList.length=0,this.transparentList.length=0,this.instancedDict={}},traverse:function(t,e){this.opaqueList.forEach((function(e){t(e)}));var n=this.instancedDict;for(var r in n){var i=n[r];i.length>2&&e?e(i):i.forEach((function(e){t(e)}))}this.transparentList.forEach((function(e){t(e)}))},sort:function(){this.transparentList.sort(Qr),this.opaqueList.sort(Zr)},addMesh:function(t,e){var n=t.material,r=t.geometry;if(n&&r){if(t.frustumTest&&!e.isMeshVisible(t))return;if(this.useInstanced&&t.useInstanced){var i=this.instancedDict,a=n.id+"_"+r.id,s=i[a];i[a]||(s=i[a]=[]),s.push(t)}else t.worldMatrix.getTranslation(Kr),Kr.transformMat4(e.viewProjectionMatrix),t._sortRenderZ=Kr.z,n.transparent?this.transparentList.push(t):this.opaqueList.push(t)}else m.a.warnOnce("RenderList.addMesh(".concat(t.id,")"),"Mesh must have material and geometry",t)}}),$r=a.a.create({className:"WebGLState",isWebGLState:!0,systemFramebuffer:null,isWebGL2:!1,constructor:function(t){this.gl=t,this.isWebGL2=Object(i.isWebGL2)(t),this.reset()},reset:function(){this._dict={},this.activeTextureIndex=null,this.textureUnitDict={},this.currentFramebuffer=null,this.preFramebuffer=null,this._pixelStorei={}},enable:function(t){!0!==this._dict[t]&&(this._dict[t]=!0,this.gl.enable(t))},disable:function(t){!1!==this._dict[t]&&(this._dict[t]=!1,this.gl.disable(t))},bindFramebuffer:function(t,e){this.currentFramebuffer!==e&&(this.preFramebuffer=this.currentFramebuffer,this.currentFramebuffer=e,this.gl.bindFramebuffer(t,e))},bindSystemFramebuffer:function(){this.bindFramebuffer(this.gl.FRAMEBUFFER,this.systemFramebuffer)},useProgram:function(t){this.set1("useProgram",t)},depthFunc:function(t){this.set1("depthFunc",t)},depthMask:function(t){this.set1("depthMask",t)},clear:function(t){this.gl.clear(t)},depthRange:function(t,e){this.set2("depthRange",t,e)},stencilFunc:function(t,e,n){this.set3("stencilFunc",t,e,n)},stencilMask:function(t){this.set1("stencilMask",t)},stencilOp:function(t,e,n){this.set3("stencilOp",t,e,n)},colorMask:function(t,e,n,r){this.set4("colorMask",t,e,n,r)},cullFace:function(t){this.set1("cullFace",t)},frontFace:function(t){this.set1("frontFace",t)},blendFuncSeparate:function(t,e,n,r){this.set4("blendFuncSeparate",t,e,n,r)},blendEquationSeparate:function(t,e){this.set2("blendEquationSeparate",t,e)},pixelStorei:function(t,e){this._pixelStorei[t]!==e&&(this._pixelStorei[t]=e,this.gl.pixelStorei(t,e))},viewport:function(t,e,n,r){this.set4("viewport",t,e,n,r)},activeTexture:function(t){this.activeTextureIndex!==t&&(this.activeTextureIndex=t,this.gl.activeTexture(t))},bindTexture:function(t,e){var n=this.getActiveTextureUnit();n[t]!==e&&(n[t]=e,this.gl.bindTexture(t,e))},getActiveTextureUnit:function(){var t=this.textureUnitDict[this.activeTextureIndex];return t||(t=this.textureUnitDict[this.activeTextureIndex]={}),t},set1:function(t,e){this._dict[t]!==e&&(this._dict[t]=e,this.gl[t](e))},set2:function(t,e,n){var r=this._dict[t];r||(r=this._dict[t]=[]),r[0]===e&&r[1]===n||(r[0]=e,r[1]=n,this.gl[t](e,n))},set3:function(t,e,n,r){var i=this._dict[t];i||(i=this._dict[t]=[]),i[0]===e&&i[1]===n&&i[2]===r||(i[0]=e,i[1]=n,i[2]=r,this.gl[t](e,n,r))},set4:function(t,e,n,r,i){var a=this._dict[t];a||(a=this._dict[t]=[]),a[0]===e&&a[1]===n&&a[2]===r&&a[3]===i||(a[0]=e,a[1]=n,a[2]=r,a[3]=i,this.gl[t](e,n,r,i))},get:function(t){return this._dict[t]}}),ti=a.a.create({Mixes:s.a,className:"WebGLResourceManager",isWebGLResourceManager:!0,hasNeedDestroyResource:!1,constructor:function(t){this._needDestroyResources=[],this._meshDict={},Object.assign(this,t)},destroyMesh:function(t){var e=this;this.getMeshResources(t).forEach((function(t){e.destroyIfNoRef(t)})),delete this._meshDict[t.id]},getMeshResources:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=this._meshDict[t.id];return n&&n.forEach((function(t){e.push(t),t.getResources&&t.getResources(e)})),e},addMeshResources:function(t,e){var n=t.id,r=this._meshDict;r[n]||(r[n]=[]);var i=r[n];e.forEach((function(t){-1===i.indexOf(t)&&i.push(t)}))},destroyIfNoRef:function(t){var e=this._needDestroyResources;return t&&e.indexOf(t)<0&&e.push(t),this},getUsedResources:function(t){var e=this,n=[];return t&&t.traverse((function(t){t.isMesh&&!t.isDestroyed&&e.getMeshResources(t,n)})),n},destroyUnsuedResource:function(t){var e=this,n=this._needDestroyResources;if(0===n.length)return this;var r=this.getUsedResources(t);return n.forEach((function(t){r.indexOf(t)<0&&t&&t.destroy&&!t.alwaysUse&&(e.fire("destroyResource",t.id),t.destroy())})),this.reset(),this},reset:function(){return this._needDestroyResources.length=0,this}}),ei=new o.a,ni=new c.a,ri=new Float32Array([0,0,0]),ii=a.a.create({isLightManager:!0,className:"LightManager",constructor:function(t){this.ambientLights=[],this.directionalLights=[],this.pointLights=[],this.spotLights=[],this.areaLights=[],this.lightInfo={AMBIENT_LIGHTS:0,POINT_LIGHTS:0,DIRECTIONAL_LIGHTS:0,SPOT_LIGHTS:0,AREA_LIGHTS:0,uid:0},Object.assign(this,t)},getRenderOption:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.each)(this.lightInfo,(function(n,r){if("uid"!==r&&n){e[r]=n;var i=t.getShadowMapCount(r);i&&(e[r+"_SMC"]=i)}})),e},addLight:function(t){var e=null;return t.enabled?(t.isAmbientLight?e=this.ambientLights:t.isDirectionalLight?e=this.directionalLights:t.isPointLight?e=this.pointLights:t.isSpotLight?e=this.spotLights:t.isAreaLight?e=this.areaLights:m.a.warnOnce("LightManager.addLight(".concat(t.id,")"),"Not support this light:",t),e&&(t.shadow?e.unshift(t):e.push(t)),this):this},getDirectionalInfo:function(t){var e=[],n=[],r=[],i=[],a=[],s=[];this.directionalLights.forEach((function(o,u){var c=3*u;o.getRealColor().toRGBArray(e,c),o.getViewDirection(t).toArray(n,c),o.shadow&&o.lightShadow&&(r.push(o.lightShadow.framebuffer.texture),i.push(o.lightShadow.width),i.push(o.lightShadow.height),s.push(o.lightShadow.minBias,o.lightShadow.maxBias),ei.copy(t.worldMatrix),ei.premultiply(o.lightShadow.camera.viewProjectionMatrix),ei.toArray(a,16*u))}));var o={colors:new Float32Array(e),infos:new Float32Array(n)};return r.length&&(o.shadowMap=r,o.shadowMapSize=new Float32Array(i),o.shadowBias=new Float32Array(s),o.lightSpaceMatrix=new Float32Array(a)),o},getSpotInfo:function(t){var e=[],n=[],r=[],i=[],a=[],s=[],o=[],u=[],c=[],f=[];this.spotLights.forEach((function(h,l){var d=3*l;h.getRealColor().toRGBArray(e,d),h.toInfoArray(n,d),h.getViewDirection(t).toArray(i,d),f.push(h.range),a.push(h._cutoffCos,h._outerCutoffCos),t.getModelViewMatrix(h,ei),ei.getTranslation(ni),ni.toArray(r,d),h.shadow&&h.lightShadow&&(s.push(h.lightShadow.framebuffer.texture),o.push(h.lightShadow.width),o.push(h.lightShadow.height),c.push(h.lightShadow.minBias,h.lightShadow.maxBias),ei.multiply(h.lightShadow.camera.viewProjectionMatrix,t.worldMatrix),ei.toArray(u,16*l))}));var h={colors:new Float32Array(e),infos:new Float32Array(n),poses:new Float32Array(r),dirs:new Float32Array(i),cutoffs:new Float32Array(a),ranges:new Float32Array(f)};return s.length&&(h.shadowMap=s,h.shadowMapSize=new Float32Array(o),h.shadowBias=new Float32Array(c),h.lightSpaceMatrix=new Float32Array(u)),h},getPointInfo:function(t){var e=[],n=[],r=[],i=[],a=[],s=[],o=[],u=[];this.pointLights.forEach((function(c,f){var h=3*f;c.getRealColor().toRGBArray(e,h),c.toInfoArray(n,h),u.push(c.range),t.getModelViewMatrix(c,ei),ei.getTranslation(ni),ni.toArray(r,h),c.shadow&&c.lightShadow&&(i.push(c.lightShadow.framebuffer.texture),s.push(c.lightShadow.minBias,c.lightShadow.maxBias),t.worldMatrix.toArray(a,16*f),o[2*f]=c.lightShadow.camera.near,o[2*f+1]=c.lightShadow.camera.far)}));var c={colors:new Float32Array(e),infos:new Float32Array(n),poses:new Float32Array(r),ranges:new Float32Array(u)};return i.length&&(c.shadowMap=i,c.shadowBias=new Float32Array(s),c.lightSpaceMatrix=new Float32Array(a),c.cameras=new Float32Array(o)),c},getAreaInfo:function(t){var e,n,r=[],i=[],a=[],s=[];return this.areaLights.forEach((function(o,u){var c=3*u;o.getRealColor().toRGBArray(r,c),t.getModelViewMatrix(o,ei),ei.getTranslation(ni),ni.toArray(i,c);var f=ei.getRotation();ei.fromQuat(f),ni.set(.5*o.width,0,0),ni.transformMat4(ei),ni.toArray(a,c),ni.set(0,.5*o.height,0),ni.transformMat4(ei),ni.toArray(s,c),e=o.ltcTexture1,n=o.ltcTexture2})),{colors:new Float32Array(r),poses:new Float32Array(i),width:new Float32Array(a),height:new Float32Array(s),ltcTexture1:e,ltcTexture2:n}},getAmbientInfo:function(){return ri[0]=ri[1]=ri[2]=0,this.ambientLights.forEach((function(t){var e=t.getRealColor();ri[0]+=e.r,ri[1]+=e.g,ri[2]+=e.b})),ri[0]=Math.min(1,ri[0]),ri[1]=Math.min(1,ri[1]),ri[2]=Math.min(1,ri[2]),ri},updateInfo:function(t){var e=this.lightInfo,n=this.ambientLights,r=this.directionalLights,i=this.pointLights,a=this.spotLights,s=this.areaLights;e.AMBIENT_LIGHTS=n.length,e.POINT_LIGHTS=i.length,e.DIRECTIONAL_LIGHTS=r.length,e.SPOT_LIGHTS=a.length,e.AREA_LIGHTS=s.length;var o=function(t){return!!t.shadow};e.SHADOW_POINT_LIGHTS=i.filter(o).length,e.SHADOW_SPOT_LIGHTS=a.filter(o).length,e.SHADOW_DIRECTIONAL_LIGHTS=r.filter(o).length,e.uid=[e.AMBIENT_LIGHTS,e.POINT_LIGHTS,e.SHADOW_POINT_LIGHTS,e.DIRECTIONAL_LIGHTS,e.SHADOW_DIRECTIONAL_LIGHTS,e.SPOT_LIGHTS,e.SHADOW_SPOT_LIGHTS,e.AREA_LIGHTS].join("_"),this.directionalInfo=this.getDirectionalInfo(t),this.pointInfo=this.getPointInfo(t),this.spotInfo=this.getSpotInfo(t),this.areaInfo=this.getAreaInfo(t),this.ambientInfo=this.getAmbientInfo(),this.updateCustomInfo&&this.updateCustomInfo(this,t)},updateCustomInfo:null,getInfo:function(){return this.lightInfo},reset:function(){this.ambientLights.length=0,this.directionalLights.length=0,this.pointLights.length=0,this.spotLights.length=0,this.areaLights.length=0},getShadowMapCount:function(t){var e=[];"POINT_LIGHTS"===t?e=this.pointLights:"DIRECTIONAL_LIGHTS"===t?e=this.directionalLights:("SPOT_LIGHTS"===t||"AREA_LIGHTS"===t)&&(e=this.spotLights);var n=0;return e.forEach((function(t){n+=t.shadow?1:0})),n},createShadowMap:function(t,e){this.directionalLights.forEach((function(n){n.createShadowMap(t,e)})),this.spotLights.forEach((function(n){n.createShadowMap(t,e)})),this.pointLights.forEach((function(n){n.createShadowMap(t,e)})),this.areaLights.forEach((function(n){n.createShadowMap(t,e)}))}}),ai=P.a.DEPTH_TEST,si=P.a.STENCIL_TEST,oi=P.a.SAMPLE_ALPHA_TO_COVERAGE,ui=P.a.CULL_FACE,ci=P.a.FRONT_AND_BACK,fi=P.a.BLEND,hi=P.a.LINES,li=P.a.STATIC_DRAW,di=P.a.DYNAMIC_DRAW,mi=a.a.create({Mixes:s.a,className:"WebGLRenderer",isWebGLRenderer:!0,gl:null,width:0,height:0,pixelRatio:1,domElement:null,useInstanced:!1,useVao:!0,alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,failIfMajorPerformanceCaveat:!1,gameMode:!1,useFramebuffer:!1,framebufferOption:{},useLogDepth:!1,vertexPrecision:"highp",fragmentPrecision:"highp",fog:null,offsetX:0,offsetY:0,forceMaterial:null,isInitFailed:!1,_isInit:!1,_isContextLost:!1,isWebGL2:!1,preferWebGL2:!1,constructor:function(t){this.clearColor=new E.a(1,1,1),Object.assign(this,t),this.renderInfo=new qr,this.renderList=new Jr,this.lightManager=new ii,this.resourceManager=new ti},resize:function(t,e,n){if(n||this.width!==t||this.height!==e){var r=this.domElement;this.width=t,this.height=e,r.width=t,r.height=e,this.framebuffer&&this.framebuffer.resize(this.width,this.height,n),this.viewport()}},setOffset:function(t,e){this.offsetX===t&&this.offsetY===e||(this.offsetX=t,this.offsetY=e,this.viewport())},viewport:function(t,e,n,r){var i=this.state,a=this.gl;i&&(void 0===t?t=this.offsetX:this.offsetX=t,void 0===e?e=this.offsetY:this.offsetY=e,void 0===n&&(n=a.drawingBufferWidth),void 0===r&&(r=a.drawingBufferHeight),i.viewport(t,e,n,r))},isInit:{get:function(){return this._isInit&&!this.isInitFailed}},onInit:function(t){var e=this;this._isInit?t(this):this.on("init",(function(){t(e)}),!0)},initContext:function(){if(!this._isInit){this._isInit=!0;try{this._initContext(),this.fire("init")}catch(t){this.isInitFailed=!0,this.fire("initFailed",t)}}},_initContext:function(){var t=this,e={alpha:this.alpha,depth:this.depth,stencil:this.stencil,antialias:this.antialias,premultipliedAlpha:this.premultipliedAlpha,failIfMajorPerformanceCaveat:this.failIfMajorPerformanceCaveat};if(!0===this.preserveDrawingBuffer&&(e.preserveDrawingBuffer=!0),!0===this.gameMode&&(e.gameMode=!0),this.preferWebGL2)try{this.gl=this.domElement.getContext("webgl2",e),this.isWebGL2=!0}catch(t){this.isWebGL2=!1,this.gl=null}this.gl||(this.gl=this.domElement.getContext("webgl",e),this.isWebGL2=!1);var n=this.gl;n.viewport(0,0,this.width,this.height),Ct.init(n),ht.init(n),lt.init(n),Rt.init(this),this.state=new $r(n),ht.instanced||(this.useInstanced=!1),this.renderList.useInstanced=this.useInstanced,this.useFramebuffer&&(this.framebuffer=new we(this,Object.assign({useVao:this.useVao,width:this.width,height:this.height},this.framebufferOption))),this.domElement.addEventListener("webglcontextlost",(function(e){t._onContextLost(e)}),!1),this.domElement.addEventListener("webglcontextrestored",(function(e){t._onContextRestore(e)}),!1)},_onContextLost:function(t){var e=this.gl;this._isContextLost=!0,t.preventDefault(),Ft.reset(e),Rt.reset(e),_e.reset(e),jt.reset(e),Qt.reset(e),this.state.reset(e),this._lastMaterial=null,this._lastProgram=null,this.fire("webglContextLost")},_onContextRestore:function(t){var e=this.gl;this._isContextLost=!1,ht.reset(e),we.reset(e),this.fire("webglContextRestored")},setupDepthTest:function(t){var e=this.state;t.depthTest?(e.enable(ai),e.depthFunc(t.depthFunc),e.depthMask(t.depthMask),e.depthRange(t.depthRange[0],t.depthRange[1])):e.disable(ai)},setupSampleAlphaToCoverage:function(t){var e=this.state;t.sampleAlphaToCoverage?e.enable(oi):e.disable(oi)},setupCullFace:function(t){var e=this.state;e.frontFace(t.frontFace),t.cullFace&&t.cullFaceType!==ci?(e.enable(ui),e.cullFace(t.cullFaceType)):e.disable(ui)},setupBlend:function(t){var e=this.state;t.blend?(e.enable(fi),e.blendFuncSeparate(t.blendSrc,t.blendDst,t.blendSrcAlpha,t.blendDstAlpha),e.blendEquationSeparate(t.blendEquation,t.blendEquationAlpha)):e.disable(fi)},setupStencil:function(t){if(this.stencil){var e=this.state;t.stencilTest?(e.enable(si),e.stencilMask(t.stencilMask),e.stencilFunc(t.stencilFunc,t.stencilFuncRef,t.stencilFuncMask),e.stencilOp(t.stencilOpFail,t.stencilOpZFail,t.stencilOpZPass)):e.disable(si)}},setupUniforms:function(t,e,n,r){var i=this.forceMaterial||e.material;if(this.isWebGL2){var a=i.uniformBlocks;for(var s in t.uniformBlocks){var o=a[s];o&&(t[s]=o)}}for(var u in t.uniforms){var c=i.getUniformInfo(u),f=t.uniforms[u];if(!c.isBlankInfo&&(r||c.isDependMesh&&!n)){var h=c.get(e,i,f);null!=h&&(t[u]=h)}}},setupVao:function(t,e,n){var r=n.geometry,i=r.isStatic;if(t.isDirty||!i||r.isDirty){t.isDirty=!1;var a=this.forceMaterial||n.material,s=a.attributes,o=i?li:di;for(var u in s){var c=e.attributes[u];if(c){var f=a.getAttributeData(u,n,c);null!=f&&t.addAttribute(f,c,o)}}r.indices&&t.addIndexBuffer(r.indices,o),r.isDirty=!1}r.vertexCount&&(t.vertexCount=r.vertexCount)},setupMaterial:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this.forceMaterial||e.material;(i.isDirty||this._lastMaterial!==i)&&(this.setupDepthTest(i),this.setupSampleAlphaToCoverage(i),this.setupCullFace(i),this.setupBlend(i),this.setupStencil(i),r=!0),this.setupUniforms(t,e,n,r),i.isDirty=!1,this._lastMaterial=i},setupMesh:function(t,e){var n=this.gl,r=this.state,i=this.lightManager,a=this.resourceManager,s=t.geometry,o=this.forceMaterial||t.material,u=Rt.getShader(t,o,e,i,this.fog,this.useLogDepth),c=Ft.getProgram(u,r);c.useProgram(),this.setupMaterial(c,t,e,this._lastProgram!==c),this._lastProgram=c,t.material.wireframe&&s.mode!==hi&&s.convertToLinesMode();var f=s.id+c.id,h=Qt.getVao(n,f,{useInstanced:e,useVao:this.useVao,mode:s.mode});return this.setupVao(h,c,t),a.addMeshResources(t,[h,u,c]),{vao:h,program:c,geometry:s}},addRenderInfo:function(t,e){var n=this.renderInfo;n.addFaceCount(t),n.addDrawCount(e)},render:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.initContext(),!this.isInitFailed&&!this._isContextLost){var r=this.renderList,i=this.renderInfo,a=this.lightManager,s=this.resourceManager,o=this.state;this.fog=t.fog,a.reset(),i.reset(),r.reset(),hn.init(this,o,e,a,this.fog),t.updateMatrixWorld(),e.updateViewProjectionMatrix(),t.traverse((function(t){return t.visible?(t.isMesh?r.addMesh(t,e):t.isLight&&a.addLight(t),g.TRAVERSE_STOP_NONE):g.TRAVERSE_STOP_CHILDREN})),r.sort(),a.createShadowMap(this,e),a.updateInfo(e),n&&this.fire("beforeRender"),this.useFramebuffer&&this.framebuffer.bind(),this.clear(),n&&this.fire("beforeRenderScene"),this.renderScene(),this.useFramebuffer&&this.renderToScreen(this.framebuffer),n&&this.fire("afterRender"),s.destroyUnsuedResource(t)}},renderScene:function(){var t=this;this.renderList.traverse((function(e){t.renderMesh(e)}),(function(e){t.renderInstancedMeshes(e)})),this._gameModeSumbit()},_gameModeSumbit:function(){var t=this.gl;this.gameMode&&t&&t.submit&&t.submit()},clear:function(t){var e=this.gl,n=this.state;t=t||this.clearColor,this._lastMaterial=null,this._lastProgram=null,e.clearColor(t.r,t.g,t.b,t.a),n.depthMask(!0);var r=e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT;this.stencil&&(n.stencilMask(!0),r|=e.STENCIL_BUFFER_BIT),e.clear(r)},clearDepth:function(){var t=this.gl;this.state.depthMask(!0),t.clear(t.DEPTH_BUFFER_BIT)},clearStencil:function(){var t=this.gl;this.state.stencilMask(!0),t.clear(t.STENCIL_BUFFER_BIT)},renderToScreen:function(t){this.state.bindSystemFramebuffer(),t.render(0,0,1,1,this.clearColor)},renderMesh:function(t){var e=this.setupMesh(t,!1).vao;e.draw(),this.addRenderInfo(e.vertexCount/3,1)},renderInstancedMeshes:function(t){var e=t[0];if(e){var n=this.forceMaterial||e.material,r=this.setupMesh(e,!0),i=r.vao,a=r.program;n.getInstancedUniforms().forEach((function(e){var n=e.name,r=e.info,s=a.attributes[n];s&&i.addInstancedAttribute(s,t,(function(t){return r.get(t)}))})),i.drawInstance(t.length),this.addRenderInfo(i.vertexCount/3*t.length,1)}},renderMultipleMeshes:function(t){var e=this;t.forEach((function(t){e.renderMesh(t)}))},releaseGLResource:function(){var t=this.gl;t&&(Ft.reset(t),Rt.reset(t),jt.reset(t),Qt.reset(t),this.state.reset(t),_e.reset(t),we.destroy(t))}}),_i=function(){var t,e=navigator.userAgent,n=document,r=window,i=n.documentElement,a={iphone:/iphone/i.test(e),ipad:/ipad/i.test(e),ipod:/ipod/i.test(e),ios:/iphone|ipad|ipod/i.test(e),android:/android/i.test(e),webkit:/webkit/i.test(e),chrome:/chrome/i.test(e),safari:/safari/i.test(e),firefox:/firefox/i.test(e),ie:/msie/i.test(e),opera:/opera/i.test(e),supportTouch:"ontouchstart"in r,supportCanvas:!!n.createElement("canvas").getContext,supportStorage:void 0,supportOrientation:"orientation"in r||"orientation"in r.screen,supportDeviceMotion:"ondevicemotion"in r};try{localStorage.setItem("hilo","hilo"),localStorage.removeItem("hilo"),a.supportStorage=!0}catch(t){a.supportStorage=!1,m.a.warn("LocalStorage disabled")}t=a.webkit||a.firefox?"webkit":a.opera?"o":a.ie?"ms":"",a.jsVendor=t;var s=a.cssVendor="-"+t+"-";try{var o=n.createElement("div"),u=o.style,c=void 0!==u[t+"Transform"],f=void 0!==u[t+"Perspective"];f&&(o.id="test3d",(u=n.createElement("style")).textContent="@media ("+s+"transform-3d){#test3d{height:3px}}",n.head.appendChild(u),i.appendChild(o),f=3===o.offsetHeight,n.head.removeChild(u),i.removeChild(o)),a.supportTransform=c,a.supportTransform3D=f}catch(t){a.supportTransform=!1,a.supportTransform3D=!1}var h=a.supportTouch,l=h?"touchstart":"mousedown",d=h?"touchmove":"mousemove",_=h?"touchend":"mouseup";return a.POINTER_START=l,a.POINTER_MOVE=d,a.POINTER_END=_,a}(),pi=a.a.create({Extends:g,isStage:!0,className:"Stage",renderer:null,camera:null,pixelRatio:null,offsetX:0,offsetY:0,width:0,height:0,canvas:null,constructor:function(t){if(t.width||(t.width=window.innerWidth),t.height||(t.height=window.innerHeight),!t.pixelRatio){var e=window.devicePixelRatio||1;e=Math.min(e,1024/Math.max(t.width,t.height),2),e=Math.max(e,1),t.pixelRatio=e}pi.superclass.constructor.call(this,t),this.initRenderer(t),m.a.log("Hilo3d version: ".concat(zr))},initRenderer:function(t){var e=this.canvas=this.createCanvas(t);this.renderer=new mi(Object.assign(t,{domElement:e})),this.resize(this.width,this.height,this.pixelRatio,!0)},createCanvas:function(t){var e;return e=t.canvas?t.canvas:document.createElement("canvas"),t.container&&t.container.appendChild(e),e},resize:function(t,e,n,r){if(void 0===n&&(n=this.pixelRatio),r||this.width!==t||this.height!==e||this.pixelRatio!==n){this.width=t,this.height=e,this.pixelRatio=n,this.rendererWidth=t*n,this.rendererHeight=e*n;var i=this.canvas;this.renderer.resize(this.rendererWidth,this.rendererHeight,r),i.style.width=this.width+"px",i.style.height=this.height+"px",this.updateDomViewport()}return this},setOffset:function(t,e){if(this.offsetX!==t||this.offsetY!==e){this.offsetX=t,this.offsetY=e;var n=this.pixelRatio;this.renderer.setOffset(t*n,e*n)}return this},viewport:function(t,e,n,r){return this.resize(n,r,this.pixelRatio,!0),this.setOffset(t,e),this},tick:function(t){return this.traverseUpdate(t),this.camera&&this.renderer.render(this,this.camera,!0),this},enableDOMEvent:function(t){var e=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=this.canvas,i=this._domListener||(this._domListener=function(t){e._onDOMEvent(t)});return(t="string"==typeof t?[t]:t).forEach((function(t){n?r.addEventListener(t,i,!1):r.removeEventListener(t,i)})),this},_onDOMEvent:function(t){var e=this.canvas,n=this._eventTarget,r=t.type,i=0===r.indexOf("touch"),a=t;if(i){var s=t.touches,o=t.changedTouches;s&&s.length?a=s[0]:o&&o.length&&(a=o[0])}var u=this.domViewport||this.updateDomViewport(),c=(a.pageX||a.clientX)-u.left,f=(a.pageY||a.clientY)-u.top;t.stageX=c,t.stageY=f,t.stopPropagation=function(){this._stopPropagationed=!0};var h=this.getMeshResultAtPoint(c,f,!0),l=h.mesh;t.hitPoint=h.point;var d="mouseout"===r;if(n&&(n!==l&&(!n.contains||!n.contains(l))||d)){var m=!1;if("touchmove"===r?m="touchout":"mousemove"!==r&&!d&&l||(m="mouseout"),m){var _=Object.assign({},t);_.type=m,_.eventTarget=n,n._fireMouseEvent(_)}t.lastEventTarget=n,this._eventTarget=null}if(l&&l.pointerEnabled&&"mouseout"!==r&&(t.eventTarget=this._eventTarget=l,l._fireMouseEvent(t)),!i){var p=l&&l.pointerEnabled&&l.useHandCursor?"pointer":"";e.style.cursor=p}_i.android&&"touchmove"===r&&t.preventDefault()},updateDomViewport:function(){var t=this.canvas,e=null;return t.parentNode&&(e=this.domViewport=Object(i.getElementRect)(t)),e},getMeshResultAtPoint:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.camera,i=this._ray;i||(i=this._ray=new Dr.a),i.fromCamera(r,t,e,this.width,this.height);var a=this.raycast(i,!0,n);if(a)return a[0];this._stageResultAtPoint||(this._stageResultAtPoint={mesh:this,point:new c.a});var s=this._stageResultAtPoint.point;return s.copy(r.unprojectVector(s.set(t,e,0),this.width,this.height)),this._stageResultAtPoint},releaseGLResource:function(){return this.renderer.releaseGLResource(),this},destroy:function(){return pi.superclass.destroy.call(this,this.renderer),this.releaseGLResource(),this.traverse((function(t){t.off(),t.parent=null})),this.children.length=0,this.renderer.off(),this}}),gi=pi;function Ei(){return+new Date}var vi=a.a.create({constructor:function(t,e,n,r){var i=this;for(var a in i.target=t,i._startTime=0,i._seekTime=0,i._pausedTime=0,i._pausedStartTime=0,i._reverseFlag=1,i._repeatCount=0,3===arguments.length&&(r=n,n=e,e=null),r)i[a]=r[a];i._fromProps=e,i._toProps=n,!r.duration&&r.time&&(i.duration=r.time||0,i.time=0)},target:null,duration:1e3,delay:0,paused:!1,loop:!1,reverse:!1,repeat:0,repeatDelay:0,ease:null,time:0,isStart:!1,isComplete:!1,onStart:null,onUpdate:null,onComplete:null,setProps:function(t,e){var n=this.target,r=t||e,i=this._fromProps={},a=this._toProps={};for(var s in t=t||n,e=e||n,r)a[s]=e[s]||0,n[s]=i[s]=t[s]||0;return this},start:function(){var t=this;return t._startTime=Ei()+t.delay,t._seekTime=0,t._pausedTime=0,t._reverseFlag=1,t._repeatCount=0,t.paused=!1,t.isStart=!1,t.isComplete=!1,vi.add(t),t},stop:function(){return vi.remove(this),this},pause:function(){return this.paused=!0,this._pausedStartTime=Ei(),this},resume:function(){var t=this;return t.paused=!1,t._pausedStartTime&&(t._pausedTime+=Ei()-t._pausedStartTime),t._pausedStartTime=0,t},seek:function(t,e){var n=this,r=Ei();return n._startTime=r,n._seekTime=t,n._pausedTime=0,void 0!==e&&(n.paused=e),n._update(r,!0),vi.add(n),n},link:function(t){var e,n,r=t.delay,i=this._startTime;return"string"==typeof r&&(e=0===r.indexOf("+"),n=0===r.indexOf("-"),r=e||n?Number(r.substr(1))*(e?1:-1):Number(r)),t.delay=r,t._startTime=e||n?i+this.duration+r:i+r,this._next=t,vi.remove(t),t},_render:function(t){var e=this.target,n=this._fromProps;for(var r in n)e[r]=n[r]+(this._toProps[r]-n[r])*t},_update:function(t,e){var n=this;if(n.paused&&!e)return!1;if(n.isComplete)return!0;var r=t-n._startTime-n._pausedTime+n._seekTime;if(r<0)return!1;var i,a=r/n.duration;a<=0?a=0:a>=1&&(a=1);var s=n.ease?n.ease(a):a;n.reverse&&n.isStart&&(n._reverseFlag<0&&(a=1-a,s=1-s),a<1e-7&&(n.repeat>0&&n._repeatCount++>=n.repeat||0===n.repeat&&!n.loop?n.isComplete=!0:(n._startTime=Ei(),n._pausedTime=0,n._reverseFlag*=-1))),n.isStart||(n.setProps(n._fromProps,n._toProps),n.isStart=!0,n.onStart&&n.onStart.call(n,n)),n.time=r,n._render(s),(i=n.onUpdate)&&i.call(n,s,n),a>=1&&(n.reverse?(n._startTime=Ei(),n._pausedTime=0,n._reverseFlag*=-1):n.loop||n.repeat>0&&n._repeatCount++<n.repeat?(n._startTime=Ei()+n.repeatDelay,n._pausedTime=0):n.isComplete=!0);var o=n._next;if(o&&o.time<=0){var u=o._startTime;u>0&&u<=t?(o._render(a),o.time=r,vi.add(o)):n.isComplete&&(u<0||u>t)&&o.start()}return!!n.isComplete&&((i=n.onComplete)&&i.call(n,n),!0)},Statics:{_tweens:[],tick:function(){var t,e,n=vi._tweens,r=n.length;for(e=0;e<r;e++)(t=n[e])&&t._update(Ei())&&(n.splice(e,1),e--);return vi},add:function(t){var e=vi._tweens;return-1===e.indexOf(t)&&e.push(t),vi},remove:function(t){var e,n;if(t instanceof Array){for(e=0,n=t.length;e<n;e++)vi.remove(t[e]);return vi}var r=vi._tweens;if(t instanceof vi)(e=r.indexOf(t))>-1&&r.splice(e,1);else for(e=0;e<r.length;e++)r[e].target===t&&(r.splice(e,1),e--);return vi},removeAll:function(){return vi._tweens.length=0,vi},fromTo:function(t,e,n,r){r=r||{};var i,a,s=t instanceof Array;t=s?t:[t];var o=r.stagger,u=[];for(a=0;a<t.length;a++)i=new vi(t[a],e,n,r),o&&(i.delay=(r.delay||0)+(a*o||0)),i.start(),u.push(i);return s?u:i},to:function(t,e,n){return vi.fromTo(t,null,e,n)},from:function(t,e,n){return vi.fromTo(t,e,null,n)}}});function Ti(t,e,n,r,i){return t=t||{},e&&(t.EaseIn=e),n&&(t.EaseOut=n),r&&(t.EaseInOut=r),i&&(t.EaseNone=i),t}var Ai=Ti(null,null,null,null,(function(t){return t})),Mi=Ti(null,(function(t){return t*t}),(function(t){return-t*(t-2)}),(function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)})),Ii=Ti(null,(function(t){return t*t*t}),(function(t){return--t*t*t+1}),(function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)})),Ri=Ti(null,(function(t){return t*t*t*t}),(function(t){return-(--t*t*t*t-1)}),(function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)})),Oi=Ti(null,(function(t){return t*t*t*t*t}),(function(t){return(t-=1)*t*t*t*t+1}),(function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)})),Li=Math,Si=Li.PI,yi=.5*Si,Ni=Li.sin,xi=Li.cos,Ci=Li.pow,bi=Li.sqrt,Pi=Ti(null,(function(t){return 1-xi(t*yi)}),(function(t){return Ni(t*yi)}),(function(t){return-.5*(xi(Si*t)-1)})),wi=Ti(null,(function(t){return 0===t?0:Ci(2,10*(t-1))}),(function(t){return 1===t?1:1-Ci(2,-10*t)}),(function(t){return 0===t||1===t?t:(t*=2)<1?.5*Ci(2,10*(t-1)):.5*(2-Ci(2,-10*(t-1)))})),Hi=Ti(null,(function(t){return-(bi(1-t*t)-1)}),(function(t){return bi(1- --t*t)}),(function(t){return(t/=.5)<1?-.5*(bi(1-t*t)-1):.5*(bi(1-(t-=2)*t)+1)})),Di=Ti({a:1,p:.4,s:.1,config:function(t,e){Di.a=t,Di.p=e,Di.s=e/(2*Si)*Math.asin(1/t)||0}},(function(t){return-Di.a*Ci(2,10*(t-=1))*Ni((t-Di.s)*(2*Si)/Di.p)}),(function(t){return Di.a*Ci(2,-10*t)*Ni((t-Di.s)*(2*Si)/Di.p)+1}),(function(t){return(t*=2)<1?Di.a*Ci(2,10*(t-=1))*Ni((t-Di.s)*(2*Si)/Di.p)*-.5:Di.a*Ci(2,-10*(t-=1))*Ni((t-Di.s)*(2*Si)/Di.p)*.5+1})),Fi=Ti({o:1.70158,s:2.59491,config:function(t){Fi.o=t,Fi.s=1.525*t}},(function(t){return t*t*((Fi.o+1)*t-Fi.o)}),(function(t){return(t-=1)*t*((Fi.o+1)*t+Fi.o)+1}),(function(t){return(t*=2)<1?t*t*((Fi.s+1)*t-Fi.s)*.5:.5*((t-=2)*t*((Fi.s+1)*t+Fi.s)+2)})),Ui=Ti(null,(function(t){return 1-Ui.EaseOut(1-t)}),(function(t){return(t/=1)<.36364?7.5625*t*t:t<.72727?7.5625*(t-=.54545)*t+.75:t<.90909?7.5625*(t-=.81818)*t+.9375:7.5625*(t-=.95455)*t+.984375}),(function(t){return t<.5?.5*Ui.EaseIn(2*t):.5*Ui.EaseOut(2*t-1)+.5}));vi.Ease={Linear:Ai,Quad:Mi,Cubic:Ii,Quart:Ri,Quint:Oi,Sine:Pi,Expo:wi,Circ:Hi,Elastic:Di,Back:Fi,Bounce:Ui};var Gi=vi,Bi=a.a.create({Extends:K,isBoxGeometry:!0,className:"BoxGeometry",width:1,height:1,depth:1,widthSegments:1,heightSegments:1,depthSegments:1,constructor:function(t){Bi.superclass.constructor.call(this,t),this.isSegments()?this.buildWithSegments():this.build()},buildWithSegments:function(){var t=this.width,e=this.height,n=this.depth,r=this.widthSegments,i=this.heightSegments,a=this.depthSegments,s=i*a*6,o=r*a*6,u=r*i*6,c=2*((i+1)*(a+1)+(r+1)*(a+1)+(r+1)*(i+1)),f=new Float32Array(3*c),h=new Float32Array(3*c),l=new Float32Array(2*c),d=new Uint16Array(2*(s+o+u));this.vertices=new b(f,3),this.normals=new b(h,3),this.uvs=new b(l,2),this.indices=new b(d,1);var m=[0,0];this.buildPlane(m,2,1,0,-1,1,n,e,t/2,a,i),this.buildPlane(m,2,1,0,1,1,n,e,-t/2,a,i),this.buildPlane(m,0,2,1,1,-1,t,n,e/2,r,a),this.buildPlane(m,0,2,1,1,1,t,n,-e/2,r,a),this.buildPlane(m,0,1,2,1,1,t,e,n/2,r,i),this.buildPlane(m,0,1,2,-1,1,t,e,-n/2,r,i)},buildPlane:function(t,e,n,r,i,a,s,o,u,c,f){for(var h=s/c,l=o/f,d=s/2,m=o/2,_=t[0],p=t[1],g=this.vertices.data,E=this.normals.data,v=this.uvs.data,T=this.indices.data,A=0;A<=f;A++)for(var M=(A*l-m)*a,I=0;I<=c;I++){if(g[3*_+e]=(I*h-d)*i,g[3*_+n]=M,g[3*_+r]=u,E[3*_+e]=0,E[3*_+n]=0,E[3*_+r]=u<0?-1:1,v[2*_]=I/c,v[2*_+1]=1-A/f,I<c&&A<f){var R=t[0]+(A+1)*(c+1)+I;T[p++]=R,T[p++]=_,T[p++]=R+1,T[p++]=R+1,T[p++]=_,T[p++]=_+1}_++}t[0]=_,t[1]=p},build:function(){var t=new Float32Array(72),e=new Uint16Array(36);this.vertices=new b(t,3),this.indices=new b(e,1);var n=this.width/2,r=this.height/2,i=this.depth/2,a=[-n,-r,-i],s=[n,-r,-i],o=[n,r,-i],u=[-n,r,-i],c=[-n,-r,i],f=[n,-r,i],h=[n,r,i],l=[-n,r,i];this.addRect(f,s,o,h),this.addRect(a,c,l,u),this.addRect(l,h,o,u),this.addRect(a,s,f,c),this.addRect(c,f,h,l),this.addRect(s,a,u,o)},isSegments:function(){return this.widthSegments>1||this.heightSegments>1||this.depthSegments>1},setFrontUV:function(t){this.isSegments()?m.a.warn("segmented BoxGeometry dont support setFrontUV!"):this.setVertexUV(32,t)},setRightUV:function(t){this.isSegments()?m.a.warn("segmented BoxGeometry dont support setRightUV!"):this.setVertexUV(0,t)},setBackUV:function(t){this.isSegments()?m.a.warn("segmented BoxGeometry dont support setBackUV!"):this.setVertexUV(40,t)},setLeftUV:function(t){this.isSegments()?m.a.warn("segmented BoxGeometry dont support setLeftUV!"):this.setVertexUV(8,t)},setTopUV:function(t){this.isSegments()?m.a.warn("segmented BoxGeometry dont support setTopUV!"):this.setVertexUV(16,t)},setBottomUV:function(t){this.isSegments()?m.a.warn("segmented BoxGeometry dont support setBottomUV!"):this.setVertexUV(24,t)},setAllRectUV:function(t){if(this.isSegments())return m.a.warn("segmented BoxGeometry dont support setAllRectUV!"),null;for(var e=0;e<6;e++)this.setVertexUV(8*e,t);return this},_raycast:function(t,e){return Bi.superclass._raycast.call(this,t,e)}}),Vi=Bi,Xi=P.a.FRONT,ji=P.a.BACK,ki=[0,0,1],Wi=a.a.create({Extends:K,isPlaneGeometry:!0,className:"PlaneGeometry",width:1,height:1,widthSegments:1,heightSegments:1,constructor:function(t){Wi.superclass.constructor.call(this,t),this.build()},build:function(){for(var t=this.widthSegments,e=this.heightSegments,n=(t+1)*(e+1),r=this.width/t,i=this.height/e,a=new Float32Array(3*n),s=new Float32Array(3*n),o=new Float32Array(2*n),u=new Uint16Array(t*e*6),c=0,f=0;f<=e;f++)for(var h=0;h<=t;h++){var l=f*(t+1)+h;if(a[3*l]=h*r-this.width/2,a[3*l+1]=this.height/2-f*i,s[3*l]=0,s[3*l+1]=0,s[3*l+2]=1,o[2*l]=h/t,o[2*l+1]=1-f/e,f<e&&h<t){var d=(f+1)*(t+1)+h;u[c++]=l,u[c++]=d,u[c++]=d+1,u[c++]=l,u[c++]=d+1,u[c++]=l+1}}this.vertices=new b(a,3),this.indices=new b(u,1),this.normals=new b(s,3),this.uvs=new b(o,2)},_raycast:function(t,e){var n=t.origin.z,r=t.direction.z;if(e===Xi&&(r>0||n<0))return null;if(e===ji&&(r<0||n>0))return null;var i=t.intersectsPlane(ki,0);if(i){var a=i.x,s=i.y,o=.5*this.width,u=.5*this.height;if(a>=-o&&a<=o&&s>=-u&&s<=u)return[i]}return null}}),Yi=Wi,zi=a.a.create({Extends:K,isSphereGeometry:!0,className:"SphereGeometry",radius:1,heightSegments:16,widthSegments:32,constructor:function(t){zi.superclass.constructor.call(this,t),this.build()},build:function(){for(var t=this.radius,e=this.heightSegments,n=this.widthSegments,r=(n+1)*(e+1),i=n*e,a=new Float32Array(3*r),s=new Float32Array(4*r),o=new Float32Array(2*r),u=new Uint16Array(6*i),c=0,f=0,h=0,l=0,d=0,m=2*Math.PI,_=Math.PI,p=0;p<=e;p++)for(var g=p/e,E=_*g,v=Math.cos(E)*t,T=Math.sin(E)*t,A=0;A<=n;A++){var M=A/n,I=m*M,R=Math.cos(I),O=Math.sin(I),L=R*T,S=O*T,y=O,N=-R;if(s[h++]=y,s[h++]=0,s[h++]=N,s[h++]=1,a[f++]=L,a[f++]=v,a[f++]=S,o[l++]=M,o[l++]=g,p>0&&A>0){var x=d,C=x-1,P=C-n-1,w=x-n-1;u[c++]=P,u[c++]=w,u[c++]=x,u[c++]=P,u[c++]=x,u[c++]=C}d++}this.vertices=new b(a,3),this.indices=new b(u,1),this.uvs=new b(o,2),this.tangents=new b(s,4),this.normals=new b(new Float32Array(a),3)},_raycast:function(t,e){return zi.superclass._raycast.call(this,t,e)}}),qi=zi,Ki=a.a.create({className:"UniformBuffer",isUniformBuffer:!0,isDirty:!1,data:{get:function(){return this._data},set:function(t){this._data=t,this.isDirty=!0}},_data:null,_buffer:null,constructor:function(t){this.data=t},getBuffer:function(t){return this._buffer||(this._buffer=new jt(t,t.UNIFORM_BUFFER,null,t.DYNAMIC_DRAW)),this.isDirty&&(this._buffer.bufferData(this.data),this.isDirty=!1),this._buffer},destroy:function(){this._buffer&&(this._buffer.destroy(),this._buffer=null),this.isDirty=!0}}),Zi=[Rt,Ft,jt,Qt,_e,we],Qi=function(){var t="";return Zi.forEach((function(e){t+="".concat(e.prototype.className,":").concat(Object.keys(e.cache._cache).length," ")})),m.a.log(t),t},Ji=a.a.create({Mixes:s.a,isLoadCache:!0,className:"LoadCache",Statics:{PENDING:1,LOADED:2,FAILED:3},enabled:!0,constructor:function(){this._files={}},update:function(t,e,n){if(this.enabled){var r={key:t,state:e,data:n};this._files[t]=r,this.fire("update",r),this.fire("update:".concat(r.key),r)}},get:function(t){return this.enabled?this._files[t]:null},getLoaded:function(t){var e=this.get(t);return e&&e.state===Ji.LOADED?e.data:null},remove:function(t){delete this._files[t]},clear:function(){this._files={}},wait:function(t){var e=this;return t?t.state===Ji.LOADED?Promise.resolve(t.data):t.state===Ji.FAILED?Promise.reject():new Promise((function(n,r){e.on("update:".concat(t.key),(function(t){var e=t.detail;e.state===Ji.LOADED?n(e.data):e.state===Ji.FAILED&&r(e.data)}),!0)})):Promise.reject()}}),$i=Ji,ta=new $i,ea=a.a.create({Mixes:s.a,isBasicLoader:!0,className:"BasicLoader",Statics:{_cache:ta,enalbeCache:function(){ta.enabled=!0},disableCache:function(){ta.enabled=!1},deleteCache:function(t){ta.remove(t)},clearCache:function(){ta.clear()},cache:{get:function(){return ta},set:function(){m.a.warn("BasicLoader.cache is readonly!")}},TYPE_IMAGE:"img",TYPE_JSON:"json",TYPE_BUFFER:"buffer",TYPE_TEXT:"text"},load:function(t){var e=t.src,n=t.type;if(!n){var r=Object(i.getExtension)(e);/^(?:png|jpe?g|gif|webp|bmp)$/i.test(r)&&(n="img"),n||(n=t.defaultType)}return n===ea.TYPE_IMAGE?this.loadImg(e,t.crossOrigin):this.loadRes(e,n)},isCrossOrigin:function(t){var e=window.location,n=document.createElement("a");return n.href=t,n.hostname!==e.hostname||n.port!==e.port||n.protocol!==e.protocol},isBase64:function(t){return/^data:(.+?);base64,/.test(t)},Uint8ArrayFrom:function(t,e){if(Uint8Array.from)return Uint8Array.from(t,e);for(var n=t.length,r=new Uint8Array(n),i=0;i<n;i++)r[i]=e(t[i]);return r},loadImg:function(t,e){var n=this,r=ta.get(t);return r?ta.wait(r):new Promise((function(r,i){var a=new Image;ta.update(t,$i.PENDING),a.onload=function(){a.onerror=null,a.onabort=null,a.onload=null,ta.update(t,$i.LOADED,a),r(a)},a.onerror=function(){a.onerror=null,a.onabort=null,a.onload=null;var e=new Error("Image load failed for ".concat(t.slice(0,100)));ta.update(t,$i.FAILED,e),i(e)},a.onabort=a.onerror,(e||n.isCrossOrigin(t))&&(n.isBase64(t)||(a.crossOrigin="anonymous")),a.src=t}))},loadRes:function(t,e){var n=this;if(this.isBase64(t)){var r=RegExp.$1,i=t.slice(13+r.length),a=atob(i);return e===ea.TYPE_JSON?a=JSON.parse(a):e===ea.TYPE_BUFFER&&(a=this.Uint8ArrayFrom(a,(function(t){return t.charCodeAt(0)})).buffer),Promise.resolve(a)}var s=ta.get(t);return s?ta.wait(s):(ta.update(t,$i.PENDING),this.fire("beforeload"),this.request({url:t,type:e}).then((function(e){return n.fire("loaded"),ta.update(t,$i.LOADED,e),e}),(function(e){throw n.fire("failed",e),ta.update(t,$i.FAILED),new Error("Resource load failed for ".concat(t,", ").concat(e))})))},request:function(t){var e=this;return new Promise((function(n,r){var a=new XMLHttpRequest;a.onload=function(){if(a.status<200||a.status>=300)r(new TypeError("Network request failed for ".concat(a.status)));else{var e="response"in a?a.response:a.responseText;if(t.type===ea.TYPE_JSON)try{e=JSON.parse(e)}catch(t){return void r(new TypeError("JSON.parse error"+t))}n(e)}},a.onprogress=function(n){e.fire("progress",{url:t.url,loaded:n.loaded,total:n.total})},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request timed out"))},a.open(t.method||"GET",t.url,!0),"include"===t.credentials&&(a.withCredentials=!0),t.type===ea.TYPE_BUFFER&&(a.responseType="arraybuffer"),Object(i.each)(t.headers,(function(t,e){a.setRequestHeader(e,t)})),a.send(t.body||null)}))}}),na=ea,ra=a.a.create({isLoader:!0,className:"Loader",maxConnections:2,Statics:{_loaderClassMap:{},_loaders:{},addLoader:function(t,e){ra._loaderClassMap[t]=e},getLoader:function(t){if(!ra._loaders[t]){var e=ra._loaderClassMap[t]?ra._loaderClassMap[t]:na;ra._loaders[t]=new e}return ra._loaders[t]}},preHandlerUrl:null,load:function(t){var e=this;if(t instanceof Array)return Promise.all(t.map((function(t){return e.load(t)})));var n=t.type||Object(i.getExtension)(t.src),r=ra.getLoader(n),a=t;return this.preHandlerUrl&&((a=Object.assign({},t)).src=this.preHandlerUrl(t.src)),r.load(a)}}),ia=ra,aa=a.a.create({Extends:na,isCubeTextureLoader:!0,className:"CubeTextureLoader",constructor:function(){aa.superclass.constructor.call(this)},load:function(t){var e,n=this;return e=t.images&&Array.isArray(t.images)?t.images:[t.right,t.left,t.top,t.bottom,t.front,t.back],Promise.all(e.map((function(e){return n.loadImg(e,t.crossOrigin)}))).then((function(e){var n=Object.assign({},t);return delete n.images,delete n.type,delete n.right,delete n.left,delete n.top,delete n.bottom,delete n.front,delete n.back,n.image=e,new Ve(n)})).catch((function(t){throw m.a.error("load CubeTexture failed",t.message,t.stack),t}))}});ia.addLoader("CubeTexture",aa);var sa=aa,oa=a.a.create({Extends:On,isPBRMaterial:!0,className:"PBRMaterial",lightType:"PBR",gammaCorrection:!0,usePhysicsLight:!0,baseColor:null,baseColorMap:null,metallic:1,metallicMap:null,roughness:1,roughnessMap:null,metallicRoughnessMap:null,occlusionMap:null,occlusionStrength:1,isOcclusionInMetallicRoughnessMap:!1,diffuseEnvMap:null,diffuseEnvSphereHarmonics3:null,diffuseEnvIntensity:1,brdfLUT:null,specularEnvIntensity:1,specularEnvMap:null,isSpecularEnvMapIncludeMipmaps:!1,emission:null,emissionFactor:null,isSpecularGlossiness:!1,specular:null,glossiness:1,specularGlossinessMap:null,clearcoatFactor:0,clearcoatMap:null,clearcoatRoughnessFactor:0,clearcoatRoughnessMap:null,clearcoatNormalMap:null,usedUniformVectors:11,constructor:function(t){this.baseColor=new E.a(1,1,1),this.specular=new E.a(1,1,1),this.emissionFactor=new E.a(0,0,0),oa.superclass.constructor.call(this,t),Object.assign(this.uniforms,{u_baseColor:"BASECOLOR",u_metallic:"METALLIC",u_roughness:"ROUGHNESS",u_specular:"SPECULAR",u_emissionFactor:"EMISSIONFACTOR",u_glossiness:"GLOSSINESS",u_brdfLUT:"BRDFLUT",u_diffuseEnvMap:"DIFFUSEENVMAP",u_diffuseEnvIntensity:"DIFFUSEENVINTENSITY",u_occlusionStrength:"OCCLUSIONSTRENGTH",u_specularEnvMap:"SPECULARENVMAP",u_specularEnvIntensity:"SPECULARENVINTENSITY",u_specularEnvMapMipCount:"SPECULARENVMAPMIPCOUNT",u_diffuseEnvSphereHarmonics3:"DIFFUSEENVSPHEREHARMONICS3",u_clearcoatFactor:"CLEARCOATFACTOR",u_clearcoatRoughnessFactor:"CLEARCOATROUGHNESSFACTOR"}),this.addTextureUniforms({u_baseColorMap:"BASECOLORMAP",u_metallicMap:"METALLICMAP",u_roughnessMap:"ROUGHNESSMAP",u_metallicRoughnessMap:"METALLICROUGHNESSMAP",u_occlusionMap:"OCCLUSIONMAP",u_specularGlossinessMap:"SPECULARGLOSSINESSMAP",u_lightMap:"LIGHTMAP",u_clearcoatMap:"CLEARCOATMAP",u_clearcoatRoughnessMap:"CLEARCOATROUGHNESSMAP",u_clearcoatNormalMap:"CLEARCOATNORMALMAP"})},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};oa.superclass.getRenderOption.call(this,t);var e=this._textureOption.reset(t);return e.add(this.baseColorMap,"BASE_COLOR_MAP"),e.add(this.metallicMap,"METALLIC_MAP"),e.add(this.roughnessMap,"ROUGHNESS_MAP"),e.add(this.metallicRoughnessMap,"METALLIC_ROUGHNESS_MAP"),e.add(this.diffuseEnvMap,"DIFFUSE_ENV_MAP"),e.add(this.occlusionMap,"OCCLUSION_MAP"),e.add(this.lightMap,"LIGHT_MAP"),this.brdfLUT&&(e.add(this.specularEnvMap,"SPECULAR_ENV_MAP"),lt.SHADER_TEXTURE_LOD&&this.specularEnvMap&&(t.USE_SHADER_TEXTURE_LOD=1)),this.isSpecularGlossiness&&(t.PBR_SPECULAR_GLOSSINESS=1,e.add(this.specularGlossinessMap,"SPECULAR_GLOSSINESS_MAP")),this.isOcclusionInMetallicRoughnessMap&&(t.IS_OCCLUSION_MAP_IN_METALLIC_ROUGHNESS_MAP=1),1!==this.occlusionStrength&&(t.OCCLUSION_STRENGTH=1),this.diffuseEnvSphereHarmonics3&&(t.HAS_NORMAL=1,t.DIFFUSE_ENV_SPHERE_HARMONICS3=1),(this.specularEnvMap||this.diffuseEnvSphereHarmonics3||this.specularEnvMap)&&(t.NEED_WORLD_NORMAL=1),this.specularEnvMap&&this.isSpecularEnvMapIncludeMipmaps&&(t.IS_SPECULAR_ENV_MAP_INCLUDE_MIPMAPS=1),this.clearcoatFactor>0&&(t.HAS_CLEARCOAT=1,t.HAS_NORMAL=1,this.clearcoatMap&&e.add(this.clearcoatMap,"CLEARCOAT_MAP"),this.clearcoatNormalMap&&e.add(this.clearcoatNormalMap,"CLEARCOAT_NORMAL_MAP"),this.clearcoatRoughnessMap&&e.add(this.clearcoatRoughnessMap,"CLEARCOAT_ROUGHNESS_MAP")),e.update(),t}}),ua=oa,ca=new Image;ca.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";var fa=a.a.create({Extends:_e,Mixes:s.a,isLazyTexture:!0,className:"LazyTexture",_src:"",crossOrigin:!1,autoLoad:!0,resType:"",src:{get:function(){return this._src},set:function(t){this._src!==t&&(this._src=t,this.autoLoad&&this.load())}},constructor:function(t){t&&("crossOrigin"in t&&(this.crossOrigin=t.crossOrigin),"autoLoad"in t&&(this.autoLoad=t.autoLoad)),fa.superclass.constructor.call(this,t),this.image=this.placeHolder||ca},load:function(t){var e=this;return fa.loader=fa.loader||new ia,fa.loader.load({src:this.src,crossOrigin:this.crossOrigin,type:this.resType,defaultType:"img"}).then((function(t){t.isTexture?(Object.assign(e,t),e.needUpdate=!0,e.needDestroy=!0,e.fire("load")):(e.image=t,e.needUpdate=!0,e.fire("load"))}),(function(n){if(e.fire("error"),t)throw new Error("LazyTexture Failed ".concat(n));m.a.warn("LazyTexture Failed ".concat(n))}))},_releaseImage:function(){this._src&&"string"!=typeof this._src&&(this._src=""),fa.superclass._releaseImage.call(this)}}),ha=fa,la=n(13);function da(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,s,o=[],u=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(o.push(r.value),o.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return ma(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ma(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ma(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var _a=new l.a,pa=new l.a,ga=new l.a,Ea=new l.a,va=new l.a,Ta=new l.a,Aa=new la.a,Ma=[];function Ia(t,e){return t-e}var Ra=a.a.create({Statics:{interpolation:{LINEAR:function(t,e,n){if(void 0===e)return t;if(t.slerp)return t.slerp(e,n);if(t.lerp)return t.lerp(e,n);if(Object(i.isArrayLike)(t)){Ma.length=0;for(var r=t.length-1;r>=0;r--)Ma[r]=t[r]+n*(e[r]-t[r]);return Ma}return t+n*(e-t)},STEP:function(t,e,n){return t},CUBICSPLINE:function(t,e,n,r){var a=t.length/3;if(void 0===e)return 1===a?t[1]:t.slice(a,-a);var s=t[1],o=t[2],u=e[1],c=e[0];return a>1&&(s=t.slice(a,-a),o=t.slice(-a),u=e.slice(a,-a),c=e.slice(0,a)),s.hermite?s.hermite(s,o.scale(r),u,c.scale(r),n):s.isQuaternion?(s.fromArray(this._cubicSpline(s.elements,o.elements,u.elements,c.elements,r,n),0,!0),s.normalize(!0)):(Object(i.isArrayLike)(s)||(s=[s],o=[o],u=[u],c=[c]),s=this._cubicSpline(s,o,u,c,r,n)),s},_cubicSpline:function(t,e,n,r,i,a){var s=a*a,o=s*a,u=2*o-3*s+1,c=o-2*s+a,f=-2*o+3*s,h=o-s;Ma.length=0;for(var l=t.length-1;l>=0;l--)Ma[l]=t[l]*u+c*e[l]*i+n[l]*f+h*r[l]*i;return Ma}},StateType:{TRANSLATE:"Translation",POSITION:"Translation",TRANSLATION:"Translation",SCALE:"Scale",ROTATE:"Rotation",ROTATION:"Rotation",QUATERNION:"Quaternion",WEIGHTS:"Weights"},getType:function(t){return t=String(t).toUpperCase(),Ra.StateType[t]||Ra._extraStateHandlers.type[t]},_extraStateHandlers:{type:{},handler:{}},registerStateHandler:function(t,e){Ra._extraStateHandlers.type[String(t).toUpperCase()]=t,Ra._extraStateHandlers.handler[t]=e}},isAnimationStates:!0,className:"AnimationStates",nodeName:"",type:"",interpolationType:"LINEAR",constructor:function(t){this.id=d.a.generateUUID(this.className),this.keyTime=[],this.states=[],Object.assign(this,t)},findIndexByTime:function(t){var e=Object(i.getIndexFromSortedArray)(this.keyTime,t,Ia);return e[0]<0&&(e[0]=0),e[1]>=this.keyTime.length&&(e[1]=this.keyTime.length-1),e},getStateByIndex:function(t){var e=this.states.length/this.keyTime.length;return 1===e?this.states[t]:this.states.slice(t*e,t*e+e)},getState:function(t){var e=da(this.findIndexByTime(t),2),n=e[0],r=e[1],a=this.keyTime[n],s=this.keyTime[r],o=this.getStateByIndex(n);if("STEP"===this.interpolationType)return o;if(n===r){var u=this.interpolation(o);return this.type===Ra.StateType.ROTATION&&(u=_a.fromEuler(Aa.fromArray(u))),u.elements||u}var c=this.getStateByIndex(r),f=s-a,h=(t-a)/f;this.type===Ra.StateType.ROTATION?Object(i.isArrayLike)(o[0])?(o[0]=_a.fromEuler(Aa.fromArray(o[0])),o[1]=pa.fromEuler(Aa.fromArray(o[1])),o[2]=ga.fromEuler(Aa.fromArray(o[2])),c[0]=Ea.fromEuler(Aa.fromArray(c[0])),c[1]=va.fromEuler(Aa.fromArray(c[1])),c[2]=Ta.fromEuler(Aa.fromArray(c[2]))):(o=_a.fromEuler(Aa.fromArray(o)),c=pa.fromEuler(Aa.fromArray(c))):this.type===Ra.StateType.QUATERNION&&(Object(i.isArrayLike)(o[0])?(o[0]=_a.fromArray(o[0]),o[1]=pa.fromArray(o[1]),o[2]=ga.fromArray(o[2]),c[0]=Ea.fromArray(c[0]),c[1]=va.fromArray(c[1]),c[2]=Ta.fromArray(c[2])):(o=_a.fromArray(o),c=pa.fromArray(c)));var l=this.interpolation(o,c,h,f);return l.elements||l},interpolation:function(t,e,n,r){return Ra.interpolation[this.interpolationType](t,e,n,r)},updateNodeTranslation:function(t,e){t.x=e[0],t.y=e[1],t.z=e[2]},updateNodeScale:function(t,e){t.scaleX=e[0],t.scaleY=e[1],t.scaleZ=e[2]},updateNodeQuaternion:function(t,e){t.quaternion.fromArray(e)},updateNodeWeights:function(t,e){var n=this._originalWeightIndices=this._originalWeightIndices||[],r=e.length;e=e.slice();for(var i=0;i<r;i++)n[i]=i;for(var a=0;a<r;a++)for(var s=a+1;s<r;s++)if(e[s]>e[a]){var o=e[a];e[a]=e[s],e[s]=o,o=n[a],n[a]=n[s],n[s]=o}t.traverse((function(t){t.isMesh&&t.geometry&&t.geometry.isMorphGeometry&&t.geometry.update(e,n)}))},updateNodeState:function(t,e){if(e){var n=this.type;n===Ra.StateType.ROTATION&&(n=Ra.StateType.QUATERNION);var r=this.getState(t);if(r){var i="updateNode"+n;this[i]?this[i](e,r):Ra._extraStateHandlers.handler[n]?Ra._extraStateHandlers.handler[n].call(this,e,r):m.a.warnOnce(i,"updateNodeState failed unknow type(%s)",n)}}},clone:function(){return new this.constructor({keyTime:this.keyTime,states:this.states,type:this.type,nodeName:this.nodeName})}}),Oa=Ra,La=a.a.create({Statics:{_anims:[],tick:function(t){this._anims.forEach((function(e){return e.tick(t)}))}},Mixes:s.a,isAnimation:!0,className:"Animation",paused:!1,currentLoopCount:0,loop:1/0,currentTime:0,timeScale:1,startTime:0,endTime:0,clipStartTime:0,clipEndTime:0,nodeNameMap:null,_rootNode:null,rootNode:{get:function(){return this._rootNode},set:function(t){this._rootNode=t,this._initNodeNameMap()}},_animStatesList:null,animStatesList:{get:function(){return this._animStatesList},set:function(t){this._animStatesList=t,this._initClipTime()}},validAnimationIds:null,constructor:function(t){this.id=d.a.generateUUID(this.className),this.clips={},this._animStatesList=[],Object.assign(this,t)},addClip:function(t,e,n,r){this.clips[t]={start:e,end:n,animStatesList:r}},removeClip:function(t){this.clips[t]=null},getAnimStatesListTimeInfo:function(t){var e=0,n=1/0;return t.forEach((function(t){e=Math.max(t.keyTime[t.keyTime.length-1],e),n=Math.min(t.keyTime[0],n)})),{startTime:n,endTime:e}},_initClipTime:function(){var t=this.getAnimStatesListTimeInfo(this.animStatesList);this.clipStartTime=0,this.clipEndTime=t.endTime},_initNodeNameMap:function(){if(this._rootNode){var t=this.nodeNameMap={};this._rootNode.traverse((function(e){t[e.animationId]=e;var n=e.name;void 0===n||t[n]||(t[n]=e)}),!1)}},tick:function(t){this.paused||(this.currentTime+=t/1e3*this.timeScale,this.currentTime>=this.endTime?(this.currentLoopCount++,this.currentTime=this.endTime,this.updateAnimStates(),this.fire("loopEnd"),!this.loop||this.currentLoopCount>=this.loop?(this.stop(),this.fire("end")):this.currentTime=this.startTime):this.updateAnimStates())},updateAnimStates:function(){var t=this;return this.animStatesList.forEach((function(e){e.updateNodeState(t.currentTime,t.nodeNameMap[e.nodeName])})),this},play:function(t,e){var n;if("string"==typeof t){var r=this.clips[t];r?(n=r.start,e=r.end,r.animStatesList&&(this.animStatesList=r.animStatesList,this._initClipTime())):m.a.warn("no this animation clip name:"+t)}else n=t;void 0===n&&(n=this.clipStartTime),void 0===e&&(e=this.clipEndTime),this.endTime=Math.min(e,this.clipEndTime),this.startTime=Math.min(n,this.endTime),this.currentTime=this.startTime,this.currentLoopCount=0,this.stop(),this.paused=!1,La._anims.push(this)},stop:function(){this.paused=!0;var t=La._anims,e=t.indexOf(this);-1!==e&&t.splice(e,1)},pause:function(){this.paused=!0},resume:function(){this.paused=!1},clone:function(t){var e=new this.constructor({rootNode:t,animStatesList:this.animStatesList,timeScale:this.timeScale,loop:this.loop,paused:this.paused,currentTime:this.currentTime,startTime:this.startTime,endTime:this.endTime,clips:this.clips});return this.paused||e.play(),e}}),Sa=La;function ya(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,s,o=[],u=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(o.push(r.value),o.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return Na(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Na(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Na(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var xa=P.a.BLEND,Ca=P.a.DEPTH_TEST,ba=P.a.CULL_FACE,Pa=P.a.FRONT,wa=P.a.BACK,Ha=P.a.FRONT_AND_BACK,Da={5120:[1,Int8Array],5121:[1,Uint8Array],5122:[2,Int16Array],5123:[2,Uint16Array],5125:[4,Uint32Array],5126:[4,Float32Array]},Fa={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ua={POSITION:{name:"vertices",decodeMatName:"positionDecodeMat"},TEXCOORD_0:{name:"uvs",decodeMatName:"uvDecodeMat"},TEXCOORD_1:{name:"uvs1",decodeMatName:"uv1DecodeMat"},NORMAL:{name:"normals",decodeMatName:"normalDecodeMat"},JOINT:{name:"skinIndices"},JOINTS_0:{name:"skinIndices"},WEIGHT:{name:"skinWeights"},WEIGHTS_0:{name:"skinWeights"},TANGENT:{name:"tangents"},COLOR_0:{name:"colors"}},Ga=a.a.create({isGLTFParser:!0,className:"GLTFParser",Statics:{MAGIC:"glTF",extensionHandlers:r,registerExtensionHandler:function(t,e){this.extensionHandlers[t]=e},unregisterExtensionHandler:function(t){this.extensionHandlers[t]&&delete this.extensionHandlers[t]}},isMultiAnim:!0,isProgressive:!1,isUnQuantizeInShader:!0,isLoadAllTextures:!1,preHandlerImageURI:null,preHandlerBufferURI:null,customMaterialCreator:null,ignoreTextureError:!1,forceCreateNewBuffer:!1,src:"",constructor:function(t,e){Object.assign(this,e),this.content=t},parse:function(t){var e=this;if(this.content instanceof ArrayBuffer){var n=this.content;if(i.convertUint8ArrayToString(new Uint8Array(n,0,4))===Ga.MAGIC)this.parseBinary(n);else{var r=i.convertUint8ArrayToString(new Uint8Array(n),!0);this.json=JSON.parse(r)}}else this.json=JSON.parse(this.content);return this.glTFVersion=parseFloat(this.json.asset.version),this.glTFVersion>=2&&(this.isGLTF2=!0),this.parseExtensionUsed(),this.loadResources(t).then((function(){return e.parseExtensions(e.json.extensions,null,{isGlobal:!0,methodName:"parseOnLoad"}),Promise.resolve()})).then((function(){return e.parseGeometries()})).then((function(){return e.parseScene()}))},parseExtensionUsed:function(){var t=this;this.extensionsUsed={},i.each(this.json.extensionsUsed,(function(e){t.extensionsUsed[e]=!0})),this.extensionsUsed.WEB3D_quantized_attributes||(this.isUnQuantizeInShader=!1)},getExtensionHandler:function(t){return this.extensionHandlers&&this.extensionHandlers[t]||Ga.extensionHandlers[t]},parseExtension:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=t[e],a=this.getExtensionHandler(e);return a&&a.parse?a.parse(i,this,n,r):n},parseExtensions:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i.each(t,(function(t,i){if(!r.ignoreExtensions||!r.ignoreExtensions[i]){var a=n.getExtensionHandler(i),s=r.methodName||"parse";a&&a[s]&&(e=a[s](t,n,e,r))}})),e},isUseExtension:function(t,e){return!!(t&&t.extensions&&t.extensions[e])},parseBinary:function(t){this.isBinary=!0;var e,n=new DataView(t),r=n.getUint32(4,!0),a=n.getUint32(8,!0),s=12;if(r<2){var o=n.getUint32(s,!0);e=new Uint8Array(t,20,o),e=i.convertUint8ArrayToString(e,!0),this.json=JSON.parse(e),this.binaryBody=t.slice(20+o)}else{if(2!==r)throw new Error("Dont support glTF version ".concat(r));for(;s<a;){var u=n.getUint32(s,!0),c=n.getUint32(s+4,!0);1313821514===c?(e=new Uint8Array(t,s+8,u),e=i.convertUint8ArrayToString(e,!0),this.json=JSON.parse(e)):5130562===c&&(this.binaryBody=t.slice(s+8,s+8+u)),s+=8+u}}},loadResources:function(t){var e=this,n=[];for(var r in this.extensionsUsed){var i=this.getExtensionHandler(r);i&&i.init&&n.push(i.init(t,this))}return this.isBinary?n.push(this.loadBuffers(t).then((function(){return e.loadTextures(t)}))):(n.push(this.loadBuffers(t)),n.push(this.loadTextures(t))),Promise.all(n)},getBufferUri:function(t){var e=i.getRelativePath(this.src,this.json.buffers[t].uri);return this.preHandlerBufferURI&&(e=this.preHandlerBufferURI(e,this.json.buffers[t])),e},loadBuffers:function(t){var e=this;return this.buffers={},this.isBinary?(this.isGLTF2?this.buffers[0]=this.binaryBody:this.buffers.binary_glTF=this.binaryBody,this.parseBufferViews(),Promise.resolve()):Promise.all(Object.keys(this.json.buffers||[]).map((function(n){var r=e.getBufferUri(n);return t.loadRes(r,na.TYPE_BUFFER).then((function(t){e.buffers[n]=t}))}))).then((function(){e.parseBufferViews()}))},getImageUri:function(t){var e=this.json.images[t],n=e.uri;if(this.isUseExtension(e,"KHR_binary_glTF")){var r=e.extensions.KHR_binary_glTF,a=this.bufferViews[r.bufferView],s=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);n=i.getBlobUrl(r.mimeType,s)}else if(n)n=i.getRelativePath(this.src,n);else if("bufferView"in e){var o=this.bufferViews[e.bufferView],u=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);n="image/ktx"===e.mimeType?u:i.getBlobUrl(e.mimeType,u)}return this.preHandlerImageURI&&(n=this.preHandlerImageURI(n,e)),n},getImageType:function(t){var e=this.json.images[t],n="";return e&&/^image\/(.*)$/.test(e.mimeType)&&(n=RegExp.$1),["ktx"].indexOf(n)<0&&(n=""),n},getUsedTextureNameMap:function(){var t=this,e={};return i.each(this.json.materials,(function(n){var r=n,a=!1;if(t.isUseExtension(n,"KHR_materials_common")&&(a=!0,r=n.extensions.KHR_materials_common.values),t.isGLTF2&&!a){if(r.normalTexture&&(e[r.normalTexture.index]=!0),r.occlusionTexture&&(e[r.occlusionTexture.index]=!0),r.emissiveTexture&&(e[r.emissiveTexture.index]=!0),r.transparencyTexture&&(e[r.transparencyTexture.index]=!0),r.extensions&&i.each(r.extensions,(function(n,r){var i=t.getExtensionHandler(r);i&&i.getUsedTextureNameMap&&i.getUsedTextureNameMap(n,e,t)})),!t.isUseExtension(r,"KHR_materials_pbrSpecularGlossiness")&&r.pbrMetallicRoughness){var s=r.pbrMetallicRoughness;s.baseColorTexture&&(e[s.baseColorTexture.index]=!0),s.metallicRoughnessTexture&&(e[s.metallicRoughnessTexture.index]=!0)}}else a||(r=n.values),["diffuse","specular","emission","ambient","transparency","normalMap"].forEach((function(n){var a=r[n];a instanceof Object&&"index"in a&&(a=a.index),i.isStrOrNumber(a)&&t.json.textures[a]&&(e[a]=!0)}))})),e},loadTextures:function(){var t=this;if(this.textures={},!this.json.textures)return Promise.resolve();var e=Object.keys(this.json.textures);if(!this.isLoadAllTextures){var n=this.getUsedTextureNameMap();e=e.filter((function(t){return n[t]}))}return Promise.all(e.map((function(e){var n=t.json.textures[e],r=t.getImageUri(n.source),a=new ha(n);if(a.uv=void 0,a.autoLoad=t.isProgressive,a.crossOrigin=!0,a.resType=t.getImageType(n.source),a.src=r,a.name=n.name||e,a.colorSpaceConversion=!1,i.isBlobUrl(r)){var s=function t(){i.revokeBlobUrl(r),a.off("load",t),a.off("error",t)};a.on("load",s,!0),a.on("error",s,!0)}return t.json.samplers&&Object.assign(a,t.json.samplers[n.sampler]),n.extensions&&(a=t.parseExtensions(n.extensions,a)),t.textures[e]=a,t.isProgressive?Promise.resolve():a.load(!t.ignoreTextureError)})))},parseBufferViews:function(){var t=this;this.bufferViews={},i.each(this.json.bufferViews,(function(e,n){var r=t.buffers[e.buffer],i=e.byteOffset||0,a=e.byteLength;t.bufferViews[n]={id:d.a.generateUUID("bufferView"),byteOffset:i,byteLength:a,buffer:r,byteStride:e.byteStride}})),this.isBinary||delete this.buffers},getTexture:function(t){var e=this.textures[t.index];if(!e)return null;var n=t.texCoord||0,r=t.index+"_"+n;return this.textures[r]?e=this.textures[r]:"number"==typeof e.uv&&e.uv!==n&&(e=e.clone(),this.textures[r]=e),e.uv=n,e.__gltfTextureInfo=t,e},getColorOrTexture:function(t){return Array.isArray(t)?new E.a(t[0],t[1],t[2]):(t instanceof Object&&"index"in t&&(t=t.index),this.textures[t])},parseMaterialCommonProps:function(t,e){switch(e.alphaMode){case"BLEND":t.transparent=!0;break;case"MASK":t.alphaCutoff="alphaCutoff"in e?e.alphaCutoff:.5;break;case"OPAQUE":default:t.ignoreTranparent=!0}e.doubleSided?t.side=Ha:t.side=Pa,e.transparencyTexture&&(t.transparency=this.getTexture(e.transparencyTexture))},createPBRMaterial:function(t){var e=new ua,n=t,r=!this.isUseExtension(n,"KHR_materials_unlit");if(r){var i=n.normalTexture;i&&(e.normalMap=this.getTexture(i),void 0!==i.scale?e.normalMapScale=i.scale:e.normalMapScale=1);var a=n.occlusionTexture;a&&(e.occlusionMap=this.getTexture(a),void 0!==a.strength?e.occlusionStrength=a.strength:e.occlusionStrength=1);var s=n.emissiveTexture;s&&(e.emission=this.getTexture(s));var o=n.emissiveFactor;o&&(e.emissionFactor.fromArray(o),e.emissionFactor.a=1)}else e.lightType="NONE";if(this.isUseExtension(n,"KHR_materials_pbrSpecularGlossiness"))this.parseExtension(n.extensions,"KHR_materials_pbrSpecularGlossiness",e);else if(n.pbrMetallicRoughness){var u=n.pbrMetallicRoughness;u.baseColorFactor&&e.baseColor.fromArray(u.baseColorFactor),u.baseColorTexture&&(e.baseColorMap=this.getTexture(u.baseColorTexture)),r&&(u.metallicRoughnessTexture&&(e.metallicRoughnessMap=this.getTexture(u.metallicRoughnessTexture),e.occlusionMap===e.metallicRoughnessMap&&(e.occlusionMap=null,e.isOcclusionInMetallicRoughnessMap=!0)),"roughnessFactor"in u&&(e.roughness=u.roughnessFactor),"metallicFactor"in u&&(e.metallic=u.metallicFactor))}return e.baseColorMap&&this._parseTextureTransform(e,e.baseColorMap),e},_parseTextureTransform:function(t,e){var n=e.__gltfTextureInfo;if(this.isUseExtension(n,"KHR_texture_transform")){var r=n.extensions.KHR_texture_transform;if(void 0!==r.texCoord&&(e.uv=r.texCoord),r.offset||r.rotation||r.scale){var i=r.offset||[0,0],a=r.rotation||0,s=r.scale||[1,1],o=(new y.a).fromRotationTranslationScale(a,i[0],i[1],s[0],s[1]);0===e.uv?t.uvMatrix=o:1===e.uv&&(t.uvMatrix1=o)}}},createKMCMaterial:function(t,e){var n,r=new Sn;return e?(n=e.values,r.lightType=e.technique):n=t.values,r.diffuse=this.getColorOrTexture(n.diffuse)||r.diffuse,r.specular=this.getColorOrTexture(n.specular)||r.specular,r.emission=this.getColorOrTexture(n.emission)||r.emission,r.ambient=this.getColorOrTexture(n.ambient)||r.ambient,n.normalMap&&(r.normalMap=this.getColorOrTexture(n.normalMap)),"number"==typeof n.transparency?(r.transparency=n.transparency,r.transparency<1&&(r.transparent=!0)):"string"==typeof n.transparency&&(r.transparency=this.getColorOrTexture(n.transparency),r.transparent=!0),!0===n.transparent&&(r.transparent=!0),"shininess"in n&&(r.shininess=n.shininess),this._parseTextureTransform(r,r.diffuse),r},parseMaterials:function(){var t=this;this.materials={},i.each(this.json.materials,(function(e,n){if(t.customMaterialCreator){var r=t.customMaterialCreator(n,e,t.json,t);if(r)return void(t.materials[n]=r)}var i,a=null;t.isUseExtension(e,"KHR_materials_common")&&(a=e.extensions.KHR_materials_common),t.isGLTF2&&!a?(i=t.isUseExtension(e,"KHR_techniques_webgl")?t.parseExtension(e.extensions,"KHR_techniques_webgl"):t.createPBRMaterial(e),t.parseMaterialCommonProps(i,e)):i=t.createKMCMaterial(e,a),(i=t.parseExtensions(e.extensions,i,{ignoreExtensions:{KHR_techniques_webgl:1,KHR_materials_common:1,KHR_materials_pbrSpecularGlossiness:1},isMaterial:!0})).name=e.name||n,t.materials[n]=i,t.parseTechnique(e,i)}))},sparseAccessorHandler:function(t,e){if(!e)return t;var n=e.count,r=t.data.constructor,a=new r(t.realLength);a.set(t.data),t.data=a;for(var s=this.bufferViews[e.values.bufferView],o=new r(s.buffer,s.byteOffset+(e.values.byteOffset||0),n*t.size),u=new(r=Da[e.indices.componentType][1])((s=this.bufferViews[e.indices.bufferView]).buffer,s.byteOffset+(e.indices.byteOffset||0),n),c=0;c<n;c++)i.copyArrayData(a,o,u[c]*t.size,c*t.size,t.size);return t},getAccessorData:function(t,e){var n=this.json.accessors[t];if(n.data)return n.data;var r,i=ya(Da[n.componentType],2)[1],a=Fa[n.type],s=this.bufferViews[n.bufferView],o=n.count*a;if(s)if(s.byteStride&&s.byteStride>a*i.BYTES_PER_ELEMENT)s.array=new i(s.buffer,s.byteOffset,s.byteLength/i.BYTES_PER_ELEMENT),r=new b(s.array,a,{offset:n.byteOffset||0,stride:s.byteStride,bufferViewId:s.id});else{var u,c=(n.byteOffset||0)+s.byteOffset;if(c%i.BYTES_PER_ELEMENT||this.forceCreateNewBuffer)u=new i(s.buffer.slice(c,c+o*i.BYTES_PER_ELEMENT));else u=new i(s.buffer,c,o);r=new b(u,a)}return n.sparse&&(r||(r=new b(new i(o),a)),r=this.sparseAccessorHandler(r,n.sparse)),r=this.parseExtensions(n.extensions,r,{isDecode:e,isAccessor:!0}),n.data=r,n.normalized&&(r.normalized=!0),r},getArrayByAccessor:function(t,e){var n=this.json.accessors[t];if(n.array)return n.array;var r=this.getAccessorData(t,e);if(!r.stride&&!r.offset&&1===r.size)return r.data;var i=[];return r.traverse((function(t){i.push(t.toArray?t.toArray():t)})),n.array=i,i},parseTechnique:function(t,e){var n=null;this.json.techniques&&(n=this.json.techniques[t.technique]),n&&n.states&&(n.states.enable.forEach((function(t){switch(t){case xa:e.blend=!0;break;case Ca:e.depthTest=!0;break;case ba:e.cullFace=!0}})),i.each(n.states.functions,(function(t,n){switch(n){case"blendEquationSeparate":e.blendEquation=t[0],e.blendEquationAlpha=t[1];break;case"blendFuncSeparate":e.blendSrc=t[0],e.blendDst=t[1],e.blendSrcAlpha=t[2],e.blendDstAlpha=t[3];break;case"depthMask":e.depthMask=t[0];break;case"cullFace":e.cullFaceType=t[0];break;default:e[n]=t}})),e.cullFace?e.side=e.cullFaceType===Pa?wa:Pa:e.side=Ha)},createMorphGeometry:function(t,e){var n=this,r=new Tr,a=r.targets={};return i.each(t.targets,(function(t){i.each(t,(function(t,e){var r=Ua[e].name;a[r]||(a[r]=[]);var i=n.getAccessorData(t,!0);a[r].push(i)}))})),r.weights=e||new Float32Array(t.targets.length),r},handlerGeometry:function(t,e){var n=void 0===e.mode?4:e.mode;if(e.extensions){var r=this.parseExtensions(e.extensions,null,{primitive:e,isPrimitive:!0});if(r)return r.mode=n,r}t||(t=new K({mode:n})),"indices"in e&&(t.indices=this.getAccessorData(e.indices));var i=e.attributes;for(var a in i){var s=Ua[a];if(s){var o=!(this.isUnQuantizeInShader&&s.decodeMatName);t[s.name]=this.getAccessorData(i[a],o),o||(t[s.decodeMatName]=t[s.name].decodeMat,delete t[s.name].decodeMat)}else m.a.warn("Unknow attribute named ".concat(a,"!"))}return t},handlerSkinedMesh:function(t,e){e&&(t.skeleton=e,this.useInstanced&&(t.useInstanced=!0))},fixProgressiveGeometry:function(t,e){t._geometry=e,this.isProgressive&&t._meshes&&t._meshes.forEach((function(t){t.visible=!0,t.geometry=e}))},parseGeometries:function(){var t=this,e=i.serialRun(this.json.meshes,(function(e){return i.serialRun(e.primitives,(function(n){var r;n.targets&&n.targets.length&&(r=t.createMorphGeometry(n,e.weights)),n._geometry=r;var i=t.handlerGeometry(r,n);return i&&i.then?i.then((function(e){t.fixProgressiveGeometry(n,e)}),(function(t){m.a.error("geometry parse error",t)})):(t.fixProgressiveGeometry(n,i),i)}))}));return this.isProgressive?null:e},parseMesh:function(t,e,n){var r=this,i=this.json.meshes[t];i.primitives.forEach((function(a){var s,o=r.skins&&r.skins[n.skin];if(a.meshNode)s=a.meshNode.clone();else{var u=r.materials[a.material]||new Sn;s=new(o?kr:Br)({geometry:a._geometry,material:u,name:"mesh-"+(i.name||t)}),a.meshNode=s}r.handlerSkinedMesh(s,o),r.isProgressive&&!s.geometry&&(s.visible=!1,a._meshes=a._meshes||[],a._meshes.push(s)),e.addChild(s),r.meshes.push(s)}))},parseCameras:function(){var t=this;this.cameras={};var e=window.innerWidth/window.innerHeight;i.each(this.json.cameras,(function(n,r){var i;"perspective"===n.type&&n.perspective?((i=new Q).fov=d.a.radToDeg(n.perspective.yfov),i.near=n.perspective.znear,i.far=n.perspective.zfar,n.aspectRatio?i.aspect=n.aspectRatio:i.aspect=e):"orthographic"===n.type&&n.orthographic&&((i=new Dn).near=n.orthographic.znear,i.far=n.orthographic.zfar,i.right=n.orthographic.xmag,i.left=-1*i.right,i.top=n.orthographic.ymag,i.bottom=-1*i.top),(i=t.parseExtensions(n.extensions,i,{isCamera:!0}))&&(i.name=n.name||r,t.cameras[r]=i)}))},handlerNodeTransform:function(t,e){e.matrix?t.matrix.fromArray(e.matrix):(e.rotation&&t.quaternion.fromArray(e.rotation),e.scale&&t.setScale(e.scale[0],e.scale[1],e.scale[2]),e.translation&&(t.x=e.translation[0],t.y=e.translation[1],t.z=e.translation[2]))},parseNode:function(t,e){var n,r=this,i=this.json.nodes[t];i||m.a.warn("GLTFParser.parseNode: nodes[".concat(t,"] has nothing.")),n=new g({name:i.name,animationId:t}),n=this.parseExtensions(i.extensions,n,{isNode:!0}),"camera"in i&&this.cameras[i.camera]&&n.addChild(this.cameras[i.camera]),this.handlerNodeTransform(n,i),i.jointName?(n.jointName=i.jointName,this.jointMap[n.jointName]=n):this.isGLTF2&&(n.jointName=t,this.jointMap[t]=n),i.meshes?i.meshes.forEach((function(t){return r.parseMesh(t,n,i)})):"mesh"in i&&this.parseMesh(i.mesh,n,i),i.children&&i.children.forEach((function(t){return r.parseNode(t,n)})),e.addChild(n)},parseAnimations:function(){var t=this;if(!this.json.animations)return null;var e=this.isMultiAnim,n={},r=[],a={};return i.each(this.json.animations,(function(i){i.channels.forEach((function(e){var n=e.target.path,s=e.target.id;t.isGLTF2&&(s=e.target.node);var o=i.samplers[e.sampler],u=t.isGLTF2?o.input:i.parameters[o.input],c=t.isGLTF2?o.output:i.parameters[n],f=t.getArrayByAccessor(u,!0),h=t.getArrayByAccessor(c,!0);"rotation"===n&&(n="quaternion");var l=new Oa({interpolationType:o.interpolation||"LINEAR",nodeName:s,keyTime:f,states:h,type:Oa.getType(n)});r.push(l),a[s]=!0})),e&&r.length&&(n[i.name]={animStatesList:r},r=[])})),e&&Object.keys(n).length>0&&(r=Object.values(n)[0].animStatesList),r.length?new Sa({rootNode:this.node,animStatesList:r,validAnimationIds:a,clips:n}):null},parseScene:function(){var t=this;this.parseMaterials(),this.jointMap={},this.meshes=[],this.lights=[],this.node=new g({needCallChildUpdate:!1}),this.parseCameras();var e=this.json.scenes[this.getDefaultSceneName()];if(!e)return m.a.warn("GLTFParser:no scene!"),{node:this.node,meshes:[],cameras:[],lights:[],textures:[],materials:[]};var n=e.nodes;this.parseSkins(),n.forEach((function(e){return t.parseNode(e,t.node)})),this.resetSkinInfo(this.node);var r={node:this.node,scene:this.node,meshes:this.meshes,json:this.json,cameras:Object.values(this.cameras),lights:this.lights,textures:Object.values(this.textures),materials:Object.values(this.materials)},i=this.parseAnimations();return i&&(this.node.setAnim(i),i.play(),r.anim=i),this.parseExtensions(e.extensions,null,{isScene:!0}),this.parseExtensions(this.json.extensions,r,{isGlobal:!0,methodName:"parseOnEnd"}),r},getDefaultSceneName:function(){return void 0!==this.defaultScene?this.defaultScene:this.json.scenes?Object.keys(this.json.scenes)[0]:null},parseSkins:function(){var t=this;this.skins=[];var e=this.json.skins;e&&e.length&&(this.skins=e.map((function(e){for(var n=new Yr,r=e.joints.length,i=t.getArrayByAccessor(e.inverseBindMatrices,!0),a=0;a<r;a++){var s=(new o.a).fromArray(i[a]);n.inverseBindMatrices.push(s)}return n.jointNames=e.joints,n})))},resetSkinInfo:function(t){var e={};t.traverse((function(t){var n="".concat(t.id,"_").concat(t.name);e[t.jointName]=n,t.jointName=n})),this.skins.forEach((function(t){t.jointNames=t.jointNames.map((function(t){return e[t]}))})),t.resetSkinedMeshRootNode()}}),Ba=Ga,Va=a.a.create({Extends:na,isGLTFLoader:!0,className:"GLTFLoader",constructor:function(){Va.superclass.constructor.call(this)},load:function(t){var e=this;return this.loadRes(t.src,"buffer").then((function(n){return new Ba(n,t).parse(e)})).catch((function(t){throw m.a.error("load gltf failed",t.message,t.stack),t}))}});ia.addLoader("gltf",Va),ia.addLoader("glb",Va);var Xa=Va,ja=n(99),ka=n.n(ja),Wa=P.a.RGBA,Ya=P.a.NEAREST,za=P.a.CLAMP_TO_EDGE,qa=P.a.FLOAT,Ka=a.a.create({Extends:na,isHDRLoader:!0,className:"HDRLoader",constructor:function(){Ka.superclass.constructor.call(this)},load:function(t){return this.loadRes(t.src,"buffer").then((function(e){try{var n=ka()(e),r=n.shape,i=n.data,a=new _e({width:r[0],height:r[1],flipY:t.flipY||!1,image:i,type:qa,magFilter:Ya,minFilter:Ya,wrapS:za,wrapT:za,internalFormat:Wa,format:Wa});return Object.assign(a,t),a}catch(t){m.a.error("HDRLoader:parse error => ",t)}return null}))}});ia.addLoader("hdr",Ka);var Za=Ka,Qa=a.a.create({Statics:{HEADER_LEN:64,COMPRESSED_2D:0,COMPRESSED_3D:1,TEX_2D:2,TEX_3D:3},isKhronosTextureContainer:!0,className:"KhronosTextureContainer",constructor:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.arrayBuffer=t,this.baseOffset=n;var r=new Uint8Array(this.arrayBuffer,this.baseOffset,12);if(171===r[0]&&75===r[1]&&84===r[2]&&88===r[3]&&32===r[4]&&49===r[5]&&49===r[6]&&187===r[7]&&13===r[8]&&10===r[9]&&26===r[10]&&10===r[11]){var i=Uint32Array.BYTES_PER_ELEMENT,a=new DataView(this.arrayBuffer,this.baseOffset+12,13*i),s=a.getUint32(0,!0),o=67305985===s;this.glType=a.getUint32(1*i,o),this.glTypeSize=a.getUint32(2*i,o),this.glFormat=a.getUint32(3*i,o),this.glInternalFormat=a.getUint32(4*i,o),this.glBaseInternalFormat=a.getUint32(5*i,o),this.pixelWidth=a.getUint32(6*i,o),this.pixelHeight=a.getUint32(7*i,o),this.pixelDepth=a.getUint32(8*i,o),this.numberOfArrayElements=a.getUint32(9*i,o),this.numberOfFaces=a.getUint32(10*i,o),this.numberOfMipmapLevels=a.getUint32(11*i,o),this.bytesOfKeyValueData=a.getUint32(12*i,o),this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0!==this.pixelHeight&&0===this.pixelDepth?0===this.numberOfArrayElements?this.numberOfFaces===e?0===this.glType?this.loadType=Qa.COMPRESSED_2D:this.loadType=Qa.TEX_2D:m.a.warn("number of faces expected"+e+", but found "+this.numberOfFaces):m.a.warn("texture arrays not currently supported"):m.a.warn("only 2D textures currently supported")}else m.a.error("texture missing KTX identifier")},mipmaps:function(t){for(var e=[],n=Qa.HEADER_LEN+this.bytesOfKeyValueData,r=this.pixelWidth,i=this.pixelHeight,a=t?this.numberOfMipmapLevels:1,s=0;s<a;s++){for(var o=new Int32Array(this.arrayBuffer,this.baseOffset+n,1)[0],u=0;u<this.numberOfFaces;u++){var c=new Uint8Array(this.arrayBuffer,this.baseOffset+n+4,o);e.push({data:c,width:r,height:i}),n+=o+4,n+=3-(o+3)%4}r=Math.max(1,.5*r),i=Math.max(1,.5*i)}return e}}),Ja=a.a.create({Extends:na,Statics:{astc:"WEBGL_compressed_texture_astc",etc:"WEBGL_compressed_texture_etc",etc1:"WEBGL_compressed_texture_etc1",pvrtc:"WEBGL_compressed_texture_pvrtc",s3tc:"WEBGL_compressed_texture_s3tc"},isKTXLoader:!0,className:"KTXLoader",constructor:function(){ht.use(Ja.astc),ht.use(Ja.atc),ht.use(Ja.etc),ht.use(Ja.etc1),ht.use(Ja.pvrtc),ht.use(Ja.s3tc),ht.use(Ja.s3tc_srgb),Ja.superclass.constructor.call(this)},load:function(t){var e=this;return t.src instanceof ArrayBuffer?Promise.resolve(this.createTexture(t,t.src)):ArrayBuffer.isView(t.src)?Promise.resolve(this.createTexture(t,t.src.buffer,t.src.byteOffset)):this.loadRes(t.src,"buffer").then((function(n){return e.createTexture(t,n)}))},createTexture:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=new Qa(e,1,n),i={compressed:0===r.glType,type:r.glType,width:r.pixelWidth,height:r.pixelHeight,internalFormat:r.glInternalFormat,format:r.glFormat,isCubemap:6===r.numberOfFaces};return r.numberOfMipmapLevels>=Math.floor(Math.log2(Math.max(i.width,i.height))+1)?(i.mipmaps=r.mipmaps(!0),i.image=i.mipmaps[0].data):(i.mipmaps=null,i.image=r.mipmaps(!1)[0].data),new _e(i)}});ia.addLoader("ktx",Ja);var $a=Ja,ts=a.a.create({Mixes:s.a,isLoadQueue:!0,className:"LoadQueue",Statics:{addLoader:function(t,e){m.a.warn("LoadQueue.addLoader is duplicated, please use Loader.addLoader"),ia.addLoader(t,e)}},constructor:function(t){this._source=[],this.add(t)},maxConnections:2,_source:null,_loaded:0,_connections:0,_currentIndex:-1,add:function(t){return t&&(t=Array.isArray(t)?t:[t],this._source=this._source.concat(t)),this},get:function(t){if(!t)return null;for(var e=this._source,n=0;n<e.length;n++){var r=e[n];if(r.id===t||r.src===t)return r}return null},getContent:function(t){var e=this.get(t);return e&&e.content},start:function(){return this._loader||(this._loader=new ia),this._loadNext(),this},_loadNext:function(){var t=this,e=this._source,n=e.length;if(this._loaded>=n)this.fire("complete");else if(this._currentIndex<n-1&&this._connections<this.maxConnections){var r=++this._currentIndex,i=e[r];this._connections++,this._loader.load(i).then((function(e){t._onItemLoad(r,e)}),(function(e){t._onItemError(r,e)}))}},_onItemLoad:function(t,e){var n=this._source[t];n.loaded=!0,n.content=e,this._connections--,this._loaded++,this.fire("load",n),this._loadNext()},_onItemError:function(t,e){var n=this._source[t];n.error=e,this._connections--,this._loaded++,this.fire("error",n),this._loadNext()},getSize:function(t){for(var e=0,n=this._source,r=0;r<n.length;r++){var i=n[r];e+=(t?i.loaded&&i.size:i.size)||0}return e},getLoaded:function(){return this._loaded},getTotal:function(){return this._source.length},getAllContent:function(){return this._source.map((function(t){return t.content}))}}),es=a.a.create({Extends:na,isShaderMaterialLoader:!0,className:"ShaderMaterialLoader",constructor:function(){es.superclass.constructor.call(this)},load:function(t){var e=[this.loadRes(t.fs),this.loadRes(t.vs)],n=Object.assign({},t);return Promise.all(e).then((function(t){return n.fs=t[0],n.vs=t[1],new pr(n)}),(function(t){m.a.warn("ShaderMaterial Loader Failed for ".concat(t))}))}}),ns=es,rs=a.a.create({Extends:na,isTextureLoader:!0,className:"TextureLoader",constructor:function(){rs.superclass.constructor.call(this)},load:function(t){return this.loadImg(t.src,t.crossOrigin).then((function(e){var n=Object.assign({},t);return n.image=e,delete n.type,new _e(n)})).catch((function(t){throw m.a.error("load Texture failed",t.message,t.stack),t}))}});ia.addLoader("Texture",rs);var is=rs,as=P.a.LINES,ss={x:[0,0,0,1,0,0],y:[0,0,0,0,1,0],z:[0,0,0,0,0,1]},os=a.a.create({Extends:g,isAxisHelper:!0,className:"AxisHelper",size:1,constructor:function(t){os.superclass.constructor.call(this,t),this.init()},addAxis:function(t){var e=new Br({name:"AxisHelper_"+t,geometry:new K({mode:as,vertices:new b(new Float32Array(ss[t]),3),indices:new b(new Uint16Array([0,1]),1)}),material:new Sn({diffuse:new E.a(ss[t][3],ss[t][4],ss[t][5]),lightType:"NONE"})});this.addChild(e)},init:function(){this.setScale(this.size),this.addAxis("x"),this.addAxis("y"),this.addAxis("z")}}),us=os,cs=P.a.LINES,fs=a.a.create({Extends:Br,isAxisNetHelper:!0,className:"AxisNetHelper",size:5,constructor:function(t){fs.superclass.constructor.call(this,t),this.color=this.color||new E.a(.5,.5,.5);for(var e=new K({mode:cs}),n=this.size,r=2*n+1,i=0;i<r;i++){var a=i/n-1;e.addLine([a,0,-1],[a,0,1]),e.addLine([-1,0,a],[1,0,a])}this.geometry=e,this.material=new Sn({diffuse:this.color,lightType:"NONE"})}}),hs=fs,ls=P.a.LINES,ds=new c.a,ms=a.a.create({Extends:Br,isCameraHelper:!0,className:"CameraHelper",camera:null,color:null,constructor:function(t){ms.superclass.constructor.call(this,t),this.color||(this.color=new E.a(.3,.9,.6)),this.material=new Sn({lightType:"NONE",diffuse:this.color||new E.a(.5,.5,.5,1)}),this.geometry=new K({mode:ls,isStatic:!1,vertices:new b(new Float32Array(27),3),indices:new b(new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7,8,4,8,5,8,6,8,7]),1)})},onUpdate:function(){this.camera&&(this.camera.updateViewProjectionMatrix(),this._buildGeometry())},_buildGeometry:function(){var t=this.camera,e=this.geometry;e.vertices.set(0,t.unprojectVector(ds.set(-1,-1,1))),e.vertices.set(1,t.unprojectVector(ds.set(-1,1,1))),e.vertices.set(2,t.unprojectVector(ds.set(1,1,1))),e.vertices.set(3,t.unprojectVector(ds.set(1,-1,1))),e.vertices.set(4,t.unprojectVector(ds.set(-1,-1,-1))),e.vertices.set(5,t.unprojectVector(ds.set(-1,1,-1))),e.vertices.set(6,t.unprojectVector(ds.set(1,1,-1))),e.vertices.set(7,t.unprojectVector(ds.set(1,-1,-1))),e.vertices.set(8,t.worldMatrix.getTranslation(ds))}}),_s=ms,ps=a.a.create({Extends:A,isAmbientLight:!0,className:"AmbientLight",autoUpdateWorldMatrix:!1,constructor:function(t){ps.superclass.constructor.call(this,t)}}),gs=ps,Es=a.a.create({Statics:{ltcTexture1:null,ltcTexture2:null,ltcTextureReady:!1,ltcTextureUrl:"//g.alicdn.com/tmapp/static/4.0.63/ltcTexture.js",loadLtcTexture:function(){var t=this;this.ltcTextureReady||void 0===this._loader&&(this._loader=new ia,this._loader.load({type:"json",src:this.ltcTextureUrl}).then((function(e){t._loader=null,t.ltcTexture1=new qe({data:e.ltcTexture1}),t.ltcTexture2=new qe({data:e.ltcTexture2}),t.ltcTextureReady=!0})))}},Extends:A,isAreaLight:!0,className:"AreaLight",width:10,height:10,_enabled:!0,enabled:{get:function(){return this._enabled&&Es.ltcTextureReady},set:function(t){this._enabled=t}},constructor:function(t){Es.superclass.constructor.call(this,t),Es.loadLtcTexture()},ltcTexture1:{get:function(){return Es.ltcTexture1},set:function(t){Es.ltcTexture1=t}},ltcTexture2:{get:function(){return Es.ltcTexture2},set:function(t){Es.ltcTexture2=t}}}),vs=Es,Ts=new Sn({lightType:"NONE"}),As=new E.a(1,1,1),Ms=new E.a,Is=a.a.create({isMeshPicker:!0,className:"MeshPicker",debug:!1,renderer:null,colorMeshMap:null,constructor:function(t){Object.assign(this,t),this.colorMeshMap={},this.init()},createFramebuffer:function(){if(!this.framebuffer){var t=this.renderer;this.framebuffer=new we(t,{useVao:t.useVao,width:t.width,height:t.height})}},renderDebug:function(){this.framebuffer.render(0,.7,.3,.3)},createMeshNumberId:function(t){"numberId"in t||(t.numberId=10*Number(t.id.replace(/^.*_(\d+)$/,"$1")),t.color=Object(i.padLeft)(t.numberId.toString(16),6),this.colorMeshMap[t.color]=t)},renderColoredMeshes:function(){var t=this,e=this.renderer,n=this.framebuffer;n.bind(),e.clear(As);var r=e.forceMaterial;e.forceMaterial=Ts,e.renderList.traverse((function(n){t.createMeshNumberId(n),Ts.diffuse.fromHEX(n.color),Ts.isDirty=!0,e.renderMesh(n)})),e.forceMaterial=r,n.unbind()},getSelection:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=this.renderer.pixelRatio,a=[],s=this.framebuffer.readPixels(t*i,e*i,n*i,r*i),o=0;o<s.length;o+=4){var u=Ms.fromUintArray(s,o).toHEX();this.colorMeshMap[u]&&a.push(this.colorMeshMap[u])}return a},init:function(){var t=this;this.createFramebuffer(),this.renderer.on("afterRender",(function(){t.renderColoredMeshes(),t.debug&&t.renderDebug()}))}}),Rs=a.a.create({constructor:function(t){this.targetFPS=t||60,this._tickers=[]},_paused:!1,_targetFPS:0,_interval:0,_intervalId:null,_tickers:null,_lastTime:0,_tickCount:0,_tickTime:0,_measuredFPS:0,targetFPS:{set:function(t){this._targetFPS=t,this._interval=1e3/this._targetFPS,this._intervalId&&(this._cancelRunLoop(),this._startRunLoop())},get:function(){return this._targetFPS}},start:function(){this._paused=!1,this._startRunLoop()},stop:function(){this._paused=!0,this._cancelRunLoop(),this._lastTime=0},pause:function(){this._paused=!0},resume:function(){this._paused=!1},_startRunLoop:function(){if(!this._intervalId){this._lastTime=+new Date;var t,e=this,n=this._interval,r=window.requestAnimationFrame;r&&n<17?(this._useRAF=!0,t=function(){e._intervalId=r(t),e._tick()}):(this._useRAF=!1,t=function(){e._intervalId=setTimeout(t,n),e._tick()}),t()}},_cancelRunLoop:function(){this._useRAF?(0,window.cancelAnimationFrame)(this._intervalId):clearTimeout(this._intervalId);this._intervalId=null},_tick:function(){if(!this._paused){var t=+new Date,e=t-this._lastTime,n=this._tickers;++this._tickCount>=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=n.slice(0),i=0,a=r.length;i<a;i++)r[i].tick(e)}},getMeasuredFPS:function(){return Math.min(this._measuredFPS,this._targetFPS)},addTick:function(t){if(!t||"function"!=typeof t.tick)throw new Error("Ticker: The tick object must implement the tick method.");this._tickers.push(t)},removeTick:function(t){var e=this._tickers,n=e.indexOf(t);n>=0&&e.splice(n,1)},nextTick:function(t){var e=this,n={tick:function(r){e.removeTick(n),t(r)}};return e.addTick(n),n},timeout:function(t,e){var n=this,r=(new Date).getTime()+e,i={tick:function(){(new Date).getTime()-r>=0&&(n.removeTick(i),t())}};return n.addTick(i),i},interval:function(t,e){var n=(new Date).getTime()+e,r={tick:function(){var r=(new Date).getTime(),i=r-n;i>=0&&(i<e&&(r-=i),n=r+e,t())}};return this.addTick(r),r}}),Os={get:function(){if(void 0===this._isWebGLSupport)try{var t=document.createElement("canvas"),e=t.getContext("webgl");e.clearColor(0,1,0,1),e.clear(e.COLOR_BUFFER_BIT);var n=new Uint8Array(4);e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),0===n[0]&&255===n[1]&&0===n[2]&&255===n[3]?this._isWebGLSupport=!0:this._isWebGLSupport=!1,t=null,e=null,n=null}catch(t){this._isWebGLSupport=!1}return this._isWebGLSupport}},Ls=n(27)},,,function(t,e,n){n(100),t.exports=n(108)}]),"undefined"!=typeof window&&window.Hilo3d&&"object"==typeof exports&&"object"==typeof module&&(module.exports=window.Hilo3d);
|
|
39
|
+
*/var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function s(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,o,u=s(t),c=1;c<arguments.length;c++){for(var f in n=Object(arguments[c]))i.call(n,f)&&(u[f]=n[f]);if(r){o=r(n);for(var h=0;h<o.length;h++)a.call(n,o[h])&&(u[o[h]]=n[o[h]])}}return u}},function(t,e,n){"use strict";var r,i,a,s;Object.keys||(Object.keys=(r=Object.prototype.hasOwnProperty,i=!{toString:null}.propertyIsEnumerable("toString"),s=(a=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"]).length,function(t){if("object"!=typeof t&&("function"!=typeof t||null===t))throw new TypeError("Object.keys called on non-object");var e,n,o=[];for(e in t)r.call(t,e)&&o.push(e);if(i)for(n=0;n<s;n++)r.call(t,a[n])&&o.push(a[n]);return o}))},function(t,e,n){"use strict";t.exports=function(t){return Object.keys(t).map((function(e){return t[e]}))}},function(t,e,n){"use strict";t.exports="function"==typeof Promise?Promise:n(100)},function(t,e){t.exports=function(t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var e=0,n=t.length;function r(){var r="";do{var i=t[e];if(10==i){++e;break}r+=String.fromCharCode(i)}while(++e<n);return r}for(var i=0,a=0,s=1,o=!1,u=0;u<20;u++){var c,f=r();if(c=f.match("#\\?RADIANCE"));else if(c=f.match("FORMAT=32-bit_rle_rgbe"))o=!0;else if(c=f.match("EXPOSURE=\\s*([0-9]*[.][0-9]*)"))s=Number(c[1]);else if(c=f.match("#.*"));else if(c=f.match("-Y ([0-9]+) \\+X ([0-9]+)")){a=Number(c[1]),i=Number(c[2]);break}}if(!o)throw new Error("File is not run length encoded!");var h=new Uint8Array(i*a*4);!function(t,e,n,r,i,a){var s,o,u,c=new Array(4),f=null,h=new Array(2),l=t.length;function d(e){var n=0;do{e[n++]=t[r]}while(++r<l&&n<e.length);return n}function m(e,n,i){var a=0;do{e[n+a++]=t[r]}while(++r<l&&a<i);return a}function _(t,e,n,r){var i=4*r,a=m(e,n,i);if(a<i)throw new Error("Error reading raw pixels: got "+a+" bytes, expected "+i)}for(;a>0;){if(d(c)<c.length)throw new Error("Error reading bytes: expected "+c.length);if(2!=c[0]||2!=c[1]||0!=(128&c[2]))return e[n++]=c[0],e[n++]=c[1],e[n++]=c[2],e[n++]=c[3],void _(0,e,n,i*a-1);if(((255&c[2])<<8|255&c[3])!=i)throw new Error("Wrong scanline width "+((255&c[2])<<8|255&c[3])+", expected "+i);null==f&&(f=new Array(4*i)),s=0;for(var p=0;p<4;p++)for(o=(p+1)*i;s<o;){if(d(h)<h.length)throw new Error("Error reading 2-byte buffer");if((255&h[0])>128){if(0==(u=(255&h[0])-128)||u>o-s)throw new Error("Bad scanline data");for(;u-- >0;)f[s++]=h[1]}else{if(0==(u=255&h[0])||u>o-s)throw new Error("Bad scanline data");if(f[s++]=h[1],--u>0){if(m(f,s,u)<u)throw new Error("Error reading non-run data");s+=u}}}for(p=0;p<i;p++)e[n+0]=f[p],e[n+1]=f[p+i],e[n+2]=f[p+2*i],e[n+3]=f[p+3*i],n+=4;a--}}(t,h,0,e,i,a);for(var l=new Float32Array(i*a*4),d=0;d<h.length;d+=4){var m=h[d+0]/255,_=h[d+1]/255,p=h[d+2]/255,g=h[d+3],E=Math.pow(2,g-128);m*=E,_*=E,p*=E;var v=d;l[v+0]=m,l[v+1]=_,l[v+2]=p,l[v+3]=1}return{shape:[i,a],exposure:s,gamma:1,data:l}}},function(t,e,n){"use strict";n.r(e);var r=n(94),i=n.n(r),a=n(95),s=n.n(a),o=n(96),u=n.n(o),c=n(97),f=n.n(c);Object.assign||(Object.assign=i.a),Object.keys||(Object.keys=s.a),Object.values||(Object.values=u.a),"undefined"==typeof Promise&&(window.Promise=f.a),[Int8Array,Uint8Array,Int16Array,Uint16Array,Uint32Array,Float32Array].forEach((function(t){t.prototype.slice||Object.defineProperty(t.prototype,"slice",{value:function(e,n){return new t(Array.prototype.slice.call(this,e,n))}}),t.prototype.forEach||Object.defineProperty(t.prototype,"forEach",{value:function(t,e){e=e||this;for(var n=0,r=this.length;n!==r;++n)t.call(e,this[n],n,this)}})}))},function(t,e,n){"use strict";(function(e,n){var r,i=function(){},a=void 0!==e&&void 0!==e.process&&"function"==typeof e.process.emit,s=void 0===n?setTimeout:n,o=[];function u(){for(var t=0;t<o.length;t++)o[t][0](o[t][1]);o=[],r=!1}function c(t,e){o.push([t,e]),r||(r=!0,s(u,0))}function f(t){var e=t.owner,n=e._state,r=e._data,i=t[n],a=t.then;if("function"==typeof i){n="fulfilled";try{r=i(r)}catch(t){m(a,t)}}h(a,r)||("fulfilled"===n&&l(a,r),"rejected"===n&&m(a,r))}function h(t,e){var n;try{if(t===e)throw new TypeError("A promises callback cannot return that same promise.");if(e&&("function"==typeof e||"object"==typeof e)){var r=e.then;if("function"==typeof r)return r.call(e,(function(r){n||(n=!0,e===r?d(t,r):l(t,r))}),(function(e){n||(n=!0,m(t,e))})),!0}}catch(e){return n||m(t,e),!0}return!1}function l(t,e){t!==e&&h(t,e)||d(t,e)}function d(t,e){"pending"===t._state&&(t._state="settled",t._data=e,c(p,t))}function m(t,e){"pending"===t._state&&(t._state="settled",t._data=e,c(g,t))}function _(t){t._then=t._then.forEach(f)}function p(t){t._state="fulfilled",_(t)}function g(t){t._state="rejected",_(t),!t._handled&&a&&e.process.emit("unhandledRejection",t._data,t)}function E(t){e.process.emit("rejectionHandled",t)}function v(t){if("function"!=typeof t)throw new TypeError("Promise resolver "+t+" is not a function");if(this instanceof v==!1)throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this._then=[],function(t,e){function n(t){m(e,t)}try{t((function(t){l(e,t)}),n)}catch(t){n(t)}}(t,this)}v.prototype={constructor:v,_state:"pending",_then:null,_data:void 0,_handled:!1,then:function(t,e){var n={owner:this,then:new this.constructor(i),fulfilled:t,rejected:e};return!e&&!t||this._handled||(this._handled=!0,"rejected"===this._state&&a&&c(E,this)),"fulfilled"===this._state||"rejected"===this._state?c(f,n):this._then.push(n),n.then},catch:function(t){return this.then(null,t)}},v.all=function(t){if(!Array.isArray(t))throw new TypeError("You must pass an array to Promise.all().");return new v((function(e,n){var r=[],i=0;function a(t){return i++,function(n){r[t]=n,--i||e(r)}}for(var s,o=0;o<t.length;o++)(s=t[o])&&"function"==typeof s.then?s.then(a(o),n):r[o]=s;i||e(r)}))},v.race=function(t){if(!Array.isArray(t))throw new TypeError("You must pass an array to Promise.race().");return new v((function(e,n){for(var r,i=0;i<t.length;i++)(r=t[i])&&"function"==typeof r.then?r.then(e,n):e(r)}))},v.resolve=function(t){return t&&"object"==typeof t&&t.constructor===v?t:new v((function(e){e(t)}))},v.reject=function(t){return new v((function(e,n){n(t)}))},t.exports=v}).call(this,n(34),n(101).setImmediate)},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new a(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new a(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(102),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(34))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,a,s,o,u=1,c={},f=!1,h=t.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(t);l=l&&l.setTimeout?l:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){m(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){m(t.data)},r=function(t){a.port2.postMessage(t)}):h&&"onreadystatechange"in h.createElement("script")?(i=h.documentElement,r=function(t){var e=h.createElement("script");e.onreadystatechange=function(){m(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(m,0,t)}:(s="setImmediate$"+Math.random()+"$",o=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&m(+e.data.slice(s.length))},t.addEventListener?t.addEventListener("message",o,!1):t.attachEvent("onmessage",o),r=function(e){t.postMessage(s+e,"*")}),l.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var i={callback:t,args:e};return c[u]=i,r(u),u++},l.clearImmediate=d}function d(t){delete c[t]}function m(t){if(f)setTimeout(m,0,t);else{var e=c[t];if(e){f=!0;try{!function(t){var e=t.callback,n=t.args;switch(n.length){case 0:e();break;case 1:e(n[0]);break;case 2:e(n[0],n[1]);break;case 3:e(n[0],n[1],n[2]);break;default:e.apply(void 0,n)}}(e)}finally{d(t),f=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(34),n(103))},function(t,e){var n,r,i=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var u,c=[],f=!1,h=-1;function l(){f&&u&&(f=!1,u.length?c=u.concat(c):h=-1,c.length&&d())}function d(){if(!f){var t=o(l);f=!0;for(var e=c.length;e;){for(u=c,c=[];++h<e;)u&&u[h].run();h=-1,e=c.length}u=null,f=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function m(t,e){this.fun=t,this.array=e}function _(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new m(t,e)),1!==c.length||f||o(d)},m.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=_,i.addListener=_,i.once=_,i.off=_,i.removeListener=_,i.removeAllListeners=_,i.emit=_,i.prependListener=_,i.prependOnceListener=_,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(t,e,n){t.exports="#define GLSLIFY 1\n// modified from https://github.com/mrdoob/three.js/blob/dev/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl#L26\n\n"+n(56)+"\n\nvec2 LTC_Uv(const in vec3 N, const in vec3 V, const in float roughness) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = (LUT_SIZE - 1.0) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = clamp(dot(N, V), 0.0, 1.0);\n vec2 uv = vec2(roughness, sqrt(1.0 - dotNV));\n uv = (uv * LUT_SCALE) + LUT_BIAS;\n return uv;\n}\n\nfloat LTC_ClippedSphereFormFactor(const in vec3 f) {\n float l = length(f);\n return max(((l * l) + f.z) / (l + 1.0), 0.0);\n}\n\nvec3 LTC_EdgeVectorFormFactor(const in vec3 v1, const in vec3 v2) {\n float x = dot(v1, v2);\n float y = abs(x);\n float a = 0.8543985 + ((0.4965155 + (0.0145206 * y)) * y);\n float b = 3.4175940 + ((4.1616724 + y) * y);\n float v = a / b;\n float theta_sintheta = x > 0.0 ? v : (0.5 * inversesqrt(max(1.0 - (x * x), 1e-7))) - v;\n return cross(v1, v2) * theta_sintheta;\n}\n\nvec3 LTC_Evaluate(const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[4]) {\n vec3 v1 = rectCoords[1] - rectCoords[0];\n vec3 v2 = rectCoords[3] - rectCoords[0];\n vec3 lightNormal = cross(v1, v2);\n if (dot(lightNormal, P - rectCoords[0]) < 0.0)\n return vec3(0.0);\n vec3 T1, T2;\n T1 = normalize(V - (N * dot(V, N)));\n T2 = -cross(N, T1);\n mat3 mat = mInv * transpose(mat3(T1, T2, N));\n vec3 coords[4];\n coords[0] = mat * (rectCoords[0] - P);\n coords[1] = mat * (rectCoords[1] - P);\n coords[2] = mat * (rectCoords[2] - P);\n coords[3] = mat * (rectCoords[3] - P);\n coords[0] = normalize(coords[0]);\n coords[1] = normalize(coords[1]);\n coords[2] = normalize(coords[2]);\n coords[3] = normalize(coords[3]);\n vec3 vectorFormFactor = vec3(0.0);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[0], coords[1]);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[1], coords[2]);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[2], coords[3]);\n vectorFormFactor += LTC_EdgeVectorFormFactor(coords[3], coords[0]);\n float result = LTC_ClippedSphereFormFactor(vectorFormFactor);\n return vec3(result);\n}\n\nvec3 getAreaLight(const in vec3 diffuseColor, const in vec3 specularColor, const in float roughness, const in vec3 normal, const in vec3 viewDir, const in vec3 position, const in vec3 lightPos, const in vec3 lightColor, const in vec3 halfWidth, const in vec3 halfHeight, const in sampler2D areaLightsLtcTexture1, const in sampler2D areaLightsLtcTexture2){\n vec3 rectCoords[4];\n rectCoords[0] = (lightPos - halfWidth) - halfHeight;\n rectCoords[1] = (lightPos + halfWidth) - halfHeight;\n rectCoords[2] = (lightPos + halfWidth) + halfHeight;\n rectCoords[3] = (lightPos - halfWidth) + halfHeight;\n \n vec2 uv = LTC_Uv(normal, viewDir, roughness);\n vec4 t1 = texture2D(areaLightsLtcTexture1, uv);\n vec4 t2 = texture2D(areaLightsLtcTexture2, uv);\n\n mat3 mInv = mat3(vec3(t1.x, 0, t1.y), vec3(0, 1, 0), vec3(t1.z, 0, t1.w));\n vec3 fresnel = (specularColor * t2.x) + ((vec3(1.0) - specularColor) * t2.y);\n \n vec3 color = vec3(0.0, 0.0, 0.0);\n color += ((lightColor * fresnel) * LTC_Evaluate(normal, viewDir, position, mInv, rectCoords));\n color += ((lightColor * diffuseColor) * LTC_Evaluate(normal, viewDir, position, mat3(1.0), rectCoords));\n return color;\n}\n\n"},function(t,e){t.exports="#version 300 es\n#define GLSLIFY 1\n#define HILO_IS_WEBGL2\n#define attribute in\n#define varying out\n#define texture2D texture\n#define textureCube texture\n#define texture2DLodEXT textureLod\n#define textureCubeLodEXT textureLod"},function(t,e){t.exports="#version 300 es\n#define GLSLIFY 1\n#define HILO_IS_WEBGL2\n#define varying in\n#define texture2D texture\n#define textureCube texture\n#define texture2DLodEXT textureLod\n#define textureCubeLodEXT textureLod\n#define gl_FragColor hilo_FragData0\n#define gl_FragDepthEXT gl_FragDepth\nlayout(location = 0) out highp vec4 hilo_FragData0;"},function(t,e,n){"use strict";n.r(e),n.d(e,"util",(function(){return i})),n.d(e,"GLTFExtensions",(function(){return r})),n.d(e,"Class",(function(){return a.a})),n.d(e,"EventMixin",(function(){return o})),n.d(e,"Fog",(function(){return Br})),n.d(e,"Mesh",(function(){return Wr})),n.d(e,"Node",(function(){return M})),n.d(e,"SkinedMesh",(function(){return Zr})),n.d(e,"Skeleton",(function(){return Qr})),n.d(e,"Stage",(function(){return Mi})),n.d(e,"Tween",(function(){return ki})),n.d(e,"version",(function(){return Jr})),n.d(e,"BoxGeometry",(function(){return Yi})),n.d(e,"Geometry",(function(){return tt})),n.d(e,"GeometryData",(function(){return F})),n.d(e,"MorphGeometry",(function(){return Or})),n.d(e,"PlaneGeometry",(function(){return Qi})),n.d(e,"SphereGeometry",(function(){return $i})),n.d(e,"Camera",(function(){return x})),n.d(e,"PerspectiveCamera",(function(){return nt})),n.d(e,"OrthographicCamera",(function(){return Vn})),n.d(e,"Buffer",(function(){return qt})),n.d(e,"UniformBuffer",(function(){return ta})),n.d(e,"capabilities",(function(){return gt})),n.d(e,"extensions",(function(){return pt})),n.d(e,"Framebuffer",(function(){return Ge})),n.d(e,"glType",(function(){return Dt})),n.d(e,"logGLResource",(function(){return na})),n.d(e,"Program",(function(){return Xt})),n.d(e,"RenderInfo",(function(){return $r})),n.d(e,"RenderList",(function(){return ri})),n.d(e,"VertexArrayObject",(function(){return ne})),n.d(e,"WebGLRenderer",(function(){return vi})),n.d(e,"WebGLResourceManager",(function(){return ai})),n.d(e,"WebGLState",(function(){return ii})),n.d(e,"BasicLoader",(function(){return oa})),n.d(e,"CubeTextureLoader",(function(){return ha})),n.d(e,"GLTFLoader",(function(){return za})),n.d(e,"GLTFParser",(function(){return Wa})),n.d(e,"AliAMCExtension",(function(){return Nr})),n.d(e,"HDRLoader",(function(){return es})),n.d(e,"KTXLoader",(function(){return is})),n.d(e,"LoadCache",(function(){return ia})),n.d(e,"LoadQueue",(function(){return as})),n.d(e,"ShaderMaterialLoader",(function(){return os})),n.d(e,"TextureLoader",(function(){return cs})),n.d(e,"Loader",(function(){return ca})),n.d(e,"Texture",(function(){return Te})),n.d(e,"LazyTexture",(function(){return pa})),n.d(e,"CubeTexture",(function(){return Ye})),n.d(e,"DataTexture",(function(){return $e})),n.d(e,"Shader",(function(){return Nt})),n.d(e,"BasicMaterial",(function(){return bn})),n.d(e,"GeometryMaterial",(function(){return Gn})),n.d(e,"Material",(function(){return xn})),n.d(e,"PBRMaterial",(function(){return da})),n.d(e,"semantic",(function(){return pn})),n.d(e,"ShaderMaterial",(function(){return Ar})),n.d(e,"AxisHelper",(function(){return ds})),n.d(e,"AxisNetHelper",(function(){return ps})),n.d(e,"CameraHelper",(function(){return Ts})),n.d(e,"AmbientLight",(function(){return Ms})),n.d(e,"AreaLight",(function(){return Rs})),n.d(e,"DirectionalLight",(function(){return _r})),n.d(e,"CubeLightShadow",(function(){return cr})),n.d(e,"Light",(function(){return L})),n.d(e,"LightManager",(function(){return ci})),n.d(e,"LightShadow",(function(){return qn})),n.d(e,"PointLight",(function(){return hr})),n.d(e,"SpotLight",(function(){return vr})),n.d(e,"Animation",(function(){return ba})),n.d(e,"AnimationStates",(function(){return xa})),n.d(e,"MeshPicker",(function(){return ys})),n.d(e,"Ticker",(function(){return Ns})),n.d(e,"log",(function(){return v.a})),n.d(e,"Cache",(function(){return rt})),n.d(e,"browser",(function(){return Ti})),n.d(e,"WebGLSupport",(function(){return xs})),n.d(e,"constants",(function(){return U.a})),n.d(e,"Color",(function(){return Cs.Color})),n.d(e,"Euler",(function(){return Cs.Euler})),n.d(e,"EulerNotifier",(function(){return Cs.EulerNotifier})),n.d(e,"Frustum",(function(){return Cs.Frustum})),n.d(e,"math",(function(){return Cs.math})),n.d(e,"Matrix3",(function(){return Cs.Matrix3})),n.d(e,"Matrix4",(function(){return Cs.Matrix4})),n.d(e,"Matrix4Notifier",(function(){return Cs.Matrix4Notifier})),n.d(e,"Plane",(function(){return Cs.Plane})),n.d(e,"Quaternion",(function(){return Cs.Quaternion})),n.d(e,"Ray",(function(){return Cs.Ray})),n.d(e,"Sphere",(function(){return Cs.Sphere})),n.d(e,"SphericalHarmonics3",(function(){return Cs.SphericalHarmonics3})),n.d(e,"Vector2",(function(){return Cs.Vector2})),n.d(e,"Vector3",(function(){return Cs.Vector3})),n.d(e,"Vector3Notifier",(function(){return Cs.Vector3Notifier})),n.d(e,"Vector4",(function(){return Cs.Vector4}));var r={};n.r(r),n.d(r,"ALI_amc_mesh_compression",(function(){return Nr})),n.d(r,"WEB3D_quantized_attributes",(function(){return Cr})),n.d(r,"HILO_animation_clips",(function(){return br})),n.d(r,"ALI_animation_clips",(function(){return Pr})),n.d(r,"ALI_bounding_box",(function(){return wr})),n.d(r,"KHR_materials_pbrSpecularGlossiness",(function(){return Hr})),n.d(r,"KHR_materials_clearcoat",(function(){return Dr})),n.d(r,"KHR_lights_punctual",(function(){return Fr})),n.d(r,"KHR_techniques_webgl",(function(){return Ur}));var i=n(4),a=n(1),s=a.a.create({constructor:function(t,e,n){this.type=t,this.target=e,this.detail=n},type:null,target:null,detail:null,stopImmediatePropagation:function(){this._stopped=!0}}),o={_listeners:null,on:function(t,e,n){for(var r=this._listeners=this._listeners||{},i=r[t]=r[t]||[],a=0,s=i.length;a<s;a++){if(i[a].listener===e)return this}return i.push({listener:e,once:n}),this},off:function(t,e){if(0===arguments.length)return this._listeners=null,this;var n=this._listeners&&this._listeners[t];if(n&&n.length>0){if(1===arguments.length)return delete this._listeners[t],this;for(var r=0,i=n.length;r<i;r++){var a=n[r];if(a.listener===e){n.splice(r,1);break}}}return this},fire:function(t,e){var n,r;"string"==typeof t?r=t:(n=t,r=t.type);var i=this._listeners;if(!i)return!1;var a=i[r];if(a&&a.length>0){var o=a.slice(0);if((n=n||new s(r,this,e))._stopped)return!1;for(var u=0;u<o.length;u++){var c=o[u];if(c.listener.call(this,n),c.once){var f=a.indexOf(c);f>-1&&a.splice(f,1)}}return!0}return!1}},u=n(7),c=n(20),f=n(5),h=n(16),l=n(21),d=n(0),m=n(10),_=new m.a,p=a.a.create({className:"QuaternionNotifier",isQuaternionNotifier:!0,constructor:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;this.elements=d.quat.fromValues(t,e,n,r)},onUpdate:function(){},copy:function(t){return d.quat.copy(this.elements,t.elements),this.onUpdate(),this},clone:function(){var t=this.elements;return new this.constructor(t[0],t[1],t[2],t[3])},toArray:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t},fromArray:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.elements;return n[0]=t[e],n[1]=t[e+1],n[2]=t[e+2],n[3]=t[e+3],this.onUpdate(),this},set:function(t,e,n,r){return d.quat.set(this.elements,t,e,n,r),this.onUpdate(),this},identity:function(){return d.quat.identity(this.elements),this.onUpdate(),this},rotationTo:function(t,e){return d.quat.rotationTo(this.elements,t.elements,e.elements),this.onUpdate(),this},setAxes:function(t,e,n){return d.quat.setAxes(this.elements,t.elements,e.elements,n.elements),this.onUpdate(),this},setAxisAngle:function(t,e){return d.quat.setAxisAngle(this.elements,t.elements,e),this.onUpdate(),this},getAxisAngle:function(t){return d.quat.getAxisAngle(t.elements,this.elements)},add:function(t){return d.quat.add(this.elements,this.elements,t.elements),this.onUpdate(),this},multiply:function(t){return d.quat.multiply(this.elements,this.elements,t.elements),this.onUpdate(),this},premultiply:function(t){return d.quat.multiply(this.elements,t.elements,this.elements),this.onUpdate(),this},scale:function(t){return d.quat.scale(this.elements,this.elements,t),this.onUpdate(),this},rotateX:function(t){return d.quat.rotateX(this.elements,this.elements,t),this.onUpdate(),this},rotateY:function(t){return d.quat.rotateY(this.elements,this.elements,t),this.onUpdate(),this},rotateZ:function(t){return d.quat.rotateZ(this.elements,this.elements,t),this.onUpdate(),this},calculateW:function(){return d.quat.calculateW(this.elements,this.elements),this.onUpdate(),this},dot:function(t){return d.quat.dot(this.elements,t.elements)},lerp:function(t,e){return d.quat.lerp(this.elements,this.elements,t.elements,e),this.onUpdate(),this},slerp:function(t,e){return d.quat.slerp(this.elements,this.elements,t.elements,e),this.onUpdate(),this},sqlerp:function(t,e,n,r,i){return d.quat.sqlerp(this.elements,t.elements,e.elements,n.elements,r.elements,i),this.onUpdate(),this},invert:function(){return d.quat.invert(this.elements,this.elements),this.onUpdate(),this},conjugate:function(){return d.quat.conjugate(this.elements,this.elements),this.onUpdate(),this},length:function(){return d.quat.length(this.elements)},squaredLength:function(){return d.quat.squaredLength(this.elements)},normalize:function(){return d.quat.normalize(this.elements,this.elements),this.onUpdate(),this},fromMat3:function(t){return d.quat.fromMat3(this.elements,t.elements),this.onUpdate(),this},fromMat4:function(t){return _.fromMat4(t),this.fromMat3(_),this},exactEquals:function(t){return d.quat.exactEquals(this.elements,t.elements)},equals:function(t){return d.quat.equals(this.elements,t.elements)},fromEuler:function(t,e){var n=.5*t.x,r=.5*t.y,i=.5*t.z,a=t.order||"ZYX",s=Math.sin(n),o=Math.cos(n),u=Math.sin(r),c=Math.cos(r),f=Math.sin(i),h=Math.cos(i),l=this.elements;return"XYZ"===a?(l[0]=s*c*h+o*u*f,l[1]=o*u*h-s*c*f,l[2]=o*c*f+s*u*h,l[3]=o*c*h-s*u*f):"YXZ"===a?(l[0]=s*c*h+o*u*f,l[1]=o*u*h-s*c*f,l[2]=o*c*f-s*u*h,l[3]=o*c*h+s*u*f):"ZXY"===a?(l[0]=s*c*h-o*u*f,l[1]=o*u*h+s*c*f,l[2]=o*c*f+s*u*h,l[3]=o*c*h-s*u*f):"ZYX"===a?(l[0]=s*c*h-o*u*f,l[1]=o*u*h+s*c*f,l[2]=o*c*f-s*u*h,l[3]=o*c*h+s*u*f):"YZX"===a?(l[0]=s*c*h+o*u*f,l[1]=o*u*h+s*c*f,l[2]=o*c*f-s*u*h,l[3]=o*c*h-s*u*f):"XZY"===a&&(l[0]=s*c*h-o*u*f,l[1]=o*u*h-s*c*f,l[2]=o*c*f+s*u*h,l[3]=o*c*h+s*u*f),e||this.onUpdate(),this},x:{get:function(){return this.elements[0]},set:function(t){this.elements[0]=t,this.onUpdate()}},y:{get:function(){return this.elements[1]},set:function(t){this.elements[1]=t,this.onUpdate()}},z:{get:function(){return this.elements[2]},set:function(t){this.elements[2]=t,this.onUpdate()}},w:{get:function(){return this.elements[3]},set:function(t){this.elements[3]=t,this.onUpdate()}}});p.prototype.mul=p.prototype.multiply,p.prototype.len=p.prototype.length,p.prototype.sqrLen=p.prototype.squaredLength;var g=p,E=n(6),v=n(3),T=new f.a(0,1,0),A=new u.a,M=a.a.create({Statics:{TRAVERSE_STOP_NONE:0,TRAVERSE_STOP_CHILDREN:1,TRAVERSE_STOP_ALL:2},Mixes:o,isNode:!0,className:"Node",name:"",anim:null,animationId:"",jointName:"",autoUpdateWorldMatrix:!0,autoUpdateChildWorldMatrix:!0,parent:null,_quatDirty:!1,_matrixDirty:!1,needCallChildUpdate:!0,visible:!0,pointerEnabled:!0,pointerChildren:!0,useHandCursor:!1,userData:null,onUpdate:null,__forceUseParentWorldMatrix:!1,constructor:function(t){this.id=E.a.generateUUID(this.className),this.up=T.clone(),this.children=[],this.worldMatrix=new u.a,this._matrix=new c.a,this._position=new h.a(0,0,0),this._scale=new h.a(1,1,1),this._pivot=new h.a(0,0,0),this._rotation=new l.a,this._quaternion=new g,this._matrix.onUpdate=this._onMatrixUpdate.bind(this),this._position.onUpdate=this._onPositionUpdate.bind(this),this._scale.onUpdate=this._onScaleUpdate.bind(this),this._pivot.onUpdate=this._onPivotUpdate.bind(this),this._rotation.onUpdate=this._onRotationUpdate.bind(this),this._quaternion.onUpdate=this._onQuaternionUpdate.bind(this),Object.assign(this,t)},clone:function(t){var e=new this.constructor;return e.name=this.name,e.jointName=this.jointName,e.animationId=this.animationId,e.setPosition(this.x,this.y,this.z),e.setScale(this.scaleX,this.scaleY,this.scaleZ),e.setRotation(this.rotationX,this.rotationY,this.rotationZ),this.children.forEach((function(t){e.addChild(t.clone(!0))})),t||(this.anim&&(e.anim=this.anim.clone(e)),e.resetSkinedMeshRootNode()),e},setAnim:function(t){return this.anim=t,t.rootNode=this,this},resetSkinedMeshRootNode:function(){var t=this;this.traverse((function(e){e.isSkinedMesh&&e.skeleton&&(e.skeleton.rootNode=t)}),!0)},getChildrenNameMap:function(){var t={};return this.traverse((function(e){t[e.name]=e;var n=e._originName;void 0===n||t[n]||(t[n]=e)}),!0),t},addChild:function(t){return t.parent&&t.removeFromParent(),t.parent=this,this.children.push(t),this},removeChild:function(t){var e=this.children.indexOf(t);return e>-1&&(this.children.splice(e,1),t.parent=null),this},addTo:function(t){return t.addChild(this),this},removeFromParent:function(){return this.parent&&this.parent.removeChild(this),this},updateMatrix:function(){return this._matrixDirty&&(this._matrixDirty=!1,this.matrixVersion++,this._matrix.fromRotationTranslationScaleOrigin(this.quaternion,this._position,this._scale,this._pivot,!0)),this},updateQuaternion:function(){return this._quatDirty&&(this._quatDirty=!1,this._quaternion.fromEuler(this._rotation,!0)),this},updateTransform:function(){return this._matrix.decompose(this._quaternion,this._position,this._scale,this._pivot),this._onQuaternionUpdate(),this._matrixDirty=!1,this},updateMatrixWorld:function(t){return this.traverse((function(e){return(e.autoUpdateWorldMatrix||t)&&(e.parent?e.__forceUseParentWorldMatrix?e.worldMatrix.copy(e.parent.worldMatrix):e.worldMatrix.multiply(e.parent.worldMatrix,e.matrix):e.worldMatrix.copy(e.matrix)),e.autoUpdateChildWorldMatrix||t?0:1})),this},getConcatenatedMatrix:function(t){for(var e=new u.a,n=this;n&&n!==t;n=n.parent)e.multiply(n.matrix,e);return e},_traverse:function(t,e){if(!e){var n=t(this);if(2===n||1===n)return n}for(var r=this.children,i=0,a=r.length;i<a;i++){var s=r[i]._traverse(t,!1);if(2===s)return s}return 0},traverse:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._traverse(t,e),this},traverseBFS:function(t){var e,n,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(n=r?this.children:[this];n.length;){e=n,n=[];for(var i=0,a=e.length;i<a;i++){var s=e[i],o=t(s);if(2===o)return this;1!==o&&(n=n.concat(s.children))}}return this},getChildByFnBFS:function(t){var e=null;return this.traverseBFS((function(n){return t(n)?(e=n,2):0}),!0),e},getChildByNamePath:function(t){for(var e=this,n=function(){var n=t[r],i=e.getChildByFnBFS((function(t){return t.name===n}));if(!i)return{v:null};e=i},r=0,i=t.length;r<i;r++){var a=n();if("object"==typeof a)return a.v}return e},traverseUpdate:function(t){return this.traverse((function(e){return e.onUpdate&&e.onUpdate(t),e.needCallChildUpdate?0:1})),this},getChildByFn:function(t){var e=null;return this.traverse((function(n){return t(n)?(e=n,2):0}),!0),e},getChildrenByFn:function(t){var e=[];return this.traverse((function(n){t(n)&&e.push(n)}),!0),e},getChildByName:function(t){return this.getChildByFn((function(e){return e.name===t}))},getChildrenByName:function(t){return this.getChildrenByFn((function(e){return e.name===t}))},getChildById:function(t){return this.getChildByFn((function(e){return e.id===t}))},getChildrenByClassName:function(t){return this.getChildrenByFn((function(e){return e.className===t}))},getChildrenByBaseClassName:function(t){return this.getChildrenByFn((function(e){return e["is"+t]}))},setScale:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;return this._scale.set(t,e,n),this},setPosition:function(t,e,n){return this._position.set(t,e,n),this},setRotation:function(t,e,n){return this._rotation.setDegree(t,e,n),this},setPivot:function(t,e,n){return this._pivot.set(t,e,n),this},lookAt:function(t){return this.isCamera?A.targetTo(this,t,this.up):A.targetTo(t,this,this.up),this._quaternion.fromMat4(A),this},raycast:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!this.visible)return null;var r=[];return this.traverse((function(e){if(n&&!e.pointerEnabled)return 1;if(e.isMesh){var i=e.raycast(t,!1);i&&(r=r.concat(i.map((function(t){return{mesh:e,point:t}}))))}return n&&!e.pointerChildren?1:0})),r.length?(e&&t.sortPoints(r,"point"),r):null},matrix:{get:function(){return this.updateMatrix(),this._matrix},set:function(t){v.a.warnOnce("Node.matrix.set","node.matrix is readOnly.Use node.matrix.copy instead."),this._matrix.copy(t)}},position:{get:function(){return this._position},set:function(t){v.a.warnOnce("Node.position.set","node.position is readOnly.Use node.position.copy instead."),this._position.copy(t)}},x:{get:function(){return this._position.elements[0]},set:function(t){this._position.elements[0]=t,this._matrixDirty=!0}},y:{get:function(){return this._position.elements[1]},set:function(t){this._position.elements[1]=t,this._matrixDirty=!0}},z:{get:function(){return this._position.elements[2]},set:function(t){this._position.elements[2]=t,this._matrixDirty=!0}},scale:{get:function(){return this._scale},set:function(t){v.a.warnOnce("Node.scale.set","node.scale is readOnly.Use node.scale.copy instead."),this._scale.copy(t)}},scaleX:{get:function(){return this._scale.elements[0]},set:function(t){this._scale.elements[0]=t,this._matrixDirty=!0}},scaleY:{get:function(){return this._scale.elements[1]},set:function(t){this._scale.elements[1]=t,this._matrixDirty=!0}},scaleZ:{get:function(){return this._scale.elements[2]},set:function(t){this._scale.elements[2]=t,this._matrixDirty=!0}},pivot:{get:function(){return this._pivot},set:function(t){v.a.warnOnce("Node.pivot.set","node.pivot is readOnly.Use node.pivot.copy instead."),this._pivot.copy(t)}},pivotX:{get:function(){return this._pivot.elements[0]},set:function(t){this._pivot.elements[0]=t,this._matrixDirty=!0}},pivotY:{get:function(){return this._pivot.elements[1]},set:function(t){this._pivot.elements[1]=t,this._matrixDirty=!0}},pivotZ:{get:function(){return this._pivot.elements[2]},set:function(t){this._pivot.elements[2]=t,this._matrixDirty=!0}},rotation:{get:function(){return this._rotation},set:function(t){v.a.warnOnce("Node.rotation.set","node.rotation is readOnly.Use node.rotation.copy instead."),this._rotation.copy(t)}},rotationX:{get:function(){return this._rotation.degX},set:function(t){this._rotation.degX=t}},rotationY:{get:function(){return this._rotation.degY},set:function(t){this._rotation.degY=t}},rotationZ:{get:function(){return this._rotation.degZ},set:function(t){this._rotation.degZ=t}},quaternion:{get:function(){return this.updateQuaternion(),this._quaternion},set:function(t){v.a.warnOnce("Node.quaternion.set","node.quaternion is readOnly.Use node.quaternion.copy instead."),this._quaternion.copy(t)}},matrixVersion:0,getBounds:function(t,e,n){return e?e.multiply(this.matrix):e=this.getConcatenatedMatrix(t),this.children.forEach((function(t){n=t.getBounds(null,e.clone(),n)})),this.isMesh&&(n=this.geometry.getBounds(e,n)),n},_fireMouseEvent:function(t){if(t.eventCurrentTarget=this,this.fire(t),"mousemove"===t.type){if(!this.__mouseOver){this.__mouseOver=!0;var e=Object.assign({},t);e.type="mouseover",this.fire(e)}}else"mouseout"===t.type&&(this.__mouseOver=!1);var n=this.parent;t._stopped||t._stopPropagationed||!n||n._fireMouseEvent(t)},destroy:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.getChildrenByBaseClassName("Node");return this.off(),n.forEach((function(n){n.isMesh?n.destroy(t,e):(n.off(),n.removeFromParent())})),this.removeFromParent(),this},_onMatrixUpdate:function(){this.matrixVersion++,this.updateTransform()},_onPositionUpdate:function(){this._matrixDirty=!0},_onScaleUpdate:function(){this._matrixDirty=!0},_onPivotUpdate:function(){this._matrixDirty=!0},_onRotationUpdate:function(){this._quatDirty=!0,this._matrixDirty=!0},_onQuaternionUpdate:function(){this._rotation.fromQuat(this._quaternion),this._quatDirty=!1}}),I=n(8),R=new I.a,O=a.a.create({Extends:M,isLight:!0,className:"Light",amount:1,enabled:!0,constantAttenuation:1,linearAttenuation:0,quadraticAttenuation:0,_range:0,range:{get:function(){return this._range},set:function(t){this.constantAttenuation=1,t<=0?(this.linearAttenuation=0,this.quadraticAttenuation=0):(this.linearAttenuation=4.5/t,this.quadraticAttenuation=75/(t*t)),this._range=t}},shadow:null,isDirty:!1,constructor:function(t){this.color=new I.a(1,1,1),O.superclass.constructor.call(this,t)},toInfoArray:function(t,e){return t[e+0]=this.constantAttenuation,t[e+1]=this.linearAttenuation,t[e+2]=this.quadraticAttenuation,this},getRealColor:function(){return R.copy(this.color).scale(this.amount)},createShadowMap:function(t,e){}}),L=O,S=n(22),y=new u.a,N=a.a.create({Extends:M,isCamera:!0,className:"Camera",_needUpdateProjectionMatrix:!0,_isGeometryDirty:!1,constructor:function(t){this.viewMatrix=new u.a,this.projectionMatrix=new u.a,this.viewProjectionMatrix=new u.a,this._frustum=new S.a,N.superclass.constructor.call(this,t)},updateViewMatrix:function(){return this.updateMatrixWorld(!0),this.viewMatrix.invert(this.worldMatrix),this},updateProjectionMatrix:function(){},getGeometry:function(t){},updateViewProjectionMatrix:function(){return this._needUpdateProjectionMatrix&&(this.updateProjectionMatrix(),this._needUpdateProjectionMatrix=!1),this.updateViewMatrix(),this.viewProjectionMatrix.multiply(this.projectionMatrix,this.viewMatrix),this.updateFrustum(this.viewProjectionMatrix),this},getModelViewMatrix:function(t,e){return(e=e||new u.a).multiply(this.viewMatrix,t.worldMatrix),e},getModelProjectionMatrix:function(t,e){return(e=e||new u.a).multiply(this.viewProjectionMatrix,t.worldMatrix),e},projectVector:function(t,e,n){var r=t.clone();return r.transformMat4(this.viewProjectionMatrix),e&&n&&(r.x=(r.x+1)/2*e,r.y=n-(r.y+1)/2*n),r},unprojectVector:function(t,e,n){var r=t.clone();return e&&n&&(r.x=r.x/e*2-1,r.y=1-r.y/n*2),y.invert(this.viewProjectionMatrix),r.transformMat4(y),r},isPointVisible:function(t){return!!this._frustum.intersectsSphere({center:t,radius:0})},isMeshVisible:function(t){var e=t.geometry;if(e){var n=e.getSphereBounds(t.worldMatrix);if(this._frustum.intersectsSphere(n))return!0}return!1},updateFrustum:function(t){return this._frustum.fromMatrix(t),this}}),x=N,C=n(13),b=n(11),P=n(9),w=n(19),H={2:new C.a,3:new f.a,4:new b.a,16:new u.a},D=a.a.create({className:"GeometryData",isGeometryData:!0,size:void 0,normalized:!1,type:void 0,_isSubDirty:!1,_isAllDirty:!1,isDirty:{get:function(){return this._isSubDirty||this._isAllDirty},set:function(t){this._isAllDirty=t,!1===t&&this.clearSubData()}},bufferViewId:void 0,glBuffer:null,constructor:function(t,e,n){this.id=E.a.generateUUID(this.className),this.data=t,this.size=e,Object.assign(this,n),this.bufferViewId||(this.bufferViewId=this.id),this.size||v.a.warn("GeometryData.constructor: geometryData must set size!",this)},_stride:0,stride:{get:function(){return this._stride},set:function(t){this._stride=t,this.strideSize=0===t?0:t/this.data.BYTES_PER_ELEMENT}},strideSize:0,_offset:0,offset:{get:function(){return this._offset},set:function(t){this._offset=t,this.offsetSize=t/this.data.BYTES_PER_ELEMENT}},offsetSize:0,data:{set:function(t){t&&(this._data=t,this.type=Object(i.getTypedArrayGLType)(t),this.stride=this._stride,this.offset=this._offset,this._isAllDirty=!0)},get:function(){return this._data}},length:{get:function(){return this._data.length}},realLength:{get:function(){return 0===this.strideSize?this._data.length:this._data.length/this.strideSize*this.size}},getByteLength:function(){return this._data.BYTES_PER_ELEMENT*this.realLength},count:{get:function(){return 0===this.strideSize?this._data.length/this.size:this._data.length/this.strideSize}},setSubData:function(t,e){this._isSubDirty=!0,this.data.set(e,t),this.subDataList||(this.subDataList=[]);var n=e.BYTES_PER_ELEMENT*t;this.subDataList.push({byteOffset:n,data:e})},clearSubData:function(){this.subDataList&&(this.subDataList.length=0),this._isSubDirty=!1},clone:function(){var t=new D(null,1);return t.copy(this),t},copy:function(t){var e=t.data;this.data=new e.constructor(e),this.size=t.size,this.stride=t.stride,this.normalized=t.normalized,this.type=t.type,this.offset=t.offset},getOffset:function(t){var e=this.strideSize;return 0===e?t*this.size:t*e+this.offsetSize},get:function(t){var e=this.getOffset(t);return this.getByOffset(e)},getCopy:function(t){return this.get(t).clone()},set:function(t,e){var n=this.getOffset(t);return this.setByOffset(n,e),n},getByOffset:function(t){var e=this.size;return e>1?H[e].fromArray(this._data,t):this._data[t]},setByOffset:function(t,e){var n=this.size,r=this._data;n>1?e.toArray(r,t):r[t]=e,this._isAllDirty=!0},traverse:function(t){for(var e=this.count,n=0;n<e;n++){var r=this.getOffset(n);if(t(this.getByOffset(r),n,r))return!0}return!1},traverseByComponent:function(t){for(var e=this.count,n=this.size,r=this._data,i=0;i<e;i++)for(var a=this.getOffset(i),s=i*n,o=0;o<n;o++){var u=a+o;if(t(r[u],s+o,u))return!0}return!1},merge:function(t,e){if(t.type!==this.type||t.size!==this.size)return v.a.warn("geometryData type or size not same, cannot merge!",this,t),this;var n=Object(i.getTypedArrayClass)(this.type),r=this.realLength,a=t.realLength,s=new n(r+a);return this.traverseByComponent((function(t,e){s[e]=t})),t.traverseByComponent((function(t,n){e&&(t=e(t,n)),s[r+n]=t})),this.stride=0,this.offset=0,this.data=s,this}}),F=D,U=n(2),G=U.a.TRIANGLES,B=U.a.LINES,V=U.a.FRONT,X=U.a.BACK,j=U.a.FRONT_AND_BACK,k=new f.a,W=new f.a,Y=new f.a,z=new b.a,q=new C.a,Z=new C.a,K=new C.a,Q=new m.a,J=new u.a,$=new P.a,tt=a.a.create({isGeometry:!0,className:"Geometry",vertices:null,uvs:null,uvs1:null,colors:null,indices:null,skinIndices:null,skinWeights:null,mode:G,isStatic:!0,isDirty:!0,useAABBRaycast:!1,userData:null,constructor:function(t){this.id=E.a.generateUUID(this.className),Object.assign(this,t),this.currentVerticesCount=0,this.currentIndicesCount=0},_needUpdateNormals:!1,normals:{get:function(){return!this._needUpdateNormals&&this._normals||this.calculateNormals(),this._normals},set:function(t){this._normals=t,this._needUpdateNormals=!1}},calculateNormals:function(){var t=this.vertices;if(t){this._normals||(this._normals=new F(new Float32Array(t.realLength),3));var e,n=this._normals;if(this.indices)e=this.indices.data;else{var r=t.length/3;e=new Array(r);for(var i=0;i<r;i++)e[i]=i}for(var a=0,s=new Uint8Array(t.count),o=0;o<e.length;o+=3){a=e[o],k.copy(t.get(a)),a=e[o+1],W.copy(t.get(a)),a=e[o+2],Y.copy(t.get(a)),W.sub(k),Y.sub(k),W.cross(Y);for(var u=0;u<3;u++){if(s[a=e[o+u]]){var c=n.get(a);c.scale(s[a]),c.add(W),c.scale(1/(s[a]+1)),n.set(a,c)}else n.set(a,W);s[a]++}}this.isDirty=!0,this._needUpdateNormals=!1}else v.a.warnOnce("geometry.calculateNormals","geometry.calculateNormals error:no vertices data.")},tangents:{get:function(){return this._tangents||this.calculateTangents(this.uvs,"_tangents"),this._tangents},set:function(t){this._tangents=t}},tangents1:{get:function(){return this._tangents1||this.calculateTangents(this.uvs1,"_tangents1"),this._tangents1},set:function(t){this._tangents1=t}},calculateTangents:function(t,e){var n=this.vertices;if(n){this[e]||(this[e]=new F(new Float32Array(4*n.count),4));var r,i=this[e];if(this.indices)r=this.indices.data;else{var a=n.length/3;r=new Array(a);for(var s=0;s<a;s++)r[s]=s}for(var o=0,u=0;u<r.length;u+=3){o=r[u],k.copy(n.get(o)),q.copy(t.get(o)),o=r[u+1],W.copy(n.get(o)),Z.copy(t.get(o)),o=r[u+2],Y.copy(n.get(o)),K.copy(t.get(o)),W.sub(k),Y.sub(k),Z.sub(q),K.sub(q);var c=1/(Z.x*K.y-K.x*Z.y);Number.isFinite(c)?(k.x=c*(K.y*W.x-Z.y*Y.x),k.y=c*(K.y*W.y-Z.y*Y.y),k.z=c*(K.y*W.z-Z.y*Y.z)):(k.x=0,k.y=0,k.z=1),z.set(k.x,k.y,k.z,1),i.set(r[u],z),i.set(r[u+1],z),i.set(r[u+2],z)}this.isDirty=!0}else v.a.warnOnce("geometry.calculateTangents","geometry.calculateTangents error:no vertices data.")},convertToLinesMode:function(){if(this.mode===G)if(this.indices){for(var t=new Uint16Array(2*this.indices.length),e=this.indices.data,n=0;n<e.length;n+=3)t[2*n]=e[n],t[2*n+1]=e[n+1],t[2*n+2]=e[n+1],t[2*n+3]=e[n+2],t[2*n+4]=e[n+2],t[2*n+5]=e[n];this.indices.data=t,this.mode=B}else v.a.warn("Has no indices!");else v.a.warn("Only support convert triangles to lines mode!")},translate:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.transformMat4(J.fromTranslation(k.set(t,e,n))),this},scale:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return this.transformMat4(J.fromScaling(k.set(t,e,n))),this},rotate:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.transformMat4(J.fromQuat($.fromEuler({x:t*E.a.DEG2RAD,y:e*E.a.DEG2RAD,z:n*E.a.DEG2RAD}))),this},transformMat4:function(t){var e=this.vertices;if(e&&e.traverse((function(n,r,i){e.setByOffset(i,n.transformMat4(t))})),Q.normalFromMat4(t),this._normals){var n=this.normals;n.traverse((function(t,e,r){n.setByOffset(r,t.transformMat3(Q).normalize())}))}if(this._tangents){var r=this.tangents;r.traverse((function(t,e,n){r.setByOffset(n,t.transformMat3(Q).normalize())}))}return this.isDirty=!0,this},merge:function(t,e){var n=t.vertices;if(n&&this.vertices){var r=this.vertices.count;e&&(n=t.vertices.clone()).traverse((function(t,r,i){n.setByOffset(i,t.transformMat4(e))})),this.vertices.merge(n),this.indices&&t.indices?this.indices.merge(t.indices,(function(t){return t+r})):this.indices=null}return this.uvs&&t.uvs?this.uvs.merge(t.uvs):this.uvs=null,this.uvs1&&t.uvs1?this.uvs1.merge(t.uvs1):this.uvs1=null,this.colors&&t.colors?this.colors.merge(t.colors):this.colors=null,this._normals&&(this._normals=null),this._tangents&&(this._tangents=null),this._tangents1&&(this._tangents1=null),this.isDirty=!0,this},ensureData:function(t,e,n,r){var i=this[t];if(!i||n>i.length){var a=new r(n);i?(a.set(i.data),i.data=a):this[t]=new F(a,e)}},addPoints:function(){var t=this,e=[].slice.call(arguments),n=3*(this.currentVerticesCount+e.length);this.ensureData("vertices",3,n,Float32Array);var r=this.vertices.data;return e.forEach((function(e){var n=3*t.currentVerticesCount++;r[n]=e[0],r[n+1]=e[1],r[n+2]=e[2]})),this.currentVerticesCount-e.length},addIndices:function(){var t=this,e=[].slice.call(arguments),n=this.currentIndicesCount+e.length;this.ensureData("indices",1,n,Uint16Array);var r=this.indices.data;e.forEach((function(e){r[t.currentIndicesCount++]=e})),this._needUpdateNormals=!0},addLine:function(t,e){var n=this.addPoints(t,e);this.addIndices(n,n+1)},addFace:function(t,e,n){var r=this.addPoints(t,e,n);this.addIndices(r,r+1,r+2)},addRect:function(t,e,n,r){var i=this.addPoints(t,e,n,r);this.addIndices(i,i+1,i+2,i,i+2,i+3)},setVertexUV:function(t,e){this.ensureData("uvs",2,this.vertices.length/3*2,Float32Array);for(var n=this.uvs.data,r=0;r<e.length;r++)n[t+2*r]=e[r][0],n[t+2*r+1]=e[r][1]},setFaceUV:function(t,e,n,r){this.setVertexUV(t,[e,n,r])},setRectUV:function(t,e,n,r,i){this.setVertexUV(t,[e,n,r,i])},getBounds:function(t,e){e||(e={xMin:1/0,xMax:-1/0,yMin:1/0,yMax:-1/0,zMin:1/0,zMax:-1/0});var n=this.vertices;return n?(n.traverse((function(n){t&&n.transformMat4(t),e.xMax=Math.max(e.xMax,n.x),e.yMax=Math.max(e.yMax,n.y),e.zMax=Math.max(e.zMax,n.z),e.xMin=Math.min(e.xMin,n.x),e.yMin=Math.min(e.yMin,n.y),e.zMin=Math.min(e.zMin,n.z)})),e.width=e.xMax-e.xMin,e.height=e.yMax-e.yMin,e.depth=e.zMax-e.zMin,e.x=(e.xMin+e.xMax)/2,e.y=(e.yMin+e.yMax)/2,e.z=(e.zMin+e.zMax)/2,e):(v.a.warnOnce("geometry.getBounds","geometry has no vertices data, geometry.getBounds will return Infinity bounds."),e)},getLocalBounds:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this._localBounds&&!t||(this._localBounds=this.getBounds()),this._localBounds},getSphereBounds:function(t){this._sphereBounds||(this._sphereBounds=new w.a);var e=this._sphereBounds;return e.copy(this.getLocalSphereBounds()),t&&e.transformMat4(t),e},getLocalSphereBounds:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this._localSphereBounds||t){var e=this.getLocalBounds(t),n=new w.a({center:new f.a(e.x,e.y,e.z)}),r=this.vertices;r?n.fromGeometryData(r):(v.a.warnOnce("geometry.getLocalSphereBounds","geometry has no vertices data, geometry.getLocalSphereBounds will return Infinity bounds."),n.radius=1/0),this._localSphereBounds=n}return this._localSphereBounds},convertToNoIndices:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3;if(this.mode===G)if(this.indices){for(var e=this.indices.data,n=e.length,r=new Float32Array(n*t),a=this.uvs?new Float32Array(2*n):null,s=new Float32Array(3*n),o=this.colors?new Float32Array(this.colors.size*n):null,u=this.skinIndices?new Float32Array(4*n):null,c=this.skinWeights?new Float32Array(4*n):null,f=0;f<n;f++){var h=e[f];Object(i.copyArrayData)(r,this.vertices,f*t,3*h,3),4===t&&(r[4*f+3]=1),Object(i.copyArrayData)(a,this.uvs,2*f,2*h,2),Object(i.copyArrayData)(s,this.normals,3*f,3*h,3),Object(i.copyArrayData)(u,this.skinIndices,4*f,4*h,4),Object(i.copyArrayData)(c,this.skinWeights,4*f,4*h,4),this.colors&&Object(i.copyArrayData)(o,this.colors,f*this.colors.size,h*this.colors.size,this.colors.size)}delete this.indices,this.vertices.data=r,this.uvs&&(this.uvs.data=a),this.normals&&(this.normals.data=s),this.colors&&(this.colors.data=o),this.skinIndices&&(this.skinIndices.data=u),this.skinWeights&&(this.skinWeights.data=c)}else v.a.warn("Has no indices!");else v.a.warn("Only support convert triangles to lines mode!")},clone:function(){var t=new this.constructor({mode:this.mode});return this.vertices&&(t.vertices=this.vertices.clone()),this.uvs&&(t.uvs=this.uvs.clone()),this.uvs1&&(t.uvs1=this.uvs1.clone()),this.colors&&(t.colors=this.colors.clone()),this.indices&&(t.indices=this.indices.clone()),this.skinWeights&&(t.skinWeights=this.skinWeights.clone()),this.skinIndices&&(t.skinIndices=this.skinIndices.clone()),this._normals&&(t._normals=this._normals.clone()),this._tangents&&(t._tangents=this._tangents.clone()),this._tangents1&&(t._tangents1=this._tangents1.clone()),this.positionDecodeMat&&(t.positionDecodeMat=this.positionDecodeMat),this.uvDecodeMat&&(t.uvDecodeMat=this.uvDecodeMat),this.uv1DecodeMat&&(t.uv1DecodeMat=this.uv1DecodeMat),this.normalDecodeMat&&(t.normalDecodeMat=this.normalDecodeMat),t},_aabbRaycast:function(t){var e=this.getLocalBounds(),n=t.intersectsBox([[e.xMin,e.yMin,e.zMin],[e.xMax,e.yMax,e.zMax]]);return n?[n]:null},_raycast:function(t,e){var n=this.vertices;if(!n)return null;var r,i=this.indices,a=[],s=[];r=i?i.realLength:n.realLength/3;for(var o=0;o<r;o+=3){var u=i?i.get(o):o;k.copy(n.get(u)),u=i?i.get(o+1):o+1,W.copy(n.get(u)),u=i?i.get(o+2):o+2,Y.copy(n.get(u));var c=void 0;e===V?(a[0]=k.elements,a[1]=W.elements,a[2]=Y.elements,c=t.intersectsTriangle(a)):e===X?(a[1]=k.elements,a[0]=W.elements,a[2]=Y.elements,c=t.intersectsTriangle(a)):e===j&&(a[0]=k.elements,a[1]=W.elements,a[2]=Y.elements,(c=t.intersectsTriangle(a))||(a[1]=k.elements,a[0]=W.elements,a[2]=Y.elements,c=t.intersectsTriangle(a))),c&&s.push(c)}return s.length?s:null},raycast:function(t,e){var n,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return(n=this.useAABBRaycast?this._aabbRaycast(t):this._raycast(t,e))&&r&&t.sortPoints(n),n},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.positionDecodeMat&&(t.QUANTIZED=1,t.POSITION_QUANTIZED=1),this.normalDecodeMat&&(t.QUANTIZED=1,t.NORMAL_QUANTIZED=1),this.uvDecodeMat&&(t.QUANTIZED=1,t.UV_QUANTIZED=1),this.uv1DecodeMat&&(t.QUANTIZED=1,t.UV1_QUANTIZED=1),this.colors&&(t.HAS_COLOR=1,t.COLOR_SIZE=this.colors.size),t},getShaderKey:function(){return void 0===this._shaderKey&&(this._shaderKey="geometry",this.isMorphGeometry?this._shaderKey+="_id_".concat(this.id):(this.colors&&(this._shaderKey+="_colors"),this.positionDecodeMat&&(this._shaderKey+="positionDecodeMat"))),this._shaderKey},getSize:function(){var t=0;for(var e in this)Object(i.hasOwnProperty)(this,e)&&this[e]&&this[e].isGeometryData&&(t+=this[e].getByteLength());return t},destroy:function(){v.a.warn("Geometry.destroy has been deprecated, use mesh.destroy(renderer) instead.")}}),et=a.a.create({Extends:x,isPerspectiveCamera:!0,className:"PerspectiveCamera",_near:.1,near:{get:function(){return this._near},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._near=t}},_far:null,far:{get:function(){return this._far},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._far=t}},_fov:50,fov:{get:function(){return this._fov},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._fov=t}},_aspect:1,aspect:{get:function(){return this._aspect},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._aspect=t}},constructor:function(t){et.superclass.constructor.call(this,t),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=this.projectionMatrix.elements,e=this.near,n=this.far,r=this.aspect,i=this.fov,a=1/Math.tan(.5*E.a.degToRad(i));if(t[0]=a/r,t[5]=a,t[11]=-1,t[15]=0,n){var s=1/(e-n);t[10]=(e+n)*s,t[14]=2*n*e*s}else t[10]=-1,t[14]=-2*e},getGeometry:function(t){if(t||!this._geometry||this._isGeometryDirty){this._isGeometryDirty=!1;var e=new tt,n=Math.tan(this.fov/2*Math.PI/180),r=this.near,i=this.far,a=r*n,s=i*n,o=this.aspect*a,u=this.aspect*s,c=[-o,-a,-r],f=[o,-a,-r],h=[o,a,-r],l=[-o,a,-r],d=[-u,-s,-i],m=[u,-s,-i],_=[u,s,-i],p=[-u,s,-i];e.addRect(d,m,_,p),e.addRect(m,f,h,_),e.addRect(f,c,l,h),e.addRect(c,d,p,l),e.addRect(p,_,h,l),e.addRect(c,f,m,d),this._geometry=e}return this._geometry}}),nt=et,rt=a.a.create({constructor:function(){this._cache={}},get:function(t){return this._cache[t]},getObject:function(t){return this._cache[t.__cacheId]},add:function(t,e){"object"==typeof e&&(e.__cacheId=t),this._cache[t]=e},remove:function(t){delete this._cache[t]},removeObject:function(t){delete this._cache[t.__cacheId]},removeAll:function(){this._cache={}},each:function(t){var e=this._cache;for(var n in e)t(e[n],n)}});function it(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function at(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(i=r.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"))?a:String(a)),r)}var i,a}function st(t,e,n){return e&&at(t.prototype,e),n&&at(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function ot(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ut(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(i=r.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"))?a:String(a)),r)}var i,a}function ct(t,e,n){return e&&ut(t.prototype,e),n&&ut(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function ft(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ht(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,(i=r.key,a=void 0,"symbol"==typeof(a=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(i,"string"))?a:String(a)),r)}var i,a}function lt(t,e,n){return e&&ht(t.prototype,e),n&&ht(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var dt={OES_texture_float:{name:"OES_texture_float"},EXT_frag_depth:{name:"EXT_frag_depth"},OES_element_index_uint:{name:"OES_element_index_uint"},EXT_shader_texture_lod:{name:"EXT_shader_texture_lod"},EXT_sRGB:{name:"EXT_sRGB"}},mt={OES_vertex_array_object:{WebGL1:function(){function t(e){it(this,t),this._ext=e}return st(t,[{key:"createVertexArray",value:function(t){return this._ext.createVertexArrayOES(t)}},{key:"deleteVertexArray",value:function(t){this._ext.deleteVertexArrayOES(t)}},{key:"isVertexArray",value:function(t){return this._ext.isVertexArrayOES(t)}},{key:"bindVertexArray",value:function(t){this._ext.bindVertexArrayOES(t)}}]),t}(),WebGL2:function(){function t(e){it(this,t),this._gl=e}return st(t,[{key:"createVertexArray",value:function(t){return this._gl.createVertexArray(t)}},{key:"deleteVertexArray",value:function(t){this._gl.deleteVertexArray(t)}},{key:"isVertexArray",value:function(t){return this._gl.isVertexArray(t)}},{key:"bindVertexArray",value:function(t){this._gl.bindVertexArray(t)}}]),t}()},ANGLE_instanced_arrays:{WebGL1:function(){function t(e){ot(this,t),this._ext=e}return ct(t,[{key:"drawArraysInstanced",value:function(t,e,n,r){this._ext.drawArraysInstancedANGLE(t,e,n,r)}},{key:"drawElementsInstanced",value:function(t,e,n,r,i){this._ext.drawElementsInstancedANGLE(t,e,n,r,i)}},{key:"vertexAttribDivisor",value:function(t,e){this._ext.vertexAttribDivisorANGLE(t,e)}}]),t}(),WebGL2:function(){function t(e){ot(this,t),this._gl=e}return ct(t,[{key:"drawArraysInstanced",value:function(t,e,n,r){this._gl.drawArraysInstanced(t,e,n,r)}},{key:"drawElementsInstanced",value:function(t,e,n,r,i){this._gl.drawElementsInstanced(t,e,n,r,i)}},{key:"vertexAttribDivisor",value:function(t,e){this._gl.vertexAttribDivisor(t,e)}}]),t}()},WEBGL_draw_buffers:{WebGL1:function(){function t(e){ft(this,t),this._ext=e}return lt(t,[{key:"drawBuffers",value:function(t){this._ext.drawBuffersWEBGL(t)}}]),t}(),WebGL2:function(){function t(e){ft(this,t),this._gl=e}return lt(t,[{key:"drawBuffers",value:function(t){this._gl.drawBuffers(t)}}]),t}()}},_t={instanced:void 0,vao:void 0,drawBuffers:void 0,texFloat:void 0,fragDepth:void 0,loseContext:void 0,textureFilterAnisotropic:void 0,sRGB:void 0,_usedExtensions:{},_disabledExtensions:{},init:function(t){this.reset(t)},reset:function(t){this.gl=t,this.isWebGL2=Object(i.isWebGL2)(t);var e=this._usedExtensions;for(var n in e){var r=e[n];this[r]=void 0,this.get(n,r)}},use:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;this._usedExtensions[t]=e,this.gl&&this.get(t,e)},get:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;if(this._disabledExtensions[t])return null;var n=this[e];return void 0===n&&(n=this._getExtension(t),this[e]=n),n},disable:function(t){this._disabledExtensions[t]=!0},enable:function(t){this._disabledExtensions[t]=!1},_getExtension:function(t){var e=this.gl;if(this.isWebGL2&&dt[t])return dt[t];var n=mt[t];if(n){if(this.isWebGL2)return new n.WebGL2(e);var r=this._getOriginExtension(t);return r?new n.WebGL1(r):null}return this._getOriginExtension(t)},_getOriginExtension:function(t){var e=this.gl;return e&&e.getExtension&&(e.getExtension(t)||e.getExtension("WEBKIT_"+t)||e.getExtension("MOZ_"+t))||null}};_t.use("ANGLE_instanced_arrays","instanced"),_t.use("OES_vertex_array_object","vao"),_t.use("OES_texture_float","texFloat"),_t.use("OES_element_index_uint","uintIndices"),_t.use("EXT_shader_texture_lod","shaderTextureLod"),_t.use("EXT_frag_depth","fragDepth"),_t.use("EXT_texture_filter_anisotropic","textureFilterAnisotropic"),_t.use("WEBGL_lose_context","loseContext"),_t.use("EXT_color_buffer_float","colorBufferFloat"),_t.use("EXT_sRGB","sRGB"),_t.use("WEBGL_draw_buffers","drawBuffers");var pt=_t,gt={isWebGL2:!1,MAX_TEXTURE_INDEX:null,MAX_PRECISION:null,MAX_VERTEX_PRECISION:null,MAX_FRAGMENT_PRECISION:null,VERTEX_TEXTURE_FLOAT:null,FRAGMENT_TEXTURE_FLOAT:null,MAX_TEXTURE_MAX_ANISOTROPY:1,MAX_RENDERBUFFER_SIZE:void 0,MAX_COMBINED_TEXTURE_IMAGE_UNITS:void 0,MAX_CUBE_MAP_TEXTURE_SIZE:void 0,MAX_FRAGMENT_UNIFORM_VECTORS:void 0,MAX_TEXTURE_IMAGE_UNITS:void 0,MAX_TEXTURE_SIZE:void 0,MAX_VARYING_VECTORS:void 0,MAX_VERTEX_ATTRIBS:void 0,MAX_VERTEX_TEXTURE_IMAGE_UNITS:void 0,MAX_VERTEX_UNIFORM_VECTORS:void 0,init:function(t){var e=this;this.gl=t,this.isWebGL2=Object(i.isWebGL2)(t);["MAX_RENDERBUFFER_SIZE","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS"].forEach((function(t){e.get(t)})),this.MAX_TEXTURE_INDEX=this.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,this.MAX_VERTEX_PRECISION=this._getMaxSupportPrecision(t.VERTEX_SHADER),this.MAX_FRAGMENT_PRECISION=this._getMaxSupportPrecision(t.FRAGMENT_SHADER),this.MAX_PRECISION=this.getMaxPrecision(this.MAX_FRAGMENT_PRECISION,this.MAX_VERTEX_PRECISION),this.VERTEX_TEXTURE_FLOAT=!!pt.texFloat&&this.MAX_VERTEX_TEXTURE_IMAGE_UNITS>0,this.FRAGMENT_TEXTURE_FLOAT=!!pt.texFloat,this.FRAG_DEPTH=!!pt.fragDepth,this.SHADER_TEXTURE_LOD=!!pt.shaderTextureLod,this.DRAW_BUFFERS=!!pt.drawBuffers,pt.textureFilterAnisotropic&&(this.MAX_TEXTURE_MAX_ANISOTROPY=t.getParameter(pt.textureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT))},get:function(t){var e=this.gl,n=this[t];return void 0===n&&(n=this[t]=e.getParameter(e[t])),n},_getMaxSupportPrecision:function(t){var e=this.gl,n="lowp";if(e.getShaderPrecisionFormat)for(var r=[{name:"highp",type:e.HIGH_FLOAT},{name:"mediump",type:e.MEDIUM_FLOAT}],i=0;i<r.length;i++){var a=r[i];if((e.getShaderPrecisionFormat(t,a.type)||{}).precision>0){n=a.name;break}}else n="mediump";return n},getMaxPrecision:function(t,e){return"highp"===t||"mediump"===t&&"lowp"===e?e:t}},Et=n(49),vt=n.n(Et),Tt=n(50),At=n.n(Tt),Mt=n(51),It=n.n(Mt),Rt=n(52),Ot=n.n(Rt),Lt=new rt,St=new rt,yt=a.a.create({isShader:!0,className:"Shader",vs:"",fs:"",Statics:{commonOptions:{},shaders:{"chunk/baseDefine.glsl":n(17),"chunk/color.frag":n(35),"chunk/color.vert":n(73),"chunk/color_main.vert":n(75),"chunk/diffuse.frag":n(55),"chunk/diffuse_main.frag":n(64),"chunk/extensions.frag":n(23),"chunk/extensions.vert":n(47),"chunk/fog.frag":n(42),"chunk/fog_main.frag":n(66),"chunk/frag_color.frag":n(46),"chunk/joint.vert":n(68),"chunk/joint_main.vert":n(78),"chunk/light.frag":n(39),"chunk/lightFog.frag":n(38),"chunk/lightFog.vert":n(71),"chunk/lightFog_main.frag":n(44),"chunk/lightFog_main.vert":n(81),"chunk/logDepth.frag":n(27),"chunk/logDepth_main.frag":n(28),"chunk/logDepth.vert":n(74),"chunk/logDepth_main.vert":n(82),"chunk/morph.vert":n(72),"chunk/morph_main.vert":n(77),"chunk/normal.frag":n(37),"chunk/normal.vert":n(70),"chunk/normal_main.frag":n(43),"chunk/normal_main.vert":n(80),"chunk/pbr.frag":n(84),"chunk/pbr_main.frag":n(86),"chunk/phong.frag":n(62),"chunk/phong_main.frag":n(65),"chunk/precision.frag":n(24),"chunk/precision.vert":n(48),"chunk/transparency.frag":n(41),"chunk/transparency_main.frag":n(45),"chunk/unQuantize.vert":n(67),"chunk/unQuantize_main.vert":n(76),"chunk/uv.frag":n(36),"chunk/uv.vert":n(69),"chunk/uv_main.vert":n(79),"method/encoding.glsl":n(85),"method/getDiffuse.glsl":n(57),"method/getLightAttenuation.glsl":n(59),"method/getShadow.glsl":n(61),"method/getSpecular.glsl":n(58),"method/packFloat.glsl":n(83),"method/textureEnvMap.glsl":n(40),"method/transpose.glsl":n(56),"method/unpackFloat.glsl":n(60),"basic.frag":n(49),"basic.vert":n(50),"geometry.frag":n(51),"pbr.frag":n(52),"screen.frag":n(53),"screen.vert":n(54)},init:function(t){this.renderer=t,this.commonHeader=this._getCommonHeader(this.renderer)},cache:{get:function(){return Lt}},headerCache:{get:function(){return St}},reset:function(t){Lt.removeAll()},getHeaderKey:function(t,e,n,r,i){var a="header_"+e.id+"_"+n.lightInfo.uid;return t.isSkinedMesh&&(a+="_joint"+t.skeleton.jointCount),r&&(a+="_fog_"+r.mode),a+="_"+t.geometry.getShaderKey(),i&&(a+="_fogDepth"),a},getHeader:function(t,e,n,r,i){var a=this.getHeaderKey(t,e,n,r),s=St.get(a);if(!s||e.isDirty){var o={};Object.assign(o,this.commonOptions);var u=e.lightType;u&&"NONE"!==u&&n.getRenderOption(o),e.getRenderOption(o),t.getRenderOption(o),r&&(o.HAS_FOG=1,r.getRenderOption(o)),i&&(o.USE_LOG_DEPTH=1,gt.FRAG_DEPTH&&(o.USE_FRAG_DEPTH=1)),o.HAS_NORMAL&&o.NORMAL_MAP&&(o.HAS_TANGENT=1),o.RECEIVE_SHADOWS||(delete o.DIRECTIONAL_LIGHTS_SMC,delete o.SPOT_LIGHTS_SMC,delete o.POINT_LIGHTS_SMC),s="#define SHADER_NAME ".concat(e.shaderName||e.className,"\n"),s+=Object.keys(o).map((function(t){return t.indexOf("HILO_CUSTUM_OPTION_")>-1?"#define ".concat(t.replace("HILO_CUSTUM_OPTION_","")," ").concat(o[t]):"#define HILO_".concat(t," ").concat(o[t])})).join("\n")+"\n",St.add(a,s)}return s},_getCommonHeader:function(t){var e=gt.getMaxPrecision(gt.MAX_VERTEX_PRECISION,t.vertexPrecision),n=gt.getMaxPrecision(gt.MAX_FRAGMENT_PRECISION,t.fragmentPrecision),r=gt.getMaxPrecision(e,n);return"\n#define HILO_MAX_PRECISION ".concat(r,"\n#define HILO_MAX_VERTEX_PRECISION ").concat(e,"\n#define HILO_MAX_FRAGMENT_PRECISION ").concat(n,"\n")},getShader:function(t,e,n,r,i,a){var s=this.getHeader(t,e,r,i,a);return e.isBasicMaterial||e.isPBRMaterial?this.getBasicShader(e,n,s):e.isShaderMaterial?this.getCustomShader(e.vs,e.fs,s,e.shaderCacheId||e.id,e.useHeaderCache):null},getBasicShader:function(t,e,n){var r="";e&&(r=(r=t.getInstancedUniforms().map((function(t){return t.name}))).join("|"));var i=t.className+":"+r;t.onBeforeCompile&&(i+=":"+(t.shaderCacheId||t.id));var a=Lt.get(i);if(!a){var s="",o=At.a;if(t.isBasicMaterial?t.isGeometryMaterial?s+=It.a:s+=vt.a:t.isPBRMaterial&&(s+=Ot.a),t.onBeforeCompile){var u=t.onBeforeCompile(o,s);s=u.fs,o=u.vs}if(r){var c=new RegExp("^\\s*uniform\\s+(\\w+)\\s+(".concat(r,");"),"gm");o=o.replace(c,"attribute $1 $2;")}a=this.getCustomShader(o,s,n,i,!0)}if(a){var f=this._getNumId(a);null!==f&&(t._shaderNumId=f)}return a},_getNumId:function(t){var e=t.id.match(/_(\d+)/);return e&&e[1]?parseInt(e[1],10):null},getCustomShader:function(t,e,n,r,i){var a,s=this.commonHeader;return r&&(i&&(r+=":"+n),a=Lt.get(r)),a||(a=new yt({vs:s+n+t,fs:s+n+e}),r&&Lt.add(r,a)),a}},alwaysUse:!1,constructor:function(t){this.id=E.a.generateUUID(this.className),Object.assign(this,t)},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){return this._isDestroyed||(Lt.removeObject(this),this._isDestroyed=!0),this}}),Nt=yt,xt=n(54),Ct=n.n(xt),bt=n(53),Pt=n.n(bt),wt=[{name:"FLOAT",byteSize:4,uniformFuncName:"uniform1f",type:"Scalar",size:1},{name:"FLOAT_VEC2",byteSize:8,uniformFuncName:"uniform2f",type:"Vector",size:2},{name:"FLOAT_VEC3",byteSize:12,uniformFuncName:"uniform3f",type:"Vector",size:3},{name:"FLOAT_VEC4",byteSize:16,uniformFuncName:"uniform4f",type:"Vector",size:4},{name:"FLOAT_MAT2",byteSize:16,uniformFuncName:"uniformMatrix2fv",type:"Matrix",size:4},{name:"FLOAT_MAT3",byteSize:36,uniformFuncName:"uniformMatrix3fv",type:"Matrix",size:9},{name:"FLOAT_MAT4",byteSize:64,uniformFuncName:"uniformMatrix4fv",type:"Matrix",size:16},{name:"INT",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1},{name:"INT_VEC2",byteSize:8,uniformFuncName:"uniform2i",type:"Vector",size:2},{name:"INT_VEC3",byteSize:12,uniformFuncName:"uniform3i",type:"Vector",size:3},{name:"INT_VEC4",byteSize:16,uniformFuncName:"uniform4i",type:"Vector",size:4},{name:"BOOL",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1},{name:"BOOL_VEC2",byteSize:8,uniformFuncName:"uniform2i",type:"Vector",size:2},{name:"BOOL_VEC3",byteSize:12,uniformFuncName:"uniform3i",type:"Vector",size:3},{name:"BOOL_VEC4",byteSize:16,uniformFuncName:"uniform4i",type:"Vector",size:4},{name:"SAMPLER_2D",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1},{name:"SAMPLER_CUBE",byteSize:4,uniformFuncName:"uniform1i",type:"Scalar",size:1}],Ht={},Dt={dict:Ht,init:function(t){wt.forEach((function(e){var n,r,i=e.name,a=e.uniformFuncName,s=a+"v";"Matrix"===e.type?n=r=function(e,n){void 0!==n&&t[a](e,!1,n)}:(n=function(e,n){void 0!==n&&t[a](e,n)},r=function(e,n){t[s](e,n)}),Ht[t[i]]=Object.assign(e,{glValue:t[i],uniform:n,uniformArray:r})}))},get:function(t){return Ht[t]}},Ft=n(105),Ut=n(106),Gt=U.a.VERTEX_SHADER,Bt=new rt,Vt=a.a.create({Statics:{cache:{get:function(){return Bt}},reset:function(t){Bt.each((function(t){t.destroy()}))},getProgram:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.id,i=Bt.get(r);return i||(i=new Vt({state:e,vertexShader:t.vs,fragShader:t.fs,ignoreError:n}),Bt.add(r,i)),i},getBlankProgram:function(t){var e=Nt.getCustomShader("void main(){}","precision HILO_MAX_FRAGMENT_PRECISION float;void main(){gl_FragColor = vec4(0.0);}","","__hiloBlankShader");return this.getProgram(e,t,!0)}},className:"Program",isProgram:!0,fragShader:"",vertexShader:"",attributes:null,uniforms:null,uniformBlocks:null,program:null,gl:null,state:null,alwaysUse:!1,isWebGL2:!1,constructor:function(t){return this.id=E.a.generateUUID(this.className),Object.assign(this,t),this._dict={},this.attributes={},this.uniforms={},this.uniformBlocks={},this.gl=this.state.gl,this.isWebGL2=this.state.isWebGL2,this.program=this.createProgram(),this.program?(this.initAttributes(),this.initUniforms(),this):this.ignoreError?this:Vt.getBlankProgram(t.state)},createProgram:function(){var t=this.gl,e=t.createProgram(),n=this.createShader(t.VERTEX_SHADER,this.vertexShader),r=this.createShader(t.FRAGMENT_SHADER,this.fragShader);if(n&&r){if(t.attachShader(e,n),t.attachShader(e,r),t.linkProgram(e),t.deleteShader(n),t.deleteShader(r),!t.getProgramParameter(e,t.LINK_STATUS)){var i=t.getProgramInfoLog(e);return v.a.error("compileProgramError: "+i,this),t.deleteProgram(e),null}return e}return null},useProgram:function(){this.state.useProgram(this.program)},createShader:function(t,e){this.isWebGL2&&(e=this._convertToGLSL300(t,e));var n=this.gl,r=n.createShader(t);if(n.shaderSource(r,e),n.compileShader(r),!n.getShaderParameter(r,n.COMPILE_STATUS)){var i=n.getShaderInfoLog(r);return v.a.error("compileShaderError: "+i,e.split("\n").map((function(t,e){return"".concat(e+1," ").concat(t)})).join("\n")),null}return r},_convertToGLSL300:function(t,e){return t===Gt?Ft+e:(Ut+e).replace(/gl_FragData\[(\d)\]/g,"hilo_FragData$1")},initAttributes:function(){for(var t=this,e=this.gl,n=this.program,r=e.getProgramParameter(n,e.ACTIVE_ATTRIBUTES),i=pt.instanced,a=function(){var r=e.getActiveAttrib(n,s),a=r.name,o=r.type,u=r.size,c=e.getAttribLocation(n,a),f=Dt.get(o),h=function(t){var n=t.type,r=void 0===n?e.FLOAT:n,i=t.normalized,a=void 0!==i&&i,s=t.stride,o=void 0===s?0:s,u=t.offset,h=void 0===u?0:u,l=t.size,d=void 0===l?f.size:l;e.vertexAttribPointer(c,d,r,a,o,h)},l=function(){e.enableVertexAttribArray(c)},d=function(){},m=function(t,e){t[c]=e};if(i&&(d=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;i.vertexAttribDivisor(c,t)}),"Matrix"===f.type){var _=f.byteSize,p=f.size,g=Math.sqrt(p),E=4*g,v=function(t){for(var e=0;e<g;e++)t(c+e,e)};h=function(t){var n,r=t.type,i=void 0===r?e.FLOAT:r,a=t.normalized,s=void 0!==a&&a,o=t.stride,u=void 0===o?0:o,c=t.offset,f=void 0===c?0:c;n=0===u?_:u,v((function(t,r){e.vertexAttribPointer(t,g,i,s,n,f+E*r)}))},l=function(){v((function(t){e.enableVertexAttribArray(t)}))},m=function(t,e){v((function(n){t[n]=e}))},i&&(d=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;v((function(e){i.vertexAttribDivisor(e,t)}))})}t.attributes[a]={name:a,location:c,type:o,size:u,glTypeInfo:f,pointer:h,enable:l,divisor:d,addTo:m}},s=0;s<r;s++)a()},initUniforms:function(){var t,e=this,n=this.gl,r=this.program,i=this.uniforms,a=this.uniformBlocks,s=n.getProgramParameter(r,n.ACTIVE_UNIFORMS);if(this.isWebGL2){for(var o=n.getProgramParameter(r,n.ACTIVE_UNIFORM_BLOCKS),u=function(t){var i=n.getActiveUniformBlockName(r,t),s=n.getUniformBlockIndex(r,i);n.uniformBlockBinding(r,s,t),a[i]={blockIndex:s},Object.defineProperty(e,i,{set:function(e){n.bindBufferBase(n.UNIFORM_BUFFER,t,e.getBuffer(n).buffer)}})},c=0;c<o;c++)u(c);for(var f=[],h=0;h<s;h++)f.push(h);t=n.getActiveUniforms(r,f,n.UNIFORM_BLOCK_INDEX)}for(var l=0,d=function(){var a=n.getActiveUniform(r,m),s=a.name,o=a.size,u=a.type;if(t&&-1!==t[m])return"continue";s=s.replace(/\[0\]$/,"");var c=n.getUniformLocation(r,s),f=Dt.get(u),h=f.uniformArray,d=f.uniform;i[s]={name:s,location:c,type:u,size:o,glTypeInfo:f},u!==n.SAMPLER_2D&&u!==n.SAMPLER_CUBE||(i[s].textureIndex=l,l+=o),Object.defineProperty(e,s,{set:f.size>1||o>1?function(t){h(c,t)}:function(t){e._dict[s]!==t&&(e._dict[s]=t,d(c,t))}})},m=0;m<s;m++)d()},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){return this._isDestroyed||(this.gl.deleteProgram(this.program),this.uniforms=null,this.uniformBlocks=null,this.attributes=null,this.program=null,this.gl=null,this.state=null,this._dict=null,Bt.removeObject(this),this._isDestroyed=!0),this}}),Xt=Vt,jt=U.a.ARRAY_BUFFER,kt=U.a.ELEMENT_ARRAY_BUFFER,Wt=U.a.STATIC_DRAW,Yt=new rt,zt=a.a.create({Statics:{cache:{get:function(){return Yt}},reset:function(t){Yt.each((function(t){t.destroy()}))},createVertexBuffer:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Wt;return this.createBuffer(t,jt,e,n)},createBuffer:function(t,e,n,r){var i=n.bufferViewId,a=Yt.get(i);return a||(n.isDirty=!1,a=new zt(t,e,n.data,r),Yt.add(i,a),a)},createIndexBuffer:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Wt;return this.createBuffer(t,kt,e,n)}},className:"Buffer",isBuffer:!0,constructor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:jt,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Wt;this.id=E.a.generateUUID(this.className),this.gl=t,this.target=e,this.usage=r,this.buffer=t.createBuffer(),n&&this.bufferData(n)},bind:function(){return this.gl.bindBuffer(this.target,this.buffer),this},bufferData:function(t){var e=this.gl,n=this.target,r=this.usage;return this.bind(),e.bufferData(n,t,r),this.data=t,this},bufferSubData:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.gl,i=this.target;return n||this.bind(),r.bufferSubData(i,t,e),this},uploadGeometryData:function(t){var e=this,n=t.subDataList;return!this.data||this.data.byteLength<t.data.byteLength||!0===t._isAllDirty?this.bufferData(t.data):n&&n.length?(this.bind(),n.forEach((function(t){e.bufferSubData(t.byteOffset,t.data,!0)}))):this.bufferData(t.data),t.isDirty=!1,this},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){return this._isDestroyed||(this.gl.deleteBuffer(this.buffer),this.data=null,Yt.removeObject(this),this._isDestroyed=!0),this}}),qt=zt,Zt=new ArrayBuffer(1),Kt={getTypedArray:function(t,e){return this._updateBuffer(e*t.BYTES_PER_ELEMENT),new t(Zt,0,e)},fillArrayData:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0,i=e.length;r<i;r++)t[n+r]=e[r]},_updateBuffer:function(t){Zt.byteLength<t&&(Zt=new ArrayBuffer(2*t))}},Qt=U.a.TRIANGLES,Jt=[],$t=null,te=new rt,ee=a.a.create({Statics:{cache:{get:function(){return te}},getVao:function(t,e,n){var r=te.get(e);return r?n.mode&&n.mode!==r.mode&&(r.mode=n.mode):(r=new ee(t,e,n),te.add(e,r)),r},reset:function(t){$t=null,Jt=[],this.bindSystemVao(),te.each((function(e){e.destroy(t)}))},bindSystemVao:function(){pt.vao&&pt.vao.bindVertexArray(null),$t=null}},className:"VertexArrayObject",isVertexArrayObject:!0,vertexCount:null,useVao:!1,useInstanced:!1,mode:Qt,isDirty:!0,constructor:function(t,e,n){this.gl=t,this.id=e,this.instancedExtension=pt.instanced,this.vaoExtension=pt.vao,Object.assign(this,n),this.vaoExtension||(this.useVao=!1),this.instancedExtension||(this.useInstanced=!1),this.useVao&&(this.vao=this.vaoExtension.createVertexArray()),this.attributes=[],this.activeStates=[],this.indexBuffer=null},bind:function(){$t!==this&&(this.useVao?this.vaoExtension.bindVertexArray(this.vao):this.bindSystemVao(),$t=this)},bindSystemVao:function(){var t=this.gl;$t&&$t.useVao&&$t.unbind();var e,n=this.activeStates;this.attributes.forEach((function(t){var n=t.buffer,r=t.attribute,i=t.geometryData;e!==n&&(e=n,n.bind()),r.enable(),r.pointer(i),t.useInstanced?r.divisor(1):r.divisor(0)})),Jt.forEach((function(e,r){var i=n[r];e&&!i&&(e.attribute.divisor(0),t.disableVertexAttribArray(r))})),this.indexBuffer&&this.indexBuffer.bind(),Jt=n},unbind:function(){this.useVao&&this.vaoExtension.bindVertexArray(null),$t=null},draw:function(){this.bind();var t=this.gl,e=this.mode;this.indexBuffer?t.drawElements(e,this.vertexCount,this.indexType,0):t.drawArrays(e,0,this.getVertexCount())},getVertexCount:function(){if(null===this.vertexCount){var t=this.attributes[0];this.vertexCount=t?t.geometryData.count:0}return this.vertexCount},drawInstance:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.bind();var e=this.gl,n=this.mode;this.useInstanced&&(this.indexBuffer?this.instancedExtension.drawElementsInstanced(n,this.vertexCount,e.UNSIGNED_SHORT,0,t):this.instancedExtension.drawArraysInstanced(n,0,this.getVertexCount(),t))},addIndexBuffer:function(t,e){this.bind();var n=this.gl,r=this.indexBuffer;return this.indexType=t.type,r?t.isDirty&&(r.uploadGeometryData(t),this.vertexCount=t.length):((r=qt.createIndexBuffer(n,t,e)).bind(),this.indexBuffer=r,this.vertexCount=t.length),r},addAttribute:function(t,e,n,r){this.bind();var i=this.gl,a=e.name,s=this[a];if(!s){var o=qt.createVertexBuffer(i,t,n);o.bind(),e.enable(),e.pointer(t),s={attribute:e,buffer:o,geometryData:t},this.attributes.push(s),this[a]=s,e.addTo(this.activeStates,s),r&&r(s)}if(t.isDirty){var u=s.buffer;u.bind(),e.enable(),e.pointer(t),u.uploadGeometryData(t)}return s},addInstancedAttribute:function(t,e,n){this.bind();var r=this.gl,i=t.name,a=t.glTypeInfo,s=Kt.getTypedArray(Float32Array,e.length*a.size);e.forEach((function(t,e){void 0!==n(t)?Kt.fillArrayData(s,n(t),e*a.size):v.a.warn("no attributeData:"+i+"-"+t.name)}));var o,u=this[i];return u?(o=u.geometryData).data=s:o=new F(s,1),this.addAttribute(o,t,r.DYNAMIC_DRAW,(function(e){t.divisor(1),e.useInstanced=!0}))},getResources:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.attributes&&this.attributes.forEach((function(e){t.push(e.buffer)})),this.indexBuffer&&t.push(this.indexBuffer),t},destroyIfNoRef:function(t){return t.resourceManager.destroyIfNoRef(this),this},destroy:function(){var t=this;return this._isDestroyed||(this.instancedExtension=null,this.useVao&&(this.vaoExtension.deleteVertexArray(this.vao),this.vao=null,this.vaoExtension=null),this.gl=null,this.indexBuffer=null,this.attributes.forEach((function(e){var n=e.attribute||{};t[n.name]=null})),this.attributes=null,this.activeStates=null,te.removeObject(this),this._isDestroyed=!0),this}}),ne=ee,re=U.a.TEXTURE_2D,ie=U.a.FLOAT,ae=U.a.RGB,se=U.a.RGBA,oe=U.a.RGB32F,ue=U.a.RGBA32F,ce=U.a.LINEAR,fe=U.a.NEAREST,he=U.a.REPEAT,le=U.a.CLAMP_TO_EDGE,de=U.a.UNSIGNED_BYTE,me=U.a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_e=U.a.UNPACK_FLIP_Y_WEBGL,pe=U.a.UNPACK_COLORSPACE_CONVERSION_WEBGL,ge=U.a.BROWSER_DEFAULT_WEBGL,Ee=U.a.NONE,ve=new rt,Te=a.a.create({Statics:{cache:{get:function(){return ve}},reset:function(t){ve.each((function(e,n){t.deleteTexture(e),ve.remove(n)}))}},isTexture:!0,className:"Texture",isImageCanRelease:!1,_isImageReleased:!1,_image:null,image:{get:function(){return this._isImageReleased&&v.a.errorOnce("Read Texture.image(".concat(this.id,")"),"Read Texture.image after image released!"),this._image},set:function(t){this._image=t,this._isImageReleased=!1}},_releaseImage:function(){this._canvasImage=null,this._canvasCtx=null,this._originImage=null,this._image=null,this.mipmaps=null,this._isImageReleased=!0},mipmaps:null,target:re,internalFormat:se,format:se,type:de,width:0,height:0,border:0,magFilter:ce,minFilter:ce,wrapS:he,wrapT:he,name:"",premultiplyAlpha:!1,flipY:!1,colorSpaceConversion:!0,compressed:!1,needUpdate:!0,needDestroy:!1,autoUpdate:!1,uv:0,anisotropic:1,origWidth:{get:function(){return this._originImage?this._originImage.width||this.width:this.image&&this.image.width||this.width}},origHeight:{get:function(){return this.originImage?this._originImage.height||this.height:this.image&&this.image.height||this.height}},useMipmap:{get:function(){return this.minFilter!==ce&&this.minFilter!==fe},set:function(){v.a.warn("texture.useMipmap is readOnly!")}},useRepeat:{get:function(){return this.wrapS!==le||this.wrapT!==le},set:function(){v.a.warn("texture.useRepeat is readOnly!")}},mipmapCount:{get:function(){return Math.floor(Math.log2(Math.max(this.width,this.height))+1)},set:function(){v.a.warn("texture.mipmapCount is readOnly!")}},constructor:function(t){this.id=E.a.generateUUID(this.className),Object.assign(this,t)},isImgPowerOfTwo:function(t){return E.a.isPowerOfTwo(t.width)&&E.a.isPowerOfTwo(t.height)},getSupportSize:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.width,r=t.height;e&&!this.isImgPowerOfTwo(t)&&(n=E.a.nextPowerOfTwo(n),r=E.a.nextPowerOfTwo(r));var i=gt.MAX_TEXTURE_SIZE;return i&&(n>i&&(n=i),r>i&&(r=i)),{width:n,height:r}},resizeImgToPowerOfTwo:function(t){var e=this.getSupportSize(t,!0);return this.resizeImg(t,e.width,e.height)},resizeImg:function(t,e,n){if(t.width===e&&t.height===n)return t;var r=this._canvasImage;return r?(r.width=e,r.height=n,this._canvasCtx=r.getContext("2d")):((r=document.createElement("canvas")).width=e,r.height=n,this._canvasImage=r,this._canvasCtx=r.getContext("2d")),this._canvasCtx.drawImage(t,0,0,t.width,t.height,0,0,e,n),v.a.warnOnce("Texture.resizeImg(".concat(this.id,")"),"image size(".concat(t.width,"x").concat(t.height,") is not support. Resized to ").concat(r.width,"x").concat(r.height),t.src),this._originImage=t,r},_glUploadTexture:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.width,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:this.height,s=t.gl,o=this.type,u=this.format,c=this.internalFormat;return this.compressed?s.compressedTexImage2D(e,r,c,i,a,this.border,n):(c=this._fixInternalFormat(t,o,u,c),n&&void 0!==n.width?s.texImage2D(e,r,c,u,this.type,n):s.texImage2D(e,r,c,i,a,this.border,u,this.type,n)),this},_fixInternalFormat:function(t,e,n,r){return t.isWebGL2?e===ie&&(n===se?r=ue:n===ae&&(r=oe)):n!==r&&(r=this.format),r},_uploadTexture:function(t){var e=this;return this.useMipmap&&this.mipmaps?this.mipmaps.forEach((function(n,r){e._glUploadTexture(t,e.target,n.data,r,n.width,n.height)})):this._glUploadTexture(t,this.target,this.image,0),this},_updatePixelStorei:function(){var t=this.state;t.pixelStorei(me,this.premultiplyAlpha),t.pixelStorei(_e,!!this.flipY),t.pixelStorei(pe,this.colorSpaceConversion?ge:Ee)},updateTexture:function(t,e){var n=t.gl;if(this.needUpdate||this.autoUpdate){this._originImage&&this.image===this._canvasImage&&(this.image=this._originImage);var r=this.useMipmap,i=this.useRepeat;if(this.image&&!this.image.length){if(!t.isWebGL2){var a=i||r,s=this.getSupportSize(this.image,a);this.image=this.resizeImg(this.image,s.width,s.height)}this.width=this.image.width,this.height=this.image.height}t.activeTexture(n.TEXTURE0+gt.MAX_TEXTURE_INDEX),t.bindTexture(this.target,e),this._updatePixelStorei(),this._uploadTexture(t),r&&(this.compressed?this.mipmaps||(v.a.warn("Compressed texture has no mipmips, changed the minFilter from ".concat(this.minFilter," to Linear!"),this),this.minFilter=ce):n.generateMipmap(this.target)),n.texParameterf(this.target,n.TEXTURE_MAG_FILTER,this.magFilter),n.texParameterf(this.target,n.TEXTURE_MIN_FILTER,this.minFilter),n.texParameterf(this.target,n.TEXTURE_WRAP_S,this.wrapS),n.texParameterf(this.target,n.TEXTURE_WRAP_T,this.wrapT);var o=pt.textureFilterAnisotropic;o&&this.anisotropic>1&&n.texParameterf(this.target,o.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(this.anisotropic,gt.MAX_TEXTURE_MAX_ANISOTROPY)),this.needUpdate=!1}return this._needUpdateSubTexture&&(this._uploadSubTextures(t,e),this._needUpdateSubTexture=!1),this},_uploadSubTextures:function(t,e){var n=this;if(this._subTextureList&&this._subTextureList.length>0){var r=t.gl;t.activeTexture(r.TEXTURE0+gt.MAX_TEXTURE_INDEX),t.bindTexture(this.target,e),this._updatePixelStorei(),this._subTextureList.forEach((function(t){var e=t[0],i=t[1],a=t[2];r.texSubImage2D(n.target,0,e,i,n.format,n.type,a)})),this._subTextureList.length=0}},_needUpdateSubTexture:!1,_subTextureList:null,updateSubTexture:function(t,e,n){this._subTextureList||(this._subTextureList=[]),this._subTextureList.push([t,e,n]),this._needUpdateSubTexture=!0},getGLTexture:function(t){this.state=t;var e=this.gl=t.gl,n=this.id;this.needDestroy&&(this.destroy(),this.needDestroy=!1);var r=ve.get(n);return r||(r=e.createTexture(),ve.add(n,r),this.needUpdate=!0),this.updateTexture(t,r),this.isImageCanRelease&&this._releaseImage(),r},setGLTexture:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e&&this.destroy(),ve.add(this.id,t),this},destroy:function(){var t=this.id,e=ve.get(t);return e&&this.gl&&(this.gl.deleteTexture(e),ve.remove(t)),this},clone:function(){var t=Object.assign({},this);return delete t.id,new this.constructor(t)}}),Ae=U.a.FRAMEBUFFER,Me=U.a.TEXTURE_2D,Ie=U.a.RGBA,Re=U.a.UNSIGNED_BYTE,Oe=U.a.COLOR_ATTACHMENT0,Le=U.a.DEPTH_STENCIL_ATTACHMENT,Se=U.a.DEPTH_STENCIL,ye=U.a.DEPTH_TEST,Ne=U.a.CULL_FACE,xe=U.a.TRIANGLE_STRIP,Ce=U.a.NEAREST,be=U.a.CLAMP_TO_EDGE,Pe=U.a.COLOR_BUFFER_BIT,we=U.a.READ_FRAMEBUFFER,He=U.a.DRAW_FRAMEBUFFER,De=new rt,Fe={framebufferTarget:Ae,attachment:Oe,target:Me,format:Ie,internalFormat:Ie,type:Re,minFilter:Ce,magFilter:Ce,wrapS:be,wrapT:be},Ue=a.a.create({Statics:{ATTACHMENT_TYPE_TEXTURE:"TEXTURE",ATTACHMENT_TYPE_RENDERBUFFER:"RENDERBUFFER",cache:{get:function(){return De}},reset:function(t){De.each((function(t){t.reset()}))},destroy:function(t){De.each((function(t){t.destroy()}))}},className:"Framebuffer",isFramebuffer:!0,bufferInternalFormat:Se,framebufferTarget:Fe.framebufferTarget,target:Fe.target,format:Fe.format,internalFormat:Fe.internalFormat,type:Fe.type,minFilter:Fe.minFilter,magFilter:Fe.magFilter,wrapS:Fe.wrapS,wrapT:Fe.wrapT,data:null,attachment:Fe.attachment,needRenderbuffer:!0,useVao:!0,renderer:null,texture:null,renderbuffer:null,framebuffer:null,_isInit:!1,colorAttachmentInfos:void 0,depthStencilAttachmentInfo:void 0,constructor:function(t,e){this.id=E.a.generateUUID(this.className),this.renderer=t,Object.assign(this,e),this.width||(this.width=t.width),this.height||(this.height=t.height),void 0===this.colorAttachmentInfos&&(this.colorAttachmentInfos=[{attachmentType:Ue.ATTACHMENT_TYPE_TEXTURE,framebufferTarget:this.framebufferTarget,target:this.target,format:this.format,internalFormat:this.internalFormat,type:this.type,minFilter:this.minFilter,magFilter:this.magFilter,wrapS:this.wrapS,wrapT:this.wrapT,data:this.data}]),void 0===this.depthStencilAttachmentInfo&&this.needRenderbuffer&&(this.depthStencilAttachmentInfo={attachmentType:Ue.ATTACHMENT_TYPE_RENDERBUFFER,framebufferTarget:this.framebufferTarget,attachment:Le,internalFormat:Se}),De.add(this.id,this)},init:function(){if(!this._isInit&&this.renderer.isInit){this._isInit=!0;var t=this.renderer;this.gl=t.gl,this.state=t.state,this.reset()}},reset:function(){this.destroyResource();var t=this.gl;this.framebuffer=t.createFramebuffer(),this.bind(),this._createAttachments(),this.isComplete()||v.a.warn("Framebuffer is not complete => "+t.checkFramebufferStatus(t.FRAMEBUFFER)),this.unbind()},_createAttachments:function(){var t=this,e=this.colorAttachmentInfos,n=this.depthStencilAttachmentInfo,r=[];if(e&&e.forEach((function(e,n){var i=Oe+n;switch(e.attachmentType){case Ue.ATTACHMENT_TYPE_RENDERBUFFER:t._createRenderbufferAttachment(e,i);break;case Ue.ATTACHMENT_TYPE_TEXTURE:default:t._createTextureAttachment(e,i)}r.push(i)})),n){var i=n.attachment;switch(n.attachmentType){case Ue.ATTACHMENT_TYPE_RENDERBUFFER:this._createRenderbufferAttachment(n,i);break;case Ue.ATTACHMENT_TYPE_TEXTURE:default:this._createTextureAttachment(n,i)}}r.length>1&>.DRAW_BUFFERS&&pt.drawBuffers.drawBuffers(r)},_createTextureAttachment:function(t,e){var n=this.state,r=n.gl,i=Object.assign({},Fe,t),a=new Te({minFilter:i.minFilter,magFilter:i.magFilter,internalFormat:i.internalFormat,format:i.format,type:i.type,width:this.width,height:this.height,image:i.data,wrapS:i.wrapS,wrapT:i.wrapT}),s=a.getGLTexture(n);return r.framebufferTexture2D(i.framebufferTarget,e,i.target,s,0),t.texture=a,e===Oe&&(this.texture=a),a},_createRenderbufferAttachment:function(t,e){var n=this.gl,r=this.width,i=this.height,a=n.createRenderbuffer();return n.bindRenderbuffer(n.RENDERBUFFER,a),t.samples>0?n.renderbufferStorageMultisample(n.RENDERBUFFER,t.samples,t.internalFormat,r,i):n.renderbufferStorage(n.RENDERBUFFER,t.internalFormat,r,i),n.framebufferRenderbuffer(t.framebufferTarget||Fe.framebufferTarget,e,n.RENDERBUFFER,a),t.renderbuffer=a,a},isComplete:function(){var t=this.gl;return!(!t||t.checkFramebufferStatus(t.FRAMEBUFFER)!==t.FRAMEBUFFER_COMPLETE)},bind:function(){this.init(),this._isInit&&this.state.bindFramebuffer(this.gl.FRAMEBUFFER,this.framebuffer)},unbind:function(){if(this.init(),this._isInit){var t=this.state;t.bindFramebuffer(this.gl.FRAMEBUFFER,t.preFramebuffer)}},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new I.a(0,0,0,0);if(this._isInit){var e=this.gl;e.clearColor(t.r,t.g,t.b,t.a),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}},render:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;if(this._isInit){var s=this.gl,o=this.state,u=this.colorAttachmentInfos;if(!a){if(!u[0])return;a=u[0].texture}o.disable(ye),o.disable(Ne),i&&this.clear(i);var c=Nt.getCustomShader(Ct.a,Pt.a,"","FramebufferTextureShader"),f=Xt.getProgram(c,o);f.useProgram();var h="".concat(t,"_").concat(e,"_").concat(n,"_").concat(r,"_").concat(f.id),l=ne.getVao(s,h,{useVao:this.useVao,useInstanced:!1,mode:xe});if(l.isDirty){l.isDirty=!1;var d=[t=2*t-1,e=1-2*e,t+(n*=2),e,t,e-(r*=2),t+n,e-r];l.addAttribute(new F(new Float32Array(d),2),f.attributes.a_position),l.addAttribute(new F(new Float32Array([0,1,1,1,0,0,1,0]),2),f.attributes.a_texcoord0)}o.activeTexture(s.TEXTURE0),o.bindTexture(s.TEXTURE_2D,a.getGLTexture(o)),l.draw()}},resize:function(t,e,n){(n||this.width!==t||this.height!==e)&&(this.width=t,this.height=e,this._isInit&&this.reset())},readPixels:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a=Object(i.getTypedArrayClass)(this.type),s=new a(n*r*4);if(this._isInit){var o=this.gl;e=this.height-e-r,this.bind(),o.readPixels(t,e,n,r,this.format,this.type,s),this.unbind()}return s},copyFramebuffer:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.init(),this._isInit){var n=this.gl,r=e.mask,i=e.filter,a=e.srcSize,s=e.dstSize;r||(r=Pe),i||(i=Ce),a||(a=[0,0,t.width,t.height]),s||(s=[0,0,this.width,this.height]),n.bindFramebuffer(we,t.framebuffer),n.bindFramebuffer(He,this.framebuffer),n.blitFramebuffer(a[0],a[1],a[2],a[3],s[0],s[1],s[2],s[3],r,i),n.bindFramebuffer(we,null),n.bindFramebuffer(He,null)}},destroy:function(){return this._isDestroyed||(this.destroyResource(),this.gl=null,De.removeObject(this),this._isDestroyed=!0),this},destroyResource:function(){var t=this.gl;if(t&&(this.framebuffer&&(t.deleteFramebuffer(this.framebuffer),this.framebuffer=null),this.colorAttachmentInfos&&this.colorAttachmentInfos.forEach((function(e){var n=e.texture,r=e.renderbuffer;e.texture=null,e.renderbuffer=null,n?n.destroy():r&&t.deleteRenderbuffer(r)})),this.depthStencilAttachmentInfo)){var e=this.depthStencilAttachmentInfo,n=e.texture,r=e.renderbuffer;this.depthStencilAttachmentInfo.texture=null,this.depthStencilAttachmentInfo.renderbuffer=null,n?n.destroy():r&&t.deleteRenderbuffer(r)}}}),Ge=Ue,Be=U.a.TEXTURE_CUBE_MAP,Ve=U.a.RGB,Xe=U.a.LINEAR,je=U.a.CLAMP_TO_EDGE,ke=U.a.TEXTURE_CUBE_MAP_POSITIVE_X,We=a.a.create({Extends:Te,isCubeTexture:!0,className:"CubeTexture",target:Be,internalFormat:Ve,format:Ve,magFilter:Xe,minFilter:Xe,wrapS:je,wrapT:je,constructor:function(t){We.superclass.constructor.call(this,t),this.image=this.image||[]},_uploadTexture:function(t){var e=this,n=this.image;Array.isArray(n)&&6===n.length?(n[0]&&n[0].width&&(this.width=n[0].width,this.height=n[0].height),n.forEach((function(n,r){e._glUploadTexture(t,ke+r,n,0)}))):v.a.error("CubeTexture image must be an Array of length 6",n)},right:{get:function(){return this.image[0]},set:function(t){this.image[0]=t}},left:{get:function(){return this.image[1]},set:function(t){this.image[1]=t}},top:{get:function(){return this.image[2]},set:function(t){this.image[2]=t}},bottom:{get:function(){return this.image[3]},set:function(t){this.image[3]=t}},front:{get:function(){return this.image[4]},set:function(t){this.image[4]=t}},back:{get:function(){return this.image[5]},set:function(t){this.image[5]=t}}}),Ye=We,ze=U.a.TEXTURE_2D,qe=U.a.RGBA,Ze=U.a.NEAREST,Ke=U.a.CLAMP_TO_EDGE,Qe=U.a.FLOAT,Je=a.a.create({Extends:Te,isDataTexture:!0,className:"DataTexture",target:ze,internalFormat:qe,format:qe,type:Qe,magFilter:Ze,minFilter:Ze,wrapS:Ke,wrapT:Ke,dataLength:0,resetSize:function(t){if(t!==this.dataLength){this.dataLength=t;var e=E.a.nextPowerOfTwo(t/4),n=Math.max(Math.log2(e),4),r=Math.floor(n/2),a=n-r;this.width=Math.pow(2,r),this.height=Math.pow(2,a),this.DataClass=Object(i.getTypedArrayClass)(this.type)}},data:{get:function(){return this.image},set:function(t){if(this.image!==t){this.resetSize(t.length);var e=this.width*this.height*4;e===t.length&&t instanceof this.DataClass?this.image=t:(this.image&&this.image.length===e||(this.image=new this.DataClass(e)),this.image.set(t,0)),this.needUpdate=!0}}},constructor:function(t){Je.superclass.constructor.call(this,t)}}),$e=Je;function tn(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,s,o=[],u=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(o.push(r.value),o.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return en(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return en(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function en(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var nn,rn,an,sn,on,un,cn,fn=new f.a,hn=new m.a,ln=new u.a,dn=new Float32Array([.5,.5,.5,1]),mn=new Float32Array([0,0]),_n={state:null,camera:null,lightManager:null,fog:null,gl:null,renderer:null,blankInfo:{get:function(){}},init:function(t,e,n,r,i){un=this._renderer=t,sn=this.state=e,nn=this.camera=n,an=this.lightManager=r,on=this.fog=i,rn=this.gl=sn.gl},setCamera:function(t){nn=this.camera=t},handlerColorOrTexture:function(t,e){return t&&t.isTexture?this.handlerTexture(t,e):(t&&t.isColor?t.toArray(dn):dn[0]=dn[1]=dn[2]=.5,dn)},handlerTexture:function(t,e){if(t&&t.isTexture)return this.handlerGLTexture(t.target,t.getGLTexture(sn),e)},handlerGLTexture:function(t,e,n){if(e)return sn.activeTexture(rn.TEXTURE0+n),sn.bindTexture(t,e),n},handlerUV:function(t){return t&&t.isTexture&&t.uv||0},POSITION:{get:function(t,e,n){return t.geometry.vertices}},NORMAL:{get:function(t,e,n){return t.geometry.normals}},TANGENT:{get:function(t,e,n){var r=e.normalMap||e.clearcoatNormalMap;return r&&r.isTexture&&1===Number(r.uv)?t.geometry.tangents1:t.geometry.tangents}},TEXCOORD_0:{get:function(t,e,n){if(t.geometry.uvs)return t.geometry.uvs}},TEXCOORD_1:{get:function(t,e,n){if(t.geometry.uvs1)return t.geometry.uvs1}},UVMATRIX_0:{get:function(t,e,n){if(e.uvMatrix)return e.uvMatrix.elements}},UVMATRIX_1:{get:function(t,e,n){if(e.uvMatrix1)return e.uvMatrix1.elements}},CAMERAFAR:{get:function(t,e,n){if(nn.isPerspectiveCamera)return nn.far}},CAMERANEAR:{get:function(t,e,n){if(nn.isPerspectiveCamera)return nn.near}},CAMERATYPE:{get:function(t,e,n){return nn.isPerspectiveCamera?1:0}},CAMERAPOSITION:{get:function(t,e,n){return nn.worldMatrix.getTranslation(fn).elements}},COLOR_0:{get:function(t,e,n){if(t.geometry.colors)return t.geometry.colors}},SKININDICES:{get:function(t,e,n){return t.geometry.skinIndices}},JOINT:{get:function(t,e,n){return t.geometry.skinIndices}},WEIGHT:{get:function(t,e,n){return t.geometry.skinWeights}},SKINWEIGHTS:{get:function(t,e,n){return t.geometry.skinWeights}},RENDERERSIZE:{get:function(t,e,n){return mn[0]=un.width,mn[1]=un.height,mn}},LOCAL:{get:function(t,e,n){return t.matrix.elements},isDependMesh:!0},MODEL:{get:function(t,e,n){return t.worldMatrix.elements},isDependMesh:!0},VIEW:{get:function(t,e,n){return nn.viewMatrix.elements}},PROJECTION:{get:function(t,e,n){return nn.projectionMatrix.elements}},VIEWPROJECTION:{get:function(t,e,n){return nn.viewProjectionMatrix.elements}},MODELVIEW:{get:function(t,e,n){return nn.getModelViewMatrix(t,ln).elements},isDependMesh:!0},MODELVIEWPROJECTION:{get:function(t,e,n){return nn.getModelProjectionMatrix(t,ln).elements},isDependMesh:!0},MODELINVERSE:{get:function(t,e,n){return ln.invert(t.worldMatrix).elements},isDependMesh:!0},VIEWINVERSE:{get:function(t,e,n){return nn.worldMatrix.elements}},VIEWINVERSEINVERSETRANSPOSE:{get:function(t,e,n){return hn.normalFromMat4(nn.worldMatrix).elements}},PROJECTIONINVERSE:{get:function(t,e,n){return ln.invert(nn.projectionMatrix).elements}},MODELVIEWINVERSE:{get:function(t,e,n){return ln.invert(nn.getModelViewMatrix(t,ln)).elements},isDependMesh:!0},MODELVIEWPROJECTIONINVERSE:{get:function(t,e,n){return ln.invert(nn.getModelProjectionMatrix(t,ln)).elements},isDependMesh:!0},MODELINVERSETRANSPOSE:{get:function(t,e,n){return hn.normalFromMat4(t.worldMatrix).elements},isDependMesh:!0},MODELVIEWINVERSETRANSPOSE:{get:function(t,e,n){return hn.normalFromMat4(nn.getModelViewMatrix(t,ln)).elements},isDependMesh:!0},VIEWPORT:void 0,JOINTMATRIX:{get:function(t,e,n){if(t.isSkinedMesh)return t.getJointMat();v.a.warnOnce("semantic.JOINTMATRIX(".concat(t.id,")"),"Current mesh is not SkinedMesh!",t.id)},isDependMesh:!0,notSupportInstanced:!0},JOINTMATRIXTEXTURE:{get:function(t,e,n){if(t.isSkinedMesh)return t.updateJointMatTexture(),_n.handlerTexture(t.jointMatTexture,n.textureIndex);v.a.warnOnce("semantic.JOINTMATRIXTEXTURE(".concat(t.id,")"),"Current mesh is not SkinedMesh!",t.id)},isDependMesh:!0,notSupportInstanced:!0},JOINTMATRIXTEXTURESIZE:{get:function(t,e,n){if(t.isSkinedMesh)return t.initJointMatTexture(),[t.jointMatTexture.width,t.jointMatTexture.height];v.a.warnOnce("semantic.JOINTMATRIXTEXTURESIZE(".concat(t.id,")"),"Current mesh is not SkinedMesh!",t.id)},isDependMesh:!0,notSupportInstanced:!0},NORMALMAPSCALE:{get:function(t,e,n){return e.normalMapScale}},OCCLUSIONSTRENGTH:{get:function(t,e,n){return e.occlusionStrength}},SHININESS:{get:function(t,e,n){return e.shininess}},SPECULARENVMATRIX:{get:function(t,e,n){return e.specularEnvMatrix&&e.specularEnvMap?e.specularEnvMatrix.elements:(ln.identity(),ln.elements)}},REFLECTIVITY:{get:function(t,e,n){return e.reflectivity}},REFRACTRATIO:{get:function(t,e,n){return e.refractRatio}},REFRACTIVITY:{get:function(t,e,n){return e.refractivity}},LOGDEPTH:{get:function(t,e,n){return 2/(Math.log(nn.far+1)/Math.LN2)}},AMBIENTLIGHTSCOLOR:{get:function(t,e,n){return an.ambientInfo}},DIRECTIONALLIGHTSCOLOR:{get:function(t,e,n){return an.directionalInfo.colors}},DIRECTIONALLIGHTSINFO:{get:function(t,e,n){return an.directionalInfo.infos}},DIRECTIONALLIGHTSSHADOWMAP:{get:function(t,e,n){return an.directionalInfo.shadowMap.map((function(t,e){return _n.handlerTexture(t,n.textureIndex+e)}))}},DIRECTIONALLIGHTSSHADOWMAPSIZE:{get:function(t,e,n){return an.directionalInfo.shadowMapSize}},DIRECTIONALLIGHTSSHADOWBIAS:{get:function(t,e,n){return an.directionalInfo.shadowBias}},DIRECTIONALLIGHTSPACEMATRIX:{get:function(t,e,n){return an.directionalInfo.lightSpaceMatrix}},POINTLIGHTSPOS:{get:function(t,e,n){return an.pointInfo.poses}},POINTLIGHTSCOLOR:{get:function(t,e,n){return an.pointInfo.colors}},POINTLIGHTSINFO:{get:function(t,e,n){return an.pointInfo.infos}},POINTLIGHTSRANGE:{get:function(t,e,n){return an.pointInfo.ranges}},POINTLIGHTSSHADOWMAP:{get:function(t,e,n){return an.pointInfo.shadowMap.map((function(t,e){return _n.handlerTexture(t,n.textureIndex+e)}))}},POINTLIGHTSSHADOWBIAS:{get:function(t,e,n){return an.pointInfo.shadowBias}},POINTLIGHTSPACEMATRIX:{get:function(t,e,n){return an.pointInfo.lightSpaceMatrix}},POINTLIGHTCAMERA:{get:function(t,e,n){return an.pointInfo.cameras}},SPOTLIGHTSPOS:{get:function(t,e,n){return an.spotInfo.poses}},SPOTLIGHTSDIR:{get:function(t,e,n){return an.spotInfo.dirs}},SPOTLIGHTSCOLOR:{get:function(t,e,n){return an.spotInfo.colors}},SPOTLIGHTSCUTOFFS:{get:function(t,e,n){return an.spotInfo.cutoffs}},SPOTLIGHTSINFO:{get:function(t,e,n){return an.spotInfo.infos}},SPOTLIGHTSRANGE:{get:function(t,e,n){return an.spotInfo.ranges}},SPOTLIGHTSSHADOWMAP:{get:function(t,e,n){return an.spotInfo.shadowMap.map((function(t,e){return _n.handlerTexture(t,n.textureIndex+e)}))}},SPOTLIGHTSSHADOWMAPSIZE:{get:function(t,e,n){return an.spotInfo.shadowMapSize}},SPOTLIGHTSSHADOWBIAS:{get:function(t,e,n){return an.spotInfo.shadowBias}},SPOTLIGHTSPACEMATRIX:{get:function(t,e,n){return an.spotInfo.lightSpaceMatrix}},AREALIGHTSCOLOR:{get:function(t,e,n){return an.areaInfo.colors}},AREALIGHTSPOS:{get:function(t,e,n){return an.areaInfo.poses}},AREALIGHTSWIDTH:{get:function(t,e,n){return an.areaInfo.width}},AREALIGHTSHEIGHT:{get:function(t,e,n){return an.areaInfo.height}},AREALIGHTSLTCTEXTURE1:{get:function(t,e,n){return _n.handlerTexture(an.areaInfo.ltcTexture1,n.textureIndex)}},AREALIGHTSLTCTEXTURE2:{get:function(t,e,n){return _n.handlerTexture(an.areaInfo.ltcTexture2,n.textureIndex)}},FOGCOLOR:{get:function(t,e,n){if(on)return on.color.elements}},FOGINFO:{get:function(t,e,n){if(on)return on.getInfo()}},POSITIONDECODEMAT:{get:function(t,e,n){return t.geometry.positionDecodeMat},isDependMesh:!0},NORMALDECODEMAT:{get:function(t,e,n){return t.geometry.normalDecodeMat},isDependMesh:!0},UVDECODEMAT:{get:function(t,e,n){return t.geometry.uvDecodeMat},isDependMesh:!0},UV1DECODEMAT:{get:function(t,e,n){return t.geometry.uv1DecodeMat},isDependMesh:!0},BASECOLOR:{get:function(t,e,n){return e.baseColor.elements}},EMISSIONFACTOR:{get:function(t,e,n){return e.emissionFactor.elements}},METALLIC:{get:function(t,e,n){return e.metallic}},ROUGHNESS:{get:function(t,e,n){return e.roughness}},DIFFUSEENVMAP:{get:function(t,e,n){return _n.handlerTexture(e.diffuseEnvMap,n.textureIndex)}},DIFFUSEENVINTENSITY:{get:function(t,e,n){return e.diffuseEnvIntensity}},DIFFUSEENVSPHEREHARMONICS3:{get:function(t,e,n){var r=e.diffuseEnvSphereHarmonics3;if(r)return r.toArray()}},BRDFLUT:{get:function(t,e,n){return _n.handlerTexture(e.brdfLUT,n.textureIndex)}},SPECULARENVMAP:{get:function(t,e,n){return _n.handlerTexture(e.specularEnvMap,n.textureIndex)}},SPECULARENVINTENSITY:{get:function(t,e,n){return e.specularEnvIntensity}},SPECULARENVMAPMIPCOUNT:{get:function(t,e,n){var r=e.specularEnvMap;return r?r.mipmapCount:1}},GLOSSINESS:{get:function(t,e,n){return e.glossiness}},ALPHACUTOFF:{get:function(t,e,n){return e.alphaCutoff}},EXPOSURE:{get:function(t,e,n){return e.exposure}},GAMMAFACTOR:{get:function(t,e,n){return e.gammaFactor}},MORPHWEIGHTS:{isDependMesh:!0,notSupportInstanced:!0,get:function(t,e,n){var r=t.geometry;if(r.isMorphGeometry&&r.weights)return r.weights}},CLEARCOATFACTOR:{isDependMesh:!1,notSupportInstanced:!1,get:function(t,e,n){return e.clearcoatFactor}},CLEARCOATROUGHNESSFACTOR:{isDependMesh:!1,notSupportInstanced:!1,get:function(t,e,n){return e.clearcoatRoughnessFactor}}};_n._TIME=(cn=(new Date).getTime(),{isDependMesh:!1,notSupportInstanced:!1,get:function(t,e,n){return.001*((new Date).getTime()-cn)}}),[["POSITION","vertices"],["NORMAL","normals"],["TANGENT","tangents"]].forEach((function(t){for(var e=0;e<8;e++)_n["MORPH"+t[0]+e]={get:function(t,e){return function(n,r,i){var a=n.geometry;if(a.isMorphGeometry&&a.targets&&a.targets[t]){var s=a._originalMorphIndices?a._originalMorphIndices[e]:e,o=a.targets[t][s],u="_target_".concat(t,"_").concat(e);return a[u]!==s&&o&&(o.isDirty=!0,a[u]=s),o}}}(t[1],e)}})),[["DIFFUSE","diffuse"],["SPECULAR","specular"],["EMISSION","emission"],["AMBIENT","ambient"]].forEach((function(t){var e=tn(t,2),n=e[0],r=e[1];_n[n]={get:function(t,e,n){return _n.handlerColorOrTexture(e[r],n.textureIndex)}},_n["".concat(n,"UV")]={get:function(t,e,n){return _n.handlerUV(e[r])}}})),[["NORMALMAP","normalMap"],["PARALLAXMAP","parallaxMap"],["BASECOLORMAP","baseColorMap"],["METALLICMAP","metallicMap"],["ROUGHNESSMAP","roughnessMap"],["METALLICROUGHNESSMAP","metallicRoughnessMap"],["OCCLUSIONMAP","occlusionMap"],["SPECULARGLOSSINESSMAP","specularGlossinessMap"],["LIGHTMAP","lightMap"],["CLEARCOATMAP","clearcoatMap"],["CLEARCOATROUGHNESSMAP","clearcoatRoughnessMap"],["CLEARCOATNORMALMAP","clearcoatNormalMap"]].forEach((function(t){var e=tn(t,2),n=e[0],r=e[1];_n[n]={get:function(t,e,n){return _n.handlerTexture(e[r],n.textureIndex)}},_n["".concat(n,"UV")]={get:function(t,e,n){return _n.handlerUV(e[r])}}})),[["TRANSPARENCY","transparency"]].forEach((function(t){var e=tn(t,2),n=e[0],r=e[1];_n[n]={get:function(t,e,n){var i=e[r];return i&&i.isTexture?_n.handlerTexture(i,n.textureIndex):null!=i?i:1}},_n["".concat(n,"UV")]={get:function(t,e,n){return _n.handlerUV(e[r])}}}));var pn=_n,gn=U.a.LEQUAL,En=U.a.BACK,vn=U.a.FRONT,Tn=U.a.FRONT_AND_BACK,An=U.a.ZERO,Mn=U.a.FUNC_ADD,In=U.a.ONE,Rn=U.a.SRC_ALPHA,On=U.a.ONE_MINUS_SRC_ALPHA,Ln=U.a.CCW,Sn=U.a.ALWAYS,yn=U.a.KEEP,Nn={isBlankInfo:!0,get:function(){}},xn=a.a.create({isMaterial:!0,className:"Material",name:null,shaderCacheId:null,shaderName:null,lightType:"NONE",wireframe:!1,frontFace:Ln,depthTest:!0,sampleAlphaToCoverage:!1,depthMask:!0,depthRange:[0,1],depthFunc:gn,_cullFace:!0,normalMap:null,parallaxMap:null,normalMapScale:1,ignoreTranparent:!1,gammaCorrection:!1,usePhysicsLight:!1,isDiffuesEnvAndAmbientLightWorkTogether:!1,userData:null,renderOrder:0,_premultiplyAlpha:!0,premultiplyAlpha:{get:function(){return this._premultiplyAlpha},set:function(t){this._premultiplyAlpha=t,this.transparent&&this.setDefaultTransparentBlend()}},gammaOutput:{get:function(){return v.a.warnOnce("Matrial.gammaOutput","material.gammaOutput has deprecated. Use material.gammaCorrection instead."),this.gammaCorrection},set:function(t){v.a.warnOnce("Matrial.gammaOutput","material.gammaOutput has deprecated. Use material.gammaCorrection instead."),this.gammaCorrection=t}},gammaFactor:2.2,castShadows:!0,receiveShadows:!0,uvMatrix:null,uvMatrix1:null,cullFace:{get:function(){return this._cullFace},set:function(t){this._cullFace=t,t?this.cullFaceType=this._cullFaceType:this._side=Tn}},_cullFaceType:En,cullFaceType:{get:function(){return this._cullFaceType},set:function(t){this._cullFaceType=t,this._cullFace&&(t===En?this._side=vn:t===vn&&(this._side=En))}},_side:vn,side:{get:function(){return this._side},set:function(t){this._side!==t&&(this._side=t,t===Tn?this._cullFace=!1:(this._cullFace=!0,t===vn?this._cullFaceType=En:t===En&&(this._cullFaceType=vn)))}},blend:!1,blendEquation:Mn,blendEquationAlpha:Mn,blendSrc:In,blendDst:An,blendSrcAlpha:In,blendDstAlpha:An,stencilTest:!1,stencilMask:255,stencilFunc:Sn,stencilFuncRef:1,stencilFuncMask:255,stencilOpFail:yn,stencilOpZFail:yn,stencilOpZPass:yn,isDirty:!1,transparency:1,_transparent:!1,transparent:{get:function(){return this._transparent},set:function(t){this._transparent!==t&&(this._transparent=t,t?this.setDefaultTransparentBlend():(this.blend=!1,this.depthMask=!0))}},setDefaultTransparentBlend:function(){this.blend=!0,this.depthMask=!1,this.premultiplyAlpha?(this.blendSrc=In,this.blendDst=On,this.blendSrcAlpha=In,this.blendDstAlpha=On):(this.blendSrc=Rn,this.blendDst=On,this.blendSrcAlpha=Rn,this.blendDstAlpha=On)},alphaCutoff:0,useHDR:!1,exposure:1,enableTextureLod:!1,enableDrawBuffers:!1,needBasicUnifroms:!0,needBasicAttributes:!0,constructor:function(t){this.id=E.a.generateUUID(this.className),this.uniforms={},this.attributes={},Object.assign(this,t),this.needBasicAttributes&&this.addBasicAttributes(),this.needBasicUnifroms&&this.addBasicUniforms()},addBasicAttributes:function(){var t=this.attributes;this._copyProps(t,{a_position:"POSITION",a_normal:"NORMAL",a_tangent:"TANGENT",a_texcoord0:"TEXCOORD_0",a_texcoord1:"TEXCOORD_1",a_color:"COLOR_0",a_skinIndices:"SKININDICES",a_skinWeights:"SKINWEIGHTS"}),["POSITION","NORMAL","TANGENT"].forEach((function(e){for(var n=e.slice(0,1)+e.slice(1).toLowerCase(),r=0;r<8;r++){var i="a_morph"+n+r;void 0===t[i]&&(t[i]="MORPH"+e+r)}}))},addBasicUniforms:function(){this._copyProps(this.uniforms,{u_modelMatrix:"MODEL",u_viewMatrix:"VIEW",u_projectionMatrix:"PROJECTION",u_modelViewMatrix:"MODELVIEW",u_modelViewProjectionMatrix:"MODELVIEWPROJECTION",u_viewInverseNormalMatrix:"VIEWINVERSEINVERSETRANSPOSE",u_normalMatrix:"MODELVIEWINVERSETRANSPOSE",u_normalWorldMatrix:"MODELINVERSETRANSPOSE",u_cameraPosition:"CAMERAPOSITION",u_rendererSize:"RENDERERSIZE",u_logDepth:"LOGDEPTH",u_ambientLightsColor:"AMBIENTLIGHTSCOLOR",u_directionalLightsColor:"DIRECTIONALLIGHTSCOLOR",u_directionalLightsInfo:"DIRECTIONALLIGHTSINFO",u_directionalLightsShadowMap:"DIRECTIONALLIGHTSSHADOWMAP",u_directionalLightsShadowMapSize:"DIRECTIONALLIGHTSSHADOWMAPSIZE",u_directionalLightsShadowBias:"DIRECTIONALLIGHTSSHADOWBIAS",u_directionalLightSpaceMatrix:"DIRECTIONALLIGHTSPACEMATRIX",u_pointLightsPos:"POINTLIGHTSPOS",u_pointLightsColor:"POINTLIGHTSCOLOR",u_pointLightsInfo:"POINTLIGHTSINFO",u_pointLightsRange:"POINTLIGHTSRANGE",u_pointLightsShadowBias:"POINTLIGHTSSHADOWBIAS",u_pointLightsShadowMap:"POINTLIGHTSSHADOWMAP",u_pointLightSpaceMatrix:"POINTLIGHTSPACEMATRIX",u_pointLightCamera:"POINTLIGHTCAMERA",u_spotLightsPos:"SPOTLIGHTSPOS",u_spotLightsDir:"SPOTLIGHTSDIR",u_spotLightsColor:"SPOTLIGHTSCOLOR",u_spotLightsCutoffs:"SPOTLIGHTSCUTOFFS",u_spotLightsInfo:"SPOTLIGHTSINFO",u_spotLightsRange:"SPOTLIGHTSRANGE",u_spotLightsShadowMap:"SPOTLIGHTSSHADOWMAP",u_spotLightsShadowMapSize:"SPOTLIGHTSSHADOWMAPSIZE",u_spotLightsShadowBias:"SPOTLIGHTSSHADOWBIAS",u_spotLightSpaceMatrix:"SPOTLIGHTSPACEMATRIX",u_areaLightsPos:"AREALIGHTSPOS",u_areaLightsColor:"AREALIGHTSCOLOR",u_areaLightsWidth:"AREALIGHTSWIDTH",u_areaLightsHeight:"AREALIGHTSHEIGHT",u_areaLightsLtcTexture1:"AREALIGHTSLTCTEXTURE1",u_areaLightsLtcTexture2:"AREALIGHTSLTCTEXTURE2",u_jointMat:"JOINTMATRIX",u_jointMatTexture:"JOINTMATRIXTEXTURE",u_jointMatTextureSize:"JOINTMATRIXTEXTURESIZE",u_positionDecodeMat:"POSITIONDECODEMAT",u_normalDecodeMat:"NORMALDECODEMAT",u_uvDecodeMat:"UVDECODEMAT",u_uv1DecodeMat:"UV1DECODEMAT",u_morphWeights:"MORPHWEIGHTS",u_normalMapScale:"NORMALMAPSCALE",u_emission:"EMISSION",u_transparency:"TRANSPARENCY",u_uvMatrix:"UVMATRIX_0",u_uvMatrix1:"UVMATRIX_1",u_fogColor:"FOGCOLOR",u_fogInfo:"FOGINFO",u_alphaCutoff:"ALPHACUTOFF",u_exposure:"EXPOSURE",u_gammaFactor:"GAMMAFACTOR"}),this.addTextureUniforms({u_normalMap:"NORMALMAP",u_parallaxMap:"PARALLAXMAP",u_emission:"EMISSION",u_transparency:"TRANSPARENCY"})},addTextureUniforms:function(t){var e={};for(var n in t){var r=t[n];e[n]=r,e["".concat(n,".texture")]=r,e["".concat(n,".uv")]="".concat(r,"UV")}this._copyProps(this.uniforms,e)},getRenderOption:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.lightType;e["LIGHT_TYPE_".concat(n)]=1,e.SIDE=this.side,"NONE"!==n&&(e.HAS_LIGHT=1),this.premultiplyAlpha&&(e.PREMULTIPLY_ALPHA=1),gt.SHADER_TEXTURE_LOD&&this.enableTextureLod&&(e.USE_SHADER_TEXTURE_LOD=1),gt.DRAW_BUFFERS&&this.enableDrawBuffers&&(e.USE_DRAW_BUFFERS=1);var r=this._textureOption.reset(e);return e.HAS_LIGHT&&(e.HAS_NORMAL=1,r.add(this.normalMap,"NORMAL_MAP",(function(){1!==t.normalMapScale&&(e.NORMAL_MAP_SCALE=1)}))),r.add(this.parallaxMap,"PARALLAX_MAP"),r.add(this.emission,"EMISSION_MAP"),r.add(this.transparency,"TRANSPARENCY_MAP"),this.ignoreTranparent&&(e.IGNORE_TRANSPARENT=1),this.alphaCutoff>0&&(e.ALPHA_CUTOFF=1),this.useHDR&&(e.USE_HDR=1),this.gammaCorrection&&(e.GAMMA_CORRECTION=1),this.receiveShadows&&(e.RECEIVE_SHADOWS=1),this.castShadows&&(e.CAST_SHADOWS=1),this.uvMatrix&&(e.UV_MATRIX=1),this.uvMatrix1&&(e.UV_MATRIX1=1),this.usePhysicsLight&&(e.USE_PHYSICS_LIGHT=1),this.isDiffuesEnvAndAmbientLightWorkTogether&&(e.IS_DIFFUESENV_AND_AMBIENTLIGHT_WORK_TOGETHER=1),r.update(),e},_textureOption:{uvTypes:null,option:null,reset:function(t){return this.option=t,this.uvTypes={},this},add:function(t,e,n){if(t&&t.isTexture){var r=this.uvTypes,i=this.option,a=t.uv||0;r[a]=1,i[e]=a,t.isCubeTexture&&(i["".concat(e,"_CUBE")]=1),n&&n(t)}return this},update:function(){var t=[0,1],e=this.uvTypes,n=this.option;for(var r in e)-1!==t.indexOf(Number(r))?n["HAS_TEXCOORD".concat(r)]=1:(v.a.warnOnce("Material._textureOption.update(".concat(r,")"),"uv_".concat(r," not support!")),n.HAS_TEXCOORD0=1);return this}},getInstancedUniforms:function(){var t=this._instancedUniforms;if(!this._instancedUniforms){var e=this.uniforms;for(var n in t=this._instancedUniforms=[],e){var r=this.getUniformInfo(n);r.isDependMesh&&!r.notSupportInstanced&&t.push({name:n,info:r})}}return t},getUniformData:function(t,e,n){return this.getUniformInfo(t).get(e,this,n)},getAttributeData:function(t,e,n){return this.getAttributeInfo(t).get(e,this,n)},getUniformInfo:function(t){return this.getInfo("uniforms",t)},getAttributeInfo:function(t){return this.getInfo("attributes",t)},getInfo:function(t,e){var n=this[t][e];return"string"==typeof n&&(n=pn[n]),n&&n.get||(v.a.warnOnce("material.getInfo-"+e,"Material.getInfo: no this semantic:"+e),n=Nn),n},clone:function(){var t=new this.constructor;for(var e in this)"id"!==e&&(t[e]=this[e]);return t},destroyTextures:function(){this.getTextures().forEach((function(t){t.destroy()}))},getTextures:function(){var t=[];for(var e in this){var n=this[e];n&&n.isTexture&&t.push(n)}return t},_copyProps:function(t,e){for(var n in e)void 0===t[n]&&(t[n]=e[n])}}),Cn=a.a.create({Extends:xn,isBasicMaterial:!0,className:"BasicMaterial",lightType:"BLINN-PHONG",diffuse:null,ambient:null,specular:null,emission:null,specularEnvMap:null,specularEnvMatrix:null,reflectivity:0,refractRatio:0,refractivity:0,shininess:32,usedUniformVectors:11,constructor:function(t){this.diffuse=new I.a(.5,.5,.5),this.specular=new I.a(1,1,1),this.emission=new I.a(0,0,0),Cn.superclass.constructor.call(this,t),Object.assign(this.uniforms,{u_diffuse:"DIFFUSE",u_specular:"SPECULAR",u_ambient:"AMBIENT",u_shininess:"SHININESS",u_reflectivity:"REFLECTIVITY",u_refractRatio:"REFRACTRATIO",u_refractivity:"REFRACTIVITY",u_specularEnvMap:"SPECULARENVMAP",u_specularEnvMatrix:"SPECULARENVMATRIX"}),this.addTextureUniforms({u_diffuse:"DIFFUSE",u_specular:"SPECULAR",u_ambient:"AMBIENT"})},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Cn.superclass.getRenderOption.call(this,t);var e=this._textureOption.reset(t),n=this.lightType;"PHONG"!==n&&"BLINN-PHONG"!==n||(t.HAS_SPECULAR=1);var r=this.diffuse;return r&&r.isTexture&&(r.isCubeTexture?t.DIFFUSE_CUBE_MAP=1:e.add(this.diffuse,"DIFFUSE_MAP")),t.HAS_LIGHT&&(e.add(this.specular,"SPECULAR_MAP"),e.add(this.ambient,"AMBIENT_MAP"),e.add(this.specularEnvMap,"SPECULAR_ENV_MAP")),e.update(),t}}),bn=Cn,Pn=U.a.POSITION,wn=U.a.NORMAL,Hn=U.a.DEPTH,Dn=U.a.DISTANCE,Fn=U.a.NONE,Un=a.a.create({Extends:bn,isGeometryMaterial:!0,className:"GeometryMaterial",vertexType:Pn,lightType:Fn,writeOriginData:!1,constructor:function(t){Un.superclass.constructor.call(this,t),Object.assign(this.uniforms,{u_cameraFar:"CAMERAFAR",u_cameraNear:"CAMERANEAR",u_cameraType:"CAMERATYPE"})},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};switch(Un.superclass.getRenderOption.call(this,t),t["VERTEX_TYPE_".concat(this.vertexType)]=1,this.vertexType){case Pn:t.HAS_FRAG_POS=1;break;case wn:t.HAS_NORMAL=1;break;case Hn:break;case Dn:t.HAS_FRAG_POS=1}return this.writeOriginData&&(t.WRITE_ORIGIN_DATA=1),t}}),Gn=Un,Bn=a.a.create({Extends:x,isOrthographicCamera:!0,className:"OrthographicCamera",_left:-1,left:{get:function(){return this._left},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._left=t}},_right:1,right:{get:function(){return this._right},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._right=t}},_bottom:-1,bottom:{get:function(){return this._bottom},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._bottom=t}},_top:1,top:{get:function(){return this._top},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._top=t}},_near:.1,near:{get:function(){return this._near},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._near=t}},_far:1,far:{get:function(){return this._far},set:function(t){this._needUpdateProjectionMatrix=!0,this._isGeometryDirty=!0,this._far=t}},constructor:function(t){Bn.superclass.constructor.call(this,t),this.updateProjectionMatrix()},updateProjectionMatrix:function(){this.projectionMatrix.ortho(this.left,this.right,this.bottom,this.top,this.near,this.far)},getGeometry:function(t){if(t||!this._geometry||this._isGeometryDirty){this._isGeometryDirty=!1;var e=new tt,n=[this.left,this.bottom,-this.near],r=[this.right,this.bottom,-this.near],i=[this.right,this.top,-this.near],a=[this.left,this.top,-this.near],s=[this.left,this.bottom,-this.far],o=[this.right,this.bottom,-this.far],u=[this.right,this.top,-this.far],c=[this.left,this.top,-this.far];e.addRect(s,o,u,c),e.addRect(o,r,i,u),e.addRect(r,n,a,i),e.addRect(n,s,c,a),e.addRect(c,u,i,a),e.addRect(n,r,o,s),this._geometry=e}return this._geometry}}),Vn=Bn,Xn=U.a.DEPTH,jn=U.a.BACK,kn=null,Wn=new I.a(1,1,1),Yn=new u.a,zn=function(t){return t.material.castShadows},qn=a.a.create({isLightShadow:!0,className:"LightShadow",light:null,renderer:null,framebuffer:null,camera:null,width:1024,height:1024,maxBias:.05,minBias:.005,cameraInfo:null,debug:!1,constructor:function(t){this.id=E.a.generateUUID(this.className),Object.assign(this,t)},createFramebuffer:function(){this.framebuffer||(this.framebuffer=new Ge(this.renderer,{width:this.width,height:this.height}),this.debug&&this.showShadowMap())},updateLightCamera:function(t){this.light.isDirectionalLight?this.updateDirectionalLightCamera(t):this.light.isSpotLight&&this.updateSpotLightCamera(t)},updateDirectionalLightCamera:function(t){var e=this.light;if(this.camera.lookAt(e.direction),this.cameraInfo)this.updateCustumCamera(this.cameraInfo);else{var n=t.getGeometry();if(n){this.camera.updateViewMatrix(),Yn.multiply(this.camera.viewMatrix,t.worldMatrix);var r=n.getBounds(Yn);this.camera.near=-r.zMax,this.camera.far=-r.zMin,this.camera.left=r.xMin,this.camera.right=r.xMax,this.camera.bottom=r.yMin,this.camera.top=r.yMax}}this.camera.updateViewMatrix()},updateCustumCamera:function(t){for(var e in t)this.camera[e]=t[e]},updateSpotLightCamera:function(t){var e=this.light;this.camera.lookAt(e.direction),this.cameraInfo?this.updateCustumCamera(this.cameraInfo):(this.camera.fov=2*e.outerCutoff,this.camera.near=.01,this.camera.far=t.far,this.camera.aspect=1),this.camera.updateViewMatrix()},createCamera:function(t){this.camera||(this.light.isDirectionalLight?this.camera=new Vn:this.light.isSpotLight&&(this.camera=new nt),this.camera.addTo(this.light)),(this.light.isDirty||this._cameraMatrixVersion!==t.matrixVersion)&&(this.updateLightCamera(t),this._cameraMatrixVersion=t.matrixVersion,this.light.isDirty=!1)},createShadowMap:function(t){this.createFramebuffer(),this.createCamera(t);var e=this.renderer,n=this.framebuffer,r=this.camera;kn||(kn=new Gn({vertexType:Xn,side:jn,writeOriginData:!0})),n.bind(),e.state.viewport(0,0,this.width,this.height),e.clear(Wn),r.updateViewProjectionMatrix(),pn.setCamera(r),e.forceMaterial=kn,this.renderShadowScene(e),delete e.forceMaterial,n.unbind(),pn.setCamera(t),e.viewport()},renderShadowScene:function(t){t.renderList.traverse((function(e){zn(e)&&t.renderMesh(e)}),(function(e){t.renderInstancedMeshes(e.filter((function(t){return zn(t)})))}))},showShadowMap:function(){var t=this;this.renderer.on("afterRender",(function(){t.framebuffer.render(0,.7,.3,.3)}))}}),Zn=U.a.DISTANCE,Kn=U.a.BACK,Qn=U.a.TEXTURE_CUBE_MAP,Jn=U.a.TEXTURE0,$n=U.a.TEXTURE_CUBE_MAP_POSITIVE_X,tr=U.a.NEAREST,er=U.a.FRAMEBUFFER,nr=U.a.FRAMEBUFFER_COMPLETE,rr=null,ir=new I.a(0,0,0,0),ar=new f.a,sr=[[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,-1,0,0,-1,0,0,0,1,0,0,-1,0,-1,0,0,-1,0]],or=function(t,e){if(t.material.castShadows){if(!t.frustumTest)return!0;if(e.isMeshVisible(t))return!0}return!1},ur=a.a.create({isLightShadow:!0,className:"CubeLightShadow",Extends:qn,light:null,renderer:null,framebuffer:null,camera:null,width:1024,height:1024,maxBias:.05,minBias:.005,debug:!1,constructor:function(t){ur.superclass.constructor.call(this,t)},createFramebuffer:function(){if(!this.framebuffer){this.framebuffer=new Ge(this.renderer,{target:Qn,width:1024,height:1024,createTexture:function(){var t=this.state.gl,e=new Ye({image:[null,null,null,null,null,null],type:this.type,format:this.format,internalFormat:this.internalFormat,magFilter:tr,minFilter:tr,width:1024,height:1024});return t.checkFramebufferStatus(er)!==nr&&v.a.warn("Framebuffer is not complete",t.checkFramebufferStatus(er)),e},bindTexture:function(t){t=t||0;var e=this.state,n=e.gl,r=this.texture.getGLTexture(e);e.activeTexture(Jn+gt.MAX_TEXTURE_INDEX),e.bindTexture(this.target,r),n.framebufferTexture2D(er,this.attachment,$n+t,r,0)}})}},updateLightCamera:function(t){this.camera.fov=90,this.camera.near=t.near,this.camera.far=t.far,this.camera.aspect=1,this.camera.updateViewMatrix()},createCamera:function(t){this.camera||(this.camera=new nt,this.updateLightCamera(t))},createShadowMap:function(t){this.createFramebuffer(),this.createCamera(t);var e=this.renderer,n=this.framebuffer,r=this.camera;rr||(rr=new Gn({vertexType:Zn,side:Kn,writeOriginData:!1})),n.bind(),e.state.viewport(0,0,n.width,n.height),this.light.worldMatrix.getTranslation(r.position);for(var i=0;i<6;i++)n.bindTexture(i),ar.fromArray(sr[0],3*i).add(r.position),r.up.fromArray(sr[1],3*i),r.lookAt(ar),r.updateViewProjectionMatrix(),e.clear(ir),pn.setCamera(r),e.forceMaterial=rr,this.renderShadowScene(e);r.matrix.identity(),r.updateViewProjectionMatrix(),delete e.forceMaterial,n.unbind(),pn.setCamera(t),e.viewport()},renderShadowScene:function(t){var e=t.renderList,n=this.camera;e.traverse((function(e){or(e,n)&&t.renderMesh(e)}),(function(e){var r=e.filter((function(t){return or(t,n)}));t.renderInstancedMeshes(r)}))}}),cr=ur,fr=a.a.create({Extends:L,isPointLight:!0,className:"PointLight",constructor:function(t){fr.superclass.constructor.call(this,t)},createShadowMap:function(t,e){this.shadow&&(this.lightShadow||(this.lightShadow=new cr({light:this,renderer:t}),"minBias"in this.shadow&&(this.lightShadow.minBias=this.shadow.minBias),"maxBias"in this.shadow&&(this.lightShadow.maxBias=this.shadow.maxBias)),this.lightShadow.createShadowMap(e))}}),hr=fr,lr=new u.a,dr=new f.a,mr=a.a.create({Extends:L,isDirectionalLight:!0,className:"DirectionalLight",constructor:function(t){this.direction=new f.a(0,0,1),mr.superclass.constructor.call(this,t)},createShadowMap:function(t,e){this.shadow&&(this.lightShadow||(this.lightShadow=new qn({light:this,renderer:t,width:this.shadow.width||t.width,height:this.shadow.height||t.height,debug:this.shadow.debug,cameraInfo:this.shadow.cameraInfo}),"minBias"in this.shadow&&(this.lightShadow.minBias=this.shadow.minBias),"maxBias"in this.shadow&&(this.lightShadow.maxBias=this.shadow.maxBias)),this.lightShadow.createShadowMap(e))},getWorldDirection:function(){return dr.copy(this.direction).transformDirection(this.worldMatrix).normalize(),dr},getViewDirection:function(t){var e=t.getModelViewMatrix(this,lr);return dr.copy(this.direction).transformDirection(e).normalize(),dr}}),_r=mr,pr=new u.a,gr=new f.a,Er=a.a.create({Extends:L,isSpotLight:!0,className:"SpotLight",_cutoffCos:.9763,_cutoff:12.5,cutoff:{get:function(){return this._cutoff},set:function(t){this._cutoff=t,this._cutoffCos=Math.cos(E.a.degToRad(t))}},_outerCutoffCos:.9537,_outerCutoff:17.5,outerCutoff:{get:function(){return this._outerCutoff},set:function(t){this._outerCutoff=t,this._outerCutoffCos=Math.cos(E.a.degToRad(t))}},constructor:function(t){this.direction=new f.a(0,0,1),Er.superclass.constructor.call(this,t)},createShadowMap:function(t,e){this.shadow&&(this.lightShadow||(this.lightShadow=new qn({light:this,renderer:t,width:this.shadow.width||t.width,height:this.shadow.height||t.height,debug:this.shadow.debug,cameraInfo:this.shadow.cameraInfo}),"minBias"in this.shadow&&(this.lightShadow.minBias=this.shadow.minBias),"maxBias"in this.shadow&&(this.lightShadow.maxBias=this.shadow.maxBias)),this.lightShadow.createShadowMap(e))},getWorldDirection:function(){return gr.copy(this.direction).transformDirection(this.worldMatrix).normalize(),gr},getViewDirection:function(t){var e=t.getModelViewMatrix(this,pr);return gr.copy(this.direction).transformDirection(e).normalize(),gr}}),vr=Er,Tr=a.a.create({Extends:xn,isShaderMaterial:!0,className:"ShaderMaterial",vs:"",fs:"",useHeaderCache:!1,constructor:function(t){Tr.superclass.constructor.call(this,t)},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Tr.superclass.getRenderOption.call(this,t),this.getCustomRenderOption){var e=this.getCustomRenderOption({});for(var n in e)t["HILO_CUSTUM_OPTION_".concat(n)]=e[n]}return t},getCustomRenderOption:null}),Ar=Tr,Mr=n(14),Ir=n.n(Mr),Rr=a.a.create({Extends:tt,isMorphGeometry:!0,className:"MorphGeometry",isStatic:!1,weights:[],targets:null,constructor:function(t){Rr.superclass.constructor.call(this,t),this.weights=this.weights||[]},update:function(t,e){this.weights=t,this._originalMorphIndices=e},clone:function(){return tt.prototype.clone.call(this,{targets:this.targets,weights:this.weights})},getRenderOption:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Rr.superclass.getRenderOption.call(this,e),this.targets&&(this._maxMorphTargetCount||(this._maxMorphTargetCount=Math.floor(8/Object.keys(this.targets).length)),Object(i.each)(this.targets,(function(n,r){e.MORPH_TARGET_COUNT=Math.min(n.length,t._maxMorphTargetCount),"vertices"===r?e.MORPH_HAS_POSITION=1:"normals"===r?e.MORPH_HAS_NORMAL=1:"tangents"===r&&(e.MORPH_HAS_TANGENT=1)}))),e}}),Or=Rr,Lr={POSITION:{name:"vertices",decodeMatName:"positionDecodeMat"},TEXCOORD_0:{name:"uvs",decodeMatName:"uvDecodeMat"},TEXCOORD_1:{name:"uvs1",decodeMatName:"uv1DecodeMat"},NORMAL:{name:"normals",decodeMatName:"normalDecodeMat"},JOINT:{name:"skinIndices"},JOINTS_0:{name:"skinIndices"},WEIGHT:{name:"skinWeights"},WEIGHTS_0:{name:"skinWeights"},TANGENT:{name:"tangents"},COLOR_0:{name:"colors"}},Sr={Geometry:tt,GeometryData:F};var yr={_decodeTotalTime:0,wasmURL:"",workerURL:"",useWASM:!0,useWebWorker:!0,useAuto:!0,init:function(){return yr.useAuto?Ir.a.initWASM(yr.wasmURL,yr.memPages):yr.useWebWorker?Ir.a.initWorker(yr.workerURL):yr.useWASM?Ir.a.initWASM(yr.wasmURL,yr.memPages):Promise.resolve()},parse:function(t,e,n,r){var i=Date.now(),a=e.bufferViews[t.bufferView],s=yr.wasmURL,o=yr.workerURL,u=yr.useAuto,c=yr.useWASM,f=yr.useWebWorker,h=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);function l(e){yr._decodeTotalTime+=Date.now()-i;var n=e.toHilo3dGeometry(Sr,r.primitive._geometry);return t.targets&&(n=function(t,e,n){if(!n.isMorphGeometry){var r=new Or;for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&"id"!==i&&(r[i]=n[i]);r.targets={},n=r}for(var a=n.targets,s=0;s<t.targets.length;s++){var o=t.targets[s];for(var u in o)if(u in Lr){var c=o[u],f=Lr[u].name;a[f]||(a[f]=[]);var h=e.attrs[c];a[f].push(new F(h.data,h.itemCount))}}return t.weights?n.weights=t.weights:n.weights=new Float32Array(t.targets.length),n}(t,e,n)),n}return u?Ir.a.decompress(h,s,o).then(l):f?Ir.a.decompressWithWorker(h,c,s,o).then(l):l(c?Ir.a.decompressWithWASM(h,s):Ir.a.decompressWithJS(h))},freeMemory:function(){Ir.a.destory()}},Nr=yr,xr=U.a.SAMPLER_2D,Cr={unQuantizeData:function(t,e){if(!e)return t;var n=Math.sqrt(e.length),r=n-1,i=new Float32Array(t.length),a=[];return t.traverse((function(t,s){t.toArray?t.toArray(a):a[0]=t;for(var o=s*r,u=0;u<n;u++){i[o+u]=0;for(var c=0;c<n;c++){var f=c===r?1:a[c];i[o+u]+=e[c*n+u]*f}}})),t.data=i,t.stride=0,t.offset=0,t},parse:function(t,e,n,r){var i=t.decodeMatrix;return r.isDecode?n=Cr.unQuantizeData(n,i):n.decodeMat=i,n}},br={parseOnEnd:function(t,e,n){if(!n.anim||e.isMultiAnim)return n;for(var r in t){var i=t[r];n.anim.addClip(r,i[0],i[1])}return n}},Pr=br,wr={parse:function(t,e,n){return t.center=t.max.map((function(e,n){return(e+t.min[n])/2})),t.width=t.max[0]-t.min[0],t.height=t.max[1]-t.min[1],t.depth=t.max[2]-t.min[2],t.size=Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2)+Math.pow(t.depth,2)),n.bounds=t,n}},Hr={getUsedTextureNameMap:function(t,e){t.diffuseTexture&&(e[t.diffuseTexture.index]=!0),t.specularGlossinessTexture&&(e[t.specularGlossinessTexture.index]=!0)},parse:function(t,e,n){return t.diffuseFactor&&n.baseColor.fromArray(t.diffuseFactor),t.diffuseTexture&&(n.baseColorMap=e.getTexture(t.diffuseTexture)),t.specularFactor&&(n.specular.fromArray(t.specularFactor),n.specular.a=1),"glossinessFactor"in t&&(n.glossiness=t.glossinessFactor),t.specularGlossinessTexture&&(n.specularGlossinessMap=e.getTexture(t.specularGlossinessTexture)),n.isSpecularGlossiness=!0,n}},Dr={getUsedTextureNameMap:function(t,e){t.clearcoatTexture&&(e[t.clearcoatTexture.index]=!0),t.clearcoatRoughnessTexture&&(e[t.clearcoatRoughnessTexture.index]=!0),t.clearcoatNormalTexture&&(e[t.clearcoatNormalTexture.index]=!0)},parse:function(t,e,n){return t.clearcoatFactor&&(n.clearcoatFactor=t.clearcoatFactor),t.clearcoatTexture&&(n.clearcoatMap=e.getTexture(t.clearcoatTexture)),t.clearcoatRoughnessFactor&&(n.clearcoatRoughnessFactor=t.clearcoatRoughnessFactor),t.clearcoatRoughnessTexture&&(n.clearcoatRoughnessMap=e.getTexture(t.clearcoatRoughnessTexture)),t.clearcoatNormalTexture&&(n.clearcoatNormalMap=e.getTexture(t.clearcoatNormalTexture)),n}},Fr={parse:function(t,e,n){if(!e.isUseExtension(e.json,"KHR_lights_punctual")||!e.json.extensions.KHR_lights_punctual.lights)return n;var r,i=e.json.extensions.KHR_lights_punctual.lights[t.light];if(!i)return n;var a=new I.a(1,1,1,1);i.color&&(a.r=i.color[0],a.g=i.color[1],a.b=i.color[2]);var s=void 0!==i.intensity?i.intensity:1,o=i.name||"",u=i.spot||{},c=void 0!==u.innerConeAngle?E.a.radToDeg(u.innerConeAngle):0,f=void 0!==u.outerConeAngle?E.a.radToDeg(u.outerConeAngle):45,h=i.range||0;switch(i.type){case"directional":(r=new _r({color:a,amount:s,name:o,range:h})).direction.set(0,0,-1);break;case"point":r=new hr({color:a,amount:s,name:o,range:h});break;case"spot":(r=new vr({color:a,amount:s,name:o,range:h,cutoff:c,outerCutoff:f})).direction.set(0,0,-1);break;default:return n}return r&&(n.addChild(r),e.lights.push(r)),n}},Ur={init:function(t,e){var n=[],r=(e.json.extensions||{}).KHR_techniques_webgl||{},a=r.programs||[],s=r.shaders||[],o=r.techniques||[];return e.shaders={},s.forEach((function(r,a){var s=i.getRelativePath(e.src,r.uri);e.preHandlerShaderURI&&(s=e.preHandlerShaderURI(s,a,r)),n.push(t.loadRes(s).then((function(t){e.shaders[a]=t})))})),e.programs={},a.forEach((function(t,n){e.programs[n]=Object.assign({},t)})),e.techniques={},o.forEach((function(t,n){var r=(e.techniques[n]=Object.assign({},t)).textureInfos={},i=t.uniforms||{};for(var a in i){var s=i[a];s.type===xr&&(r[a]=s.value||{})}})),Promise.all(n)},getUsedTextureNameMap:function(t,e,n){var r=n.techniques[t.technique],i=t.values||{};if(r){var a=r.textureInfos;for(var s in a){var o=void 0;i[s]&&void 0!==i[s].index?o=i[s].index:void 0!==a[s].index&&(o=a[s].index),void 0!==o&&(e[o]=!0)}}},parse:function(t,e,n){var r=e.textures||[],i=e.techniques[t.technique];if(!i)return n;var a=e.programs[i.program];if(!a)return n;var s=e.shaders[a.fragmentShader],o=e.shaders[a.vertexShader],u=i.uniforms||{},c=i.attributes||{},f=t.values||{},h={},l={},d=function(){var t,n=u[m]||{},i=f[m];if(void 0===i&&(i=n.value),void 0!==i)if(n.type===xr){var a=i.index||0;t={get:function(t,e,n){return pn.handlerTexture(r[a],n.textureIndex)}}}else t={get:function(){return i}};else if(n.semantic&&pn[n.semantic]){var s,o=pn[n.semantic],c=n.node;t=void 0!==c?{get:function(t,n,r){return void 0===s&&(s=e.node.getChildByFn((function(t){return t.animationId===c}))||t),o.get(s,n,r)}}:n.semantic}l[m]=t};for(var m in u)d();for(var _ in c){var p=c[_]||{};p.semantic&&(h[_]=p.semantic)}var g=new Ar({needBasicUnifroms:!1,needBasicAttributes:!1,useHeaderCache:!0,premultiplyAlpha:!1,vs:o,fs:s,attributes:h,uniforms:l});return void 0!==t.premultiplyAlpha&&(g.premultiplyAlpha=t.premultiplyAlpha),t.defines&&(g.getCustomRenderOption=function(){return t.defines}),void 0!==a.name&&(g.shaderName=a.name,g.shaderCacheId="KHR_techniques_webgl_".concat(a.name)),g}},Gr=new Float32Array(2),Br=a.a.create({isFog:!0,className:"Fog",mode:"LINEAR",start:5,end:10,density:.1,constructor:function(t){this.id=E.a.generateUUID(this.className),this.color=new I.a(1,1,1,1),Object.assign(this,t)},getInfo:function(){return"LINEAR"===this.mode?(Gr[0]=this.start,Gr[1]=this.end,Gr):this.density},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t["FOG_".concat(this.mode)]=1,t}}),Vr=n(15),Xr=new Vr.a,jr=new u.a,kr=a.a.create({Extends:M,isMesh:!0,className:"Mesh",geometry:null,material:null,useInstanced:!1,frustumTest:!0,constructor:function(t){kr.superclass.constructor.call(this,t)},clone:function(t){var e=M.prototype.clone.call(this,t);return Object.assign(e,{geometry:this.geometry,material:this.material}),e},raycast:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.visible)return null;var n=this.geometry,r=this.material,i=this.worldMatrix;if(n&&r){jr.invert(i),Xr.copy(t),Xr.transformMat4(jr);var a=n.raycast(Xr,r.side,e);if(a)return a.forEach((function(t){t.transformMat4(i)})),a}return null},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.geometry.getRenderOption(t),t},isDestroyed:{get:function(){return this._isDestroyed}},destroy:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._isDestroyed)return this;this.removeFromParent();var n=t.resourceManager;return n.destroyMesh(this),this.material&&e&&this.material.destroyTextures(),this.off(),this.geometry=null,this.material=null,this._isDestroyed=!0,this}}),Wr=kr,Yr=new u.a,zr=new u.a,qr=a.a.create({Extends:Wr,isSkinedMesh:!0,className:"SkinedMesh",useInstanced:!1,jointMatTexture:null,frustumTest:!1,skeleton:null,constructor:function(t){qr.superclass.constructor.call(this,t)},getJointMat:function(){var t=this;if(this.skeleton&&!(this.skeleton.jointCount<=0)){var e=this.skeleton.jointNodeList,n=this.skeleton.inverseBindMatrices,r=16*this.skeleton.jointCount;return this.jointMat&&this.jointMat.length===r||(this.jointMat=new Float32Array(r)),this.clonedFrom?zr.invert(this.clonedFrom.worldMatrix):zr.invert(this.worldMatrix),e.forEach((function(e,r){Yr.copy(zr),Yr.multiply(e.worldMatrix),Yr.multiply(n[r]),Yr.toArray(t.jointMat,16*r)})),this.jointMat}},resetJointNamesByNodeName:function(t){this.skeleton.resetJointNamesByNodeName(t)},resetSkinIndices:function(t){var e=this.skeleton;if(e){var n=this.geometry,r=n.skinIndices;if(r){this.material.isDirty=!0,n.isDirty=!0,r.isDirty=!0;var i=new b.a;r.traverse((function(n,a,s){n.elements.forEach((function(n,r){var a=e.jointNames[n],s=t.jointNames.indexOf(a);s>=0?i.elements[r]=s:v.a.warnOnce("SkinedMesh.resetSkinIndices","SkinedMesh.resetSkinIndices: no jointName found!",a)})),r.setByOffset(s,i)}))}}},initJointMatTexture:function(){if(!this.jointMatTexture){var t=this.getJointMat();this.jointMatTexture=new $e({data:t})}return this.jointMatTexture},updateJointMatTexture:function(){if(this.jointMatTexture){var t=this.getJointMat();this.jointMatTexture.data.set(t,0),this.jointMatTexture.needUpdate=!0}else this.initJointMatTexture()},clone:function(t){var e=Wr.prototype.clone.call(this,t);return Object.assign(e,{useInstanced:this.useInstanced,skeleton:this.skeleton.clone()}),e.clonedFrom=this,e},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};qr.superclass.getRenderOption.call(this,t);var e=this.skeleton.jointCount;if(e&&(t.JOINT_COUNT=e,gt.VERTEX_TEXTURE_FLOAT)){var n=(gt.MAX_VERTEX_UNIFORM_VECTORS-22)/4;e>n&&(t.JOINT_MAT_MAP=1)}return t}}),Zr=qr,Kr=a.a.create({isSkeleton:!0,className:"Skeleton",userData:null,constructor:function(t){this.id=E.a.generateUUID(this.className),this.jointNodeList=[],this.jointNames=[],this.inverseBindMatrices=[],Object.assign(this,t)},jointCount:{get:function(){return this.jointNodeList.length}},_rootNode:null,rootNode:{get:function(){return this._rootNode},set:function(t){this._rootNode=t,t&&this._initJointNodeList()}},_initJointNodeList:function(){var t={};this.rootNode.traverse((function(e){t[e.jointName]=e})),this.jointNodeList=this.jointNames.map((function(e){return t[e]}))},resetJointNamesByNodeName:function(t){var e=this.jointNames;this.jointNodeList.forEach((function(n,r){var i=t.rootNode.getChildByName(n.name);i&&(e[r]=i.jointName)}))},clone:function(t){var e=new Kr;return e.copy(this,t),e},copy:function(t,e){return this.inverseBindMatrices=t.inverseBindMatrices,this.jointNames=t.jointNames.slice(),void 0===e&&(e=t.rootNode),this.rootNode=e,this}}),Qr=Kr,Jr="1.18.1-alpha.0",$r=a.a.create({className:"RenderInfo",isRenderInfo:!0,constructor:function(){this.reset()},addFaceCount:function(t){this._currentFaceCount+=t},addDrawCount:function(t){this._currentDrawCount+=t},reset:function(){this.faceCount=Math.floor(this._currentFaceCount),this.drawCount=Math.floor(this._currentDrawCount),this._currentFaceCount=0,this._currentDrawCount=0}}),ti=new f.a,ei=function(t,e){var n=t.material.renderOrder,r=e.material.renderOrder;if(n!==r)return n-r;var i=t.material._shaderNumId||0,a=e.material._shaderNumId||0;return i!==a?i-a:t._sortRenderZ-e._sortRenderZ},ni=function(t,e){var n=t.material.renderOrder,r=e.material.renderOrder;return n!==r?n-r:e._sortRenderZ-t._sortRenderZ},ri=a.a.create({className:"RenderList",isRenderList:!0,useInstanced:!1,constructor:function(){this.opaqueList=[],this.transparentList=[],this.instancedDict={}},reset:function(){this.opaqueList.length=0,this.transparentList.length=0,this.instancedDict={}},traverse:function(t,e){this.opaqueList.forEach((function(e){t(e)}));var n=this.instancedDict;for(var r in n){var i=n[r];i.length>2&&e?e(i):i.forEach((function(e){t(e)}))}this.transparentList.forEach((function(e){t(e)}))},sort:function(){this.transparentList.sort(ni),this.opaqueList.sort(ei)},addMesh:function(t,e){var n=t.material,r=t.geometry;if(n&&r){if(t.frustumTest&&!e.isMeshVisible(t))return;if(this.useInstanced&&t.useInstanced){var i=this.instancedDict,a=n.id+"_"+r.id,s=i[a];i[a]||(s=i[a]=[]),s.push(t)}else t.worldMatrix.getTranslation(ti),ti.transformMat4(e.viewProjectionMatrix),t._sortRenderZ=ti.z,n.transparent?this.transparentList.push(t):this.opaqueList.push(t)}else v.a.warnOnce("RenderList.addMesh(".concat(t.id,")"),"Mesh must have material and geometry",t)}}),ii=a.a.create({className:"WebGLState",isWebGLState:!0,systemFramebuffer:null,isWebGL2:!1,constructor:function(t){this.gl=t,this.isWebGL2=Object(i.isWebGL2)(t),this.reset()},reset:function(){this._dict={},this.activeTextureIndex=null,this.textureUnitDict={},this.currentFramebuffer=null,this.preFramebuffer=null,this._pixelStorei={}},enable:function(t){!0!==this._dict[t]&&(this._dict[t]=!0,this.gl.enable(t))},disable:function(t){!1!==this._dict[t]&&(this._dict[t]=!1,this.gl.disable(t))},bindFramebuffer:function(t,e){this.currentFramebuffer!==e&&(this.preFramebuffer=this.currentFramebuffer,this.currentFramebuffer=e,this.gl.bindFramebuffer(t,e))},bindSystemFramebuffer:function(){this.bindFramebuffer(this.gl.FRAMEBUFFER,this.systemFramebuffer)},useProgram:function(t){this.set1("useProgram",t)},depthFunc:function(t){this.set1("depthFunc",t)},depthMask:function(t){this.set1("depthMask",t)},clear:function(t){this.gl.clear(t)},depthRange:function(t,e){this.set2("depthRange",t,e)},stencilFunc:function(t,e,n){this.set3("stencilFunc",t,e,n)},stencilMask:function(t){this.set1("stencilMask",t)},stencilOp:function(t,e,n){this.set3("stencilOp",t,e,n)},colorMask:function(t,e,n,r){this.set4("colorMask",t,e,n,r)},cullFace:function(t){this.set1("cullFace",t)},frontFace:function(t){this.set1("frontFace",t)},blendFuncSeparate:function(t,e,n,r){this.set4("blendFuncSeparate",t,e,n,r)},blendEquationSeparate:function(t,e){this.set2("blendEquationSeparate",t,e)},pixelStorei:function(t,e){this._pixelStorei[t]!==e&&(this._pixelStorei[t]=e,this.gl.pixelStorei(t,e))},viewport:function(t,e,n,r){this.set4("viewport",t,e,n,r)},activeTexture:function(t){this.activeTextureIndex!==t&&(this.activeTextureIndex=t,this.gl.activeTexture(t))},bindTexture:function(t,e){var n=this.getActiveTextureUnit();n[t]!==e&&(n[t]=e,this.gl.bindTexture(t,e))},getActiveTextureUnit:function(){var t=this.textureUnitDict[this.activeTextureIndex];return t||(t=this.textureUnitDict[this.activeTextureIndex]={}),t},set1:function(t,e){this._dict[t]!==e&&(this._dict[t]=e,this.gl[t](e))},set2:function(t,e,n){var r=this._dict[t];r||(r=this._dict[t]=[]),r[0]===e&&r[1]===n||(r[0]=e,r[1]=n,this.gl[t](e,n))},set3:function(t,e,n,r){var i=this._dict[t];i||(i=this._dict[t]=[]),i[0]===e&&i[1]===n&&i[2]===r||(i[0]=e,i[1]=n,i[2]=r,this.gl[t](e,n,r))},set4:function(t,e,n,r,i){var a=this._dict[t];a||(a=this._dict[t]=[]),a[0]===e&&a[1]===n&&a[2]===r&&a[3]===i||(a[0]=e,a[1]=n,a[2]=r,a[3]=i,this.gl[t](e,n,r,i))},get:function(t){return this._dict[t]}}),ai=a.a.create({Mixes:o,className:"WebGLResourceManager",isWebGLResourceManager:!0,hasNeedDestroyResource:!1,constructor:function(t){this._needDestroyResources=[],this._meshDict={},Object.assign(this,t)},destroyMesh:function(t){var e=this;this.getMeshResources(t).forEach((function(t){e.destroyIfNoRef(t)})),delete this._meshDict[t.id]},getMeshResources:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=this._meshDict[t.id];return n&&n.forEach((function(t){e.push(t),t.getResources&&t.getResources(e)})),e},addMeshResources:function(t,e){var n=t.id,r=this._meshDict;r[n]||(r[n]=[]);var i=r[n];e.forEach((function(t){-1===i.indexOf(t)&&i.push(t)}))},destroyIfNoRef:function(t){var e=this._needDestroyResources;return t&&e.indexOf(t)<0&&e.push(t),this},getUsedResources:function(t){var e=this,n=[];return t&&t.traverse((function(t){t.isMesh&&!t.isDestroyed&&e.getMeshResources(t,n)})),n},destroyUnsuedResource:function(t){var e=this,n=this._needDestroyResources;if(0===n.length)return this;var r=this.getUsedResources(t);return n.forEach((function(t){r.indexOf(t)<0&&t&&t.destroy&&!t.alwaysUse&&(e.fire("destroyResource",t.id),t.destroy())})),this.reset(),this},reset:function(){return this._needDestroyResources.length=0,this}}),si=new u.a,oi=new f.a,ui=new Float32Array([0,0,0]),ci=a.a.create({isLightManager:!0,className:"LightManager",constructor:function(t){this.ambientLights=[],this.directionalLights=[],this.pointLights=[],this.spotLights=[],this.areaLights=[],this.lightInfo={AMBIENT_LIGHTS:0,POINT_LIGHTS:0,DIRECTIONAL_LIGHTS:0,SPOT_LIGHTS:0,AREA_LIGHTS:0,uid:0},Object.assign(this,t)},getRenderOption:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(i.each)(this.lightInfo,(function(n,r){if("uid"!==r&&n){e[r]=n;var i=t.getShadowMapCount(r);i&&(e[r+"_SMC"]=i)}})),e},addLight:function(t){var e=null;return t.enabled?(t.isAmbientLight?e=this.ambientLights:t.isDirectionalLight?e=this.directionalLights:t.isPointLight?e=this.pointLights:t.isSpotLight?e=this.spotLights:t.isAreaLight?e=this.areaLights:v.a.warnOnce("LightManager.addLight(".concat(t.id,")"),"Not support this light:",t),e&&(t.shadow?e.unshift(t):e.push(t)),this):this},getDirectionalInfo:function(t){var e=[],n=[],r=[],i=[],a=[],s=[];this.directionalLights.forEach((function(o,u){var c=3*u;o.getRealColor().toRGBArray(e,c),o.getViewDirection(t).toArray(n,c),o.shadow&&o.lightShadow&&(r.push(o.lightShadow.framebuffer.texture),i.push(o.lightShadow.width),i.push(o.lightShadow.height),s.push(o.lightShadow.minBias,o.lightShadow.maxBias),si.copy(t.worldMatrix),si.premultiply(o.lightShadow.camera.viewProjectionMatrix),si.toArray(a,16*u))}));var o={colors:new Float32Array(e),infos:new Float32Array(n)};return r.length&&(o.shadowMap=r,o.shadowMapSize=new Float32Array(i),o.shadowBias=new Float32Array(s),o.lightSpaceMatrix=new Float32Array(a)),o},getSpotInfo:function(t){var e=[],n=[],r=[],i=[],a=[],s=[],o=[],u=[],c=[],f=[];this.spotLights.forEach((function(h,l){var d=3*l;h.getRealColor().toRGBArray(e,d),h.toInfoArray(n,d),h.getViewDirection(t).toArray(i,d),f.push(h.range),a.push(h._cutoffCos,h._outerCutoffCos),t.getModelViewMatrix(h,si),si.getTranslation(oi),oi.toArray(r,d),h.shadow&&h.lightShadow&&(s.push(h.lightShadow.framebuffer.texture),o.push(h.lightShadow.width),o.push(h.lightShadow.height),c.push(h.lightShadow.minBias,h.lightShadow.maxBias),si.multiply(h.lightShadow.camera.viewProjectionMatrix,t.worldMatrix),si.toArray(u,16*l))}));var h={colors:new Float32Array(e),infos:new Float32Array(n),poses:new Float32Array(r),dirs:new Float32Array(i),cutoffs:new Float32Array(a),ranges:new Float32Array(f)};return s.length&&(h.shadowMap=s,h.shadowMapSize=new Float32Array(o),h.shadowBias=new Float32Array(c),h.lightSpaceMatrix=new Float32Array(u)),h},getPointInfo:function(t){var e=[],n=[],r=[],i=[],a=[],s=[],o=[],u=[];this.pointLights.forEach((function(c,f){var h=3*f;c.getRealColor().toRGBArray(e,h),c.toInfoArray(n,h),u.push(c.range),t.getModelViewMatrix(c,si),si.getTranslation(oi),oi.toArray(r,h),c.shadow&&c.lightShadow&&(i.push(c.lightShadow.framebuffer.texture),s.push(c.lightShadow.minBias,c.lightShadow.maxBias),t.worldMatrix.toArray(a,16*f),o[2*f]=c.lightShadow.camera.near,o[2*f+1]=c.lightShadow.camera.far)}));var c={colors:new Float32Array(e),infos:new Float32Array(n),poses:new Float32Array(r),ranges:new Float32Array(u)};return i.length&&(c.shadowMap=i,c.shadowBias=new Float32Array(s),c.lightSpaceMatrix=new Float32Array(a),c.cameras=new Float32Array(o)),c},getAreaInfo:function(t){var e,n,r=[],i=[],a=[],s=[];return this.areaLights.forEach((function(o,u){var c=3*u;o.getRealColor().toRGBArray(r,c),t.getModelViewMatrix(o,si),si.getTranslation(oi),oi.toArray(i,c);var f=si.getRotation();si.fromQuat(f),oi.set(.5*o.width,0,0),oi.transformMat4(si),oi.toArray(a,c),oi.set(0,.5*o.height,0),oi.transformMat4(si),oi.toArray(s,c),e=o.ltcTexture1,n=o.ltcTexture2})),{colors:new Float32Array(r),poses:new Float32Array(i),width:new Float32Array(a),height:new Float32Array(s),ltcTexture1:e,ltcTexture2:n}},getAmbientInfo:function(){return ui[0]=ui[1]=ui[2]=0,this.ambientLights.forEach((function(t){var e=t.getRealColor();ui[0]+=e.r,ui[1]+=e.g,ui[2]+=e.b})),ui[0]=Math.min(1,ui[0]),ui[1]=Math.min(1,ui[1]),ui[2]=Math.min(1,ui[2]),ui},updateInfo:function(t){var e=this.lightInfo,n=this.ambientLights,r=this.directionalLights,i=this.pointLights,a=this.spotLights,s=this.areaLights;e.AMBIENT_LIGHTS=n.length,e.POINT_LIGHTS=i.length,e.DIRECTIONAL_LIGHTS=r.length,e.SPOT_LIGHTS=a.length,e.AREA_LIGHTS=s.length;var o=function(t){return!!t.shadow};e.SHADOW_POINT_LIGHTS=i.filter(o).length,e.SHADOW_SPOT_LIGHTS=a.filter(o).length,e.SHADOW_DIRECTIONAL_LIGHTS=r.filter(o).length,e.uid=[e.AMBIENT_LIGHTS,e.POINT_LIGHTS,e.SHADOW_POINT_LIGHTS,e.DIRECTIONAL_LIGHTS,e.SHADOW_DIRECTIONAL_LIGHTS,e.SPOT_LIGHTS,e.SHADOW_SPOT_LIGHTS,e.AREA_LIGHTS].join("_"),this.directionalInfo=this.getDirectionalInfo(t),this.pointInfo=this.getPointInfo(t),this.spotInfo=this.getSpotInfo(t),this.areaInfo=this.getAreaInfo(t),this.ambientInfo=this.getAmbientInfo(),this.updateCustomInfo&&this.updateCustomInfo(this,t)},updateCustomInfo:null,getInfo:function(){return this.lightInfo},reset:function(){this.ambientLights.length=0,this.directionalLights.length=0,this.pointLights.length=0,this.spotLights.length=0,this.areaLights.length=0},getShadowMapCount:function(t){var e=[];"POINT_LIGHTS"===t?e=this.pointLights:"DIRECTIONAL_LIGHTS"===t?e=this.directionalLights:("SPOT_LIGHTS"===t||"AREA_LIGHTS"===t)&&(e=this.spotLights);var n=0;return e.forEach((function(t){n+=t.shadow?1:0})),n},createShadowMap:function(t,e){this.directionalLights.forEach((function(n){n.createShadowMap(t,e)})),this.spotLights.forEach((function(n){n.createShadowMap(t,e)})),this.pointLights.forEach((function(n){n.createShadowMap(t,e)})),this.areaLights.forEach((function(n){n.createShadowMap(t,e)}))}}),fi=U.a.DEPTH_TEST,hi=U.a.STENCIL_TEST,li=U.a.SAMPLE_ALPHA_TO_COVERAGE,di=U.a.CULL_FACE,mi=U.a.FRONT_AND_BACK,_i=U.a.BLEND,pi=U.a.LINES,gi=U.a.STATIC_DRAW,Ei=U.a.DYNAMIC_DRAW,vi=a.a.create({Mixes:o,className:"WebGLRenderer",isWebGLRenderer:!0,gl:null,width:0,height:0,pixelRatio:1,domElement:null,useInstanced:!1,useVao:!0,alpha:!1,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,failIfMajorPerformanceCaveat:!1,gameMode:!1,useFramebuffer:!1,framebufferOption:{},useLogDepth:!1,vertexPrecision:"highp",fragmentPrecision:"highp",fog:null,offsetX:0,offsetY:0,forceMaterial:null,isInitFailed:!1,_isInit:!1,_isContextLost:!1,isWebGL2:!1,preferWebGL2:!1,constructor:function(t){this.clearColor=new I.a(1,1,1),Object.assign(this,t),this.renderInfo=new $r,this.renderList=new ri,this.lightManager=new ci,this.resourceManager=new ai},resize:function(t,e,n){if(n||this.width!==t||this.height!==e){var r=this.domElement;this.width=t,this.height=e,r.width=t,r.height=e,this.framebuffer&&this.framebuffer.resize(this.width,this.height,n),this.viewport()}},setOffset:function(t,e){this.offsetX===t&&this.offsetY===e||(this.offsetX=t,this.offsetY=e,this.viewport())},viewport:function(t,e,n,r){var i=this.state,a=this.gl;i&&(void 0===t?t=this.offsetX:this.offsetX=t,void 0===e?e=this.offsetY:this.offsetY=e,void 0===n&&(n=a.drawingBufferWidth),void 0===r&&(r=a.drawingBufferHeight),i.viewport(t,e,n,r))},isInit:{get:function(){return this._isInit&&!this.isInitFailed}},onInit:function(t){var e=this;this._isInit?t(this):this.on("init",(function(){t(e)}),!0)},initContext:function(){if(!this._isInit){this._isInit=!0;try{this._initContext(),this.fire("init")}catch(t){this.isInitFailed=!0,this.fire("initFailed",t)}}},_initContext:function(){var t=this,e={alpha:this.alpha,depth:this.depth,stencil:this.stencil,antialias:this.antialias,premultipliedAlpha:this.premultipliedAlpha,failIfMajorPerformanceCaveat:this.failIfMajorPerformanceCaveat};if(!0===this.preserveDrawingBuffer&&(e.preserveDrawingBuffer=!0),!0===this.gameMode&&(e.gameMode=!0),this.preferWebGL2)try{this.gl=this.domElement.getContext("webgl2",e),this.isWebGL2=!0}catch(t){this.isWebGL2=!1,this.gl=null}this.gl||(this.gl=this.domElement.getContext("webgl",e),this.isWebGL2=!1);var n=this.gl;n.viewport(0,0,this.width,this.height),Dt.init(n),pt.init(n),gt.init(n),Nt.init(this),this.state=new ii(n),pt.instanced||(this.useInstanced=!1),this.renderList.useInstanced=this.useInstanced,this.useFramebuffer&&(this.framebuffer=new Ge(this,Object.assign({useVao:this.useVao,width:this.width,height:this.height},this.framebufferOption))),this.domElement.addEventListener("webglcontextlost",(function(e){t._onContextLost(e)}),!1),this.domElement.addEventListener("webglcontextrestored",(function(e){t._onContextRestore(e)}),!1)},_onContextLost:function(t){var e=this.gl;this._isContextLost=!0,t.preventDefault(),Xt.reset(e),Nt.reset(e),Te.reset(e),qt.reset(e),ne.reset(e),this.state.reset(e),this._lastMaterial=null,this._lastProgram=null,this.fire("webglContextLost")},_onContextRestore:function(t){var e=this.gl;this._isContextLost=!1,pt.reset(e),Ge.reset(e),this.fire("webglContextRestored")},setupDepthTest:function(t){var e=this.state;t.depthTest?(e.enable(fi),e.depthFunc(t.depthFunc),e.depthMask(t.depthMask),e.depthRange(t.depthRange[0],t.depthRange[1])):e.disable(fi)},setupSampleAlphaToCoverage:function(t){var e=this.state;t.sampleAlphaToCoverage?e.enable(li):e.disable(li)},setupCullFace:function(t){var e=this.state;e.frontFace(t.frontFace),t.cullFace&&t.cullFaceType!==mi?(e.enable(di),e.cullFace(t.cullFaceType)):e.disable(di)},setupBlend:function(t){var e=this.state;t.blend?(e.enable(_i),e.blendFuncSeparate(t.blendSrc,t.blendDst,t.blendSrcAlpha,t.blendDstAlpha),e.blendEquationSeparate(t.blendEquation,t.blendEquationAlpha)):e.disable(_i)},setupStencil:function(t){if(this.stencil){var e=this.state;t.stencilTest?(e.enable(hi),e.stencilMask(t.stencilMask),e.stencilFunc(t.stencilFunc,t.stencilFuncRef,t.stencilFuncMask),e.stencilOp(t.stencilOpFail,t.stencilOpZFail,t.stencilOpZPass)):e.disable(hi)}},setupUniforms:function(t,e,n,r){var i=this.forceMaterial||e.material;if(this.isWebGL2){var a=i.uniformBlocks;for(var s in t.uniformBlocks){var o=a[s];o&&(t[s]=o)}}for(var u in t.uniforms){var c=i.getUniformInfo(u),f=t.uniforms[u];if(!c.isBlankInfo&&(r||c.isDependMesh&&!n)){var h=c.get(e,i,f);null!=h&&(t[u]=h)}}},setupVao:function(t,e,n){var r=n.geometry,i=r.isStatic;if(t.isDirty||!i||r.isDirty){t.isDirty=!1;var a=this.forceMaterial||n.material,s=a.attributes,o=i?gi:Ei;for(var u in s){var c=e.attributes[u];if(c){var f=a.getAttributeData(u,n,c);null!=f&&t.addAttribute(f,c,o)}}r.indices&&t.addIndexBuffer(r.indices,o),r.isDirty=!1}r.vertexCount&&(t.vertexCount=r.vertexCount)},setupMaterial:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=this.forceMaterial||e.material;(i.isDirty||this._lastMaterial!==i)&&(this.setupDepthTest(i),this.setupSampleAlphaToCoverage(i),this.setupCullFace(i),this.setupBlend(i),this.setupStencil(i),r=!0),this.setupUniforms(t,e,n,r),i.isDirty=!1,this._lastMaterial=i},setupMesh:function(t,e){var n=this.gl,r=this.state,i=this.lightManager,a=this.resourceManager,s=t.geometry,o=this.forceMaterial||t.material,u=Nt.getShader(t,o,e,i,this.fog,this.useLogDepth),c=Xt.getProgram(u,r);c.useProgram(),this.setupMaterial(c,t,e,this._lastProgram!==c),this._lastProgram=c,t.material.wireframe&&s.mode!==pi&&s.convertToLinesMode();var f=s.id+c.id,h=ne.getVao(n,f,{useInstanced:e,useVao:this.useVao,mode:s.mode});return this.setupVao(h,c,t),a.addMeshResources(t,[h,u,c]),{vao:h,program:c,geometry:s}},addRenderInfo:function(t,e){var n=this.renderInfo;n.addFaceCount(t),n.addDrawCount(e)},render:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.initContext(),!this.isInitFailed&&!this._isContextLost){var r=this.renderList,i=this.renderInfo,a=this.lightManager,s=this.resourceManager,o=this.state;this.fog=t.fog,a.reset(),i.reset(),r.reset(),pn.init(this,o,e,a,this.fog),t.updateMatrixWorld(),e.updateViewProjectionMatrix(),t.traverse((function(t){return t.visible?(t.isMesh?r.addMesh(t,e):t.isLight&&a.addLight(t),M.TRAVERSE_STOP_NONE):M.TRAVERSE_STOP_CHILDREN})),r.sort(),a.createShadowMap(this,e),a.updateInfo(e),n&&this.fire("beforeRender"),this.useFramebuffer&&this.framebuffer.bind(),this.clear(),n&&this.fire("beforeRenderScene"),this.renderScene(),this.useFramebuffer&&this.renderToScreen(this.framebuffer),n&&this.fire("afterRender"),s.destroyUnsuedResource(t)}},renderScene:function(){var t=this;this.renderList.traverse((function(e){t.renderMesh(e)}),(function(e){t.renderInstancedMeshes(e)})),this._gameModeSumbit()},_gameModeSumbit:function(){var t=this.gl;this.gameMode&&t&&t.submit&&t.submit()},clear:function(t){var e=this.gl,n=this.state;t=t||this.clearColor,this._lastMaterial=null,this._lastProgram=null,e.clearColor(t.r,t.g,t.b,t.a),n.depthMask(!0);var r=e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT;this.stencil&&(n.stencilMask(!0),r|=e.STENCIL_BUFFER_BIT),e.clear(r)},clearDepth:function(){var t=this.gl;this.state.depthMask(!0),t.clear(t.DEPTH_BUFFER_BIT)},clearStencil:function(){var t=this.gl;this.state.stencilMask(!0),t.clear(t.STENCIL_BUFFER_BIT)},renderToScreen:function(t){this.state.bindSystemFramebuffer(),t.render(0,0,1,1,this.clearColor)},renderMesh:function(t){var e=this.setupMesh(t,!1).vao;e.draw(),this.addRenderInfo(e.vertexCount/3,1)},renderInstancedMeshes:function(t){var e=t[0];if(e){var n=this.forceMaterial||e.material,r=this.setupMesh(e,!0),i=r.vao,a=r.program;n.getInstancedUniforms().forEach((function(e){var n=e.name,r=e.info,s=a.attributes[n];s&&i.addInstancedAttribute(s,t,(function(t){return r.get(t)}))})),i.drawInstance(t.length),this.addRenderInfo(i.vertexCount/3*t.length,1)}},renderMultipleMeshes:function(t){var e=this;t.forEach((function(t){e.renderMesh(t)}))},releaseGLResource:function(){var t=this.gl;t&&(Xt.reset(t),Nt.reset(t),qt.reset(t),ne.reset(t),this.state.reset(t),Te.reset(t),Ge.destroy(t))}}),Ti=function(){var t,e=navigator.userAgent,n=document,r=window,i=n.documentElement,a={iphone:/iphone/i.test(e),ipad:/ipad/i.test(e),ipod:/ipod/i.test(e),ios:/iphone|ipad|ipod/i.test(e),android:/android/i.test(e),webkit:/webkit/i.test(e),chrome:/chrome/i.test(e),safari:/safari/i.test(e),firefox:/firefox/i.test(e),ie:/msie/i.test(e),opera:/opera/i.test(e),supportTouch:"ontouchstart"in r,supportCanvas:!!n.createElement("canvas").getContext,supportStorage:void 0,supportOrientation:"orientation"in r||"orientation"in r.screen,supportDeviceMotion:"ondevicemotion"in r};try{localStorage.setItem("hilo","hilo"),localStorage.removeItem("hilo"),a.supportStorage=!0}catch(t){a.supportStorage=!1,v.a.warn("LocalStorage disabled")}t=a.webkit||a.firefox?"webkit":a.opera?"o":a.ie?"ms":"",a.jsVendor=t;var s=a.cssVendor="-"+t+"-";try{var o=n.createElement("div"),u=o.style,c=void 0!==u[t+"Transform"],f=void 0!==u[t+"Perspective"];f&&(o.id="test3d",(u=n.createElement("style")).textContent="@media ("+s+"transform-3d){#test3d{height:3px}}",n.head.appendChild(u),i.appendChild(o),f=3===o.offsetHeight,n.head.removeChild(u),i.removeChild(o)),a.supportTransform=c,a.supportTransform3D=f}catch(t){a.supportTransform=!1,a.supportTransform3D=!1}var h=a.supportTouch,l=h?"touchstart":"mousedown",d=h?"touchmove":"mousemove",m=h?"touchend":"mouseup";return a.POINTER_START=l,a.POINTER_MOVE=d,a.POINTER_END=m,a}(),Ai=a.a.create({Extends:M,isStage:!0,className:"Stage",renderer:null,camera:null,pixelRatio:null,offsetX:0,offsetY:0,width:0,height:0,canvas:null,constructor:function(t){if(t.width||(t.width=window.innerWidth),t.height||(t.height=window.innerHeight),!t.pixelRatio){var e=window.devicePixelRatio||1;e=Math.min(e,1024/Math.max(t.width,t.height),2),e=Math.max(e,1),t.pixelRatio=e}Ai.superclass.constructor.call(this,t),this.initRenderer(t),v.a.log("Hilo3d version: ".concat(Jr))},initRenderer:function(t){var e=this.canvas=this.createCanvas(t);this.renderer=new vi(Object.assign(t,{domElement:e})),this.resize(this.width,this.height,this.pixelRatio,!0)},createCanvas:function(t){var e;return e=t.canvas?t.canvas:document.createElement("canvas"),t.container&&t.container.appendChild(e),e},resize:function(t,e,n,r){if(void 0===n&&(n=this.pixelRatio),r||this.width!==t||this.height!==e||this.pixelRatio!==n){this.width=t,this.height=e,this.pixelRatio=n,this.rendererWidth=t*n,this.rendererHeight=e*n;var i=this.canvas;this.renderer.resize(this.rendererWidth,this.rendererHeight,r),i.style.width=this.width+"px",i.style.height=this.height+"px",this.updateDomViewport()}return this},setOffset:function(t,e){if(this.offsetX!==t||this.offsetY!==e){this.offsetX=t,this.offsetY=e;var n=this.pixelRatio;this.renderer.setOffset(t*n,e*n)}return this},viewport:function(t,e,n,r){return this.resize(n,r,this.pixelRatio,!0),this.setOffset(t,e),this},tick:function(t){return this.traverseUpdate(t),this.camera&&this.renderer.render(this,this.camera,!0),this},enableDOMEvent:function(t){var e=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=this.canvas,i=this._domListener||(this._domListener=function(t){e._onDOMEvent(t)});return(t="string"==typeof t?[t]:t).forEach((function(t){n?r.addEventListener(t,i,!1):r.removeEventListener(t,i)})),this},_onDOMEvent:function(t){var e=this.canvas,n=this._eventTarget,r=t.type,i=0===r.indexOf("touch"),a=t;if(i){var s=t.touches,o=t.changedTouches;s&&s.length?a=s[0]:o&&o.length&&(a=o[0])}var u=this.domViewport||this.updateDomViewport(),c=(a.pageX||a.clientX)-u.left,f=(a.pageY||a.clientY)-u.top;t.stageX=c,t.stageY=f,t.stopPropagation=function(){this._stopPropagationed=!0};var h=this.getMeshResultAtPoint(c,f,!0),l=h.mesh;t.hitPoint=h.point;var d="mouseout"===r;if(n&&(n!==l&&(!n.contains||!n.contains(l))||d)){var m=!1;if("touchmove"===r?m="touchout":"mousemove"!==r&&!d&&l||(m="mouseout"),m){var _=Object.assign({},t);_.type=m,_.eventTarget=n,n._fireMouseEvent(_)}t.lastEventTarget=n,this._eventTarget=null}if(l&&l.pointerEnabled&&"mouseout"!==r&&(t.eventTarget=this._eventTarget=l,l._fireMouseEvent(t)),!i){var p=l&&l.pointerEnabled&&l.useHandCursor?"pointer":"";e.style.cursor=p}Ti.android&&"touchmove"===r&&t.preventDefault()},updateDomViewport:function(){var t=this.canvas,e=null;return t.parentNode&&(e=this.domViewport=Object(i.getElementRect)(t)),e},getMeshResultAtPoint:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.camera,i=this._ray;i||(i=this._ray=new Vr.a),i.fromCamera(r,t,e,this.width,this.height);var a=this.raycast(i,!0,n);if(a)return a[0];this._stageResultAtPoint||(this._stageResultAtPoint={mesh:this,point:new f.a});var s=this._stageResultAtPoint.point;return s.copy(r.unprojectVector(s.set(t,e,0),this.width,this.height)),this._stageResultAtPoint},releaseGLResource:function(){return this.renderer.releaseGLResource(),this},destroy:function(){return Ai.superclass.destroy.call(this,this.renderer),this.releaseGLResource(),this.traverse((function(t){t.off(),t.parent=null})),this.children.length=0,this.renderer.off(),this}}),Mi=Ai;function Ii(){return+new Date}var Ri=a.a.create({constructor:function(t,e,n,r){var i=this;for(var a in i.target=t,i._startTime=0,i._seekTime=0,i._pausedTime=0,i._pausedStartTime=0,i._reverseFlag=1,i._repeatCount=0,3===arguments.length&&(r=n,n=e,e=null),r)i[a]=r[a];i._fromProps=e,i._toProps=n,!r.duration&&r.time&&(i.duration=r.time||0,i.time=0)},target:null,duration:1e3,delay:0,paused:!1,loop:!1,reverse:!1,repeat:0,repeatDelay:0,ease:null,time:0,isStart:!1,isComplete:!1,onStart:null,onUpdate:null,onComplete:null,setProps:function(t,e){var n=this.target,r=t||e,i=this._fromProps={},a=this._toProps={};for(var s in t=t||n,e=e||n,r)a[s]=e[s]||0,n[s]=i[s]=t[s]||0;return this},start:function(){var t=this;return t._startTime=Ii()+t.delay,t._seekTime=0,t._pausedTime=0,t._reverseFlag=1,t._repeatCount=0,t.paused=!1,t.isStart=!1,t.isComplete=!1,Ri.add(t),t},stop:function(){return Ri.remove(this),this},pause:function(){return this.paused=!0,this._pausedStartTime=Ii(),this},resume:function(){var t=this;return t.paused=!1,t._pausedStartTime&&(t._pausedTime+=Ii()-t._pausedStartTime),t._pausedStartTime=0,t},seek:function(t,e){var n=this,r=Ii();return n._startTime=r,n._seekTime=t,n._pausedTime=0,void 0!==e&&(n.paused=e),n._update(r,!0),Ri.add(n),n},link:function(t){var e,n,r=t.delay,i=this._startTime;return"string"==typeof r&&(e=0===r.indexOf("+"),n=0===r.indexOf("-"),r=e||n?Number(r.substr(1))*(e?1:-1):Number(r)),t.delay=r,t._startTime=e||n?i+this.duration+r:i+r,this._next=t,Ri.remove(t),t},_render:function(t){var e=this.target,n=this._fromProps;for(var r in n)e[r]=n[r]+(this._toProps[r]-n[r])*t},_update:function(t,e){var n=this;if(n.paused&&!e)return!1;if(n.isComplete)return!0;var r=t-n._startTime-n._pausedTime+n._seekTime;if(r<0)return!1;var i,a=r/n.duration;a<=0?a=0:a>=1&&(a=1);var s=n.ease?n.ease(a):a;n.reverse&&n.isStart&&(n._reverseFlag<0&&(a=1-a,s=1-s),a<1e-7&&(n.repeat>0&&n._repeatCount++>=n.repeat||0===n.repeat&&!n.loop?n.isComplete=!0:(n._startTime=Ii(),n._pausedTime=0,n._reverseFlag*=-1))),n.isStart||(n.setProps(n._fromProps,n._toProps),n.isStart=!0,n.onStart&&n.onStart.call(n,n)),n.time=r,n._render(s),(i=n.onUpdate)&&i.call(n,s,n),a>=1&&(n.reverse?(n._startTime=Ii(),n._pausedTime=0,n._reverseFlag*=-1):n.loop||n.repeat>0&&n._repeatCount++<n.repeat?(n._startTime=Ii()+n.repeatDelay,n._pausedTime=0):n.isComplete=!0);var o=n._next;if(o&&o.time<=0){var u=o._startTime;u>0&&u<=t?(o._render(a),o.time=r,Ri.add(o)):n.isComplete&&(u<0||u>t)&&o.start()}return!!n.isComplete&&((i=n.onComplete)&&i.call(n,n),!0)},Statics:{_tweens:[],tick:function(){var t,e,n=Ri._tweens,r=n.length;for(e=0;e<r;e++)(t=n[e])&&t._update(Ii())&&(n.splice(e,1),e--);return Ri},add:function(t){var e=Ri._tweens;return-1===e.indexOf(t)&&e.push(t),Ri},remove:function(t){var e,n;if(t instanceof Array){for(e=0,n=t.length;e<n;e++)Ri.remove(t[e]);return Ri}var r=Ri._tweens;if(t instanceof Ri)(e=r.indexOf(t))>-1&&r.splice(e,1);else for(e=0;e<r.length;e++)r[e].target===t&&(r.splice(e,1),e--);return Ri},removeAll:function(){return Ri._tweens.length=0,Ri},fromTo:function(t,e,n,r){r=r||{};var i,a,s=t instanceof Array;t=s?t:[t];var o=r.stagger,u=[];for(a=0;a<t.length;a++)i=new Ri(t[a],e,n,r),o&&(i.delay=(r.delay||0)+(a*o||0)),i.start(),u.push(i);return s?u:i},to:function(t,e,n){return Ri.fromTo(t,null,e,n)},from:function(t,e,n){return Ri.fromTo(t,e,null,n)}}});function Oi(t,e,n,r,i){return t=t||{},e&&(t.EaseIn=e),n&&(t.EaseOut=n),r&&(t.EaseInOut=r),i&&(t.EaseNone=i),t}var Li=Oi(null,null,null,null,(function(t){return t})),Si=Oi(null,(function(t){return t*t}),(function(t){return-t*(t-2)}),(function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)})),yi=Oi(null,(function(t){return t*t*t}),(function(t){return--t*t*t+1}),(function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)})),Ni=Oi(null,(function(t){return t*t*t*t}),(function(t){return-(--t*t*t*t-1)}),(function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)})),xi=Oi(null,(function(t){return t*t*t*t*t}),(function(t){return(t-=1)*t*t*t*t+1}),(function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)})),Ci=Math,bi=Ci.PI,Pi=.5*bi,wi=Ci.sin,Hi=Ci.cos,Di=Ci.pow,Fi=Ci.sqrt,Ui=Oi(null,(function(t){return 1-Hi(t*Pi)}),(function(t){return wi(t*Pi)}),(function(t){return-.5*(Hi(bi*t)-1)})),Gi=Oi(null,(function(t){return 0===t?0:Di(2,10*(t-1))}),(function(t){return 1===t?1:1-Di(2,-10*t)}),(function(t){return 0===t||1===t?t:(t*=2)<1?.5*Di(2,10*(t-1)):.5*(2-Di(2,-10*(t-1)))})),Bi=Oi(null,(function(t){return-(Fi(1-t*t)-1)}),(function(t){return Fi(1- --t*t)}),(function(t){return(t/=.5)<1?-.5*(Fi(1-t*t)-1):.5*(Fi(1-(t-=2)*t)+1)})),Vi=Oi({a:1,p:.4,s:.1,config:function(t,e){Vi.a=t,Vi.p=e,Vi.s=e/(2*bi)*Math.asin(1/t)||0}},(function(t){return-Vi.a*Di(2,10*(t-=1))*wi((t-Vi.s)*(2*bi)/Vi.p)}),(function(t){return Vi.a*Di(2,-10*t)*wi((t-Vi.s)*(2*bi)/Vi.p)+1}),(function(t){return(t*=2)<1?Vi.a*Di(2,10*(t-=1))*wi((t-Vi.s)*(2*bi)/Vi.p)*-.5:Vi.a*Di(2,-10*(t-=1))*wi((t-Vi.s)*(2*bi)/Vi.p)*.5+1})),Xi=Oi({o:1.70158,s:2.59491,config:function(t){Xi.o=t,Xi.s=1.525*t}},(function(t){return t*t*((Xi.o+1)*t-Xi.o)}),(function(t){return(t-=1)*t*((Xi.o+1)*t+Xi.o)+1}),(function(t){return(t*=2)<1?t*t*((Xi.s+1)*t-Xi.s)*.5:.5*((t-=2)*t*((Xi.s+1)*t+Xi.s)+2)})),ji=Oi(null,(function(t){return 1-ji.EaseOut(1-t)}),(function(t){return(t/=1)<.36364?7.5625*t*t:t<.72727?7.5625*(t-=.54545)*t+.75:t<.90909?7.5625*(t-=.81818)*t+.9375:7.5625*(t-=.95455)*t+.984375}),(function(t){return t<.5?.5*ji.EaseIn(2*t):.5*ji.EaseOut(2*t-1)+.5}));Ri.Ease={Linear:Li,Quad:Si,Cubic:yi,Quart:Ni,Quint:xi,Sine:Ui,Expo:Gi,Circ:Bi,Elastic:Vi,Back:Xi,Bounce:ji};var ki=Ri,Wi=a.a.create({Extends:tt,isBoxGeometry:!0,className:"BoxGeometry",width:1,height:1,depth:1,widthSegments:1,heightSegments:1,depthSegments:1,constructor:function(t){Wi.superclass.constructor.call(this,t),this.isSegments()?this.buildWithSegments():this.build()},buildWithSegments:function(){var t=this.width,e=this.height,n=this.depth,r=this.widthSegments,i=this.heightSegments,a=this.depthSegments,s=i*a*6,o=r*a*6,u=r*i*6,c=2*((i+1)*(a+1)+(r+1)*(a+1)+(r+1)*(i+1)),f=new Float32Array(3*c),h=new Float32Array(3*c),l=new Float32Array(2*c),d=new Uint16Array(2*(s+o+u));this.vertices=new F(f,3),this.normals=new F(h,3),this.uvs=new F(l,2),this.indices=new F(d,1);var m=[0,0];this.buildPlane(m,2,1,0,-1,1,n,e,t/2,a,i),this.buildPlane(m,2,1,0,1,1,n,e,-t/2,a,i),this.buildPlane(m,0,2,1,1,-1,t,n,e/2,r,a),this.buildPlane(m,0,2,1,1,1,t,n,-e/2,r,a),this.buildPlane(m,0,1,2,1,1,t,e,n/2,r,i),this.buildPlane(m,0,1,2,-1,1,t,e,-n/2,r,i)},buildPlane:function(t,e,n,r,i,a,s,o,u,c,f){for(var h=s/c,l=o/f,d=s/2,m=o/2,_=t[0],p=t[1],g=this.vertices.data,E=this.normals.data,v=this.uvs.data,T=this.indices.data,A=0;A<=f;A++)for(var M=(A*l-m)*a,I=0;I<=c;I++){if(g[3*_+e]=(I*h-d)*i,g[3*_+n]=M,g[3*_+r]=u,E[3*_+e]=0,E[3*_+n]=0,E[3*_+r]=u<0?-1:1,v[2*_]=I/c,v[2*_+1]=1-A/f,I<c&&A<f){var R=t[0]+(A+1)*(c+1)+I;T[p++]=R,T[p++]=_,T[p++]=R+1,T[p++]=R+1,T[p++]=_,T[p++]=_+1}_++}t[0]=_,t[1]=p},build:function(){var t=new Float32Array(72),e=new Uint16Array(36);this.vertices=new F(t,3),this.indices=new F(e,1);var n=this.width/2,r=this.height/2,i=this.depth/2,a=[-n,-r,-i],s=[n,-r,-i],o=[n,r,-i],u=[-n,r,-i],c=[-n,-r,i],f=[n,-r,i],h=[n,r,i],l=[-n,r,i];this.addRect(f,s,o,h),this.addRect(a,c,l,u),this.addRect(l,h,o,u),this.addRect(a,s,f,c),this.addRect(c,f,h,l),this.addRect(s,a,u,o)},isSegments:function(){return this.widthSegments>1||this.heightSegments>1||this.depthSegments>1},setFrontUV:function(t){this.isSegments()?v.a.warn("segmented BoxGeometry dont support setFrontUV!"):this.setVertexUV(32,t)},setRightUV:function(t){this.isSegments()?v.a.warn("segmented BoxGeometry dont support setRightUV!"):this.setVertexUV(0,t)},setBackUV:function(t){this.isSegments()?v.a.warn("segmented BoxGeometry dont support setBackUV!"):this.setVertexUV(40,t)},setLeftUV:function(t){this.isSegments()?v.a.warn("segmented BoxGeometry dont support setLeftUV!"):this.setVertexUV(8,t)},setTopUV:function(t){this.isSegments()?v.a.warn("segmented BoxGeometry dont support setTopUV!"):this.setVertexUV(16,t)},setBottomUV:function(t){this.isSegments()?v.a.warn("segmented BoxGeometry dont support setBottomUV!"):this.setVertexUV(24,t)},setAllRectUV:function(t){if(this.isSegments())return v.a.warn("segmented BoxGeometry dont support setAllRectUV!"),null;for(var e=0;e<6;e++)this.setVertexUV(8*e,t);return this},_raycast:function(t,e){return Wi.superclass._raycast.call(this,t,e)}}),Yi=Wi,zi=U.a.FRONT,qi=U.a.BACK,Zi=[0,0,1],Ki=a.a.create({Extends:tt,isPlaneGeometry:!0,className:"PlaneGeometry",width:1,height:1,widthSegments:1,heightSegments:1,constructor:function(t){Ki.superclass.constructor.call(this,t),this.build()},build:function(){for(var t=this.widthSegments,e=this.heightSegments,n=(t+1)*(e+1),r=this.width/t,i=this.height/e,a=new Float32Array(3*n),s=new Float32Array(3*n),o=new Float32Array(2*n),u=new Uint16Array(t*e*6),c=0,f=0;f<=e;f++)for(var h=0;h<=t;h++){var l=f*(t+1)+h;if(a[3*l]=h*r-this.width/2,a[3*l+1]=this.height/2-f*i,s[3*l]=0,s[3*l+1]=0,s[3*l+2]=1,o[2*l]=h/t,o[2*l+1]=1-f/e,f<e&&h<t){var d=(f+1)*(t+1)+h;u[c++]=l,u[c++]=d,u[c++]=d+1,u[c++]=l,u[c++]=d+1,u[c++]=l+1}}this.vertices=new F(a,3),this.indices=new F(u,1),this.normals=new F(s,3),this.uvs=new F(o,2)},_raycast:function(t,e){var n=t.origin.z,r=t.direction.z;if(e===zi&&(r>0||n<0))return null;if(e===qi&&(r<0||n>0))return null;var i=t.intersectsPlane(Zi,0);if(i){var a=i.x,s=i.y,o=.5*this.width,u=.5*this.height;if(a>=-o&&a<=o&&s>=-u&&s<=u)return[i]}return null}}),Qi=Ki,Ji=a.a.create({Extends:tt,isSphereGeometry:!0,className:"SphereGeometry",radius:1,heightSegments:16,widthSegments:32,constructor:function(t){Ji.superclass.constructor.call(this,t),this.build()},build:function(){for(var t=this.radius,e=this.heightSegments,n=this.widthSegments,r=(n+1)*(e+1),i=n*e,a=new Float32Array(3*r),s=new Float32Array(4*r),o=new Float32Array(2*r),u=new Uint16Array(6*i),c=0,f=0,h=0,l=0,d=0,m=2*Math.PI,_=Math.PI,p=0;p<=e;p++)for(var g=p/e,E=_*g,v=Math.cos(E)*t,T=Math.sin(E)*t,A=0;A<=n;A++){var M=A/n,I=m*M,R=Math.cos(I),O=Math.sin(I),L=R*T,S=O*T,y=O,N=-R;if(s[h++]=y,s[h++]=0,s[h++]=N,s[h++]=1,a[f++]=L,a[f++]=v,a[f++]=S,o[l++]=M,o[l++]=g,p>0&&A>0){var x=d,C=x-1,b=C-n-1,P=x-n-1;u[c++]=b,u[c++]=P,u[c++]=x,u[c++]=b,u[c++]=x,u[c++]=C}d++}this.vertices=new F(a,3),this.indices=new F(u,1),this.uvs=new F(o,2),this.tangents=new F(s,4),this.normals=new F(new Float32Array(a),3)},_raycast:function(t,e){return Ji.superclass._raycast.call(this,t,e)}}),$i=Ji,ta=a.a.create({className:"UniformBuffer",isUniformBuffer:!0,isDirty:!1,data:{get:function(){return this._data},set:function(t){this._data=t,this.isDirty=!0}},_data:null,_buffer:null,constructor:function(t){this.data=t},getBuffer:function(t){return this._buffer||(this._buffer=new qt(t,t.UNIFORM_BUFFER,null,t.DYNAMIC_DRAW)),this.isDirty&&(this._buffer.bufferData(this.data),this.isDirty=!1),this._buffer},destroy:function(){this._buffer&&(this._buffer.destroy(),this._buffer=null),this.isDirty=!0}}),ea=[Nt,Xt,qt,ne,Te,Ge],na=function(){var t="";return ea.forEach((function(e){t+="".concat(e.prototype.className,":").concat(Object.keys(e.cache._cache).length," ")})),v.a.log(t),t},ra=a.a.create({Mixes:o,isLoadCache:!0,className:"LoadCache",Statics:{PENDING:1,LOADED:2,FAILED:3},enabled:!0,constructor:function(){this._files={}},update:function(t,e,n){if(this.enabled){var r={key:t,state:e,data:n};this._files[t]=r,this.fire("update",r),this.fire("update:".concat(r.key),r)}},get:function(t){return this.enabled?this._files[t]:null},getLoaded:function(t){var e=this.get(t);return e&&e.state===ra.LOADED?e.data:null},remove:function(t){delete this._files[t]},clear:function(){this._files={}},wait:function(t){var e=this;return t?t.state===ra.LOADED?Promise.resolve(t.data):t.state===ra.FAILED?Promise.reject():new Promise((function(n,r){e.on("update:".concat(t.key),(function(t){var e=t.detail;e.state===ra.LOADED?n(e.data):e.state===ra.FAILED&&r(e.data)}),!0)})):Promise.reject()}}),ia=ra,aa=new ia,sa=a.a.create({Mixes:o,isBasicLoader:!0,className:"BasicLoader",Statics:{_cache:aa,enalbeCache:function(){aa.enabled=!0},disableCache:function(){aa.enabled=!1},deleteCache:function(t){aa.remove(t)},clearCache:function(){aa.clear()},cache:{get:function(){return aa},set:function(){v.a.warn("BasicLoader.cache is readonly!")}},TYPE_IMAGE:"img",TYPE_JSON:"json",TYPE_BUFFER:"buffer",TYPE_TEXT:"text"},load:function(t){var e=t.src,n=t.type;if(!n){var r=Object(i.getExtension)(e);/^(?:png|jpe?g|gif|webp|bmp)$/i.test(r)&&(n="img"),n||(n=t.defaultType)}return n===sa.TYPE_IMAGE?this.loadImg(e,t.crossOrigin):this.loadRes(e,n)},isCrossOrigin:function(t){var e=window.location,n=document.createElement("a");return n.href=t,n.hostname!==e.hostname||n.port!==e.port||n.protocol!==e.protocol},isBase64:function(t){return/^data:(.+?);base64,/.test(t)},Uint8ArrayFrom:function(t,e){if(Uint8Array.from)return Uint8Array.from(t,e);for(var n=t.length,r=new Uint8Array(n),i=0;i<n;i++)r[i]=e(t[i]);return r},loadImg:function(t,e){var n=this,r=aa.get(t);return r?aa.wait(r):new Promise((function(r,i){var a=new Image;aa.update(t,ia.PENDING),a.onload=function(){a.onerror=null,a.onabort=null,a.onload=null,aa.update(t,ia.LOADED,a),r(a)},a.onerror=function(){a.onerror=null,a.onabort=null,a.onload=null;var e=new Error("Image load failed for ".concat(t.slice(0,100)));aa.update(t,ia.FAILED,e),i(e)},a.onabort=a.onerror,(e||n.isCrossOrigin(t))&&(n.isBase64(t)||(a.crossOrigin="anonymous")),a.src=t}))},loadRes:function(t,e){var n=this;if(this.isBase64(t)){var r=RegExp.$1,i=t.slice(13+r.length),a=atob(i);return e===sa.TYPE_JSON?a=JSON.parse(a):e===sa.TYPE_BUFFER&&(a=this.Uint8ArrayFrom(a,(function(t){return t.charCodeAt(0)})).buffer),Promise.resolve(a)}var s=aa.get(t);return s?aa.wait(s):(aa.update(t,ia.PENDING),this.fire("beforeload"),this.request({url:t,type:e}).then((function(e){return n.fire("loaded"),aa.update(t,ia.LOADED,e),e}),(function(e){throw n.fire("failed",e),aa.update(t,ia.FAILED),new Error("Resource load failed for ".concat(t,", ").concat(e))})))},request:function(t){var e=this;return new Promise((function(n,r){var a=new XMLHttpRequest;a.onload=function(){if(a.status<200||a.status>=300)r(new TypeError("Network request failed for ".concat(a.status)));else{var e="response"in a?a.response:a.responseText;if(t.type===sa.TYPE_JSON)try{e=JSON.parse(e)}catch(t){return void r(new TypeError("JSON.parse error"+t))}n(e)}},a.onprogress=function(n){e.fire("progress",{url:t.url,loaded:n.loaded,total:n.total})},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request timed out"))},a.open(t.method||"GET",t.url,!0),"include"===t.credentials&&(a.withCredentials=!0),t.type===sa.TYPE_BUFFER&&(a.responseType="arraybuffer"),Object(i.each)(t.headers,(function(t,e){a.setRequestHeader(e,t)})),a.send(t.body||null)}))}}),oa=sa,ua=a.a.create({isLoader:!0,className:"Loader",maxConnections:2,Statics:{_loaderClassMap:{},_loaders:{},addLoader:function(t,e){ua._loaderClassMap[t]=e},getLoader:function(t){if(!ua._loaders[t]){var e=ua._loaderClassMap[t]?ua._loaderClassMap[t]:oa;ua._loaders[t]=new e}return ua._loaders[t]}},preHandlerUrl:null,load:function(t){var e=this;if(t instanceof Array)return Promise.all(t.map((function(t){return e.load(t)})));var n=t.type||Object(i.getExtension)(t.src),r=ua.getLoader(n),a=t;return this.preHandlerUrl&&((a=Object.assign({},t)).src=this.preHandlerUrl(t.src)),r.load(a)}}),ca=ua,fa=a.a.create({Extends:oa,isCubeTextureLoader:!0,className:"CubeTextureLoader",constructor:function(){fa.superclass.constructor.call(this)},load:function(t){var e,n=this;return e=t.images&&Array.isArray(t.images)?t.images:[t.right,t.left,t.top,t.bottom,t.front,t.back],Promise.all(e.map((function(e){return n.loadImg(e,t.crossOrigin)}))).then((function(e){var n=Object.assign({},t);return delete n.images,delete n.type,delete n.right,delete n.left,delete n.top,delete n.bottom,delete n.front,delete n.back,n.image=e,new Ye(n)})).catch((function(t){throw v.a.error("load CubeTexture failed",t.message,t.stack),t}))}});ca.addLoader("CubeTexture",fa);var ha=fa,la=a.a.create({Extends:xn,isPBRMaterial:!0,className:"PBRMaterial",lightType:"PBR",gammaCorrection:!0,usePhysicsLight:!0,baseColor:null,baseColorMap:null,metallic:1,metallicMap:null,roughness:1,roughnessMap:null,metallicRoughnessMap:null,occlusionMap:null,occlusionStrength:1,isOcclusionInMetallicRoughnessMap:!1,diffuseEnvMap:null,diffuseEnvSphereHarmonics3:null,diffuseEnvIntensity:1,brdfLUT:null,specularEnvIntensity:1,specularEnvMap:null,isSpecularEnvMapIncludeMipmaps:!1,emission:null,emissionFactor:null,isSpecularGlossiness:!1,specular:null,glossiness:1,specularGlossinessMap:null,clearcoatFactor:0,clearcoatMap:null,clearcoatRoughnessFactor:0,clearcoatRoughnessMap:null,clearcoatNormalMap:null,usedUniformVectors:11,constructor:function(t){this.baseColor=new I.a(1,1,1),this.specular=new I.a(1,1,1),this.emissionFactor=new I.a(0,0,0),la.superclass.constructor.call(this,t),Object.assign(this.uniforms,{u_baseColor:"BASECOLOR",u_metallic:"METALLIC",u_roughness:"ROUGHNESS",u_specular:"SPECULAR",u_emissionFactor:"EMISSIONFACTOR",u_glossiness:"GLOSSINESS",u_brdfLUT:"BRDFLUT",u_diffuseEnvMap:"DIFFUSEENVMAP",u_diffuseEnvIntensity:"DIFFUSEENVINTENSITY",u_occlusionStrength:"OCCLUSIONSTRENGTH",u_specularEnvMap:"SPECULARENVMAP",u_specularEnvIntensity:"SPECULARENVINTENSITY",u_specularEnvMapMipCount:"SPECULARENVMAPMIPCOUNT",u_diffuseEnvSphereHarmonics3:"DIFFUSEENVSPHEREHARMONICS3",u_clearcoatFactor:"CLEARCOATFACTOR",u_clearcoatRoughnessFactor:"CLEARCOATROUGHNESSFACTOR"}),this.addTextureUniforms({u_baseColorMap:"BASECOLORMAP",u_metallicMap:"METALLICMAP",u_roughnessMap:"ROUGHNESSMAP",u_metallicRoughnessMap:"METALLICROUGHNESSMAP",u_occlusionMap:"OCCLUSIONMAP",u_specularGlossinessMap:"SPECULARGLOSSINESSMAP",u_lightMap:"LIGHTMAP",u_clearcoatMap:"CLEARCOATMAP",u_clearcoatRoughnessMap:"CLEARCOATROUGHNESSMAP",u_clearcoatNormalMap:"CLEARCOATNORMALMAP"})},getRenderOption:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};la.superclass.getRenderOption.call(this,t);var e=this._textureOption.reset(t);return e.add(this.baseColorMap,"BASE_COLOR_MAP"),e.add(this.metallicMap,"METALLIC_MAP"),e.add(this.roughnessMap,"ROUGHNESS_MAP"),e.add(this.metallicRoughnessMap,"METALLIC_ROUGHNESS_MAP"),e.add(this.diffuseEnvMap,"DIFFUSE_ENV_MAP"),e.add(this.occlusionMap,"OCCLUSION_MAP"),e.add(this.lightMap,"LIGHT_MAP"),this.brdfLUT&&(e.add(this.specularEnvMap,"SPECULAR_ENV_MAP"),gt.SHADER_TEXTURE_LOD&&this.specularEnvMap&&(t.USE_SHADER_TEXTURE_LOD=1)),this.isSpecularGlossiness&&(t.PBR_SPECULAR_GLOSSINESS=1,e.add(this.specularGlossinessMap,"SPECULAR_GLOSSINESS_MAP")),this.isOcclusionInMetallicRoughnessMap&&(t.IS_OCCLUSION_MAP_IN_METALLIC_ROUGHNESS_MAP=1),1!==this.occlusionStrength&&(t.OCCLUSION_STRENGTH=1),this.diffuseEnvSphereHarmonics3&&(t.HAS_NORMAL=1,t.DIFFUSE_ENV_SPHERE_HARMONICS3=1),(this.specularEnvMap||this.diffuseEnvSphereHarmonics3||this.specularEnvMap)&&(t.NEED_WORLD_NORMAL=1),this.specularEnvMap&&this.isSpecularEnvMapIncludeMipmaps&&(t.IS_SPECULAR_ENV_MAP_INCLUDE_MIPMAPS=1),this.clearcoatFactor>0&&(t.HAS_CLEARCOAT=1,t.HAS_NORMAL=1,this.clearcoatMap&&e.add(this.clearcoatMap,"CLEARCOAT_MAP"),this.clearcoatNormalMap&&e.add(this.clearcoatNormalMap,"CLEARCOAT_NORMAL_MAP"),this.clearcoatRoughnessMap&&e.add(this.clearcoatRoughnessMap,"CLEARCOAT_ROUGHNESS_MAP")),e.update(),t}}),da=la,ma=new Image;ma.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";var _a=a.a.create({Extends:Te,Mixes:o,isLazyTexture:!0,className:"LazyTexture",_src:"",crossOrigin:!1,autoLoad:!0,resType:"",src:{get:function(){return this._src},set:function(t){this._src!==t&&(this._src=t,this.autoLoad&&this.load())}},constructor:function(t){t&&("crossOrigin"in t&&(this.crossOrigin=t.crossOrigin),"autoLoad"in t&&(this.autoLoad=t.autoLoad)),_a.superclass.constructor.call(this,t),this.image=this.placeHolder||ma},load:function(t){var e=this;return _a.loader=_a.loader||new ca,_a.loader.load({src:this.src,crossOrigin:this.crossOrigin,type:this.resType,defaultType:"img"}).then((function(t){t.isTexture?(Object.assign(e,t),e.needUpdate=!0,e.needDestroy=!0,e.fire("load")):(e.image=t,e.needUpdate=!0,e.fire("load"))}),(function(n){if(e.fire("error"),t)throw new Error("LazyTexture Failed ".concat(n));v.a.warn("LazyTexture Failed ".concat(n))}))},_releaseImage:function(){this._src&&"string"!=typeof this._src&&(this._src=""),_a.superclass._releaseImage.call(this)}}),pa=_a,ga=n(12);function Ea(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,s,o=[],u=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(o.push(r.value),o.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return va(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return va(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function va(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Ta=new P.a,Aa=new P.a,Ma=new P.a,Ia=new P.a,Ra=new P.a,Oa=new P.a,La=new ga.a,Sa=[];function ya(t,e){return t-e}var Na=a.a.create({Statics:{interpolation:{LINEAR:function(t,e,n){if(void 0===e)return t;if(t.slerp)return t.slerp(e,n);if(t.lerp)return t.lerp(e,n);if(Object(i.isArrayLike)(t)){Sa.length=0;for(var r=t.length-1;r>=0;r--)Sa[r]=t[r]+n*(e[r]-t[r]);return Sa}return t+n*(e-t)},STEP:function(t,e,n){return t},CUBICSPLINE:function(t,e,n,r){var a=t.length/3;if(void 0===e)return 1===a?t[1]:t.slice(a,-a);var s=t[1],o=t[2],u=e[1],c=e[0];return a>1&&(s=t.slice(a,-a),o=t.slice(-a),u=e.slice(a,-a),c=e.slice(0,a)),s.hermite?s.hermite(s,o.scale(r),u,c.scale(r),n):s.isQuaternion?(s.fromArray(this._cubicSpline(s.elements,o.elements,u.elements,c.elements,r,n),0),s.normalize()):(Object(i.isArrayLike)(s)||(s=[s],o=[o],u=[u],c=[c]),s=this._cubicSpline(s,o,u,c,r,n)),s},_cubicSpline:function(t,e,n,r,i,a){var s=a*a,o=s*a,u=2*o-3*s+1,c=o-2*s+a,f=-2*o+3*s,h=o-s;Sa.length=0;for(var l=t.length-1;l>=0;l--)Sa[l]=t[l]*u+c*e[l]*i+n[l]*f+h*r[l]*i;return Sa}},StateType:{TRANSLATE:"Translation",POSITION:"Translation",TRANSLATION:"Translation",SCALE:"Scale",ROTATE:"Rotation",ROTATION:"Rotation",QUATERNION:"Quaternion",WEIGHTS:"Weights"},getType:function(t){return t=String(t).toUpperCase(),Na.StateType[t]||Na._extraStateHandlers.type[t]},_extraStateHandlers:{type:{},handler:{}},registerStateHandler:function(t,e){Na._extraStateHandlers.type[String(t).toUpperCase()]=t,Na._extraStateHandlers.handler[t]=e}},isAnimationStates:!0,className:"AnimationStates",nodeName:"",type:"",interpolationType:"LINEAR",constructor:function(t){this.id=E.a.generateUUID(this.className),this.keyTime=[],this.states=[],Object.assign(this,t)},findIndexByTime:function(t){var e=Object(i.getIndexFromSortedArray)(this.keyTime,t,ya);return e[0]<0&&(e[0]=0),e[1]>=this.keyTime.length&&(e[1]=this.keyTime.length-1),e},getStateByIndex:function(t){var e=this.states.length/this.keyTime.length;return 1===e?this.states[t]:this.states.slice(t*e,t*e+e)},getState:function(t){var e=Ea(this.findIndexByTime(t),2),n=e[0],r=e[1],a=this.keyTime[n],s=this.keyTime[r],o=this.getStateByIndex(n);if("STEP"===this.interpolationType)return o;if(n===r){var u=this.interpolation(o);return this.type===Na.StateType.ROTATION&&(u=Ta.fromEuler(La.fromArray(u))),u.elements||u}var c=this.getStateByIndex(r),f=s-a,h=(t-a)/f;this.type===Na.StateType.ROTATION?Object(i.isArrayLike)(o[0])?(o[0]=Ta.fromEuler(La.fromArray(o[0])),o[1]=Aa.fromEuler(La.fromArray(o[1])),o[2]=Ma.fromEuler(La.fromArray(o[2])),c[0]=Ia.fromEuler(La.fromArray(c[0])),c[1]=Ra.fromEuler(La.fromArray(c[1])),c[2]=Oa.fromEuler(La.fromArray(c[2]))):(o=Ta.fromEuler(La.fromArray(o)),c=Aa.fromEuler(La.fromArray(c))):this.type===Na.StateType.QUATERNION&&(Object(i.isArrayLike)(o[0])?(o[0]=Ta.fromArray(o[0]),o[1]=Aa.fromArray(o[1]),o[2]=Ma.fromArray(o[2]),c[0]=Ia.fromArray(c[0]),c[1]=Ra.fromArray(c[1]),c[2]=Oa.fromArray(c[2])):(o=Ta.fromArray(o),c=Aa.fromArray(c)));var l=this.interpolation(o,c,h,f);return l.elements||l},interpolation:function(t,e,n,r){return Na.interpolation[this.interpolationType](t,e,n,r)},updateNodeTranslation:function(t,e){t.x=e[0],t.y=e[1],t.z=e[2]},updateNodeScale:function(t,e){t.scaleX=e[0],t.scaleY=e[1],t.scaleZ=e[2]},updateNodeQuaternion:function(t,e){t.quaternion.fromArray(e)},updateNodeWeights:function(t,e){var n=this._originalWeightIndices=this._originalWeightIndices||[],r=e.length;e=e.slice();for(var i=0;i<r;i++)n[i]=i;for(var a=0;a<r;a++)for(var s=a+1;s<r;s++)if(e[s]>e[a]){var o=e[a];e[a]=e[s],e[s]=o,o=n[a],n[a]=n[s],n[s]=o}t.traverse((function(t){t.isMesh&&t.geometry&&t.geometry.isMorphGeometry&&t.geometry.update(e,n)}))},updateNodeState:function(t,e){if(e){var n=this.type;n===Na.StateType.ROTATION&&(n=Na.StateType.QUATERNION);var r=this.getState(t);if(r){var i="updateNode"+n;this[i]?this[i](e,r):Na._extraStateHandlers.handler[n]?Na._extraStateHandlers.handler[n].call(this,e,r):v.a.warnOnce(i,"updateNodeState failed unknow type(%s)",n)}}},clone:function(){return new this.constructor({keyTime:this.keyTime,states:this.states,type:this.type,nodeName:this.nodeName})}}),xa=Na,Ca=a.a.create({Statics:{_anims:[],tick:function(t){this._anims.forEach((function(e){return e.tick(t)}))}},Mixes:o,isAnimation:!0,className:"Animation",paused:!1,currentLoopCount:0,loop:1/0,currentTime:0,timeScale:1,startTime:0,endTime:0,clipStartTime:0,clipEndTime:0,nodeNameMap:null,_rootNode:null,rootNode:{get:function(){return this._rootNode},set:function(t){this._rootNode=t,this._initNodeNameMap()}},_animStatesList:null,animStatesList:{get:function(){return this._animStatesList},set:function(t){this._animStatesList=t,this._initClipTime()}},validAnimationIds:null,constructor:function(t){this.id=E.a.generateUUID(this.className),this.clips={},this._animStatesList=[],Object.assign(this,t)},addClip:function(t,e,n,r){this.clips[t]={start:e,end:n,animStatesList:r}},removeClip:function(t){this.clips[t]=null},getAnimStatesListTimeInfo:function(t){var e=0,n=1/0;return t.forEach((function(t){e=Math.max(t.keyTime[t.keyTime.length-1],e),n=Math.min(t.keyTime[0],n)})),{startTime:n,endTime:e}},_initClipTime:function(){var t=this.getAnimStatesListTimeInfo(this.animStatesList);this.clipStartTime=0,this.clipEndTime=t.endTime},_initNodeNameMap:function(){if(this._rootNode){var t=this.nodeNameMap={};this._rootNode.traverse((function(e){t[e.animationId]=e;var n=e.name;void 0===n||t[n]||(t[n]=e)}),!1)}},tick:function(t){this.paused||(this.currentTime+=t/1e3*this.timeScale,this.currentTime>=this.endTime?(this.currentLoopCount++,this.currentTime=this.endTime,this.updateAnimStates(),this.fire("loopEnd"),!this.loop||this.currentLoopCount>=this.loop?(this.stop(),this.fire("end")):this.currentTime=this.startTime):this.updateAnimStates())},updateAnimStates:function(){var t=this;return this.animStatesList.forEach((function(e){e.updateNodeState(t.currentTime,t.nodeNameMap[e.nodeName])})),this},play:function(t,e){var n;if("string"==typeof t){var r=this.clips[t];r?(n=r.start,e=r.end,r.animStatesList&&(this.animStatesList=r.animStatesList,this._initClipTime())):v.a.warn("no this animation clip name:"+t)}else n=t;void 0===n&&(n=this.clipStartTime),void 0===e&&(e=this.clipEndTime),this.endTime=Math.min(e,this.clipEndTime),this.startTime=Math.min(n,this.endTime),this.currentTime=this.startTime,this.currentLoopCount=0,this.stop(),this.paused=!1,Ca._anims.push(this)},stop:function(){this.paused=!0;var t=Ca._anims,e=t.indexOf(this);-1!==e&&t.splice(e,1)},pause:function(){this.paused=!0},resume:function(){this.paused=!1},clone:function(t){var e=new this.constructor({rootNode:t,animStatesList:this.animStatesList,timeScale:this.timeScale,loop:this.loop,paused:this.paused,currentTime:this.currentTime,startTime:this.startTime,endTime:this.endTime,clips:this.clips});return this.paused||e.play(),e}}),ba=Ca;function Pa(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,s,o=[],u=!0,c=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(o.push(r.value),o.length!==e);u=!0);}catch(t){c=!0,i=t}finally{try{if(!u&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return wa(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wa(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wa(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Ha=U.a.BLEND,Da=U.a.DEPTH_TEST,Fa=U.a.CULL_FACE,Ua=U.a.FRONT,Ga=U.a.BACK,Ba=U.a.FRONT_AND_BACK,Va={5120:[1,Int8Array],5121:[1,Uint8Array],5122:[2,Int16Array],5123:[2,Uint16Array],5125:[4,Uint32Array],5126:[4,Float32Array]},Xa={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ja={POSITION:{name:"vertices",decodeMatName:"positionDecodeMat"},TEXCOORD_0:{name:"uvs",decodeMatName:"uvDecodeMat"},TEXCOORD_1:{name:"uvs1",decodeMatName:"uv1DecodeMat"},NORMAL:{name:"normals",decodeMatName:"normalDecodeMat"},JOINT:{name:"skinIndices"},JOINTS_0:{name:"skinIndices"},WEIGHT:{name:"skinWeights"},WEIGHTS_0:{name:"skinWeights"},TANGENT:{name:"tangents"},COLOR_0:{name:"colors"}},ka=a.a.create({isGLTFParser:!0,className:"GLTFParser",Statics:{MAGIC:"glTF",extensionHandlers:r,registerExtensionHandler:function(t,e){this.extensionHandlers[t]=e},unregisterExtensionHandler:function(t){this.extensionHandlers[t]&&delete this.extensionHandlers[t]}},isMultiAnim:!0,isProgressive:!1,isUnQuantizeInShader:!0,isLoadAllTextures:!1,preHandlerImageURI:null,preHandlerBufferURI:null,customMaterialCreator:null,ignoreTextureError:!1,forceCreateNewBuffer:!1,src:"",constructor:function(t,e){Object.assign(this,e),this.content=t},parse:function(t){var e=this;if(this.content instanceof ArrayBuffer){var n=this.content;if(i.convertUint8ArrayToString(new Uint8Array(n,0,4))===ka.MAGIC)this.parseBinary(n);else{var r=i.convertUint8ArrayToString(new Uint8Array(n),!0);this.json=JSON.parse(r)}}else this.json=JSON.parse(this.content);return this.glTFVersion=parseFloat(this.json.asset.version),this.glTFVersion>=2&&(this.isGLTF2=!0),this.parseExtensionUsed(),this.loadResources(t).then((function(){return e.parseExtensions(e.json.extensions,null,{isGlobal:!0,methodName:"parseOnLoad"}),Promise.resolve()})).then((function(){return e.parseGeometries()})).then((function(){return e.parseScene()}))},parseExtensionUsed:function(){var t=this;this.extensionsUsed={},i.each(this.json.extensionsUsed,(function(e){t.extensionsUsed[e]=!0})),this.extensionsUsed.WEB3D_quantized_attributes||(this.isUnQuantizeInShader=!1)},getExtensionHandler:function(t){return this.extensionHandlers&&this.extensionHandlers[t]||ka.extensionHandlers[t]},parseExtension:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=t[e],a=this.getExtensionHandler(e);return a&&a.parse?a.parse(i,this,n,r):n},parseExtensions:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return i.each(t,(function(t,i){if(!r.ignoreExtensions||!r.ignoreExtensions[i]){var a=n.getExtensionHandler(i),s=r.methodName||"parse";a&&a[s]&&(e=a[s](t,n,e,r))}})),e},isUseExtension:function(t,e){return!!(t&&t.extensions&&t.extensions[e])},parseBinary:function(t){this.isBinary=!0;var e,n=new DataView(t),r=n.getUint32(4,!0),a=n.getUint32(8,!0),s=12;if(r<2){var o=n.getUint32(s,!0);e=new Uint8Array(t,20,o),e=i.convertUint8ArrayToString(e,!0),this.json=JSON.parse(e),this.binaryBody=t.slice(20+o)}else{if(2!==r)throw new Error("Dont support glTF version ".concat(r));for(;s<a;){var u=n.getUint32(s,!0),c=n.getUint32(s+4,!0);1313821514===c?(e=new Uint8Array(t,s+8,u),e=i.convertUint8ArrayToString(e,!0),this.json=JSON.parse(e)):5130562===c&&(this.binaryBody=t.slice(s+8,s+8+u)),s+=8+u}}},loadResources:function(t){var e=this,n=[];for(var r in this.extensionsUsed){var i=this.getExtensionHandler(r);i&&i.init&&n.push(i.init(t,this))}return this.isBinary?n.push(this.loadBuffers(t).then((function(){return e.loadTextures(t)}))):(n.push(this.loadBuffers(t)),n.push(this.loadTextures(t))),Promise.all(n)},getBufferUri:function(t){var e=i.getRelativePath(this.src,this.json.buffers[t].uri);return this.preHandlerBufferURI&&(e=this.preHandlerBufferURI(e,this.json.buffers[t])),e},loadBuffers:function(t){var e=this;return this.buffers={},this.isBinary?(this.isGLTF2?this.buffers[0]=this.binaryBody:this.buffers.binary_glTF=this.binaryBody,this.parseBufferViews(),Promise.resolve()):Promise.all(Object.keys(this.json.buffers||[]).map((function(n){var r=e.getBufferUri(n);return t.loadRes(r,oa.TYPE_BUFFER).then((function(t){e.buffers[n]=t}))}))).then((function(){e.parseBufferViews()}))},getImageUri:function(t){var e=this.json.images[t],n=e.uri;if(this.isUseExtension(e,"KHR_binary_glTF")){var r=e.extensions.KHR_binary_glTF,a=this.bufferViews[r.bufferView],s=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);n=i.getBlobUrl(r.mimeType,s)}else if(n)n=i.getRelativePath(this.src,n);else if("bufferView"in e){var o=this.bufferViews[e.bufferView],u=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);n="image/ktx"===e.mimeType?u:i.getBlobUrl(e.mimeType,u)}return this.preHandlerImageURI&&(n=this.preHandlerImageURI(n,e)),n},getImageType:function(t){var e=this.json.images[t],n="";return e&&/^image\/(.*)$/.test(e.mimeType)&&(n=RegExp.$1),["ktx"].indexOf(n)<0&&(n=""),n},getUsedTextureNameMap:function(){var t=this,e={};return i.each(this.json.materials,(function(n){var r=n,a=!1;if(t.isUseExtension(n,"KHR_materials_common")&&(a=!0,r=n.extensions.KHR_materials_common.values),t.isGLTF2&&!a){if(r.normalTexture&&(e[r.normalTexture.index]=!0),r.occlusionTexture&&(e[r.occlusionTexture.index]=!0),r.emissiveTexture&&(e[r.emissiveTexture.index]=!0),r.transparencyTexture&&(e[r.transparencyTexture.index]=!0),r.extensions&&i.each(r.extensions,(function(n,r){var i=t.getExtensionHandler(r);i&&i.getUsedTextureNameMap&&i.getUsedTextureNameMap(n,e,t)})),!t.isUseExtension(r,"KHR_materials_pbrSpecularGlossiness")&&r.pbrMetallicRoughness){var s=r.pbrMetallicRoughness;s.baseColorTexture&&(e[s.baseColorTexture.index]=!0),s.metallicRoughnessTexture&&(e[s.metallicRoughnessTexture.index]=!0)}}else a||(r=n.values),["diffuse","specular","emission","ambient","transparency","normalMap"].forEach((function(n){var a=r[n];a instanceof Object&&"index"in a&&(a=a.index),i.isStrOrNumber(a)&&t.json.textures[a]&&(e[a]=!0)}))})),e},loadTextures:function(){var t=this;if(this.textures={},!this.json.textures)return Promise.resolve();var e=Object.keys(this.json.textures);if(!this.isLoadAllTextures){var n=this.getUsedTextureNameMap();e=e.filter((function(t){return n[t]}))}return Promise.all(e.map((function(e){var n=t.json.textures[e],r=t.getImageUri(n.source),a=new pa(n);if(a.uv=void 0,a.autoLoad=t.isProgressive,a.crossOrigin=!0,a.resType=t.getImageType(n.source),a.src=r,a.name=n.name||e,a.colorSpaceConversion=!1,i.isBlobUrl(r)){var s=function t(){i.revokeBlobUrl(r),a.off("load",t),a.off("error",t)};a.on("load",s,!0),a.on("error",s,!0)}return t.json.samplers&&Object.assign(a,t.json.samplers[n.sampler]),n.extensions&&(a=t.parseExtensions(n.extensions,a)),t.textures[e]=a,t.isProgressive?Promise.resolve():a.load(!t.ignoreTextureError)})))},parseBufferViews:function(){var t=this;this.bufferViews={},i.each(this.json.bufferViews,(function(e,n){var r=t.buffers[e.buffer],i=e.byteOffset||0,a=e.byteLength;t.bufferViews[n]={id:E.a.generateUUID("bufferView"),byteOffset:i,byteLength:a,buffer:r,byteStride:e.byteStride}})),this.isBinary||delete this.buffers},getTexture:function(t){var e=this.textures[t.index];if(!e)return null;var n=t.texCoord||0,r=t.index+"_"+n;return this.textures[r]?e=this.textures[r]:"number"==typeof e.uv&&e.uv!==n&&(e=e.clone(),this.textures[r]=e),e.uv=n,e.__gltfTextureInfo=t,e},getColorOrTexture:function(t){return Array.isArray(t)?new I.a(t[0],t[1],t[2]):(t instanceof Object&&"index"in t&&(t=t.index),this.textures[t])},parseMaterialCommonProps:function(t,e){switch(e.alphaMode){case"BLEND":t.transparent=!0;break;case"MASK":t.alphaCutoff="alphaCutoff"in e?e.alphaCutoff:.5;break;case"OPAQUE":default:t.ignoreTranparent=!0}e.doubleSided?t.side=Ba:t.side=Ua,e.transparencyTexture&&(t.transparency=this.getTexture(e.transparencyTexture))},createPBRMaterial:function(t){var e=new da,n=t,r=!this.isUseExtension(n,"KHR_materials_unlit");if(r){var i=n.normalTexture;i&&(e.normalMap=this.getTexture(i),void 0!==i.scale?e.normalMapScale=i.scale:e.normalMapScale=1);var a=n.occlusionTexture;a&&(e.occlusionMap=this.getTexture(a),void 0!==a.strength?e.occlusionStrength=a.strength:e.occlusionStrength=1);var s=n.emissiveTexture;s&&(e.emission=this.getTexture(s));var o=n.emissiveFactor;o&&(e.emissionFactor.fromArray(o),e.emissionFactor.a=1)}else e.lightType="NONE";if(this.isUseExtension(n,"KHR_materials_pbrSpecularGlossiness"))this.parseExtension(n.extensions,"KHR_materials_pbrSpecularGlossiness",e);else if(n.pbrMetallicRoughness){var u=n.pbrMetallicRoughness;u.baseColorFactor&&e.baseColor.fromArray(u.baseColorFactor),u.baseColorTexture&&(e.baseColorMap=this.getTexture(u.baseColorTexture)),r&&(u.metallicRoughnessTexture&&(e.metallicRoughnessMap=this.getTexture(u.metallicRoughnessTexture),e.occlusionMap===e.metallicRoughnessMap&&(e.occlusionMap=null,e.isOcclusionInMetallicRoughnessMap=!0)),"roughnessFactor"in u&&(e.roughness=u.roughnessFactor),"metallicFactor"in u&&(e.metallic=u.metallicFactor))}return e.baseColorMap&&this._parseTextureTransform(e,e.baseColorMap),e},_parseTextureTransform:function(t,e){var n=e.__gltfTextureInfo;if(this.isUseExtension(n,"KHR_texture_transform")){var r=n.extensions.KHR_texture_transform;if(void 0!==r.texCoord&&(e.uv=r.texCoord),r.offset||r.rotation||r.scale){var i=r.offset||[0,0],a=r.rotation||0,s=r.scale||[1,1],o=(new m.a).fromRotationTranslationScale(a,i[0],i[1],s[0],s[1]);0===e.uv?t.uvMatrix=o:1===e.uv&&(t.uvMatrix1=o)}}},createKMCMaterial:function(t,e){var n,r=new bn;return e?(n=e.values,r.lightType=e.technique):n=t.values,r.diffuse=this.getColorOrTexture(n.diffuse)||r.diffuse,r.specular=this.getColorOrTexture(n.specular)||r.specular,r.emission=this.getColorOrTexture(n.emission)||r.emission,r.ambient=this.getColorOrTexture(n.ambient)||r.ambient,n.normalMap&&(r.normalMap=this.getColorOrTexture(n.normalMap)),"number"==typeof n.transparency?(r.transparency=n.transparency,r.transparency<1&&(r.transparent=!0)):"string"==typeof n.transparency&&(r.transparency=this.getColorOrTexture(n.transparency),r.transparent=!0),!0===n.transparent&&(r.transparent=!0),"shininess"in n&&(r.shininess=n.shininess),this._parseTextureTransform(r,r.diffuse),r},parseMaterials:function(){var t=this;this.materials={},i.each(this.json.materials,(function(e,n){if(t.customMaterialCreator){var r=t.customMaterialCreator(n,e,t.json,t);if(r)return void(t.materials[n]=r)}var i,a=null;t.isUseExtension(e,"KHR_materials_common")&&(a=e.extensions.KHR_materials_common),t.isGLTF2&&!a?(i=t.isUseExtension(e,"KHR_techniques_webgl")?t.parseExtension(e.extensions,"KHR_techniques_webgl"):t.createPBRMaterial(e),t.parseMaterialCommonProps(i,e)):i=t.createKMCMaterial(e,a),(i=t.parseExtensions(e.extensions,i,{ignoreExtensions:{KHR_techniques_webgl:1,KHR_materials_common:1,KHR_materials_pbrSpecularGlossiness:1},isMaterial:!0})).name=e.name||n,t.materials[n]=i,t.parseTechnique(e,i)}))},sparseAccessorHandler:function(t,e){if(!e)return t;var n=e.count,r=t.data.constructor,a=new r(t.realLength);a.set(t.data),t.data=a;for(var s=this.bufferViews[e.values.bufferView],o=new r(s.buffer,s.byteOffset+(e.values.byteOffset||0),n*t.size),u=new(r=Va[e.indices.componentType][1])((s=this.bufferViews[e.indices.bufferView]).buffer,s.byteOffset+(e.indices.byteOffset||0),n),c=0;c<n;c++)i.copyArrayData(a,o,u[c]*t.size,c*t.size,t.size);return t},getAccessorData:function(t,e){var n=this.json.accessors[t];if(n.data)return n.data;var r,i=Pa(Va[n.componentType],2)[1],a=Xa[n.type],s=this.bufferViews[n.bufferView],o=n.count*a;if(s)if(s.byteStride&&s.byteStride>a*i.BYTES_PER_ELEMENT)s.array=new i(s.buffer,s.byteOffset,s.byteLength/i.BYTES_PER_ELEMENT),r=new F(s.array,a,{offset:n.byteOffset||0,stride:s.byteStride,bufferViewId:s.id});else{var u,c=(n.byteOffset||0)+s.byteOffset;if(c%i.BYTES_PER_ELEMENT||this.forceCreateNewBuffer)u=new i(s.buffer.slice(c,c+o*i.BYTES_PER_ELEMENT));else u=new i(s.buffer,c,o);r=new F(u,a)}return n.sparse&&(r||(r=new F(new i(o),a)),r=this.sparseAccessorHandler(r,n.sparse)),r=this.parseExtensions(n.extensions,r,{isDecode:e,isAccessor:!0}),n.data=r,n.normalized&&(r.normalized=!0),r},getArrayByAccessor:function(t,e){var n=this.json.accessors[t];if(n.array)return n.array;var r=this.getAccessorData(t,e);if(!r.stride&&!r.offset&&1===r.size)return r.data;var i=[];return r.traverse((function(t){i.push(t.toArray?t.toArray():t)})),n.array=i,i},parseTechnique:function(t,e){var n=null;this.json.techniques&&(n=this.json.techniques[t.technique]),n&&n.states&&(n.states.enable.forEach((function(t){switch(t){case Ha:e.blend=!0;break;case Da:e.depthTest=!0;break;case Fa:e.cullFace=!0}})),i.each(n.states.functions,(function(t,n){switch(n){case"blendEquationSeparate":e.blendEquation=t[0],e.blendEquationAlpha=t[1];break;case"blendFuncSeparate":e.blendSrc=t[0],e.blendDst=t[1],e.blendSrcAlpha=t[2],e.blendDstAlpha=t[3];break;case"depthMask":e.depthMask=t[0];break;case"cullFace":e.cullFaceType=t[0];break;default:e[n]=t}})),e.cullFace?e.side=e.cullFaceType===Ua?Ga:Ua:e.side=Ba)},createMorphGeometry:function(t,e){var n=this,r=new Or,a=r.targets={};return i.each(t.targets,(function(t){i.each(t,(function(t,e){var r=ja[e].name;a[r]||(a[r]=[]);var i=n.getAccessorData(t,!0);a[r].push(i)}))})),r.weights=e||new Float32Array(t.targets.length),r},handlerGeometry:function(t,e){var n=void 0===e.mode?4:e.mode;if(e.extensions){var r=this.parseExtensions(e.extensions,null,{primitive:e,isPrimitive:!0});if(r)return r.mode=n,r}t||(t=new tt({mode:n})),"indices"in e&&(t.indices=this.getAccessorData(e.indices));var i=e.attributes;for(var a in i){var s=ja[a];if(s){var o=!(this.isUnQuantizeInShader&&s.decodeMatName);t[s.name]=this.getAccessorData(i[a],o),o||(t[s.decodeMatName]=t[s.name].decodeMat,delete t[s.name].decodeMat)}else v.a.warn("Unknow attribute named ".concat(a,"!"))}return t},handlerSkinedMesh:function(t,e){e&&(t.skeleton=e,this.useInstanced&&(t.useInstanced=!0))},fixProgressiveGeometry:function(t,e){t._geometry=e,this.isProgressive&&t._meshes&&t._meshes.forEach((function(t){t.visible=!0,t.geometry=e}))},parseGeometries:function(){var t=this,e=i.serialRun(this.json.meshes,(function(e){return i.serialRun(e.primitives,(function(n){var r;n.targets&&n.targets.length&&(r=t.createMorphGeometry(n,e.weights)),n._geometry=r;var i=t.handlerGeometry(r,n);return i&&i.then?i.then((function(e){t.fixProgressiveGeometry(n,e)}),(function(t){v.a.error("geometry parse error",t)})):(t.fixProgressiveGeometry(n,i),i)}))}));return this.isProgressive?null:e},parseMesh:function(t,e,n){var r=this,i=this.json.meshes[t];i.primitives.forEach((function(a){var s,o=r.skins&&r.skins[n.skin];if(a.meshNode)s=a.meshNode.clone();else{var u=r.materials[a.material]||new bn;s=new(o?Zr:Wr)({geometry:a._geometry,material:u,name:"mesh-"+(i.name||t)}),a.meshNode=s}r.handlerSkinedMesh(s,o),r.isProgressive&&!s.geometry&&(s.visible=!1,a._meshes=a._meshes||[],a._meshes.push(s)),e.addChild(s),r.meshes.push(s)}))},parseCameras:function(){var t=this;this.cameras={};var e=window.innerWidth/window.innerHeight;i.each(this.json.cameras,(function(n,r){var i;"perspective"===n.type&&n.perspective?((i=new nt).fov=E.a.radToDeg(n.perspective.yfov),i.near=n.perspective.znear,i.far=n.perspective.zfar,n.aspectRatio?i.aspect=n.aspectRatio:i.aspect=e):"orthographic"===n.type&&n.orthographic&&((i=new Vn).near=n.orthographic.znear,i.far=n.orthographic.zfar,i.right=n.orthographic.xmag,i.left=-1*i.right,i.top=n.orthographic.ymag,i.bottom=-1*i.top),(i=t.parseExtensions(n.extensions,i,{isCamera:!0}))&&(i.name=n.name||r,t.cameras[r]=i)}))},handlerNodeTransform:function(t,e){e.matrix?t.matrix.fromArray(e.matrix):(e.rotation&&t.quaternion.fromArray(e.rotation),e.scale&&t.setScale(e.scale[0],e.scale[1],e.scale[2]),e.translation&&(t.x=e.translation[0],t.y=e.translation[1],t.z=e.translation[2]))},parseNode:function(t,e){var n,r=this,i=this.json.nodes[t];i||v.a.warn("GLTFParser.parseNode: nodes[".concat(t,"] has nothing.")),n=new M({name:i.name,animationId:t}),n=this.parseExtensions(i.extensions,n,{isNode:!0}),"camera"in i&&this.cameras[i.camera]&&n.addChild(this.cameras[i.camera]),this.handlerNodeTransform(n,i),i.jointName?(n.jointName=i.jointName,this.jointMap[n.jointName]=n):this.isGLTF2&&(n.jointName=t,this.jointMap[t]=n),i.meshes?i.meshes.forEach((function(t){return r.parseMesh(t,n,i)})):"mesh"in i&&this.parseMesh(i.mesh,n,i),i.children&&i.children.forEach((function(t){return r.parseNode(t,n)})),e.addChild(n)},parseAnimations:function(){var t=this;if(!this.json.animations)return null;var e=this.isMultiAnim,n={},r=[],a={};return i.each(this.json.animations,(function(i){i.channels.forEach((function(e){var n=e.target.path,s=e.target.id;t.isGLTF2&&(s=e.target.node);var o=i.samplers[e.sampler],u=t.isGLTF2?o.input:i.parameters[o.input],c=t.isGLTF2?o.output:i.parameters[n],f=t.getArrayByAccessor(u,!0),h=t.getArrayByAccessor(c,!0);"rotation"===n&&(n="quaternion");var l=new xa({interpolationType:o.interpolation||"LINEAR",nodeName:s,keyTime:f,states:h,type:xa.getType(n)});r.push(l),a[s]=!0})),e&&r.length&&(n[i.name]={animStatesList:r},r=[])})),e&&Object.keys(n).length>0&&(r=Object.values(n)[0].animStatesList),r.length?new ba({rootNode:this.node,animStatesList:r,validAnimationIds:a,clips:n}):null},parseScene:function(){var t=this;this.parseMaterials(),this.jointMap={},this.meshes=[],this.lights=[],this.node=new M({needCallChildUpdate:!1}),this.parseCameras();var e=this.json.scenes[this.getDefaultSceneName()];if(!e)return v.a.warn("GLTFParser:no scene!"),{node:this.node,meshes:[],cameras:[],lights:[],textures:[],materials:[]};var n=e.nodes;this.parseSkins(),n.forEach((function(e){return t.parseNode(e,t.node)})),this.resetSkinInfo(this.node);var r={node:this.node,scene:this.node,meshes:this.meshes,json:this.json,cameras:Object.values(this.cameras),lights:this.lights,textures:Object.values(this.textures),materials:Object.values(this.materials)},i=this.parseAnimations();return i&&(this.node.setAnim(i),i.play(),r.anim=i),this.parseExtensions(e.extensions,null,{isScene:!0}),this.parseExtensions(this.json.extensions,r,{isGlobal:!0,methodName:"parseOnEnd"}),r},getDefaultSceneName:function(){return void 0!==this.defaultScene?this.defaultScene:this.json.scenes?Object.keys(this.json.scenes)[0]:null},parseSkins:function(){var t=this;this.skins=[];var e=this.json.skins;e&&e.length&&(this.skins=e.map((function(e){for(var n=new Qr,r=e.joints.length,i=t.getArrayByAccessor(e.inverseBindMatrices,!0),a=0;a<r;a++){var s=(new u.a).fromArray(i[a]);n.inverseBindMatrices.push(s)}return n.jointNames=e.joints,n})))},resetSkinInfo:function(t){var e={};t.traverse((function(t){var n="".concat(t.id,"_").concat(t.name);e[t.jointName]=n,t.jointName=n})),this.skins.forEach((function(t){t.jointNames=t.jointNames.map((function(t){return e[t]}))})),t.resetSkinedMeshRootNode()}}),Wa=ka,Ya=a.a.create({Extends:oa,isGLTFLoader:!0,className:"GLTFLoader",constructor:function(){Ya.superclass.constructor.call(this)},load:function(t){var e=this;return this.loadRes(t.src,"buffer").then((function(n){return new Wa(n,t).parse(e)})).catch((function(t){throw v.a.error("load gltf failed",t.message,t.stack),t}))}});ca.addLoader("gltf",Ya),ca.addLoader("glb",Ya);var za=Ya,qa=n(98),Za=n.n(qa),Ka=U.a.RGBA,Qa=U.a.NEAREST,Ja=U.a.CLAMP_TO_EDGE,$a=U.a.FLOAT,ts=a.a.create({Extends:oa,isHDRLoader:!0,className:"HDRLoader",constructor:function(){ts.superclass.constructor.call(this)},load:function(t){return this.loadRes(t.src,"buffer").then((function(e){try{var n=Za()(e),r=n.shape,i=n.data,a=new Te({width:r[0],height:r[1],flipY:t.flipY||!1,image:i,type:$a,magFilter:Qa,minFilter:Qa,wrapS:Ja,wrapT:Ja,internalFormat:Ka,format:Ka});return Object.assign(a,t),a}catch(t){v.a.error("HDRLoader:parse error => ",t)}return null}))}});ca.addLoader("hdr",ts);var es=ts,ns=a.a.create({Statics:{HEADER_LEN:64,COMPRESSED_2D:0,COMPRESSED_3D:1,TEX_2D:2,TEX_3D:3},isKhronosTextureContainer:!0,className:"KhronosTextureContainer",constructor:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.arrayBuffer=t,this.baseOffset=n;var r=new Uint8Array(this.arrayBuffer,this.baseOffset,12);if(171===r[0]&&75===r[1]&&84===r[2]&&88===r[3]&&32===r[4]&&49===r[5]&&49===r[6]&&187===r[7]&&13===r[8]&&10===r[9]&&26===r[10]&&10===r[11]){var i=Uint32Array.BYTES_PER_ELEMENT,a=new DataView(this.arrayBuffer,this.baseOffset+12,13*i),s=a.getUint32(0,!0),o=67305985===s;this.glType=a.getUint32(1*i,o),this.glTypeSize=a.getUint32(2*i,o),this.glFormat=a.getUint32(3*i,o),this.glInternalFormat=a.getUint32(4*i,o),this.glBaseInternalFormat=a.getUint32(5*i,o),this.pixelWidth=a.getUint32(6*i,o),this.pixelHeight=a.getUint32(7*i,o),this.pixelDepth=a.getUint32(8*i,o),this.numberOfArrayElements=a.getUint32(9*i,o),this.numberOfFaces=a.getUint32(10*i,o),this.numberOfMipmapLevels=a.getUint32(11*i,o),this.bytesOfKeyValueData=a.getUint32(12*i,o),this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0!==this.pixelHeight&&0===this.pixelDepth?0===this.numberOfArrayElements?this.numberOfFaces===e?0===this.glType?this.loadType=ns.COMPRESSED_2D:this.loadType=ns.TEX_2D:v.a.warn("number of faces expected"+e+", but found "+this.numberOfFaces):v.a.warn("texture arrays not currently supported"):v.a.warn("only 2D textures currently supported")}else v.a.error("texture missing KTX identifier")},mipmaps:function(t){for(var e=[],n=ns.HEADER_LEN+this.bytesOfKeyValueData,r=this.pixelWidth,i=this.pixelHeight,a=t?this.numberOfMipmapLevels:1,s=0;s<a;s++){for(var o=new Int32Array(this.arrayBuffer,this.baseOffset+n,1)[0],u=0;u<this.numberOfFaces;u++){var c=new Uint8Array(this.arrayBuffer,this.baseOffset+n+4,o);e.push({data:c,width:r,height:i}),n+=o+4,n+=3-(o+3)%4}r=Math.max(1,.5*r),i=Math.max(1,.5*i)}return e}}),rs=a.a.create({Extends:oa,Statics:{astc:"WEBGL_compressed_texture_astc",etc:"WEBGL_compressed_texture_etc",etc1:"WEBGL_compressed_texture_etc1",pvrtc:"WEBGL_compressed_texture_pvrtc",s3tc:"WEBGL_compressed_texture_s3tc"},isKTXLoader:!0,className:"KTXLoader",constructor:function(){pt.use(rs.astc),pt.use(rs.atc),pt.use(rs.etc),pt.use(rs.etc1),pt.use(rs.pvrtc),pt.use(rs.s3tc),pt.use(rs.s3tc_srgb),rs.superclass.constructor.call(this)},load:function(t){var e=this;return t.src instanceof ArrayBuffer?Promise.resolve(this.createTexture(t,t.src)):ArrayBuffer.isView(t.src)?Promise.resolve(this.createTexture(t,t.src.buffer,t.src.byteOffset)):this.loadRes(t.src,"buffer").then((function(n){return e.createTexture(t,n)}))},createTexture:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=new ns(e,1,n),i={compressed:0===r.glType,type:r.glType,width:r.pixelWidth,height:r.pixelHeight,internalFormat:r.glInternalFormat,format:r.glFormat,isCubemap:6===r.numberOfFaces};return r.numberOfMipmapLevels>=Math.floor(Math.log2(Math.max(i.width,i.height))+1)?(i.mipmaps=r.mipmaps(!0),i.image=i.mipmaps[0].data):(i.mipmaps=null,i.image=r.mipmaps(!1)[0].data),new Te(i)}});ca.addLoader("ktx",rs);var is=rs,as=a.a.create({Mixes:o,isLoadQueue:!0,className:"LoadQueue",Statics:{addLoader:function(t,e){v.a.warn("LoadQueue.addLoader is duplicated, please use Loader.addLoader"),ca.addLoader(t,e)}},constructor:function(t){this._source=[],this.add(t)},maxConnections:2,_source:null,_loaded:0,_connections:0,_currentIndex:-1,add:function(t){return t&&(t=Array.isArray(t)?t:[t],this._source=this._source.concat(t)),this},get:function(t){if(!t)return null;for(var e=this._source,n=0;n<e.length;n++){var r=e[n];if(r.id===t||r.src===t)return r}return null},getContent:function(t){var e=this.get(t);return e&&e.content},start:function(){return this._loader||(this._loader=new ca),this._loadNext(),this},_loadNext:function(){var t=this,e=this._source,n=e.length;if(this._loaded>=n)this.fire("complete");else if(this._currentIndex<n-1&&this._connections<this.maxConnections){var r=++this._currentIndex,i=e[r];this._connections++,this._loader.load(i).then((function(e){t._onItemLoad(r,e)}),(function(e){t._onItemError(r,e)}))}},_onItemLoad:function(t,e){var n=this._source[t];n.loaded=!0,n.content=e,this._connections--,this._loaded++,this.fire("load",n),this._loadNext()},_onItemError:function(t,e){var n=this._source[t];n.error=e,this._connections--,this._loaded++,this.fire("error",n),this._loadNext()},getSize:function(t){for(var e=0,n=this._source,r=0;r<n.length;r++){var i=n[r];e+=(t?i.loaded&&i.size:i.size)||0}return e},getLoaded:function(){return this._loaded},getTotal:function(){return this._source.length},getAllContent:function(){return this._source.map((function(t){return t.content}))}}),ss=a.a.create({Extends:oa,isShaderMaterialLoader:!0,className:"ShaderMaterialLoader",constructor:function(){ss.superclass.constructor.call(this)},load:function(t){var e=[this.loadRes(t.fs),this.loadRes(t.vs)],n=Object.assign({},t);return Promise.all(e).then((function(t){return n.fs=t[0],n.vs=t[1],new Ar(n)}),(function(t){v.a.warn("ShaderMaterial Loader Failed for ".concat(t))}))}}),os=ss,us=a.a.create({Extends:oa,isTextureLoader:!0,className:"TextureLoader",constructor:function(){us.superclass.constructor.call(this)},load:function(t){return this.loadImg(t.src,t.crossOrigin).then((function(e){var n=Object.assign({},t);return n.image=e,delete n.type,new Te(n)})).catch((function(t){throw v.a.error("load Texture failed",t.message,t.stack),t}))}});ca.addLoader("Texture",us);var cs=us,fs=U.a.LINES,hs={x:[0,0,0,1,0,0],y:[0,0,0,0,1,0],z:[0,0,0,0,0,1]},ls=a.a.create({Extends:M,isAxisHelper:!0,className:"AxisHelper",size:1,constructor:function(t){ls.superclass.constructor.call(this,t),this.init()},addAxis:function(t){var e=new Wr({name:"AxisHelper_"+t,geometry:new tt({mode:fs,vertices:new F(new Float32Array(hs[t]),3),indices:new F(new Uint16Array([0,1]),1)}),material:new bn({diffuse:new I.a(hs[t][3],hs[t][4],hs[t][5]),lightType:"NONE"})});this.addChild(e)},init:function(){this.setScale(this.size),this.addAxis("x"),this.addAxis("y"),this.addAxis("z")}}),ds=ls,ms=U.a.LINES,_s=a.a.create({Extends:Wr,isAxisNetHelper:!0,className:"AxisNetHelper",size:5,constructor:function(t){_s.superclass.constructor.call(this,t),this.color=this.color||new I.a(.5,.5,.5);for(var e=new tt({mode:ms}),n=this.size,r=2*n+1,i=0;i<r;i++){var a=i/n-1;e.addLine([a,0,-1],[a,0,1]),e.addLine([-1,0,a],[1,0,a])}this.geometry=e,this.material=new bn({diffuse:this.color,lightType:"NONE"})}}),ps=_s,gs=U.a.LINES,Es=new f.a,vs=a.a.create({Extends:Wr,isCameraHelper:!0,className:"CameraHelper",camera:null,color:null,constructor:function(t){vs.superclass.constructor.call(this,t),this.color||(this.color=new I.a(.3,.9,.6)),this.material=new bn({lightType:"NONE",diffuse:this.color||new I.a(.5,.5,.5,1)}),this.geometry=new tt({mode:gs,isStatic:!1,vertices:new F(new Float32Array(27),3),indices:new F(new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7,8,4,8,5,8,6,8,7]),1)})},onUpdate:function(){this.camera&&(this.camera.updateViewProjectionMatrix(),this._buildGeometry())},_buildGeometry:function(){var t=this.camera,e=this.geometry;e.vertices.set(0,t.unprojectVector(Es.set(-1,-1,1))),e.vertices.set(1,t.unprojectVector(Es.set(-1,1,1))),e.vertices.set(2,t.unprojectVector(Es.set(1,1,1))),e.vertices.set(3,t.unprojectVector(Es.set(1,-1,1))),e.vertices.set(4,t.unprojectVector(Es.set(-1,-1,-1))),e.vertices.set(5,t.unprojectVector(Es.set(-1,1,-1))),e.vertices.set(6,t.unprojectVector(Es.set(1,1,-1))),e.vertices.set(7,t.unprojectVector(Es.set(1,-1,-1))),e.vertices.set(8,t.worldMatrix.getTranslation(Es))}}),Ts=vs,As=a.a.create({Extends:L,isAmbientLight:!0,className:"AmbientLight",autoUpdateWorldMatrix:!1,constructor:function(t){As.superclass.constructor.call(this,t)}}),Ms=As,Is=a.a.create({Statics:{ltcTexture1:null,ltcTexture2:null,ltcTextureReady:!1,ltcTextureUrl:"//g.alicdn.com/tmapp/static/4.0.63/ltcTexture.js",loadLtcTexture:function(){var t=this;this.ltcTextureReady||void 0===this._loader&&(this._loader=new ca,this._loader.load({type:"json",src:this.ltcTextureUrl}).then((function(e){t._loader=null,t.ltcTexture1=new $e({data:e.ltcTexture1}),t.ltcTexture2=new $e({data:e.ltcTexture2}),t.ltcTextureReady=!0})))}},Extends:L,isAreaLight:!0,className:"AreaLight",width:10,height:10,_enabled:!0,enabled:{get:function(){return this._enabled&&Is.ltcTextureReady},set:function(t){this._enabled=t}},constructor:function(t){Is.superclass.constructor.call(this,t),Is.loadLtcTexture()},ltcTexture1:{get:function(){return Is.ltcTexture1},set:function(t){Is.ltcTexture1=t}},ltcTexture2:{get:function(){return Is.ltcTexture2},set:function(t){Is.ltcTexture2=t}}}),Rs=Is,Os=new bn({lightType:"NONE"}),Ls=new I.a(1,1,1),Ss=new I.a,ys=a.a.create({isMeshPicker:!0,className:"MeshPicker",debug:!1,renderer:null,colorMeshMap:null,constructor:function(t){Object.assign(this,t),this.colorMeshMap={},this.init()},createFramebuffer:function(){if(!this.framebuffer){var t=this.renderer;this.framebuffer=new Ge(t,{useVao:t.useVao,width:t.width,height:t.height})}},renderDebug:function(){this.framebuffer.render(0,.7,.3,.3)},createMeshNumberId:function(t){"numberId"in t||(t.numberId=10*Number(t.id.replace(/^.*_(\d+)$/,"$1")),t.color=Object(i.padLeft)(t.numberId.toString(16),6),this.colorMeshMap[t.color]=t)},renderColoredMeshes:function(){var t=this,e=this.renderer,n=this.framebuffer;n.bind(),e.clear(Ls);var r=e.forceMaterial;e.forceMaterial=Os,e.renderList.traverse((function(n){t.createMeshNumberId(n),Os.diffuse.fromHEX(n.color),Os.isDirty=!0,e.renderMesh(n)})),e.forceMaterial=r,n.unbind()},getSelection:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=this.renderer.pixelRatio,a=[],s=this.framebuffer.readPixels(t*i,e*i,n*i,r*i),o=0;o<s.length;o+=4){var u=Ss.fromUintArray(s,o).toHEX();this.colorMeshMap[u]&&a.push(this.colorMeshMap[u])}return a},init:function(){var t=this;this.createFramebuffer(),this.renderer.on("afterRender",(function(){t.renderColoredMeshes(),t.debug&&t.renderDebug()}))}}),Ns=a.a.create({constructor:function(t){this.targetFPS=t||60,this._tickers=[]},_paused:!1,_targetFPS:0,_interval:0,_intervalId:null,_tickers:null,_lastTime:0,_tickCount:0,_tickTime:0,_measuredFPS:0,targetFPS:{set:function(t){this._targetFPS=t,this._interval=1e3/this._targetFPS,this._intervalId&&(this._cancelRunLoop(),this._startRunLoop())},get:function(){return this._targetFPS}},start:function(){this._paused=!1,this._startRunLoop()},stop:function(){this._paused=!0,this._cancelRunLoop(),this._lastTime=0},pause:function(){this._paused=!0},resume:function(){this._paused=!1},_startRunLoop:function(){if(!this._intervalId){this._lastTime=+new Date;var t,e=this,n=this._interval,r=window.requestAnimationFrame;r&&n<17?(this._useRAF=!0,t=function(){e._intervalId=r(t),e._tick()}):(this._useRAF=!1,t=function(){e._intervalId=setTimeout(t,n),e._tick()}),t()}},_cancelRunLoop:function(){this._useRAF?(0,window.cancelAnimationFrame)(this._intervalId):clearTimeout(this._intervalId);this._intervalId=null},_tick:function(){if(!this._paused){var t=+new Date,e=t-this._lastTime,n=this._tickers;++this._tickCount>=this._targetFPS?(this._measuredFPS=1e3/(this._tickTime/this._tickCount)+.5>>0,this._tickCount=0,this._tickTime=0):this._tickTime+=t-this._lastTime,this._lastTime=t;for(var r=n.slice(0),i=0,a=r.length;i<a;i++)r[i].tick(e)}},getMeasuredFPS:function(){return Math.min(this._measuredFPS,this._targetFPS)},addTick:function(t){if(!t||"function"!=typeof t.tick)throw new Error("Ticker: The tick object must implement the tick method.");this._tickers.push(t)},removeTick:function(t){var e=this._tickers,n=e.indexOf(t);n>=0&&e.splice(n,1)},nextTick:function(t){var e=this,n={tick:function(r){e.removeTick(n),t(r)}};return e.addTick(n),n},timeout:function(t,e){var n=this,r=(new Date).getTime()+e,i={tick:function(){(new Date).getTime()-r>=0&&(n.removeTick(i),t())}};return n.addTick(i),i},interval:function(t,e){var n=(new Date).getTime()+e,r={tick:function(){var r=(new Date).getTime(),i=r-n;i>=0&&(i<e&&(r-=i),n=r+e,t())}};return this.addTick(r),r}}),xs={get:function(){if(void 0===this._isWebGLSupport)try{var t=document.createElement("canvas"),e=t.getContext("webgl");e.clearColor(0,1,0,1),e.clear(e.COLOR_BUFFER_BIT);var n=new Uint8Array(4);e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),0===n[0]&&255===n[1]&&0===n[2]&&255===n[3]?this._isWebGLSupport=!0:this._isWebGLSupport=!1,t=null,e=null,n=null}catch(t){this._isWebGLSupport=!1}return this._isWebGLSupport}},Cs=n(26)},,,function(t,e,n){n(99),t.exports=n(107)}]),"undefined"!=typeof window&&window.Hilo3d&&"object"==typeof exports&&"object"==typeof module&&(module.exports=window.Hilo3d);
|