UNPKG

cesium

Version:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.

27 lines (25 loc) 20.3 kB
/** * @license * Cesium - https://github.com/CesiumGS/cesium * Version 1.142.0 * * Copyright 2011-2022 Cesium Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Columbus View (Pat. Pend.) * * Portions licensed separately. * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. */ import{a}from"./chunk-U4VWQPTS.js";import{a as d}from"./chunk-GZABERXA.js";import{a as g,b as r}from"./chunk-WM6AKY6B.js";import{e as W,f as u}from"./chunk-6K4BWAPV.js";var ve=new a,_e=new a;function Fe(i,t,e,n,o){if(!u(i))throw new g("cartesian is required.");if(!u(t))throw new g("oneOverRadii is required.");if(!u(e))throw new g("oneOverRadiiSquared is required.");if(!u(n))throw new g("centerToleranceSquared is required.");let s=i.x,c=i.y,m=i.z,p=t.x,A=t.y,j=t.z,w=s*s*p*p,q=c*c*A*A,T=m*m*j*j,N=w+q+T,C=Math.sqrt(1/N),E=a.multiplyByScalar(i,C,ve);if(N<n)return isFinite(C)?a.clone(E,o):void 0;let H=e.x,J=e.y,K=e.z,I=_e;I.x=E.x*H*2,I.y=E.y*J*2,I.z=E.z*K*2;let B=(1-C)*a.magnitude(i)/(.5*a.magnitude(I)),fe=0,ee,le,v,_,F,te,ne,ie,me,pe,ye;do{B-=fe,v=1/(1+B*H),_=1/(1+B*J),F=1/(1+B*K),te=v*v,ne=_*_,ie=F*F,me=te*v,pe=ne*_,ye=ie*F,ee=w*te+q*ne+T*ie-1,le=w*me*H+q*pe*J+T*ye*K;let Ce=-2*le;fe=ee/Ce}while(Math.abs(ee)>d.EPSILON12);return u(o)?(o.x=s*v,o.y=c*_,o.z=m*F,o):new a(s*v,c*_,m*F)}var U=Fe;var h=class h{constructor(t,e,n){this.longitude=t??0,this.latitude=e??0,this.height=n??0}static fromRadians(t,e,n,o){return r.typeOf.number("longitude",t),r.typeOf.number("latitude",e),n=n??0,u(o)?(o.longitude=t,o.latitude=e,o.height=n,o):new h(t,e,n)}static fromDegrees(t,e,n,o){return r.typeOf.number("longitude",t),r.typeOf.number("latitude",e),t=d.toRadians(t),e=d.toRadians(e),h.fromRadians(t,e,n,o)}static fromCartesian(t,e,n){let o=u(e)?e.oneOverRadii:h._ellipsoidOneOverRadii,s=u(e)?e.oneOverRadiiSquared:h._ellipsoidOneOverRadiiSquared,c=u(e)?e._centerToleranceSquared:h._ellipsoidCenterToleranceSquared,m=U(t,o,s,c,Ne);if(!u(m))return;let p=a.multiplyComponents(m,s,Me);p=a.normalize(p,p);let A=a.subtract(t,m,ze),j=Math.atan2(p.y,p.x),w=Math.asin(p.z),q=d.sign(a.dot(A,t))*a.magnitude(A);return u(n)?(n.longitude=j,n.latitude=w,n.height=q,n):new h(j,w,q)}static toCartesian(t,e,n){return r.defined("cartographic",t),a.fromRadians(t.longitude,t.latitude,t.height,e,n)}static clone(t,e){if(u(t))return u(e)?(e.longitude=t.longitude,e.latitude=t.latitude,e.height=t.height,e):new h(t.longitude,t.latitude,t.height)}static equals(t,e){return t===e||u(t)&&u(e)&&t.longitude===e.longitude&&t.latitude===e.latitude&&t.height===e.height}static equalsEpsilon(t,e,n){return n=n??0,t===e||u(t)&&u(e)&&Math.abs(t.longitude-e.longitude)<=n&&Math.abs(t.latitude-e.latitude)<=n&&Math.abs(t.height-e.height)<=n}clone(t){return h.clone(this,t)}equals(t){return h.equals(this,t)}equalsEpsilon(t,e){return h.equalsEpsilon(this,t,e)}toString(){return`(${this.longitude}, ${this.latitude}, ${this.height})`}};W(h,"_ellipsoidOneOverRadii",new a(1/6378137,1/6378137,1/6356752314245179e-9)),W(h,"_ellipsoidOneOverRadiiSquared",new a(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9))),W(h,"_ellipsoidCenterToleranceSquared",d.EPSILON1);var z=h;z.ZERO=Object.freeze(new z(0,0,0));var Me=new a,Ne=new a,ze=new a,P=z;var f=class i{constructor(t,e){this.x=t??0,this.y=e??0}static fromElements(t,e,n){return u(n)?(n.x=t,n.y=e,n):new i(t,e)}static clone(t,e){if(u(t))return u(e)?(e.x=t.x,e.y=t.y,e):new i(t.x,t.y)}static pack(t,e,n){return r.typeOf.object("value",t),r.defined("array",e),n=n??0,e[n++]=t.x,e[n]=t.y,e}static unpack(t,e,n){return r.defined("array",t),e=e??0,u(n)||(n=new i),n.x=t[e++],n.y=t[e],n}static packArray(t,e){r.defined("array",t);let n=t.length,o=n*2;if(!u(e))e=new Array(o);else{if(!Array.isArray(e)&&e.length!==o)throw new g("If result is a typed array, it must have exactly array.length * 2 elements");e.length!==o&&(e.length=o)}for(let s=0;s<n;++s)i.pack(t[s],e,s*2);return e}static unpackArray(t,e){if(r.defined("array",t),r.typeOf.number.greaterThanOrEquals("array.length",t.length,2),t.length%2!==0)throw new g("array length must be a multiple of 2.");let n=t.length;u(e)?e.length=n/2:e=new Array(n/2);for(let o=0;o<n;o+=2){let s=o/2;e[s]=i.unpack(t,o,e[s])}return e}static maximumComponent(t){return r.typeOf.object("cartesian",t),Math.max(t.x,t.y)}static minimumComponent(t){return r.typeOf.object("cartesian",t),Math.min(t.x,t.y)}static minimumByComponent(t,e,n){return r.typeOf.object("first",t),r.typeOf.object("second",e),r.typeOf.object("result",n),n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n}static maximumByComponent(t,e,n){return r.typeOf.object("first",t),r.typeOf.object("second",e),r.typeOf.object("result",n),n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n}static clamp(t,e,n,o){r.typeOf.object("value",t),r.typeOf.object("min",e),r.typeOf.object("max",n),r.typeOf.object("result",o);let s=d.clamp(t.x,e.x,n.x),c=d.clamp(t.y,e.y,n.y);return o.x=s,o.y=c,o}static magnitudeSquared(t){return r.typeOf.object("cartesian",t),t.x*t.x+t.y*t.y}static magnitude(t){return Math.sqrt(i.magnitudeSquared(t))}static distance(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),i.subtract(t,e,V),i.magnitude(V)}static distanceSquared(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),i.subtract(t,e,V),i.magnitudeSquared(V)}static normalize(t,e){r.typeOf.object("cartesian",t),r.typeOf.object("result",e);let n=i.magnitude(t);if(e.x=t.x/n,e.y=t.y/n,isNaN(e.x)||isNaN(e.y))throw new g("normalized result is not a number");return e}static dot(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),t.x*e.x+t.y*e.y}static cross(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),t.x*e.y-t.y*e.x}static multiplyComponents(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x*e.x,n.y=t.y*e.y,n}static divideComponents(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x/e.x,n.y=t.y/e.y,n}static add(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x+e.x,n.y=t.y+e.y,n}static subtract(t,e,n){return r.typeOf.object("left",t),r.typeOf.object("right",e),r.typeOf.object("result",n),n.x=t.x-e.x,n.y=t.y-e.y,n}static multiplyByScalar(t,e,n){return r.typeOf.object("cartesian",t),r.typeOf.number("scalar",e),r.typeOf.object("result",n),n.x=t.x*e,n.y=t.y*e,n}static divideByScalar(t,e,n){return r.typeOf.object("cartesian",t),r.typeOf.number("scalar",e),r.typeOf.object("result",n),n.x=t.x/e,n.y=t.y/e,n}static negate(t,e){return r.typeOf.object("cartesian",t),r.typeOf.object("result",e),e.x=-t.x,e.y=-t.y,e}static abs(t,e){return r.typeOf.object("cartesian",t),r.typeOf.object("result",e),e.x=Math.abs(t.x),e.y=Math.abs(t.y),e}static lerp(t,e,n,o){return r.typeOf.object("start",t),r.typeOf.object("end",e),r.typeOf.number("t",n),r.typeOf.object("result",o),i.multiplyByScalar(e,n,he),o=i.multiplyByScalar(t,1-n,o),i.add(he,o,o)}static angleBetween(t,e){return r.typeOf.object("left",t),r.typeOf.object("right",e),i.normalize(t,Oe),i.normalize(e,ge),d.acosClamped(i.dot(Oe,ge))}static mostOrthogonalAxis(t,e){r.typeOf.object("cartesian",t),r.typeOf.object("result",e);let n=i.normalize(t,Pe);return i.abs(n,n),n.x<=n.y?e=i.clone(i.UNIT_X,e):e=i.clone(i.UNIT_Y,e),e}static equals(t,e){return t===e||u(t)&&u(e)&&t.x===e.x&&t.y===e.y}static equalsArray(t,e,n){return t.x===e[n]&&t.y===e[n+1]}static equalsEpsilon(t,e,n,o){return t===e||u(t)&&u(e)&&d.equalsEpsilon(t.x,e.x,n,o)&&d.equalsEpsilon(t.y,e.y,n,o)}clone(t){return i.clone(this,t)}equals(t){return i.equals(this,t)}equalsEpsilon(t,e,n){return i.equalsEpsilon(this,t,e,n)}toString(){return`(${this.x}, ${this.y})`}};f.fromCartesian3=f.clone;f.fromCartesian4=f.clone;f.packedLength=2;f.fromArray=f.unpack;var V=new f,he=new f,Oe=new f,ge=new f,Pe=new f;f.ZERO=Object.freeze(new f(0,0));f.ONE=Object.freeze(new f(1,1));f.UNIT_X=Object.freeze(new f(1,0));f.UNIT_Y=Object.freeze(new f(0,1));var re=f;function be(i,t,e,n){t=t??0,e=e??0,n=n??0,r.typeOf.number.greaterThanOrEquals("x",t,0),r.typeOf.number.greaterThanOrEquals("y",e,0),r.typeOf.number.greaterThanOrEquals("z",n,0),i._radii=new a(t,e,n),i._radiiSquared=new a(t*t,e*e,n*n),i._radiiToTheFourth=new a(t*t*t*t,e*e*e*e,n*n*n*n),i._oneOverRadii=new a(t===0?0:1/t,e===0?0:1/e,n===0?0:1/n),i._oneOverRadiiSquared=new a(t===0?0:1/(t*t),e===0?0:1/(e*e),n===0?0:1/(n*n)),i._minimumRadius=Math.min(t,e,n),i._maximumRadius=Math.max(t,e,n),i._centerToleranceSquared=d.EPSILON1,i._radiiSquared.z!==0&&(i._squaredXOverSquaredZ=i._radiiSquared.x/i._radiiSquared.z)}var O=class i{constructor(t,e,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,be(this,t,e,n)}get radii(){return this._radii}get radiiSquared(){return this._radiiSquared}get radiiToTheFourth(){return this._radiiToTheFourth}get oneOverRadii(){return this._oneOverRadii}get oneOverRadiiSquared(){return this._oneOverRadiiSquared}get minimumRadius(){return this._minimumRadius}get maximumRadius(){return this._maximumRadius}static clone(t,e){if(!u(t))return;let n=t._radii;return u(e)?(a.clone(n,e._radii),a.clone(t._radiiSquared,e._radiiSquared),a.clone(t._radiiToTheFourth,e._radiiToTheFourth),a.clone(t._oneOverRadii,e._oneOverRadii),a.clone(t._oneOverRadiiSquared,e._oneOverRadiiSquared),e._minimumRadius=t._minimumRadius,e._maximumRadius=t._maximumRadius,e._centerToleranceSquared=t._centerToleranceSquared,e):new i(n.x,n.y,n.z)}static fromCartesian3(t,e){return u(e)||(e=new i),u(t)&&be(e,t.x,t.y,t.z),e}static get default(){return i._default}static set default(t){r.typeOf.object("value",t),i._default=t,a._ellipsoidRadiiSquared=t.radiiSquared,P._ellipsoidOneOverRadii=t.oneOverRadii,P._ellipsoidOneOverRadiiSquared=t.oneOverRadiiSquared,P._ellipsoidCenterToleranceSquared=t._centerToleranceSquared}clone(t){return i.clone(this,t)}static pack(t,e,n){return r.typeOf.object("value",t),r.defined("array",e),n=n??0,a.pack(t._radii,e,n),e}static unpack(t,e,n){r.defined("array",t),e=e??0;let o=a.unpack(t,e);return i.fromCartesian3(o,n)}geodeticSurfaceNormalCartographic(t,e){r.typeOf.object("cartographic",t);let n=t.longitude,o=t.latitude,s=Math.cos(o),c=s*Math.cos(n),m=s*Math.sin(n),p=Math.sin(o);return u(e)||(e=new a),e.x=c,e.y=m,e.z=p,a.normalize(e,e)}geodeticSurfaceNormal(t,e){if(r.typeOf.object("cartesian",t),isNaN(t.x)||isNaN(t.y)||isNaN(t.z))throw new g("cartesian has a NaN component");if(!a.equalsEpsilon(t,a.ZERO,d.EPSILON14))return u(e)||(e=new a),e=a.multiplyComponents(t,this._oneOverRadiiSquared,e),a.normalize(e,e)}cartographicToCartesian(t,e){let n=ke,o=Ie;this.geodeticSurfaceNormalCartographic(t,n),a.multiplyComponents(this._radiiSquared,n,o);let s=Math.sqrt(a.dot(n,o));return a.divideByScalar(o,s,o),a.multiplyByScalar(n,t.height,n),u(e)||(e=new a),a.add(o,n,e)}cartographicArrayToCartesianArray(t,e){r.defined("cartographics",t);let n=t.length;u(e)?e.length=n:e=new Array(n);for(let o=0;o<n;o++)e[o]=this.cartographicToCartesian(t[o],e[o]);return e}cartesianToCartographic(t,e){let n=this.scaleToGeodeticSurface(t,We);if(!u(n))return;let o=this.geodeticSurfaceNormal(n,Be),s=a.subtract(t,n,Ue),c=Math.atan2(o.y,o.x),m=Math.asin(o.z),p=d.sign(a.dot(s,t))*a.magnitude(s);return u(e)?(e.longitude=c,e.latitude=m,e.height=p,e):new P(c,m,p)}cartesianArrayToCartographicArray(t,e){r.defined("cartesians",t);let n=t.length;u(e)?e.length=n:e=new Array(n);for(let o=0;o<n;++o)e[o]=this.cartesianToCartographic(t[o],e[o]);return e}scaleToGeodeticSurface(t,e){return U(t,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,e)}scaleToGeocentricSurface(t,e){r.typeOf.object("cartesian",t),u(e)||(e=new a);let n=t.x,o=t.y,s=t.z,c=this._oneOverRadiiSquared,m=1/Math.sqrt(n*n*c.x+o*o*c.y+s*s*c.z);return a.multiplyByScalar(t,m,e)}transformPositionToScaledSpace(t,e){return u(e)||(e=new a),a.multiplyComponents(t,this._oneOverRadii,e)}transformPositionFromScaledSpace(t,e){return u(e)||(e=new a),a.multiplyComponents(t,this._radii,e)}equals(t){return this===t||u(t)&&a.equals(this._radii,t._radii)}toString(){return this._radii.toString()}getSurfaceNormalIntersectionWithZAxis(t,e,n){if(r.typeOf.object("position",t),!d.equalsEpsilon(this._radii.x,this._radii.y,d.EPSILON15))throw new g("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");r.typeOf.number.greaterThan("Ellipsoid.radii.z",this._radii.z,0),e=e??0;let o=this._squaredXOverSquaredZ;if(u(n)||(n=new a),n.x=0,n.y=0,n.z=t.z*(1-o),!(Math.abs(n.z)>=this._radii.z-e))return n}getLocalCurvature(t,e){r.typeOf.object("surfacePosition",t),u(e)||(e=new re);let n=this.getSurfaceNormalIntersectionWithZAxis(t,0,Ve),o=a.distance(t,n),s=this.minimumRadius*o/this.maximumRadius**2,c=o*s**2;return re.fromElements(1/o,1/c,e)}surfaceArea(t){r.typeOf.object("rectangle",t);let e=t.west,n=t.east,o=t.south,s=t.north;for(;n<e;)n+=d.TWO_PI;let c=this._radiiSquared,m=c.x,p=c.y,A=c.z,j=m*p;return xe(o,s,function(w){let q=Math.cos(w),T=Math.sin(w);return Math.cos(w)*xe(e,n,function(N){let C=Math.cos(N),E=Math.sin(N);return Math.sqrt(j*T*T+A*(p*C*C+m*E*E)*q*q)})})}};O.WGS84=Object.freeze(new O(6378137,6378137,6356752314245179e-9));O.UNIT_SPHERE=Object.freeze(new O(1,1,1));O.MOON=Object.freeze(new O(d.LUNAR_RADIUS,d.LUNAR_RADIUS,d.LUNAR_RADIUS));O.MARS=Object.freeze(new O(3396190,3396190,3376200));O._default=O.WGS84;O.packedLength=a.packedLength;O.prototype.geocentricSurfaceNormal=a.normalize;var ke=new a,Ie=new a,Be=new a,We=new a,Ue=new a,Ve=new a,Le=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],$e=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function xe(i,t,e){r.typeOf.number("a",i),r.typeOf.number("b",t),r.typeOf.func("func",e);let n=.5*(t+i),o=.5*(t-i),s=0;for(let c=0;c<5;c++){let m=o*Le[c];s+=$e[c]*(e(n+m)+e(n-m))}return s*=o,s}var At=O;var R,l={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},b={};Object.defineProperties(b,{element:{get:function(){if(b.supportsFullscreen())return document[l.fullscreenElement]}},changeEventName:{get:function(){if(b.supportsFullscreen())return l.fullscreenchange}},errorEventName:{get:function(){if(b.supportsFullscreen())return l.fullscreenerror}},enabled:{get:function(){if(b.supportsFullscreen())return document[l.fullscreenEnabled]}},fullscreen:{get:function(){if(b.supportsFullscreen())return b.element!==null}}});b.supportsFullscreen=function(){if(u(R))return R;R=!1;let i=document.body;if(typeof i.requestFullscreen=="function")return l.requestFullscreen="requestFullscreen",l.exitFullscreen="exitFullscreen",l.fullscreenEnabled="fullscreenEnabled",l.fullscreenElement="fullscreenElement",l.fullscreenchange="fullscreenchange",l.fullscreenerror="fullscreenerror",R=!0,R;let t=["webkit","moz","o","ms","khtml"],e;for(let n=0,o=t.length;n<o;++n){let s=t[n];e=`${s}RequestFullscreen`,typeof i[e]=="function"?(l.requestFullscreen=e,R=!0):(e=`${s}RequestFullScreen`,typeof i[e]=="function"&&(l.requestFullscreen=e,R=!0)),e=`${s}ExitFullscreen`,typeof document[e]=="function"?l.exitFullscreen=e:(e=`${s}CancelFullScreen`,typeof document[e]=="function"&&(l.exitFullscreen=e)),e=`${s}FullscreenEnabled`,document[e]!==void 0?l.fullscreenEnabled=e:(e=`${s}FullScreenEnabled`,document[e]!==void 0&&(l.fullscreenEnabled=e)),e=`${s}FullscreenElement`,document[e]!==void 0?l.fullscreenElement=e:(e=`${s}FullScreenElement`,document[e]!==void 0&&(l.fullscreenElement=e)),e=`${s}fullscreenchange`,document[`on${e}`]!==void 0&&(s==="ms"&&(e="MSFullscreenChange"),l.fullscreenchange=e),e=`${s}fullscreenerror`,document[`on${e}`]!==void 0&&(s==="ms"&&(e="MSFullscreenError"),l.fullscreenerror=e)}return R};b.requestFullscreen=function(i,t){b.supportsFullscreen()&&i[l.requestFullscreen]({vrDisplay:t})};b.exitFullscreen=function(){b.supportsFullscreen()&&document[l.exitFullscreen]()};b._names=l;var Se=b;var x;typeof navigator<"u"?x=navigator:x={};function k(i){let t=i.split(".");for(let e=0,n=t.length;e<n;++e)t[e]=parseInt(t[e],10);return t}var L,we;function ce(){if(!u(L)&&(L=!1,!Y())){let i=/ Chrome\/([\.0-9]+)/.exec(x.userAgent);i!==null&&(L=!0,we=k(i[1]))}return L}function De(){return ce()&&we}var $,qe;function Re(){if(!u($)&&($=!1,!ce()&&!Y()&&/ Safari\/[\.0-9]+/.test(x.userAgent))){let i=/ Version\/([\.0-9]+)/.exec(x.userAgent);i!==null&&($=!0,qe=k(i[1]))}return $}function Ze(){return Re()&&qe}var D,se;function Ae(){if(!u(D)){D=!1;let i=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(x.userAgent);i!==null&&(D=!0,se=k(i[1]),se.isNightly=!!i[2])}return D}function Ge(){return Ae()&&se}var Z,je;function Y(){if(!u(Z)){Z=!1;let i=/ Edg\/([\.0-9]+)/.exec(x.userAgent);i!==null&&(Z=!0,je=k(i[1]))}return Z}function Xe(){return Y()&&je}var G,de;function Q(){if(!u(G)){G=!1;let i=/Firefox\/([\.0-9]+)/.exec(x.userAgent);i!==null&&(G=!0,de=k(i[1]))}return G}var oe;function Ye(){return u(oe)||(oe=/Windows/i.test(x.appVersion)),oe}var ae;function Qe(){return u(ae)||(ae=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),ae}function He(){return Q()&&de}var ue;function Je(){return u(ue)||(ue=!Q()&&typeof PointerEvent<"u"&&(!u(x.pointerEnabled)||x.pointerEnabled)),ue}var Ee,X;function Te(){if(!u(X)){let i=document.createElement("canvas");i.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=i.style.imageRendering;X=u(t)&&t!=="",X&&(Ee=t)}return X}function Ke(){return Te()?Ee:void 0}function y(){if(!y.initialized)throw new g("You must call FeatureDetection.supportsWebP.initialize and wait for the promise to resolve before calling FeatureDetection.supportsWebP");return y._result}y._promise=void 0;y._result=void 0;y.initialize=function(){return u(y._promise)||(y._promise=new Promise(i=>{let t=new Image;t.onload=function(){y._result=t.width>0&&t.height>0,i(y._result)},t.onerror=function(){y._result=!1,i(y._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),y._promise};Object.defineProperties(y,{initialized:{get:function(){return u(y._result)}}});var M=[];typeof ArrayBuffer<"u"&&(M.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&M.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&M.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&M.push(BigInt64Array),typeof BigUint64Array<"u"&&M.push(BigUint64Array));var S={isChrome:ce,chromeVersion:De,isSafari:Re,safariVersion:Ze,isWebkit:Ae,webkitVersion:Ge,isEdge:Y,edgeVersion:Xe,isFirefox:Q,firefoxVersion:He,isWindows:Ye,isIPadOrIOS:Qe,hardwareConcurrency:x.hardwareConcurrency??3,supportsPointerEvents:Je,supportsImageRenderingPixelated:Te,supportsWebP:y,imageRenderingValue:Ke,typedArrayTypes:M};S.supportsBasis=function(i){return S.supportsWebAssembly()&&i.context.supportsBasis};S.supportsFullscreen=function(){return Se.supportsFullscreen()};S.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};S.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};S.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};S.supportsBigInt=function(){return typeof BigInt<"u"};S.supportsWebWorkers=function(){return typeof Worker<"u"};S.supportsWebAssembly=function(){return typeof WebAssembly<"u"};S.supportsWebgl2=function(i){return r.defined("scene",i),i.context.webgl2};S.supportsEsmWebWorkers=function(){return!Q()||parseInt(de)>=114};var Mt=S;export{P as a,re as b,At as c,Mt as d};