UNPKG

@vuemap/amap-xyz-layer

Version:

高德地图 JSAPI v2.0 自定义瓦片图层,支持瓦片纠偏,支持海拔

29 lines 86.9 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var hr={exports:{}};hr.exports=cr,hr.exports.default=cr;function cr(r,e,t){t=t||2;var n=e&&e.length,i=n?e[0]*t:r.length,a=Zr(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=ct(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 Zr(r,e,t,n,i){var a,s;if(i===wr(r,e,t,n)>0)for(a=e;a<t;a+=n)s=Ur(a,r[a],r[a+1],s);else for(a=t-n;a>=e;a-=n)s=Ur(a,r[a],r[a+1],s);return s&&lr(s,s.next)&&(ir(s),s=s.next),s}function H(r,e){if(!r)return r;e||(e=r);var t=r,n;do if(n=!1,!t.steiner&&(lr(t,t.next)||Y(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&&Mt(r,n,i,a);for(var h=r,c,l;r.prev!==r.next;){if(c=r.prev,l=r.next,a?at(r,n,i,a):it(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=st(H(r),e,t),tr(r,e,t,n,i,a,2)):s===2&&ht(r,e,t,n,i,a):tr(H(r),e,t,n,i,a,1);break}}}}function it(r){var e=r.prev,t=r,n=r.next;if(Y(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&&j(i,h,a,c,s,l,p.x,p.y)&&Y(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function at(r,e,t,n){var i=r.prev,a=r,s=r.next;if(Y(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=Pr(M,p,e,t,n),R=Pr(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&&j(h,f,c,v,l,o,d.x,d.y)&&Y(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&&j(h,f,c,v,l,o,g.x,g.y)&&Y(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&&j(h,f,c,v,l,o,d.x,d.y)&&Y(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&&j(h,f,c,v,l,o,g.x,g.y)&&Y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function st(r,e,t){var n=r;do{var i=n.prev,a=n.next.next;!lr(i,a)&&Dr(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 H(n)}function ht(r,e,t,n,i,a){var s=r;do{for(var h=s.next.next;h!==s.prev;){if(s.i!==h.i&&xt(s,h)){var c=Vr(s,h);s=H(s,s.next),c=H(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 ct(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=Zr(r,h,c,n,!1),l===l.next&&(l.steiner=!0),i.push(yt(l));for(i.sort(lt),a=0;a<i.length;a++)t=ft(i[a],t);return t}function lt(r,e){return r.x-e.x}function ft(r,e){var t=ot(r,e);if(!t)return e;var n=Vr(t,r);return H(n,n.next),H(t,t.next)}function ot(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&&j(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&&vt(s,t)))&&(s=t,v=o)),t=t.next;while(t!==c);return s}function vt(r,e){return Y(r.prev,r,e.prev)<0&&Y(e.next,r,r.next)<0}function Mt(r,e,t,n){var i=r;do i.z===0&&(i.z=Pr(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,pt(i)}function pt(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 Pr(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 yt(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 j(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 xt(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!dt(r,e)&&(nr(r,e)&&nr(e,r)&&mt(r,e)&&(Y(r.prev,r,e.prev)||Y(r,e.prev,e))||lr(r,e)&&Y(r.prev,r,r.next)>0&&Y(e.prev,e,e.next)>0)}function Y(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function lr(r,e){return r.x===e.x&&r.y===e.y}function Dr(r,e,t,n){var i=or(Y(r,e,t)),a=or(Y(r,e,n)),s=or(Y(t,n,r)),h=or(Y(t,n,e));return!!(i!==a&&s!==h||i===0&&fr(r,t,e)||a===0&&fr(r,n,e)||s===0&&fr(t,r,n)||h===0&&fr(t,e,n))}function fr(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 or(r){return r>0?1:r<0?-1:0}function dt(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&&Dr(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function nr(r,e){return Y(r.prev,r,r.next)<0?Y(r,e,r.next)>=0&&Y(r,r.prev,e)>=0:Y(r,e,r.prev)<0||Y(r,r.next,e)<0}function mt(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 Vr(r,e){var t=new Lr(r.i,r.x,r.y),n=new Lr(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 Ur(r,e,t,n){var i=new Lr(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 Lr(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}cr.deviation=function(r,e,t,n){var i=e&&e.length,a=i?e[0]*t:r.length,s=Math.abs(wr(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(wr(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 wr(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}cr.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 X={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function gt(r,{precision:e=X.precision}={}){return r=ut(r),"".concat(parseFloat(r.toPrecision(e)))}function $r(r){return Array.isArray(r)||ArrayBuffer.isView(r)&&!(r instanceof DataView)}function Xr(r,e,t){const n=X.EPSILON;t&&(X.EPSILON=t);try{if(r===e)return!0;if($r(r)&&$r(e)){if(r.length!==e.length)return!1;for(let i=0;i<r.length;++i)if(!Xr(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)<=X.EPSILON*Math.max(1,Math.abs(r),Math.abs(e)):!1}finally{X.EPSILON=n}}function ut(r){return Math.round(r/X.EPSILON)*X.EPSILON}function Tt(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 Et extends Tt(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:$r(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(X)}formatString(e){let t="";for(let n=0;n<this.ELEMENTS;++n)t+=(n>0?", ":"")+gt(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(!Xr(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(X.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 _t(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 Rt(r){if(!Number.isFinite(r))throw new Error("Invalid number ".concat(r));return r}function Sr(r,e,t=""){if(X.debug&&!_t(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=At,W.toRadian=Lt,W.equals=wt,W.RANDOM=W.ARRAY_TYPE=W.EPSILON=void 0;var Ir=1e-6;W.EPSILON=Ir;var Kr=typeof Float32Array!="undefined"?Float32Array:Array;W.ARRAY_TYPE=Kr;var Ot=Math.random;W.RANDOM=Ot;function At(r){W.ARRAY_TYPE=Kr=r}var Pt=Math.PI/180;function Lt(r){return r*Pt}function wt(r,e){return Math.abs(r-e)<=Ir*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 vr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?vr=function(t){return typeof t}:vr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vr(r)}Object.defineProperty(_,"__esModule",{value:!0}),_.create=Hr,_.clone=zt,_.fromValues=Ct,_.copy=Ft,_.set=Nt,_.add=bt,_.subtract=Qr,_.multiply=Jr,_.divide=jr,_.ceil=qt,_.floor=Yt,_.min=kt,_.max=Wt,_.round=Bt,_.scale=Zt,_.scaleAndAdd=Dt,_.distance=re,_.squaredDistance=ee,_.length=te,_.squaredLength=ne,_.negate=Vt,_.inverse=Ut,_.normalize=Xt,_.dot=It,_.cross=Kt,_.lerp=Gt,_.random=Ht,_.transformMat2=Qt,_.transformMat2d=Jt,_.transformMat3=jt;var $t=_.transformMat4=rn;_.rotate=en,_.angle=tn,_.zero=nn,_.str=an,_.exactEquals=sn,_.equals=hn,_.forEach=_.sqrLen=_.sqrDist=_.dist=_.div=_.mul=_.sub=_.len=void 0;var Q=St(W);function Gr(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Gr=function(i){return i?t:e})(r)}function St(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||vr(r)!=="object"&&typeof r!="function")return{default:r};var t=Gr(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 Hr(){var r=new Q.ARRAY_TYPE(2);return Q.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0),r}function zt(r){var e=new Q.ARRAY_TYPE(2);return e[0]=r[0],e[1]=r[1],e}function Ct(r,e){var t=new Q.ARRAY_TYPE(2);return t[0]=r,t[1]=e,t}function Ft(r,e){return r[0]=e[0],r[1]=e[1],r}function Nt(r,e,t){return r[0]=e,r[1]=t,r}function bt(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 jr(r,e,t){return r[0]=e[0]/t[0],r[1]=e[1]/t[1],r}function qt(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r}function Yt(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r}function kt(r,e,t){return r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r}function Wt(r,e,t){return r[0]=Math.max(e[0],t[0]),r[1]=Math.max(e[1],t[1]),r}function Bt(r,e){return r[0]=Math.round(e[0]),r[1]=Math.round(e[1]),r}function Zt(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r}function Dt(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r}function re(r,e){var t=e[0]-r[0],n=e[1]-r[1];return Math.hypot(t,n)}function ee(r,e){var t=e[0]-r[0],n=e[1]-r[1];return t*t+n*n}function te(r){var e=r[0],t=r[1];return Math.hypot(e,t)}function ne(r){var e=r[0],t=r[1];return e*e+t*t}function Vt(r,e){return r[0]=-e[0],r[1]=-e[1],r}function Ut(r,e){return r[0]=1/e[0],r[1]=1/e[1],r}function Xt(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 It(r,e){return r[0]*e[0]+r[1]*e[1]}function Kt(r,e,t){var n=e[0]*t[1]-e[1]*t[0];return r[0]=r[1]=0,r[2]=n,r}function Gt(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 Ht(r,e){e=e||1;var t=Q.RANDOM()*2*Math.PI;return r[0]=Math.cos(t)*e,r[1]=Math.sin(t)*e,r}function Qt(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 jt(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 rn(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 en(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 tn(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 nn(r){return r[0]=0,r[1]=0,r}function an(r){return"vec2("+r[0]+", "+r[1]+")"}function sn(r,e){return r[0]===e[0]&&r[1]===e[1]}function hn(r,e){var t=r[0],n=r[1],i=e[0],a=e[1];return Math.abs(t-i)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(i))&&Math.abs(n-a)<=Q.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))}var cn=te;_.len=cn;var ln=Qr;_.sub=ln;var fn=Jr;_.mul=fn;var on=jr;_.div=on;var vn=re;_.dist=vn;var Mn=ee;_.sqrDist=Mn;var pn=ne;_.sqrLen=pn;var yn=function(){var r=Hr();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=yn;function xn(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 dn(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 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(T,"__esModule",{value:!0}),T.create=ae,T.clone=un,T.length=se,T.fromValues=Tn,T.copy=En,T.set=_n,T.add=Rn,T.subtract=he,T.multiply=ce,T.divide=le,T.ceil=On,T.floor=An,T.min=Pn,T.max=Ln,T.round=wn,T.scale=$n,T.scaleAndAdd=Sn,T.distance=fe,T.squaredDistance=oe,T.squaredLength=ve,T.negate=zn,T.inverse=Cn,T.normalize=Fn,T.dot=Me,T.cross=Nn,T.lerp=bn,T.hermite=qn,T.bezier=Yn,T.random=kn;var mn=T.transformMat4=Wn;T.transformMat3=Bn,T.transformQuat=Zn,T.rotateX=Dn,T.rotateY=Vn,T.rotateZ=Un,T.angle=Xn,T.zero=In,T.str=Kn,T.exactEquals=Gn,T.equals=Hn,T.forEach=T.sqrLen=T.len=T.sqrDist=T.dist=T.div=T.mul=T.sub=void 0;var I=gn(W);function ie(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(ie=function(i){return i?t:e})(r)}function gn(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||Mr(r)!=="object"&&typeof r!="function")return{default:r};var t=ie(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 ae(){var r=new I.ARRAY_TYPE(3);return I.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function un(r){var e=new I.ARRAY_TYPE(3);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e}function se(r){var e=r[0],t=r[1],n=r[2];return Math.hypot(e,t,n)}function Tn(r,e,t){var n=new I.ARRAY_TYPE(3);return n[0]=r,n[1]=e,n[2]=t,n}function En(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r}function _n(r,e,t,n){return r[0]=e,r[1]=t,r[2]=n,r}function Rn(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 le(r,e,t){return r[0]=e[0]/t[0],r[1]=e[1]/t[1],r[2]=e[2]/t[2],r}function On(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r[2]=Math.ceil(e[2]),r}function An(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r[2]=Math.floor(e[2]),r}function Pn(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 Ln(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 wn(r,e){return r[0]=Math.round(e[0]),r[1]=Math.round(e[1]),r[2]=Math.round(e[2]),r}function $n(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r}function Sn(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 fe(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 oe(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 ve(r){var e=r[0],t=r[1],n=r[2];return e*e+t*t+n*n}function zn(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}function Cn(r,e){return r[0]=1/e[0],r[1]=1/e[1],r[2]=1/e[2],r}function Fn(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 Me(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function Nn(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 bn(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 qn(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 Yn(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 kn(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 Wn(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 Bn(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 Zn(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 Dn(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 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[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 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[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 Xn(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&&Me(r,e)/f;return Math.acos(Math.min(Math.max(v,-1),1))}function In(r){return r[0]=0,r[1]=0,r[2]=0,r}function Kn(r){return"vec3("+r[0]+", "+r[1]+", "+r[2]+")"}function Gn(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]}function Hn(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 Qn=he;T.sub=Qn;var Jn=ce;T.mul=Jn;var jn=le;T.div=jn;var ri=fe;T.dist=ri;var ei=oe;T.sqrDist=ei;var ti=se;T.len=ti;var ni=ve;T.sqrLen=ni;var ii=function(){var r=ae();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=ii;class ai extends Et{toString(){let e="[";if(X.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]=Rt(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 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(w,"__esModule",{value:!0}),w.create=hi,w.fromMat4=ci,w.clone=li,w.copy=fi,w.fromValues=oi,w.set=vi,w.identity=Mi,w.transpose=pi,w.invert=yi,w.adjoint=xi,w.determinant=di,w.multiply=ye,w.translate=mi,w.rotate=gi,w.scale=ui,w.fromTranslation=Ti,w.fromRotation=Ei,w.fromScaling=_i,w.fromMat2d=Ri,w.fromQuat=Oi,w.normalFromMat4=Ai,w.projection=Pi,w.str=Li,w.frob=wi,w.add=$i,w.subtract=xe,w.multiplyScalar=Si,w.multiplyScalarAndAdd=zi,w.exactEquals=Ci,w.equals=Fi,w.sub=w.mul=void 0;var B=si(W);function pe(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(pe=function(i){return i?t:e})(r)}function si(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||pr(r)!=="object"&&typeof r!="function")return{default:r};var t=pe(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 hi(){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 ci(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 li(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 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],r}function oi(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 vi(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 Mi(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 pi(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 yi(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 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];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 di(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 ye(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 mi(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 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=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 ui(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 Ti(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 Ei(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 _i(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 Ri(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 Oi(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 Ai(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,$=f*m-M*p,b=v*y-o*x,F=v*m-M*x,q=o*m-M*y,L=R*q-d*F+g*b+P*$-A*C+N*z;return L?(L=1/L,r[0]=(h*q-c*F+l*b)*L,r[1]=(c*$-s*q-l*C)*L,r[2]=(s*F-h*$+l*z)*L,r[3]=(i*F-n*q-a*b)*L,r[4]=(t*q-i*$+a*C)*L,r[5]=(n*$-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 Pi(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 Li(r){return"mat3("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+")"}function wi(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])}function $i(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 xe(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 Si(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 zi(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 Ci(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 Fi(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 Ni=ye;w.mul=Ni;var bi=xe;w.sub=bi;var de;(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"})(de||(de={})),Object.freeze([1,0,0,0,1,0,0,0,1]);var E={};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(E,"__esModule",{value:!0}),E.create=Hi,E.clone=Qi,E.copy=Ji,E.fromValues=ji,E.set=r1,E.identity=ue;var qi=E.transpose=e1,Yi=E.invert=t1;E.adjoint=n1;var ki=E.determinant=i1,me=E.multiply=Te,Wi=E.translate=a1,Bi=E.scale=s1,Zi=E.rotate=h1,Di=E.rotateX=c1,Vi=E.rotateY=l1,Ui=E.rotateZ=f1;E.fromTranslation=o1,E.fromScaling=v1,E.fromRotation=M1,E.fromXRotation=p1,E.fromYRotation=y1,E.fromZRotation=x1,E.fromRotationTranslation=Ee,E.fromQuat2=d1,E.getTranslation=m1,E.getScaling=_e,E.getRotation=g1,E.fromRotationTranslationScale=u1,E.fromRotationTranslationScaleOrigin=T1;var Xi=E.fromQuat=E1,Ii=E.frustum=_1;E.perspectiveNO=Re,E.perspectiveZO=O1,E.perspectiveFromFieldOfView=A1,E.orthoNO=Ae,E.orthoZO=L1;var Ki=E.lookAt=w1;E.targetTo=$1,E.str=S1,E.frob=z1,E.add=C1,E.subtract=Le,E.multiplyScalar=F1,E.multiplyScalarAndAdd=N1,E.exactEquals=b1,E.equals=q1,E.sub=E.mul=Pe=E.ortho=Oe=E.perspective=void 0;var S=Gi(W);function ge(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(ge=function(i){return i?t:e})(r)}function Gi(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||yr(r)!=="object"&&typeof r!="function")return{default:r};var t=ge(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 Hi(){var r=new S.ARRAY_TYPE(16);return S.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 Qi(r){var e=new S.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 ji(r,e,t,n,i,a,s,h,c,l,f,v,o,M,p,x){var y=new S.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 r1(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 ue(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 e1(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 t1(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,$=f*m-M*p,b=v*y-o*x,F=v*m-M*x,q=o*m-M*y,L=R*q-d*F+g*b+P*$-A*C+N*z;return L?(L=1/L,r[0]=(h*q-c*F+l*b)*L,r[1]=(i*F-n*q-a*b)*L,r[2]=(x*N-y*A+m*P)*L,r[3]=(o*A-v*N-M*P)*L,r[4]=(c*$-s*q-l*C)*L,r[5]=(t*q-i*$+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*$+l*z)*L,r[9]=(n*$-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*b-c*z)*L,r[13]=(t*b-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 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];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 i1(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,$=f*x-v*p,b=f*y-o*p,F=v*y-o*x;return m*F-R*b+d*$+g*C-P*z+A*N}function Te(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 a1(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 s1(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 h1(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,$,b,F,q,L,U;return h<S.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,$=i*a*f-s*c,b=a*a*f+l,F=s*a*f+i*c,q=i*s*f+a*c,L=a*s*f-i*c,U=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*$+x*b+d*F,r[5]=o*$+y*b+g*F,r[6]=M*$+m*b+P*F,r[7]=p*$+R*b+A*F,r[8]=v*q+x*L+d*U,r[9]=o*q+y*L+g*U,r[10]=M*q+m*L+P*U,r[11]=p*q+R*L+A*U,e!==r&&(r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r)}function c1(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 l1(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 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[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 o1(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 v1(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 M1(r,e,t){var n=t[0],i=t[1],a=t[2],s=Math.hypot(n,i,a),h,c,l;return s<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 p1(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 y1(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 x1(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 Ee(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 d1(r,e){var t=new S.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),Ee(r,e,t),r}function m1(r,e){return r[0]=e[12],r[1]=e[13],r[2]=e[14],r}function _e(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 g1(r,e){var t=new S.ARRAY_TYPE(3);_e(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 u1(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 T1(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],$=i[2],b=(1-(x+m))*P,F=(M+g)*P,q=(p-d)*P,L=(M-g)*A,U=(1-(o+m))*A,rr=(y+R)*A,er=(p+d)*N,Wr=(y-R)*N,Br=(1-(o+x))*N;return r[0]=b,r[1]=F,r[2]=q,r[3]=0,r[4]=L,r[5]=U,r[6]=rr,r[7]=0,r[8]=er,r[9]=Wr,r[10]=Br,r[11]=0,r[12]=t[0]+z-(b*z+L*C+er*$),r[13]=t[1]+C-(F*z+U*C+Wr*$),r[14]=t[2]+$-(q*z+rr*C+Br*$),r[15]=1,r}function E1(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 _1(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 Re(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 R1=Re,Oe=E.perspective=R1;function O1(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 A1(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 Ae(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 P1=Ae,Pe=E.ortho=P1;function L1(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 w1(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)<S.EPSILON&&Math.abs(x-P)<S.EPSILON&&Math.abs(y-A)<S.EPSILON?ue(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 $1(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 S1(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 z1(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 C1(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 Le(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 F1(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 N1(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 b1(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 q1(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],$=e[8],b=e[9],F=e[10],q=e[11],L=e[12],U=e[13],rr=e[14],er=e[15];return Math.abs(t-R)<=S.EPSILON*Math.max(1,Math.abs(t),Math.abs(R))&&Math.abs(n-d)<=S.EPSILON*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(i-g)<=S.EPSILON*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(a-P)<=S.EPSILON*Math.max(1,Math.abs(a),Math.abs(P))&&Math.abs(s-A)<=S.EPSILON*Math.max(1,Math.abs(s),Math.abs(A))&&Math.abs(h-N)<=S.EPSILON*Math.max(1,Math.abs(h),Math.abs(N))&&Math.abs(c-z)<=S.EPSILON*Math.max(1,Math.abs(c),Math.abs(z))&&Math.abs(l-C)<=S.EPSILON*Math.max(1,Math.abs(l),Math.abs(C))&&Math.abs(f-$)<=S.EPSILON*Math.max(1,Math.abs(f),Math.abs($))&&Math.abs(v-b)<=S.EPSILON*Math.max(1,Math.abs(v),Math.abs(b))&&Math.abs(o-F)<=S.EPSILON*Math.max(1,Math.abs(o),Math.abs(F))&&Math.abs(M-q)<=S.EPSILON*Math.max(1,Math.abs(M),Math.abs(q))&&Math.abs(p-L)<=S.EPSILON*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(x-U)<=S.EPSILON*Math.max(1,Math.abs(x),Math.abs(U))&&Math.abs(y-rr)<=S.EPSILON*Math.max(1,Math.abs(y),Math.abs(rr))&&Math.abs(m-er)<=S.EPSILON*Math.max(1,Math.abs(m),Math.abs(er))}var Y1=Te;E.mul=Y1;var k1=Le;E.sub=k1;var O={};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(O,"__esModule",{value:!0}),O.create=$e,O.clone=Z1,O.fromValues=D1,O.copy=V1,O.set=U1,O.add=X1,O.subtract=Se,O.multiply=ze,O.divide=Ce,O.ceil=I1,O.floor=K1,O.min=G1,O.max=H1,O.round=Q1,O.scale=J1,O.scaleAndAdd=j1,O.distance=Fe,O.squaredDistance=Ne,O.length=be,O.squaredLength=qe,O.negate=ra,O.inverse=ea,O.normalize=ta,O.dot=na,O.cross=ia,O.lerp=sa,O.random=ha;var W1=O.transformMat4=ca;O.transformQuat=la,O.zero=fa,O.str=oa,O.exactEquals=va,O.equals=Ma,O.forEach=O.sqrLen=O.len=O.sqrDist=O.dist=O.div=O.mul=O.sub=void 0;var D=B1(W);function we(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(we=function(i){return i?t:e})(r)}function B1(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||xr(r)!=="object"&&typeof r!="function")return{default:r};var t=we(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 $e(){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 Z1(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 D1(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 V1(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r}function U1(r,e,t,n,i){return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r}function X1(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 Ce(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 I1(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 K1(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 G1(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 H1(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 Q1(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 j1(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 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 Math.hypot(t,n,i,a)}function Ne(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 be(r){var e=r[0],t=r[1],n=r[2],i=r[3];return Math.hypot(e,t,n,i)}function qe(r){var e=r[0],t=r[1],n=r[2],i=r[3];return e*e+t*t+n*n+i*i}function ra(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=-e[3],r}function ea(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 ta(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 na(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3]}function ia(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 sa(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 ha(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 ca(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 la(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 fa(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r}function oa(r){return"vec4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}function va(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]}function Ma(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 pa=Se;O.sub=pa;var ya=ze;O.mul=ya;var xa=Ce;O.div=xa;var da=Fe;O.dist=da;var ma=Ne;O.sqrDist=ma;var ga=be;O.len=ga;var ua=qe;O.sqrLen=ua;var Ta=function(){var r=$e();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=Ta;var zr;(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"})(zr||(zr={}));const Ea=45*Math.PI/180,_a=1,Cr=.1,Fr=500,Ra=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);class ar extends ai{static get IDENTITY(){return Aa()}static get ZERO(){return Oa()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return zr}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(Ra)}fromObject(e){return this.check()}fromQuaternion(e){return Xi(this,e),this.check()}frustum(e){const{left:t,right:n,bottom:i,top:a,near:s=Cr,far:h=Fr}=e;return h===1/0?Pa(this,t,n,i,a,s):Ii(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 Ki(this,t,n,i),this.check()}ortho(e){const{left:t,right:n,bottom:i,top:a,near:s=Cr,far:h=Fr}=e;return Pe(this,t,n,i,a,s,h),this.check()}orthographic(e){const{fovy:t=Ea,aspect:n=_a,focalDistance:i=1,near:a=Cr,far:s=Fr}=e;Ye(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 Ye(t),Oe(this,t,n,i,a),this.check()}determinant(){return ki(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 qi(this,this),this.check()}invert(){return Yi(this,this),this.check()}multiplyLeft(e){return me(this,e,this),this.check()}multiplyRight(e){return me(this,this,e),this.check()}rotateX(e){return Di(this,this,e),this.check()}rotateY(e){return Vi(this,this,e),this.check()}rotateZ(e){return Ui(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,t){return Zi(this,this,e,t),this.check()}scale(e){return Bi(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return Wi(this,this,e),this.check()}transform(e,t){return e.length===4?(t=W1(t||[-0,-0,-0,-0],e,this),Sr(t,4),t):this.transformAsPoint(e,t)}transformAsPoint(e,t){const{length:n}=e;let i;switch(n){case 2:i=$t(t||[-0,-0],e,this);break;case 3:i=mn(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Sr(i,e.length),i}transformAsVector(e,t){let n;switch(e.length){case 2:n=xn(t||[-0,-0],e,this);break;case 3:n=dn(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Sr(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 dr,mr;function Oa(){return dr||(dr=new ar([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(dr)),dr}function Aa(){return mr||(mr=new ar,Object.freeze(mr)),mr}function Ye(r){if(r>Math.PI*2)throw Error("expected radians")}function Pa(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 gr(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?gr=function(t){return typeof t}:gr=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gr(r)}Object.defineProperty(u,"__esModule",{value:!0}),u.create=Nr,u.identity=wa,u.setAxisAngle=We,u.getAxisAngle=$a,u.getAngle=Sa,u.multiply=Be,u.rotateX=za,u.rotateY=Ca,u.rotateZ=Fa,u.calculateW=Na,u.exp=Ze,u.ln=De,u.pow=ba,u.slerp=Tr,u.random=qa,u.invert=Ya,u.conjugate=ka,u.fromMat3=Ve,u.fromEuler=Wa,u.str=Ba,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 J=ur(W),La=ur(w),K=ur(T),Z=ur(O);function ke(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(ke=function(i){return i?t:e})(r)}function ur(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||gr(r)!=="object"&&typeof r!="function")return{default:r};var t=ke(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 Nr(){var r=new J.ARRAY_TYPE(4);return J.ARRAY_TYPE!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function wa(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=1,r}function We(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 $a(r,e){var t=Math.acos(e[3])*2,n=Math.sin(t/2);return n>J.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 Sa(r,e){var t=Xe(r,e);return Math.acos(2*t*t-1)}function Be(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 za(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 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-a*h,r[1]=i*c+s*h,r[2]=a*c+n*h,r[3]=s*c-i*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+i*h,r[1]=i*c-n*h,r[2]=a*c+s*h,r[3]=s*c-a*h,r}function Na(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 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=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 De(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 ba(r,e,t){return De(r,e),Ue(r,r,t),Ze(r,r),r}function Tr(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>J.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 qa(r){var e=J.RANDOM(),t=J.RANDOM(),n=J.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 Ya(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 ka(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=e[3],r}function Ve(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 Wa(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 Ba(r){return"quat("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}var Za=Z.clone;u.clone=Za;var Da=Z.fromValues;u.fromValues=Da;var Va=Z.copy;u.copy=Va;var Ua=Z.set;u.set=Ua;var Xa=Z.add;u.add=Xa;var Ia=Be;u.mul=Ia;var Ue=Z.scale;u.scale=Ue;var Xe=Z.dot;u.dot=Xe;var Ka=Z.lerp;u.lerp=Ka;var Ie=Z.length;u.length=Ie;var Ga=Ie;u.len=Ga;var Ke=Z.squaredLength;u.squaredLength=Ke;var Ha=Ke;u.sqrLen=Ha;var br=Z.normalize;u.normalize=br;var Qa=Z.exactEquals;u.exactEquals=Qa;var Ja=Z.equals;u.equals=Ja;var ja=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),We(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,br(n,n))}}();u.rotationTo=ja;var r0=function(){var r=Nr(),e=Nr();return function(t,n,i,a,s,h){return Tr(r,n,s,h),Tr(e,i,a,h),Tr(t,r,e,2*h*(1-h)),t}}();u.sqlerp=r0;var e0=function(){var r=La.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],br(e,Ve(e,r))}}();u.setAxes=e0;var Ge;(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"})(Ge||(Ge={}));const k=3.141592653589793,Er=6378245,_r=.006693421622965943,Rr=k*3e3/180;function sr(r,e,t){const n=k/180*e,i=Math.pow(2,t),a=Math.floor((r+180)/360*i),s=Math.floor((1-Math.asinh(Math.tan(n))/k)/2*i);return[a,s]}function He(r,e,t){const n=Math.pow(2,t),i=r/n*360-180,a=Math.atan(Math.sinh(k*(1-2*e/n)))*180/k;return[i,a]}function t0(r,e){let t=je(r-105,e-35),n=rt(r-105,e-35);const i=e/180*k;let a=Math.sin(i);a=1-_r*a*a;const s=Math.sqrt(a);t=t*180/(Er*(1-_r)/(a*s)*k),n=n*180/(Er/s*Math.cos(i)*k);const h=e+t;return{lng:r+n,lat:h}}function Qe(r,e){const t=i0(r,e),n=r*2-t.lng,i=e*2-t.lat;return{lng:n,lat:i}}function Je(r,e){const t=Math.sqrt(r*r+e*e)+2e-5*Math.sin(e*Rr),n=Math.atan2(e,r)+3e-6*Math.cos(r*Rr),i=t*Math.cos(n)+.0065,a=t*Math.sin(n)+.006;return{lng:i,lat:a}}function n0(r,e){const t=r-.0065,n=e-.006,i=Math.sqrt(t*t+n*n)-2e-5*Math.sin(n*Rr),a=Math.atan2(n,t)-3e-6*Math.cos(t*Rr),s=i*Math.cos(a),h=i*Math.sin(a);return{lng:s,lat:h}}function i0(r,e){let t=je(r-105,e-35),n=rt(r-105,e-35);const i=e/180*k;let a=Math.sin(i);a=1-_r*a*a;const s=Math.sqrt(a);t=t*180/(Er*(1-_r)/(a*s)*k),n=n*180/(Er/s*Math.cos(i)*k);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*k)+20*Math.sin(2*r*k))*2/3,t+=(20*Math.sin(e*k)+40*Math.sin(e/3*k))*2/3,t+=(160*Math.sin(e/12*k)+320*Math.sin(e*k/30))*2/3,t}function rt(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*k)+20*Math.sin(2*r*k))*2/3,t+=(20*Math.sin(r*k)+40*Math.sin(r/3*k))*2/3,t+=(150*Math.sin(r/12*k)+300*Math.sin(r/30*k))*2/3,t}function et(r,e){for(var t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r}function a0(r,e){for(var t in e)r[t]=e[t]}function tt(r){return typeof r=="string"}var nt=void 0,Or=null;function V(r,e){isNaN(r)&&(r=Ib(r),r=isNaN(r)?0:r),tt(r)&&(r=parseFloat(r)),isNaN(e)&&(e=Ib(e),e=isNaN(e)?0:e),tt(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 Ar(r,e){this.x=r||0,this.y=e||0,this.x=this.x,this.y=this.y}Ar.prototype.lb=function(r){return r&&r.x==this.x&&r.y==this.y};function qr(){}qr.prototype.nh=function(){aa("lngLatToPoint\u65B9\u6CD5\u672A\u5B9E\u73B0")},qr.prototype.wi=function(){aa("pointToLngLat\u65B9\u6CD5\u672A\u5B9E\u73B0")};function G(){}G.prototype=new qr,et(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===Or||r===nt)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===Or||r===nt||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!=Or&&(r=Math.max(r,e)),t!=Or&&(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}}),et(G.prototype,{Jm:function(r){return G.Eb(r)},nh:function(r){return r=G.Eb(r),new Ar(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 Ar(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 Yr=G.prototype;a0(Yr,{lngLatToPoint:Yr.nh,pointToLngLat:Yr.wi});let kr={Point:V,Pixel:Ar,MercatorProjection:G};class s0{constructor(e,t){this.projection=new kr.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 kr.Point(e,t),i=this.projection.lngLatToPoint(n);return{pointX:i.x,pointY:i.y}}pointToLnglat(e,t){let n=new kr.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 h0=/\{ *([\w_-]+) *\}/g;function c0(r,e){return r.replace(h0,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 l0{constructor(e,t){if(this.program=null,this.showTiles=[],this.isReadRender=!1,this.isLayerShow=!1,this.tileCache=[],this.gridCache={},this.transformBaidu=new s0,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=hr.exports.flatten(n),a=hr.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=Qe(...c),M=Qe(...l);s=sr(o.lng,o.lat,i),h=sr(M.lng,M.lat,i)}else if(this.options.proj==="bd09"){const o=Je(...c),M=Je(...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=t0(...He(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=n0(...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(He(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=c0(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}}exports.CustomXyzLayer=l0;
//# sourceMappingURL=index.cjs.map