@luma.gl/gltf 9.0.12 → 9.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +1 -1
- package/dist/dist.min.js +1 -1
- package/package.json +4 -3
- package/dist.min.js +0 -67
package/dist/dist.dev.js
CHANGED
|
@@ -261,7 +261,7 @@ var __exports__ = (() => {
|
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
// ../../node_modules/@loaders.gl/images/dist/lib/utils/version.js
|
|
264
|
-
var VERSION = true ? "4.2.
|
|
264
|
+
var VERSION = true ? "4.2.1" : "latest";
|
|
265
265
|
|
|
266
266
|
// ../../node_modules/@loaders.gl/images/dist/lib/category-api/image-type.js
|
|
267
267
|
var parseImageNode = globalThis.loaders?.parseImageNode;
|
package/dist/dist.min.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['luma'] = factory();
|
|
6
6
|
else root['luma'] = factory();})(globalThis, function () {
|
|
7
|
-
var __exports__=(()=>{var Ln=Object.create;var ot=Object.defineProperty;var Rn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var vn=Object.getPrototypeOf,Nn=Object.prototype.hasOwnProperty;var Kt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),wn=(e,t)=>{for(var n in t)ot(e,n,{get:t[n],enumerable:!0})},it=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of In(t))!Nn.call(e,s)&&s!==n&&ot(e,s,{get:()=>t[s],enumerable:!(r=Rn(t,s))||r.enumerable});return e},ct=(e,t,n)=>(it(e,t,"default"),n&&it(n,t,"default")),D=(e,t,n)=>(n=e!=null?Ln(vn(e)):{},it(t||!e||!e.__esModule?ot(n,"default",{value:e,enumerable:!0}):n,e)),bn=e=>it(ot({},"__esModule",{value:!0}),e);var j=Kt((Kr,Qt)=>{Qt.exports=globalThis.luma});var Pt=Kt((Js,ge)=>{ge.exports=globalThis.luma});var st={};wn(st,{GLTFAnimator:()=>W,createScenegraphsFromGLTF:()=>Tn,loadPBREnvironment:()=>xe,parsePBRMaterial:()=>at});ct(st,D(j(),1));var Zt=D(j(),1),C;(function(e){e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.ONE=1]="ONE",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.LINEAR=9729]="LINEAR",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})(C||(C={}));function at(e,t,n,r){let s={defines:{MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},bindings:{},uniforms:{u_Camera:[0,0,0],u_MetallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};s.defines.USE_TEX_LOD=1;let{imageBasedLightingEnvironment:i}=r;return i&&(s.bindings.u_DiffuseEnvSampler=i.diffuseEnvSampler,s.bindings.u_SpecularEnvSampler=i.specularEnvSampler,s.bindings.u_brdfLUT=i.brdfLutTexture,s.uniforms.u_ScaleIBLAmbient=[1,1]),r?.pbrDebug&&(s.defines.PBR_DEBUG=1,s.uniforms.u_ScaleDiffBaseMR=[0,0,0,0],s.uniforms.u_ScaleFGDSpec=[0,0,0,0]),n.NORMAL&&(s.defines.HAS_NORMALS=1),n.TANGENT&&r?.useTangents&&(s.defines.HAS_TANGENTS=1),n.TEXCOORD_0&&(s.defines.HAS_UV=1),r?.imageBasedLightingEnvironment&&(s.defines.USE_IBL=1),r?.lights&&(s.defines.USE_LIGHTS=1),t&&On(e,t,s),s}function On(e,t,n){if(n.uniforms.pbr_uUnlit=Boolean(t.unlit),t.pbrMetallicRoughness&&Pn(e,t.pbrMetallicRoughness,n),t.normalTexture){K(e,t.normalTexture,"u_NormalSampler","HAS_NORMALMAP",n);let{scale:r=1}=t.normalTexture;n.uniforms.u_NormalScale=r}if(t.occlusionTexture){K(e,t.occlusionTexture,"u_OcclusionSampler","HAS_OCCLUSIONMAP",n);let{strength:r=1}=t.occlusionTexture;n.uniforms.u_OcclusionStrength=r}switch(t.emissiveTexture&&(K(e,t.emissiveTexture,"u_EmissiveSampler","HAS_EMISSIVEMAP",n),n.uniforms.u_EmissiveFactor=t.emissiveFactor||[0,0,0]),t.alphaMode){case"MASK":let{alphaCutoff:r=.5}=t;n.defines.ALPHA_CUTOFF=1,n.uniforms.u_AlphaCutoff=r;break;case"BLEND":Zt.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),n.parameters.blendColorOperation="add",n.parameters.blendColorSrcFactor="src-alpha",n.parameters.blendColorDstFactor="one-minus-src-alpha",n.parameters.blendAlphaOperation="add",n.parameters.blendAlphaSrcFactor="one",n.parameters.blendAlphaDstFactor="one-minus-src-alpha",n.glParameters.blend=!0,n.glParameters.blendEquation=C.FUNC_ADD,n.glParameters.blendFunc=[C.SRC_ALPHA,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA];break}}function Pn(e,t,n){t.baseColorTexture&&K(e,t.baseColorTexture,"u_BaseColorSampler","HAS_BASECOLORMAP",n),n.uniforms.u_BaseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&K(e,t.metallicRoughnessTexture,"u_MetallicRoughnessSampler","HAS_METALROUGHNESSMAP",n);let{metallicFactor:r=1,roughnessFactor:s=1}=t;n.uniforms.u_MetallicRoughnessValues=[r,s]}function K(e,t,n,r=null,s){let i=t?.texture?.sampler?.parameters||{},o=t.texture.source.image,c,a={};o.compressed?(c=o,a={[C.TEXTURE_MIN_FILTER]:o.data.length>1?C.LINEAR_MIPMAP_NEAREST:C.LINEAR}):c={data:o};let f=e.createTexture({id:t.uniformName||t.id,parameters:{...i,...a},pixelStore:{[C.UNPACK_FLIP_Y_WEBGL]:!1},...c});s.bindings[n]=f,r&&(s.defines[r]=1),s.generatedTextures.push(f)}function q(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var B={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Cn=B.self||B.window||B.global||{},Bn=B.window||B.self||B.global||{},zn=B.global||B.self||B.window||{},kn=B.document||{};var Tt=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Jt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Fn=Jt&&parseFloat(Jt[1])||0;var Un="",te={};function Lt(e){for(let t in te)if(e.startsWith(t)){let n=te[t];e=e.replace(t,n)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Un}${e}`),e}var ee="4.2.0";var Vn=globalThis.loaders?.parseImageNode,Rt=typeof Image<"u",It=typeof ImageBitmap<"u",qn=Boolean(Vn),vt=Tt?!0:qn;function ne(e){switch(e){case"auto":return It||Rt||vt;case"imagebitmap":return It;case"image":return Rt;case"data":return vt;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function re(){if(It)return"imagebitmap";if(Rt)return"image";if(vt)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function se(e){let t=Dn(e);if(!t)throw new Error("Not an image");return t}function Nt(e){return ft(e)}function ft(e){switch(se(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function Dn(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var Yn=/^data:image\/svg\+xml/,Hn=/\.svg((\?|#).*)?$/;function lt(e){return e&&(Yn.test(e)||Hn.test(e))}function ie(e,t){if(lt(t)){let r=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(r=unescape(encodeURIComponent(r)))}catch(i){throw new Error(i.message)}return`data:image/svg+xml;base64,${btoa(r)}`}return wt(e,t)}function wt(e,t){if(lt(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ht(e,t,n){let r=ie(e,n),s=self.URL||self.webkitURL,i=typeof r!="string"&&s.createObjectURL(r);try{return await Gn(i||r,t)}finally{i&&s.revokeObjectURL(i)}}async function Gn(e,t){let n=new Image;return n.src=e,t.image&&t.image.decode&&n.decode?(await n.decode(),n):await new Promise((r,s)=>{try{n.onload=()=>r(n),n.onerror=i=>{let o=i instanceof Error?i.message:"error";s(new Error(o))}}catch(i){s(i)}})}var Wn={},oe=!0;async function ce(e,t,n){let r;lt(n)?r=await ht(e,t,n):r=wt(e,n);let s=t&&t.imagebitmap;return await $n(r,s)}async function $n(e,t=null){if((Xn(t)||!oe)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),oe=!1}return await createImageBitmap(e)}function Xn(e){for(let t in e||Wn)return!1;return!0}function ae(e){return!Zn(e,"ftyp",4)||!(e[8]&96)?null:jn(e)}function jn(e){switch(Kn(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Kn(e,t,n){return String.fromCharCode(...e.slice(t,n))}function Qn(e){return[...e].map(t=>t.charCodeAt(0))}function Zn(e,t,n=0){let r=Qn(t);for(let s=0;s<r.length;++s)if(r[s]!==e[s+n])return!1;return!0}var z=!1,Q=!0;function pt(e){let t=Z(e);return tr(t)||rr(t)||er(t)||nr(t)||Jn(t)}function Jn(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),n=ae(t);return n?{mimeType:n.mimeType,width:0,height:0}:null}function tr(e){let t=Z(e);return t.byteLength>=24&&t.getUint32(0,z)===2303741511?{mimeType:"image/png",width:t.getUint32(16,z),height:t.getUint32(20,z)}:null}function er(e){let t=Z(e);return t.byteLength>=10&&t.getUint32(0,z)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,Q),height:t.getUint16(8,Q)}:null}function nr(e){let t=Z(e);return t.byteLength>=14&&t.getUint16(0,z)===16973&&t.getUint32(2,Q)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,Q),height:t.getUint32(22,Q)}:null}function rr(e){let t=Z(e);if(!(t.byteLength>=3&&t.getUint16(0,z)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:s}=sr(),i=2;for(;i+9<t.byteLength;){let o=t.getUint16(i,z);if(s.has(o))return{mimeType:"image/jpeg",height:t.getUint16(i+5,z),width:t.getUint16(i+7,z)};if(!r.has(o))return null;i+=2,i+=t.getUint16(i,z)}return null}function sr(){let e=new Set([65499,65476,65484,65501,65534]);for(let n=65504;n<65520;++n)e.add(n);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Z(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function fe(e,t){let{mimeType:n}=pt(e)||{},r=globalThis.loaders?.parseImageNode;return q(r),await r(e,n)}async function le(e,t,n){t=t||{};let s=(t.image||{}).type||"auto",{url:i}=n||{},o=ir(s),c;switch(o){case"imagebitmap":c=await ce(e,t,i);break;case"image":c=await ht(e,t,i);break;case"data":c=await fe(e,t);break;default:q(!1)}return s==="data"&&(c=ft(c)),c}function ir(e){switch(e){case"auto":case"data":return re();default:return ne(e),e}}var or=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],cr=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],ar={image:{type:"auto",decode:!0}},mt={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:ee,mimeTypes:cr,extensions:or,parse:le,tests:[e=>Boolean(pt(new DataView(e)))],options:ar};function xt(e,t,n){let r=typeof e=="function"?e({...t,...n}):e,s=t.baseUrl;return s&&(r=s[s.length-1]==="/"?`${s}${r}`:`${s}/${r}`),Lt(r)}var fr=e=>e&&typeof e=="object";async function he(e,t,n={}){return await bt(e,t,n)}async function bt(e,t,n){return Array.isArray(e)?await hr(e,t,n):fr(e)?await lr(e,t,n):await t(e,n)}async function lr(e,t,n){let r=[],s={};for(let i in e){let o=e[i],c=bt(o,t,n).then(a=>{s[i]=a});r.push(c)}return await Promise.all(r),s}async function hr(e,t,n={}){let r=e.map(s=>bt(s,t,n));return await Promise.all(r)}async function pe(e,t,n){return await he(e,r=>Ot(r,t,n))}async function Ot(e,t,n){let s=await(await fetch(e,n.fetch)).arrayBuffer();return await t(s,n)}async function J(e,t={}){let n=await pr(e,t);return await pe(n,mt.parse,t)}async function pr(e,t,n={}){let r=t&&t.image&&t.image.mipLevels||0;return r!==0?await mr(e,r,t,n):xt(e,t,n)}async function mr(e,t,n,r){let s=[];if(t==="auto"){let i=xt(e,n,{...r,lod:0}),o=await Ot(i,mt.parse,n),{width:c,height:a}=Nt(o);t=xr({width:c,height:a}),s.push(i)}q(t>0);for(let i=s.length;i<t;++i){let o=xt(e,n,{...r,lod:i});s.push(o)}return s}function xr(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}function xe(e,t){let n=e.createTexture({id:"brdfLUT",sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"},data:J(t.brdfLutUrl)}),r=me(e,{id:"DiffuseEnvSampler",getTextureForFace:i=>J(t.getTexUrl("diffuse",i,0)),sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}}),s=me(e,{id:"SpecularEnvSampler",getTextureForFace:i=>{let o=[];for(let c=0;c<=t.specularMipLevels-1;c++)o.push(J(t.getTexUrl("specular",i,c)));return o},sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}});return{brdfLutTexture:n,diffuseEnvSampler:r,specularEnvSampler:s}}var gr=[0,1,2,3,4,5];function me(e,{id:t,getTextureForFace:n,sampler:r}){let s={};return gr.forEach(i=>{s[String(i)]=n(i)}),e.createTexture({id:t,dimension:"cube",mipmaps:!1,sampler:r,data:s})}var $=D(Pt(),1);var ti=1/Math.PI*180,ei=1/180*Math.PI,dr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...dr}};var L=globalThis.mathgl.config;function de(e,{precision:t=L.precision}={}){return e=Mr(e),`${parseFloat(e.toPrecision(t))}`}function Y(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ct(e,t,n){let r=L.EPSILON;n&&(L.EPSILON=n);try{if(e===t)return!0;if(Y(e)&&Y(t)){if(e.length!==t.length)return!1;for(let s=0;s<e.length;++s)if(!Ct(e[s],t[s]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=L.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{L.EPSILON=r}}function Mr(e){return Math.round(e/L.EPSILON)*L.EPSILON}var V=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(t,n=0){for(let r=0;r<this.ELEMENTS;++r)this[r]=t[r+n];return this.check()}toArray(t=[],n=0){for(let r=0;r<this.ELEMENTS;++r)t[n+r]=this[r];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:Y(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(L)}formatString(t){let n="";for(let r=0;r<this.ELEMENTS;++r)n+=(r>0?", ":"")+de(this[r],t);return`${t.printTypes?this.constructor.name:""}[${n}]`}equals(t){if(!t||this.length!==t.length)return!1;for(let n=0;n<this.ELEMENTS;++n)if(!Ct(this[n],t[n]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let n=0;n<this.ELEMENTS;++n)if(this[n]!==t[n])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,n,r){if(r===void 0)return this.lerp(this,t,n);for(let s=0;s<this.ELEMENTS;++s){let i=t[s],o=typeof n=="number"?n:n[s];this[s]=i+r*(o-i)}return this.check()}min(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(t[n],this[n]);return this.check()}max(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.max(t[n],this[n]);return this.check()}clamp(t,n){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t[r]),n[r]);return this.check()}add(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]+=n[r];return this.check()}subtract(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]-=n[r];return this.check()}scale(t){if(typeof t=="number")for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;else for(let n=0;n<this.ELEMENTS&&n<t.length;++n)this[n]*=t[n];return this.check()}multiplyByScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;return this.check()}check(){if(L.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let t=this.length===this.ELEMENTS;for(let n=0;n<this.ELEMENTS;++n)t=t&&Number.isFinite(this[n]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=t;return this.check()}addScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,n){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t),n);return this.check()}get elements(){return this}};function ur(e,t){if(e.length!==t)return!1;for(let n=0;n<e.length;++n)if(!Number.isFinite(e[n]))return!1;return!0}function y(e){if(!Number.isFinite(e))throw new Error(`Invalid number ${JSON.stringify(e)}`);return e}function H(e,t,n=""){if(L.debug&&!ur(e,t))throw new Error(`math.gl: ${n} some fields set to invalid numbers'`);return e}function Bt(e,t){if(!e)throw new Error(`math.gl assertion ${t}`)}var gt=class extends V{get x(){return this[0]}set x(t){this[0]=y(t)}get y(){return this[1]}set y(t){this[1]=y(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let n=0;n<this.ELEMENTS;++n)t+=this[n]*this[n];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let n=0;for(let r=0;r<this.ELEMENTS;++r){let s=this[r]-t[r];n+=s*s}return y(n)}dot(t){let n=0;for(let r=0;r<this.ELEMENTS;++r)n+=this[r]*t[r];return y(n)}normalize(){let t=this.magnitude();if(t!==0)for(let n=0;n<this.ELEMENTS;++n)this[n]/=t;return this.check()}multiply(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]*=n[r];return this.check()}divide(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]/=n[r];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return Bt(t>=0&&t<this.ELEMENTS,"index is out of range"),y(this[t])}setComponent(t,n){return Bt(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=n,this.check()}addVectors(t,n){return this.copy(t).add(n)}subVectors(t,n){return this.copy(t).subtract(n)}multiplyVectors(t,n){return this.copy(t).multiply(n)}addScaledVector(t,n){return this.add(new this.constructor(t).multiplyScalar(n))}};var R=typeof Float32Array<"u"?Float32Array:Array;var pi=Math.PI/180;function _r(){let e=new R(2);return R!=Float32Array&&(e[0]=0,e[1]=0),e}function _e(e,t,n){let r=t[0],s=t[1];return e[0]=n[0]*r+n[4]*s+n[12],e[1]=n[1]*r+n[5]*s+n[13],e}var mi=function(){let e=_r();return function(t,n,r,s,i,o){let c,a;for(n||(n=2),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],i(e,e,o),t[c]=e[0],t[c+1]=e[1];return t}}();function Ae(e,t,n){let r=t[0],s=t[1],i=n[3]*r+n[7]*s||1;return e[0]=(n[0]*r+n[4]*s)/i,e[1]=(n[1]*r+n[5]*s)/i,e}function Se(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[3]*r+n[7]*s+n[11]*i||1;return e[0]=(n[0]*r+n[4]*s+n[8]*i)/o,e[1]=(n[1]*r+n[5]*s+n[9]*i)/o,e[2]=(n[2]*r+n[6]*s+n[10]*i)/o,e}function Ee(e,t,n){let r=t[0],s=t[1];return e[0]=n[0]*r+n[2]*s,e[1]=n[1]*r+n[3]*s,e[2]=t[2],e[3]=t[3],e}function ye(e,t,n){let r=t[0],s=t[1],i=t[2];return e[0]=n[0]*r+n[3]*s+n[6]*i,e[1]=n[1]*r+n[4]*s+n[7]*i,e[2]=n[2]*r+n[5]*s+n[8]*i,e[3]=t[3],e}function zt(){let e=new R(3);return R!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ar(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function kt(e,t,n){let r=new R(3);return r[0]=e,r[1]=t,r[2]=n,r}function Te(e,t){let n=t[0],r=t[1],s=t[2],i=n*n+r*r+s*s;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function Le(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function dt(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[0],c=n[1],a=n[2];return e[0]=s*a-i*c,e[1]=i*o-r*a,e[2]=r*c-s*o,e}function Mt(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[3]*r+n[7]*s+n[11]*i+n[15];return o=o||1,e[0]=(n[0]*r+n[4]*s+n[8]*i+n[12])/o,e[1]=(n[1]*r+n[5]*s+n[9]*i+n[13])/o,e[2]=(n[2]*r+n[6]*s+n[10]*i+n[14])/o,e}function Re(e,t,n){let r=n[0],s=n[1],i=n[2],o=n[3],c=t[0],a=t[1],f=t[2],l=s*f-i*a,h=i*c-r*f,p=r*a-s*c,m=s*p-i*h,x=i*l-r*p,g=r*h-s*l,d=o*2;return l*=d,h*=d,p*=d,m*=2,x*=2,g*=2,e[0]=c+l+m,e[1]=a+h+x,e[2]=f+p+g,e}var Ie=Ar;var di=function(){let e=zt();return function(t,n,r,s,i,o){let c,a;for(n||(n=3),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2];return t}}();var ut,G=class extends gt{static get ZERO(){return ut||(ut=new G(0,0,0,0),Object.freeze(ut)),ut}constructor(t=0,n=0,r=0,s=0){super(-0,-0,-0,-0),Y(t)&&arguments.length===1?this.copy(t):(L.debug&&(y(t),y(n),y(r),y(s)),this[0]=t,this[1]=n,this[2]=r,this[3]=s)}set(t,n,r,s){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(t){return L.debug&&(y(t.x),y(t.y),y(t.z),y(t.w)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(t){this[2]=y(t)}get w(){return this[3]}set w(t){this[3]=y(t)}transform(t){return Mt(this,this,t),this.check()}transformByMatrix3(t){return ye(this,this,t),this.check()}transformByMatrix2(t){return Ee(this,this,t),this.check()}transformByQuaternion(t){return Re(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var _t=class extends V{toString(){let t="[";if(L.printRowMajor){t+="row-major:";for(let n=0;n<this.RANK;++n)for(let r=0;r<this.RANK;++r)t+=` ${this[r*this.RANK+n]}`}else{t+="column-major:";for(let n=0;n<this.ELEMENTS;++n)t+=` ${this[n]}`}return t+="]",t}getElementIndex(t,n){return n*this.RANK+t}getElement(t,n){return this[n*this.RANK+t]}setElement(t,n,r){return this[n*this.RANK+t]=y(r),this}getColumn(t,n=new Array(this.RANK).fill(-0)){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)n[s]=this[r+s];return n}setColumn(t,n){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)this[r+s]=n[s];return this}};function ve(){let e=new R(9);return R!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function yr(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ne(e,t){if(e===t){let n=t[1],r=t[2],s=t[3],i=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=i,e[11]=t[14],e[12]=s,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function we(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=t[4],c=t[5],a=t[6],f=t[7],l=t[8],h=t[9],p=t[10],m=t[11],x=t[12],g=t[13],d=t[14],S=t[15],T=n*c-r*o,M=n*a-s*o,u=n*f-i*o,_=r*a-s*c,A=r*f-i*c,I=s*f-i*a,v=l*g-h*x,N=l*d-p*x,w=l*S-m*x,b=h*d-p*g,O=h*S-m*g,P=p*S-m*d,E=T*P-M*O+u*b+_*w-A*N+I*v;return E?(E=1/E,e[0]=(c*P-a*O+f*b)*E,e[1]=(s*O-r*P-i*b)*E,e[2]=(g*I-d*A+S*_)*E,e[3]=(p*A-h*I-m*_)*E,e[4]=(a*w-o*P-f*N)*E,e[5]=(n*P-s*w+i*N)*E,e[6]=(d*u-x*I-S*M)*E,e[7]=(l*I-p*u+m*M)*E,e[8]=(o*O-c*w+f*v)*E,e[9]=(r*w-n*O-i*v)*E,e[10]=(x*A-g*u+S*T)*E,e[11]=(h*u-l*A-m*T)*E,e[12]=(c*N-o*b-a*v)*E,e[13]=(n*b-r*N+s*v)*E,e[14]=(g*M-x*_-d*T)*E,e[15]=(l*_-h*M+p*T)*E,e):null}function be(e){let t=e[0],n=e[1],r=e[2],s=e[3],i=e[4],o=e[5],c=e[6],a=e[7],f=e[8],l=e[9],h=e[10],p=e[11],m=e[12],x=e[13],g=e[14],d=e[15],S=t*o-n*i,T=t*c-r*i,M=n*c-r*o,u=f*x-l*m,_=f*g-h*m,A=l*g-h*x,I=t*A-n*_+r*u,v=i*A-o*_+c*u,N=f*M-l*T+h*S,w=m*M-x*T+g*S;return a*I-s*v+d*N-p*w}function Ft(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3],c=t[4],a=t[5],f=t[6],l=t[7],h=t[8],p=t[9],m=t[10],x=t[11],g=t[12],d=t[13],S=t[14],T=t[15],M=n[0],u=n[1],_=n[2],A=n[3];return e[0]=M*r+u*c+_*h+A*g,e[1]=M*s+u*a+_*p+A*d,e[2]=M*i+u*f+_*m+A*S,e[3]=M*o+u*l+_*x+A*T,M=n[4],u=n[5],_=n[6],A=n[7],e[4]=M*r+u*c+_*h+A*g,e[5]=M*s+u*a+_*p+A*d,e[6]=M*i+u*f+_*m+A*S,e[7]=M*o+u*l+_*x+A*T,M=n[8],u=n[9],_=n[10],A=n[11],e[8]=M*r+u*c+_*h+A*g,e[9]=M*s+u*a+_*p+A*d,e[10]=M*i+u*f+_*m+A*S,e[11]=M*o+u*l+_*x+A*T,M=n[12],u=n[13],_=n[14],A=n[15],e[12]=M*r+u*c+_*h+A*g,e[13]=M*s+u*a+_*p+A*d,e[14]=M*i+u*f+_*m+A*S,e[15]=M*o+u*l+_*x+A*T,e}function Oe(e,t,n){let r=n[0],s=n[1],i=n[2],o,c,a,f,l,h,p,m,x,g,d,S;return t===e?(e[12]=t[0]*r+t[4]*s+t[8]*i+t[12],e[13]=t[1]*r+t[5]*s+t[9]*i+t[13],e[14]=t[2]*r+t[6]*s+t[10]*i+t[14],e[15]=t[3]*r+t[7]*s+t[11]*i+t[15]):(o=t[0],c=t[1],a=t[2],f=t[3],l=t[4],h=t[5],p=t[6],m=t[7],x=t[8],g=t[9],d=t[10],S=t[11],e[0]=o,e[1]=c,e[2]=a,e[3]=f,e[4]=l,e[5]=h,e[6]=p,e[7]=m,e[8]=x,e[9]=g,e[10]=d,e[11]=S,e[12]=o*r+l*s+x*i+t[12],e[13]=c*r+h*s+g*i+t[13],e[14]=a*r+p*s+d*i+t[14],e[15]=f*r+m*s+S*i+t[15]),e}function Pe(e,t,n){let r=n[0],s=n[1],i=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Ce(e,t,n,r){let s=r[0],i=r[1],o=r[2],c=Math.sqrt(s*s+i*i+o*o),a,f,l,h,p,m,x,g,d,S,T,M,u,_,A,I,v,N,w,b,O,P,E,X;return c<1e-6?null:(c=1/c,s*=c,i*=c,o*=c,f=Math.sin(n),a=Math.cos(n),l=1-a,h=t[0],p=t[1],m=t[2],x=t[3],g=t[4],d=t[5],S=t[6],T=t[7],M=t[8],u=t[9],_=t[10],A=t[11],I=s*s*l+a,v=i*s*l+o*f,N=o*s*l-i*f,w=s*i*l-o*f,b=i*i*l+a,O=o*i*l+s*f,P=s*o*l+i*f,E=i*o*l-s*f,X=o*o*l+a,e[0]=h*I+g*v+M*N,e[1]=p*I+d*v+u*N,e[2]=m*I+S*v+_*N,e[3]=x*I+T*v+A*N,e[4]=h*w+g*b+M*O,e[5]=p*w+d*b+u*O,e[6]=m*w+S*b+_*O,e[7]=x*w+T*b+A*O,e[8]=h*P+g*E+M*X,e[9]=p*P+d*E+u*X,e[10]=m*P+S*E+_*X,e[11]=x*P+T*E+A*X,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Be(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[4],o=t[5],c=t[6],a=t[7],f=t[8],l=t[9],h=t[10],p=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*s+f*r,e[5]=o*s+l*r,e[6]=c*s+h*r,e[7]=a*s+p*r,e[8]=f*s-i*r,e[9]=l*s-o*r,e[10]=h*s-c*r,e[11]=p*s-a*r,e}function ze(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],o=t[1],c=t[2],a=t[3],f=t[8],l=t[9],h=t[10],p=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*s-f*r,e[1]=o*s-l*r,e[2]=c*s-h*r,e[3]=a*s-p*r,e[8]=i*r+f*s,e[9]=o*r+l*s,e[10]=c*r+h*s,e[11]=a*r+p*s,e}function ke(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],o=t[1],c=t[2],a=t[3],f=t[4],l=t[5],h=t[6],p=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*s+f*r,e[1]=o*s+l*r,e[2]=c*s+h*r,e[3]=a*s+p*r,e[4]=f*s-i*r,e[5]=l*s-o*r,e[6]=h*s-c*r,e[7]=p*s-a*r,e}function Fe(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n+n,c=r+r,a=s+s,f=n*o,l=r*o,h=r*c,p=s*o,m=s*c,x=s*a,g=i*o,d=i*c,S=i*a;return e[0]=1-h-x,e[1]=l+S,e[2]=p-d,e[3]=0,e[4]=l-S,e[5]=1-f-x,e[6]=m+g,e[7]=0,e[8]=p+d,e[9]=m-g,e[10]=1-f-h,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ue(e,t,n,r,s,i,o){let c=1/(n-t),a=1/(s-r),f=1/(i-o);return e[0]=i*2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i*2*a,e[6]=0,e[7]=0,e[8]=(n+t)*c,e[9]=(s+r)*a,e[10]=(o+i)*f,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*f,e[15]=0,e}function Tr(e,t,n,r,s){let i=1/Math.tan(t/2);if(e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,s!=null&&s!==1/0){let o=1/(r-s);e[10]=(s+r)*o,e[14]=2*s*r*o}else e[10]=-1,e[14]=-2*r;return e}var Ve=Tr;function Lr(e,t,n,r,s,i,o){let c=1/(t-n),a=1/(r-s),f=1/(i-o);return e[0]=-2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*f,e[11]=0,e[12]=(t+n)*c,e[13]=(s+r)*a,e[14]=(o+i)*f,e[15]=1,e}var qe=Lr;function De(e,t,n,r){let s,i,o,c,a,f,l,h,p,m,x=t[0],g=t[1],d=t[2],S=r[0],T=r[1],M=r[2],u=n[0],_=n[1],A=n[2];return Math.abs(x-u)<1e-6&&Math.abs(g-_)<1e-6&&Math.abs(d-A)<1e-6?yr(e):(h=x-u,p=g-_,m=d-A,s=1/Math.sqrt(h*h+p*p+m*m),h*=s,p*=s,m*=s,i=T*m-M*p,o=M*h-S*m,c=S*p-T*h,s=Math.sqrt(i*i+o*o+c*c),s?(s=1/s,i*=s,o*=s,c*=s):(i=0,o=0,c=0),a=p*c-m*o,f=m*i-h*c,l=h*o-p*i,s=Math.sqrt(a*a+f*f+l*l),s?(s=1/s,a*=s,f*=s,l*=s):(a=0,f=0,l=0),e[0]=i,e[1]=a,e[2]=h,e[3]=0,e[4]=o,e[5]=f,e[6]=p,e[7]=0,e[8]=c,e[9]=l,e[10]=m,e[11]=0,e[12]=-(i*x+o*g+c*d),e[13]=-(a*x+f*g+l*d),e[14]=-(h*x+p*g+m*d),e[15]=1,e)}function Rr(){let e=new R(4);return R!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Ye(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function He(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function Ge(e){let t=e[0],n=e[1],r=e[2],s=e[3];return Math.sqrt(t*t+n*n+r*r+s*s)}function We(e){let t=e[0],n=e[1],r=e[2],s=e[3];return t*t+n*n+r*r+s*s}function $e(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n*n+r*r+s*s+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=s*o,e[3]=i*o,e}function Xe(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function je(e,t,n,r){let s=t[0],i=t[1],o=t[2],c=t[3];return e[0]=s+r*(n[0]-s),e[1]=i+r*(n[1]-i),e[2]=o+r*(n[2]-o),e[3]=c+r*(n[3]-c),e}function Ke(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3];return e[0]=n[0]*r+n[4]*s+n[8]*i+n[12]*o,e[1]=n[1]*r+n[5]*s+n[9]*i+n[13]*o,e[2]=n[2]*r+n[6]*s+n[10]*i+n[14]*o,e[3]=n[3]*r+n[7]*s+n[11]*i+n[15]*o,e}function Qe(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[0],c=n[1],a=n[2],f=n[3],l=f*r+c*i-a*s,h=f*s+a*r-o*i,p=f*i+o*s-c*r,m=-o*r-c*s-a*i;return e[0]=l*f+m*-o+h*-a-p*-c,e[1]=h*f+m*-c+p*-o-l*-a,e[2]=p*f+m*-a+l*-c-h*-o,e[3]=t[3],e}var vi=function(){let e=Rr();return function(t,n,r,s,i,o){let c,a;for(n||(n=4),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],e[3]=t[c+3],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2],t[c+3]=e[3];return t}}();var qt;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(qt||(qt={}));var vr=45*Math.PI/180,Nr=1,Ut=.1,Vt=500,wr=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),F=class extends _t{static get IDENTITY(){return Or()}static get ZERO(){return br()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return qt}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,n,r,s,i,o,c,a,f,l,h,p,m,x,g,d){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this[4]=i,this[5]=o,this[6]=c,this[7]=a,this[8]=f,this[9]=l,this[10]=h,this[11]=p,this[12]=m,this[13]=x,this[14]=g,this[15]=d,this.check()}setRowMajor(t,n,r,s,i,o,c,a,f,l,h,p,m,x,g,d){return this[0]=t,this[1]=i,this[2]=f,this[3]=m,this[4]=n,this[5]=o,this[6]=l,this[7]=x,this[8]=r,this[9]=c,this[10]=h,this[11]=g,this[12]=s,this[13]=a,this[14]=p,this[15]=d,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(wr)}fromObject(t){return this.check()}fromQuaternion(t){return Fe(this,t),this.check()}frustum(t){let{left:n,right:r,bottom:s,top:i,near:o=Ut,far:c=Vt}=t;return c===1/0?Pr(this,n,r,s,i,o):Ue(this,n,r,s,i,o,c),this.check()}lookAt(t){let{eye:n,center:r=[0,0,0],up:s=[0,1,0]}=t;return De(this,n,r,s),this.check()}ortho(t){let{left:n,right:r,bottom:s,top:i,near:o=Ut,far:c=Vt}=t;return qe(this,n,r,s,i,o,c),this.check()}orthographic(t){let{fovy:n=vr,aspect:r=Nr,focalDistance:s=1,near:i=Ut,far:o=Vt}=t;Ze(n);let c=n/2,a=s*Math.tan(c),f=a*r;return this.ortho({left:-f,right:f,bottom:-a,top:a,near:i,far:o})}perspective(t){let{fovy:n=45*Math.PI/180,aspect:r=1,near:s=.1,far:i=500}=t;return Ze(n),Ve(this,n,r,s,i),this.check()}determinant(){return be(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,n){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],n=n||[-0,-0,-0];let r=this.getScale(n),s=1/r[0],i=1/r[1],o=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=0,t[4]=this[4]*s,t[5]=this[5]*i,t[6]=this[6]*o,t[7]=0,t[8]=this[8]*s,t[9]=this[9]*i,t[10]=this[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,n){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],n=n||[-0,-0,-0];let r=this.getScale(n),s=1/r[0],i=1/r[1],o=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=this[4]*s,t[4]=this[5]*i,t[5]=this[6]*o,t[6]=this[8]*s,t[7]=this[9]*i,t[8]=this[10]*o,t}transpose(){return Ne(this,this),this.check()}invert(){return we(this,this),this.check()}multiplyLeft(t){return Ft(this,t,this),this.check()}multiplyRight(t){return Ft(this,this,t),this.check()}rotateX(t){return Be(this,this,t),this.check()}rotateY(t){return ze(this,this,t),this.check()}rotateZ(t){return ke(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,n){return Ce(this,this,t,n),this.check()}scale(t){return Pe(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Oe(this,this,t),this.check()}transform(t,n){return t.length===4?(n=Ke(n||[-0,-0,-0,-0],t,this),H(n,4),n):this.transformAsPoint(t,n)}transformAsPoint(t,n){let{length:r}=t,s;switch(r){case 2:s=_e(n||[-0,-0],t,this);break;case 3:s=Mt(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return H(s,t.length),s}transformAsVector(t,n){let r;switch(t.length){case 2:r=Ae(n||[-0,-0],t,this);break;case 3:r=Se(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return H(r,t.length),r}transformPoint(t,n){return this.transformAsPoint(t,n)}transformVector(t,n){return this.transformAsPoint(t,n)}transformDirection(t,n){return this.transformAsVector(t,n)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,n,r){return this.identity().translate([t,n,r])}},At,St;function br(){return At||(At=new F([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(At)),At}function Or(){return St||(St=new F,Object.freeze(St)),St}function Ze(e){if(e>Math.PI*2)throw Error("expected radians")}function Pr(e,t,n,r,s,i){let o=2*i/(n-t),c=2*i/(s-r),a=(n+t)/(n-t),f=(s+r)/(s-r),l=-1,h=-1,p=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=a,e[9]=f,e[10]=l,e[11]=h,e[12]=0,e[13]=0,e[14]=p,e[15]=0,e}function Je(){let e=new R(4);return R!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function tn(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Dt(e,t,n){n=n*.5;let r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function Yt(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3],c=n[0],a=n[1],f=n[2],l=n[3];return e[0]=r*l+o*c+s*f-i*a,e[1]=s*l+o*a+i*c-r*f,e[2]=i*l+o*f+r*a-s*c,e[3]=o*l-r*c-s*a-i*f,e}function en(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a+o*c,e[1]=s*a+i*c,e[2]=i*a-s*c,e[3]=o*a-r*c,e}function nn(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a-i*c,e[1]=s*a+o*c,e[2]=i*a+r*c,e[3]=o*a-s*c,e}function rn(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a+s*c,e[1]=s*a-r*c,e[2]=i*a+o*c,e[3]=o*a-i*c,e}function sn(e,t){let n=t[0],r=t[1],s=t[2];return e[0]=n,e[1]=r,e[2]=s,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-s*s)),e}function et(e,t,n,r){let s=t[0],i=t[1],o=t[2],c=t[3],a=n[0],f=n[1],l=n[2],h=n[3],p,m,x,g,d;return p=s*a+i*f+o*l+c*h,p<0&&(p=-p,a=-a,f=-f,l=-l,h=-h),1-p>1e-6?(m=Math.acos(p),d=Math.sin(m),x=Math.sin((1-r)*m)/d,g=Math.sin(r*m)/d):(x=1-r,g=r),e[0]=x*s+g*a,e[1]=x*i+g*f,e[2]=x*o+g*l,e[3]=x*c+g*h,e}function on(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n*n+r*r+s*s+i*i,c=o?1/o:0;return e[0]=-n*c,e[1]=-r*c,e[2]=-s*c,e[3]=i*c,e}function cn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Ht(e,t){let n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{let s=0;t[4]>t[0]&&(s=1),t[8]>t[s*3+s]&&(s=2);let i=(s+1)%3,o=(s+2)%3;r=Math.sqrt(t[s*3+s]-t[i*3+i]-t[o*3+o]+1),e[s]=.5*r,r=.5/r,e[3]=(t[i*3+o]-t[o*3+i])*r,e[i]=(t[i*3+s]+t[s*3+i])*r,e[o]=(t[o*3+s]+t[s*3+o])*r}return e}var an=Ye;var fn=He,ln=Xe,hn=je,pn=Ge;var mn=We;var xn=$e;var gn=function(){let e=zt(),t=kt(1,0,0),n=kt(0,1,0);return function(r,s,i){let o=Le(s,i);return o<-.999999?(dt(e,t,s),Ie(e)<1e-6&&dt(e,n,s),Te(e,e),Dt(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(dt(e,s,i),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,xn(r,r))}}(),Di=function(){let e=Je(),t=Je();return function(n,r,s,i,o,c){return et(e,r,o,c),et(t,s,i,c),et(n,e,t,2*c*(1-c)),n}}(),Yi=function(){let e=ve();return function(t,n,r,s){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=s[0],e[4]=s[1],e[7]=s[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],xn(t,Ht(t,e))}}();var Cr=[0,0,0,1],nt=class extends V{constructor(t=0,n=0,r=0,s=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,n,r,s)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,n,r,s){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return Ht(this,t),this.check()}fromAxisRotation(t,n){return Dt(this,t,n),this.check()}identity(){return tn(this),this.check()}setAxisAngle(t,n){return this.fromAxisRotation(t,n)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=y(t)}get y(){return this[1]}set y(t){this[1]=y(t)}get z(){return this[2]}set z(t){this[2]=y(t)}get w(){return this[3]}set w(t){this[3]=y(t)}len(){return pn(this)}lengthSquared(){return mn(this)}dot(t){return ln(this,t)}rotationTo(t,n){return gn(this,t,n),this.check()}add(t){return an(this,this,t),this.check()}calculateW(){return sn(this,this),this.check()}conjugate(){return cn(this,this),this.check()}invert(){return on(this,this),this.check()}lerp(t,n,r){return r===void 0?this.lerp(this,t,n):(hn(this,t,n,r),this.check())}multiplyRight(t){return Yt(this,this,t),this.check()}multiplyLeft(t){return Yt(this,t,this),this.check()}normalize(){let t=this.len(),n=t>0?1/t:0;return this[0]=this[0]*n,this[1]=this[1]*n,this[2]=this[2]*n,this[3]=this[3]*n,t===0&&(this[3]=1),this.check()}rotateX(t){return en(this,this,t),this.check()}rotateY(t){return nn(this,this,t),this.check()}rotateZ(t){return rn(this,this,t),this.check()}scale(t){return fn(this,this,t),this.check()}slerp(t,n,r){let s,i,o;switch(arguments.length){case 1:({start:s=Cr,target:i,ratio:o}=t);break;case 2:s=this,i=t,o=n;break;default:s=t,i=n,o=r}return et(this,s,i,o),this.check()}transformVector4(t,n=new G){return Qe(n,t,this),H(n,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,n){return this.setAxisAngle(t,n)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var rt=D(j(),1);var Br={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},zr={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Wt=class{name;startTime=0;playing=!0;speed=1;channels=[];constructor(t){Object.assign(this,t)}animate(t){if(!this.playing)return;let r=(t/1e3-this.startTime)*this.speed;this.channels.forEach(({sampler:s,target:i,path:o})=>{Dr(r,s,i,o),Fr(i,i._node)})}},W=class{animations;constructor(t){this.animations=t.animations.map((n,r)=>{let s=n.name||`Animation-${r}`,i=n.samplers.map(({input:c,interpolation:a="LINEAR",output:f})=>({input:dn(t.accessors[c]),interpolation:a,output:dn(t.accessors[f])})),o=n.channels.map(({sampler:c,target:a})=>({sampler:i[c],target:t.nodes[a.node],path:a.path}));return new Wt({name:s,channels:o})})}animate(t){this.setTime(t)}setTime(t){this.animations.forEach(n=>n.animate(t))}getAnimations(){return this.animations}};function dn(e){if(!e._animation){let t=zr[e.componentType],n=Br[e.type],r=n*e.count,{buffer:s,byteOffset:i}=e.bufferView.data,o=new t(s,i+(e.byteOffset||0),r);if(n===1)e._animation=Array.from(o);else{let c=[];for(let a=0;a<o.length;a+=n)c.push(Array.from(o.slice(a,a+n)));e._animation=c}}return e._animation}var kr=new F;function Fr(e,t){if(t.matrix.identity(),e.translation&&t.matrix.translate(e.translation),e.rotation){let n=kr.fromQuaternion(e.rotation);t.matrix.multiplyRight(n)}e.scale&&t.matrix.scale(e.scale)}var Gt=new nt;function Ur(e,t,n,r,s){if(t==="rotation"){Gt.slerp({start:n,target:r,ratio:s});for(let i=0;i<Gt.length;i++)e[t][i]=Gt[i]}else for(let i=0;i<n.length;i++)e[t][i]=s*r[i]+(1-s)*n[i]}function Vr(e,t,{p0:n,outTangent0:r,inTangent1:s,p1:i,tDiff:o,ratio:c}){for(let a=0;a<e[t].length;a++){let f=r[a]*o,l=s[a]*o;e[t][a]=(2*Math.pow(c,3)-3*Math.pow(c,2)+1)*n[a]+(Math.pow(c,3)-2*Math.pow(c,2)+c)*f+(-2*Math.pow(c,3)+3*Math.pow(c,2))*i[a]+(Math.pow(c,3)-Math.pow(c,2))*l}}function qr(e,t,n){for(let r=0;r<n.length;r++)e[t][r]=n[r]}function Dr(e,{input:t,interpolation:n,output:r},s,i){let o=t[t.length-1],c=e%o,a=t.findIndex(p=>p>=c),f=Math.max(0,a-1);if(!Array.isArray(s[i]))switch(i){case"translation":s[i]=[0,0,0];break;case"rotation":s[i]=[0,0,0,1];break;case"scale":s[i]=[1,1,1];break;default:rt.log.warn(`Bad animation path ${i}`)()}(0,rt.assert)(s[i].length===r[f].length);let l=t[f],h=t[a];switch(n){case"STEP":qr(s,i,r[f]);break;case"LINEAR":if(h>l){let p=(c-l)/(h-l);Ur(s,i,r[f],r[a],p)}break;case"CUBICSPLINE":if(h>l){let p=(c-l)/(h-l),m=h-l,x=r[3*f+1],g=r[3*f+2],d=r[3*a+0],S=r[3*a+1];Vr(s,i,{p0:x,outTangent0:g,inTangent1:d,p1:S,tDiff:m,ratio:p})}break;default:rt.log.warn(`Interpolation ${n} not supported`)();break}}var En=D(j(),1);var $t=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
|
|
7
|
+
var __exports__=(()=>{var Ln=Object.create;var ot=Object.defineProperty;var Rn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var vn=Object.getPrototypeOf,Nn=Object.prototype.hasOwnProperty;var Kt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),wn=(e,t)=>{for(var n in t)ot(e,n,{get:t[n],enumerable:!0})},it=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of In(t))!Nn.call(e,s)&&s!==n&&ot(e,s,{get:()=>t[s],enumerable:!(r=Rn(t,s))||r.enumerable});return e},ct=(e,t,n)=>(it(e,t,"default"),n&&it(n,t,"default")),D=(e,t,n)=>(n=e!=null?Ln(vn(e)):{},it(t||!e||!e.__esModule?ot(n,"default",{value:e,enumerable:!0}):n,e)),bn=e=>it(ot({},"__esModule",{value:!0}),e);var j=Kt((Kr,Qt)=>{Qt.exports=globalThis.luma});var Pt=Kt((Js,ge)=>{ge.exports=globalThis.luma});var st={};wn(st,{GLTFAnimator:()=>W,createScenegraphsFromGLTF:()=>Tn,loadPBREnvironment:()=>xe,parsePBRMaterial:()=>at});ct(st,D(j(),1));var Zt=D(j(),1),C;(function(e){e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.ONE=1]="ONE",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.LINEAR=9729]="LINEAR",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})(C||(C={}));function at(e,t,n,r){let s={defines:{MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},bindings:{},uniforms:{u_Camera:[0,0,0],u_MetallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};s.defines.USE_TEX_LOD=1;let{imageBasedLightingEnvironment:i}=r;return i&&(s.bindings.u_DiffuseEnvSampler=i.diffuseEnvSampler,s.bindings.u_SpecularEnvSampler=i.specularEnvSampler,s.bindings.u_brdfLUT=i.brdfLutTexture,s.uniforms.u_ScaleIBLAmbient=[1,1]),r?.pbrDebug&&(s.defines.PBR_DEBUG=1,s.uniforms.u_ScaleDiffBaseMR=[0,0,0,0],s.uniforms.u_ScaleFGDSpec=[0,0,0,0]),n.NORMAL&&(s.defines.HAS_NORMALS=1),n.TANGENT&&r?.useTangents&&(s.defines.HAS_TANGENTS=1),n.TEXCOORD_0&&(s.defines.HAS_UV=1),r?.imageBasedLightingEnvironment&&(s.defines.USE_IBL=1),r?.lights&&(s.defines.USE_LIGHTS=1),t&&On(e,t,s),s}function On(e,t,n){if(n.uniforms.pbr_uUnlit=Boolean(t.unlit),t.pbrMetallicRoughness&&Pn(e,t.pbrMetallicRoughness,n),t.normalTexture){K(e,t.normalTexture,"u_NormalSampler","HAS_NORMALMAP",n);let{scale:r=1}=t.normalTexture;n.uniforms.u_NormalScale=r}if(t.occlusionTexture){K(e,t.occlusionTexture,"u_OcclusionSampler","HAS_OCCLUSIONMAP",n);let{strength:r=1}=t.occlusionTexture;n.uniforms.u_OcclusionStrength=r}switch(t.emissiveTexture&&(K(e,t.emissiveTexture,"u_EmissiveSampler","HAS_EMISSIVEMAP",n),n.uniforms.u_EmissiveFactor=t.emissiveFactor||[0,0,0]),t.alphaMode){case"MASK":let{alphaCutoff:r=.5}=t;n.defines.ALPHA_CUTOFF=1,n.uniforms.u_AlphaCutoff=r;break;case"BLEND":Zt.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),n.parameters.blendColorOperation="add",n.parameters.blendColorSrcFactor="src-alpha",n.parameters.blendColorDstFactor="one-minus-src-alpha",n.parameters.blendAlphaOperation="add",n.parameters.blendAlphaSrcFactor="one",n.parameters.blendAlphaDstFactor="one-minus-src-alpha",n.glParameters.blend=!0,n.glParameters.blendEquation=C.FUNC_ADD,n.glParameters.blendFunc=[C.SRC_ALPHA,C.ONE_MINUS_SRC_ALPHA,C.ONE,C.ONE_MINUS_SRC_ALPHA];break}}function Pn(e,t,n){t.baseColorTexture&&K(e,t.baseColorTexture,"u_BaseColorSampler","HAS_BASECOLORMAP",n),n.uniforms.u_BaseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&K(e,t.metallicRoughnessTexture,"u_MetallicRoughnessSampler","HAS_METALROUGHNESSMAP",n);let{metallicFactor:r=1,roughnessFactor:s=1}=t;n.uniforms.u_MetallicRoughnessValues=[r,s]}function K(e,t,n,r=null,s){let i=t?.texture?.sampler?.parameters||{},o=t.texture.source.image,c,a={};o.compressed?(c=o,a={[C.TEXTURE_MIN_FILTER]:o.data.length>1?C.LINEAR_MIPMAP_NEAREST:C.LINEAR}):c={data:o};let f=e.createTexture({id:t.uniformName||t.id,parameters:{...i,...a},pixelStore:{[C.UNPACK_FLIP_Y_WEBGL]:!1},...c});s.bindings[n]=f,r&&(s.defines[r]=1),s.generatedTextures.push(f)}function q(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var B={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Cn=B.self||B.window||B.global||{},Bn=B.window||B.self||B.global||{},zn=B.global||B.self||B.window||{},kn=B.document||{};var Tt=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Jt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Fn=Jt&&parseFloat(Jt[1])||0;var Un="",te={};function Lt(e){for(let t in te)if(e.startsWith(t)){let n=te[t];e=e.replace(t,n)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Un}${e}`),e}var ee="4.2.1";var Vn=globalThis.loaders?.parseImageNode,Rt=typeof Image<"u",It=typeof ImageBitmap<"u",qn=Boolean(Vn),vt=Tt?!0:qn;function ne(e){switch(e){case"auto":return It||Rt||vt;case"imagebitmap":return It;case"image":return Rt;case"data":return vt;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function re(){if(It)return"imagebitmap";if(Rt)return"image";if(vt)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function se(e){let t=Dn(e);if(!t)throw new Error("Not an image");return t}function Nt(e){return ft(e)}function ft(e){switch(se(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function Dn(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var Yn=/^data:image\/svg\+xml/,Hn=/\.svg((\?|#).*)?$/;function lt(e){return e&&(Yn.test(e)||Hn.test(e))}function ie(e,t){if(lt(t)){let r=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(r=unescape(encodeURIComponent(r)))}catch(i){throw new Error(i.message)}return`data:image/svg+xml;base64,${btoa(r)}`}return wt(e,t)}function wt(e,t){if(lt(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ht(e,t,n){let r=ie(e,n),s=self.URL||self.webkitURL,i=typeof r!="string"&&s.createObjectURL(r);try{return await Gn(i||r,t)}finally{i&&s.revokeObjectURL(i)}}async function Gn(e,t){let n=new Image;return n.src=e,t.image&&t.image.decode&&n.decode?(await n.decode(),n):await new Promise((r,s)=>{try{n.onload=()=>r(n),n.onerror=i=>{let o=i instanceof Error?i.message:"error";s(new Error(o))}}catch(i){s(i)}})}var Wn={},oe=!0;async function ce(e,t,n){let r;lt(n)?r=await ht(e,t,n):r=wt(e,n);let s=t&&t.imagebitmap;return await $n(r,s)}async function $n(e,t=null){if((Xn(t)||!oe)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),oe=!1}return await createImageBitmap(e)}function Xn(e){for(let t in e||Wn)return!1;return!0}function ae(e){return!Zn(e,"ftyp",4)||!(e[8]&96)?null:jn(e)}function jn(e){switch(Kn(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Kn(e,t,n){return String.fromCharCode(...e.slice(t,n))}function Qn(e){return[...e].map(t=>t.charCodeAt(0))}function Zn(e,t,n=0){let r=Qn(t);for(let s=0;s<r.length;++s)if(r[s]!==e[s+n])return!1;return!0}var z=!1,Q=!0;function pt(e){let t=Z(e);return tr(t)||rr(t)||er(t)||nr(t)||Jn(t)}function Jn(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),n=ae(t);return n?{mimeType:n.mimeType,width:0,height:0}:null}function tr(e){let t=Z(e);return t.byteLength>=24&&t.getUint32(0,z)===2303741511?{mimeType:"image/png",width:t.getUint32(16,z),height:t.getUint32(20,z)}:null}function er(e){let t=Z(e);return t.byteLength>=10&&t.getUint32(0,z)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,Q),height:t.getUint16(8,Q)}:null}function nr(e){let t=Z(e);return t.byteLength>=14&&t.getUint16(0,z)===16973&&t.getUint32(2,Q)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,Q),height:t.getUint32(22,Q)}:null}function rr(e){let t=Z(e);if(!(t.byteLength>=3&&t.getUint16(0,z)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:s}=sr(),i=2;for(;i+9<t.byteLength;){let o=t.getUint16(i,z);if(s.has(o))return{mimeType:"image/jpeg",height:t.getUint16(i+5,z),width:t.getUint16(i+7,z)};if(!r.has(o))return null;i+=2,i+=t.getUint16(i,z)}return null}function sr(){let e=new Set([65499,65476,65484,65501,65534]);for(let n=65504;n<65520;++n)e.add(n);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Z(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function fe(e,t){let{mimeType:n}=pt(e)||{},r=globalThis.loaders?.parseImageNode;return q(r),await r(e,n)}async function le(e,t,n){t=t||{};let s=(t.image||{}).type||"auto",{url:i}=n||{},o=ir(s),c;switch(o){case"imagebitmap":c=await ce(e,t,i);break;case"image":c=await ht(e,t,i);break;case"data":c=await fe(e,t);break;default:q(!1)}return s==="data"&&(c=ft(c)),c}function ir(e){switch(e){case"auto":case"data":return re();default:return ne(e),e}}var or=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],cr=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],ar={image:{type:"auto",decode:!0}},mt={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:ee,mimeTypes:cr,extensions:or,parse:le,tests:[e=>Boolean(pt(new DataView(e)))],options:ar};function xt(e,t,n){let r=typeof e=="function"?e({...t,...n}):e,s=t.baseUrl;return s&&(r=s[s.length-1]==="/"?`${s}${r}`:`${s}/${r}`),Lt(r)}var fr=e=>e&&typeof e=="object";async function he(e,t,n={}){return await bt(e,t,n)}async function bt(e,t,n){return Array.isArray(e)?await hr(e,t,n):fr(e)?await lr(e,t,n):await t(e,n)}async function lr(e,t,n){let r=[],s={};for(let i in e){let o=e[i],c=bt(o,t,n).then(a=>{s[i]=a});r.push(c)}return await Promise.all(r),s}async function hr(e,t,n={}){let r=e.map(s=>bt(s,t,n));return await Promise.all(r)}async function pe(e,t,n){return await he(e,r=>Ot(r,t,n))}async function Ot(e,t,n){let s=await(await fetch(e,n.fetch)).arrayBuffer();return await t(s,n)}async function J(e,t={}){let n=await pr(e,t);return await pe(n,mt.parse,t)}async function pr(e,t,n={}){let r=t&&t.image&&t.image.mipLevels||0;return r!==0?await mr(e,r,t,n):xt(e,t,n)}async function mr(e,t,n,r){let s=[];if(t==="auto"){let i=xt(e,n,{...r,lod:0}),o=await Ot(i,mt.parse,n),{width:c,height:a}=Nt(o);t=xr({width:c,height:a}),s.push(i)}q(t>0);for(let i=s.length;i<t;++i){let o=xt(e,n,{...r,lod:i});s.push(o)}return s}function xr(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}function xe(e,t){let n=e.createTexture({id:"brdfLUT",sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"},data:J(t.brdfLutUrl)}),r=me(e,{id:"DiffuseEnvSampler",getTextureForFace:i=>J(t.getTexUrl("diffuse",i,0)),sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}}),s=me(e,{id:"SpecularEnvSampler",getTextureForFace:i=>{let o=[];for(let c=0;c<=t.specularMipLevels-1;c++)o.push(J(t.getTexUrl("specular",i,c)));return o},sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}});return{brdfLutTexture:n,diffuseEnvSampler:r,specularEnvSampler:s}}var gr=[0,1,2,3,4,5];function me(e,{id:t,getTextureForFace:n,sampler:r}){let s={};return gr.forEach(i=>{s[String(i)]=n(i)}),e.createTexture({id:t,dimension:"cube",mipmaps:!1,sampler:r,data:s})}var $=D(Pt(),1);var ti=1/Math.PI*180,ei=1/180*Math.PI,dr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...dr}};var L=globalThis.mathgl.config;function de(e,{precision:t=L.precision}={}){return e=Mr(e),`${parseFloat(e.toPrecision(t))}`}function Y(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ct(e,t,n){let r=L.EPSILON;n&&(L.EPSILON=n);try{if(e===t)return!0;if(Y(e)&&Y(t)){if(e.length!==t.length)return!1;for(let s=0;s<e.length;++s)if(!Ct(e[s],t[s]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=L.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{L.EPSILON=r}}function Mr(e){return Math.round(e/L.EPSILON)*L.EPSILON}var V=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(t,n=0){for(let r=0;r<this.ELEMENTS;++r)this[r]=t[r+n];return this.check()}toArray(t=[],n=0){for(let r=0;r<this.ELEMENTS;++r)t[n+r]=this[r];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:Y(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(L)}formatString(t){let n="";for(let r=0;r<this.ELEMENTS;++r)n+=(r>0?", ":"")+de(this[r],t);return`${t.printTypes?this.constructor.name:""}[${n}]`}equals(t){if(!t||this.length!==t.length)return!1;for(let n=0;n<this.ELEMENTS;++n)if(!Ct(this[n],t[n]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let n=0;n<this.ELEMENTS;++n)if(this[n]!==t[n])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,n,r){if(r===void 0)return this.lerp(this,t,n);for(let s=0;s<this.ELEMENTS;++s){let i=t[s],o=typeof n=="number"?n:n[s];this[s]=i+r*(o-i)}return this.check()}min(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(t[n],this[n]);return this.check()}max(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.max(t[n],this[n]);return this.check()}clamp(t,n){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t[r]),n[r]);return this.check()}add(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]+=n[r];return this.check()}subtract(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]-=n[r];return this.check()}scale(t){if(typeof t=="number")for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;else for(let n=0;n<this.ELEMENTS&&n<t.length;++n)this[n]*=t[n];return this.check()}multiplyByScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;return this.check()}check(){if(L.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let t=this.length===this.ELEMENTS;for(let n=0;n<this.ELEMENTS;++n)t=t&&Number.isFinite(this[n]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=t;return this.check()}addScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,n){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t),n);return this.check()}get elements(){return this}};function ur(e,t){if(e.length!==t)return!1;for(let n=0;n<e.length;++n)if(!Number.isFinite(e[n]))return!1;return!0}function y(e){if(!Number.isFinite(e))throw new Error(`Invalid number ${JSON.stringify(e)}`);return e}function H(e,t,n=""){if(L.debug&&!ur(e,t))throw new Error(`math.gl: ${n} some fields set to invalid numbers'`);return e}function Bt(e,t){if(!e)throw new Error(`math.gl assertion ${t}`)}var gt=class extends V{get x(){return this[0]}set x(t){this[0]=y(t)}get y(){return this[1]}set y(t){this[1]=y(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let n=0;n<this.ELEMENTS;++n)t+=this[n]*this[n];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let n=0;for(let r=0;r<this.ELEMENTS;++r){let s=this[r]-t[r];n+=s*s}return y(n)}dot(t){let n=0;for(let r=0;r<this.ELEMENTS;++r)n+=this[r]*t[r];return y(n)}normalize(){let t=this.magnitude();if(t!==0)for(let n=0;n<this.ELEMENTS;++n)this[n]/=t;return this.check()}multiply(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]*=n[r];return this.check()}divide(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]/=n[r];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return Bt(t>=0&&t<this.ELEMENTS,"index is out of range"),y(this[t])}setComponent(t,n){return Bt(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=n,this.check()}addVectors(t,n){return this.copy(t).add(n)}subVectors(t,n){return this.copy(t).subtract(n)}multiplyVectors(t,n){return this.copy(t).multiply(n)}addScaledVector(t,n){return this.add(new this.constructor(t).multiplyScalar(n))}};var R=typeof Float32Array<"u"?Float32Array:Array;var pi=Math.PI/180;function _r(){let e=new R(2);return R!=Float32Array&&(e[0]=0,e[1]=0),e}function _e(e,t,n){let r=t[0],s=t[1];return e[0]=n[0]*r+n[4]*s+n[12],e[1]=n[1]*r+n[5]*s+n[13],e}var mi=function(){let e=_r();return function(t,n,r,s,i,o){let c,a;for(n||(n=2),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],i(e,e,o),t[c]=e[0],t[c+1]=e[1];return t}}();function Ae(e,t,n){let r=t[0],s=t[1],i=n[3]*r+n[7]*s||1;return e[0]=(n[0]*r+n[4]*s)/i,e[1]=(n[1]*r+n[5]*s)/i,e}function Se(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[3]*r+n[7]*s+n[11]*i||1;return e[0]=(n[0]*r+n[4]*s+n[8]*i)/o,e[1]=(n[1]*r+n[5]*s+n[9]*i)/o,e[2]=(n[2]*r+n[6]*s+n[10]*i)/o,e}function Ee(e,t,n){let r=t[0],s=t[1];return e[0]=n[0]*r+n[2]*s,e[1]=n[1]*r+n[3]*s,e[2]=t[2],e[3]=t[3],e}function ye(e,t,n){let r=t[0],s=t[1],i=t[2];return e[0]=n[0]*r+n[3]*s+n[6]*i,e[1]=n[1]*r+n[4]*s+n[7]*i,e[2]=n[2]*r+n[5]*s+n[8]*i,e[3]=t[3],e}function zt(){let e=new R(3);return R!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ar(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function kt(e,t,n){let r=new R(3);return r[0]=e,r[1]=t,r[2]=n,r}function Te(e,t){let n=t[0],r=t[1],s=t[2],i=n*n+r*r+s*s;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function Le(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function dt(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[0],c=n[1],a=n[2];return e[0]=s*a-i*c,e[1]=i*o-r*a,e[2]=r*c-s*o,e}function Mt(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[3]*r+n[7]*s+n[11]*i+n[15];return o=o||1,e[0]=(n[0]*r+n[4]*s+n[8]*i+n[12])/o,e[1]=(n[1]*r+n[5]*s+n[9]*i+n[13])/o,e[2]=(n[2]*r+n[6]*s+n[10]*i+n[14])/o,e}function Re(e,t,n){let r=n[0],s=n[1],i=n[2],o=n[3],c=t[0],a=t[1],f=t[2],l=s*f-i*a,h=i*c-r*f,p=r*a-s*c,m=s*p-i*h,x=i*l-r*p,g=r*h-s*l,d=o*2;return l*=d,h*=d,p*=d,m*=2,x*=2,g*=2,e[0]=c+l+m,e[1]=a+h+x,e[2]=f+p+g,e}var Ie=Ar;var di=function(){let e=zt();return function(t,n,r,s,i,o){let c,a;for(n||(n=3),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2];return t}}();var ut,G=class extends gt{static get ZERO(){return ut||(ut=new G(0,0,0,0),Object.freeze(ut)),ut}constructor(t=0,n=0,r=0,s=0){super(-0,-0,-0,-0),Y(t)&&arguments.length===1?this.copy(t):(L.debug&&(y(t),y(n),y(r),y(s)),this[0]=t,this[1]=n,this[2]=r,this[3]=s)}set(t,n,r,s){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(t){return L.debug&&(y(t.x),y(t.y),y(t.z),y(t.w)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(t){this[2]=y(t)}get w(){return this[3]}set w(t){this[3]=y(t)}transform(t){return Mt(this,this,t),this.check()}transformByMatrix3(t){return ye(this,this,t),this.check()}transformByMatrix2(t){return Ee(this,this,t),this.check()}transformByQuaternion(t){return Re(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var _t=class extends V{toString(){let t="[";if(L.printRowMajor){t+="row-major:";for(let n=0;n<this.RANK;++n)for(let r=0;r<this.RANK;++r)t+=` ${this[r*this.RANK+n]}`}else{t+="column-major:";for(let n=0;n<this.ELEMENTS;++n)t+=` ${this[n]}`}return t+="]",t}getElementIndex(t,n){return n*this.RANK+t}getElement(t,n){return this[n*this.RANK+t]}setElement(t,n,r){return this[n*this.RANK+t]=y(r),this}getColumn(t,n=new Array(this.RANK).fill(-0)){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)n[s]=this[r+s];return n}setColumn(t,n){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)this[r+s]=n[s];return this}};function ve(){let e=new R(9);return R!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function yr(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ne(e,t){if(e===t){let n=t[1],r=t[2],s=t[3],i=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=i,e[11]=t[14],e[12]=s,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function we(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=t[4],c=t[5],a=t[6],f=t[7],l=t[8],h=t[9],p=t[10],m=t[11],x=t[12],g=t[13],d=t[14],S=t[15],T=n*c-r*o,M=n*a-s*o,u=n*f-i*o,_=r*a-s*c,A=r*f-i*c,I=s*f-i*a,v=l*g-h*x,N=l*d-p*x,w=l*S-m*x,b=h*d-p*g,O=h*S-m*g,P=p*S-m*d,E=T*P-M*O+u*b+_*w-A*N+I*v;return E?(E=1/E,e[0]=(c*P-a*O+f*b)*E,e[1]=(s*O-r*P-i*b)*E,e[2]=(g*I-d*A+S*_)*E,e[3]=(p*A-h*I-m*_)*E,e[4]=(a*w-o*P-f*N)*E,e[5]=(n*P-s*w+i*N)*E,e[6]=(d*u-x*I-S*M)*E,e[7]=(l*I-p*u+m*M)*E,e[8]=(o*O-c*w+f*v)*E,e[9]=(r*w-n*O-i*v)*E,e[10]=(x*A-g*u+S*T)*E,e[11]=(h*u-l*A-m*T)*E,e[12]=(c*N-o*b-a*v)*E,e[13]=(n*b-r*N+s*v)*E,e[14]=(g*M-x*_-d*T)*E,e[15]=(l*_-h*M+p*T)*E,e):null}function be(e){let t=e[0],n=e[1],r=e[2],s=e[3],i=e[4],o=e[5],c=e[6],a=e[7],f=e[8],l=e[9],h=e[10],p=e[11],m=e[12],x=e[13],g=e[14],d=e[15],S=t*o-n*i,T=t*c-r*i,M=n*c-r*o,u=f*x-l*m,_=f*g-h*m,A=l*g-h*x,I=t*A-n*_+r*u,v=i*A-o*_+c*u,N=f*M-l*T+h*S,w=m*M-x*T+g*S;return a*I-s*v+d*N-p*w}function Ft(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3],c=t[4],a=t[5],f=t[6],l=t[7],h=t[8],p=t[9],m=t[10],x=t[11],g=t[12],d=t[13],S=t[14],T=t[15],M=n[0],u=n[1],_=n[2],A=n[3];return e[0]=M*r+u*c+_*h+A*g,e[1]=M*s+u*a+_*p+A*d,e[2]=M*i+u*f+_*m+A*S,e[3]=M*o+u*l+_*x+A*T,M=n[4],u=n[5],_=n[6],A=n[7],e[4]=M*r+u*c+_*h+A*g,e[5]=M*s+u*a+_*p+A*d,e[6]=M*i+u*f+_*m+A*S,e[7]=M*o+u*l+_*x+A*T,M=n[8],u=n[9],_=n[10],A=n[11],e[8]=M*r+u*c+_*h+A*g,e[9]=M*s+u*a+_*p+A*d,e[10]=M*i+u*f+_*m+A*S,e[11]=M*o+u*l+_*x+A*T,M=n[12],u=n[13],_=n[14],A=n[15],e[12]=M*r+u*c+_*h+A*g,e[13]=M*s+u*a+_*p+A*d,e[14]=M*i+u*f+_*m+A*S,e[15]=M*o+u*l+_*x+A*T,e}function Oe(e,t,n){let r=n[0],s=n[1],i=n[2],o,c,a,f,l,h,p,m,x,g,d,S;return t===e?(e[12]=t[0]*r+t[4]*s+t[8]*i+t[12],e[13]=t[1]*r+t[5]*s+t[9]*i+t[13],e[14]=t[2]*r+t[6]*s+t[10]*i+t[14],e[15]=t[3]*r+t[7]*s+t[11]*i+t[15]):(o=t[0],c=t[1],a=t[2],f=t[3],l=t[4],h=t[5],p=t[6],m=t[7],x=t[8],g=t[9],d=t[10],S=t[11],e[0]=o,e[1]=c,e[2]=a,e[3]=f,e[4]=l,e[5]=h,e[6]=p,e[7]=m,e[8]=x,e[9]=g,e[10]=d,e[11]=S,e[12]=o*r+l*s+x*i+t[12],e[13]=c*r+h*s+g*i+t[13],e[14]=a*r+p*s+d*i+t[14],e[15]=f*r+m*s+S*i+t[15]),e}function Pe(e,t,n){let r=n[0],s=n[1],i=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Ce(e,t,n,r){let s=r[0],i=r[1],o=r[2],c=Math.sqrt(s*s+i*i+o*o),a,f,l,h,p,m,x,g,d,S,T,M,u,_,A,I,v,N,w,b,O,P,E,X;return c<1e-6?null:(c=1/c,s*=c,i*=c,o*=c,f=Math.sin(n),a=Math.cos(n),l=1-a,h=t[0],p=t[1],m=t[2],x=t[3],g=t[4],d=t[5],S=t[6],T=t[7],M=t[8],u=t[9],_=t[10],A=t[11],I=s*s*l+a,v=i*s*l+o*f,N=o*s*l-i*f,w=s*i*l-o*f,b=i*i*l+a,O=o*i*l+s*f,P=s*o*l+i*f,E=i*o*l-s*f,X=o*o*l+a,e[0]=h*I+g*v+M*N,e[1]=p*I+d*v+u*N,e[2]=m*I+S*v+_*N,e[3]=x*I+T*v+A*N,e[4]=h*w+g*b+M*O,e[5]=p*w+d*b+u*O,e[6]=m*w+S*b+_*O,e[7]=x*w+T*b+A*O,e[8]=h*P+g*E+M*X,e[9]=p*P+d*E+u*X,e[10]=m*P+S*E+_*X,e[11]=x*P+T*E+A*X,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Be(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[4],o=t[5],c=t[6],a=t[7],f=t[8],l=t[9],h=t[10],p=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*s+f*r,e[5]=o*s+l*r,e[6]=c*s+h*r,e[7]=a*s+p*r,e[8]=f*s-i*r,e[9]=l*s-o*r,e[10]=h*s-c*r,e[11]=p*s-a*r,e}function ze(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],o=t[1],c=t[2],a=t[3],f=t[8],l=t[9],h=t[10],p=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*s-f*r,e[1]=o*s-l*r,e[2]=c*s-h*r,e[3]=a*s-p*r,e[8]=i*r+f*s,e[9]=o*r+l*s,e[10]=c*r+h*s,e[11]=a*r+p*s,e}function ke(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],o=t[1],c=t[2],a=t[3],f=t[4],l=t[5],h=t[6],p=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*s+f*r,e[1]=o*s+l*r,e[2]=c*s+h*r,e[3]=a*s+p*r,e[4]=f*s-i*r,e[5]=l*s-o*r,e[6]=h*s-c*r,e[7]=p*s-a*r,e}function Fe(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n+n,c=r+r,a=s+s,f=n*o,l=r*o,h=r*c,p=s*o,m=s*c,x=s*a,g=i*o,d=i*c,S=i*a;return e[0]=1-h-x,e[1]=l+S,e[2]=p-d,e[3]=0,e[4]=l-S,e[5]=1-f-x,e[6]=m+g,e[7]=0,e[8]=p+d,e[9]=m-g,e[10]=1-f-h,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ue(e,t,n,r,s,i,o){let c=1/(n-t),a=1/(s-r),f=1/(i-o);return e[0]=i*2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i*2*a,e[6]=0,e[7]=0,e[8]=(n+t)*c,e[9]=(s+r)*a,e[10]=(o+i)*f,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*f,e[15]=0,e}function Tr(e,t,n,r,s){let i=1/Math.tan(t/2);if(e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,s!=null&&s!==1/0){let o=1/(r-s);e[10]=(s+r)*o,e[14]=2*s*r*o}else e[10]=-1,e[14]=-2*r;return e}var Ve=Tr;function Lr(e,t,n,r,s,i,o){let c=1/(t-n),a=1/(r-s),f=1/(i-o);return e[0]=-2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*f,e[11]=0,e[12]=(t+n)*c,e[13]=(s+r)*a,e[14]=(o+i)*f,e[15]=1,e}var qe=Lr;function De(e,t,n,r){let s,i,o,c,a,f,l,h,p,m,x=t[0],g=t[1],d=t[2],S=r[0],T=r[1],M=r[2],u=n[0],_=n[1],A=n[2];return Math.abs(x-u)<1e-6&&Math.abs(g-_)<1e-6&&Math.abs(d-A)<1e-6?yr(e):(h=x-u,p=g-_,m=d-A,s=1/Math.sqrt(h*h+p*p+m*m),h*=s,p*=s,m*=s,i=T*m-M*p,o=M*h-S*m,c=S*p-T*h,s=Math.sqrt(i*i+o*o+c*c),s?(s=1/s,i*=s,o*=s,c*=s):(i=0,o=0,c=0),a=p*c-m*o,f=m*i-h*c,l=h*o-p*i,s=Math.sqrt(a*a+f*f+l*l),s?(s=1/s,a*=s,f*=s,l*=s):(a=0,f=0,l=0),e[0]=i,e[1]=a,e[2]=h,e[3]=0,e[4]=o,e[5]=f,e[6]=p,e[7]=0,e[8]=c,e[9]=l,e[10]=m,e[11]=0,e[12]=-(i*x+o*g+c*d),e[13]=-(a*x+f*g+l*d),e[14]=-(h*x+p*g+m*d),e[15]=1,e)}function Rr(){let e=new R(4);return R!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Ye(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function He(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function Ge(e){let t=e[0],n=e[1],r=e[2],s=e[3];return Math.sqrt(t*t+n*n+r*r+s*s)}function We(e){let t=e[0],n=e[1],r=e[2],s=e[3];return t*t+n*n+r*r+s*s}function $e(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n*n+r*r+s*s+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=s*o,e[3]=i*o,e}function Xe(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function je(e,t,n,r){let s=t[0],i=t[1],o=t[2],c=t[3];return e[0]=s+r*(n[0]-s),e[1]=i+r*(n[1]-i),e[2]=o+r*(n[2]-o),e[3]=c+r*(n[3]-c),e}function Ke(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3];return e[0]=n[0]*r+n[4]*s+n[8]*i+n[12]*o,e[1]=n[1]*r+n[5]*s+n[9]*i+n[13]*o,e[2]=n[2]*r+n[6]*s+n[10]*i+n[14]*o,e[3]=n[3]*r+n[7]*s+n[11]*i+n[15]*o,e}function Qe(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[0],c=n[1],a=n[2],f=n[3],l=f*r+c*i-a*s,h=f*s+a*r-o*i,p=f*i+o*s-c*r,m=-o*r-c*s-a*i;return e[0]=l*f+m*-o+h*-a-p*-c,e[1]=h*f+m*-c+p*-o-l*-a,e[2]=p*f+m*-a+l*-c-h*-o,e[3]=t[3],e}var vi=function(){let e=Rr();return function(t,n,r,s,i,o){let c,a;for(n||(n=4),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],e[3]=t[c+3],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2],t[c+3]=e[3];return t}}();var qt;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(qt||(qt={}));var vr=45*Math.PI/180,Nr=1,Ut=.1,Vt=500,wr=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),F=class extends _t{static get IDENTITY(){return Or()}static get ZERO(){return br()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return qt}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,n,r,s,i,o,c,a,f,l,h,p,m,x,g,d){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this[4]=i,this[5]=o,this[6]=c,this[7]=a,this[8]=f,this[9]=l,this[10]=h,this[11]=p,this[12]=m,this[13]=x,this[14]=g,this[15]=d,this.check()}setRowMajor(t,n,r,s,i,o,c,a,f,l,h,p,m,x,g,d){return this[0]=t,this[1]=i,this[2]=f,this[3]=m,this[4]=n,this[5]=o,this[6]=l,this[7]=x,this[8]=r,this[9]=c,this[10]=h,this[11]=g,this[12]=s,this[13]=a,this[14]=p,this[15]=d,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(wr)}fromObject(t){return this.check()}fromQuaternion(t){return Fe(this,t),this.check()}frustum(t){let{left:n,right:r,bottom:s,top:i,near:o=Ut,far:c=Vt}=t;return c===1/0?Pr(this,n,r,s,i,o):Ue(this,n,r,s,i,o,c),this.check()}lookAt(t){let{eye:n,center:r=[0,0,0],up:s=[0,1,0]}=t;return De(this,n,r,s),this.check()}ortho(t){let{left:n,right:r,bottom:s,top:i,near:o=Ut,far:c=Vt}=t;return qe(this,n,r,s,i,o,c),this.check()}orthographic(t){let{fovy:n=vr,aspect:r=Nr,focalDistance:s=1,near:i=Ut,far:o=Vt}=t;Ze(n);let c=n/2,a=s*Math.tan(c),f=a*r;return this.ortho({left:-f,right:f,bottom:-a,top:a,near:i,far:o})}perspective(t){let{fovy:n=45*Math.PI/180,aspect:r=1,near:s=.1,far:i=500}=t;return Ze(n),Ve(this,n,r,s,i),this.check()}determinant(){return be(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,n){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],n=n||[-0,-0,-0];let r=this.getScale(n),s=1/r[0],i=1/r[1],o=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=0,t[4]=this[4]*s,t[5]=this[5]*i,t[6]=this[6]*o,t[7]=0,t[8]=this[8]*s,t[9]=this[9]*i,t[10]=this[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,n){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],n=n||[-0,-0,-0];let r=this.getScale(n),s=1/r[0],i=1/r[1],o=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=this[4]*s,t[4]=this[5]*i,t[5]=this[6]*o,t[6]=this[8]*s,t[7]=this[9]*i,t[8]=this[10]*o,t}transpose(){return Ne(this,this),this.check()}invert(){return we(this,this),this.check()}multiplyLeft(t){return Ft(this,t,this),this.check()}multiplyRight(t){return Ft(this,this,t),this.check()}rotateX(t){return Be(this,this,t),this.check()}rotateY(t){return ze(this,this,t),this.check()}rotateZ(t){return ke(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,n){return Ce(this,this,t,n),this.check()}scale(t){return Pe(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Oe(this,this,t),this.check()}transform(t,n){return t.length===4?(n=Ke(n||[-0,-0,-0,-0],t,this),H(n,4),n):this.transformAsPoint(t,n)}transformAsPoint(t,n){let{length:r}=t,s;switch(r){case 2:s=_e(n||[-0,-0],t,this);break;case 3:s=Mt(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return H(s,t.length),s}transformAsVector(t,n){let r;switch(t.length){case 2:r=Ae(n||[-0,-0],t,this);break;case 3:r=Se(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return H(r,t.length),r}transformPoint(t,n){return this.transformAsPoint(t,n)}transformVector(t,n){return this.transformAsPoint(t,n)}transformDirection(t,n){return this.transformAsVector(t,n)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,n,r){return this.identity().translate([t,n,r])}},At,St;function br(){return At||(At=new F([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(At)),At}function Or(){return St||(St=new F,Object.freeze(St)),St}function Ze(e){if(e>Math.PI*2)throw Error("expected radians")}function Pr(e,t,n,r,s,i){let o=2*i/(n-t),c=2*i/(s-r),a=(n+t)/(n-t),f=(s+r)/(s-r),l=-1,h=-1,p=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=a,e[9]=f,e[10]=l,e[11]=h,e[12]=0,e[13]=0,e[14]=p,e[15]=0,e}function Je(){let e=new R(4);return R!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function tn(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Dt(e,t,n){n=n*.5;let r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function Yt(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3],c=n[0],a=n[1],f=n[2],l=n[3];return e[0]=r*l+o*c+s*f-i*a,e[1]=s*l+o*a+i*c-r*f,e[2]=i*l+o*f+r*a-s*c,e[3]=o*l-r*c-s*a-i*f,e}function en(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a+o*c,e[1]=s*a+i*c,e[2]=i*a-s*c,e[3]=o*a-r*c,e}function nn(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a-i*c,e[1]=s*a+o*c,e[2]=i*a+r*c,e[3]=o*a-s*c,e}function rn(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a+s*c,e[1]=s*a-r*c,e[2]=i*a+o*c,e[3]=o*a-i*c,e}function sn(e,t){let n=t[0],r=t[1],s=t[2];return e[0]=n,e[1]=r,e[2]=s,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-s*s)),e}function et(e,t,n,r){let s=t[0],i=t[1],o=t[2],c=t[3],a=n[0],f=n[1],l=n[2],h=n[3],p,m,x,g,d;return p=s*a+i*f+o*l+c*h,p<0&&(p=-p,a=-a,f=-f,l=-l,h=-h),1-p>1e-6?(m=Math.acos(p),d=Math.sin(m),x=Math.sin((1-r)*m)/d,g=Math.sin(r*m)/d):(x=1-r,g=r),e[0]=x*s+g*a,e[1]=x*i+g*f,e[2]=x*o+g*l,e[3]=x*c+g*h,e}function on(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n*n+r*r+s*s+i*i,c=o?1/o:0;return e[0]=-n*c,e[1]=-r*c,e[2]=-s*c,e[3]=i*c,e}function cn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Ht(e,t){let n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{let s=0;t[4]>t[0]&&(s=1),t[8]>t[s*3+s]&&(s=2);let i=(s+1)%3,o=(s+2)%3;r=Math.sqrt(t[s*3+s]-t[i*3+i]-t[o*3+o]+1),e[s]=.5*r,r=.5/r,e[3]=(t[i*3+o]-t[o*3+i])*r,e[i]=(t[i*3+s]+t[s*3+i])*r,e[o]=(t[o*3+s]+t[s*3+o])*r}return e}var an=Ye;var fn=He,ln=Xe,hn=je,pn=Ge;var mn=We;var xn=$e;var gn=function(){let e=zt(),t=kt(1,0,0),n=kt(0,1,0);return function(r,s,i){let o=Le(s,i);return o<-.999999?(dt(e,t,s),Ie(e)<1e-6&&dt(e,n,s),Te(e,e),Dt(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(dt(e,s,i),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,xn(r,r))}}(),Di=function(){let e=Je(),t=Je();return function(n,r,s,i,o,c){return et(e,r,o,c),et(t,s,i,c),et(n,e,t,2*c*(1-c)),n}}(),Yi=function(){let e=ve();return function(t,n,r,s){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=s[0],e[4]=s[1],e[7]=s[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],xn(t,Ht(t,e))}}();var Cr=[0,0,0,1],nt=class extends V{constructor(t=0,n=0,r=0,s=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,n,r,s)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,n,r,s){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return Ht(this,t),this.check()}fromAxisRotation(t,n){return Dt(this,t,n),this.check()}identity(){return tn(this),this.check()}setAxisAngle(t,n){return this.fromAxisRotation(t,n)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=y(t)}get y(){return this[1]}set y(t){this[1]=y(t)}get z(){return this[2]}set z(t){this[2]=y(t)}get w(){return this[3]}set w(t){this[3]=y(t)}len(){return pn(this)}lengthSquared(){return mn(this)}dot(t){return ln(this,t)}rotationTo(t,n){return gn(this,t,n),this.check()}add(t){return an(this,this,t),this.check()}calculateW(){return sn(this,this),this.check()}conjugate(){return cn(this,this),this.check()}invert(){return on(this,this),this.check()}lerp(t,n,r){return r===void 0?this.lerp(this,t,n):(hn(this,t,n,r),this.check())}multiplyRight(t){return Yt(this,this,t),this.check()}multiplyLeft(t){return Yt(this,t,this),this.check()}normalize(){let t=this.len(),n=t>0?1/t:0;return this[0]=this[0]*n,this[1]=this[1]*n,this[2]=this[2]*n,this[3]=this[3]*n,t===0&&(this[3]=1),this.check()}rotateX(t){return en(this,this,t),this.check()}rotateY(t){return nn(this,this,t),this.check()}rotateZ(t){return rn(this,this,t),this.check()}scale(t){return fn(this,this,t),this.check()}slerp(t,n,r){let s,i,o;switch(arguments.length){case 1:({start:s=Cr,target:i,ratio:o}=t);break;case 2:s=this,i=t,o=n;break;default:s=t,i=n,o=r}return et(this,s,i,o),this.check()}transformVector4(t,n=new G){return Qe(n,t,this),H(n,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,n){return this.setAxisAngle(t,n)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var rt=D(j(),1);var Br={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},zr={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Wt=class{name;startTime=0;playing=!0;speed=1;channels=[];constructor(t){Object.assign(this,t)}animate(t){if(!this.playing)return;let r=(t/1e3-this.startTime)*this.speed;this.channels.forEach(({sampler:s,target:i,path:o})=>{Dr(r,s,i,o),Fr(i,i._node)})}},W=class{animations;constructor(t){this.animations=t.animations.map((n,r)=>{let s=n.name||`Animation-${r}`,i=n.samplers.map(({input:c,interpolation:a="LINEAR",output:f})=>({input:dn(t.accessors[c]),interpolation:a,output:dn(t.accessors[f])})),o=n.channels.map(({sampler:c,target:a})=>({sampler:i[c],target:t.nodes[a.node],path:a.path}));return new Wt({name:s,channels:o})})}animate(t){this.setTime(t)}setTime(t){this.animations.forEach(n=>n.animate(t))}getAnimations(){return this.animations}};function dn(e){if(!e._animation){let t=zr[e.componentType],n=Br[e.type],r=n*e.count,{buffer:s,byteOffset:i}=e.bufferView.data,o=new t(s,i+(e.byteOffset||0),r);if(n===1)e._animation=Array.from(o);else{let c=[];for(let a=0;a<o.length;a+=n)c.push(Array.from(o.slice(a,a+n)));e._animation=c}}return e._animation}var kr=new F;function Fr(e,t){if(t.matrix.identity(),e.translation&&t.matrix.translate(e.translation),e.rotation){let n=kr.fromQuaternion(e.rotation);t.matrix.multiplyRight(n)}e.scale&&t.matrix.scale(e.scale)}var Gt=new nt;function Ur(e,t,n,r,s){if(t==="rotation"){Gt.slerp({start:n,target:r,ratio:s});for(let i=0;i<Gt.length;i++)e[t][i]=Gt[i]}else for(let i=0;i<n.length;i++)e[t][i]=s*r[i]+(1-s)*n[i]}function Vr(e,t,{p0:n,outTangent0:r,inTangent1:s,p1:i,tDiff:o,ratio:c}){for(let a=0;a<e[t].length;a++){let f=r[a]*o,l=s[a]*o;e[t][a]=(2*Math.pow(c,3)-3*Math.pow(c,2)+1)*n[a]+(Math.pow(c,3)-2*Math.pow(c,2)+c)*f+(-2*Math.pow(c,3)+3*Math.pow(c,2))*i[a]+(Math.pow(c,3)-Math.pow(c,2))*l}}function qr(e,t,n){for(let r=0;r<n.length;r++)e[t][r]=n[r]}function Dr(e,{input:t,interpolation:n,output:r},s,i){let o=t[t.length-1],c=e%o,a=t.findIndex(p=>p>=c),f=Math.max(0,a-1);if(!Array.isArray(s[i]))switch(i){case"translation":s[i]=[0,0,0];break;case"rotation":s[i]=[0,0,0,1];break;case"scale":s[i]=[1,1,1];break;default:rt.log.warn(`Bad animation path ${i}`)()}(0,rt.assert)(s[i].length===r[f].length);let l=t[f],h=t[a];switch(n){case"STEP":qr(s,i,r[f]);break;case"LINEAR":if(h>l){let p=(c-l)/(h-l);Ur(s,i,r[f],r[a],p)}break;case"CUBICSPLINE":if(h>l){let p=(c-l)/(h-l),m=h-l,x=r[3*f+1],g=r[3*f+2],d=r[3*a+0],S=r[3*a+1];Vr(s,i,{p0:x,outTangent0:g,inTangent1:d,p1:S,tDiff:m,ratio:p})}break;default:rt.log.warn(`Interpolation ${n} not supported`)();break}}var En=D(j(),1);var $t=`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
|
|
8
8
|
struct AmbientLight {
|
|
9
9
|
vec3 color;
|
|
10
10
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/gltf",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.15",
|
|
4
4
|
"description": "glTF support for luma.gl",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,13 +40,14 @@
|
|
|
40
40
|
"prepublishOnly": "npm run build-minified-bundle && npm run build-dev-bundle"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
+
"@loaders.gl/core": "^4.2.0",
|
|
43
44
|
"@luma.gl/core": "^9.0.0",
|
|
44
45
|
"@luma.gl/engine": "^9.0.0"
|
|
45
46
|
},
|
|
46
47
|
"dependencies": {
|
|
47
48
|
"@loaders.gl/textures": "^4.2.0",
|
|
48
|
-
"@luma.gl/shadertools": "9.0.
|
|
49
|
+
"@luma.gl/shadertools": "9.0.15",
|
|
49
50
|
"@math.gl/core": "^4.0.0"
|
|
50
51
|
},
|
|
51
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "48b6e702cf6ad35748cfa88ffd249c17861ff2af"
|
|
52
53
|
}
|
package/dist.min.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
-
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
|
-
module.exports = factory();
|
|
4
|
-
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
-
else if (typeof exports === 'object') exports['luma'] = factory();
|
|
6
|
-
else root['luma'] = factory();})(globalThis, function () {
|
|
7
|
-
var __exports__=(()=>{var Tn=Object.create;var et=Object.defineProperty;var En=Object.getOwnPropertyDescriptor;var An=Object.getOwnPropertyNames;var Sn=Object.getPrototypeOf,wn=Object.prototype.hasOwnProperty;var Tt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),On=(e,t)=>{for(var n in t)et(e,n,{get:t[n],enumerable:!0})},Wt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of An(t))!wn.call(e,s)&&s!==n&&et(e,s,{get:()=>t[s],enumerable:!(r=En(t,s))||r.enumerable});return e};var C=(e,t,n)=>(n=e!=null?Tn(Sn(e)):{},Wt(t||!e||!e.__esModule?et(n,"default",{value:e,enumerable:!0}):n,e)),un=e=>Wt(et({},"__esModule",{value:!0}),e);var nt=Tt((Yr,jt)=>{jt.exports=globalThis.luma});var It=Tt((Ks,he)=>{he.exports=globalThis.luma});var mn=Tt((Ji,pn)=>{pn.exports=globalThis.luma});var Ur={};On(Ur,{GLTFAnimator:()=>G,createScenegraphsFromGLTF:()=>yn,loadPBREnvironment:()=>fe,parsePBRMaterial:()=>rt});var Ht=C(nt(),1);function rt(e,t,n,r){let s={defines:{MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},bindings:{},uniforms:{u_Camera:[0,0,0],u_MetallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};s.defines.USE_TEX_LOD=1;let{imageBasedLightingEnvironment:i}=r;return i&&(s.bindings.u_DiffuseEnvSampler=i.diffuseEnvSampler,s.bindings.u_SpecularEnvSampler=i.specularEnvSampler,s.bindings.u_brdfLUT=i.brdfLutTexture,s.uniforms.u_ScaleIBLAmbient=[1,1]),r?.pbrDebug&&(s.defines.PBR_DEBUG=1,s.uniforms.u_ScaleDiffBaseMR=[0,0,0,0],s.uniforms.u_ScaleFGDSpec=[0,0,0,0]),n.NORMAL&&(s.defines.HAS_NORMALS=1),n.TANGENT&&r?.useTangents&&(s.defines.HAS_TANGENTS=1),n.TEXCOORD_0&&(s.defines.HAS_UV=1),r?.imageBasedLightingEnvironment&&(s.defines.USE_IBL=1),r?.lights&&(s.defines.USE_LIGHTS=1),t&&Ln(e,t,s),s}function Ln(e,t,n){if(n.uniforms.pbr_uUnlit=Boolean(t.unlit),t.pbrMetallicRoughness&&Rn(e,t.pbrMetallicRoughness,n),t.normalTexture){j(e,t.normalTexture,"u_NormalSampler","HAS_NORMALMAP",n);let{scale:r=1}=t.normalTexture;n.uniforms.u_NormalScale=r}if(t.occlusionTexture){j(e,t.occlusionTexture,"u_OcclusionSampler","HAS_OCCLUSIONMAP",n);let{strength:r=1}=t.occlusionTexture;n.uniforms.u_OcclusionStrength=r}switch(t.emissiveTexture&&(j(e,t.emissiveTexture,"u_EmissiveSampler","HAS_EMISSIVEMAP",n),n.uniforms.u_EmissiveFactor=t.emissiveFactor||[0,0,0]),t.alphaMode){case"MASK":let{alphaCutoff:r=.5}=t;n.defines.ALPHA_CUTOFF=1,n.uniforms.u_AlphaCutoff=r;break;case"BLEND":Ht.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),n.parameters.blendColorOperation="add",n.parameters.blendColorSrcFactor="src-alpha",n.parameters.blendColorDstFactor="one-minus-src-alpha",n.parameters.blendAlphaOperation="add",n.parameters.blendAlphaSrcFactor="one",n.parameters.blendAlphaDstFactor="one-minus-src-alpha",n.glParameters.blend=!0,n.glParameters.blendEquation=32774,n.glParameters.blendFunc=[770,771,1,771];break}}function Rn(e,t,n){t.baseColorTexture&&j(e,t.baseColorTexture,"u_BaseColorSampler","HAS_BASECOLORMAP",n),n.uniforms.u_BaseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&j(e,t.metallicRoughnessTexture,"u_MetallicRoughnessSampler","HAS_METALROUGHNESSMAP",n);let{metallicFactor:r=1,roughnessFactor:s=1}=t;n.uniforms.u_MetallicRoughnessValues=[r,s]}function j(e,t,n,r=null,s){let i=t?.texture?.sampler?.parameters||{},o=t.texture.source.image,c,a={};o.compressed?(c=o,a={[10241]:o.data.length>1?9985:9729}):c={data:o};let f=e.createTexture({id:t.uniformName||t.id,parameters:{...i,...a},pixelStore:{[37440]:!1},...c});s.bindings[n]=f,r&&(s.defines[r]=1),s.generatedTextures.push(f)}function Et(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var Pn="",Xt={};function At(e){for(let t in Xt)if(e.startsWith(t)){let n=Xt[t];e=e.replace(t,n)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Pn}${e}`),e}var $t="4.1.3";function H(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var B={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},_n=B.self||B.window||B.global||{},Nn=B.window||B.self||B.global||{},In=B.global||B.self||B.window||{},vn=B.document||{};var St=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Kt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),bn=Kt&&parseFloat(Kt[1])||0;var wt,Bn=(wt=globalThis.loaders)===null||wt===void 0?void 0:wt.parseImageNode,Ot=typeof Image<"u",ut=typeof ImageBitmap<"u",kn=Boolean(Bn),Lt=St?!0:kn;function Qt(e){switch(e){case"auto":return ut||Ot||Lt;case"imagebitmap":return ut;case"image":return Ot;case"data":return Lt;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Zt(){if(ut)return"imagebitmap";if(Ot)return"image";if(Lt)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Jt(e){let t=Fn(e);if(!t)throw new Error("Not an image");return t}function Rt(e){return st(e)}function st(e){switch(Jt(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function Fn(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var zn=/^data:image\/svg\+xml/,qn=/\.svg((\?|#).*)?$/;function it(e){return e&&(zn.test(e)||qn.test(e))}function te(e,t){if(it(t)){let r=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(r=unescape(encodeURIComponent(r)))}catch(i){throw new Error(i.message)}return`data:image/svg+xml;base64,${btoa(r)}`}return Pt(e,t)}function Pt(e,t){if(it(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ot(e,t,n){let r=te(e,n),s=self.URL||self.webkitURL,i=typeof r!="string"&&s.createObjectURL(r);try{return await Cn(i||r,t)}finally{i&&s.revokeObjectURL(i)}}async function Cn(e,t){let n=new Image;return n.src=e,t.image&&t.image.decode&&n.decode?(await n.decode(),n):await new Promise((r,s)=>{try{n.onload=()=>r(n),n.onerror=i=>{let o=i instanceof Error?i.message:"error";s(new Error(o))}}catch(i){s(i)}})}var Dn={},ee=!0;async function ne(e,t,n){let r;it(n)?r=await ot(e,t,n):r=Pt(e,n);let s=t&&t.imagebitmap;return await Vn(r,s)}async function Vn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((Un(t)||!ee)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),ee=!1}return await createImageBitmap(e)}function Un(e){for(let t in e||Dn)return!1;return!0}function re(e){return!jn(e,"ftyp",4)||!(e[8]&96)?null:Gn(e)}function Gn(e){switch(Yn(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Yn(e,t,n){return String.fromCharCode(...e.slice(t,n))}function Wn(e){return[...e].map(t=>t.charCodeAt(0))}function jn(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=Wn(t);for(let s=0;s<r.length;++s)if(r[s]!==e[s+n])return!1;return!0}var k=!1,X=!0;function ct(e){let t=$(e);return Xn(t)||Qn(t)||$n(t)||Kn(t)||Hn(t)}function Hn(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),n=re(t);return n?{mimeType:n.mimeType,width:0,height:0}:null}function Xn(e){let t=$(e);return t.byteLength>=24&&t.getUint32(0,k)===2303741511?{mimeType:"image/png",width:t.getUint32(16,k),height:t.getUint32(20,k)}:null}function $n(e){let t=$(e);return t.byteLength>=10&&t.getUint32(0,k)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,X),height:t.getUint16(8,X)}:null}function Kn(e){let t=$(e);return t.byteLength>=14&&t.getUint16(0,k)===16973&&t.getUint32(2,X)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,X),height:t.getUint32(22,X)}:null}function Qn(e){let t=$(e);if(!(t.byteLength>=3&&t.getUint16(0,k)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:s}=Zn(),i=2;for(;i+9<t.byteLength;){let o=t.getUint16(i,k);if(s.has(o))return{mimeType:"image/jpeg",height:t.getUint16(i+5,k),width:t.getUint16(i+7,k)};if(!r.has(o))return null;i+=2,i+=t.getUint16(i,k)}return null}function Zn(){let e=new Set([65499,65476,65484,65501,65534]);for(let n=65504;n<65520;++n)e.add(n);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function $(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function se(e,t){var n;let{mimeType:r}=ct(e)||{},s=(n=globalThis.loaders)===null||n===void 0?void 0:n.parseImageNode;return H(s),await s(e,r)}async function ie(e,t,n){t=t||{};let s=(t.image||{}).type||"auto",{url:i}=n||{},o=Jn(s),c;switch(o){case"imagebitmap":c=await ne(e,t,i);break;case"image":c=await ot(e,t,i);break;case"data":c=await se(e,t);break;default:H(!1)}return s==="data"&&(c=st(c)),c}function Jn(e){switch(e){case"auto":case"data":return Zt();default:return Qt(e),e}}var tr=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],er=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],nr={image:{type:"auto",decode:!0}},at={id:"image",module:"images",name:"Images",version:$t,mimeTypes:er,extensions:tr,parse:ie,tests:[e=>Boolean(ct(new DataView(e)))],options:nr};function ft(e,t,n){let r=typeof e=="function"?e({...t,...n}):e,s=t.baseUrl;return s&&(r=s[s.length-1]==="/"?`${s}${r}`:`${s}/${r}`),At(r)}var rr=e=>e&&typeof e=="object";async function oe(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return await _t(e,t,n)}async function _t(e,t,n){return Array.isArray(e)?await ir(e,t,n):rr(e)?await sr(e,t,n):await t(e,n)}async function sr(e,t,n){let r=[],s={};for(let i in e){let o=e[i],c=_t(o,t,n).then(a=>{s[i]=a});r.push(c)}return await Promise.all(r),s}async function ir(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=e.map(s=>_t(s,t,n));return await Promise.all(r)}async function ce(e,t,n){return await oe(e,r=>Nt(r,t,n))}async function Nt(e,t,n){let s=await(await fetch(e,n.fetch)).arrayBuffer();return await t(s,n)}async function K(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=await or(e,t);return await ce(n,at.parse,t)}async function or(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=t&&t.image&&t.image.mipLevels||0;return r!==0?await cr(e,r,t,n):ft(e,t,n)}async function cr(e,t,n,r){let s=[];if(t==="auto"){let i=ft(e,n,{...r,lod:0}),o=await Nt(i,at.parse,n),{width:c,height:a}=Rt(o);t=ar({width:c,height:a}),s.push(i)}Et(t>0);for(let i=s.length;i<t;++i){let o=ft(e,n,{...r,lod:i});s.push(o)}return s}function ar(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}function fe(e,t){let n=e.createTexture({id:"brdfLUT",sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"},data:K(t.brdfLutUrl)}),r=ae(e,{id:"DiffuseEnvSampler",getTextureForFace:i=>K(t.getTexUrl("diffuse",i,0)),sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}}),s=ae(e,{id:"SpecularEnvSampler",getTextureForFace:i=>{let o=[];for(let c=0;c<=t.specularMipLevels-1;c++)o.push(K(t.getTexUrl("specular",i,c)));return o},sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}});return{brdfLutTexture:n,diffuseEnvSampler:r,specularEnvSampler:s}}var fr=[0,1,2,3,4,5];function ae(e,{id:t,getTextureForFace:n,sampler:r}){let s={};return fr.forEach(i=>{s[String(i)]=n(i)}),e.createTexture({id:t,dimension:"cube",mipmaps:!1,sampler:r,data:s})}var Y=C(It(),1);var Qs=1/Math.PI*180,Zs=1/180*Math.PI,hr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...hr}};var u=globalThis.mathgl.config;function le(e,{precision:t=u.precision}={}){return e=lr(e),"".concat(parseFloat(e.toPrecision(t)))}function D(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function vt(e,t,n){let r=u.EPSILON;n&&(u.EPSILON=n);try{if(e===t)return!0;if(D(e)&&D(t)){if(e.length!==t.length)return!1;for(let s=0;s<e.length;++s)if(!vt(e[s],t[s]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=u.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{u.EPSILON=r}}function lr(e){return Math.round(e/u.EPSILON)*u.EPSILON}function pr(e){function t(){var n=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(n,Object.getPrototypeOf(this)),n}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}var q=class extends pr(Array){clone(){return new this.constructor().copy(this)}fromArray(t,n=0){for(let r=0;r<this.ELEMENTS;++r)this[r]=t[r+n];return this.check()}toArray(t=[],n=0){for(let r=0;r<this.ELEMENTS;++r)t[n+r]=this[r];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:D(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(u)}formatString(t){let n="";for(let r=0;r<this.ELEMENTS;++r)n+=(r>0?", ":"")+le(this[r],t);return"".concat(t.printTypes?this.constructor.name:"","[").concat(n,"]")}equals(t){if(!t||this.length!==t.length)return!1;for(let n=0;n<this.ELEMENTS;++n)if(!vt(this[n],t[n]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let n=0;n<this.ELEMENTS;++n)if(this[n]!==t[n])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,n,r){if(r===void 0)return this.lerp(this,t,n);for(let s=0;s<this.ELEMENTS;++s){let i=t[s],o=typeof n=="number"?n:n[s];this[s]=i+r*(o-i)}return this.check()}min(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(t[n],this[n]);return this.check()}max(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.max(t[n],this[n]);return this.check()}clamp(t,n){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t[r]),n[r]);return this.check()}add(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]+=n[r];return this.check()}subtract(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]-=n[r];return this.check()}scale(t){if(typeof t=="number")for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;else for(let n=0;n<this.ELEMENTS&&n<t.length;++n)this[n]*=t[n];return this.check()}multiplyByScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;return this.check()}check(){if(u.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}validate(){let t=this.length===this.ELEMENTS;for(let n=0;n<this.ELEMENTS;++n)t=t&&Number.isFinite(this[n]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]=t;return this.check()}addScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let n=0;n<this.ELEMENTS;++n)this[n]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,n){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t),n);return this.check()}get elements(){return this}};function mr(e,t){if(e.length!==t)return!1;for(let n=0;n<e.length;++n)if(!Number.isFinite(e[n]))return!1;return!0}function w(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(JSON.stringify(e)));return e}function V(e,t,n=""){if(u.debug&&!mr(e,t))throw new Error("math.gl: ".concat(n," some fields set to invalid numbers'"));return e}function bt(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}var ht=class extends q{get x(){return this[0]}set x(t){this[0]=w(t)}get y(){return this[1]}set y(t){this[1]=w(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let n=0;n<this.ELEMENTS;++n)t+=this[n]*this[n];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let n=0;for(let r=0;r<this.ELEMENTS;++r){let s=this[r]-t[r];n+=s*s}return w(n)}dot(t){let n=0;for(let r=0;r<this.ELEMENTS;++r)n+=this[r]*t[r];return w(n)}normalize(){let t=this.magnitude();if(t!==0)for(let n=0;n<this.ELEMENTS;++n)this[n]/=t;return this.check()}multiply(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]*=n[r];return this.check()}divide(...t){for(let n of t)for(let r=0;r<this.ELEMENTS;++r)this[r]/=n[r];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return bt(t>=0&&t<this.ELEMENTS,"index is out of range"),w(this[t])}setComponent(t,n){return bt(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=n,this.check()}addVectors(t,n){return this.copy(t).add(n)}subVectors(t,n){return this.copy(t).subtract(n)}multiplyVectors(t,n){return this.copy(t).multiply(n)}addScaledVector(t,n){return this.add(new this.constructor(t).multiplyScalar(n))}};var L=typeof Float32Array<"u"?Float32Array:Array;var fi=Math.PI/180;function xr(){let e=new L(2);return L!=Float32Array&&(e[0]=0,e[1]=0),e}function xe(e,t,n){let r=t[0],s=t[1];return e[0]=n[0]*r+n[4]*s+n[12],e[1]=n[1]*r+n[5]*s+n[13],e}var hi=function(){let e=xr();return function(t,n,r,s,i,o){let c,a;for(n||(n=2),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],i(e,e,o),t[c]=e[0],t[c+1]=e[1];return t}}();function de(e,t,n){let r=t[0],s=t[1],i=n[3]*r+n[7]*s||1;return e[0]=(n[0]*r+n[4]*s)/i,e[1]=(n[1]*r+n[5]*s)/i,e}function ge(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[3]*r+n[7]*s+n[11]*i||1;return e[0]=(n[0]*r+n[4]*s+n[8]*i)/o,e[1]=(n[1]*r+n[5]*s+n[9]*i)/o,e[2]=(n[2]*r+n[6]*s+n[10]*i)/o,e}function Me(e,t,n){let r=t[0],s=t[1];return e[0]=n[0]*r+n[2]*s,e[1]=n[1]*r+n[3]*s,e[2]=t[2],e[3]=t[3],e}function ye(e,t,n){let r=t[0],s=t[1],i=t[2];return e[0]=n[0]*r+n[3]*s+n[6]*i,e[1]=n[1]*r+n[4]*s+n[7]*i,e[2]=n[2]*r+n[5]*s+n[8]*i,e[3]=t[3],e}function Bt(){let e=new L(3);return L!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function dr(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function kt(e,t,n){let r=new L(3);return r[0]=e,r[1]=t,r[2]=n,r}function Te(e,t){let n=t[0],r=t[1],s=t[2],i=n*n+r*r+s*s;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function Ee(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function lt(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[0],c=n[1],a=n[2];return e[0]=s*a-i*c,e[1]=i*o-r*a,e[2]=r*c-s*o,e}function pt(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[3]*r+n[7]*s+n[11]*i+n[15];return o=o||1,e[0]=(n[0]*r+n[4]*s+n[8]*i+n[12])/o,e[1]=(n[1]*r+n[5]*s+n[9]*i+n[13])/o,e[2]=(n[2]*r+n[6]*s+n[10]*i+n[14])/o,e}function Ae(e,t,n){let r=n[0],s=n[1],i=n[2],o=n[3],c=t[0],a=t[1],f=t[2],h=s*f-i*a,l=i*c-r*f,p=r*a-s*c,m=s*p-i*l,x=i*h-r*p,d=r*l-s*h,g=o*2;return h*=g,l*=g,p*=g,m*=2,x*=2,d*=2,e[0]=c+h+m,e[1]=a+l+x,e[2]=f+p+d,e}var Se=dr;var mi=function(){let e=Bt();return function(t,n,r,s,i,o){let c,a;for(n||(n=3),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2];return t}}();var mt,U=class extends ht{static get ZERO(){return mt||(mt=new U(0,0,0,0),Object.freeze(mt)),mt}constructor(t=0,n=0,r=0,s=0){super(-0,-0,-0,-0),D(t)&&arguments.length===1?this.copy(t):(u.debug&&(w(t),w(n),w(r),w(s)),this[0]=t,this[1]=n,this[2]=r,this[3]=s)}set(t,n,r,s){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(t){return u.debug&&(w(t.x),w(t.y),w(t.z),w(t.w)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(t){this[2]=w(t)}get w(){return this[3]}set w(t){this[3]=w(t)}transform(t){return pt(this,this,t),this.check()}transformByMatrix3(t){return ye(this,this,t),this.check()}transformByMatrix2(t){return Me(this,this,t),this.check()}transformByQuaternion(t){return Ae(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var xt=class extends q{toString(){let t="[";if(u.printRowMajor){t+="row-major:";for(let n=0;n<this.RANK;++n)for(let r=0;r<this.RANK;++r)t+=" ".concat(this[r*this.RANK+n])}else{t+="column-major:";for(let n=0;n<this.ELEMENTS;++n)t+=" ".concat(this[n])}return t+="]",t}getElementIndex(t,n){return n*this.RANK+t}getElement(t,n){return this[n*this.RANK+t]}setElement(t,n,r){return this[n*this.RANK+t]=w(r),this}getColumn(t,n=new Array(this.RANK).fill(-0)){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)n[s]=this[r+s];return n}setColumn(t,n){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)this[r+s]=n[s];return this}};function we(){let e=new L(9);return L!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function yr(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Oe(e,t){if(e===t){let n=t[1],r=t[2],s=t[3],i=t[6],o=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[6]=t[9],e[7]=t[13],e[8]=r,e[9]=i,e[11]=t[14],e[12]=s,e[13]=o,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function ue(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=t[4],c=t[5],a=t[6],f=t[7],h=t[8],l=t[9],p=t[10],m=t[11],x=t[12],d=t[13],g=t[14],A=t[15],O=n*c-r*o,M=n*a-s*o,y=n*f-i*o,T=r*a-s*c,E=r*f-i*c,R=s*f-i*a,P=h*d-l*x,_=h*g-p*x,N=h*A-m*x,I=l*g-p*d,v=l*A-m*d,b=p*A-m*g,S=O*b-M*v+y*I+T*N-E*_+R*P;return S?(S=1/S,e[0]=(c*b-a*v+f*I)*S,e[1]=(s*v-r*b-i*I)*S,e[2]=(d*R-g*E+A*T)*S,e[3]=(p*E-l*R-m*T)*S,e[4]=(a*N-o*b-f*_)*S,e[5]=(n*b-s*N+i*_)*S,e[6]=(g*y-x*R-A*M)*S,e[7]=(h*R-p*y+m*M)*S,e[8]=(o*v-c*N+f*P)*S,e[9]=(r*N-n*v-i*P)*S,e[10]=(x*E-d*y+A*O)*S,e[11]=(l*y-h*E-m*O)*S,e[12]=(c*_-o*I-a*P)*S,e[13]=(n*I-r*_+s*P)*S,e[14]=(d*M-x*T-g*O)*S,e[15]=(h*T-l*M+p*O)*S,e):null}function Le(e){let t=e[0],n=e[1],r=e[2],s=e[3],i=e[4],o=e[5],c=e[6],a=e[7],f=e[8],h=e[9],l=e[10],p=e[11],m=e[12],x=e[13],d=e[14],g=e[15],A=t*o-n*i,O=t*c-r*i,M=n*c-r*o,y=f*x-h*m,T=f*d-l*m,E=h*d-l*x,R=t*E-n*T+r*y,P=i*E-o*T+c*y,_=f*M-h*O+l*A,N=m*M-x*O+d*A;return a*R-s*P+g*_-p*N}function Ft(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3],c=t[4],a=t[5],f=t[6],h=t[7],l=t[8],p=t[9],m=t[10],x=t[11],d=t[12],g=t[13],A=t[14],O=t[15],M=n[0],y=n[1],T=n[2],E=n[3];return e[0]=M*r+y*c+T*l+E*d,e[1]=M*s+y*a+T*p+E*g,e[2]=M*i+y*f+T*m+E*A,e[3]=M*o+y*h+T*x+E*O,M=n[4],y=n[5],T=n[6],E=n[7],e[4]=M*r+y*c+T*l+E*d,e[5]=M*s+y*a+T*p+E*g,e[6]=M*i+y*f+T*m+E*A,e[7]=M*o+y*h+T*x+E*O,M=n[8],y=n[9],T=n[10],E=n[11],e[8]=M*r+y*c+T*l+E*d,e[9]=M*s+y*a+T*p+E*g,e[10]=M*i+y*f+T*m+E*A,e[11]=M*o+y*h+T*x+E*O,M=n[12],y=n[13],T=n[14],E=n[15],e[12]=M*r+y*c+T*l+E*d,e[13]=M*s+y*a+T*p+E*g,e[14]=M*i+y*f+T*m+E*A,e[15]=M*o+y*h+T*x+E*O,e}function Re(e,t,n){let r=n[0],s=n[1],i=n[2],o,c,a,f,h,l,p,m,x,d,g,A;return t===e?(e[12]=t[0]*r+t[4]*s+t[8]*i+t[12],e[13]=t[1]*r+t[5]*s+t[9]*i+t[13],e[14]=t[2]*r+t[6]*s+t[10]*i+t[14],e[15]=t[3]*r+t[7]*s+t[11]*i+t[15]):(o=t[0],c=t[1],a=t[2],f=t[3],h=t[4],l=t[5],p=t[6],m=t[7],x=t[8],d=t[9],g=t[10],A=t[11],e[0]=o,e[1]=c,e[2]=a,e[3]=f,e[4]=h,e[5]=l,e[6]=p,e[7]=m,e[8]=x,e[9]=d,e[10]=g,e[11]=A,e[12]=o*r+h*s+x*i+t[12],e[13]=c*r+l*s+d*i+t[13],e[14]=a*r+p*s+g*i+t[14],e[15]=f*r+m*s+A*i+t[15]),e}function Pe(e,t,n){let r=n[0],s=n[1],i=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function _e(e,t,n,r){let s=r[0],i=r[1],o=r[2],c=Math.sqrt(s*s+i*i+o*o),a,f,h,l,p,m,x,d,g,A,O,M,y,T,E,R,P,_,N,I,v,b,S,W;return c<1e-6?null:(c=1/c,s*=c,i*=c,o*=c,f=Math.sin(n),a=Math.cos(n),h=1-a,l=t[0],p=t[1],m=t[2],x=t[3],d=t[4],g=t[5],A=t[6],O=t[7],M=t[8],y=t[9],T=t[10],E=t[11],R=s*s*h+a,P=i*s*h+o*f,_=o*s*h-i*f,N=s*i*h-o*f,I=i*i*h+a,v=o*i*h+s*f,b=s*o*h+i*f,S=i*o*h-s*f,W=o*o*h+a,e[0]=l*R+d*P+M*_,e[1]=p*R+g*P+y*_,e[2]=m*R+A*P+T*_,e[3]=x*R+O*P+E*_,e[4]=l*N+d*I+M*v,e[5]=p*N+g*I+y*v,e[6]=m*N+A*I+T*v,e[7]=x*N+O*I+E*v,e[8]=l*b+d*S+M*W,e[9]=p*b+g*S+y*W,e[10]=m*b+A*S+T*W,e[11]=x*b+O*S+E*W,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Ne(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[4],o=t[5],c=t[6],a=t[7],f=t[8],h=t[9],l=t[10],p=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*s+f*r,e[5]=o*s+h*r,e[6]=c*s+l*r,e[7]=a*s+p*r,e[8]=f*s-i*r,e[9]=h*s-o*r,e[10]=l*s-c*r,e[11]=p*s-a*r,e}function Ie(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],o=t[1],c=t[2],a=t[3],f=t[8],h=t[9],l=t[10],p=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*s-f*r,e[1]=o*s-h*r,e[2]=c*s-l*r,e[3]=a*s-p*r,e[8]=i*r+f*s,e[9]=o*r+h*s,e[10]=c*r+l*s,e[11]=a*r+p*s,e}function ve(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],o=t[1],c=t[2],a=t[3],f=t[4],h=t[5],l=t[6],p=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*s+f*r,e[1]=o*s+h*r,e[2]=c*s+l*r,e[3]=a*s+p*r,e[4]=f*s-i*r,e[5]=h*s-o*r,e[6]=l*s-c*r,e[7]=p*s-a*r,e}function be(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n+n,c=r+r,a=s+s,f=n*o,h=r*o,l=r*c,p=s*o,m=s*c,x=s*a,d=i*o,g=i*c,A=i*a;return e[0]=1-l-x,e[1]=h+A,e[2]=p-g,e[3]=0,e[4]=h-A,e[5]=1-f-x,e[6]=m+d,e[7]=0,e[8]=p+g,e[9]=m-d,e[10]=1-f-l,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Be(e,t,n,r,s,i,o){let c=1/(n-t),a=1/(s-r),f=1/(i-o);return e[0]=i*2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i*2*a,e[6]=0,e[7]=0,e[8]=(n+t)*c,e[9]=(s+r)*a,e[10]=(o+i)*f,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*f,e[15]=0,e}function Tr(e,t,n,r,s){let i=1/Math.tan(t/2);if(e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,s!=null&&s!==1/0){let o=1/(r-s);e[10]=(s+r)*o,e[14]=2*s*r*o}else e[10]=-1,e[14]=-2*r;return e}var ke=Tr;function Er(e,t,n,r,s,i,o){let c=1/(t-n),a=1/(r-s),f=1/(i-o);return e[0]=-2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*f,e[11]=0,e[12]=(t+n)*c,e[13]=(s+r)*a,e[14]=(o+i)*f,e[15]=1,e}var Fe=Er;function ze(e,t,n,r){let s,i,o,c,a,f,h,l,p,m,x=t[0],d=t[1],g=t[2],A=r[0],O=r[1],M=r[2],y=n[0],T=n[1],E=n[2];return Math.abs(x-y)<1e-6&&Math.abs(d-T)<1e-6&&Math.abs(g-E)<1e-6?yr(e):(l=x-y,p=d-T,m=g-E,s=1/Math.sqrt(l*l+p*p+m*m),l*=s,p*=s,m*=s,i=O*m-M*p,o=M*l-A*m,c=A*p-O*l,s=Math.sqrt(i*i+o*o+c*c),s?(s=1/s,i*=s,o*=s,c*=s):(i=0,o=0,c=0),a=p*c-m*o,f=m*i-l*c,h=l*o-p*i,s=Math.sqrt(a*a+f*f+h*h),s?(s=1/s,a*=s,f*=s,h*=s):(a=0,f=0,h=0),e[0]=i,e[1]=a,e[2]=l,e[3]=0,e[4]=o,e[5]=f,e[6]=p,e[7]=0,e[8]=c,e[9]=h,e[10]=m,e[11]=0,e[12]=-(i*x+o*d+c*g),e[13]=-(a*x+f*d+h*g),e[14]=-(l*x+p*d+m*g),e[15]=1,e)}function Ar(){let e=new L(4);return L!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function qe(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function Ce(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function De(e){let t=e[0],n=e[1],r=e[2],s=e[3];return Math.sqrt(t*t+n*n+r*r+s*s)}function Ve(e){let t=e[0],n=e[1],r=e[2],s=e[3];return t*t+n*n+r*r+s*s}function Ue(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n*n+r*r+s*s+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=s*o,e[3]=i*o,e}function Ge(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Ye(e,t,n,r){let s=t[0],i=t[1],o=t[2],c=t[3];return e[0]=s+r*(n[0]-s),e[1]=i+r*(n[1]-i),e[2]=o+r*(n[2]-o),e[3]=c+r*(n[3]-c),e}function We(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3];return e[0]=n[0]*r+n[4]*s+n[8]*i+n[12]*o,e[1]=n[1]*r+n[5]*s+n[9]*i+n[13]*o,e[2]=n[2]*r+n[6]*s+n[10]*i+n[14]*o,e[3]=n[3]*r+n[7]*s+n[11]*i+n[15]*o,e}function je(e,t,n){let r=t[0],s=t[1],i=t[2],o=n[0],c=n[1],a=n[2],f=n[3],h=f*r+c*i-a*s,l=f*s+a*r-o*i,p=f*i+o*s-c*r,m=-o*r-c*s-a*i;return e[0]=h*f+m*-o+l*-a-p*-c,e[1]=l*f+m*-c+p*-o-h*-a,e[2]=p*f+m*-a+h*-c-l*-o,e[3]=t[3],e}var ui=function(){let e=Ar();return function(t,n,r,s,i,o){let c,a;for(n||(n=4),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,c=r;c<a;c+=n)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],e[3]=t[c+3],i(e,e,o),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2],t[c+3]=e[3];return t}}();var Ct;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(Ct||(Ct={}));var wr=45*Math.PI/180,Or=1,zt=.1,qt=500,ur=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),z=class extends xt{static get IDENTITY(){return Rr()}static get ZERO(){return Lr()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Ct}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,n,r,s,i,o,c,a,f,h,l,p,m,x,d,g){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this[4]=i,this[5]=o,this[6]=c,this[7]=a,this[8]=f,this[9]=h,this[10]=l,this[11]=p,this[12]=m,this[13]=x,this[14]=d,this[15]=g,this.check()}setRowMajor(t,n,r,s,i,o,c,a,f,h,l,p,m,x,d,g){return this[0]=t,this[1]=i,this[2]=f,this[3]=m,this[4]=n,this[5]=o,this[6]=h,this[7]=x,this[8]=r,this[9]=c,this[10]=l,this[11]=d,this[12]=s,this[13]=a,this[14]=p,this[15]=g,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(ur)}fromObject(t){return this.check()}fromQuaternion(t){return be(this,t),this.check()}frustum(t){let{left:n,right:r,bottom:s,top:i,near:o=zt,far:c=qt}=t;return c===1/0?Pr(this,n,r,s,i,o):Be(this,n,r,s,i,o,c),this.check()}lookAt(t){let{eye:n,center:r=[0,0,0],up:s=[0,1,0]}=t;return ze(this,n,r,s),this.check()}ortho(t){let{left:n,right:r,bottom:s,top:i,near:o=zt,far:c=qt}=t;return Fe(this,n,r,s,i,o,c),this.check()}orthographic(t){let{fovy:n=wr,aspect:r=Or,focalDistance:s=1,near:i=zt,far:o=qt}=t;He(n);let c=n/2,a=s*Math.tan(c),f=a*r;return this.ortho({left:-f,right:f,bottom:-a,top:a,near:i,far:o})}perspective(t){let{fovy:n=45*Math.PI/180,aspect:r=1,near:s=.1,far:i=500}=t;return He(n),ke(this,n,r,s,i),this.check()}determinant(){return Le(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,n){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],n=n||[-0,-0,-0];let r=this.getScale(n),s=1/r[0],i=1/r[1],o=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=0,t[4]=this[4]*s,t[5]=this[5]*i,t[6]=this[6]*o,t[7]=0,t[8]=this[8]*s,t[9]=this[9]*i,t[10]=this[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,n){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],n=n||[-0,-0,-0];let r=this.getScale(n),s=1/r[0],i=1/r[1],o=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*o,t[3]=this[4]*s,t[4]=this[5]*i,t[5]=this[6]*o,t[6]=this[8]*s,t[7]=this[9]*i,t[8]=this[10]*o,t}transpose(){return Oe(this,this),this.check()}invert(){return ue(this,this),this.check()}multiplyLeft(t){return Ft(this,t,this),this.check()}multiplyRight(t){return Ft(this,this,t),this.check()}rotateX(t){return Ne(this,this,t),this.check()}rotateY(t){return Ie(this,this,t),this.check()}rotateZ(t){return ve(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,n){return _e(this,this,t,n),this.check()}scale(t){return Pe(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Re(this,this,t),this.check()}transform(t,n){return t.length===4?(n=We(n||[-0,-0,-0,-0],t,this),V(n,4),n):this.transformAsPoint(t,n)}transformAsPoint(t,n){let{length:r}=t,s;switch(r){case 2:s=xe(n||[-0,-0],t,this);break;case 3:s=pt(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return V(s,t.length),s}transformAsVector(t,n){let r;switch(t.length){case 2:r=de(n||[-0,-0],t,this);break;case 3:r=ge(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return V(r,t.length),r}transformPoint(t,n){return this.transformAsPoint(t,n)}transformVector(t,n){return this.transformAsPoint(t,n)}transformDirection(t,n){return this.transformAsVector(t,n)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,n,r){return this.identity().translate([t,n,r])}},dt,gt;function Lr(){return dt||(dt=new z([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(dt)),dt}function Rr(){return gt||(gt=new z,Object.freeze(gt)),gt}function He(e){if(e>Math.PI*2)throw Error("expected radians")}function Pr(e,t,n,r,s,i){let o=2*i/(n-t),c=2*i/(s-r),a=(n+t)/(n-t),f=(s+r)/(s-r),h=-1,l=-1,p=-2*i;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=a,e[9]=f,e[10]=h,e[11]=l,e[12]=0,e[13]=0,e[14]=p,e[15]=0,e}function Xe(){let e=new L(4);return L!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function $e(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Dt(e,t,n){n=n*.5;let r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function Vt(e,t,n){let r=t[0],s=t[1],i=t[2],o=t[3],c=n[0],a=n[1],f=n[2],h=n[3];return e[0]=r*h+o*c+s*f-i*a,e[1]=s*h+o*a+i*c-r*f,e[2]=i*h+o*f+r*a-s*c,e[3]=o*h-r*c-s*a-i*f,e}function Ke(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a+o*c,e[1]=s*a+i*c,e[2]=i*a-s*c,e[3]=o*a-r*c,e}function Qe(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a-i*c,e[1]=s*a+o*c,e[2]=i*a+r*c,e[3]=o*a-s*c,e}function Ze(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],o=t[3],c=Math.sin(n),a=Math.cos(n);return e[0]=r*a+s*c,e[1]=s*a-r*c,e[2]=i*a+o*c,e[3]=o*a-i*c,e}function Je(e,t){let n=t[0],r=t[1],s=t[2];return e[0]=n,e[1]=r,e[2]=s,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-s*s)),e}function Z(e,t,n,r){let s=t[0],i=t[1],o=t[2],c=t[3],a=n[0],f=n[1],h=n[2],l=n[3],p,m,x,d,g;return p=s*a+i*f+o*h+c*l,p<0&&(p=-p,a=-a,f=-f,h=-h,l=-l),1-p>1e-6?(m=Math.acos(p),g=Math.sin(m),x=Math.sin((1-r)*m)/g,d=Math.sin(r*m)/g):(x=1-r,d=r),e[0]=x*s+d*a,e[1]=x*i+d*f,e[2]=x*o+d*h,e[3]=x*c+d*l,e}function tn(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],o=n*n+r*r+s*s+i*i,c=o?1/o:0;return e[0]=-n*c,e[1]=-r*c,e[2]=-s*c,e[3]=i*c,e}function en(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Ut(e,t){let n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{let s=0;t[4]>t[0]&&(s=1),t[8]>t[s*3+s]&&(s=2);let i=(s+1)%3,o=(s+2)%3;r=Math.sqrt(t[s*3+s]-t[i*3+i]-t[o*3+o]+1),e[s]=.5*r,r=.5/r,e[3]=(t[i*3+o]-t[o*3+i])*r,e[i]=(t[i*3+s]+t[s*3+i])*r,e[o]=(t[o*3+s]+t[s*3+o])*r}return e}var nn=qe;var rn=Ce,sn=Ge,on=Ye,cn=De;var an=Ve;var fn=Ue;var hn=function(){let e=Bt(),t=kt(1,0,0),n=kt(0,1,0);return function(r,s,i){let o=Ee(s,i);return o<-.999999?(lt(e,t,s),Se(e)<1e-6&<(e,n,s),Te(e,e),Dt(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(lt(e,s,i),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,fn(r,r))}}(),Ci=function(){let e=Xe(),t=Xe();return function(n,r,s,i,o,c){return Z(e,r,o,c),Z(t,s,i,c),Z(n,e,t,2*c*(1-c)),n}}(),Di=function(){let e=we();return function(t,n,r,s){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=s[0],e[4]=s[1],e[7]=s[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],fn(t,Ut(t,e))}}();var _r=[0,0,0,1],J=class extends q{constructor(t=0,n=0,r=0,s=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,n,r,s)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,n,r,s){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return Ut(this,t),this.check()}fromAxisRotation(t,n){return Dt(this,t,n),this.check()}identity(){return $e(this),this.check()}setAxisAngle(t,n){return this.fromAxisRotation(t,n)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=w(t)}get y(){return this[1]}set y(t){this[1]=w(t)}get z(){return this[2]}set z(t){this[2]=w(t)}get w(){return this[3]}set w(t){this[3]=w(t)}len(){return cn(this)}lengthSquared(){return an(this)}dot(t){return sn(this,t)}rotationTo(t,n){return hn(this,t,n),this.check()}add(t){return nn(this,this,t),this.check()}calculateW(){return Je(this,this),this.check()}conjugate(){return en(this,this),this.check()}invert(){return tn(this,this),this.check()}lerp(t,n,r){return r===void 0?this.lerp(this,t,n):(on(this,t,n,r),this.check())}multiplyRight(t){return Vt(this,this,t),this.check()}multiplyLeft(t){return Vt(this,t,this),this.check()}normalize(){let t=this.len(),n=t>0?1/t:0;return this[0]=this[0]*n,this[1]=this[1]*n,this[2]=this[2]*n,this[3]=this[3]*n,t===0&&(this[3]=1),this.check()}rotateX(t){return Ke(this,this,t),this.check()}rotateY(t){return Qe(this,this,t),this.check()}rotateZ(t){return Ze(this,this,t),this.check()}scale(t){return rn(this,this,t),this.check()}slerp(t,n,r){let s,i,o;switch(arguments.length){case 1:({start:s=_r,target:i,ratio:o}=t);break;case 2:s=this,i=t,o=n;break;default:s=t,i=n,o=r}return Z(this,s,i,o),this.check()}transformVector4(t,n=new U){return je(n,t,this),V(n,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,n){return this.setAxisAngle(t,n)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var tt=C(nt(),1);var Nr={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ir={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Yt=class{name;startTime=0;playing=!0;speed=1;channels=[];constructor(t){Object.assign(this,t)}animate(t){if(!this.playing)return;let r=(t/1e3-this.startTime)*this.speed;this.channels.forEach(({sampler:s,target:i,path:o})=>{zr(r,s,i,o),br(i,i._node)})}},G=class{animations;constructor(t){this.animations=t.animations.map((n,r)=>{let s=n.name||`Animation-${r}`,i=n.samplers.map(({input:c,interpolation:a="LINEAR",output:f})=>({input:ln(t.accessors[c]),interpolation:a,output:ln(t.accessors[f])})),o=n.channels.map(({sampler:c,target:a})=>({sampler:i[c],target:t.nodes[a.node],path:a.path}));return new Yt({name:s,channels:o})})}animate(t){this.setTime(t)}setTime(t){this.animations.forEach(n=>n.animate(t))}getAnimations(){return this.animations}};function ln(e){if(!e._animation){let t=Ir[e.componentType],n=Nr[e.type],r=n*e.count,{buffer:s,byteOffset:i}=e.bufferView.data,o=new t(s,i+(e.byteOffset||0),r);if(n===1)e._animation=Array.from(o);else{let c=[];for(let a=0;a<o.length;a+=n)c.push(Array.from(o.slice(a,a+n)));e._animation=c}}return e._animation}var vr=new z;function br(e,t){if(t.matrix.identity(),e.translation&&t.matrix.translate(e.translation),e.rotation){let n=vr.fromQuaternion(e.rotation);t.matrix.multiplyRight(n)}e.scale&&t.matrix.scale(e.scale)}var Gt=new J;function Br(e,t,n,r,s){if(t==="rotation"){Gt.slerp({start:n,target:r,ratio:s});for(let i=0;i<Gt.length;i++)e[t][i]=Gt[i]}else for(let i=0;i<n.length;i++)e[t][i]=s*r[i]+(1-s)*n[i]}function kr(e,t,{p0:n,outTangent0:r,inTangent1:s,p1:i,tDiff:o,ratio:c}){for(let a=0;a<e[t].length;a++){let f=r[a]*o,h=s[a]*o;e[t][a]=(2*Math.pow(c,3)-3*Math.pow(c,2)+1)*n[a]+(Math.pow(c,3)-2*Math.pow(c,2)+c)*f+(-2*Math.pow(c,3)+3*Math.pow(c,2))*i[a]+(Math.pow(c,3)-Math.pow(c,2))*h}}function Fr(e,t,n){for(let r=0;r<n.length;r++)e[t][r]=n[r]}function zr(e,{input:t,interpolation:n,output:r},s,i){let o=t[t.length-1],c=e%o,a=t.findIndex(p=>p>=c),f=Math.max(0,a-1);if(!Array.isArray(s[i]))switch(i){case"translation":s[i]=[0,0,0];break;case"rotation":s[i]=[0,0,0,1];break;case"scale":s[i]=[1,1,1];break;default:tt.log.warn(`Bad animation path ${i}`)()}(0,tt.assert)(s[i].length===r[f].length);let h=t[f],l=t[a];switch(n){case"STEP":Fr(s,i,r[f]);break;case"LINEAR":if(l>h){let p=(c-h)/(l-h);Br(s,i,r[f],r[a],p)}break;case"CUBICSPLINE":if(l>h){let p=(c-h)/(l-h),m=l-h,x=r[3*f+1],d=r[3*f+2],g=r[3*a+0],A=r[3*a+1];kr(s,i,{p0:x,outTangent0:d,inTangent1:g,p1:A,tDiff:m,ratio:p})}break;default:tt.log.warn(`Interpolation ${n} not supported`)();break}}var dn=C(nt(),1),gn=C(mn(),1),Mt=C(It(),1);var qr=`
|
|
8
|
-
#pragma vscode_glsllint_stage: vert
|
|
9
|
-
#if (__VERSION__ < 300)
|
|
10
|
-
#define _attr attribute
|
|
11
|
-
#else
|
|
12
|
-
#define _attr in
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
// _attr vec4 POSITION;
|
|
16
|
-
_attr vec4 positions;
|
|
17
|
-
|
|
18
|
-
#ifdef HAS_NORMALS
|
|
19
|
-
// _attr vec4 NORMAL;
|
|
20
|
-
_attr vec4 normals;
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
#ifdef HAS_TANGENTS
|
|
24
|
-
_attr vec4 TANGENT;
|
|
25
|
-
#endif
|
|
26
|
-
|
|
27
|
-
#ifdef HAS_UV
|
|
28
|
-
// _attr vec2 TEXCOORD_0;
|
|
29
|
-
_attr vec2 texCoords;
|
|
30
|
-
#endif
|
|
31
|
-
|
|
32
|
-
void main(void) {
|
|
33
|
-
vec4 _NORMAL = vec4(0.);
|
|
34
|
-
vec4 _TANGENT = vec4(0.);
|
|
35
|
-
vec2 _TEXCOORD_0 = vec2(0.);
|
|
36
|
-
|
|
37
|
-
#ifdef HAS_NORMALS
|
|
38
|
-
_NORMAL = normals;
|
|
39
|
-
#endif
|
|
40
|
-
|
|
41
|
-
#ifdef HAS_TANGENTS
|
|
42
|
-
_TANGENT = TANGENT;
|
|
43
|
-
#endif
|
|
44
|
-
|
|
45
|
-
#ifdef HAS_UV
|
|
46
|
-
_TEXCOORD_0 = texCoords;
|
|
47
|
-
#endif
|
|
48
|
-
|
|
49
|
-
pbr_setPositionNormalTangentUV(positions, _NORMAL, _TANGENT, _TEXCOORD_0);
|
|
50
|
-
gl_Position = u_MVPMatrix * positions;
|
|
51
|
-
}
|
|
52
|
-
`,Cr=`
|
|
53
|
-
#pragma vscode_glsllint_stage: frag
|
|
54
|
-
#if (__VERSION__ < 300)
|
|
55
|
-
#define fragmentColor gl_FragColor
|
|
56
|
-
#else
|
|
57
|
-
out vec4 fragmentColor;
|
|
58
|
-
#endif
|
|
59
|
-
|
|
60
|
-
void main(void) {
|
|
61
|
-
vec3 pos = pbr_vPosition;
|
|
62
|
-
fragmentColor = pbr_filterColor(vec4(1.0));
|
|
63
|
-
}
|
|
64
|
-
`;function Mn(e,t){let{id:n,geometry:r,material:s,vertexCount:i,materialOptions:o,modelOptions:c}=t,a=rt(e,s,r.attributes,o);dn.log.info(4,"createGLTFModel defines: ",a.defines)();let f=[],h={depthWriteEnabled:!0,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back"},l={id:n,geometry:r,topology:r.topology,vertexCount:i,modules:[gn.pbr],vs:xn(e,qr),fs:xn(e,Cr),...c,bindings:{...a.bindings,...c.bindings},defines:{...a.defines,...c.defines},parameters:{...h,...a.parameters,...c.parameters},uniforms:{...a.uniforms,...c.uniforms}},p=new Mt.Model(e,l);return new Mt.ModelNode({managedResources:f,model:p})}function xn(e,t){return`#version 300 es
|
|
65
|
-
${t}`}var Dr={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1},yt=class{device;options;gltf;constructor(t,n={}){this.device=t,this.options={...Dr,...n}}instantiate(t){return this.gltf=t,(t.scenes||[]).map(r=>this.createScene(r))}createAnimator(){return Array.isArray(this.gltf.animations)?new G(this.gltf):null}createScene(t){let r=(t.nodes||[]).map(i=>this.createNode(i));return new Y.GroupNode({id:t.name||t.id,children:r})}createNode(t){if(!t._node){let r=(t.children||[]).map(i=>this.createNode(i));t.mesh&&r.push(this.createMesh(t.mesh));let s=new Y.GroupNode({id:t.name||t.id,children:r});if(t.matrix)s.setMatrix(t.matrix);else{if(s.matrix.identity(),t.translation&&s.matrix.translate(t.translation),t.rotation){let i=new z().fromQuaternion(t.rotation);s.matrix.multiplyRight(i)}t.scale&&s.matrix.scale(t.scale)}t._node=s}return t._node}createMesh(t){if(!t._mesh){let r=(t.primitives||[]).map((i,o)=>this.createPrimitive(i,o,t)),s=new Y.GroupNode({id:t.name||t.id,children:r});t._mesh=s}return t._mesh}createPrimitive(t,n,r){let s=t.name||`${r.name||r.id}-primitive-${n}`,i=Vr(t.mode||4),o=t.indices?t.indices.count:this.getVertexCount(t.attributes),c=Mn(this.device,{id:s,geometry:this.createGeometry(s,t,i),material:t.material,materialOptions:this.options,modelOptions:this.options.modelOptions,vertexCount:o});return c.bounds=[t.attributes.POSITION.min,t.attributes.POSITION.max],c}getVertexCount(t){throw new Error("getVertexCount not implemented")}createGeometry(t,n,r){let s={};for(let[i,o]of Object.entries(n.attributes)){let{components:c,size:a,value:f}=o;s[i]={size:a??c,value:f}}return new Y.Geometry({id:t,topology:r,indices:n.indices.value,attributes:s})}createBuffer(t,n){t.bufferView||(t.bufferView={});let{bufferView:r}=t;return r.lumaBuffers||(r.lumaBuffers={}),r.lumaBuffers[n]||(r.lumaBuffers[n]=this.device.createBuffer({id:`from-${r.id}`,data:r.data||t.value})),r.lumaBuffers[n]}createSampler(t){return t}needsPOT(){return!1}};function Vr(e){switch(e){case 0:return"point-list";case 1:return"line-list";case 3:return"line-strip";case 2:return"line-loop-webgl";case 4:return"triangle-list";case 5:return"triangle-strip";case 6:return"triangle-fan-webgl";default:throw new Error(e)}}function yn(e,t,n){let r=new yt(e,n),s=r.instantiate(t),i=r.createAnimator();return{scenes:s,animator:i}}return un(Ur);})();
|
|
66
|
-
return __exports__;
|
|
67
|
-
});
|