@xtctwins/tctwins-convert
Version:
JavaScript utilities to create .XTC files
2 lines • 172 kB
JavaScript
/*! For license information please see tctwins-convert.cjs.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.convert2xtc=t():e.convert2xtc=t()}(global,(()=>(()=>{"use strict";var e={231:e=>{e.exports=require("fs")},423:e=>{e.exports=require("path")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{r.r(n),r.d(n,{ClampToEdgeWrapping:()=>p,GIFMediaType:()=>O,JPEGMediaType:()=>L,LinearFilter:()=>M,LinearMipMapLinearFilter:()=>A,LinearMipMapNearestFilter:()=>I,LinearMipmapLinearFilter:()=>S,LinearMipmapNearestFilter:()=>T,MirroredRepeatWrapping:()=>m,NearestFilter:()=>y,NearestMipMapLinearFilter:()=>w,NearestMipMapNearestFilter:()=>g,NearestMipmapLinearFilter:()=>b,NearestMipmapNearestFilter:()=>x,PNGMediaType:()=>P,RepeatWrapping:()=>d,XTCModel:()=>He,XTC_INFO:()=>f,buildBoxGeometry:()=>Hr,buildBoxLinesGeometry:()=>$r,buildCylinderGeometry:()=>en,buildGridGeometry:()=>tn,buildPlaneGeometry:()=>rn,buildSphereGeometry:()=>nn,buildTorusGeometry:()=>on,buildVectorTextGeometry:()=>sn,convert2xtc:()=>hn,parseCityJSONIntoXTCModel:()=>Dt,parseGLTFIntoXTCModel:()=>Qt,parseGLTFJSONIntoXTCModel:()=>ur,parseIFCIntoXTCModel:()=>Mr,parseLASIntoXTCModel:()=>Cr,parseMetaModelIntoXTCModel:()=>Gr,parsePCDIntoXTCModel:()=>_r,parsePLYIntoXTCModel:()=>Br,parseSTLIntoXTCModel:()=>Rr,writeXTCModelToArrayBuffer:()=>rt});const e=require("@loaders.gl/polyfills");var t,o,i,a,s,c,u,l,h,f={xtcVersion:10},d=1e3,p=1001,m=1002,y=1003,g=1004,x=1004,b=1005,w=1005,M=1006,T=1007,I=1007,S=1008,A=1008,O=1e4,L=10001,P=10002,E=Float64Array,j=new E(16),C=new E(16),G=new E(4),_={MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,DEGTORAD:.0174532925,RADTODEG:57.295779513,vec2:function(e){return new E(e||2)},vec3:function(e){return new E(e||3)},vec4:function(e){return new E(e||4)},mat3:function(e){return new E(e||9)},mat3ToMat4:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new E(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},mat4:function(e){return new E(e||16)},mat4ToMat3:function(e,t){},createUUID:function(){for(var e=[],t=0;t<256;t++)e[t]=(t<16?"0":"")+t.toString(16);return function(){var t=4294967295*Math.random()|0,r=4294967295*Math.random()|0,n=4294967295*Math.random()|0,o=4294967295*Math.random()|0;return"".concat(e[255&t]+e[t>>8&255]+e[t>>16&255]+e[t>>24&255],"-").concat(e[255&r]).concat(e[r>>8&255],"-").concat(e[r>>16&15|64]).concat(e[r>>24&255],"-").concat(e[63&n|128]).concat(e[n>>8&255],"-").concat(e[n>>16&255]).concat(e[n>>24&255]).concat(e[255&o]).concat(e[o>>8&255]).concat(e[o>>16&255]).concat(e[o>>24&255])}}(),clamp:function(e,t,r){return Math.max(t,Math.min(r,e))},fmod:function(e,t){if(e<t)return console.error("math.fmod : Attempting to find modulus within negative range - would be infinite loop - ignoring"),e;for(;t<=e;)e-=t;return e},negateVec4:function(e,t){return t||(t=e),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},addVec4:function(e,t,r){return r||(r=e),r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},addVec4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]+t,r[1]=e[1]+t,r[2]=e[2]+t,r[3]=e[3]+t,r},addVec3:function(e,t,r){return r||(r=e),r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r},addVec3Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]+t,r[1]=e[1]+t,r[2]=e[2]+t,r},subVec4:function(e,t,r){return r||(r=e),r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},subVec3:function(e,t,r){return r||(r=e),r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r},subVec2:function(e,t,r){return r||(r=e),r[0]=e[0]-t[0],r[1]=e[1]-t[1],r},subVec4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]-t,r[1]=e[1]-t,r[2]=e[2]-t,r[3]=e[3]-t,r},subScalarVec4:function(e,t,r){return r||(r=e),r[0]=t-e[0],r[1]=t-e[1],r[2]=t-e[2],r[3]=t-e[3],r},mulVec4:function(e,t,r){return r||(r=e),r[0]=e[0]*t[0],r[1]=e[1]*t[1],r[2]=e[2]*t[2],r[3]=e[3]*t[3],r},mulVec4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},mulVec3Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r},mulVec2Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]*t,r[1]=e[1]*t,r},divVec3:function(e,t,r){return r||(r=e),r[0]=e[0]/t[0],r[1]=e[1]/t[1],r[2]=e[2]/t[2],r},divVec4:function(e,t,r){return r||(r=e),r[0]=e[0]/t[0],r[1]=e[1]/t[1],r[2]=e[2]/t[2],r[3]=e[3]/t[3],r},divScalarVec3:function(e,t,r){return r||(r=t),r[0]=e/t[0],r[1]=e/t[1],r[2]=e/t[2],r},divVec3Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]/t,r[1]=e[1]/t,r[2]=e[2]/t,r},divVec4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]/t,r[1]=e[1]/t,r[2]=e[2]/t,r[3]=e[3]/t,r},divScalarVec4:function(e,t,r){return r||(r=t),r[0]=e/t[0],r[1]=e/t[1],r[2]=e/t[2],r[3]=e/t[3],r},dotVec4:function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]},cross3Vec4:function(e,t){var r=e[0],n=e[1],o=e[2],i=t[0],a=t[1],s=t[2];return[n*s-o*a,o*i-r*s,r*a-n*i,0]},cross3Vec3:function(e,t,r){r||(r=e);var n=e[0],o=e[1],i=e[2],a=t[0],s=t[1],c=t[2];return r[0]=o*c-i*s,r[1]=i*a-n*c,r[2]=n*s-o*a,r},sqLenVec4:function(e){return _.dotVec4(e,e)},lenVec4:function(e){return Math.sqrt(_.sqLenVec4(e))},dotVec3:function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},dotVec2:function(e,t){return e[0]*t[0]+e[1]*t[1]},sqLenVec3:function(e){return _.dotVec3(e,e)},sqLenVec2:function(e){return _.dotVec2(e,e)},lenVec3:function(e){return Math.sqrt(_.sqLenVec3(e))},distVec3:(u=new E(3),function(e,t){return _.lenVec3(_.subVec3(e,t,u))}),lenVec2:function(e){return Math.sqrt(_.sqLenVec2(e))},distVec2:function(){var e=new E(2);return function(t,r){return _.lenVec2(_.subVec2(t,r,e))}}(),rcpVec3:function(e,t){return _.divScalarVec3(1,e,t)},normalizeVec4:function(e,t){var r=1/_.lenVec4(e);return _.mulVec4Scalar(e,r,t)},normalizeVec3:function(e,t){var r=1/_.lenVec3(e);return _.mulVec3Scalar(e,r,t)},normalizeVec2:function(e,t){var r=1/_.lenVec2(e);return _.mulVec2Scalar(e,r,t)},angleVec3:function(e,t){var r=_.dotVec3(e,t)/Math.sqrt(_.sqLenVec3(e)*_.sqLenVec3(t));return r=r<-1?-1:r>1?1:r,Math.acos(r)},vec3FromMat4Scale:(c=new E(3),function(e,t){return c[0]=e[0],c[1]=e[1],c[2]=e[2],t[0]=_.lenVec3(c),c[0]=e[4],c[1]=e[5],c[2]=e[6],t[1]=_.lenVec3(c),c[0]=e[8],c[1]=e[9],c[2]=e[10],t[2]=_.lenVec3(c),t}),vecToArray:function(){function e(e){return Math.round(1e5*e)/1e5}return function(t){for(var r=0,n=(t=Array.prototype.slice.call(t)).length;r<n;r++)t[r]=e(t[r]);return t}}(),xyzArrayToObject:function(e){return{x:e[0],y:e[1],z:e[2]}},xyzObjectToArray:function(e,t){return(t=t||new E(3))[0]=e.x,t[1]=e.y,t[2]=e.z,t},dupMat4:function(e){return e.slice(0,16)},mat4To3:function(e){return[e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]]},m4s:function(e){return[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e]},setMat4ToZeroes:function(){return _.m4s(0)},setMat4ToOnes:function(){return _.m4s(1)},diagonalMat4v:function(e){return new E([e[0],0,0,0,0,e[1],0,0,0,0,e[2],0,0,0,0,e[3]])},diagonalMat4c:function(e,t,r,n){return _.diagonalMat4v([e,t,r,n])},diagonalMat4s:function(e){return _.diagonalMat4c(e,e,e,e)},identityMat4:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new E(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},identityMat3:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new E(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},isIdentityMat4:function(e){return 1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15]},negateMat4:function(e,t){return t||(t=e),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},addMat4:function(e,t,r){return r||(r=e),r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},addMat4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]+t,r[1]=e[1]+t,r[2]=e[2]+t,r[3]=e[3]+t,r[4]=e[4]+t,r[5]=e[5]+t,r[6]=e[6]+t,r[7]=e[7]+t,r[8]=e[8]+t,r[9]=e[9]+t,r[10]=e[10]+t,r[11]=e[11]+t,r[12]=e[12]+t,r[13]=e[13]+t,r[14]=e[14]+t,r[15]=e[15]+t,r},addScalarMat4:function(e,t,r){return _.addMat4Scalar(t,e,r)},subMat4:function(e,t,r){return r||(r=e),r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},subMat4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]-t,r[1]=e[1]-t,r[2]=e[2]-t,r[3]=e[3]-t,r[4]=e[4]-t,r[5]=e[5]-t,r[6]=e[6]-t,r[7]=e[7]-t,r[8]=e[8]-t,r[9]=e[9]-t,r[10]=e[10]-t,r[11]=e[11]-t,r[12]=e[12]-t,r[13]=e[13]-t,r[14]=e[14]-t,r[15]=e[15]-t,r},subScalarMat4:function(e,t,r){return r||(r=t),r[0]=e-t[0],r[1]=e-t[1],r[2]=e-t[2],r[3]=e-t[3],r[4]=e-t[4],r[5]=e-t[5],r[6]=e-t[6],r[7]=e-t[7],r[8]=e-t[8],r[9]=e-t[9],r[10]=e-t[10],r[11]=e-t[11],r[12]=e-t[12],r[13]=e-t[13],r[14]=e-t[14],r[15]=e-t[15],r},mulMat4:function(e,t,r){r||(r=e);var n=e[0],o=e[1],i=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],f=e[9],d=e[10],p=e[11],v=e[12],m=e[13],y=e[14],g=e[15],x=t[0],b=t[1],w=t[2],M=t[3],T=t[4],I=t[5],S=t[6],A=t[7],O=t[8],L=t[9],P=t[10],E=t[11],j=t[12],C=t[13],G=t[14],_=t[15];return r[0]=x*n+b*s+w*h+M*v,r[1]=x*o+b*c+w*f+M*m,r[2]=x*i+b*u+w*d+M*y,r[3]=x*a+b*l+w*p+M*g,r[4]=T*n+I*s+S*h+A*v,r[5]=T*o+I*c+S*f+A*m,r[6]=T*i+I*u+S*d+A*y,r[7]=T*a+I*l+S*p+A*g,r[8]=O*n+L*s+P*h+E*v,r[9]=O*o+L*c+P*f+E*m,r[10]=O*i+L*u+P*d+E*y,r[11]=O*a+L*l+P*p+E*g,r[12]=j*n+C*s+G*h+_*v,r[13]=j*o+C*c+G*f+_*m,r[14]=j*i+C*u+G*d+_*y,r[15]=j*a+C*l+G*p+_*g,r},mulMat3:function(e,t,r){r||(r=new E(9));var n=e[0],o=e[3],i=e[6],a=e[1],s=e[4],c=e[7],u=e[2],l=e[5],h=e[8],f=t[0],d=t[3],p=t[6],v=t[1],m=t[4],y=t[7],g=t[2],x=t[5],b=t[8];return r[0]=n*f+o*v+i*g,r[3]=n*d+o*m+i*x,r[6]=n*p+o*y+i*b,r[1]=a*f+s*v+c*g,r[4]=a*d+s*m+c*x,r[7]=a*p+s*y+c*b,r[2]=u*f+l*v+h*g,r[5]=u*d+l*m+h*x,r[8]=u*p+l*y+h*b,r},mulMat4Scalar:function(e,t,r){return r||(r=e),r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},mulMat4v4:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec4(),n=t[0],o=t[1],i=t[2],a=t[3];return r[0]=e[0]*n+e[4]*o+e[8]*i+e[12]*a,r[1]=e[1]*n+e[5]*o+e[9]*i+e[13]*a,r[2]=e[2]*n+e[6]*o+e[10]*i+e[14]*a,r[3]=e[3]*n+e[7]*o+e[11]*i+e[15]*a,r},transposeMat4:function(e,t){var r=e[4],n=e[14],o=e[8],i=e[13],a=e[12],s=e[9];if(!t||e===t){var c=e[1],u=e[2],l=e[3],h=e[6],f=e[7],d=e[11];return e[1]=r,e[2]=o,e[3]=a,e[4]=c,e[6]=s,e[7]=i,e[8]=u,e[9]=h,e[11]=n,e[12]=l,e[13]=f,e[14]=d,e}return t[0]=e[0],t[1]=r,t[2]=o,t[3]=a,t[4]=e[1],t[5]=e[5],t[6]=s,t[7]=i,t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=n,t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t},transposeMat3:function(e,t){if(t===e){var r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}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},determinantMat4:function(e){var t=e[0],r=e[1],n=e[2],o=e[3],i=e[4],a=e[5],s=e[6],c=e[7],u=e[8],l=e[9],h=e[10],f=e[11],d=e[12],p=e[13],v=e[14],m=e[15];return d*l*s*o-u*p*s*o-d*a*h*o+i*p*h*o+u*a*v*o-i*l*v*o-d*l*n*c+u*p*n*c+d*r*h*c-t*p*h*c-u*r*v*c+t*l*v*c+d*a*n*f-i*p*n*f-d*r*s*f+t*p*s*f+i*r*v*f-t*a*v*f-u*a*n*m+i*l*n*m+u*r*s*m-t*l*s*m-i*r*h*m+t*a*h*m},inverseMat4:function(e,t){t||(t=e);var r=e[0],n=e[1],o=e[2],i=e[3],a=e[4],s=e[5],c=e[6],u=e[7],l=e[8],h=e[9],f=e[10],d=e[11],p=e[12],v=e[13],m=e[14],y=e[15],g=r*s-n*a,x=r*c-o*a,b=r*u-i*a,w=n*c-o*s,M=n*u-i*s,T=o*u-i*c,I=l*v-h*p,S=l*m-f*p,A=l*y-d*p,O=h*m-f*v,L=h*y-d*v,P=f*y-d*m,E=1/(g*P-x*L+b*O+w*A-M*S+T*I);return t[0]=(s*P-c*L+u*O)*E,t[1]=(-n*P+o*L-i*O)*E,t[2]=(v*T-m*M+y*w)*E,t[3]=(-h*T+f*M-d*w)*E,t[4]=(-a*P+c*A-u*S)*E,t[5]=(r*P-o*A+i*S)*E,t[6]=(-p*T+m*b-y*x)*E,t[7]=(l*T-f*b+d*x)*E,t[8]=(a*L-s*A+u*I)*E,t[9]=(-r*L+n*A-i*I)*E,t[10]=(p*M-v*b+y*g)*E,t[11]=(-l*M+h*b-d*g)*E,t[12]=(-a*O+s*S-c*I)*E,t[13]=(r*O-n*S+o*I)*E,t[14]=(-p*w+v*x-m*g)*E,t[15]=(l*w-h*x+f*g)*E,t},traceMat4:function(e){return e[0]+e[5]+e[10]+e[15]},translationMat4v:function(e,t){var r=t||_.identityMat4();return r[12]=e[0],r[13]=e[1],r[14]=e[2],r},translationMat3v:function(e,t){var r=t||_.identityMat3();return r[6]=e[0],r[7]=e[1],r},translationMat4c:(s=new E(3),function(e,t,r,n){return s[0]=e,s[1]=t,s[2]=r,_.translationMat4v(s,n)}),translationMat4s:function(e,t){return _.translationMat4c(e,e,e,t)},translateMat4v:function(e,t){return _.translateMat4c(e[0],e[1],e[2],t)},OLDtranslateMat4c:function(e,t,r,n){var o=n[12];n[0]+=o*e,n[4]+=o*t,n[8]+=o*r;var i=n[13];n[1]+=i*e,n[5]+=i*t,n[9]+=i*r;var a=n[14];n[2]+=a*e,n[6]+=a*t,n[10]+=a*r;var s=n[15];return n[3]+=s*e,n[7]+=s*t,n[11]+=s*r,n},translateMat4c:function(e,t,r,n){var o=n[3];n[0]+=o*e,n[1]+=o*t,n[2]+=o*r;var i=n[7];n[4]+=i*e,n[5]+=i*t,n[6]+=i*r;var a=n[11];n[8]+=a*e,n[9]+=a*t,n[10]+=a*r;var s=n[15];return n[12]+=s*e,n[13]+=s*t,n[14]+=s*r,n},rotationMat4v:function(e,t,r){var n,o,i,a,s,c,u=_.normalizeVec4([t[0],t[1],t[2],0],[]),l=Math.sin(e),h=Math.cos(e),f=1-h,d=u[0],p=u[1],v=u[2];return n=d*p,o=p*v,i=v*d,a=d*l,s=p*l,c=v*l,(r=r||_.mat4())[0]=f*d*d+h,r[1]=f*n+c,r[2]=f*i-s,r[3]=0,r[4]=f*n-c,r[5]=f*p*p+h,r[6]=f*o+a,r[7]=0,r[8]=f*i+s,r[9]=f*o-a,r[10]=f*v*v+h,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},rotationMat4c:function(e,t,r,n,o){return _.rotationMat4v(e,[t,r,n],o)},scalingMat4v:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.identityMat4();return t[0]=e[0],t[5]=e[1],t[10]=e[2],t},scalingMat3v:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.identityMat3();return t[0]=e[0],t[4]=e[1],t},scalingMat4c:function(){var e=new E(3);return function(t,r,n,o){return e[0]=t,e[1]=r,e[2]=n,_.scalingMat4v(e,o)}}(),scaleMat4c:function(e,t,r,n){return n[0]*=e,n[4]*=t,n[8]*=r,n[1]*=e,n[5]*=t,n[9]*=r,n[2]*=e,n[6]*=t,n[10]*=r,n[3]*=e,n[7]*=t,n[11]*=r,n},scaleMat4v:function(e,t){var r=e[0],n=e[1],o=e[2];return t[0]*=r,t[4]*=n,t[8]*=o,t[1]*=r,t[5]*=n,t[9]*=o,t[2]*=r,t[6]*=n,t[10]*=o,t[3]*=r,t[7]*=n,t[11]*=o,t},scalingMat4s:function(e){return _.scalingMat4c(e,e,e)},rotationTranslationMat4:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.mat4(),n=e[0],o=e[1],i=e[2],a=e[3],s=n+n,c=o+o,u=i+i,l=n*s,h=n*c,f=n*u,d=o*c,p=o*u,v=i*u,m=a*s,y=a*c,g=a*u;return r[0]=1-(d+v),r[1]=h+g,r[2]=f-y,r[3]=0,r[4]=h-g,r[5]=1-(l+v),r[6]=p+m,r[7]=0,r[8]=f+y,r[9]=p-m,r[10]=1-(l+d),r[11]=0,r[12]=t[0],r[13]=t[1],r[14]=t[2],r[15]=1,r},mat4ToEuler:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec4(),n=_.clamp,o=e[0],i=e[4],a=e[8],s=e[1],c=e[5],u=e[9],l=e[2],h=e[6],f=e[10];return"XYZ"===t?(r[1]=Math.asin(n(a,-1,1)),Math.abs(a)<.99999?(r[0]=Math.atan2(-u,f),r[2]=Math.atan2(-i,o)):(r[0]=Math.atan2(h,c),r[2]=0)):"YXZ"===t?(r[0]=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(r[1]=Math.atan2(a,f),r[2]=Math.atan2(s,c)):(r[1]=Math.atan2(-l,o),r[2]=0)):"ZXY"===t?(r[0]=Math.asin(n(h,-1,1)),Math.abs(h)<.99999?(r[1]=Math.atan2(-l,f),r[2]=Math.atan2(-i,c)):(r[1]=0,r[2]=Math.atan2(s,o))):"ZYX"===t?(r[1]=Math.asin(-n(l,-1,1)),Math.abs(l)<.99999?(r[0]=Math.atan2(h,f),r[2]=Math.atan2(s,o)):(r[0]=0,r[2]=Math.atan2(-i,c))):"YZX"===t?(r[2]=Math.asin(n(s,-1,1)),Math.abs(s)<.99999?(r[0]=Math.atan2(-u,c),r[1]=Math.atan2(-l,o)):(r[0]=0,r[1]=Math.atan2(a,f))):"XZY"===t&&(r[2]=Math.asin(-n(i,-1,1)),Math.abs(i)<.99999?(r[0]=Math.atan2(h,c),r[1]=Math.atan2(a,o)):(r[0]=Math.atan2(-u,f),r[1]=0)),r},composeMat4:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:_.mat4();return _.quaternionToRotationMat4(t,n),_.scaleMat4v(r,n),_.translateMat4v(e,n),n},decomposeMat4:function(){var e=new E(3),t=new E(16);return function(r,n,o,i){e[0]=r[0],e[1]=r[1],e[2]=r[2];var a=_.lenVec3(e);e[0]=r[4],e[1]=r[5],e[2]=r[6];var s=_.lenVec3(e);e[8]=r[8],e[9]=r[9],e[10]=r[10];var c=_.lenVec3(e);_.determinantMat4(r)<0&&(a=-a),n[0]=r[12],n[1]=r[13],n[2]=r[14],t.set(r);var u=1/a,l=1/s,h=1/c;return t[0]*=u,t[1]*=u,t[2]*=u,t[4]*=l,t[5]*=l,t[6]*=l,t[8]*=h,t[9]*=h,t[10]*=h,_.mat4ToQuaternion(t,o),i[0]=a,i[1]=s,i[2]=c,this}}(),lookAtMat4v:function(e,t,r,n){n||(n=_.mat4());var o,i,a,s,c,u,l,h,f,d,p=e[0],v=e[1],m=e[2],y=r[0],g=r[1],x=r[2],b=t[0],w=t[1],M=t[2];return p===b&&v===w&&m===M?_.identityMat4():(o=p-b,i=v-w,a=m-M,s=g*(a*=d=1/Math.sqrt(o*o+i*i+a*a))-x*(i*=d),c=x*(o*=d)-y*a,u=y*i-g*o,(d=Math.sqrt(s*s+c*c+u*u))?(s*=d=1/d,c*=d,u*=d):(s=0,c=0,u=0),l=i*u-a*c,h=a*s-o*u,f=o*c-i*s,(d=Math.sqrt(l*l+h*h+f*f))?(l*=d=1/d,h*=d,f*=d):(l=0,h=0,f=0),n[0]=s,n[1]=l,n[2]=o,n[3]=0,n[4]=c,n[5]=h,n[6]=i,n[7]=0,n[8]=u,n[9]=f,n[10]=a,n[11]=0,n[12]=-(s*p+c*v+u*m),n[13]=-(l*p+h*v+f*m),n[14]=-(o*p+i*v+a*m),n[15]=1,n)},lookAtMat4c:function(e,t,r,n,o,i,a,s,c){return _.lookAtMat4v([e,t,r],[n,o,i],[a,s,c],[])},orthoMat4c:function(e,t,r,n,o,i,a){a||(a=_.mat4());var s=t-e,c=n-r,u=i-o;return a[0]=2/s,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2/c,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=-2/u,a[11]=0,a[12]=-(e+t)/s,a[13]=-(n+r)/c,a[14]=-(i+o)/u,a[15]=1,a},frustumMat4v:function(e,t,r){r||(r=_.mat4());var n=[e[0],e[1],e[2],0],o=[t[0],t[1],t[2],0];_.addVec4(o,n,j),_.subVec4(o,n,C);var i=2*n[2],a=C[0],s=C[1],c=C[2];return r[0]=i/a,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=i/s,r[6]=0,r[7]=0,r[8]=j[0]/a,r[9]=j[1]/s,r[10]=-j[2]/c,r[11]=-1,r[12]=0,r[13]=0,r[14]=-i*o[2]/c,r[15]=0,r},frustumMat4:function(e,t,r,n,o,i,a){a||(a=_.mat4());var s=t-e,c=n-r,u=i-o;return a[0]=2*o/s,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2*o/c,a[6]=0,a[7]=0,a[8]=(t+e)/s,a[9]=(n+r)/c,a[10]=-(i+o)/u,a[11]=-1,a[12]=0,a[13]=0,a[14]=-i*o*2/u,a[15]=0,a},perspectiveMat4:function(e,t,r,n,o){var i=[],a=[];return i[2]=r,a[2]=n,a[1]=i[2]*Math.tan(e/2),i[1]=-a[1],a[0]=a[1]*t,i[0]=-a[0],_.frustumMat4v(i,a,o)},transformPoint3:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec3(),n=t[0],o=t[1],i=t[2];return r[0]=e[0]*n+e[4]*o+e[8]*i+e[12],r[1]=e[1]*n+e[5]*o+e[9]*i+e[13],r[2]=e[2]*n+e[6]*o+e[10]*i+e[14],r},transformPoint4:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec4();return r[0]=e[0]*t[0]+e[4]*t[1]+e[8]*t[2]+e[12]*t[3],r[1]=e[1]*t[0]+e[5]*t[1]+e[9]*t[2]+e[13]*t[3],r[2]=e[2]*t[0]+e[6]*t[1]+e[10]*t[2]+e[14]*t[3],r[3]=e[3]*t[0]+e[7]*t[1]+e[11]*t[2]+e[15]*t[3],r},transformPoints3:function(e,t,r){for(var n,o,i,a,s,c=r||[],u=t.length,l=e[0],h=e[1],f=e[2],d=e[3],p=e[4],v=e[5],m=e[6],y=e[7],g=e[8],x=e[9],b=e[10],w=e[11],M=e[12],T=e[13],I=e[14],S=e[15],A=0;A<u;++A)n=(a=t[A])[0],o=a[1],i=a[2],(s=c[A]||(c[A]=[0,0,0]))[0]=l*n+p*o+g*i+M,s[1]=h*n+v*o+x*i+T,s[2]=f*n+m*o+b*i+I,s[3]=d*n+y*o+w*i+S;return c.length=u,c},transformPositions3:function(e,t){var r,n,o,i,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,s=t.length,c=e[0],u=e[1],l=e[2],h=e[3],f=e[4],d=e[5],p=e[6],v=e[7],m=e[8],y=e[9],g=e[10],x=e[11],b=e[12],w=e[13],M=e[14],T=e[15];for(r=0;r<s;r+=3)n=t[r+0],o=t[r+1],i=t[r+2],a[r+0]=c*n+f*o+m*i+b,a[r+1]=u*n+d*o+y*i+w,a[r+2]=l*n+p*o+g*i+M,a[r+3]=h*n+v*o+x*i+T;return a},transformPositions4:function(e,t){var r,n,o,i,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,s=t.length,c=e[0],u=e[1],l=e[2],h=e[3],f=e[4],d=e[5],p=e[6],v=e[7],m=e[8],y=e[9],g=e[10],x=e[11],b=e[12],w=e[13],M=e[14],T=e[15];for(r=0;r<s;r+=4)n=t[r+0],o=t[r+1],i=t[r+2],a[r+0]=c*n+f*o+m*i+b,a[r+1]=u*n+d*o+y*i+w,a[r+2]=l*n+p*o+g*i+M,a[r+3]=h*n+v*o+x*i+T;return a},transformVec3:function(e,t,r){var n=t[0],o=t[1],i=t[2];return(r=r||this.vec3())[0]=e[0]*n+e[4]*o+e[8]*i,r[1]=e[1]*n+e[5]*o+e[9]*i,r[2]=e[2]*n+e[6]*o+e[10]*i,r},transformVec4:function(e,t,r){var n=t[0],o=t[1],i=t[2],a=t[3];return(r=r||_.vec4())[0]=e[0]*n+e[4]*o+e[8]*i+e[12]*a,r[1]=e[1]*n+e[5]*o+e[9]*i+e[13]*a,r[2]=e[2]*n+e[6]*o+e[10]*i+e[14]*a,r[3]=e[3]*n+e[7]*o+e[11]*i+e[15]*a,r},rotateVec3X:function(e,t,r,n){var o=[],i=[];return o[0]=e[0]-t[0],o[1]=e[1]-t[1],o[2]=e[2]-t[2],i[0]=o[0],i[1]=o[1]*Math.cos(r)-o[2]*Math.sin(r),i[2]=o[1]*Math.sin(r)+o[2]*Math.cos(r),n[0]=i[0]+t[0],n[1]=i[1]+t[1],n[2]=i[2]+t[2],n},rotateVec3Y:function(e,t,r,n){var o=[],i=[];return o[0]=e[0]-t[0],o[1]=e[1]-t[1],o[2]=e[2]-t[2],i[0]=o[2]*Math.sin(r)+o[0]*Math.cos(r),i[1]=o[1],i[2]=o[2]*Math.cos(r)-o[0]*Math.sin(r),n[0]=i[0]+t[0],n[1]=i[1]+t[1],n[2]=i[2]+t[2],n},rotateVec3Z:function(e,t,r,n){var o=[],i=[];return o[0]=e[0]-t[0],o[1]=e[1]-t[1],o[2]=e[2]-t[2],i[0]=o[0]*Math.cos(r)-o[1]*Math.sin(r),i[1]=o[0]*Math.sin(r)+o[1]*Math.cos(r),i[2]=o[2],n[0]=i[0]+t[0],n[1]=i[1]+t[1],n[2]=i[2]+t[2],n},projectVec4:function(e,t){var r=1/e[3];return(t=t||_.vec2())[0]=v[0]*r,t[1]=v[1]*r,t},unprojectVec3:(o=new E(16),i=new E(16),a=new E(16),function(e,t,r,n){return this.transformVec3(this.mulMat4(this.inverseMat4(t,o),this.inverseMat4(r,i),a),e,n)}),lerpVec3:function(e,t,r,n,o,i){var a=i||_.vec3(),s=(e-t)/(r-t);return a[0]=n[0]+s*(o[0]-n[0]),a[1]=n[1]+s*(o[1]-n[1]),a[2]=n[2]+s*(o[2]-n[2]),a},flatten:function(e){var t,r,n,o,i,a=[];for(t=0,r=e.length;t<r;t++)for(n=0,o=(i=e[t]).length;n<o;n++)a.push(i[n]);return a},identityQuaternion:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_.vec4();return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},eulerToQuaternion:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec4(),n=e[0]*_.DEGTORAD/2,o=e[1]*_.DEGTORAD/2,i=e[2]*_.DEGTORAD/2,a=Math.cos(n),s=Math.cos(o),c=Math.cos(i),u=Math.sin(n),l=Math.sin(o),h=Math.sin(i);return"XYZ"===t?(r[0]=u*s*c+a*l*h,r[1]=a*l*c-u*s*h,r[2]=a*s*h+u*l*c,r[3]=a*s*c-u*l*h):"YXZ"===t?(r[0]=u*s*c+a*l*h,r[1]=a*l*c-u*s*h,r[2]=a*s*h-u*l*c,r[3]=a*s*c+u*l*h):"ZXY"===t?(r[0]=u*s*c-a*l*h,r[1]=a*l*c+u*s*h,r[2]=a*s*h+u*l*c,r[3]=a*s*c-u*l*h):"ZYX"===t?(r[0]=u*s*c-a*l*h,r[1]=a*l*c+u*s*h,r[2]=a*s*h-u*l*c,r[3]=a*s*c+u*l*h):"YZX"===t?(r[0]=u*s*c+a*l*h,r[1]=a*l*c+u*s*h,r[2]=a*s*h-u*l*c,r[3]=a*s*c-u*l*h):"XZY"===t&&(r[0]=u*s*c-a*l*h,r[1]=a*l*c-u*s*h,r[2]=a*s*h+u*l*c,r[3]=a*s*c+u*l*h),r},mat4ToQuaternion:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.vec4(),n=e[0],o=e[4],i=e[8],a=e[1],s=e[5],c=e[9],u=e[2],l=e[6],h=e[10],f=n+s+h;return f>0?(t=.5/Math.sqrt(f+1),r[3]=.25/t,r[0]=(l-c)*t,r[1]=(i-u)*t,r[2]=(a-o)*t):n>s&&n>h?(t=2*Math.sqrt(1+n-s-h),r[3]=(l-c)/t,r[0]=.25*t,r[1]=(o+a)/t,r[2]=(i+u)/t):s>h?(t=2*Math.sqrt(1+s-n-h),r[3]=(i-u)/t,r[0]=(o+a)/t,r[1]=.25*t,r[2]=(c+l)/t):(t=2*Math.sqrt(1+h-n-s),r[3]=(a-o)/t,r[0]=(i+u)/t,r[1]=(c+l)/t,r[2]=.25*t),r},vec3PairToQuaternion:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec4(),n=Math.sqrt(_.dotVec3(e,e)*_.dotVec3(t,t)),o=n+_.dotVec3(e,t);return o<1e-8*n?(o=0,Math.abs(e[0])>Math.abs(e[2])?(r[0]=-e[1],r[1]=e[0],r[2]=0):(r[0]=0,r[1]=-e[2],r[2]=e[1])):_.cross3Vec3(e,t,r),r[3]=o,_.normalizeQuaternion(r)},angleAxisToQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.vec4(),r=e[3]/2,n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t},quaternionToEuler:function(){var e=new E(16);return function(t,r,n){return n=n||_.vec3(),_.quaternionToRotationMat4(t,e),_.mat4ToEuler(e,r,n),n}}(),mulQuaternions:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec4(),n=e[0],o=e[1],i=e[2],a=e[3],s=t[0],c=t[1],u=t[2],l=t[3];return r[0]=a*s+n*l+o*u-i*c,r[1]=a*c+o*l+i*s-n*u,r[2]=a*u+i*l+n*c-o*s,r[3]=a*l-n*s-o*c-i*u,r},vec3ApplyQuaternion:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:_.vec3(),n=t[0],o=t[1],i=t[2],a=e[0],s=e[1],c=e[2],u=e[3],l=u*n+s*i-c*o,h=u*o+c*n-a*i,f=u*i+a*o-s*n,d=-a*n-s*o-c*i;return r[0]=l*u+d*-a+h*-c-f*-s,r[1]=h*u+d*-s+f*-a-l*-c,r[2]=f*u+d*-c+l*-s-h*-a,r},quaternionToMat4:function(e,t){t=_.identityMat4(t);var r=e[0],n=e[1],o=e[2],i=e[3],a=2*r,s=2*n,c=2*o,u=a*i,l=s*i,h=c*i,f=a*r,d=s*r,p=c*r,v=s*n,m=c*n,y=c*o;return t[0]=1-(v+y),t[1]=d+h,t[2]=p-l,t[4]=d-h,t[5]=1-(f+y),t[6]=m+u,t[8]=p+l,t[9]=m-u,t[10]=1-(f+v),t},quaternionToRotationMat4:function(e,t){var r=e[0],n=e[1],o=e[2],i=e[3],a=r+r,s=n+n,c=o+o,u=r*a,l=r*s,h=r*c,f=n*s,d=n*c,p=o*c,v=i*a,m=i*s,y=i*c;return t[0]=1-(f+p),t[4]=l-y,t[8]=h+m,t[1]=l+y,t[5]=1-(u+p),t[9]=d-v,t[2]=h-m,t[6]=d+v,t[10]=1-(u+f),t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},normalizeQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=_.lenVec4([e[0],e[1],e[2],e[3]]);return t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r,t[3]=e[3]/r,t},conjugateQuaternion:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},inverseQuaternion:function(e,t){return _.normalizeQuaternion(_.conjugateQuaternion(e,t))},quaternionToAngleAxis:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.vec4(),r=(e=_.normalizeQuaternion(e,G))[3],n=2*Math.acos(r),o=Math.sqrt(1-r*r);return o<.001?(t[0]=e[0],t[1]=e[1],t[2]=e[2]):(t[0]=e[0]/o,t[1]=e[1]/o,t[2]=e[2]/o),t[3]=n,t},AABB3:function(e){return new E(e||6)},AABB2:function(e){return new E(e||4)},OBB3:function(e){return new E(e||32)},OBB2:function(e){return new E(e||16)},Sphere3:function(e,t,r,n){return new E([e,t,r,n])},transformOBB3:function(e,t){var r,n,o,i,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,s=t.length,c=e[0],u=e[1],l=e[2],h=e[3],f=e[4],d=e[5],p=e[6],v=e[7],m=e[8],y=e[9],g=e[10],x=e[11],b=e[12],w=e[13],M=e[14],T=e[15];for(r=0;r<s;r+=4)n=t[r+0],o=t[r+1],i=t[r+2],a[r+0]=c*n+f*o+m*i+b,a[r+1]=u*n+d*o+y*i+w,a[r+2]=l*n+p*o+g*i+M,a[r+3]=h*n+v*o+x*i+T;return a},containsAABB3:function(e,t){return e[0]<=t[0]&&t[3]<=e[3]&&e[1]<=t[1]&&t[4]<=e[4]&&e[2]<=t[2]&&t[5]<=e[5]},getAABB3Diag:function(){var e=new E(3),t=new E(3),r=new E(3);return function(n){return e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5],_.subVec3(t,e,r),Math.abs(_.lenVec3(r))}}(),getAABB3DiagPoint:function(){var e=new E(3),t=new E(3),r=new E(3);return function(n,o){e[0]=n[0],e[1]=n[1],e[2]=n[2],t[0]=n[3],t[1]=n[4],t[2]=n[5];var i=_.subVec3(t,e,r),a=o[0]-n[0],s=n[3]-o[0],c=o[1]-n[1],u=n[4]-o[1],l=o[2]-n[2],h=n[5]-o[2];return i[0]+=a>s?a:s,i[1]+=c>u?c:u,i[2]+=l>h?l:h,Math.abs(_.lenVec3(i))}}(),getAABB3Center:function(e,t){var r=t||_.vec3();return r[0]=(e[0]+e[3])/2,r[1]=(e[1]+e[4])/2,r[2]=(e[2]+e[5])/2,r},getAABB2Center:function(e,t){var r=t||_.vec2();return r[0]=(e[2]+e[0])/2,r[1]=(e[3]+e[1])/2,r},collapseAABB3:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_.AABB3();return e[0]=_.MAX_DOUBLE,e[1]=_.MAX_DOUBLE,e[2]=_.MAX_DOUBLE,e[3]=-_.MAX_DOUBLE,e[4]=-_.MAX_DOUBLE,e[5]=-_.MAX_DOUBLE,e},AABB3ToOBB3:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.OBB3();return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t[4]=e[3],t[5]=e[1],t[6]=e[2],t[7]=1,t[8]=e[3],t[9]=e[4],t[10]=e[2],t[11]=1,t[12]=e[0],t[13]=e[4],t[14]=e[2],t[15]=1,t[16]=e[0],t[17]=e[1],t[18]=e[5],t[19]=1,t[20]=e[3],t[21]=e[1],t[22]=e[5],t[23]=1,t[24]=e[3],t[25]=e[4],t[26]=e[5],t[27]=1,t[28]=e[0],t[29]=e[4],t[30]=e[5],t[31]=1,t},positions3ToAABB3:(t=new E(3),function(e,r,n){r=r||_.AABB3();for(var o,i,a,s=_.MAX_DOUBLE,c=_.MAX_DOUBLE,u=_.MAX_DOUBLE,l=-_.MAX_DOUBLE,h=-_.MAX_DOUBLE,f=-_.MAX_DOUBLE,d=0,p=e.length;d<p;d+=3)n?(t[0]=e[d+0],t[1]=e[d+1],t[2]=e[d+2],_.decompressPosition(t,n,t),o=t[0],i=t[1],a=t[2]):(o=e[d+0],i=e[d+1],a=e[d+2]),o<s&&(s=o),i<c&&(c=i),a<u&&(u=a),o>l&&(l=o),i>h&&(h=i),a>f&&(f=a);return r[0]=s,r[1]=c,r[2]=u,r[3]=l,r[4]=h,r[5]=f,r}),OBB3ToAABB3:function(e){for(var t,r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.AABB3(),i=_.MAX_DOUBLE,a=_.MAX_DOUBLE,s=_.MAX_DOUBLE,c=-_.MAX_DOUBLE,u=-_.MAX_DOUBLE,l=-_.MAX_DOUBLE,h=0,f=e.length;h<f;h+=4)(t=e[h+0])<i&&(i=t),(r=e[h+1])<a&&(a=r),(n=e[h+2])<s&&(s=n),t>c&&(c=t),r>u&&(u=r),n>l&&(l=n);return o[0]=i,o[1]=a,o[2]=s,o[3]=c,o[4]=u,o[5]=l,o},points3ToAABB3:function(e){for(var t,r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.AABB3(),i=_.MAX_DOUBLE,a=_.MAX_DOUBLE,s=_.MAX_DOUBLE,c=-_.MAX_DOUBLE,u=-_.MAX_DOUBLE,l=-_.MAX_DOUBLE,h=0,f=e.length;h<f;h++)(t=e[h][0])<i&&(i=t),(r=e[h][1])<a&&(a=r),(n=e[h][2])<s&&(s=n),t>c&&(c=t),r>u&&(u=r),n>l&&(l=n);return o[0]=i,o[1]=a,o[2]=s,o[3]=c,o[4]=u,o[5]=l,o},points3ToSphere3:function(){var e=new E(3);return function(t,r){r=r||_.vec4();var n,o=0,i=0,a=0,s=t.length;for(n=0;n<s;n++)o+=t[n][0],i+=t[n][1],a+=t[n][2];r[0]=o/s,r[1]=i/s,r[2]=a/s;var c,u=0;for(n=0;n<s;n++)(c=Math.abs(_.lenVec3(_.subVec3(t[n],r,e))))>u&&(u=c);return r[3]=u,r}}(),positions3ToSphere3:function(){var e=new E(3),t=new E(3);return function(r,n){n=n||_.vec4();var o,i=0,a=0,s=0,c=r.length,u=0;for(o=0;o<c;o+=3)i+=r[o],a+=r[o+1],s+=r[o+2];var l,h=c/3;for(n[0]=i/h,n[1]=a/h,n[2]=s/h,o=0;o<c;o+=3)e[0]=r[o],e[1]=r[o+1],e[2]=r[o+2],(l=Math.abs(_.lenVec3(_.subVec3(e,n,t))))>u&&(u=l);return n[3]=u,n}}(),OBB3ToSphere3:function(){var e=new E(3),t=new E(3);return function(r,n){n=n||_.vec4();var o,i=0,a=0,s=0,c=r.length,u=c/4;for(o=0;o<c;o+=4)i+=r[o+0],a+=r[o+1],s+=r[o+2];n[0]=i/u,n[1]=a/u,n[2]=s/u;var l,h=0;for(o=0;o<c;o+=4)e[0]=r[o+0],e[1]=r[o+1],e[2]=r[o+2],(l=Math.abs(_.lenVec3(_.subVec3(e,n,t))))>h&&(h=l);return n[3]=h,n}}(),getSphere3Center:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_.vec3();return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},expandAABB3:function(e,t){return e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]<t[3]&&(e[3]=t[3]),e[4]<t[4]&&(e[4]=t[4]),e[5]<t[5]&&(e[5]=t[5]),e},expandAABB3Point3:function(e,t){return e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]>t[2]&&(e[2]=t[2]),e[3]<t[0]&&(e[3]=t[0]),e[4]<t[1]&&(e[4]=t[1]),e[5]<t[2]&&(e[5]=t[2]),e},triangleNormal:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:_.vec3(),o=t[0]-e[0],i=t[1]-e[1],a=t[2]-e[2],s=r[0]-e[0],c=r[1]-e[1],u=r[2]-e[2],l=i*u-a*c,h=a*s-o*u,f=o*c-i*s,d=Math.sqrt(l*l+h*h+f*f);return 0===d?(n[0]=0,n[1]=0,n[2]=0):(n[0]=l/d,n[1]=h/d,n[2]=f/d),n}};function D(e,t,r,n){var o=e[t]/(Math.abs(e[t])+Math.abs(e[t+1])+Math.abs(e[t+2])),i=e[t+1]/(Math.abs(e[t])+Math.abs(e[t+1])+Math.abs(e[t+2]));if(e[t+2]<0){var a=(1-Math.abs(i))*(o>=0?1:-1),s=(1-Math.abs(o))*(i>=0?1:-1);o=a,i=s}return new Int8Array([Math[r](127.5*o+(o<0?-1:0)),Math[n](127.5*i+(i<0?-1:0))])}function N(e){var t=e[0],r=e[1];t/=t<0?127:128,r/=r<0?127:128;var n=1-Math.abs(t)-Math.abs(r);n<0&&(t=(1-Math.abs(r))*(t>=0?1:-1),r=(1-Math.abs(t))*(r>=0?1:-1));var o=Math.sqrt(t*t+r*r+n*n);return[t/o,r/o,n/o]}function F(e,t,r){return e[t]*r[0]+e[t+1]*r[1]+e[t+2]*r[2]}var V,B,z,U,k,X,R,q,Z,Y,Q,W,K,J,H,$,ee,te={quantizePositions:function(e,t,r,n){for(var o=r[0],i=r[1],a=r[2],s=65535,c=s/(r[3]-o),u=s/(r[4]-i),l=s/(r[5]-a),h=function(e){return e>=0?e:0},f=0;f<t;f+=3)n[f+0]=Math.max(0,Math.min(65535,Math.floor(h(e[f+0]-o)*c))),n[f+1]=Math.max(0,Math.min(65535,Math.floor(h(e[f+1]-i)*u))),n[f+2]=Math.max(0,Math.min(65535,Math.floor(h(e[f+2]-a)*l)))},compressPosition:function(e,t,r){var n=new Float32Array([t[3]!==t[0]?65535/(t[3]-t[0]):0,t[4]!==t[1]?65535/(t[4]-t[1]):0,t[5]!==t[2]?65535/(t[5]-t[2]):0]);r[0]=Math.max(0,Math.min(65535,Math.floor((e[0]-t[0])*n[0]))),r[1]=Math.max(0,Math.min(65535,Math.floor((e[1]-t[1])*n[1]))),r[2]=Math.max(0,Math.min(65535,Math.floor((e[2]-t[2])*n[2])))},createPositionsDecodeMatrix:(l=_.mat4(),h=_.mat4(),function(e,t){t=t||_.mat4();var r=e[0],n=e[1],o=e[2],i=e[3]-r,a=e[4]-n,s=e[5]-o,c=65535;return _.identityMat4(l),_.translationMat4v(e,l),_.identityMat4(h),_.scalingMat4v([i/c,a/c,s/c],h),_.mulMat4(l,h,t),t}),transformAndOctEncodeNormals:function(e,t,r,n,o){var i,a,s,c,u,l=_.vec3(),h=_.vec3();for(u=0;u<r;u+=3)l[0]=t[u],l[1]=t[u+1],l[2]=t[u+2],_.transformVec3(e,l,h),_.normalizeVec3(h,h),a=i=D(h,0,"floor","floor"),s=c=F(h,0,N(i)),(s=F(h,0,N(i=D(h,0,"ceil","floor"))))>c&&(a=i,c=s),(s=F(h,0,N(i=D(h,0,"floor","ceil"))))>c&&(a=i,c=s),(s=F(h,0,N(i=D(h,0,"ceil","ceil"))))>c&&(a=i,c=s),n[o+u+0]=a[0],n[o+u+1]=a[1],n[o+u+2]=0;return o+r},octEncodeNormals:function(e,t,r,n){for(var o,i,a,s,c=0;c<t;c+=3)i=o=D(e,c,"floor","floor"),a=s=F(e,c,N(o)),(a=F(e,c,N(o=D(e,c,"ceil","floor"))))>s&&(i=o,s=a),(a=F(e,c,N(o=D(e,c,"floor","ceil"))))>s&&(i=o,s=a),(a=F(e,c,N(o=D(e,c,"ceil","ceil"))))>s&&(i=o,s=a),r[n+c+0]=i[0],r[n+c+1]=i[1],r[n+c+2]=0;return n+t}},re=(V=[],B=[],z=[],U=[],k=[],X=0,R=new Uint16Array(3),q=new Uint16Array(3),Z=new Uint16Array(3),Y=_.vec3(),Q=_.vec3(),W=_.vec3(),K=_.vec3(),J=_.vec3(),H=_.vec3(),$=_.vec3(),ee=_.vec3(),function(e,t,r,n){!function(e,t){var r,n,o,i,a,s,c={},u=Math.pow(10,4),l=0;for(a=0,s=e.length;a<s;a+=3)r=e[a],n=e[a+1],o=e[a+2],void 0===c[i=Math.round(r*u)+"_"+Math.round(n*u)+"_"+Math.round(o*u)]&&(c[i]=l/3,V[l++]=r,V[l++]=n,V[l++]=o),B[a/3]=c[i];for(a=0,s=t.length;a<s;a++)U[a]=B[t[a]],z[U[a]]=t[a]}(e,t),function(e,t){X=0;for(var r=0,n=e;r<n;r+=3){var o=3*U[r],i=3*U[r+1],a=3*U[r+2];t?(R[0]=V[o],R[1]=V[o+1],R[2]=V[o+2],q[0]=V[i],q[1]=V[i+1],q[2]=V[i+2],Z[0]=V[a],Z[1]=V[a+1],Z[2]=V[a+2],_.decompressPosition(R,t,Y),_.decompressPosition(q,t,Q),_.decompressPosition(Z,t,W)):(Y[0]=V[o],Y[1]=V[o+1],Y[2]=V[o+2],Q[0]=V[i],Q[1]=V[i+1],Q[2]=V[i+2],W[0]=V[a],W[1]=V[a+1],W[2]=V[a+2]),_.subVec3(W,Q,K),_.subVec3(Y,Q,J),_.cross3Vec3(K,J,H),_.normalizeVec3(H,$);var s=k[X]||(k[X]={normal:_.vec3()});s.normal[0]=$[0],s.normal[1]=$[1],s.normal[2]=$[2],X++}}(t.length,r);for(var o,i,a,s,c,u,l,h,f,d,p,v=[],m=Math.cos(_.DEGTORAD*n),y={},g=!1,x=0,b=t.length;x<b;x+=3)for(var w=x/3,M=0;M<3;M++)o=U[x+M],i=U[x+(M+1)%3],void 0===y[c=(a=Math.min(o,i))+","+(s=Math.max(o,i))]?y[c]={index1:a,index2:s,face1:w,face2:void 0}:y[c].face2=w;for(c in y){if(void 0!==(u=y[c]).face2){l=k[u.face1].normal,h=k[u.face2].normal,ee[0]=-h[0],ee[1]=-h[1],ee[2]=-h[2],f=Math.abs(_.dotVec3(l,h));var T=Math.abs(_.dotVec3(l,ee));if(f>m&&T>m)continue}d=z[u.index1],p=z[u.index2],(!g&&d>65535||p>65535)&&(g=!0),v.push(d),v.push(p)}return g?new Uint32Array(v):new Uint16Array(v)}),ne=function(e,t,r,n){function o(e,r){for(var n,o,i=0;i<3;i++)if((n=t[3*e+i])!==(o=t[3*r+i]))return o-n;return 0}for(var i=e.slice().sort(o),a=null,s=0,c=i.length;s<c;s++)0!=s&&0==o(i[s],i[s-1])||(a=i[s]),r[i[s]]=a;for(var u=0,l=e.length;u<l;u+=3){var h=r[e[u]],f=r[e[u+1]],d=r[e[u+2]],p=h,v=f,m=d;if(h>f&&h>d?f>d?(p=h,v=f,m=d):(p=h,v=d,m=f):f>h&&f>d?h>d?(p=f,v=h,m=d):(p=f,v=d,m=h):d>h&&d>f&&(h>f?(p=d,v=h,m=f):(p=d,v=f,m=h)),n[u+0]=[p,v],n[u+1]=[v,m],p>m){var y=m;m=p,p=y}n[u+2]=[m,p]}function g(e,t){for(var r,n,o=0;o<2;o++)if(r=e[o],(n=t[o])!==r)return n-r;return 0}(n=n.slice(0,e.length)).sort(g);for(var x=0,b=0;b<n.length;b++)if(0===b||0!==g(n[b],n[b-1])){if(0!==b&&2!==x)return!1;x=1}else x++;return!(n.length>0&&2!==x)};function oe(e){return oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},oe(e)}function ie(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==oe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==oe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===oe(o)?o:String(o)),n)}var o}function ae(e,t,r){return t&&ie(e.prototype,t),r&&ie(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var se=ae((function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.meshId=t.meshId,this.meshIndex=t.meshIndex,this.matrix=t.matrix,this.geometry=t.geometry,this.color=t.color||new Float32Array([1,1,1]),this.metallic=null!==t.metallic&&void 0!==t.metallic?t.metallic:0,this.roughness=null!==t.roughness&&void 0!==t.roughness?t.roughness:1,this.opacity=void 0!==t.opacity&&null!==t.opacity?t.opacity:1,this.textureSet=t.textureSet,this.entity=null}));function ce(e){return ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ce(e)}function ue(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==ce(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==ce(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===ce(o)?o:String(o)),n)}var o}var le=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.geometryId=t.geometryId,this.primitiveType=t.primitiveType,this.geometryIndex=t.geometryIndex,this.numInstances=0,this.positions=t.positions,this.positionsQuantized=new Uint16Array(t.positions.length),this.normals=t.normals,this.normalsOctEncoded=null,this.colorsCompressed=t.colorsCompressed,this.uvs=t.uvs,this.uvsCompressed=t.uvsCompressed,this.indices=t.indices,this.edgeIndices=t.edgeIndices,this.solid=!1}var t,r;return t=e,(r=[{key:"reused",get:function(){return this.numInstances>1}}])&&ue(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function he(e){return he="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},he(e)}function fe(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==he(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==he(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===he(o)?o:String(o)),n)}var o}function de(e,t,r){return t&&fe(e.prototype,t),r&&fe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var pe=de((function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.entityId=t,this.entityIndex=null,this.meshes=r,this.aabb=_.AABB3(),this.hasReusedGeometries=!1}));function ve(e){return ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ve(e)}function me(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==ve(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==ve(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===ve(o)?o:String(o)),n)}var o}function ye(e,t,r){return t&&me(e.prototype,t),r&&me(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var ge=ye((function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.aabb=t,this.entities=r}));function xe(e){return xe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xe(e)}function be(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==xe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==xe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===xe(o)?o:String(o)),n)}var o}function we(e,t,r){return t&&be(e.prototype,t),r&&be(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var Me=we((function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.aabb=t,this.entities=null,this.left=null,this.right=null}));function Te(e){return Te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Te(e)}function Ie(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==Te(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==Te(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===Te(o)?o:String(o)),n)}var o}function Se(e,t,r){return t&&Ie(e.prototype,t),r&&Ie(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var Ae=Se((function e(t,r,n,o,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.metaObjectId=t,this.propertySetIds=r,this.metaObjectType=n,this.metaObjectName=o,this.parentMetaObjectId=i}));function Oe(e){return Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe(e)}function Le(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==Oe(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==Oe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===Oe(o)?o:String(o)),n)}var o}function Pe(e,t,r){return t&&Le(e.prototype,t),r&&Le(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var Ee=Pe((function e(t,r,n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.propertySetId=t,this.propertySetType=r,this.propertySetName=n,this.properties=o}));function je(e){return je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},je(e)}function Ce(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==je(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==je(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===je(o)?o:String(o)),n)}var o}function Ge(e,t,r){return t&&Ce(e.prototype,t),r&&Ce(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var _e=Ge((function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.textureId=t.textureId,this.textureIndex=t.textureIndex,this.imageData=t.imageData,this.channel=null,this.width=t.width,this.height=t.height,this.src=t.src,this.compressed=!!t.compressed,this.mediaType=t.mediaType,this.minFilter=t.minFilter||I,this.magFilter=t.magFilter||I,this.wrapS=t.wrapS||d,this.wrapT=t.wrapT||d,this.wrapR=t.wrapR||d}));function De(e){return De="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},De(e)}function Ne(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(void 0,o=function(e,t){if("object"!==De(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!==De(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n.key),"symbol"===De(o)?o:String(o)),n)}var o}function Fe(e,t,r){return t&&Ne(e.prototype,t),r&&Ne(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var Ve=Fe((function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.textureSetId=t.textureSetId,this.textureSetIndex=t.textureSetIndex,this.materialType=t.materialType,this.materialIndex=t.materialIndex,this.numInstances=0,this.colorTexture=t.colorTexture,this.metallicRoughnessTexture=t.metallicRoughnessTexture,this.normalsTexture=t.normalsTexture,this.emissiveTexture=t.emissiveTexture,this.occlusionTexture=t.occlusionTexture}));const Be=require("@loaders.gl/core"),ze=require("@loaders.gl/textures"),Ue=require("@loaders.gl/images");function ke(e){return ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ke(e)}function Xe(){Xe=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var i=t&&t.prototype instanceof f?t:f,a=Object.create(i.prototype),s=new S(o||[]);return n(a,"_invoke",{value:w(e,r,s)}),a}function l(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h={};function f(){}function d(){}function p(){}var v={};c(v,i,(function(){return this}));var m=Object.getPrototypeOf,y=m&&m(m(A([])));y&&y!==t&&r.call(y,i)&&(v=y);var g=p.prototype=f.prototype=Object.create(v);function x(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){function o(n,i,a,s){var c=l(e[n],e,i);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==ke(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,a,s)}),(function(e){o("throw",e,a,s)})):t.resolve(h).then((function(e){u.value=e,a(u)}),(function(e){return o("throw",e,a,s)}))}s(c.arg)}var i;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return i=i?i.then(n,n):n()}})}function w(e,t,r){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return{value:void 0,done:!0}}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var s=M(a,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=l(e,t,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===h)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=l(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function A(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:O}}function O(){return{value:void 0,done:!0}}return d.prototype=p,n(g,"constructor",{value:p,configurable:!0}),n(p,"constructor",{value:d,configurable:!0}),d.displayName=c(p,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,c(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},x(b.prototype),c(b.prototype,a,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new b(u(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(g),c