@vuemap/amap-xyz-layer
Version:
高德地图 JSAPI v2.0 自定义瓦片图层,支持瓦片纠偏,支持海拔
29 lines • 87.2 kB
JavaScript
(function(Q,H){typeof exports=="object"&&typeof module!="undefined"?H(exports):typeof define=="function"&&define.amd?define(["exports"],H):(Q=typeof globalThis!="undefined"?globalThis:Q||self,H(Q.AMap=Q.AMap||{}))})(this,function(Q){"use strict";var H={exports:{}};H.exports=lr,H.exports.default=lr;function lr(r,e,t){t=t||2;var n=e&&e.length,i=n?e[0]*t:r.length,a=Br(r,0,i,t,!0),s=[];if(!a||a.next===a.prev)return s;var h,c,l,f,v,o,M;if(n&&(a=lt(r,e,a,t)),r.length>80*t){h=l=r[0],c=f=r[1];for(var p=t;p<i;p+=t)v=r[p],o=r[p+1],v<h&&(h=v),o<c&&(c=o),v>l&&(l=v),o>f&&(f=o);M=Math.max(l-h,f-c),M=M!==0?32767/M:0}return tr(a,s,t,h,c,M,0),s}function Br(r,e,t,n,i){var a,s;if(i===$r(r,e,t,n)>0)for(a=e;a<t;a+=n)s=Vr(a,r[a],r[a+1],s);else for(a=t-n;a>=e;a-=n)s=Vr(a,r[a],r[a+1],s);return s&&fr(s,s.next)&&(ir(s),s=s.next),s}function J(r,e){if(!r)return r;e||(e=r);var t=r,n;do if(n=!1,!t.steiner&&(fr(t,t.next)||b(t.prev,t,t.next)===0)){if(ir(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function tr(r,e,t,n,i,a,s){if(!!r){!s&&a&&pt(r,n,i,a);for(var h=r,c,l;r.prev!==r.next;){if(c=r.prev,l=r.next,a?st(r,n,i,a):at(r)){e.push(c.i/t|0),e.push(r.i/t|0),e.push(l.i/t|0),ir(r),r=l.next,h=l.next;continue}if(r=l,r===h){s?s===1?(r=ht(J(r),e,t),tr(r,e,t,n,i,a,2)):s===2&&ct(r,e,t,n,i,a):tr(J(r),e,t,n,i,a,1);break}}}}function at(r){var e=r.prev,t=r,n=r.next;if(b(e,t,n)>=0)return!1;for(var i=e.x,a=t.x,s=n.x,h=e.y,c=t.y,l=n.y,f=i<a?i<s?i:s:a<s?a:s,v=h<c?h<l?h:l:c<l?c:l,o=i>a?i>s?i:s:a>s?a:s,M=h>c?h>l?h:l:c>l?c:l,p=n.next;p!==e;){if(p.x>=f&&p.x<=o&&p.y>=v&&p.y<=M&&er(i,h,a,c,s,l,p.x,p.y)&&b(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function st(r,e,t,n){var i=r.prev,a=r,s=r.next;if(b(i,a,s)>=0)return!1;for(var h=i.x,c=a.x,l=s.x,f=i.y,v=a.y,o=s.y,M=h<c?h<l?h:l:c<l?c:l,p=f<v?f<o?f:o:v<o?v:o,x=h>c?h>l?h:l:c>l?c:l,y=f>v?f>o?f:o:v>o?v:o,m=Lr(M,p,e,t,n),R=Lr(x,y,e,t,n),d=r.prevZ,g=r.nextZ;d&&d.z>=m&&g&&g.z<=R;){if(d.x>=M&&d.x<=x&&d.y>=p&&d.y<=y&&d!==i&&d!==s&&er(h,f,c,v,l,o,d.x,d.y)&&b(d.prev,d,d.next)>=0||(d=d.prevZ,g.x>=M&&g.x<=x&&g.y>=p&&g.y<=y&&g!==i&&g!==s&&er(h,f,c,v,l,o,g.x,g.y)&&b(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;d&&d.z>=m;){if(d.x>=M&&d.x<=x&&d.y>=p&&d.y<=y&&d!==i&&d!==s&&er(h,f,c,v,l,o,d.x,d.y)&&b(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;g&&g.z<=R;){if(g.x>=M&&g.x<=x&&g.y>=p&&g.y<=y&&g!==i&&g!==s&&er(h,f,c,v,l,o,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function ht(r,e,t){var n=r;do{var i=n.prev,a=n.next.next;!fr(i,a)&&Zr(i,n,n.next,a)&&nr(i,a)&&nr(a,i)&&(e.push(i.i/t|0),e.push(n.i/t|0),e.push(a.i/t|0),ir(n),ir(n.next),n=r=a),n=n.next}while(n!==r);return J(n)}function ct(r,e,t,n,i,a){var s=r;do{for(var h=s.next.next;h!==s.prev;){if(s.i!==h.i&&dt(s,h)){var c=Dr(s,h);s=J(s,s.next),c=J(c,c.next),tr(s,e,t,n,i,a,0),tr(c,e,t,n,i,a,0);return}h=h.next}s=s.next}while(s!==r)}function lt(r,e,t,n){var i=[],a,s,h,c,l;for(a=0,s=e.length;a<s;a++)h=e[a]*n,c=a<s-1?e[a+1]*n:r.length,l=Br(r,h,c,n,!1),l===l.next&&(l.steiner=!0),i.push(xt(l));for(i.sort(ft),a=0;a<i.length;a++)t=ot(i[a],t);return t}function ft(r,e){return r.x-e.x}function ot(r,e){var t=vt(r,e);if(!t)return e;var n=Dr(t,r);return J(n,n.next),J(t,t.next)}function vt(r,e){var t=e,n=r.x,i=r.y,a=-1/0,s;do{if(i<=t.y&&i>=t.next.y&&t.next.y!==t.y){var h=t.x+(i-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=n&&h>a&&(a=h,s=t.x<t.next.x?t:t.next,h===n))return s}t=t.next}while(t!==e);if(!s)return null;var c=s,l=s.x,f=s.y,v=1/0,o;t=s;do n>=t.x&&t.x>=l&&n!==t.x&&er(i<f?n:a,i,l,f,i<f?a:n,i,t.x,t.y)&&(o=Math.abs(i-t.y)/(n-t.x),nr(t,r)&&(o<v||o===v&&(t.x>s.x||t.x===s.x&&Mt(s,t)))&&(s=t,v=o)),t=t.next;while(t!==c);return s}function Mt(r,e){return b(r.prev,r,e.prev)<0&&b(e.next,r,r.next)<0}function pt(r,e,t,n){var i=r;do i.z===0&&(i.z=Lr(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==r);i.prevZ.nextZ=null,i.prevZ=null,yt(i)}function yt(r){var e,t,n,i,a,s,h,c,l=1;do{for(t=r,r=null,a=null,s=0;t;){for(s++,n=t,h=0,e=0;e<l&&(h++,n=n.nextZ,!!n);e++);for(c=l;h>0||c>0&&n;)h!==0&&(c===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,h--):(i=n,n=n.nextZ,c--),a?a.nextZ=i:r=i,i.prevZ=a,a=i;t=n}a.nextZ=null,l*=2}while(s>1);return r}function Lr(r,e,t,n,i){return r=(r-t)*i|0,e=(e-n)*i|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function xt(r){var e=r,t=r;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==r);return t}function er(r,e,t,n,i,a,s,h){return(i-s)*(e-h)>=(r-s)*(a-h)&&(r-s)*(n-h)>=(t-s)*(e-h)&&(t-s)*(a-h)>=(i-s)*(n-h)}function dt(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!mt(r,e)&&(nr(r,e)&&nr(e,r)&>(r,e)&&(b(r.prev,r,e.prev)||b(r,e.prev,e))||fr(r,e)&&b(r.prev,r,r.next)>0&&b(e.prev,e,e.next)>0)}function b(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function fr(r,e){return r.x===e.x&&r.y===e.y}function Zr(r,e,t,n){var i=vr(b(r,e,t)),a=vr(b(r,e,n)),s=vr(b(t,n,r)),h=vr(b(t,n,e));return!!(i!==a&&s!==h||i===0&&or(r,t,e)||a===0&&or(r,n,e)||s===0&&or(t,r,n)||h===0&&or(t,e,n))}function or(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function vr(r){return r>0?1:r<0?-1:0}function mt(r,e){var t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&Zr(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function nr(r,e){return b(r.prev,r,r.next)<0?b(r,e,r.next)>=0&&b(r,r.prev,e)>=0:b(r,e,r.prev)<0||b(r,r.next,e)<0}function gt(r,e){var t=r,n=!1,i=(r.x+e.x)/2,a=(r.y+e.y)/2;do t.y>a!=t.next.y>a&&t.next.y!==t.y&&i<(t.next.x-t.x)*(a-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==r);return n}function Dr(r,e){var t=new wr(r.i,r.x,r.y),n=new wr(e.i,e.x,e.y),i=r.next,a=e.prev;return r.next=e,e.prev=r,t.next=i,i.prev=t,n.next=t,t.prev=n,a.next=n,n.prev=a,n}function Vr(r,e,t,n){var i=new wr(r,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function ir(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function wr(r,e,t){this.i=r,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}lr.deviation=function(r,e,t,n){var i=e&&e.length,a=i?e[0]*t:r.length,s=Math.abs($r(r,0,a,t));if(i)for(var h=0,c=e.length;h<c;h++){var l=e[h]*t,f=h<c-1?e[h+1]*t:r.length;s-=Math.abs($r(r,l,f,t))}var v=0;for(h=0;h<n.length;h+=3){var o=n[h]*t,M=n[h+1]*t,p=n[h+2]*t;v+=Math.abs((r[o]-r[p])*(r[M+1]-r[o+1])-(r[o]-r[M])*(r[p+1]-r[o+1]))}return s===0&&v===0?0:Math.abs((v-s)/s)};function $r(r,e,t,n){for(var i=0,a=e,s=t-n;a<t;a+=n)i+=(r[s]-r[a])*(r[a+1]+r[s+1]),s=a;return i}lr.flatten=function(r){for(var e=r[0][0].length,t={vertices:[],holes:[],dimensions:e},n=0,i=0;i<r.length;i++){for(var a=0;a<r[i].length;a++)for(var s=0;s<e;s++)t.vertices.push(r[i][a][s]);i>0&&(n+=r[i-1].length,t.holes.push(n))}return t};const U={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function ut(r,{precision:e=U.precision}={}){return r=Tt(r),"".concat(parseFloat(r.toPrecision(e)))}function Sr(r){return Array.isArray(r)||ArrayBuffer.isView(r)&&!(r instanceof DataView)}function Ur(r,e,t){const n=U.EPSILON;t&&(U.EPSILON=t);try{if(r===e)return!0;if(Sr(r)&&Sr(e)){if(r.length!==e.length)return!1;for(let i=0;i<r.length;++i)if(!Ur(r[i],e[i]))return!1;return!0}return r&&r.equals?r.equals(e):e&&e.equals?e.equals(r):typeof r=="number"&&typeof e=="number"?Math.abs(r-e)<=U.EPSILON*Math.max(1,Math.abs(r),Math.abs(e)):!1}finally{U.EPSILON=n}}function Tt(r){return Math.round(r/U.EPSILON)*U.EPSILON}function Et(r){function e(){var t=Reflect.construct(r,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return e.prototype=Object.create(r.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r,e}class _t extends Et(Array){clone(){return new this.constructor().copy(this)}fromArray(e,t=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+t];return this.check()}toArray(e=[],t=0){for(let n=0;n<this.ELEMENTS;++n)e[t+n]=this[n];return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Sr(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(U)}formatString(e){let t="";for(let n=0;n<this.ELEMENTS;++n)t+=(n>0?", ":"")+ut(this[n],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}equals(e){if(!e||this.length!==e.length)return!1;for(let t=0;t<this.ELEMENTS;++t)if(!Ur(this[t],e[t]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,t,n){if(n===void 0)return this.lerp(this,e,t);for(let i=0;i<this.ELEMENTS;++i){const a=e[i];this[i]=a+n*(t[i]-a)}return this.check()}min(e){for(let t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}max(e){for(let t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}clamp(e,t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),t[n]);return this.check()}add(...e){for(const t of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=t[n];return this.check()}subtract(...e){for(const t of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=t[n];return this.check()}scale(e){if(typeof e=="number")for(let t=0;t<this.ELEMENTS;++t)this[t]*=e;else for(let t=0;t<this.ELEMENTS&&t<e.length;++t)this[t]*=e[t];return this.check()}multiplyByScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}check(){if(U.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}validate(){let e=this.length===this.ELEMENTS;for(let t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}addScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),t);return this.check()}get elements(){return this}}function Rt(r,e){if(r.length!==e)return!1;for(let t=0;t<r.length;++t)if(!Number.isFinite(r[t]))return!1;return!0}function Ot(r){if(!Number.isFinite(r))throw new Error("Invalid number ".concat(r));return r}function zr(r,e,t=""){if(U.debug&&!Rt(r,e))throw new Error("math.gl: ".concat(t," some fields set to invalid numbers'"));return r}var _={},W={};Object.defineProperty(W,"__esModule",{value:!0}),W.setMatrixArrayType=Pt,W.toRadian=wt,W.equals=$t,W.RANDOM=W.ARRAY_TYPE=W.EPSILON=void 0;var Xr=1e-6;W.EPSILON=Xr;var Ir=typeof Float32Array!="undefined"?Float32Array:Array;W.ARRAY_TYPE=Ir;var At=Math.random;W.RANDOM=At;function Pt(r){W.ARRAY_TYPE=Ir=r}var Lt=Math.PI/180;function wt(r){return r*Lt}function $t(r,e){return Math.abs(r-e)<=Xr*Math.max(1,Math.abs(r),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var r=0,e=arguments.length;e--;)r+=arguments[e]*arguments[e];return Math.sqrt(r)});function Mr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Mr=function(t){return typeof t}:Mr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mr(r)}Object.defineProperty(_,"__esModule",{value:!0}),_.create=Gr,_.clone=Ct,_.fromValues=Ft,_.copy=Nt,_.set=bt,_.add=qt,_.subtract=Hr,_.multiply=Qr,_.divide=Jr,_.ceil=Yt,_.floor=kt,_.min=Wt,_.max=Bt,_.round=Zt,_.scale=Dt,_.scaleAndAdd=Vt,_.distance=jr,_.squaredDistance=re,_.length=ee,_.squaredLength=te,_.negate=Ut,_.inverse=Xt,_.normalize=It,_.dot=Kt,_.cross=Gt,_.lerp=Ht,_.random=Qt,_.transformMat2=Jt,_.transformMat2d=jt,_.transformMat3=rn;var St=_.transformMat4=en;_.rotate=tn,_.angle=nn,_.zero=an,_.str=sn,_.exactEquals=hn,_.equals=cn,_.forEach=_.sqrLen=_.sqrDist=_.dist=_.div=_.mul=_.sub=_.len=void 0;var j=zt(W);function Kr(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Kr=function(i){return i?t:e})(r)}function zt(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||Mr(r)!=="object"&&typeof r!="function")return{default:r};var t=Kr(e);if(t&&t.has(r))return t.get(r);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=i?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=r[a]}return n.default=r,t&&t.set(r,n),n}function Gr(){var r=new j.ARRAY_TYPE(2);return j.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0),r}function Ct(r){var e=new j.ARRAY_TYPE(2);return e[0]=r[0],e[1]=r[1],e}function Ft(r,e){var t=new j.ARRAY_TYPE(2);return t[0]=r,t[1]=e,t}function Nt(r,e){return r[0]=e[0],r[1]=e[1],r}function bt(r,e,t){return r[0]=e,r[1]=t,r}function qt(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function Hr(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r}function Qr(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r}function Jr(r,e,t){return r[0]=e[0]/t[0],r[1]=e[1]/t[1],r}function Yt(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r}function kt(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r}function Wt(r,e,t){return r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r}function Bt(r,e,t){return r[0]=Math.max(e[0],t[0]),r[1]=Math.max(e[1],t[1]),r}function Zt(r,e){return r[0]=Math.round(e[0]),r[1]=Math.round(e[1]),r}function Dt(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r}function Vt(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r}function jr(r,e){var t=e[0]-r[0],n=e[1]-r[1];return Math.hypot(t,n)}function re(r,e){var t=e[0]-r[0],n=e[1]-r[1];return t*t+n*n}function ee(r){var e=r[0],t=r[1];return Math.hypot(e,t)}function te(r){var e=r[0],t=r[1];return e*e+t*t}function Ut(r,e){return r[0]=-e[0],r[1]=-e[1],r}function Xt(r,e){return r[0]=1/e[0],r[1]=1/e[1],r}function It(r,e){var t=e[0],n=e[1],i=t*t+n*n;return i>0&&(i=1/Math.sqrt(i)),r[0]=e[0]*i,r[1]=e[1]*i,r}function Kt(r,e){return r[0]*e[0]+r[1]*e[1]}function Gt(r,e,t){var n=e[0]*t[1]-e[1]*t[0];return r[0]=r[1]=0,r[2]=n,r}function Ht(r,e,t,n){var i=e[0],a=e[1];return r[0]=i+n*(t[0]-i),r[1]=a+n*(t[1]-a),r}function Qt(r,e){e=e||1;var t=j.RANDOM()*2*Math.PI;return r[0]=Math.cos(t)*e,r[1]=Math.sin(t)*e,r}function Jt(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i,r[1]=t[1]*n+t[3]*i,r}function jt(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i+t[4],r[1]=t[1]*n+t[3]*i+t[5],r}function rn(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[3]*i+t[6],r[1]=t[1]*n+t[4]*i+t[7],r}function en(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[4]*i+t[12],r[1]=t[1]*n+t[5]*i+t[13],r}function tn(r,e,t,n){var i=e[0]-t[0],a=e[1]-t[1],s=Math.sin(n),h=Math.cos(n);return r[0]=i*h-a*s+t[0],r[1]=i*s+a*h+t[1],r}function nn(r,e){var t=r[0],n=r[1],i=e[0],a=e[1],s=Math.sqrt(t*t+n*n)*Math.sqrt(i*i+a*a),h=s&&(t*i+n*a)/s;return Math.acos(Math.min(Math.max(h,-1),1))}function an(r){return r[0]=0,r[1]=0,r}function sn(r){return"vec2("+r[0]+", "+r[1]+")"}function hn(r,e){return r[0]===e[0]&&r[1]===e[1]}function cn(r,e){var t=r[0],n=r[1],i=e[0],a=e[1];return Math.abs(t-i)<=j.EPSILON*Math.max(1,Math.abs(t),Math.abs(i))&&Math.abs(n-a)<=j.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))}var ln=ee;_.len=ln;var fn=Hr;_.sub=fn;var on=Qr;_.mul=on;var vn=Jr;_.div=vn;var Mn=jr;_.dist=Mn;var pn=re;_.sqrDist=pn;var yn=te;_.sqrLen=yn;var xn=function(){var r=Gr();return function(e,t,n,i,a,s){var h,c;for(t||(t=2),n||(n=0),i?c=Math.min(i*t+n,e.length):c=e.length,h=n;h<c;h+=t)r[0]=e[h],r[1]=e[h+1],a(r,r,s),e[h]=r[0],e[h+1]=r[1];return e}}();_.forEach=xn;function dn(r,e,t){const n=e[0],i=e[1],a=t[3]*n+t[7]*i||1;return r[0]=(t[0]*n+t[4]*i)/a,r[1]=(t[1]*n+t[5]*i)/a,r}function mn(r,e,t){const n=e[0],i=e[1],a=e[2],s=t[3]*n+t[7]*i+t[11]*a||1;return r[0]=(t[0]*n+t[4]*i+t[8]*a)/s,r[1]=(t[1]*n+t[5]*i+t[9]*a)/s,r[2]=(t[2]*n+t[6]*i+t[10]*a)/s,r}var T={};function pr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?pr=function(t){return typeof t}:pr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pr(r)}Object.defineProperty(T,"__esModule",{value:!0}),T.create=ie,T.clone=Tn,T.length=ae,T.fromValues=En,T.copy=_n,T.set=Rn,T.add=On,T.subtract=se,T.multiply=he,T.divide=ce,T.ceil=An,T.floor=Pn,T.min=Ln,T.max=wn,T.round=$n,T.scale=Sn,T.scaleAndAdd=zn,T.distance=le,T.squaredDistance=fe,T.squaredLength=oe,T.negate=Cn,T.inverse=Fn,T.normalize=Nn,T.dot=ve,T.cross=bn,T.lerp=qn,T.hermite=Yn,T.bezier=kn,T.random=Wn;var gn=T.transformMat4=Bn;T.transformMat3=Zn,T.transformQuat=Dn,T.rotateX=Vn,T.rotateY=Un,T.rotateZ=Xn,T.angle=In,T.zero=Kn,T.str=Gn,T.exactEquals=Hn,T.equals=Qn,T.forEach=T.sqrLen=T.len=T.sqrDist=T.dist=T.div=T.mul=T.sub=void 0;var I=un(W);function ne(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(ne=function(i){return i?t:e})(r)}function un(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||pr(r)!=="object"&&typeof r!="function")return{default:r};var t=ne(e);if(t&&t.has(r))return t.get(r);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=i?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=r[a]}return n.default=r,t&&t.set(r,n),n}function ie(){var r=new I.ARRAY_TYPE(3);return I.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Tn(r){var e=new I.ARRAY_TYPE(3);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e}function ae(r){var e=r[0],t=r[1],n=r[2];return Math.hypot(e,t,n)}function En(r,e,t){var n=new I.ARRAY_TYPE(3);return n[0]=r,n[1]=e,n[2]=t,n}function _n(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r}function Rn(r,e,t,n){return r[0]=e,r[1]=t,r[2]=n,r}function On(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function se(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r}function he(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r[2]=e[2]*t[2],r}function ce(r,e,t){return r[0]=e[0]/t[0],r[1]=e[1]/t[1],r[2]=e[2]/t[2],r}function An(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r[2]=Math.ceil(e[2]),r}function Pn(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r[2]=Math.floor(e[2]),r}function Ln(r,e,t){return r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r[2]=Math.min(e[2],t[2]),r}function wn(r,e,t){return r[0]=Math.max(e[0],t[0]),r[1]=Math.max(e[1],t[1]),r[2]=Math.max(e[2],t[2]),r}function $n(r,e){return r[0]=Math.round(e[0]),r[1]=Math.round(e[1]),r[2]=Math.round(e[2]),r}function Sn(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r}function zn(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r}function le(r,e){var t=e[0]-r[0],n=e[1]-r[1],i=e[2]-r[2];return Math.hypot(t,n,i)}function fe(r,e){var t=e[0]-r[0],n=e[1]-r[1],i=e[2]-r[2];return t*t+n*n+i*i}function oe(r){var e=r[0],t=r[1],n=r[2];return e*e+t*t+n*n}function Cn(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}function Fn(r,e){return r[0]=1/e[0],r[1]=1/e[1],r[2]=1/e[2],r}function Nn(r,e){var t=e[0],n=e[1],i=e[2],a=t*t+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r}function ve(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function bn(r,e,t){var n=e[0],i=e[1],a=e[2],s=t[0],h=t[1],c=t[2];return r[0]=i*c-a*h,r[1]=a*s-n*c,r[2]=n*h-i*s,r}function qn(r,e,t,n){var i=e[0],a=e[1],s=e[2];return r[0]=i+n*(t[0]-i),r[1]=a+n*(t[1]-a),r[2]=s+n*(t[2]-s),r}function Yn(r,e,t,n,i,a){var s=a*a,h=s*(2*a-3)+1,c=s*(a-2)+a,l=s*(a-1),f=s*(3-2*a);return r[0]=e[0]*h+t[0]*c+n[0]*l+i[0]*f,r[1]=e[1]*h+t[1]*c+n[1]*l+i[1]*f,r[2]=e[2]*h+t[2]*c+n[2]*l+i[2]*f,r}function kn(r,e,t,n,i,a){var s=1-a,h=s*s,c=a*a,l=h*s,f=3*a*h,v=3*c*s,o=c*a;return r[0]=e[0]*l+t[0]*f+n[0]*v+i[0]*o,r[1]=e[1]*l+t[1]*f+n[1]*v+i[1]*o,r[2]=e[2]*l+t[2]*f+n[2]*v+i[2]*o,r}function Wn(r,e){e=e||1;var t=I.RANDOM()*2*Math.PI,n=I.RANDOM()*2-1,i=Math.sqrt(1-n*n)*e;return r[0]=Math.cos(t)*i,r[1]=Math.sin(t)*i,r[2]=n*e,r}function Bn(r,e,t){var n=e[0],i=e[1],a=e[2],s=t[3]*n+t[7]*i+t[11]*a+t[15];return s=s||1,r[0]=(t[0]*n+t[4]*i+t[8]*a+t[12])/s,r[1]=(t[1]*n+t[5]*i+t[9]*a+t[13])/s,r[2]=(t[2]*n+t[6]*i+t[10]*a+t[14])/s,r}function Zn(r,e,t){var n=e[0],i=e[1],a=e[2];return r[0]=n*t[0]+i*t[3]+a*t[6],r[1]=n*t[1]+i*t[4]+a*t[7],r[2]=n*t[2]+i*t[5]+a*t[8],r}function Dn(r,e,t){var n=t[0],i=t[1],a=t[2],s=t[3],h=e[0],c=e[1],l=e[2],f=i*l-a*c,v=a*h-n*l,o=n*c-i*h,M=i*o-a*v,p=a*f-n*o,x=n*v-i*f,y=s*2;return f*=y,v*=y,o*=y,M*=2,p*=2,x*=2,r[0]=h+f+M,r[1]=c+v+p,r[2]=l+o+x,r}function Vn(r,e,t,n){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r}function Un(r,e,t,n){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r}function Xn(r,e,t,n){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r}function In(r,e){var t=r[0],n=r[1],i=r[2],a=e[0],s=e[1],h=e[2],c=Math.sqrt(t*t+n*n+i*i),l=Math.sqrt(a*a+s*s+h*h),f=c*l,v=f&&ve(r,e)/f;return Math.acos(Math.min(Math.max(v,-1),1))}function Kn(r){return r[0]=0,r[1]=0,r[2]=0,r}function Gn(r){return"vec3("+r[0]+", "+r[1]+", "+r[2]+")"}function Hn(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]}function Qn(r,e){var t=r[0],n=r[1],i=r[2],a=e[0],s=e[1],h=e[2];return Math.abs(t-a)<=I.EPSILON*Math.max(1,Math.abs(t),Math.abs(a))&&Math.abs(n-s)<=I.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-h)<=I.EPSILON*Math.max(1,Math.abs(i),Math.abs(h))}var Jn=se;T.sub=Jn;var jn=he;T.mul=jn;var ri=ce;T.div=ri;var ei=le;T.dist=ei;var ti=fe;T.sqrDist=ti;var ni=ae;T.len=ni;var ii=oe;T.sqrLen=ii;var ai=function(){var r=ie();return function(e,t,n,i,a,s){var h,c;for(t||(t=3),n||(n=0),i?c=Math.min(i*t+n,e.length):c=e.length,h=n;h<c;h+=t)r[0]=e[h],r[1]=e[h+1],r[2]=e[h+2],a(r,r,s),e[h]=r[0],e[h+1]=r[1],e[h+2]=r[2];return e}}();T.forEach=ai;class si extends _t{toString(){let e="[";if(U.printRowMajor){e+="row-major:";for(let t=0;t<this.RANK;++t)for(let n=0;n<this.RANK;++n)e+=" ".concat(this[n*this.RANK+t])}else{e+="column-major:";for(let t=0;t<this.ELEMENTS;++t)e+=" ".concat(this[t])}return e+="]",e}getElementIndex(e,t){return t*this.RANK+e}getElement(e,t){return this[t*this.RANK+e]}setElement(e,t,n){return this[t*this.RANK+e]=Ot(n),this}getColumn(e,t=new Array(this.RANK).fill(-0)){const n=e*this.RANK;for(let i=0;i<this.RANK;++i)t[i]=this[n+i];return t}setColumn(e,t){const n=e*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=t[i];return this}}var w={};function yr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?yr=function(t){return typeof t}:yr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yr(r)}Object.defineProperty(w,"__esModule",{value:!0}),w.create=ci,w.fromMat4=li,w.clone=fi,w.copy=oi,w.fromValues=vi,w.set=Mi,w.identity=pi,w.transpose=yi,w.invert=xi,w.adjoint=di,w.determinant=mi,w.multiply=pe,w.translate=gi,w.rotate=ui,w.scale=Ti,w.fromTranslation=Ei,w.fromRotation=_i,w.fromScaling=Ri,w.fromMat2d=Oi,w.fromQuat=Ai,w.normalFromMat4=Pi,w.projection=Li,w.str=wi,w.frob=$i,w.add=Si,w.subtract=ye,w.multiplyScalar=zi,w.multiplyScalarAndAdd=Ci,w.exactEquals=Fi,w.equals=Ni,w.sub=w.mul=void 0;var B=hi(W);function Me(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Me=function(i){return i?t:e})(r)}function hi(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||yr(r)!=="object"&&typeof r!="function")return{default:r};var t=Me(e);if(t&&t.has(r))return t.get(r);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=i?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=r[a]}return n.default=r,t&&t.set(r,n),n}function ci(){var r=new B.ARRAY_TYPE(9);return B.ARRAY_TYPE!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function li(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[4],r[4]=e[5],r[5]=e[6],r[6]=e[8],r[7]=e[9],r[8]=e[10],r}function fi(r){var e=new B.ARRAY_TYPE(9);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e}function oi(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function vi(r,e,t,n,i,a,s,h,c){var l=new B.ARRAY_TYPE(9);return l[0]=r,l[1]=e,l[2]=t,l[3]=n,l[4]=i,l[5]=a,l[6]=s,l[7]=h,l[8]=c,l}function Mi(r,e,t,n,i,a,s,h,c,l){return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r[4]=a,r[5]=s,r[6]=h,r[7]=c,r[8]=l,r}function pi(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function yi(r,e){if(r===e){var t=e[1],n=e[2],i=e[5];r[1]=e[3],r[2]=e[6],r[3]=t,r[5]=e[7],r[6]=n,r[7]=i}else r[0]=e[0],r[1]=e[3],r[2]=e[6],r[3]=e[1],r[4]=e[4],r[5]=e[7],r[6]=e[2],r[7]=e[5],r[8]=e[8];return r}function xi(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],h=e[5],c=e[6],l=e[7],f=e[8],v=f*s-h*l,o=-f*a+h*c,M=l*a-s*c,p=t*v+n*o+i*M;return p?(p=1/p,r[0]=v*p,r[1]=(-f*n+i*l)*p,r[2]=(h*n-i*s)*p,r[3]=o*p,r[4]=(f*t-i*c)*p,r[5]=(-h*t+i*a)*p,r[6]=M*p,r[7]=(-l*t+n*c)*p,r[8]=(s*t-n*a)*p,r):null}function di(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],h=e[5],c=e[6],l=e[7],f=e[8];return r[0]=s*f-h*l,r[1]=i*l-n*f,r[2]=n*h-i*s,r[3]=h*c-a*f,r[4]=t*f-i*c,r[5]=i*a-t*h,r[6]=a*l-s*c,r[7]=n*c-t*l,r[8]=t*s-n*a,r}function mi(r){var e=r[0],t=r[1],n=r[2],i=r[3],a=r[4],s=r[5],h=r[6],c=r[7],l=r[8];return e*(l*a-s*c)+t*(-l*i+s*h)+n*(c*i-a*h)}function pe(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],h=e[4],c=e[5],l=e[6],f=e[7],v=e[8],o=t[0],M=t[1],p=t[2],x=t[3],y=t[4],m=t[5],R=t[6],d=t[7],g=t[8];return r[0]=o*n+M*s+p*l,r[1]=o*i+M*h+p*f,r[2]=o*a+M*c+p*v,r[3]=x*n+y*s+m*l,r[4]=x*i+y*h+m*f,r[5]=x*a+y*c+m*v,r[6]=R*n+d*s+g*l,r[7]=R*i+d*h+g*f,r[8]=R*a+d*c+g*v,r}function gi(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],h=e[4],c=e[5],l=e[6],f=e[7],v=e[8],o=t[0],M=t[1];return r[0]=n,r[1]=i,r[2]=a,r[3]=s,r[4]=h,r[5]=c,r[6]=o*n+M*s+l,r[7]=o*i+M*h+f,r[8]=o*a+M*c+v,r}function ui(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],h=e[4],c=e[5],l=e[6],f=e[7],v=e[8],o=Math.sin(t),M=Math.cos(t);return r[0]=M*n+o*s,r[1]=M*i+o*h,r[2]=M*a+o*c,r[3]=M*s-o*n,r[4]=M*h-o*i,r[5]=M*c-o*a,r[6]=l,r[7]=f,r[8]=v,r}function Ti(r,e,t){var n=t[0],i=t[1];return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=i*e[3],r[4]=i*e[4],r[5]=i*e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function Ei(r,e){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=e[0],r[7]=e[1],r[8]=1,r}function _i(r,e){var t=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=t,r[2]=0,r[3]=-t,r[4]=n,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Ri(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=e[1],r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Oi(r,e){return r[0]=e[0],r[1]=e[1],r[2]=0,r[3]=e[2],r[4]=e[3],r[5]=0,r[6]=e[4],r[7]=e[5],r[8]=1,r}function Ai(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t+t,h=n+n,c=i+i,l=t*s,f=n*s,v=n*h,o=i*s,M=i*h,p=i*c,x=a*s,y=a*h,m=a*c;return r[0]=1-v-p,r[3]=f-m,r[6]=o+y,r[1]=f+m,r[4]=1-l-p,r[7]=M-x,r[2]=o-y,r[5]=M+x,r[8]=1-l-v,r}function Pi(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],h=e[5],c=e[6],l=e[7],f=e[8],v=e[9],o=e[10],M=e[11],p=e[12],x=e[13],y=e[14],m=e[15],R=t*h-n*s,d=t*c-i*s,g=t*l-a*s,P=n*c-i*h,A=n*l-a*h,N=i*l-a*c,z=f*x-v*p,C=f*y-o*p,S=f*m-M*p,Y=v*y-o*x,F=v*m-M*x,k=o*m-M*y,L=R*k-d*F+g*Y+P*S-A*C+N*z;return L?(L=1/L,r[0]=(h*k-c*F+l*Y)*L,r[1]=(c*S-s*k-l*C)*L,r[2]=(s*F-h*S+l*z)*L,r[3]=(i*F-n*k-a*Y)*L,r[4]=(t*k-i*S+a*C)*L,r[5]=(n*S-t*F-a*z)*L,r[6]=(x*N-y*A+m*P)*L,r[7]=(y*g-p*N-m*d)*L,r[8]=(p*A-x*g+m*R)*L,r):null}function Li(r,e,t){return r[0]=2/e,r[1]=0,r[2]=0,r[3]=0,r[4]=-2/t,r[5]=0,r[6]=-1,r[7]=1,r[8]=1,r}function wi(r){return"mat3("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+")"}function $i(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])}function Si(r,e,t){return 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}function ye(r,e,t){return 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}function zi(r,e,t){return 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}function Ci(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r[3]=e[3]+t[3]*n,r[4]=e[4]+t[4]*n,r[5]=e[5]+t[5]*n,r[6]=e[6]+t[6]*n,r[7]=e[7]+t[7]*n,r[8]=e[8]+t[8]*n,r}function Fi(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]&&r[4]===e[4]&&r[5]===e[5]&&r[6]===e[6]&&r[7]===e[7]&&r[8]===e[8]}function Ni(r,e){var t=r[0],n=r[1],i=r[2],a=r[3],s=r[4],h=r[5],c=r[6],l=r[7],f=r[8],v=e[0],o=e[1],M=e[2],p=e[3],x=e[4],y=e[5],m=e[6],R=e[7],d=e[8];return Math.abs(t-v)<=B.EPSILON*Math.max(1,Math.abs(t),Math.abs(v))&&Math.abs(n-o)<=B.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-M)<=B.EPSILON*Math.max(1,Math.abs(i),Math.abs(M))&&Math.abs(a-p)<=B.EPSILON*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(s-x)<=B.EPSILON*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(h-y)<=B.EPSILON*Math.max(1,Math.abs(h),Math.abs(y))&&Math.abs(c-m)<=B.EPSILON*Math.max(1,Math.abs(c),Math.abs(m))&&Math.abs(l-R)<=B.EPSILON*Math.max(1,Math.abs(l),Math.abs(R))&&Math.abs(f-d)<=B.EPSILON*Math.max(1,Math.abs(f),Math.abs(d))}var bi=pe;w.mul=bi;var qi=ye;w.sub=qi;var xe;(function(r){r[r.COL0ROW0=0]="COL0ROW0",r[r.COL0ROW1=1]="COL0ROW1",r[r.COL0ROW2=2]="COL0ROW2",r[r.COL1ROW0=3]="COL1ROW0",r[r.COL1ROW1=4]="COL1ROW1",r[r.COL1ROW2=5]="COL1ROW2",r[r.COL2ROW0=6]="COL2ROW0",r[r.COL2ROW1=7]="COL2ROW1",r[r.COL2ROW2=8]="COL2ROW2"})(xe||(xe={})),Object.freeze([1,0,0,0,1,0,0,0,1]);var E={};function xr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?xr=function(t){return typeof t}:xr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xr(r)}Object.defineProperty(E,"__esModule",{value:!0}),E.create=Qi,E.clone=Ji,E.copy=ji,E.fromValues=r1,E.set=e1,E.identity=ge;var Yi=E.transpose=t1,ki=E.invert=n1;E.adjoint=i1;var Wi=E.determinant=a1,de=E.multiply=ue,Bi=E.translate=s1,Zi=E.scale=h1,Di=E.rotate=c1,Vi=E.rotateX=l1,Ui=E.rotateY=f1,Xi=E.rotateZ=o1;E.fromTranslation=v1,E.fromScaling=M1,E.fromRotation=p1,E.fromXRotation=y1,E.fromYRotation=x1,E.fromZRotation=d1,E.fromRotationTranslation=Te,E.fromQuat2=m1,E.getTranslation=g1,E.getScaling=Ee,E.getRotation=u1,E.fromRotationTranslationScale=T1,E.fromRotationTranslationScaleOrigin=E1;var Ii=E.fromQuat=_1,Ki=E.frustum=R1;E.perspectiveNO=_e,E.perspectiveZO=A1,E.perspectiveFromFieldOfView=P1,E.orthoNO=Oe,E.orthoZO=w1;var Gi=E.lookAt=$1;E.targetTo=S1,E.str=z1,E.frob=C1,E.add=F1,E.subtract=Pe,E.multiplyScalar=N1,E.multiplyScalarAndAdd=b1,E.exactEquals=q1,E.equals=Y1,E.sub=E.mul=Ae=E.ortho=Re=E.perspective=void 0;var $=Hi(W);function me(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(me=function(i){return i?t:e})(r)}function Hi(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||xr(r)!=="object"&&typeof r!="function")return{default:r};var t=me(e);if(t&&t.has(r))return t.get(r);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=i?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=r[a]}return n.default=r,t&&t.set(r,n),n}function Qi(){var r=new $.ARRAY_TYPE(16);return $.ARRAY_TYPE!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=0,r[12]=0,r[13]=0,r[14]=0),r[0]=1,r[5]=1,r[10]=1,r[15]=1,r}function Ji(r){var e=new $.ARRAY_TYPE(16);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function ji(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function r1(r,e,t,n,i,a,s,h,c,l,f,v,o,M,p,x){var y=new $.ARRAY_TYPE(16);return y[0]=r,y[1]=e,y[2]=t,y[3]=n,y[4]=i,y[5]=a,y[6]=s,y[7]=h,y[8]=c,y[9]=l,y[10]=f,y[11]=v,y[12]=o,y[13]=M,y[14]=p,y[15]=x,y}function e1(r,e,t,n,i,a,s,h,c,l,f,v,o,M,p,x,y){return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r[4]=a,r[5]=s,r[6]=h,r[7]=c,r[8]=l,r[9]=f,r[10]=v,r[11]=o,r[12]=M,r[13]=p,r[14]=x,r[15]=y,r}function ge(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function t1(r,e){if(r===e){var t=e[1],n=e[2],i=e[3],a=e[6],s=e[7],h=e[11];r[1]=e[4],r[2]=e[8],r[3]=e[12],r[4]=t,r[6]=e[9],r[7]=e[13],r[8]=n,r[9]=a,r[11]=e[14],r[12]=i,r[13]=s,r[14]=h}else r[0]=e[0],r[1]=e[4],r[2]=e[8],r[3]=e[12],r[4]=e[1],r[5]=e[5],r[6]=e[9],r[7]=e[13],r[8]=e[2],r[9]=e[6],r[10]=e[10],r[11]=e[14],r[12]=e[3],r[13]=e[7],r[14]=e[11],r[15]=e[15];return r}function n1(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],h=e[5],c=e[6],l=e[7],f=e[8],v=e[9],o=e[10],M=e[11],p=e[12],x=e[13],y=e[14],m=e[15],R=t*h-n*s,d=t*c-i*s,g=t*l-a*s,P=n*c-i*h,A=n*l-a*h,N=i*l-a*c,z=f*x-v*p,C=f*y-o*p,S=f*m-M*p,Y=v*y-o*x,F=v*m-M*x,k=o*m-M*y,L=R*k-d*F+g*Y+P*S-A*C+N*z;return L?(L=1/L,r[0]=(h*k-c*F+l*Y)*L,r[1]=(i*F-n*k-a*Y)*L,r[2]=(x*N-y*A+m*P)*L,r[3]=(o*A-v*N-M*P)*L,r[4]=(c*S-s*k-l*C)*L,r[5]=(t*k-i*S+a*C)*L,r[6]=(y*g-p*N-m*d)*L,r[7]=(f*N-o*g+M*d)*L,r[8]=(s*F-h*S+l*z)*L,r[9]=(n*S-t*F-a*z)*L,r[10]=(p*A-x*g+m*R)*L,r[11]=(v*g-f*A-M*R)*L,r[12]=(h*C-s*Y-c*z)*L,r[13]=(t*Y-n*C+i*z)*L,r[14]=(x*d-p*P-y*R)*L,r[15]=(f*P-v*d+o*R)*L,r):null}function i1(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],h=e[5],c=e[6],l=e[7],f=e[8],v=e[9],o=e[10],M=e[11],p=e[12],x=e[13],y=e[14],m=e[15];return r[0]=h*(o*m-M*y)-v*(c*m-l*y)+x*(c*M-l*o),r[1]=-(n*(o*m-M*y)-v*(i*m-a*y)+x*(i*M-a*o)),r[2]=n*(c*m-l*y)-h*(i*m-a*y)+x*(i*l-a*c),r[3]=-(n*(c*M-l*o)-h*(i*M-a*o)+v*(i*l-a*c)),r[4]=-(s*(o*m-M*y)-f*(c*m-l*y)+p*(c*M-l*o)),r[5]=t*(o*m-M*y)-f*(i*m-a*y)+p*(i*M-a*o),r[6]=-(t*(c*m-l*y)-s*(i*m-a*y)+p*(i*l-a*c)),r[7]=t*(c*M-l*o)-s*(i*M-a*o)+f*(i*l-a*c),r[8]=s*(v*m-M*x)-f*(h*m-l*x)+p*(h*M-l*v),r[9]=-(t*(v*m-M*x)-f*(n*m-a*x)+p*(n*M-a*v)),r[10]=t*(h*m-l*x)-s*(n*m-a*x)+p*(n*l-a*h),r[11]=-(t*(h*M-l*v)-s*(n*M-a*v)+f*(n*l-a*h)),r[12]=-(s*(v*y-o*x)-f*(h*y-c*x)+p*(h*o-c*v)),r[13]=t*(v*y-o*x)-f*(n*y-i*x)+p*(n*o-i*v),r[14]=-(t*(h*y-c*x)-s*(n*y-i*x)+p*(n*c-i*h)),r[15]=t*(h*o-c*v)-s*(n*o-i*v)+f*(n*c-i*h),r}function a1(r){var e=r[0],t=r[1],n=r[2],i=r[3],a=r[4],s=r[5],h=r[6],c=r[7],l=r[8],f=r[9],v=r[10],o=r[11],M=r[12],p=r[13],x=r[14],y=r[15],m=e*s-t*a,R=e*h-n*a,d=e*c-i*a,g=t*h-n*s,P=t*c-i*s,A=n*c-i*h,N=l*p-f*M,z=l*x-v*M,C=l*y-o*M,S=f*x-v*p,Y=f*y-o*p,F=v*y-o*x;return m*F-R*Y+d*S+g*C-P*z+A*N}function ue(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],h=e[4],c=e[5],l=e[6],f=e[7],v=e[8],o=e[9],M=e[10],p=e[11],x=e[12],y=e[13],m=e[14],R=e[15],d=t[0],g=t[1],P=t[2],A=t[3];return r[0]=d*n+g*h+P*v+A*x,r[1]=d*i+g*c+P*o+A*y,r[2]=d*a+g*l+P*M+A*m,r[3]=d*s+g*f+P*p+A*R,d=t[4],g=t[5],P=t[6],A=t[7],r[4]=d*n+g*h+P*v+A*x,r[5]=d*i+g*c+P*o+A*y,r[6]=d*a+g*l+P*M+A*m,r[7]=d*s+g*f+P*p+A*R,d=t[8],g=t[9],P=t[10],A=t[11],r[8]=d*n+g*h+P*v+A*x,r[9]=d*i+g*c+P*o+A*y,r[10]=d*a+g*l+P*M+A*m,r[11]=d*s+g*f+P*p+A*R,d=t[12],g=t[13],P=t[14],A=t[15],r[12]=d*n+g*h+P*v+A*x,r[13]=d*i+g*c+P*o+A*y,r[14]=d*a+g*l+P*M+A*m,r[15]=d*s+g*f+P*p+A*R,r}function s1(r,e,t){var n=t[0],i=t[1],a=t[2],s,h,c,l,f,v,o,M,p,x,y,m;return e===r?(r[12]=e[0]*n+e[4]*i+e[8]*a+e[12],r[13]=e[1]*n+e[5]*i+e[9]*a+e[13],r[14]=e[2]*n+e[6]*i+e[10]*a+e[14],r[15]=e[3]*n+e[7]*i+e[11]*a+e[15]):(s=e[0],h=e[1],c=e[2],l=e[3],f=e[4],v=e[5],o=e[6],M=e[7],p=e[8],x=e[9],y=e[10],m=e[11],r[0]=s,r[1]=h,r[2]=c,r[3]=l,r[4]=f,r[5]=v,r[6]=o,r[7]=M,r[8]=p,r[9]=x,r[10]=y,r[11]=m,r[12]=s*n+f*i+p*a+e[12],r[13]=h*n+v*i+x*a+e[13],r[14]=c*n+o*i+y*a+e[14],r[15]=l*n+M*i+m*a+e[15]),r}function h1(r,e,t){var n=t[0],i=t[1],a=t[2];return r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r[4]=e[4]*i,r[5]=e[5]*i,r[6]=e[6]*i,r[7]=e[7]*i,r[8]=e[8]*a,r[9]=e[9]*a,r[10]=e[10]*a,r[11]=e[11]*a,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function c1(r,e,t,n){var i=n[0],a=n[1],s=n[2],h=Math.hypot(i,a,s),c,l,f,v,o,M,p,x,y,m,R,d,g,P,A,N,z,C,S,Y,F,k,L,X;return h<$.EPSILON?null:(h=1/h,i*=h,a*=h,s*=h,c=Math.sin(t),l=Math.cos(t),f=1-l,v=e[0],o=e[1],M=e[2],p=e[3],x=e[4],y=e[5],m=e[6],R=e[7],d=e[8],g=e[9],P=e[10],A=e[11],N=i*i*f+l,z=a*i*f+s*c,C=s*i*f-a*c,S=i*a*f-s*c,Y=a*a*f+l,F=s*a*f+i*c,k=i*s*f+a*c,L=a*s*f-i*c,X=s*s*f+l,r[0]=v*N+x*z+d*C,r[1]=o*N+y*z+g*C,r[2]=M*N+m*z+P*C,r[3]=p*N+R*z+A*C,r[4]=v*S+x*Y+d*F,r[5]=o*S+y*Y+g*F,r[6]=M*S+m*Y+P*F,r[7]=p*S+R*Y+A*F,r[8]=v*k+x*L+d*X,r[9]=o*k+y*L+g*X,r[10]=M*k+m*L+P*X,r[11]=p*k+R*L+A*X,e!==r&&(r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r)}function l1(r,e,t){var n=Math.sin(t),i=Math.cos(t),a=e[4],s=e[5],h=e[6],c=e[7],l=e[8],f=e[9],v=e[10],o=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=a*i+l*n,r[5]=s*i+f*n,r[6]=h*i+v*n,r[7]=c*i+o*n,r[8]=l*i-a*n,r[9]=f*i-s*n,r[10]=v*i-h*n,r[11]=o*i-c*n,r}function f1(r,e,t){var n=Math.sin(t),i=Math.cos(t),a=e[0],s=e[1],h=e[2],c=e[3],l=e[8],f=e[9],v=e[10],o=e[11];return e!==r&&(r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=a*i-l*n,r[1]=s*i-f*n,r[2]=h*i-v*n,r[3]=c*i-o*n,r[8]=a*n+l*i,r[9]=s*n+f*i,r[10]=h*n+v*i,r[11]=c*n+o*i,r}function o1(r,e,t){var n=Math.sin(t),i=Math.cos(t),a=e[0],s=e[1],h=e[2],c=e[3],l=e[4],f=e[5],v=e[6],o=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=a*i+l*n,r[1]=s*i+f*n,r[2]=h*i+v*n,r[3]=c*i+o*n,r[4]=l*i-a*n,r[5]=f*i-s*n,r[6]=v*i-h*n,r[7]=o*i-c*n,r}function v1(r,e){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=e[0],r[13]=e[1],r[14]=e[2],r[15]=1,r}function M1(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=e[1],r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=e[2],r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function p1(r,e,t){var n=t[0],i=t[1],a=t[2],s=Math.hypot(n,i,a),h,c,l;return s<$.EPSILON?null:(s=1/s,n*=s,i*=s,a*=s,h=Math.sin(e),c=Math.cos(e),l=1-c,r[0]=n*n*l+c,r[1]=i*n*l+a*h,r[2]=a*n*l-i*h,r[3]=0,r[4]=n*i*l-a*h,r[5]=i*i*l+c,r[6]=a*i*l+n*h,r[7]=0,r[8]=n*a*l+i*h,r[9]=i*a*l-n*h,r[10]=a*a*l+c,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r)}function y1(r,e){var t=Math.sin(e),n=Math.cos(e);return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=n,r[6]=t,r[7]=0,r[8]=0,r[9]=-t,r[10]=n,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function x1(r,e){var t=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=0,r[2]=-t,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=t,r[9]=0,r[10]=n,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function d1(r,e){var t=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=t,r[2]=0,r[3]=0,r[4]=-t,r[5]=n,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function Te(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],h=n+n,c=i+i,l=a+a,f=n*h,v=n*c,o=n*l,M=i*c,p=i*l,x=a*l,y=s*h,m=s*c,R=s*l;return r[0]=1-(M+x),r[1]=v+R,r[2]=o-m,r[3]=0,r[4]=v-R,r[5]=1-(f+x),r[6]=p+y,r[7]=0,r[8]=o+m,r[9]=p-y,r[10]=1-(f+M),r[11]=0,r[12]=t[0],r[13]=t[1],r[14]=t[2],r[15]=1,r}function m1(r,e){var t=new $.ARRAY_TYPE(3),n=-e[0],i=-e[1],a=-e[2],s=e[3],h=e[4],c=e[5],l=e[6],f=e[7],v=n*n+i*i+a*a+s*s;return v>0?(t[0]=(h*s+f*n+c*a-l*i)*2/v,t[1]=(c*s+f*i+l*n-h*a)*2/v,t[2]=(l*s+f*a+h*i-c*n)*2/v):(t[0]=(h*s+f*n+c*a-l*i)*2,t[1]=(c*s+f*i+l*n-h*a)*2,t[2]=(l*s+f*a+h*i-c*n)*2),Te(r,e,t),r}function g1(r,e){return r[0]=e[12],r[1]=e[13],r[2]=e[14],r}function Ee(r,e){var t=e[0],n=e[1],i=e[2],a=e[4],s=e[5],h=e[6],c=e[8],l=e[9],f=e[10];return r[0]=Math.hypot(t,n,i),r[1]=Math.hypot(a,s,h),r[2]=Math.hypot(c,l,f),r}function u1(r,e){var t=new $.ARRAY_TYPE(3);Ee(t,e);var n=1/t[0],i=1/t[1],a=1/t[2],s=e[0]*n,h=e[1]*i,c=e[2]*a,l=e[4]*n,f=e[5]*i,v=e[6]*a,o=e[8]*n,M=e[9]*i,p=e[10]*a,x=s+f+p,y=0;return x>0?(y=Math.sqrt(x+1)*2,r[3]=.25*y,r[0]=(v-M)/y,r[1]=(o-c)/y,r[2]=(h-l)/y):s>f&&s>p?(y=Math.sqrt(1+s-f-p)*2,r[3]=(v-M)/y,r[0]=.25*y,r[1]=(h+l)/y,r[2]=(o+c)/y):f>p?(y=Math.sqrt(1+f-s-p)*2,r[3]=(o-c)/y,r[0]=(h+l)/y,r[1]=.25*y,r[2]=(v+M)/y):(y=Math.sqrt(1+p-s-f)*2,r[3]=(h-l)/y,r[0]=(o+c)/y,r[1]=(v+M)/y,r[2]=.25*y),r}function T1(r,e,t,n){var i=e[0],a=e[1],s=e[2],h=e[3],c=i+i,l=a+a,f=s+s,v=i*c,o=i*l,M=i*f,p=a*l,x=a*f,y=s*f,m=h*c,R=h*l,d=h*f,g=n[0],P=n[1],A=n[2];return r[0]=(1-(p+y))*g,r[1]=(o+d)*g,r[2]=(M-R)*g,r[3]=0,r[4]=(o-d)*P,r[5]=(1-(v+y))*P,r[6]=(x+m)*P,r[7]=0,r[8]=(M+R)*A,r[9]=(x-m)*A,r[10]=(1-(v+p))*A,r[11]=0,r[12]=t[0],r[13]=t[1],r[14]=t[2],r[15]=1,r}function E1(r,e,t,n,i){var a=e[0],s=e[1],h=e[2],c=e[3],l=a+a,f=s+s,v=h+h,o=a*l,M=a*f,p=a*v,x=s*f,y=s*v,m=h*v,R=c*l,d=c*f,g=c*v,P=n[0],A=n[1],N=n[2],z=i[0],C=i[1],S=i[2],Y=(1-(x+m))*P,F=(M+g)*P,k=(p-d)*P,L=(M-g)*A,X=(1-(o+m))*A,hr=(y+R)*A,cr=(p+d)*N,nt=(y-R)*N,it=(1-(o+x))*N;return r[0]=Y,r[1]=F,r[2]=k,r[3]=0,r[4]=L,r[5]=X,r[6]=hr,r[7]=0,r[8]=cr,r[9]=nt,r[10]=it,r[11]=0,r[12]=t[0]+z-(Y*z+L*C+cr*S),r[13]=t[1]+C-(F*z+X*C+nt*S),r[14]=t[2]+S-(k*z+hr*C+it*S),r[15]=1,r}function _1(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t+t,h=n+n,c=i+i,l=t*s,f=n*s,v=n*h,o=i*s,M=i*h,p=i*c,x=a*s,y=a*h,m=a*c;return r[0]=1-v-p,r[1]=f+m,r[2]=o-y,r[3]=0,r[4]=f-m,r[5]=1-l-p,r[6]=M+x,r[7]=0,r[8]=o+y,r[9]=M-x,r[10]=1-l-v,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function R1(r,e,t,n,i,a,s){var h=1/(t-e),c=1/(i-n),l=1/(a-s);return r[0]=a*2*h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a*2*c,r[6]=0,r[7]=0,r[8]=(t+e)*h,r[9]=(i+n)*c,r[10]=(s+a)*l,r[11]=-1,r[12]=0,r[13]=0,r[14]=s*a*2*l,r[15]=0,r}function _e(r,e,t,n,i){var a=1/Math.tan(e/2),s;return r[0]=a/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,i!=null&&i!==1/0?(s=1/(n-i),r[10]=(i+n)*s,r[14]=2*i*n*s):(r[10]=-1,r[14]=-2*n),r}var O1=_e,Re=E.perspective=O1;function A1(r,e,t,n,i){var a=1/Math.tan(e/2),s;return r[0]=a/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,i!=null&&i!==1/0?(s=1/(n-i),r[10]=i*s,r[14]=i*n*s):(r[10]=-1,r[14]=-n),r}function P1(r,e,t,n){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),h=Math.tan(e.rightDegrees*Math.PI/180),c=2/(s+h),l=2/(i+a);return r[0]=c,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=l,r[6]=0,r[7]=0,r[8]=-((s-h)*c*.5),r[9]=(i-a)*l*.5,r[10]=n/(t-n),r[11]=-1,r[12]=0,r[13]=0,r[14]=n*t/(t-n),r[15]=0,r}function Oe(r,e,t,n,i,a,s){var h=1/(e-t),c=1/(n-i),l=1/(a-s);return r[0]=-2*h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*c,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*l,r[11]=0,r[12]=(e+t)*h,r[13]=(i+n)*c,r[14]=(s+a)*l,r[15]=1,r}var L1=Oe,Ae=E.ortho=L1;function w1(r,e,t,n,i,a,s){var h=1/(e-t),c=1/(n-i),l=1/(a-s);return r[0]=-2*h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*c,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=l,r[11]=0,r[12]=(e+t)*h,r[13]=(i+n)*c,r[14]=a*l,r[15]=1,r}function $1(r,e,t,n){var i,a,s,h,c,l,f,v,o,M,p=e[0],x=e[1],y=e[2],m=n[0],R=n[1],d=n[2],g=t[0],P=t[1],A=t[2];return Math.abs(p-g)<$.EPSILON&&Math.abs(x-P)<$.EPSILON&&Math.abs(y-A)<$.EPSILON?ge(r):(f=p-g,v=x-P,o=y-A,M=1/Math.hypot(f,v,o),f*=M,v*=M,o*=M,i=R*o-d*v,a=d*f-m*o,s=m*v-R*f,M=Math.hypot(i,a,s),M?(M=1/M,i*=M,a*=M,s*=M):(i=0,a=0,s=0),h=v*s-o*a,c=o*i-f*s,l=f*a-v*i,M=Math.hypot(h,c,l),M?(M=1/M,h*=M,c*=M,l*=M):(h=0,c=0,l=0),r[0]=i,r[1]=h,r[2]=f,r[3]=0,r[4]=a,r[5]=c,r[6]=v,r[7]=0,r[8]=s,r[9]=l,r[10]=o,r[11]=0,r[12]=-(i*p+a*x+s*y),r[13]=-(h*p+c*x+l*y),r[14]=-(f*p+v*x+o*y),r[15]=1,r)}function S1(r,e,t,n){var i=e[0],a=e[1],s=e[2],h=n[0],c=n[1],l=n[2],f=i-t[0],v=a-t[1],o=s-t[2],M=f*f+v*v+o*o;M>0&&(M=1/Math.sqrt(M),f*=M,v*=M,o*=M);var p=c*o-l*v,x=l*f-h*o,y=h*v-c*f;return M=p*p+x*x+y*y,M>0&&(M=1/Math.sqrt(M),p*=M,x*=M,y*=M),r[0]=p,r[1]=x,r[2]=y,r[3]=0,r[4]=v*y-o*x,r[5]=o*p-f*y,r[6]=f*x-v*p,r[7]=0,r[8]=f,r[9]=v,r[10]=o,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,r}function z1(r){return"mat4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+", "+r[9]+", "+r[10]+", "+r[11]+", "+r[12]+", "+r[13]+", "+r[14]+", "+r[15]+")"}function C1(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15])}function F1(r,e,t){return 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}function Pe(r,e,t){return 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}function N1(r,e,t){return 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}function b1(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r[3]=e[3]+t[3]*n,r[4]=e[4]+t[4]*n,r[5]=e[5]+t[5]*n,r[6]=e[6]+t[6]*n,r[7]=e[7]+t[7]*n,r[8]=e[8]+t[8]*n,r[9]=e[9]+t[9]*n,r[10]=e[10]+t[10]*n,r[11]=e[11]+t[11]*n,r[12]=e[12]+t[12]*n,r[13]=e[13]+t[13]*n,r[14]=e[14]+t[14]*n,r[15]=e[15]+t[15]*n,r}function q1(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]&&r[4]===e[4]&&r[5]===e[5]&&r[6]===e[6]&&r[7]===e[7]&&r[8]===e[8]&&r[9]===e[9]&&r[10]===e[10]&&r[11]===e[11]&&r[12]===e[12]&&r[13]===e[13]&&r[14]===e[14]&&r[15]===e[15]}function Y1(r,e){var t=r[0],n=r[1],i=r[2],a=r[3],s=r[4],h=r[5],c=r[6],l=r[7],f=r[8],v=r[9],o=r[10],M=r[11],p=r[12],x=r[13],y=r[14],m=r[15],R=e[0],d=e[1],g=e[2],P=e[3],A=e[4],N=e[5],z=e[6],C=e[7],S=e[8],Y=e[9],F=e[10],k=e[11],L=e[12],X=e[13],hr=e[14],cr=e[15];return Math.abs(t-R)<=$.EPSILON*Math.max(1,Math.abs(t),Math.abs(R))&&Math.abs(n-d)<=$.EPSILON*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(i-g)<=$.EPSILON*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(a-P)<=$.EPSILON*Math.max(1,Math.abs(a),Math.abs(P))&&Math.abs(s-A)<=$.EPSILON*Math.max(1,Math.abs(s),Math.abs(A))&&Math.abs(h-N)<=$.EPSILON*Math.max(1,Math.abs(h),Math.abs(N))&&Math.abs(c-z)<=$.EPSILON*Math.max(1,Math.abs(c),Math.abs(z))&&Math.abs(l-C)<=$.EPSILON*Math.max(1,Math.abs(l),Math.abs(C))&&Math.abs(f-S)<=$.EPSILON*Math.max(1,Math.abs(f),Math.abs(S))&&Math.abs(v-Y)<=$.EPSILON*Math.max(1,Math.abs(v),Math.abs(Y))&&Math.abs(o-F)<=$.EPSILON*Math.max(1,Math.abs(o),Math.abs(F))&&Math.abs(M-k)<=$.EPSILON*Math.max(1,Math.abs(M),Math.abs(k))&&Math.abs(p-L)<=$.EPSILON*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(x-X)<=$.EPSILON*Math.max(1,Math.abs(x),Math.abs(X))&&Math.abs(y-hr)<=$.EPSILON*Math.max(1,Math.abs(y),Math.abs(hr))&&Math.abs(m-cr)<=$.EPSILON*Math.max(1,Math.abs(m),Math.abs(cr))}var k1=ue;E.mul=k1;var W1=Pe;E.sub=W1;var O={};function dr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?dr=function(t){return typeof t}:dr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dr(r)}Object.defineProperty(O,"__esModule",{value:!0}),O.create=we,O.clone=D1,O.fromValues=V1,O.copy=U1,O.set=X1,O.add=I1,O.subtract=$e,O.multiply=Se,O.divide=ze,O.ceil=K1,O.floor=G1,O.min=H1,O.max=Q1,O.round=J1,O.scale=j1,O.scaleAndAdd=ra,O.distance=Ce,O.squaredDistance=Fe,O.length=Ne,O.squaredLength=be,O.negate=ea,O.inverse=ta,O.normalize=na,O.dot=ia,O.cross=sa,O.lerp=ha,O.random=ca;var B1=O.transformMat4=la;O.transformQuat=fa,O.zero=oa,O.str=va,O.exactEquals=Ma,O.equals=pa,O.forEach=O.sqrLen=O.len=O.sqrDist=O.dist=O.div=O.mul=O.sub=void 0;var D=Z1(W);function Le(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Le=function(i){return i?t:e})(r)}function Z1(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||dr(r)!=="object"&&typeof r!="function")return{default:r};var t=Le(e);if(t&&t.has(r))return t.get(r);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=i?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=r[a]}return n.default=r,t&&t.set(r,n),n}function we(){var r=new D.ARRAY_TYPE(4);return D.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),r}function D1(r){var e=new D.ARRAY_TYPE(4);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e}function V1(r,e,t,n){var i=new D.ARRAY_TYPE(4);return i[0]=r,i[1]=e,i[2]=t,i[3]=n,i}function U1(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r}function X1(r,e,t,n,i){return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r}function I1(r,e,t){return 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}function $e(r,e,t){return 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}function Se(r,e,t){return 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}function ze(r,e,t){return 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}function K1(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r[2]=Math.ceil(e[2]),r[3]=Math.ceil(e[3]),r}function G1(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r[2]=Math.floor(e[2]),r[3]=Math.floor(e[3]),r}function H1(r,e,t){return r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r[2]=Math.min(e[2],t[2]),r[3]=Math.min(e[3],t[3]),r}function Q1(r,e,t){return r[0]=Math.max(e[0],t[0]),r[1]=Math.max(e[1],t[1]),r[2]=Math.max(e[2],t[2]),r[3]=Math.max(e[3],t[3]),r}function J1(r,e){return r[0]=Math.round(e[0]),r[1]=Math.round(e[1]),r[2]=Math.round(e[2]),r[3]=Math.round(e[3]),r}function j1(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r}function ra(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r[3]=e[3]+t[3]*n,r}function Ce(r,e){var t=e[0]-r[0],n=e[1]-r[1],i=e[2]-r[2],a=e[3]-r[3];return Math.hypot(t,n,i,a)}function Fe(r,e){var t=e[0]-r[0],n=e[1]-r[1],i=e[2]-r[2],a=e[3]-r[3];return t*t+n*n+i*i+a*a}function Ne(r){var e=r[0],t=r[1],n=r[2],i=r[3];return Math.hypot(e,t,n,i)}function be(r){var e=r[0],t=r[1],n=r[2],i=r[3];return e*e+t*t+n*n+i*i}function ea(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=-e[3],r}function ta(r,e){return r[0]=1/e[0],r[1]=1/e[1],r[2]=1/e[2],r[3]=1/e[3],r}function na(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t*t+n*n+i*i+a*a;return s>0&&(s=1/Math.sqrt(s)),r[0]=t*s,r[1]=n*s,r[2]=i*s,r[3]=a*s,r}function ia(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3]}function sa(r,e,t,n){var i=t[0]*n[1]-t[1]*n[0],a=t[0]*n[2]-t[2]*n[0],s=t[0]*n[3]-t[3]*n[0],h=t[1]*n[2]-t[2]*n[1],c=t[1]*n[3]-t[3]*n[1],l=t[2]*n[3]-t[3]*n[2],f=e[0],v=e[1],o=e[2],M=e[3];return r[0]=v*l-o*c+M*h,r[1]=-(f*l)+o*s-M*a,r[2]=f*c-v*s+M*i,r[3]=-(f*h)+v*a-o*i,r}function ha(r,e,t,n){var i=e[0],a=e[1],s=e[2],h=e[3];return r[0]=i+n*(t[0]-i),r[1]=a+n*(t[1]-a),r[2]=s+n*(t[2]-s),r[3]=h+n*(t[3]-h),r}function ca(r,e){e=e||1;var t,n,i,a,s,h;do t=D.RANDOM()*2-1,n=D.RANDOM()*2-1,s=t*t+n*n;while(s>=1);do i=D.RANDOM()*2-1,a=D.RANDOM()*2-1,h=i*i+a*a;while(h>=1);var c=Math.sqrt((1-s)/h);return r[0]=e*t,r[1]=e*n,r[2]=e*i*c,r[3]=e*a*c,r}function la(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3];return r[0]=t[0]*n+t[4]*i+t[8]*a+t[12]*s,r[1]=t[1]*n+t[5]*i+t[9]*a+t[13]*s,r[2]=t[2]*n+t[6]*i+t[10]*a+t[14]*s,r[3]=t[3]*n+t[7]*i+t[11]*a+t[15]*s,r}function fa(r,e,t){var n=e[0],i=e[1],a=e[2],s=t[0],h=t[1],c=t[2],l=t[3],f=l*n+h*a-c*i,v=l*i+c*n-s*a,o=l*a+s*i-h*n,M=-s*n-h*i-c*a;return r[0]=f*l+M*-s+v*-c-o*-h,r[1]=v*l+M*-h+o*-s-f*-c,r[2]=o*l+M*-c+f*-h-v*-s,r[3]=e[3],r}function oa(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r}function va(r){return"vec4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}function Ma(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]}function pa(r,e){var t=r[0],n=r[1],i=r[2],a=r[3],s=e[0],h=e[1],c=e[2],l=e[3];return Math.abs(t-s)<=D.EPSILON*Math.max(1,Math.abs(t),Math.abs(s))&&Math.abs(n-h)<=D.EPSILON*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(i-c)<=D.EPSILON*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(a-l)<=D.EPSILON*Math.max(1,Math.abs(a),Math.abs(l))}var ya=$e;O.sub=ya;var xa=Se;O.mul=xa;var da=ze;O.div=da;var ma=Ce;O.dist=ma;var ga=Fe;O.sqrDist=ga;var ua=Ne;O.len=ua;var Ta=be;O.sqrLen=Ta;var Ea=function(){var r=we();return function(e,t,n,i,a,s){var h,c;for(t||(t=4),n||(n=0),i?c=Math.min(i*t+n,e.length):c=e.length,h=n;h<c;h+=t)r[0]=e[h],r[1]=e[h+1],r[2]=e[h+2],r[3]=e[h+3],a(r,r,s),e[h]=r[0],e[h+1]=r[1],e[h+2]=r[2],e[h+3]=r[3];return e}}();O.forEach=Ea;var Cr;(function(r){r[r.COL0ROW0=0]="COL0ROW0",r[r.COL0ROW1=1]="COL0ROW1",r[r.COL0ROW2=2]="COL0ROW2",r[r.COL0ROW3=3]="COL0ROW3",r[r.COL1ROW0=4]="COL1ROW0",r[r.COL1ROW1=5]="COL1ROW1",r[r.COL1ROW2=6]="COL1ROW2",r[r.COL1ROW3=7]="COL1ROW3",r[r.COL2ROW0=8]="COL2ROW0",r[r.COL2ROW1=9]="COL2ROW1",r[r.COL2ROW2=10]="COL2ROW2",r[r.COL2ROW3=11]="COL2ROW3",r[r.COL3ROW0=12]="COL3ROW0",r[r.COL3ROW1=13]="COL3ROW1",r[r.COL3ROW2=14]="COL3ROW2",r[r.COL3ROW3=15]="COL3ROW3"})(Cr||(Cr={}));const _a=45*Math.PI/180,Ra=1,Fr=.1,Nr=500,Oa=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);class ar extends si{static get IDENTITY(){return Pa()}static get ZERO(){return Aa()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Cr}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,t,n,i,a,s,h,c,l,f,v,o,M,p,x,y){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this[4]=a,this[5]=s,this[6]=h,this[7]=c,this[8]=l,this[9]=f,this[10]=v,this[11]=o,this[12]=M,this[13]=p,this[14]=x,this[15]=y,this.check()}setRowMajor(e,t,n,i,a,s,h,c,l,f,v,o,M,p,x,y){return this[0]=e,this[1]=a,this[2]=l,this[3]=M,this[4]=t,this[5]=s,this[6]=f,this[7]=p,this[8]=n,this[9]=h,this[10]=v,this[11]=x,this[12]=i,this[13]=c,this[14]=o,this[15]=y,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(Oa)}fromObject(e){return this.check()}fromQuaternion(e){return Ii(this,e),this.check()}frustum(e){const{left:t,right:n,bottom:i,top:a,near:s=Fr,far:h=Nr}=e;return h===1/0?La(this,t,n,i,a,s):Ki(this,t,n,i,a,s,h),this.check()}lookAt(e){const{eye:t,center:n=[0,0,0],up:i=[0,1,0]}=e;return Gi(this,t,n,i),this.check()}ortho(e){const{left:t,right:n,bottom:i,top:a,near:s=Fr,far:h=Nr}=e;return Ae(this,t,n,i,a,s,h),this.check()}orthographic(e){const{fovy:t=_a,aspect:n=Ra,focalDistance:i=1,near:a=Fr,far:s=Nr}=e;qe(t);const h=t/2,c=i*Math.tan(h),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:a,far:s})}perspective(e){const{fovy:t=45*Math.PI/180,aspect:n=1,near:i=.1,far:a=500}=e;return qe(t),Re(this,t,n,i,a),this.check()}determinant(){return Wi(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,t){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],t=t||[-0,-0,-0];const n=this.getScale(t),i=1/n[0],a=1/n[1],s=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*a,e[2]=this[2]*s,e[3]=0,e[4]=this[4]*i,e[5]=this[5]*a,e[6]=this[6]*s,e[7]=0,e[8]=this[8]*i,e[9]=this[9]*a,e[10]=this[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,t){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],t=t||[-0,-0,-0];const n=this.getScale(t),i=1/n[0],a=1/n[1],s=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*a,e[2]=this[2]*s,e[3]=this[4]*i,e[4]=this[5]*a,e[5]=this[6]*s,e[6]=this[8]*i,e[7]=this[9]*a,e[8]=this[10]*s,e}transpose(){return Yi(this,this),this.check()}invert(){return ki(this,this),this.check()}multiplyLeft(e){return de(this,e,this),this.check()}multiplyRight(e){return de(this,this,e),this.check()}rotateX(e){return Vi(this,this,e),this.check()}rotateY(e){return Ui(this,this,e),this.check()}rotateZ(e){return Xi(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,t){return Di(this,this,e,t),this.check()}scale(e){return Zi(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return Bi(this,this,e),this.check()}transform(e,t){return e.length===4?(t=B1(t||[-0,-0,-0,-0],e,this),zr(t,4),t):this.transformAsPoint(e,t)}transformAsPoint(e,t){const{length:n}=e;let i;switch(n){case 2:i=St(t||[-0,-0],e,this);break;case 3:i=gn(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return zr(i,e.length),i}transformAsVector(e,t){let n;switch(e.length){case 2:n=dn(t||[-0,-0],e,this);break;case 3:n=mn(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return zr(n,e.length),n}transformPoint(e,t){return this.transformAsPoint(e,t)}transformVector(e,t){return this.transformAsPoint(e,t)}transformDirection(e,t){return this.transformAsVector(e,t)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,t,n){return this.identity().translate([e,t,n])}}let mr,gr;function Aa(){return mr||(mr=new ar([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(mr)),mr}function Pa(){return gr||(gr=new ar,Object.freeze(gr)),gr}function qe(r){if(r>Math.PI*2)throw Error("expected radians")}function La(r,e,t,n,i,a){const s=2*a/(t-e),h=2*a/(i-n),c=(t+e)/(t-e),l=(i+n)/(i-n),f=-1,v=-1,o=-2*a;return r[0]=s,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=h,r[6]=0,r[7]=0,r[8]=c,r[9]=l,r[10]=f,r[11]=v,r[12]=0,r[13]=0,r[14]=o,r[15]=0,r}var u={};function ur(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ur=function(t){return typeof t}:ur=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ur(r)}Object.defineProperty(u,"__esModule",{value:!0}),u.create=br,u.identity=$a,u.setAxisAngle=ke,u.getAxisAngle=Sa,u.getAngle=za,u.multiply=We,u.rotateX=Ca,u.rotateY=Fa,u.rotateZ=Na,u.calculateW=ba,u.exp=Be,u.ln=Ze,u.pow=qa,u.slerp=Er,u.random=Ya,u.invert=ka,u.conjugate=Wa,u.fromMat3=De,u.fromEuler=Ba,u.str=Za,u.setAxes=u.sqlerp=u.rotationTo=u.equals=u.exactEquals=u.normalize=u.sqrLen=u.squaredLength=u.len=u.length=u.lerp=u.dot=u.scale=u.mul=u.add=u.set=u.copy=u.fromValues=u.clone=void 0;var rr=Tr(W),wa=Tr(w),K=Tr(T),Z=Tr(O);function Ye(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Ye=function(i){return i?t:e})(r)}function Tr(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||ur(r)!=="object"&&typeof r!="function")return{default:r};var t=Ye(e);if(t&&t.has(r))return t.get(r);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in r)if(a!=="default"&&Object.prototype.hasOwnProperty.call(r,a)){var s=i?Object.getOwnPropertyDescriptor(r,a):null;s&&(s.get||s.set)?Object.defineProperty(n,a,s):n[a]=r[a]}return n.default=r,t&&t.set(r,n),n}function br(){var r=new rr.ARRAY_TYPE(4);return rr.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function $a(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=1,r}function ke(r,e,t){t=t*.5;var n=Math.sin(t);return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=Math.cos(t),r}function Sa(r,e){var t=Math.acos(e[3])*2,n=Math.sin(t/2);return n>rr.EPSILON?(r[0]=e[0]/n,r[1]=e[1]/n,r[2]=e[2]/n):(r[0]=1,r[1]=0,r[2]=0),t}function za(r,e){var t=Ue(r,e);return Math.acos(2*t*t-1)}function We(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],h=t[0],c=t[1],l=t[2],f=t[3];return r[0]=n*f+s*h+i*l-a*c,r[1]=i*f+s*c+a*h-n*l,r[2]=a*f+s*l+n*c-i*h,r[3]=s*f-n*h-i*c-a*l,r}function Ca(r,e,t){t*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],h=Math.sin(t),c=Math.cos(t);return r[0]=n*c+s*h,r[1]=i*c+a*h,r[2]=a*c-i*h,r[3]=s*c-n*h,r}function Fa(r,e,t){t*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],h=Math.sin(t),c=Math.cos(t);return r[0]=n*c-a*h,r[1]=i*c+s*h,r[2]=a*c+n*h,r[3]=s*c-i*h,r}function Na(r,e,t){t*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],h=Math.sin(t),c=Math.cos(t);return r[0]=n*c+i*h,r[1]=i*c-n*h,r[2]=a*c+s*h,r[3]=s*c-a*h,r}function ba(r,e){var t=e[0],n=e[1],i=e[2];return r[0]=t,r[1]=n,r[2]=i,r[3]=Math.sqrt(Math.abs(1-t*t-n*n-i*i)),r}function Be(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=Math.sqrt(t*t+n*n+i*i),h=Math.exp(a),c=s>0?h*Math.sin(s)/s:0;return r[0]=t*c,r[1]=n*c,r[2]=i*c,r[3]=h*Math.cos(s),r}function Ze(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=Math.sqrt(t*t+n*n+i*i),h=s>0?Math.atan2(s,a)/s:0;return r[0]=t*h,r[1]=n*h,r[2]=i*h,r[3]=.5*Math.log(t*t+n*n+i*i+a*a),r}function qa(r,e,t){return Ze(r,e),Ve(r,r,t),Be(r,r),r}function Er(r,e,t,n){var i=e[0],a=e[1],s=e[2],h=e[3],c=t[0],l=t[1],f=t[2],v=t[3],o,M,p,x,y;return M=i*c+a*l+s*f+h*v,M<0&&(M=-M,c=-c,l=-l,f=-f,v=-v),1-M>rr.EPSILON?(o=Math.acos(M),p=Math.sin(o),x=Math.sin((1-n)*o)/p,y=Math.sin(n*o)/p):(x=1-n,y=n),r[0]=x*i+y*c,r[1]=x*a+y*l,r[2]=x*s+y*f,r[3]=x*h+y*v,r}function Ya(r){var e=rr.RANDOM(),t=rr.RANDOM(),n=rr.RANDOM(),i=Math.sqrt(1-e),a=Math.sqrt(e);return r[0]=i*Math.sin(2*Math.PI*t),r[1]=i*Math.cos(2*Math.PI*t),r[2]=a*Math.sin(2*Math.PI*n),r[3]=a*Math.cos(2*Math.PI*n),r}function ka(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t*t+n*n+i*i+a*a,h=s?1/s:0;return r[0]=-t*h,r[1]=-n*h,r[2]=-i*h,r[3]=a*h,r}function Wa(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=e[3],r}function De(r,e){var t=e[0]+e[4]+e[8],n;if(t>0)n=Math.sqrt(t+1),r[3]=.5*n,n=.5/n,r[0]=(e[5]-e[7])*n,r[1]=(e[6]-e[2])*n,r[2]=(e[1]-e[3])*n;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;n=Math.sqrt(e[i*3+i]-e[a*3+a]-e[s*3+s]+1),r[i]=.5*n,n=.5/n,r[3]=(e[a*3+s]-e[s*3+a])*n,r[a]=(e[a*3+i]+e[i*3+a])*n,r[s]=(e[s*3+i]+e[i*3+s])*n}return r}function Ba(r,e,t,n){var i=.5*Math.PI/180;e*=i,t*=i,n*=i;var a=Math.sin(e),s=Math.cos(e),h=Math.sin(t),c=Math.cos(t),l=Math.sin(n),f=Math.cos(n);return r[0]=a*c*f-s*h*l,r[1]=s*h*f+a*c*l,r[2]=s*c*l-a*h*f,r[3]=s*c*f+a*h*l,r}function Za(r){return"quat("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}var Da=Z.clone;u.clone=Da;var Va=Z.fromValues;u.fromValues=Va;var Ua=Z.copy;u.copy=Ua;var Xa=Z.set;u.set=Xa;var Ia=Z.add;u.add=Ia;var Ka=We;u.mul=Ka;var Ve=Z.scale;u.scale=Ve;var Ue=Z.dot;u.dot=Ue;var Ga=Z.lerp;u.lerp=Ga;var Xe=Z.length;u.length=Xe;var Ha=Xe;u.len=Ha;var Ie=Z.squaredLength;u.squaredLength=Ie;var Qa=Ie;u.sqrLen=Qa;var qr=Z.normalize;u.normalize=qr;var Ja=Z.exactEquals;u.exactEquals=Ja;var ja=Z.equals;u.equals=ja;var r0=function(){var r=K.create(),e=K.fromValues(1,0,0),t=K.fromValues(0,1,0);return function(n,i,a){var s=K.dot(i,a);return s<-.999999?(K.cross(r,e,i),K.len(r)<1e-6&&K.cross(r,t,i),K.normalize(r,r),ke(n,r,Math.PI),n):s>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(K.cross(r,i,a),n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=1+s,qr(n,n))}}();u.rotationTo=r0;var e0=function(){var r=br(),e=br();return function(t,n,i,a,s,h){return Er(r,n,s,h),Er(e,i,a,h),Er(t,r,e,2*h*(1-h)),t}}();u.sqlerp=e0;var t0=function(){var r=wa.create();return function(e,t,n,i){return r[0]=n[0],r[3]=n[1],r[6]=n[2],r[1]=i[0],r[4]=i[1],r[7]=i[2],r[2]=-t[0],r[5]=-t[1],r[8]=-t[2],qr(e,De(e,r))}}();u.setAxes=t0;var Ke;(function(r){r[r.ZYX=0]="ZYX",r[r.YXZ=1]="YXZ",r[r.XZY=2]="XZY",r[r.ZXY=3]="ZXY",r[r.YZX=4]="YZX",r[r.XYZ=5]="XYZ"})(Ke||(Ke={}));const q=3.141592653589793,_r=6378245,Rr=.006693421622965943,Or=q*3e3/180;function sr(r,e,t){const n=q/180*e,i=Math.pow(2,t),a=Math.floor((r+180)/360*i),s=Math.floor((1-Math.asinh(Math.tan(n))/q)/2*i);return[a,s]}function Ge(r,e,t){const n=Math.pow(2,t),i=r/n*360-180,a=Math.atan(Math.sinh(q*(1-2*e/n)))*180/q;return[i,a]}function n0(r,e){let t=Je(r-105,e-35),n=je(r-105,e-35);const i=e/180*q;let a=Math.sin(i);a=1-Rr*a*a;const s=Math.sqrt(a);t=t*180/(_r*(1-Rr)/(a*s)*q),n=n*180/(_r/s*Math.cos(i)*q);const h=e+t;return{lng:r+n,lat:h}}function He(r,e){const t=a0(r,e),n=r*2-t.lng,i=e*2-t.lat;return{lng:n,lat:i}}function Qe(r,e){const t=Math.sqrt(r*r+e*e)+2e-5*Math.sin(e*Or),n=Math.atan2(e,r)+3e-6*Math.cos(r*Or),i=t*Math.cos(n)+.0065,a=t*Math.sin(n)+.006;return{lng:i,lat:a}}function i0(r,e){const t=r-.0065,n=e-.006,i=Math.sqrt(t*t+n*n)-2e-5*Math.sin(n*Or),a=Math.atan2(n,t)-3e-6*Math.cos(t*Or),s=i*Math.cos(a),h=i*Math.sin(a);return{lng:s,lat:h}}function a0(r,e){let t=Je(r-105,e-35),n=je(r-105,e-35);const i=e/180*q;let a=Math.sin(i);a=1-Rr*a*a;const s=Math.sqrt(a);t=t*180/(_r*(1-Rr)/(a*s)*q),n=n*180/(_r/s*Math.cos(i)*q);const h=e+t;return{lng:r+n,lat:h}}function Je(r,e){let t=-100+2*r+3*e+.2*e*e+.1*r*e+.2*Math.sqrt(Math.abs(r));return t+=(20*Math.sin(6*r*q)+20*Math.sin(2*r*q))*2/3,t+=(20*Math.sin(e*q)+40*Math.sin(e/3*q))*2/3,t+=(160*Math.sin(e/12*q)+320*Math.sin(e*q/30))*2/3,t}function je(r,e){let t=300+r+2*e+.1*r*r+.1*r*e+.1*Math.sqrt(Math.abs(r));return t+=(20*Math.sin(6*r*q)+20*Math.sin(2*r*q))*2/3,t+=(20*Math.sin(r*q)+40*Math.sin(r/3*q))*2/3,t+=(150*Math.sin(r/12*q)+300*Math.sin(r/30*q))*2/3,t}function rt(r,e){for(var t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}function s0(r,e){for(var t in e)r[t]=e[t]}function et(r){return typeof r=="string"}var tt=void 0,Ar=null;function V(r,e){isNaN(r)&&(r=Ib(r),r=isNaN(r)?0:r),et(r)&&(r=parseFloat(r)),isNaN(e)&&(e=Ib(e),e=isNaN(e)?0:e),et(e)&&(e=parseFloat(e)),this.lng=r,this.lat=e}V.TL=function(r){return r&&180>=r.lng&&-180<=r.lng&&74>=r.lat&&-74<=r.lat},V.prototype.lb=function(r){return r&&this.lat==r.lat&&this.lng==r.lng};function Pr(r,e){this.x=r||0,this.y=e||0,this.x=this.x,this.y=this.y}Pr.prototype.lb=function(r){return r&&r.x==this.x&&r.y==this.y};function Yr(){}Yr.prototype.nh=function(){aa("lngLatToPoint\u65B9\u6CD5\u672A\u5B9E\u73B0")},Yr.prototype.wi=function(){aa("pointToLngLat\u65B9\u6CD5\u672A\u5B9E\u73B0")};function G(){}G.prototype=new Yr,rt(G,{$O:637099681e-2,lG:[1289059486e-2,836237787e-2,5591021,348198983e-2,167804312e-2,0],Au:[75,60,45,30,15,0],fP:[[1410526172116255e-23,898305509648872e-20,-1.9939833816331,200.9824383106796,-187.2403703815547,91.6087516669843,-23.38765649603339,2.57121317296198,-.03801003308653,173379812e-1],[-7435856389565537e-24,8983055097726239e-21,-.78625201886289,96.32687599759846,-1.85204757529826,-59.36935905485877,47.40033549296737,-16.50741931063887,2.28786674699375,1026014486e-2],[-3030883460898826e-23,898305509983578e-20,.30071316287616,59.74293618442277,7.357984074871,-25.38371002664745,13.45380521110908,-3.29883767235584,.32710905363475,685681737e-2],[-1981981304930552e-23,8983055099779535e-21,.03278182852591,40.31678527705744,.65659298677277,-4.44255534477492,.85341911805263,.12923347998204,-.04625736007561,448277706e-2],[309191371068437e-23,8983055096812155e-21,6995724062e-14,23.10934304144901,-.00023663490511,-.6321817810242,-.00663494467273,.03430082397953,-.00466043876332,25551644e-1],[2890871144776878e-24,8983055095805407e-21,-3068298e-14,7.47137025468032,-353937994e-14,-.02145144861037,-1234426596e-14,.00010322952773,-323890364e-14,826088.5]],iG:[[-.0015702102444,111320.7020616939,0x60e374c3105a3,-0x24bb4115e2e164,0x5cc55543bb0ae8,-0x7ce070193f3784,0x5e7ca61ddf8150,-0x261a578d8b24d0,0x665d60f3742ca,82.5],[.0008277824516172526,111320.7020463578,6477955746671607e-7,-4082003173641316e-6,1077490566351142e-5,-1517187553151559e-5,1205306533862167e-5,-5124939663577472e-6,9133119359512032e-7,67.5],[.00337398766765,111320.7020202162,4481351045890365e-9,-2339375119931662e-8,7968221547186455e-8,-1159649932797253e-7,9723671115602145e-8,-4366194633752821e-8,8477230501135234e-9,52.5],[.00220636496208,111320.7020209128,51751.86112841131,3796837749470245e-9,992013.7397791013,-122195221711287e-8,1340652697009075e-9,-620943.6990984312,144416.9293806241,37.5],[-.0003441963504368392,111320.7020576856,278.2353980772752,2485758690035394e-9,6070.750963243378,54821.18345352118,9540.606633304236,-2710.55326746645,1405.483844121726,22.5],[-.0003218135878613132,111320.7020701615,.00369383431289,823725.6402795718,.46104986909093,2351.343141331292,1.58060784298199,8.77738589078284,.37238884252424,7.45]],Z1:function(i,e){if(!i||!e)return 0;var t,n,i=this.Fb(i);return i?(t=this.Tk(i.lng),n=this.Tk(i.lat),e=this.Fb(e),e?this.Pe(t,this.Tk(e.lng),n,this.Tk(e.lat)):0):0},Vo:function(r,e){return!r||!e?0:(r.lng=this.JD(r.lng,-180,180),r.lat=this.ND(r.lat,-74,74),e.lng=this.JD(e.lng,-180,180),e.lat=this.ND(e.lat,-74,74),this.Pe(this.Tk(r.lng),this.Tk(e.lng),this.Tk(r.lat),this.Tk(e.lat)))},Fb:function(r){if(r===Ar||r===tt)return new V(0,0);var e,t;e=new V(Math.abs(r.lng),Math.abs(r.lat));for(var n=0;n<this.lG.length;n++)if(e.lat>=this.lG[n]){t=this.fP[n];break}return r=this.gK(r,t),r=new V(r.lng.toFixed(6),r.lat.toFixed(6))},Eb:function(r){if(r===Ar||r===tt||180<r.lng||-180>r.lng||90<r.lat||-90>r.lat)return new V(0,0);var e,t;r.lng=this.JD(r.lng,-180,180),r.lat=this.ND(r.lat,-74,74),e=new V(r.lng,r.lat);for(var n=0;n<this.Au.length;n++)if(e.lat>=this.Au[n]){t=this.iG[n];break}if(!t){for(n=0;n<this.Au.length;n++)if(e.lat<=-this.Au[n]){t=this.iG[n];break}}return r=this.gK(r,t),r=new V(r.lng.toFixed(2),r.lat.toFixed(2))},gK:function(r,e){if(r&&e){var t=e[0]+e[1]*Math.abs(r.lng),n=Math.abs(r.lat)/e[9],n=e[2]+e[3]*n+e[4]*n*n+e[5]*n*n*n+e[6]*n*n*n*n+e[7]*n*n*n*n*n+e[8]*n*n*n*n*n*n,t=t*(0>r.lng?-1:1),n=n*(0>r.lat?-1:1);return new V(t,n)}},Pe:function(r,e,t,n){return this.$O*Math.acos(Math.sin(t)*Math.sin(n)+Math.cos(t)*Math.cos(n)*Math.cos(e-r))},Tk:function(r){return Math.PI*r/180},Z3:function(r){return 180*r/Math.PI},ND:function(r,e,t){return e!=Ar&&(r=Math.max(r,e)),t!=Ar&&(r=Math.min(r,t)),r},JD:function(r,e,t){for(;r>t;)r-=t-e;for(;r<e;)r+=t-e;return r}}),rt(G.prototype,{Jm:function(r){return G.Eb(r)},nh:function(r){return r=G.Eb(r),new Pr(r.lng,r.lat)},qh:function(r){return G.Fb(r)},wi:function(r){return r=new V(r.x,r.y),G.Fb(r)},fc:function(r,e,t,n,i){if(r)return r=this.Jm(r,i),e=this.Lc(e),new Pr(Math.round((r.lng-t.lng)/e+n.width/2),Math.round((t.lat-r.lat)/e+n.height/2))},zb:function(r,e,t,n,i){if(r)return e=this.Lc(e),this.qh(new V(t.lng+e*(r.x-n.width/2),t.lat-e*(r.y-n.height/2)),i)},Lc:function(r){return Math.pow(2,18-r)}});var kr=G.prototype;s0(kr,{lngLatToPoint:kr.nh,pointToLngLat:kr.wi});let Wr={Point:V,Pixel:Pr,MercatorProjection:G};class h0{constructor(e,t){this.projection=new Wr.MercatorProjection,this.levelMax=e,this.levelMin=t}_getRetain(e){return Math.pow(2,e-18)}getResolution(e,t){return Math.pow(2,18-t)*Math.cos(e)}lnglatToPoint(e,t){let n=new Wr.Point(e,t),i=this.projection.lngLatToPoint(n);return{pointX:i.x,pointY:i.y}}pointToLnglat(e,t){let n=new Wr.Pixel(e,t),i=this.projection.pointToLngLat(n);return{lng:i.lng,lat:i.lat}}_lngToTileX(e,t){let n=this.lnglatToPoint(e,0);return Math.floor(n.pointX*this._getRetain(t)/256)}_latToTileY(e,t){let n=this.lnglatToPoint(0,e);return Math.floor(n.pointY*this._getRetain(t)/256)}lnglatToTile(e,t,n){let i=this._lngToTileX(e,n),a=this._latToTileY(t,n);return[i,a]}_lngToPixelX(e,t){let n=this._lngToTileX(e,t),i=this.lnglatToPoint(e,0);return Math.floor(i.pointX*this._getRetain(t)-n*256)}_latToPixelY(e,t){let n=this._latToTileY(e,t),i=this.lnglatToPoint(0,e);return Math.floor(i.pointY*this._getRetain(t)-n*256)}lnglatToPixel(e,t,n){let i=this._lngToPixelX(e,n),a=this._latToPixelY(t,n);return{pixelX:i,pixelY:a}}_pixelXToLng(e,t,n){let i=(t*256+e)/this._getRetain(n);return this.pointToLnglat(i,0).lng}_pixelYToLat(e,t,n){let i=(t*256+e)/this._getRetain(n);return this.pointToLnglat(0,i).lat}pixelToLnglat(e,t,n,i,a){let s=(n*256+e)/this._getRetain(a),h=(i*256+t)/this._getRetain(a),c=this.pointToLnglat(s,h);return[c.lng,c.lat]}}Object.freeze=function(r){return r};var c0=/\{ *([\w_-]+) *\}/g;function l0(r,e){return r.replace(c0,function(t,n){let i=e[n];if(i===void 0)throw new Error(`No value provided for variable ${t}`);return typeof i=="function"&&(i=i(e)),i})}class f0{constructor(e,t){if(this.program=null,this.showTiles=[],this.isReadRender=!1,this.isLayerShow=!1,this.tileCache=[],this.gridCache={},this.transformBaidu=new h0,this.maskCache=[],this._projectionMatrix=new ar,this._viewMatrix4=new ar,this._mvpMatrix4=new ar,this.isOrtho=!1,!e)throw new Error("\u8BF7\u4F20\u5165\u5730\u56FE\u5B9E\u4F8B");this.validate(t),this.map=e,this.center=e.getCenter().toArray(),this.options=Object.assign(this.getDefaultGlLayerOptions(),t),this.customCoords=e.customCoords,this.customCoords.lngLatsToCoords([this.center]),this.layer=new AMap.GLCustomLayer({zooms:this.options.zooms,opacity:this.options.opacity,visible:this.options.visible,zIndex:this.options.zIndex,init:n=>{this.gl=n;const i=`
uniform mat4 u_ProjectionMatrix;
uniform mat4 u_ViewMatrix4;
uniform mat4 u_MvpMatrix4;
uniform bool u_isOrtho;
attribute vec2 a_pos;
attribute vec2 a_TextCoord;
varying vec2 v_TextCoord;
void main() {
if(u_isOrtho){
gl_Position = u_MvpMatrix4 * vec4(a_pos,0.0, 1.0);
}else{
gl_Position = u_ProjectionMatrix * u_ViewMatrix4 * vec4(a_pos,0.0, 1.0);
}
v_TextCoord = a_TextCoord;
}`,a=`
precision mediump float;
uniform sampler2D u_Sampler;
uniform bool u_isFirst;
varying vec2 v_TextCoord;
void main() {
if(u_isFirst){
gl_FragColor = vec4(1.0, 0.0, 0.0, 0.0);
}else{
gl_FragColor = texture2D(u_Sampler, v_TextCoord);
}
}`,s=n.createShader(n.VERTEX_SHADER);n.shaderSource(s,i),n.compileShader(s);const h=n.createShader(n.FRAGMENT_SHADER);n.shaderSource(h,a),n.compileShader(h),this.program=n.createProgram(),n.attachShader(this.program,s),n.attachShader(this.program,h),n.linkProgram(this.program),this.a_Pos=n.getAttribLocation(this.program,"a_pos"),this.a_TextCoord=n.getAttribLocation(this.program,"a_TextCoord");const c="uniform mat4 u_ProjectionMatrix;uniform mat4 u_ViewMatrix4;uniform mat4 u_MvpMatrix4;uniform bool u_isOrtho;attribute vec2 a_pos;void main() { if(u_isOrtho){ gl_Position = u_MvpMatrix4 * vec4(a_pos,0.0, 1.0); }else{ gl_Position = u_ProjectionMatrix * u_ViewMatrix4 * vec4(a_pos,0.0, 1.0); }}",l="void main() { gl_FragColor = vec4(0.0, 1.0, 0.0, 0.0);}",f=n.createShader(n.VERTEX_SHADER);n.shaderSource(f,c),n.compileShader(f);const v=n.createShader(n.FRAGMENT_SHADER);n.shaderSource(v,l),n.compileShader(v),this.maskProgram=n.createProgram(),n.attachShader(this.maskProgram,f),n.attachShader(this.maskProgram,v),n.linkProgram(this.maskProgram),this.mask_Pos=n.getAttribLocation(this.maskProgram,"a_pos"),this.options.visible&&(this.isLayerShow=!0),this.mapCallback=()=>{this.isLayerShow&&this.update()},e.on("dragging",this.mapCallback),e.on("moveend",this.mapCallback),e.on("zoomchange",this.mapCallback),e.on("rotatechange",this.mapCallback),this._createMask(this.options.mask),this.update()},render:n=>{if(!this.isReadRender)return;const i=this.options.zooms;if(!(this.map.getZoom()<i[0]||this.map.getZoom()>i[1])){if(this.customCoords.setCenter(this.center),e.getView().type==="3D"){this.isOrtho=!1;const{near:a,far:s,fov:h,up:c,lookAt:l,position:f}=this.customCoords.getCameraParams();this._viewMatrix4.lookAt({eye:f,center:l,up:c}).translate([0,0,this.options.altitude]),this._projectionMatrix.perspective({fovy:h*Math.PI/180,far:s,near:a,aspect:n.drawingBufferWidth/n.drawingBufferHeight})}else{this.isOrtho=!0;const a=this.customCoords.getMVPMatrix();this._mvpMatrix4.copy(a)}this.reset(n),this.maskCache.length>0?(n.clearStencil(0),n.clear(n.STENCIL_BUFFER_BIT),n.enable(n.STENCIL_TEST),n.stencilFunc(n.ALWAYS,1,255),n.stencilOp(n.KEEP,n.KEEP,n.REPLACE),this._renderMask(n),n.stencilFunc(n.EQUAL,1,255),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),n.disable(n.DEPTH_TEST),this._renderTile(n),n.enable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST)):this._renderTile(n),this.reset(n)}}}),e.add(this.layer)}_renderMask(e){if(this.maskCache.length){this.customCoords.setCenter(this.center),e.useProgram(this.maskProgram),this.setVertex(e,this.maskProgram);for(const t of this.maskCache)e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.vertexAttribPointer(this.mask_Pos,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(this.mask_Pos),e.drawElements(e.TRIANGLES,t.deviationLength,e.UNSIGNED_INT,0)}}_renderTile(e){var t,n,i,a,s,h;this.customCoords.setCenter(this.center),e.useProgram(this.program),this.setVertex(e,this.program);let c=0;for(const l of this.showTiles){if(!l.isLoad||l.imageError)continue;e.bindTexture(e.TEXTURE_2D,l.texture),e.activeTexture(e.TEXTURE0),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.MIRRORED_REPEAT);const f=e.getUniformLocation(this.program,"u_Sampler");e.uniform1i(f,0),e.uniform1f(e.getUniformLocation(this.program,"u_isFirst"),c===0),e.bindBuffer(e.ARRAY_BUFFER,l.buffer),e.vertexAttribPointer(this.a_Pos,(t=l.PosParam)===null||t===void 0?void 0:t.size,e.FLOAT,!1,(n=l.PosParam)===null||n===void 0?void 0:n.stride,(i=l.PosParam)===null||i===void 0?void 0:i.offset),e.vertexAttribPointer(this.a_TextCoord,(a=l.TextCoordParam)===null||a===void 0?void 0:a.size,e.FLOAT,!1,(s=l.TextCoordParam)===null||s===void 0?void 0:s.stride,(h=l.TextCoordParam)===null||h===void 0?void 0:h.offset),e.enableVertexAttribArray(this.a_Pos),e.enableVertexAttribArray(this.a_TextCoord),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),e.drawArrays(e.TRIANGLE_STRIP,0,4),c++}}reset(e){e.disable(e.BLEND),e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.disable(e.SAMPLE_ALPHA_TO_COVERAGE),e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ONE,e.ZERO),e.blendFuncSeparate(e.ONE,e.ZERO,e.ONE,e.ZERO),e.colorMask(!0,!0,!0,!0),e.clearColor(0,0,0,0),e.depthMask(!0),e.depthFunc(e.LESS),e.clearDepth(1),e.stencilMask(4294967295),e.stencilFunc(e.ALWAYS,0,4294967295),e.stencilOp(e.KEEP,e.KEEP,e.KEEP),e.clearStencil(0),e.cullFace(e.BACK),e.frontFace(e.CCW),e.polygonOffset(0,0),e.activeTexture(e.TEXTURE0),e.bindFramebuffer(e.FRAMEBUFFER,null),e.useProgram(null),e.lineWidth(1),e.scissor(0,0,e.canvas.width,e.canvas.height),e.viewport(0,0,e.canvas.width,e.canvas.height)}validate(e){if(!e.url)throw new Error("\u8BF7\u4F20\u5165url");if(e.url.includes("{s}")&&(!e.subdomains||e.subdomains.length===0))throw new Error("\u8BF7\u4F20\u5165subdomains")}getDefaultGlLayerOptions(){return{url:"",zooms:[2,18],opacity:1,visible:!0,zIndex:120,proj:"gcj02",tileType:"xyz",debug:!1,cacheSize:512,tileMaxZoom:18,altitude:0}}_createMask(e){if(!e||e.length===0){this.maskCache=[];return}const t=this.getMaskDeep(e);if(t<2||t>4){console.warn("mask\u6570\u636E\u683C\u5F0F\u4E0D\u6B63\u786E");return}t===2?e=[[e]]:t===3&&(e=[e]);for(let n of e){n=this._convertMaskLnglatToCoords(n);const i=H.exports.flatten(n),a=H.exports(i.vertices,i.holes,i.dimensions),s=this.gl,h=new Float32Array(i.vertices),c=s.createBuffer();s.bindBuffer(s.ARRAY_BUFFER,c),s.bufferData(s.ARRAY_BUFFER,h,s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null);const l=s.createBuffer();s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,l),s.bufferData(s.ELEMENT_ARRAY_BUFFER,new Uint32Array(a),s.STATIC_DRAW),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,null),this.maskCache.push({FSIZE:h.BYTES_PER_ELEMENT,vertexBuffer:c,indexBuffer:l,deviationLength:a.length})}}getMaskDeep(e,t=1){return e.length?typeof e[0]=="number"?t:this.getMaskDeep(e[0],t+1):-1}_convertMaskLnglatToCoords(e){return!e||e.length===0?e:typeof e[0]=="number"?this._convertLnglatToCoords([e[0],e[1]]):e.map(t=>this._convertMaskLnglatToCoords(t))}_convertLnglatToCoords(e){return this.customCoords.setCenter(this.center),this.customCoords.lngLatsToCoords([e])[0]}update(){if(!this.gl)return;this.isReadRender=!1;const e=this.gl,t=this.map,n=t.getCenter();let i=Math.ceil(t.getZoom());i>this.options.tileMaxZoom&&(i=this.options.tileMaxZoom);const a=t.getBounds();let s,h,c,l;if(this.options.tileType==="xyz"?(c=a.getNorthWest().toArray(),l=a.getSouthEast().toArray()):(c=a.getSouthWest().toArray(),l=a.getNorthEast().toArray()),this.options.proj==="wgs84"){const o=He(...c),M=He(...l);s=sr(o.lng,o.lat,i),h=sr(M.lng,M.lat,i)}else if(this.options.proj==="bd09"){const o=Qe(...c),M=Qe(...l);s=this.transformBaidu.lnglatToTile(o.lng,o.lat,i),h=this.transformBaidu.lnglatToTile(M.lng,M.lat,i)}else s=sr(c[0],c[1],i),h=sr(l[0],l[1],i);const f=[];for(let o=s[0];o<=h[0];o++)for(let M=s[1];M<=h[1];M++){const p={x:o,y:M,z:i};f.push(p),this.addGridCache(p,0,0),o===h[0]&&this.addGridCache(p,1,0),M===h[1]&&this.addGridCache(p,0,1),o===h[0]&&M===h[1]&&this.addGridCache(p,1,1)}let v;this.options.tileType==="xyz"?v=sr(n.getLng(),n.getLat(),i):v=this.transformBaidu.lnglatToTile(n.getLng(),n.getLat(),i),f.sort((o,M)=>this.tileDistance(o,v)-this.tileDistance(M,v)),this._cancelOutViewImage(f),this._clearShowTile();for(const o of f){const M=this.createTileKey(o),p=this.getTileCache(M);if(p){if(p.imageError)continue;!p.isLoad&&p.image&&p.imageCanceled&&(p.image.src=p.url,p.imageCanceled=!1),this.showTiles.push(p)}else{const x=this.createTile(e,o);this.showTiles.push(x),this.pushTileCache(x)}}this.showTiles.length>0&&this.showTiles.unshift(this.showTiles[0]),this.isReadRender=!0}_cancelOutViewImage(e){this.tileCache.forEach(t=>{e.findIndex(n=>this.createTileKey(n)===t.xyzKey)===-1&&!t.isLoad&&t.image&&(t.image.src="",t.imageCanceled=!0)})}getTileCache(e){return this.tileCache.find(t=>t.xyzKey===e)}pushTileCache(e){const t=this.options.cacheSize;t>0&&this.tileCache.length>=t&&(this.showTiles.findIndex(n=>n.xyzKey===this.tileCache[0].xyzKey)<0&&this._destroyTile(this.tileCache[0]),this.tileCache.splice(0,1)),this.tileCache.push(e)}addGridCache(e,t,n){const i=this.createTileKey(e.x+t,e.y+n,e.z);if(!this.gridCache[i])if(this.options.proj==="wgs84"){const a=n0(...Ge(e.x+t,e.y+n,e.z)),s=this._convertLnglatToCoords([a.lng,a.lat]);this.gridCache[i]={lng:s[0],lat:s[1]}}else if(this.options.tileType==="bd09"){const a=i0(...this.transformBaidu.pixelToLnglat(0,0,e.x+t,e.y+n,e.z)),s=this._convertLnglatToCoords([a.lng,a.lat]);this.gridCache[i]={lng:s[0],lat:s[1]}}else{const a=this._convertLnglatToCoords(Ge(e.x+t,e.y+n,e.z));this.gridCache[i]={lng:a[0],lat:a[1]}}}tileDistance(e,t){return Math.sqrt(Math.pow(e.x-t[0],2)+Math.pow(e.y-t[1],2))}createTileKey(e,t,n){return e instanceof Object?`${e.z}/${e.x}/${e.y}`:`${n}/${e}/${t}`}deepFormatTileNumber(e,t){return e>=0&&e<t?e:(e>0&&e>=t?e=e-t:e<0&&(e=e+t),this.deepFormatTileNumber(e,t))}createTile(e,t){let n=Math.ceil(this.map.getZoom());n>this.options.tileMaxZoom&&(n=this.options.tileMaxZoom);const i=Math.pow(2,n);let a=t.x,s=t.y;a=this.deepFormatTileNumber(a,i),s=this.deepFormatTileNumber(s,i);const h={x:a,y:s,z:t.z};this.options.subdomains&&(h.s=this.options.subdomains[Math.abs(t.x+t.y)%this.options.subdomains.length]);const c=l0(this.options.url,h),l={xyz:t,xyzKey:this.createTileKey(t),isLoad:!1,url:c,imageCanceled:!1};let f,v,o,M;this.options.tileType==="xyz"?(f=this.gridCache[this.createTileKey(t)],v=this.gridCache[this.createTileKey(t.x+1,t.y,t.z)],o=this.gridCache[this.createTileKey(t.x,t.y+1,t.z)],M=this.gridCache[this.createTileKey(t.x+1,t.y+1,t.z)]):(f=this.gridCache[this.createTileKey(t.x,t.y+1,t.z)],v=this.gridCache[this.createTileKey(t.x+1,t.y+1,t.z)],o=this.gridCache[this.createTileKey(t)],M=this.gridCache[this.createTileKey(t.x+1,t.y,t.z)]);const p=new Float32Array([f.lng,f.lat,0,1,o.lng,o.lat,0,0,v.lng,v.lat,1,1,M.lng,M.lat,1,0]),x=p.BYTES_PER_ELEMENT,y=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,y),e.bufferData(e.ARRAY_BUFFER,p,e.STATIC_DRAW),l.buffer=y,l.PosParam={size:2,stride:x*4,offset:0},l.TextCoordParam={size:2,stride:x*4,offset:x*2};const m=new Image(256,256);return m.onload=()=>{if(l.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,l.texture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),this.options.debug){const R=document.createElement("canvas");R.width=256,R.height=256;const d=R.getContext("2d");d.drawImage(m,0,0),d.font="25px Verdana",d.fillStyle="#ff0000",d.strokeStyle="#FF0000",d.strokeRect(0,0,256,256),d.fillText(`(${[t.x,t.y,t.z].join(",")})`,10,30),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,R)}else e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,m);l.isLoad=!0,this.showTiles.findIndex(R=>R===l)>=0&&this.requestRender()},m.onerror=()=>{l.imageCanceled||(l.imageError=!0)},m.crossOrigin="anonymous",m.src=c,l.image=m,l}setVertex(e,t){e.uniformMatrix4fv(e.getUniformLocation(t,"u_ProjectionMatrix"),!1,this._projectionMatrix.toArray()),e.uniformMatrix4fv(e.getUniformLocation(t,"u_ViewMatrix4"),!1,this._viewMatrix4.toArray()),e.uniformMatrix4fv(e.getUniformLocation(t,"u_MvpMatrix4"),!1,this._mvpMatrix4.toArray()),e.uniform1f(e.getUniformLocation(t,"u_isOrtho"),this.isOrtho)}requestRender(){this.map&&(this.map.getContext().setDirty(),this.map.setNeedUpdate(!0))}show(){this.isLayerShow=!0,this.update(),this.layer.show()}hide(){this.isLayerShow=!1,this.layer.hide()}getzIndex(){return this.layer.getzIndex()}setzIndex(e){this.options.zIndex=e,this.layer.setzIndex(e)}getOpacity(){return this.layer.getOpacity()}setOpacity(e){this.options.opacity=e,this.layer.setOpacity(e)}getZooms(){return this.layer.getZooms()}setZooms(e){this.options.zooms=e,this.layer.setZooms(e)}setMask(e){this._destroyMaskCache(),this._createMask(e),this.options.mask=e,this.requestRender()}getMask(){return this.options.mask}getMap(){return this.map}_destroyMaskCache(){this.maskCache.forEach(e=>{this.gl.deleteBuffer(e.vertexBuffer),this.gl.deleteBuffer(e.indexBuffer)}),this.maskCache=[]}_destroyTile(e){e.buffer&&this.gl.deleteBuffer(e.buffer),e.texture&&this.gl.deleteTexture(e.texture)}_clearAllCacheTile(){this.tileCache.forEach(e=>{this._destroyTile(e)}),this.tileCache=[]}_clearShowTile(){this.showTiles.forEach(e=>{this.tileCache.findIndex(t=>t.xyzKey===e.xyzKey)<0&&this._destroyTile(e)}),this.showTiles=[]}destroy(){this.isLayerShow=!1,this.map.remove(this.layer),this.map.off("dragging",this.mapCallback),this.map.off("moveend",this.mapCallback),this.map.off("zoomchange",this.mapCallback),this.map.off("rotatechange",this.mapCallback),this._destroyMaskCache(),this._clearShowTile(),this._clearAllCacheTile(),this.gridCache={},this.transformBaidu=null,this.mapCallback=null,this.gl.deleteProgram(this.program),this.gl.deleteProgram(this.maskProgram),this.program=null,this.maskProgram=null,this.options=void 0,this.customCoords=void 0,this.center=void 0,this.layer=null,this.gl=null,this.map=null}}Q.CustomXyzLayer=f0,Object.defineProperty(Q,"__esModule",{value:!0})});
//# sourceMappingURL=index.js.map