@luma.gl/gltf 9.1.0-beta.8 → 9.2.0-alpha.1
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 +31 -26
- package/dist/dist.min.js +2 -2
- package/dist/gltf/create-gltf-model.js +1 -1
- package/dist/gltf/create-gltf-model.js.map +1 -1
- package/dist/gltf/gltf-animator.d.ts.map +1 -1
- package/dist/gltf/gltf-animator.js +2 -1
- package/dist/gltf/gltf-animator.js.map +1 -1
- package/dist/gltf/gltf-instantiator.d.ts.map +1 -1
- package/dist/gltf/gltf-instantiator.js +2 -1
- package/dist/gltf/gltf-instantiator.js.map +1 -1
- package/dist/index.cjs +25 -24
- package/dist/index.cjs.map +2 -2
- package/dist/pbr/parse-pbr-material.d.ts +1 -1
- package/dist/pbr/parse-pbr-material.d.ts.map +1 -1
- package/dist/pbr/parse-pbr-material.js +21 -18
- package/dist/pbr/parse-pbr-material.js.map +1 -1
- package/dist/pbr/pbr-environment.d.ts.map +1 -1
- package/dist/pbr/pbr-environment.js +14 -10
- package/dist/pbr/pbr-environment.js.map +1 -1
- package/package.json +5 -5
- package/src/gltf/create-gltf-model.ts +2 -2
- package/src/gltf/gltf-animator.ts +10 -4
- package/src/gltf/gltf-instantiator.ts +4 -1
- package/src/pbr/parse-pbr-material.ts +26 -20
- package/src/pbr/pbr-environment.ts +18 -14
package/dist/dist.dev.js
CHANGED
|
@@ -4,6 +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
|
+
"use strict";
|
|
7
8
|
var __exports__ = (() => {
|
|
8
9
|
var __create = Object.create;
|
|
9
10
|
var __defProp = Object.defineProperty;
|
|
@@ -74,8 +75,8 @@ var __exports__ = (() => {
|
|
|
74
75
|
const parsedMaterial = {
|
|
75
76
|
defines: {
|
|
76
77
|
// TODO: Use EXT_sRGB if available (Standard in WebGL 2.0)
|
|
77
|
-
MANUAL_SRGB:
|
|
78
|
-
SRGB_FAST_APPROXIMATION:
|
|
78
|
+
MANUAL_SRGB: true,
|
|
79
|
+
SRGB_FAST_APPROXIMATION: true
|
|
79
80
|
},
|
|
80
81
|
bindings: {},
|
|
81
82
|
uniforms: {
|
|
@@ -89,7 +90,7 @@ var __exports__ = (() => {
|
|
|
89
90
|
glParameters: {},
|
|
90
91
|
generatedTextures: []
|
|
91
92
|
};
|
|
92
|
-
parsedMaterial.defines.USE_TEX_LOD =
|
|
93
|
+
parsedMaterial.defines.USE_TEX_LOD = true;
|
|
93
94
|
const { imageBasedLightingEnvironment } = options;
|
|
94
95
|
if (imageBasedLightingEnvironment) {
|
|
95
96
|
parsedMaterial.bindings.pbr_diffuseEnvSampler = imageBasedLightingEnvironment.diffuseEnvSampler.texture;
|
|
@@ -98,20 +99,20 @@ var __exports__ = (() => {
|
|
|
98
99
|
parsedMaterial.uniforms.scaleIBLAmbient = [1, 1];
|
|
99
100
|
}
|
|
100
101
|
if (options?.pbrDebug) {
|
|
101
|
-
parsedMaterial.defines.PBR_DEBUG =
|
|
102
|
+
parsedMaterial.defines.PBR_DEBUG = true;
|
|
102
103
|
parsedMaterial.uniforms.scaleDiffBaseMR = [0, 0, 0, 0];
|
|
103
104
|
parsedMaterial.uniforms.scaleFGDSpec = [0, 0, 0, 0];
|
|
104
105
|
}
|
|
105
106
|
if (attributes.NORMAL)
|
|
106
|
-
parsedMaterial.defines.HAS_NORMALS =
|
|
107
|
+
parsedMaterial.defines.HAS_NORMALS = true;
|
|
107
108
|
if (attributes.TANGENT && options?.useTangents)
|
|
108
|
-
parsedMaterial.defines.HAS_TANGENTS =
|
|
109
|
+
parsedMaterial.defines.HAS_TANGENTS = true;
|
|
109
110
|
if (attributes.TEXCOORD_0)
|
|
110
|
-
parsedMaterial.defines.HAS_UV =
|
|
111
|
+
parsedMaterial.defines.HAS_UV = true;
|
|
111
112
|
if (options?.imageBasedLightingEnvironment)
|
|
112
|
-
parsedMaterial.defines.USE_IBL =
|
|
113
|
+
parsedMaterial.defines.USE_IBL = true;
|
|
113
114
|
if (options?.lights)
|
|
114
|
-
parsedMaterial.defines.USE_LIGHTS =
|
|
115
|
+
parsedMaterial.defines.USE_LIGHTS = true;
|
|
115
116
|
if (material) {
|
|
116
117
|
parseMaterial(device, material, parsedMaterial);
|
|
117
118
|
}
|
|
@@ -157,7 +158,7 @@ var __exports__ = (() => {
|
|
|
157
158
|
switch (material.alphaMode) {
|
|
158
159
|
case "MASK":
|
|
159
160
|
const { alphaCutoff = 0.5 } = material;
|
|
160
|
-
parsedMaterial.defines.ALPHA_CUTOFF =
|
|
161
|
+
parsedMaterial.defines.ALPHA_CUTOFF = true;
|
|
161
162
|
parsedMaterial.uniforms.alphaCutoff = alphaCutoff;
|
|
162
163
|
break;
|
|
163
164
|
case "BLEND":
|
|
@@ -202,7 +203,7 @@ var __exports__ = (() => {
|
|
|
202
203
|
const { metallicFactor = 1, roughnessFactor = 1 } = pbrMetallicRoughness;
|
|
203
204
|
parsedMaterial.uniforms.metallicRoughnessValues = [metallicFactor, roughnessFactor];
|
|
204
205
|
}
|
|
205
|
-
function addTexture(device, gltfTexture, uniformName, define
|
|
206
|
+
function addTexture(device, gltfTexture, uniformName, define, parsedMaterial) {
|
|
206
207
|
const parameters = gltfTexture?.texture?.sampler?.parameters || {};
|
|
207
208
|
const image = gltfTexture.texture.source.image;
|
|
208
209
|
let textureOptions;
|
|
@@ -228,7 +229,7 @@ var __exports__ = (() => {
|
|
|
228
229
|
});
|
|
229
230
|
parsedMaterial.bindings[uniformName] = texture;
|
|
230
231
|
if (define)
|
|
231
|
-
parsedMaterial.defines[define] =
|
|
232
|
+
parsedMaterial.defines[define] = true;
|
|
232
233
|
parsedMaterial.generatedTextures.push(texture);
|
|
233
234
|
}
|
|
234
235
|
|
|
@@ -277,7 +278,7 @@ var __exports__ = (() => {
|
|
|
277
278
|
}
|
|
278
279
|
|
|
279
280
|
// ../../node_modules/@loaders.gl/images/dist/lib/utils/version.js
|
|
280
|
-
var VERSION = true ? "4.2.
|
|
281
|
+
var VERSION = true ? "4.2.3" : "latest";
|
|
281
282
|
|
|
282
283
|
// ../../node_modules/@loaders.gl/images/dist/lib/category-api/image-type.js
|
|
283
284
|
var parseImageNode = globalThis.loaders?.parseImageNode;
|
|
@@ -774,10 +775,10 @@ var __exports__ = (() => {
|
|
|
774
775
|
const brdfLutTexture = new import_engine.AsyncTexture(device, {
|
|
775
776
|
id: "brdfLUT",
|
|
776
777
|
sampler: {
|
|
777
|
-
|
|
778
|
-
|
|
778
|
+
addressModeU: "clamp-to-edge",
|
|
779
|
+
addressModeV: "clamp-to-edge",
|
|
779
780
|
minFilter: "linear",
|
|
780
|
-
|
|
781
|
+
magFilter: "linear"
|
|
781
782
|
},
|
|
782
783
|
// Texture accepts a promise that returns an image as data (Async Textures)
|
|
783
784
|
data: loadImageTexture(props.brdfLutUrl)
|
|
@@ -786,10 +787,10 @@ var __exports__ = (() => {
|
|
|
786
787
|
id: "DiffuseEnvSampler",
|
|
787
788
|
getTextureForFace: (dir) => loadImageTexture(props.getTexUrl("diffuse", dir, 0)),
|
|
788
789
|
sampler: {
|
|
789
|
-
|
|
790
|
-
|
|
790
|
+
addressModeU: "clamp-to-edge",
|
|
791
|
+
addressModeV: "clamp-to-edge",
|
|
791
792
|
minFilter: "linear",
|
|
792
|
-
|
|
793
|
+
magFilter: "linear"
|
|
793
794
|
}
|
|
794
795
|
});
|
|
795
796
|
const specularEnvSampler = makeCube(device, {
|
|
@@ -802,11 +803,11 @@ var __exports__ = (() => {
|
|
|
802
803
|
return imageArray;
|
|
803
804
|
},
|
|
804
805
|
sampler: {
|
|
805
|
-
|
|
806
|
-
|
|
806
|
+
addressModeU: "clamp-to-edge",
|
|
807
|
+
addressModeV: "clamp-to-edge",
|
|
807
808
|
minFilter: "linear",
|
|
808
809
|
// [GL.TEXTURE_MIN_FILTER]: GL.LINEAR_MIPMAP_LINEAR,
|
|
809
|
-
|
|
810
|
+
magFilter: "linear"
|
|
810
811
|
}
|
|
811
812
|
});
|
|
812
813
|
return {
|
|
@@ -3429,7 +3430,7 @@ var __exports__ = (() => {
|
|
|
3429
3430
|
5126: Float32Array
|
|
3430
3431
|
};
|
|
3431
3432
|
var GLTFAnimation = class {
|
|
3432
|
-
name;
|
|
3433
|
+
name = "unnamed";
|
|
3433
3434
|
startTime = 0;
|
|
3434
3435
|
playing = true;
|
|
3435
3436
|
speed = 1;
|
|
@@ -3484,7 +3485,11 @@ var __exports__ = (() => {
|
|
|
3484
3485
|
const components = ATTRIBUTE_TYPE_TO_COMPONENTS[accessor.type];
|
|
3485
3486
|
const length4 = components * accessor.count;
|
|
3486
3487
|
const { buffer, byteOffset } = accessor.bufferView.data;
|
|
3487
|
-
const array = new ArrayType(
|
|
3488
|
+
const array = new ArrayType(
|
|
3489
|
+
buffer,
|
|
3490
|
+
byteOffset + (accessor.byteOffset || 0),
|
|
3491
|
+
length4
|
|
3492
|
+
);
|
|
3488
3493
|
if (components === 1) {
|
|
3489
3494
|
accessor._animation = Array.from(array);
|
|
3490
3495
|
} else {
|
|
@@ -3693,7 +3698,7 @@ layout(0) positions: vec4; // in vec4 POSITION;
|
|
|
3693
3698
|
`
|
|
3694
3699
|
);
|
|
3695
3700
|
function createGLTFModel(device, options) {
|
|
3696
|
-
const { id, geometry, material, vertexCount, materialOptions, modelOptions } = options;
|
|
3701
|
+
const { id, geometry, material, vertexCount, materialOptions, modelOptions = {} } = options;
|
|
3697
3702
|
const parsedMaterial = parsePBRMaterial(device, material, geometry.attributes, materialOptions);
|
|
3698
3703
|
import_core4.log.info(4, "createGLTFModel defines: ", parsedMaterial.defines)();
|
|
3699
3704
|
const managedResources = [];
|
|
@@ -3749,7 +3754,7 @@ layout(0) positions: vec4; // in vec4 POSITION;
|
|
|
3749
3754
|
var DEFAULT_OPTIONS = {
|
|
3750
3755
|
modelOptions: {},
|
|
3751
3756
|
pbrDebug: false,
|
|
3752
|
-
imageBasedLightingEnvironment:
|
|
3757
|
+
imageBasedLightingEnvironment: void 0,
|
|
3753
3758
|
lights: true,
|
|
3754
3759
|
useTangents: false
|
|
3755
3760
|
};
|
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 we=Object.create;var it=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var Ot=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),_e=(n,t)=>{for(var e in t)it(n,e,{get:t[e],enumerable:!0})},st=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Re(t))!Ne.call(n,s)&&s!==e&&it(n,s,{get:()=>t[s],enumerable:!(r=Oe(t,s))||r.enumerable});return n},ct=(n,t,e)=>(st(n,t,"default"),e&&st(e,t,"default")),C=(n,t,e)=>(e=n!=null?we(Le(n)):{},st(t||!n||!n.__esModule?it(e,"default",{value:n,enumerable:!0}):e,n)),Ie=n=>st(it({},"__esModule",{value:!0}),n);var j=Ot((Gr,Kt)=>{Kt.exports=globalThis.luma});var at=Ot((Xr,Zt)=>{Zt.exports=globalThis.luma});var ge=Ot((Zi,de)=>{de.exports=globalThis.luma});var rt={};_e(rt,{GLTFAnimator:()=>G,createScenegraphsFromGLTF:()=>Se,loadPBREnvironment:()=>Mn,parsePBRMaterial:()=>ot});ct(rt,C(j(),1));var Qt=C(j(),1),z;(function(n){n[n.FUNC_ADD=32774]="FUNC_ADD",n[n.ONE=1]="ONE",n[n.SRC_ALPHA=770]="SRC_ALPHA",n[n.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",n[n.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",n[n.LINEAR=9729]="LINEAR",n[n.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",n[n.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})(z||(z={}));function ot(n,t,e,r){let s={defines:{MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};s.defines.USE_TEX_LOD=1;let{imageBasedLightingEnvironment:i}=r;return i&&(s.bindings.pbr_diffuseEnvSampler=i.diffuseEnvSampler.texture,s.bindings.pbr_specularEnvSampler=i.specularEnvSampler.texture,s.bindings.pbr_BrdfLUT=i.brdfLutTexture.texture,s.uniforms.scaleIBLAmbient=[1,1]),r?.pbrDebug&&(s.defines.PBR_DEBUG=1,s.uniforms.scaleDiffBaseMR=[0,0,0,0],s.uniforms.scaleFGDSpec=[0,0,0,0]),e.NORMAL&&(s.defines.HAS_NORMALS=1),e.TANGENT&&r?.useTangents&&(s.defines.HAS_TANGENTS=1),e.TEXCOORD_0&&(s.defines.HAS_UV=1),r?.imageBasedLightingEnvironment&&(s.defines.USE_IBL=1),r?.lights&&(s.defines.USE_LIGHTS=1),t&&Pe(n,t,s),s}function Pe(n,t,e){if(e.uniforms.unlit=Boolean(t.unlit),t.pbrMetallicRoughness&&ve(n,t.pbrMetallicRoughness,e),t.normalTexture){K(n,t.normalTexture,"pbr_normalSampler","HAS_NORMALMAP",e);let{scale:r=1}=t.normalTexture;e.uniforms.normalScale=r}if(t.occlusionTexture){K(n,t.occlusionTexture,"pbr_occlusionSampler","HAS_OCCLUSIONMAP",e);let{strength:r=1}=t.occlusionTexture;e.uniforms.occlusionStrength=r}switch(t.emissiveTexture&&(K(n,t.emissiveTexture,"pbr_emissiveSampler","HAS_EMISSIVEMAP",e),e.uniforms.emissiveFactor=t.emissiveFactor||[0,0,0]),t.alphaMode){case"MASK":let{alphaCutoff:r=.5}=t;e.defines.ALPHA_CUTOFF=1,e.uniforms.alphaCutoff=r;break;case"BLEND":Qt.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),e.parameters.blendColorOperation="add",e.parameters.blendColorSrcFactor="src-alpha",e.parameters.blendColorDstFactor="one-minus-src-alpha",e.parameters.blendAlphaOperation="add",e.parameters.blendAlphaSrcFactor="one",e.parameters.blendAlphaDstFactor="one-minus-src-alpha",e.glParameters.blend=!0,e.glParameters.blendEquation=z.FUNC_ADD,e.glParameters.blendFunc=[z.SRC_ALPHA,z.ONE_MINUS_SRC_ALPHA,z.ONE,z.ONE_MINUS_SRC_ALPHA];break}}function ve(n,t,e){t.baseColorTexture&&K(n,t.baseColorTexture,"pbr_baseColorSampler","HAS_BASECOLORMAP",e),e.uniforms.baseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&K(n,t.metallicRoughnessTexture,"pbr_metallicRoughnessSampler","HAS_METALROUGHNESSMAP",e);let{metallicFactor:r=1,roughnessFactor:s=1}=t;e.uniforms.metallicRoughnessValues=[r,s]}function K(n,t,e,r=null,s){let i=t?.texture?.sampler?.parameters||{},c=t.texture.source.image,o,a={};c.compressed?(o=c,a={[z.TEXTURE_MIN_FILTER]:c.data.length>1?z.LINEAR_MIPMAP_NEAREST:z.LINEAR}):o={data:c};let f=n.createTexture({id:t.uniformName||t.id,parameters:{...i,...a},pixelStore:{[z.UNPACK_FLIP_Y_WEBGL]:!1},...o});s.bindings[e]=f,r&&(s.defines[r]=1),s.generatedTextures.push(f)}var zt=C(at(),1);function V(n,t){if(!n)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},ue=b.self||b.window||b.global||{},ke=b.window||b.self||b.global||{},ze=b.global||b.self||b.window||{},be=b.document||{};var Rt=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Jt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),qe=Jt&&parseFloat(Jt[1])||0;var Fe="",tn={};function Lt(n){for(let t in tn)if(n.startsWith(t)){let e=tn[t];n=n.replace(t,e)}return!n.startsWith("http://")&&!n.startsWith("https://")&&(n=`${Fe}${n}`),n}var nn="4.2.1";var Be=globalThis.loaders?.parseImageNode,Nt=typeof Image<"u",_t=typeof ImageBitmap<"u",Ce=Boolean(Be),It=Rt?!0:Ce;function en(n){switch(n){case"auto":return _t||Nt||It;case"imagebitmap":return _t;case"image":return Nt;case"data":return It;default:throw new Error(`@loaders.gl/images: image ${n} not supported in this environment`)}}function rn(){if(_t)return"imagebitmap";if(Nt)return"image";if(It)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function sn(n){let t=Ue(n);if(!t)throw new Error("Not an image");return t}function Pt(n){return ft(n)}function ft(n){switch(sn(n)){case"data":return n;case"image":case"imagebitmap":let t=document.createElement("canvas"),e=t.getContext("2d");if(!e)throw new Error("getImageData");return t.width=n.width,t.height=n.height,e.drawImage(n,0,0),e.getImageData(0,0,n.width,n.height);default:throw new Error("getImageData")}}function Ue(n){return typeof ImageBitmap<"u"&&n instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&n instanceof Image?"image":n&&typeof n=="object"&&n.data&&n.width&&n.height?"data":null}var Ve=/^data:image\/svg\+xml/,De=/\.svg((\?|#).*)?$/;function ht(n){return n&&(Ve.test(n)||De.test(n))}function cn(n,t){if(ht(t)){let r=new TextDecoder().decode(n);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 vt(n,t)}function vt(n,t){if(ht(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(n)])}async function lt(n,t,e){let r=cn(n,e),s=self.URL||self.webkitURL,i=typeof r!="string"&&s.createObjectURL(r);try{return await Ye(i||r,t)}finally{i&&s.revokeObjectURL(i)}}async function Ye(n,t){let e=new Image;return e.src=n,t.image&&t.image.decode&&e.decode?(await e.decode(),e):await new Promise((r,s)=>{try{e.onload=()=>r(e),e.onerror=i=>{let c=i instanceof Error?i.message:"error";s(new Error(c))}}catch(i){s(i)}})}var $e={},on=!0;async function an(n,t,e){let r;ht(e)?r=await lt(n,t,e):r=vt(n,e);let s=t&&t.imagebitmap;return await We(r,s)}async function We(n,t=null){if((Ge(t)||!on)&&(t=null),t)try{return await createImageBitmap(n,t)}catch(e){console.warn(e),on=!1}return await createImageBitmap(n)}function Ge(n){for(let t in n||$e)return!1;return!0}function fn(n){return!Ke(n,"ftyp",4)||!(n[8]&96)?null:He(n)}function He(n){switch(Xe(n,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Xe(n,t,e){return String.fromCharCode(...n.slice(t,e))}function je(n){return[...n].map(t=>t.charCodeAt(0))}function Ke(n,t,e=0){let r=je(t);for(let s=0;s<r.length;++s)if(r[s]!==n[s+e])return!1;return!0}var q=!1,Q=!0;function pt(n){let t=Z(n);return Ze(t)||nr(t)||Je(t)||tr(t)||Qe(t)}function Qe(n){let t=new Uint8Array(n instanceof DataView?n.buffer:n),e=fn(t);return e?{mimeType:e.mimeType,width:0,height:0}:null}function Ze(n){let t=Z(n);return t.byteLength>=24&&t.getUint32(0,q)===2303741511?{mimeType:"image/png",width:t.getUint32(16,q),height:t.getUint32(20,q)}:null}function Je(n){let t=Z(n);return t.byteLength>=10&&t.getUint32(0,q)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,Q),height:t.getUint16(8,Q)}:null}function tr(n){let t=Z(n);return t.byteLength>=14&&t.getUint16(0,q)===16973&&t.getUint32(2,Q)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,Q),height:t.getUint32(22,Q)}:null}function nr(n){let t=Z(n);if(!(t.byteLength>=3&&t.getUint16(0,q)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:s}=er(),i=2;for(;i+9<t.byteLength;){let c=t.getUint16(i,q);if(s.has(c))return{mimeType:"image/jpeg",height:t.getUint16(i+5,q),width:t.getUint16(i+7,q)};if(!r.has(c))return null;i+=2,i+=t.getUint16(i,q)}return null}function er(){let n=new Set([65499,65476,65484,65501,65534]);for(let e=65504;e<65520;++e)n.add(e);return{tableMarkers:n,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Z(n){if(n instanceof DataView)return n;if(ArrayBuffer.isView(n))return new DataView(n.buffer);if(n instanceof ArrayBuffer)return new DataView(n);throw new Error("toDataView")}async function hn(n,t){let{mimeType:e}=pt(n)||{},r=globalThis.loaders?.parseImageNode;return V(r),await r(n,e)}async function ln(n,t,e){t=t||{};let s=(t.image||{}).type||"auto",{url:i}=e||{},c=rr(s),o;switch(c){case"imagebitmap":o=await an(n,t,i);break;case"image":o=await lt(n,t,i);break;case"data":o=await hn(n,t);break;default:V(!1)}return s==="data"&&(o=ft(o)),o}function rr(n){switch(n){case"auto":case"data":return rn();default:return en(n),n}}var sr=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],ir=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],cr={image:{type:"auto",decode:!0}},xt={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:nn,mimeTypes:ir,extensions:sr,parse:ln,tests:[n=>Boolean(pt(new DataView(n)))],options:cr};function mt(n,t,e){let r=typeof n=="function"?n({...t,...e}):n,s=t.baseUrl;return s&&(r=s[s.length-1]==="/"?`${s}${r}`:`${s}/${r}`),Lt(r)}var or=n=>n&&typeof n=="object";async function pn(n,t,e={}){return await ut(n,t,e)}async function ut(n,t,e){return Array.isArray(n)?await fr(n,t,e):or(n)?await ar(n,t,e):await t(n,e)}async function ar(n,t,e){let r=[],s={};for(let i in n){let c=n[i],o=ut(c,t,e).then(a=>{s[i]=a});r.push(o)}return await Promise.all(r),s}async function fr(n,t,e={}){let r=n.map(s=>ut(s,t,e));return await Promise.all(r)}async function xn(n,t,e){return await pn(n,r=>kt(r,t,e))}async function kt(n,t,e){let s=await(await fetch(n,e.fetch)).arrayBuffer();return await t(s,e)}async function J(n,t={}){let e=await hr(n,t);return await xn(e,xt.parse,t)}async function hr(n,t,e={}){let r=t&&t.image&&t.image.mipLevels||0;return r!==0?await lr(n,r,t,e):mt(n,t,e)}async function lr(n,t,e,r){let s=[];if(t==="auto"){let i=mt(n,e,{...r,lod:0}),c=await kt(i,xt.parse,e),{width:o,height:a}=Pt(c);t=pr({width:o,height:a}),s.push(i)}V(t>0);for(let i=s.length;i<t;++i){let c=mt(n,e,{...r,lod:i});s.push(c)}return s}function pr(n){return 1+Math.floor(Math.log2(Math.max(n.width,n.height)))}function Mn(n,t){let e=new zt.AsyncTexture(n,{id:"brdfLUT",sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"},data:J(t.brdfLutUrl)}),r=mn(n,{id:"DiffuseEnvSampler",getTextureForFace:i=>J(t.getTexUrl("diffuse",i,0)),sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}}),s=mn(n,{id:"SpecularEnvSampler",getTextureForFace:i=>{let c=[];for(let o=0;o<=t.specularMipLevels-1;o++)c.push(J(t.getTexUrl("specular",i,o)));return c},sampler:{wrapS:"clamp-to-edge",wrapT:"clamp-to-edge",minFilter:"linear",maxFilter:"linear"}});return{brdfLutTexture:e,diffuseEnvSampler:r,specularEnvSampler:s}}var xr=[0,1,2,3,4,5];function mn(n,{id:t,getTextureForFace:e,sampler:r}){let s={};return xr.forEach(i=>{s[String(i)]=e(i)}),new zt.AsyncTexture(n,{id:t,dimension:"cube",mipmaps:!1,sampler:r,data:s})}var H=C(at(),1);var Ks=1/Math.PI*180,Qs=1/180*Math.PI,mr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...mr}};var R=globalThis.mathgl.config;function dn(n,{precision:t=R.precision}={}){return n=Mr(n),`${parseFloat(n.toPrecision(t))}`}function Y(n){return Array.isArray(n)||ArrayBuffer.isView(n)&&!(n instanceof DataView)}function bt(n,t,e){let r=R.EPSILON;e&&(R.EPSILON=e);try{if(n===t)return!0;if(Y(n)&&Y(t)){if(n.length!==t.length)return!1;for(let s=0;s<n.length;++s)if(!bt(n[s],t[s]))return!1;return!0}return n&&n.equals?n.equals(t):t&&t.equals?t.equals(n):typeof n=="number"&&typeof t=="number"?Math.abs(n-t)<=R.EPSILON*Math.max(1,Math.abs(n),Math.abs(t)):!1}finally{R.EPSILON=r}}function Mr(n){return Math.round(n/R.EPSILON)*R.EPSILON}var U=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(t,e=0){for(let r=0;r<this.ELEMENTS;++r)this[r]=t[r+e];return this.check()}toArray(t=[],e=0){for(let r=0;r<this.ELEMENTS;++r)t[e+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(R)}formatString(t){let e="";for(let r=0;r<this.ELEMENTS;++r)e+=(r>0?", ":"")+dn(this[r],t);return`${t.printTypes?this.constructor.name:""}[${e}]`}equals(t){if(!t||this.length!==t.length)return!1;for(let e=0;e<this.ELEMENTS;++e)if(!bt(this[e],t[e]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let e=0;e<this.ELEMENTS;++e)if(this[e]!==t[e])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,e,r){if(r===void 0)return this.lerp(this,t,e);for(let s=0;s<this.ELEMENTS;++s){let i=t[s],c=typeof e=="number"?e:e[s];this[s]=i+r*(c-i)}return this.check()}min(t){for(let e=0;e<this.ELEMENTS;++e)this[e]=Math.min(t[e],this[e]);return this.check()}max(t){for(let e=0;e<this.ELEMENTS;++e)this[e]=Math.max(t[e],this[e]);return this.check()}clamp(t,e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t[r]),e[r]);return this.check()}add(...t){for(let e of t)for(let r=0;r<this.ELEMENTS;++r)this[r]+=e[r];return this.check()}subtract(...t){for(let e of t)for(let r=0;r<this.ELEMENTS;++r)this[r]-=e[r];return this.check()}scale(t){if(typeof t=="number")for(let e=0;e<this.ELEMENTS;++e)this[e]*=t;else for(let e=0;e<this.ELEMENTS&&e<t.length;++e)this[e]*=t[e];return this.check()}multiplyByScalar(t){for(let e=0;e<this.ELEMENTS;++e)this[e]*=t;return this.check()}check(){if(R.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 e=0;e<this.ELEMENTS;++e)t=t&&Number.isFinite(this[e]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let e=0;e<this.ELEMENTS;++e)this[e]=t;return this.check()}addScalar(t){for(let e=0;e<this.ELEMENTS;++e)this[e]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let e=0;e<this.ELEMENTS;++e)this[e]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],t),e);return this.check()}get elements(){return this}};function dr(n,t){if(n.length!==t)return!1;for(let e=0;e<n.length;++e)if(!Number.isFinite(n[e]))return!1;return!0}function w(n){if(!Number.isFinite(n))throw new Error(`Invalid number ${JSON.stringify(n)}`);return n}function $(n,t,e=""){if(R.debug&&!dr(n,t))throw new Error(`math.gl: ${e} some fields set to invalid numbers'`);return n}function qt(n,t){if(!n)throw new Error(`math.gl assertion ${t}`)}var Mt=class extends U{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 e=0;e<this.ELEMENTS;++e)t+=this[e]*this[e];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let e=0;for(let r=0;r<this.ELEMENTS;++r){let s=this[r]-t[r];e+=s*s}return w(e)}dot(t){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*t[r];return w(e)}normalize(){let t=this.magnitude();if(t!==0)for(let e=0;e<this.ELEMENTS;++e)this[e]/=t;return this.check()}multiply(...t){for(let e of t)for(let r=0;r<this.ELEMENTS;++r)this[r]*=e[r];return this.check()}divide(...t){for(let e of t)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e[r];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return qt(t>=0&&t<this.ELEMENTS,"index is out of range"),w(this[t])}setComponent(t,e){return qt(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=e,this.check()}addVectors(t,e){return this.copy(t).add(e)}subVectors(t,e){return this.copy(t).subtract(e)}multiplyVectors(t,e){return this.copy(t).multiply(e)}addScaledVector(t,e){return this.add(new this.constructor(t).multiplyScalar(e))}};var L=typeof Float32Array<"u"?Float32Array:Array;var ai=Math.PI/180;function gr(){let n=new L(2);return L!=Float32Array&&(n[0]=0,n[1]=0),n}function An(n,t,e){let r=t[0],s=t[1];return n[0]=e[0]*r+e[4]*s+e[12],n[1]=e[1]*r+e[5]*s+e[13],n}var fi=function(){let n=gr();return function(t,e,r,s,i,c){let o,a;for(e||(e=2),r||(r=0),s?a=Math.min(s*e+r,t.length):a=t.length,o=r;o<a;o+=e)n[0]=t[o],n[1]=t[o+1],i(n,n,c),t[o]=n[0],t[o+1]=n[1];return t}}();function Tn(n,t,e){let r=t[0],s=t[1],i=e[3]*r+e[7]*s||1;return n[0]=(e[0]*r+e[4]*s)/i,n[1]=(e[1]*r+e[5]*s)/i,n}function En(n,t,e){let r=t[0],s=t[1],i=t[2],c=e[3]*r+e[7]*s+e[11]*i||1;return n[0]=(e[0]*r+e[4]*s+e[8]*i)/c,n[1]=(e[1]*r+e[5]*s+e[9]*i)/c,n[2]=(e[2]*r+e[6]*s+e[10]*i)/c,n}function Sn(n,t,e){let r=t[0],s=t[1];return n[0]=e[0]*r+e[2]*s,n[1]=e[1]*r+e[3]*s,n[2]=t[2],n[3]=t[3],n}function wn(n,t,e){let r=t[0],s=t[1],i=t[2];return n[0]=e[0]*r+e[3]*s+e[6]*i,n[1]=e[1]*r+e[4]*s+e[7]*i,n[2]=e[2]*r+e[5]*s+e[8]*i,n[3]=t[3],n}function Ft(){let n=new L(3);return L!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n}function yr(n){let t=n[0],e=n[1],r=n[2];return Math.sqrt(t*t+e*e+r*r)}function Bt(n,t,e){let r=new L(3);return r[0]=n,r[1]=t,r[2]=e,r}function On(n,t){let e=t[0],r=t[1],s=t[2],i=e*e+r*r+s*s;return i>0&&(i=1/Math.sqrt(i)),n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i,n}function Rn(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function dt(n,t,e){let r=t[0],s=t[1],i=t[2],c=e[0],o=e[1],a=e[2];return n[0]=s*a-i*o,n[1]=i*c-r*a,n[2]=r*o-s*c,n}function gt(n,t,e){let r=t[0],s=t[1],i=t[2],c=e[3]*r+e[7]*s+e[11]*i+e[15];return c=c||1,n[0]=(e[0]*r+e[4]*s+e[8]*i+e[12])/c,n[1]=(e[1]*r+e[5]*s+e[9]*i+e[13])/c,n[2]=(e[2]*r+e[6]*s+e[10]*i+e[14])/c,n}function Ln(n,t,e){let r=e[0],s=e[1],i=e[2],c=e[3],o=t[0],a=t[1],f=t[2],h=s*f-i*a,p=i*o-r*f,l=r*a-s*o,x=s*l-i*p,m=i*h-r*l,M=r*p-s*h,d=c*2;return h*=d,p*=d,l*=d,x*=2,m*=2,M*=2,n[0]=o+h+x,n[1]=a+p+m,n[2]=f+l+M,n}var Nn=yr;var pi=function(){let n=Ft();return function(t,e,r,s,i,c){let o,a;for(e||(e=3),r||(r=0),s?a=Math.min(s*e+r,t.length):a=t.length,o=r;o<a;o+=e)n[0]=t[o],n[1]=t[o+1],n[2]=t[o+2],i(n,n,c),t[o]=n[0],t[o+1]=n[1],t[o+2]=n[2];return t}}();var yt,W=class extends Mt{static get ZERO(){return yt||(yt=new W(0,0,0,0),Object.freeze(yt)),yt}constructor(t=0,e=0,r=0,s=0){super(-0,-0,-0,-0),Y(t)&&arguments.length===1?this.copy(t):(R.debug&&(w(t),w(e),w(r),w(s)),this[0]=t,this[1]=e,this[2]=r,this[3]=s)}set(t,e,r,s){return this[0]=t,this[1]=e,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 R.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 gt(this,this,t),this.check()}transformByMatrix3(t){return wn(this,this,t),this.check()}transformByMatrix2(t){return Sn(this,this,t),this.check()}transformByQuaternion(t){return Ln(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var At=class extends U{toString(){let t="[";if(R.printRowMajor){t+="row-major:";for(let e=0;e<this.RANK;++e)for(let r=0;r<this.RANK;++r)t+=` ${this[r*this.RANK+e]}`}else{t+="column-major:";for(let e=0;e<this.ELEMENTS;++e)t+=` ${this[e]}`}return t+="]",t}getElementIndex(t,e){return e*this.RANK+t}getElement(t,e){return this[e*this.RANK+t]}setElement(t,e,r){return this[e*this.RANK+t]=w(r),this}getColumn(t,e=new Array(this.RANK).fill(-0)){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)e[s]=this[r+s];return e}setColumn(t,e){let r=t*this.RANK;for(let s=0;s<this.RANK;++s)this[r+s]=e[s];return this}};function _n(){let n=new L(9);return L!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function Er(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function In(n,t){if(n===t){let e=t[1],r=t[2],s=t[3],i=t[6],c=t[7],o=t[11];n[1]=t[4],n[2]=t[8],n[3]=t[12],n[4]=e,n[6]=t[9],n[7]=t[13],n[8]=r,n[9]=i,n[11]=t[14],n[12]=s,n[13]=c,n[14]=o}else n[0]=t[0],n[1]=t[4],n[2]=t[8],n[3]=t[12],n[4]=t[1],n[5]=t[5],n[6]=t[9],n[7]=t[13],n[8]=t[2],n[9]=t[6],n[10]=t[10],n[11]=t[14],n[12]=t[3],n[13]=t[7],n[14]=t[11],n[15]=t[15];return n}function Pn(n,t){let e=t[0],r=t[1],s=t[2],i=t[3],c=t[4],o=t[5],a=t[6],f=t[7],h=t[8],p=t[9],l=t[10],x=t[11],m=t[12],M=t[13],d=t[14],E=t[15],O=e*o-r*c,g=e*a-s*c,y=e*f-i*c,A=r*a-s*o,T=r*f-i*o,N=s*f-i*a,_=h*M-p*m,I=h*d-l*m,P=h*E-x*m,v=p*d-l*M,u=p*E-x*M,k=l*E-x*d,S=O*k-g*u+y*v+A*P-T*I+N*_;return S?(S=1/S,n[0]=(o*k-a*u+f*v)*S,n[1]=(s*u-r*k-i*v)*S,n[2]=(M*N-d*T+E*A)*S,n[3]=(l*T-p*N-x*A)*S,n[4]=(a*P-c*k-f*I)*S,n[5]=(e*k-s*P+i*I)*S,n[6]=(d*y-m*N-E*g)*S,n[7]=(h*N-l*y+x*g)*S,n[8]=(c*u-o*P+f*_)*S,n[9]=(r*P-e*u-i*_)*S,n[10]=(m*T-M*y+E*O)*S,n[11]=(p*y-h*T-x*O)*S,n[12]=(o*I-c*v-a*_)*S,n[13]=(e*v-r*I+s*_)*S,n[14]=(M*g-m*A-d*O)*S,n[15]=(h*A-p*g+l*O)*S,n):null}function vn(n){let t=n[0],e=n[1],r=n[2],s=n[3],i=n[4],c=n[5],o=n[6],a=n[7],f=n[8],h=n[9],p=n[10],l=n[11],x=n[12],m=n[13],M=n[14],d=n[15],E=t*c-e*i,O=t*o-r*i,g=e*o-r*c,y=f*m-h*x,A=f*M-p*x,T=h*M-p*m,N=t*T-e*A+r*y,_=i*T-c*A+o*y,I=f*g-h*O+p*E,P=x*g-m*O+M*E;return a*N-s*_+d*I-l*P}function Ct(n,t,e){let r=t[0],s=t[1],i=t[2],c=t[3],o=t[4],a=t[5],f=t[6],h=t[7],p=t[8],l=t[9],x=t[10],m=t[11],M=t[12],d=t[13],E=t[14],O=t[15],g=e[0],y=e[1],A=e[2],T=e[3];return n[0]=g*r+y*o+A*p+T*M,n[1]=g*s+y*a+A*l+T*d,n[2]=g*i+y*f+A*x+T*E,n[3]=g*c+y*h+A*m+T*O,g=e[4],y=e[5],A=e[6],T=e[7],n[4]=g*r+y*o+A*p+T*M,n[5]=g*s+y*a+A*l+T*d,n[6]=g*i+y*f+A*x+T*E,n[7]=g*c+y*h+A*m+T*O,g=e[8],y=e[9],A=e[10],T=e[11],n[8]=g*r+y*o+A*p+T*M,n[9]=g*s+y*a+A*l+T*d,n[10]=g*i+y*f+A*x+T*E,n[11]=g*c+y*h+A*m+T*O,g=e[12],y=e[13],A=e[14],T=e[15],n[12]=g*r+y*o+A*p+T*M,n[13]=g*s+y*a+A*l+T*d,n[14]=g*i+y*f+A*x+T*E,n[15]=g*c+y*h+A*m+T*O,n}function un(n,t,e){let r=e[0],s=e[1],i=e[2],c,o,a,f,h,p,l,x,m,M,d,E;return t===n?(n[12]=t[0]*r+t[4]*s+t[8]*i+t[12],n[13]=t[1]*r+t[5]*s+t[9]*i+t[13],n[14]=t[2]*r+t[6]*s+t[10]*i+t[14],n[15]=t[3]*r+t[7]*s+t[11]*i+t[15]):(c=t[0],o=t[1],a=t[2],f=t[3],h=t[4],p=t[5],l=t[6],x=t[7],m=t[8],M=t[9],d=t[10],E=t[11],n[0]=c,n[1]=o,n[2]=a,n[3]=f,n[4]=h,n[5]=p,n[6]=l,n[7]=x,n[8]=m,n[9]=M,n[10]=d,n[11]=E,n[12]=c*r+h*s+m*i+t[12],n[13]=o*r+p*s+M*i+t[13],n[14]=a*r+l*s+d*i+t[14],n[15]=f*r+x*s+E*i+t[15]),n}function kn(n,t,e){let r=e[0],s=e[1],i=e[2];return n[0]=t[0]*r,n[1]=t[1]*r,n[2]=t[2]*r,n[3]=t[3]*r,n[4]=t[4]*s,n[5]=t[5]*s,n[6]=t[6]*s,n[7]=t[7]*s,n[8]=t[8]*i,n[9]=t[9]*i,n[10]=t[10]*i,n[11]=t[11]*i,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n}function zn(n,t,e,r){let s=r[0],i=r[1],c=r[2],o=Math.sqrt(s*s+i*i+c*c),a,f,h,p,l,x,m,M,d,E,O,g,y,A,T,N,_,I,P,v,u,k,S,X;return o<1e-6?null:(o=1/o,s*=o,i*=o,c*=o,f=Math.sin(e),a=Math.cos(e),h=1-a,p=t[0],l=t[1],x=t[2],m=t[3],M=t[4],d=t[5],E=t[6],O=t[7],g=t[8],y=t[9],A=t[10],T=t[11],N=s*s*h+a,_=i*s*h+c*f,I=c*s*h-i*f,P=s*i*h-c*f,v=i*i*h+a,u=c*i*h+s*f,k=s*c*h+i*f,S=i*c*h-s*f,X=c*c*h+a,n[0]=p*N+M*_+g*I,n[1]=l*N+d*_+y*I,n[2]=x*N+E*_+A*I,n[3]=m*N+O*_+T*I,n[4]=p*P+M*v+g*u,n[5]=l*P+d*v+y*u,n[6]=x*P+E*v+A*u,n[7]=m*P+O*v+T*u,n[8]=p*k+M*S+g*X,n[9]=l*k+d*S+y*X,n[10]=x*k+E*S+A*X,n[11]=m*k+O*S+T*X,t!==n&&(n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n)}function bn(n,t,e){let r=Math.sin(e),s=Math.cos(e),i=t[4],c=t[5],o=t[6],a=t[7],f=t[8],h=t[9],p=t[10],l=t[11];return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[4]=i*s+f*r,n[5]=c*s+h*r,n[6]=o*s+p*r,n[7]=a*s+l*r,n[8]=f*s-i*r,n[9]=h*s-c*r,n[10]=p*s-o*r,n[11]=l*s-a*r,n}function qn(n,t,e){let r=Math.sin(e),s=Math.cos(e),i=t[0],c=t[1],o=t[2],a=t[3],f=t[8],h=t[9],p=t[10],l=t[11];return t!==n&&(n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=i*s-f*r,n[1]=c*s-h*r,n[2]=o*s-p*r,n[3]=a*s-l*r,n[8]=i*r+f*s,n[9]=c*r+h*s,n[10]=o*r+p*s,n[11]=a*r+l*s,n}function Fn(n,t,e){let r=Math.sin(e),s=Math.cos(e),i=t[0],c=t[1],o=t[2],a=t[3],f=t[4],h=t[5],p=t[6],l=t[7];return t!==n&&(n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=i*s+f*r,n[1]=c*s+h*r,n[2]=o*s+p*r,n[3]=a*s+l*r,n[4]=f*s-i*r,n[5]=h*s-c*r,n[6]=p*s-o*r,n[7]=l*s-a*r,n}function Bn(n,t){let e=t[0],r=t[1],s=t[2],i=t[3],c=e+e,o=r+r,a=s+s,f=e*c,h=r*c,p=r*o,l=s*c,x=s*o,m=s*a,M=i*c,d=i*o,E=i*a;return n[0]=1-p-m,n[1]=h+E,n[2]=l-d,n[3]=0,n[4]=h-E,n[5]=1-f-m,n[6]=x+M,n[7]=0,n[8]=l+d,n[9]=x-M,n[10]=1-f-p,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function Cn(n,t,e,r,s,i,c){let o=1/(e-t),a=1/(s-r),f=1/(i-c);return n[0]=i*2*o,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=i*2*a,n[6]=0,n[7]=0,n[8]=(e+t)*o,n[9]=(s+r)*a,n[10]=(c+i)*f,n[11]=-1,n[12]=0,n[13]=0,n[14]=c*i*2*f,n[15]=0,n}function Sr(n,t,e,r,s){let i=1/Math.tan(t/2);if(n[0]=i/e,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=i,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,s!=null&&s!==1/0){let c=1/(r-s);n[10]=(s+r)*c,n[14]=2*s*r*c}else n[10]=-1,n[14]=-2*r;return n}var Un=Sr;function wr(n,t,e,r,s,i,c){let o=1/(t-e),a=1/(r-s),f=1/(i-c);return n[0]=-2*o,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*a,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*f,n[11]=0,n[12]=(t+e)*o,n[13]=(s+r)*a,n[14]=(c+i)*f,n[15]=1,n}var Vn=wr;function Dn(n,t,e,r){let s,i,c,o,a,f,h,p,l,x,m=t[0],M=t[1],d=t[2],E=r[0],O=r[1],g=r[2],y=e[0],A=e[1],T=e[2];return Math.abs(m-y)<1e-6&&Math.abs(M-A)<1e-6&&Math.abs(d-T)<1e-6?Er(n):(p=m-y,l=M-A,x=d-T,s=1/Math.sqrt(p*p+l*l+x*x),p*=s,l*=s,x*=s,i=O*x-g*l,c=g*p-E*x,o=E*l-O*p,s=Math.sqrt(i*i+c*c+o*o),s?(s=1/s,i*=s,c*=s,o*=s):(i=0,c=0,o=0),a=l*o-x*c,f=x*i-p*o,h=p*c-l*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),n[0]=i,n[1]=a,n[2]=p,n[3]=0,n[4]=c,n[5]=f,n[6]=l,n[7]=0,n[8]=o,n[9]=h,n[10]=x,n[11]=0,n[12]=-(i*m+c*M+o*d),n[13]=-(a*m+f*M+h*d),n[14]=-(p*m+l*M+x*d),n[15]=1,n)}function Or(){let n=new L(4);return L!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0,n[3]=0),n}function Yn(n,t,e){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n[3]=t[3]+e[3],n}function $n(n,t,e){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n}function Wn(n){let t=n[0],e=n[1],r=n[2],s=n[3];return Math.sqrt(t*t+e*e+r*r+s*s)}function Gn(n){let t=n[0],e=n[1],r=n[2],s=n[3];return t*t+e*e+r*r+s*s}function Hn(n,t){let e=t[0],r=t[1],s=t[2],i=t[3],c=e*e+r*r+s*s+i*i;return c>0&&(c=1/Math.sqrt(c)),n[0]=e*c,n[1]=r*c,n[2]=s*c,n[3]=i*c,n}function Xn(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function jn(n,t,e,r){let s=t[0],i=t[1],c=t[2],o=t[3];return n[0]=s+r*(e[0]-s),n[1]=i+r*(e[1]-i),n[2]=c+r*(e[2]-c),n[3]=o+r*(e[3]-o),n}function Kn(n,t,e){let r=t[0],s=t[1],i=t[2],c=t[3];return n[0]=e[0]*r+e[4]*s+e[8]*i+e[12]*c,n[1]=e[1]*r+e[5]*s+e[9]*i+e[13]*c,n[2]=e[2]*r+e[6]*s+e[10]*i+e[14]*c,n[3]=e[3]*r+e[7]*s+e[11]*i+e[15]*c,n}function Qn(n,t,e){let r=t[0],s=t[1],i=t[2],c=e[0],o=e[1],a=e[2],f=e[3],h=f*r+o*i-a*s,p=f*s+a*r-c*i,l=f*i+c*s-o*r,x=-c*r-o*s-a*i;return n[0]=h*f+x*-c+p*-a-l*-o,n[1]=p*f+x*-o+l*-c-h*-a,n[2]=l*f+x*-a+h*-o-p*-c,n[3]=t[3],n}var Oi=function(){let n=Or();return function(t,e,r,s,i,c){let o,a;for(e||(e=4),r||(r=0),s?a=Math.min(s*e+r,t.length):a=t.length,o=r;o<a;o+=e)n[0]=t[o],n[1]=t[o+1],n[2]=t[o+2],n[3]=t[o+3],i(n,n,c),t[o]=n[0],t[o+1]=n[1],t[o+2]=n[2],t[o+3]=n[3];return t}}();var Dt;(function(n){n[n.COL0ROW0=0]="COL0ROW0",n[n.COL0ROW1=1]="COL0ROW1",n[n.COL0ROW2=2]="COL0ROW2",n[n.COL0ROW3=3]="COL0ROW3",n[n.COL1ROW0=4]="COL1ROW0",n[n.COL1ROW1=5]="COL1ROW1",n[n.COL1ROW2=6]="COL1ROW2",n[n.COL1ROW3=7]="COL1ROW3",n[n.COL2ROW0=8]="COL2ROW0",n[n.COL2ROW1=9]="COL2ROW1",n[n.COL2ROW2=10]="COL2ROW2",n[n.COL2ROW3=11]="COL2ROW3",n[n.COL3ROW0=12]="COL3ROW0",n[n.COL3ROW1=13]="COL3ROW1",n[n.COL3ROW2=14]="COL3ROW2",n[n.COL3ROW3=15]="COL3ROW3"})(Dt||(Dt={}));var Lr=45*Math.PI/180,Nr=1,Ut=.1,Vt=500,_r=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),B=class extends At{static get IDENTITY(){return Pr()}static get ZERO(){return Ir()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Dt}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,e,r,s,i,c,o,a,f,h,p,l,x,m,M,d){return this[0]=t,this[1]=e,this[2]=r,this[3]=s,this[4]=i,this[5]=c,this[6]=o,this[7]=a,this[8]=f,this[9]=h,this[10]=p,this[11]=l,this[12]=x,this[13]=m,this[14]=M,this[15]=d,this.check()}setRowMajor(t,e,r,s,i,c,o,a,f,h,p,l,x,m,M,d){return this[0]=t,this[1]=i,this[2]=f,this[3]=x,this[4]=e,this[5]=c,this[6]=h,this[7]=m,this[8]=r,this[9]=o,this[10]=p,this[11]=M,this[12]=s,this[13]=a,this[14]=l,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(_r)}fromObject(t){return this.check()}fromQuaternion(t){return Bn(this,t),this.check()}frustum(t){let{left:e,right:r,bottom:s,top:i,near:c=Ut,far:o=Vt}=t;return o===1/0?vr(this,e,r,s,i,c):Cn(this,e,r,s,i,c,o),this.check()}lookAt(t){let{eye:e,center:r=[0,0,0],up:s=[0,1,0]}=t;return Dn(this,e,r,s),this.check()}ortho(t){let{left:e,right:r,bottom:s,top:i,near:c=Ut,far:o=Vt}=t;return Vn(this,e,r,s,i,c,o),this.check()}orthographic(t){let{fovy:e=Lr,aspect:r=Nr,focalDistance:s=1,near:i=Ut,far:c=Vt}=t;Zn(e);let o=e/2,a=s*Math.tan(o),f=a*r;return this.ortho({left:-f,right:f,bottom:-a,top:a,near:i,far:c})}perspective(t){let{fovy:e=45*Math.PI/180,aspect:r=1,near:s=.1,far:i=500}=t;return Zn(e),Un(this,e,r,s,i),this.check()}determinant(){return vn(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,e){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],e=e||[-0,-0,-0];let r=this.getScale(e),s=1/r[0],i=1/r[1],c=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*c,t[3]=0,t[4]=this[4]*s,t[5]=this[5]*i,t[6]=this[6]*c,t[7]=0,t[8]=this[8]*s,t[9]=this[9]*i,t[10]=this[10]*c,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,e){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],e=e||[-0,-0,-0];let r=this.getScale(e),s=1/r[0],i=1/r[1],c=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*c,t[3]=this[4]*s,t[4]=this[5]*i,t[5]=this[6]*c,t[6]=this[8]*s,t[7]=this[9]*i,t[8]=this[10]*c,t}transpose(){return In(this,this),this.check()}invert(){return Pn(this,this),this.check()}multiplyLeft(t){return Ct(this,t,this),this.check()}multiplyRight(t){return Ct(this,this,t),this.check()}rotateX(t){return bn(this,this,t),this.check()}rotateY(t){return qn(this,this,t),this.check()}rotateZ(t){return Fn(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,e){return zn(this,this,t,e),this.check()}scale(t){return kn(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return un(this,this,t),this.check()}transform(t,e){return t.length===4?(e=Kn(e||[-0,-0,-0,-0],t,this),$(e,4),e):this.transformAsPoint(t,e)}transformAsPoint(t,e){let{length:r}=t,s;switch(r){case 2:s=An(e||[-0,-0],t,this);break;case 3:s=gt(e||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return $(s,t.length),s}transformAsVector(t,e){let r;switch(t.length){case 2:r=Tn(e||[-0,-0],t,this);break;case 3:r=En(e||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return $(r,t.length),r}transformPoint(t,e){return this.transformAsPoint(t,e)}transformVector(t,e){return this.transformAsPoint(t,e)}transformDirection(t,e){return this.transformAsVector(t,e)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,e,r){return this.identity().translate([t,e,r])}},Tt,Et;function Ir(){return Tt||(Tt=new B([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Tt)),Tt}function Pr(){return Et||(Et=new B,Object.freeze(Et)),Et}function Zn(n){if(n>Math.PI*2)throw Error("expected radians")}function vr(n,t,e,r,s,i){let c=2*i/(e-t),o=2*i/(s-r),a=(e+t)/(e-t),f=(s+r)/(s-r),h=-1,p=-1,l=-2*i;return n[0]=c,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=o,n[6]=0,n[7]=0,n[8]=a,n[9]=f,n[10]=h,n[11]=p,n[12]=0,n[13]=0,n[14]=l,n[15]=0,n}function Jn(){let n=new L(4);return L!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function te(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function Yt(n,t,e){e=e*.5;let r=Math.sin(e);return n[0]=r*t[0],n[1]=r*t[1],n[2]=r*t[2],n[3]=Math.cos(e),n}function $t(n,t,e){let r=t[0],s=t[1],i=t[2],c=t[3],o=e[0],a=e[1],f=e[2],h=e[3];return n[0]=r*h+c*o+s*f-i*a,n[1]=s*h+c*a+i*o-r*f,n[2]=i*h+c*f+r*a-s*o,n[3]=c*h-r*o-s*a-i*f,n}function ne(n,t,e){e*=.5;let r=t[0],s=t[1],i=t[2],c=t[3],o=Math.sin(e),a=Math.cos(e);return n[0]=r*a+c*o,n[1]=s*a+i*o,n[2]=i*a-s*o,n[3]=c*a-r*o,n}function ee(n,t,e){e*=.5;let r=t[0],s=t[1],i=t[2],c=t[3],o=Math.sin(e),a=Math.cos(e);return n[0]=r*a-i*o,n[1]=s*a+c*o,n[2]=i*a+r*o,n[3]=c*a-s*o,n}function re(n,t,e){e*=.5;let r=t[0],s=t[1],i=t[2],c=t[3],o=Math.sin(e),a=Math.cos(e);return n[0]=r*a+s*o,n[1]=s*a-r*o,n[2]=i*a+c*o,n[3]=c*a-i*o,n}function se(n,t){let e=t[0],r=t[1],s=t[2];return n[0]=e,n[1]=r,n[2]=s,n[3]=Math.sqrt(Math.abs(1-e*e-r*r-s*s)),n}function nt(n,t,e,r){let s=t[0],i=t[1],c=t[2],o=t[3],a=e[0],f=e[1],h=e[2],p=e[3],l,x,m,M,d;return l=s*a+i*f+c*h+o*p,l<0&&(l=-l,a=-a,f=-f,h=-h,p=-p),1-l>1e-6?(x=Math.acos(l),d=Math.sin(x),m=Math.sin((1-r)*x)/d,M=Math.sin(r*x)/d):(m=1-r,M=r),n[0]=m*s+M*a,n[1]=m*i+M*f,n[2]=m*c+M*h,n[3]=m*o+M*p,n}function ie(n,t){let e=t[0],r=t[1],s=t[2],i=t[3],c=e*e+r*r+s*s+i*i,o=c?1/c:0;return n[0]=-e*o,n[1]=-r*o,n[2]=-s*o,n[3]=i*o,n}function ce(n,t){return n[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n[3]=t[3],n}function Wt(n,t){let e=t[0]+t[4]+t[8],r;if(e>0)r=Math.sqrt(e+1),n[3]=.5*r,r=.5/r,n[0]=(t[5]-t[7])*r,n[1]=(t[6]-t[2])*r,n[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,c=(s+2)%3;r=Math.sqrt(t[s*3+s]-t[i*3+i]-t[c*3+c]+1),n[s]=.5*r,r=.5/r,n[3]=(t[i*3+c]-t[c*3+i])*r,n[i]=(t[i*3+s]+t[s*3+i])*r,n[c]=(t[c*3+s]+t[s*3+c])*r}return n}var oe=Yn;var ae=$n,fe=Xn,he=jn,le=Wn;var pe=Gn;var xe=Hn;var me=function(){let n=Ft(),t=Bt(1,0,0),e=Bt(0,1,0);return function(r,s,i){let c=Rn(s,i);return c<-.999999?(dt(n,t,s),Nn(n)<1e-6&&dt(n,e,s),On(n,n),Yt(r,n,Math.PI),r):c>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(dt(n,s,i),r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=1+c,xe(r,r))}}(),Bi=function(){let n=Jn(),t=Jn();return function(e,r,s,i,c,o){return nt(n,r,c,o),nt(t,s,i,o),nt(e,n,t,2*o*(1-o)),e}}(),Ci=function(){let n=_n();return function(t,e,r,s){return n[0]=r[0],n[3]=r[1],n[6]=r[2],n[1]=s[0],n[4]=s[1],n[7]=s[2],n[2]=-e[0],n[5]=-e[1],n[8]=-e[2],xe(t,Wt(t,n))}}();var ur=[0,0,0,1],et=class extends U{constructor(t=0,e=0,r=0,s=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,e,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,e,r,s){return this[0]=t,this[1]=e,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 Wt(this,t),this.check()}fromAxisRotation(t,e){return Yt(this,t,e),this.check()}identity(){return te(this),this.check()}setAxisAngle(t,e){return this.fromAxisRotation(t,e)}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 le(this)}lengthSquared(){return pe(this)}dot(t){return fe(this,t)}rotationTo(t,e){return me(this,t,e),this.check()}add(t){return oe(this,this,t),this.check()}calculateW(){return se(this,this),this.check()}conjugate(){return ce(this,this),this.check()}invert(){return ie(this,this),this.check()}lerp(t,e,r){return r===void 0?this.lerp(this,t,e):(he(this,t,e,r),this.check())}multiplyRight(t){return $t(this,this,t),this.check()}multiplyLeft(t){return $t(this,t,this),this.check()}normalize(){let t=this.len(),e=t>0?1/t:0;return this[0]=this[0]*e,this[1]=this[1]*e,this[2]=this[2]*e,this[3]=this[3]*e,t===0&&(this[3]=1),this.check()}rotateX(t){return ne(this,this,t),this.check()}rotateY(t){return ee(this,this,t),this.check()}rotateZ(t){return re(this,this,t),this.check()}scale(t){return ae(this,this,t),this.check()}slerp(t,e,r){let s,i,c;switch(arguments.length){case 1:({start:s=ur,target:i,ratio:c}=t);break;case 2:s=this,i=t,c=e;break;default:s=t,i=e,c=r}return nt(this,s,i,c),this.check()}transformVector4(t,e=new W){return Qn(e,t,this),$(e,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,e){return this.setAxisAngle(t,e)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var Ht=C(j(),1);var kr={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},Xt=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:c})=>{Ur(r,s,i,c),qr(i,i._node)})}},G=class{animations;constructor(t){this.animations=t.animations.map((e,r)=>{let s=e.name||`Animation-${r}`,i=e.samplers.map(({input:o,interpolation:a="LINEAR",output:f})=>({input:Me(t.accessors[o]),interpolation:a,output:Me(t.accessors[f])})),c=e.channels.map(({sampler:o,target:a})=>({sampler:i[o],target:t.nodes[a.node],path:a.path}));return new Xt({name:s,channels:c})})}animate(t){this.setTime(t)}setTime(t){this.animations.forEach(e=>e.animate(t))}getAnimations(){return this.animations}};function Me(n){if(!n._animation){let t=zr[n.componentType],e=kr[n.type],r=e*n.count,{buffer:s,byteOffset:i}=n.bufferView.data,c=new t(s,i+(n.byteOffset||0),r);if(e===1)n._animation=Array.from(c);else{let o=[];for(let a=0;a<c.length;a+=e)o.push(Array.from(c.slice(a,a+e)));n._animation=o}}return n._animation}var br=new B;function qr(n,t){if(t.matrix.identity(),n.translation&&t.matrix.translate(n.translation),n.rotation){let e=br.fromQuaternion(n.rotation);t.matrix.multiplyRight(e)}n.scale&&t.matrix.scale(n.scale)}var Gt=new et;function Fr(n,t,e,r,s){if(t==="rotation"){Gt.slerp({start:e,target:r,ratio:s});for(let i=0;i<Gt.length;i++)n[t][i]=Gt[i]}else for(let i=0;i<e.length;i++)n[t][i]=s*r[i]+(1-s)*e[i]}function Br(n,t,{p0:e,outTangent0:r,inTangent1:s,p1:i,tDiff:c,ratio:o}){for(let a=0;a<n[t].length;a++){let f=r[a]*c,h=s[a]*c;n[t][a]=(2*Math.pow(o,3)-3*Math.pow(o,2)+1)*e[a]+(Math.pow(o,3)-2*Math.pow(o,2)+o)*f+(-2*Math.pow(o,3)+3*Math.pow(o,2))*i[a]+(Math.pow(o,3)-Math.pow(o,2))*h}}function Cr(n,t,e){for(let r=0;r<e.length;r++)n[t][r]=e[r]}function Ur(n,{input:t,interpolation:e,output:r},s,i){let c=t[t.length-1],o=n%c,a=t.findIndex(l=>l>=o),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:Ht.log.warn(`Bad animation path ${i}`)()}let h=t[f],p=t[a];switch(e){case"STEP":Cr(s,i,r[f]);break;case"LINEAR":if(p>h){let l=(o-h)/(p-h);Fr(s,i,r[f],r[a],l)}break;case"CUBICSPLINE":if(p>h){let l=(o-h)/(p-h),x=p-h,m=r[3*f+1],M=r[3*f+2],d=r[3*a+0],E=r[3*a+1];Br(s,i,{p0:m,outTangent0:M,inTangent1:d,p1:E,tDiff:x,ratio:l})}break;default:Ht.log.warn(`Interpolation ${e} not supported`)();break}}var ye=C(j(),1),Ae=C(ge(),1),St=C(at(),1);var Vr=`
|
|
7
|
+
"use strict";var __exports__=(()=>{var wn=Object.create;var it=Object.defineProperty;var On=Object.getOwnPropertyDescriptor;var Rn=Object.getOwnPropertyNames;var Ln=Object.getPrototypeOf,Nn=Object.prototype.hasOwnProperty;var Ot=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_n=(e,t)=>{for(var n in t)it(e,n,{get:t[n],enumerable:!0})},st=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Rn(t))!Nn.call(e,s)&&s!==n&&it(e,s,{get:()=>t[s],enumerable:!(r=On(t,s))||r.enumerable});return e},ct=(e,t,n)=>(st(e,t,"default"),n&&st(n,t,"default")),C=(e,t,n)=>(n=e!=null?wn(Ln(e)):{},st(t||!e||!e.__esModule?it(n,"default",{value:e,enumerable:!0}):n,e)),In=e=>st(it({},"__esModule",{value:!0}),e);var j=Ot((Gr,Kt)=>{Kt.exports=globalThis.luma});var at=Ot((Xr,Zt)=>{Zt.exports=globalThis.luma});var gn=Ot((Zi,dn)=>{dn.exports=globalThis.luma});var rt={};_n(rt,{GLTFAnimator:()=>G,createScenegraphsFromGLTF:()=>Sn,loadPBREnvironment:()=>me,parsePBRMaterial:()=>ot});ct(rt,C(j(),1));var Qt=C(j(),1),z;(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"})(z||(z={}));function ot(e,t,n,r){let s={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};s.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:i}=r;return i&&(s.bindings.pbr_diffuseEnvSampler=i.diffuseEnvSampler.texture,s.bindings.pbr_specularEnvSampler=i.specularEnvSampler.texture,s.bindings.pbr_BrdfLUT=i.brdfLutTexture.texture,s.uniforms.scaleIBLAmbient=[1,1]),r?.pbrDebug&&(s.defines.PBR_DEBUG=!0,s.uniforms.scaleDiffBaseMR=[0,0,0,0],s.uniforms.scaleFGDSpec=[0,0,0,0]),n.NORMAL&&(s.defines.HAS_NORMALS=!0),n.TANGENT&&r?.useTangents&&(s.defines.HAS_TANGENTS=!0),n.TEXCOORD_0&&(s.defines.HAS_UV=!0),r?.imageBasedLightingEnvironment&&(s.defines.USE_IBL=!0),r?.lights&&(s.defines.USE_LIGHTS=!0),t&&Pn(e,t,s),s}function Pn(e,t,n){if(n.uniforms.unlit=Boolean(t.unlit),t.pbrMetallicRoughness&&vn(e,t.pbrMetallicRoughness,n),t.normalTexture){K(e,t.normalTexture,"pbr_normalSampler","HAS_NORMALMAP",n);let{scale:r=1}=t.normalTexture;n.uniforms.normalScale=r}if(t.occlusionTexture){K(e,t.occlusionTexture,"pbr_occlusionSampler","HAS_OCCLUSIONMAP",n);let{strength:r=1}=t.occlusionTexture;n.uniforms.occlusionStrength=r}switch(t.emissiveTexture&&(K(e,t.emissiveTexture,"pbr_emissiveSampler","HAS_EMISSIVEMAP",n),n.uniforms.emissiveFactor=t.emissiveFactor||[0,0,0]),t.alphaMode){case"MASK":let{alphaCutoff:r=.5}=t;n.defines.ALPHA_CUTOFF=!0,n.uniforms.alphaCutoff=r;break;case"BLEND":Qt.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=z.FUNC_ADD,n.glParameters.blendFunc=[z.SRC_ALPHA,z.ONE_MINUS_SRC_ALPHA,z.ONE,z.ONE_MINUS_SRC_ALPHA];break}}function vn(e,t,n){t.baseColorTexture&&K(e,t.baseColorTexture,"pbr_baseColorSampler","HAS_BASECOLORMAP",n),n.uniforms.baseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&K(e,t.metallicRoughnessTexture,"pbr_metallicRoughnessSampler","HAS_METALROUGHNESSMAP",n);let{metallicFactor:r=1,roughnessFactor:s=1}=t;n.uniforms.metallicRoughnessValues=[r,s]}function K(e,t,n,r,s){let i=t?.texture?.sampler?.parameters||{},c=t.texture.source.image,o,a={};c.compressed?(o=c,a={[z.TEXTURE_MIN_FILTER]:c.data.length>1?z.LINEAR_MIPMAP_NEAREST:z.LINEAR}):o={data:c};let f=e.createTexture({id:t.uniformName||t.id,parameters:{...i,...a},pixelStore:{[z.UNPACK_FLIP_Y_WEBGL]:!1},...o});s.bindings[n]=f,r&&(s.defines[r]=!0),s.generatedTextures.push(f)}var zt=C(at(),1);function V(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},un=b.self||b.window||b.global||{},kn=b.window||b.self||b.global||{},zn=b.global||b.self||b.window||{},bn=b.document||{};var Rt=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Jt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),qn=Jt&&parseFloat(Jt[1])||0;var Fn="",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=`${Fn}${e}`),e}var ee="4.2.3";var Bn=globalThis.loaders?.parseImageNode,Nt=typeof Image<"u",_t=typeof ImageBitmap<"u",Cn=Boolean(Bn),It=Rt?!0:Cn;function ne(e){switch(e){case"auto":return _t||Nt||It;case"imagebitmap":return _t;case"image":return Nt;case"data":return It;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function re(){if(_t)return"imagebitmap";if(Nt)return"image";if(It)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function se(e){let t=Un(e);if(!t)throw new Error("Not an image");return t}function Pt(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 Un(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 Vn=/^data:image\/svg\+xml/,Dn=/\.svg((\?|#).*)?$/;function ht(e){return e&&(Vn.test(e)||Dn.test(e))}function ie(e,t){if(ht(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 vt(e,t)}function vt(e,t){if(ht(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function lt(e,t,n){let r=ie(e,n),s=self.URL||self.webkitURL,i=typeof r!="string"&&s.createObjectURL(r);try{return await Yn(i||r,t)}finally{i&&s.revokeObjectURL(i)}}async function Yn(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 c=i instanceof Error?i.message:"error";s(new Error(c))}}catch(i){s(i)}})}var $n={},ce=!0;async function oe(e,t,n){let r;ht(n)?r=await lt(e,t,n):r=vt(e,n);let s=t&&t.imagebitmap;return await Wn(r,s)}async function Wn(e,t=null){if((Gn(t)||!ce)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),ce=!1}return await createImageBitmap(e)}function Gn(e){for(let t in e||$n)return!1;return!0}function ae(e){return!Kn(e,"ftyp",4)||!(e[8]&96)?null:Hn(e)}function Hn(e){switch(Xn(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Xn(e,t,n){return String.fromCharCode(...e.slice(t,n))}function jn(e){return[...e].map(t=>t.charCodeAt(0))}function Kn(e,t,n=0){let r=jn(t);for(let s=0;s<r.length;++s)if(r[s]!==e[s+n])return!1;return!0}var q=!1,Q=!0;function pt(e){let t=Z(e);return Zn(t)||er(t)||Jn(t)||tr(t)||Qn(t)}function Qn(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 Zn(e){let t=Z(e);return t.byteLength>=24&&t.getUint32(0,q)===2303741511?{mimeType:"image/png",width:t.getUint32(16,q),height:t.getUint32(20,q)}:null}function Jn(e){let t=Z(e);return t.byteLength>=10&&t.getUint32(0,q)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,Q),height:t.getUint16(8,Q)}:null}function tr(e){let t=Z(e);return t.byteLength>=14&&t.getUint16(0,q)===16973&&t.getUint32(2,Q)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,Q),height:t.getUint32(22,Q)}:null}function er(e){let t=Z(e);if(!(t.byteLength>=3&&t.getUint16(0,q)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:s}=nr(),i=2;for(;i+9<t.byteLength;){let c=t.getUint16(i,q);if(s.has(c))return{mimeType:"image/jpeg",height:t.getUint16(i+5,q),width:t.getUint16(i+7,q)};if(!r.has(c))return null;i+=2,i+=t.getUint16(i,q)}return null}function nr(){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 V(r),await r(e,n)}async function he(e,t,n){t=t||{};let s=(t.image||{}).type||"auto",{url:i}=n||{},c=rr(s),o;switch(c){case"imagebitmap":o=await oe(e,t,i);break;case"image":o=await lt(e,t,i);break;case"data":o=await fe(e,t);break;default:V(!1)}return s==="data"&&(o=ft(o)),o}function rr(e){switch(e){case"auto":case"data":return re();default:return ne(e),e}}var sr=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],ir=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],cr={image:{type:"auto",decode:!0}},xt={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:ee,mimeTypes:ir,extensions:sr,parse:he,tests:[e=>Boolean(pt(new DataView(e)))],options:cr};function mt(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 or=e=>e&&typeof e=="object";async function le(e,t,n={}){return await ut(e,t,n)}async function ut(e,t,n){return Array.isArray(e)?await fr(e,t,n):or(e)?await ar(e,t,n):await t(e,n)}async function ar(e,t,n){let r=[],s={};for(let i in e){let c=e[i],o=ut(c,t,n).then(a=>{s[i]=a});r.push(o)}return await Promise.all(r),s}async function fr(e,t,n={}){let r=e.map(s=>ut(s,t,n));return await Promise.all(r)}async function pe(e,t,n){return await le(e,r=>kt(r,t,n))}async function kt(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 hr(e,t);return await pe(n,xt.parse,t)}async function hr(e,t,n={}){let r=t&&t.image&&t.image.mipLevels||0;return r!==0?await lr(e,r,t,n):mt(e,t,n)}async function lr(e,t,n,r){let s=[];if(t==="auto"){let i=mt(e,n,{...r,lod:0}),c=await kt(i,xt.parse,n),{width:o,height:a}=Pt(c);t=pr({width:o,height:a}),s.push(i)}V(t>0);for(let i=s.length;i<t;++i){let c=mt(e,n,{...r,lod:i});s.push(c)}return s}function pr(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}function me(e,t){let n=new zt.AsyncTexture(e,{id:"brdfLUT",sampler:{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",minFilter:"linear",magFilter:"linear"},data:J(t.brdfLutUrl)}),r=xe(e,{id:"DiffuseEnvSampler",getTextureForFace:i=>J(t.getTexUrl("diffuse",i,0)),sampler:{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",minFilter:"linear",magFilter:"linear"}}),s=xe(e,{id:"SpecularEnvSampler",getTextureForFace:i=>{let c=[];for(let o=0;o<=t.specularMipLevels-1;o++)c.push(J(t.getTexUrl("specular",i,o)));return c},sampler:{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",minFilter:"linear",magFilter:"linear"}});return{brdfLutTexture:n,diffuseEnvSampler:r,specularEnvSampler:s}}var xr=[0,1,2,3,4,5];function xe(e,{id:t,getTextureForFace:n,sampler:r}){let s={};return xr.forEach(i=>{s[String(i)]=n(i)}),new zt.AsyncTexture(e,{id:t,dimension:"cube",mipmaps:!1,sampler:r,data:s})}var H=C(at(),1);var Ks=1/Math.PI*180,Qs=1/180*Math.PI,mr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...mr}};var R=globalThis.mathgl.config;function Me(e,{precision:t=R.precision}={}){return e=Mr(e),`${parseFloat(e.toPrecision(t))}`}function Y(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function bt(e,t,n){let r=R.EPSILON;n&&(R.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(!bt(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)<=R.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{R.EPSILON=r}}function Mr(e){return Math.round(e/R.EPSILON)*R.EPSILON}var U=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(R)}formatString(t){let n="";for(let r=0;r<this.ELEMENTS;++r)n+=(r>0?", ":"")+Me(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(!bt(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],c=typeof n=="number"?n:n[s];this[s]=i+r*(c-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(R.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 dr(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 ${JSON.stringify(e)}`);return e}function $(e,t,n=""){if(R.debug&&!dr(e,t))throw new Error(`math.gl: ${n} some fields set to invalid numbers'`);return e}function qt(e,t){if(!e)throw new Error(`math.gl assertion ${t}`)}var Mt=class extends U{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 qt(t>=0&&t<this.ELEMENTS,"index is out of range"),w(this[t])}setComponent(t,n){return qt(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 ai=Math.PI/180;function gr(){let e=new L(2);return L!=Float32Array&&(e[0]=0,e[1]=0),e}function ye(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 fi=function(){let e=gr();return function(t,n,r,s,i,c){let o,a;for(n||(n=2),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,o=r;o<a;o+=n)e[0]=t[o],e[1]=t[o+1],i(e,e,c),t[o]=e[0],t[o+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 Te(e,t,n){let r=t[0],s=t[1],i=t[2],c=n[3]*r+n[7]*s+n[11]*i||1;return e[0]=(n[0]*r+n[4]*s+n[8]*i)/c,e[1]=(n[1]*r+n[5]*s+n[9]*i)/c,e[2]=(n[2]*r+n[6]*s+n[10]*i)/c,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 Se(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 Ft(){let e=new L(3);return L!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function yr(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function Bt(e,t,n){let r=new L(3);return r[0]=e,r[1]=t,r[2]=n,r}function we(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 Oe(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],c=n[0],o=n[1],a=n[2];return e[0]=s*a-i*o,e[1]=i*c-r*a,e[2]=r*o-s*c,e}function gt(e,t,n){let r=t[0],s=t[1],i=t[2],c=n[3]*r+n[7]*s+n[11]*i+n[15];return c=c||1,e[0]=(n[0]*r+n[4]*s+n[8]*i+n[12])/c,e[1]=(n[1]*r+n[5]*s+n[9]*i+n[13])/c,e[2]=(n[2]*r+n[6]*s+n[10]*i+n[14])/c,e}function Re(e,t,n){let r=n[0],s=n[1],i=n[2],c=n[3],o=t[0],a=t[1],f=t[2],h=s*f-i*a,p=i*o-r*f,l=r*a-s*o,x=s*l-i*p,m=i*h-r*l,M=r*p-s*h,d=c*2;return h*=d,p*=d,l*=d,x*=2,m*=2,M*=2,e[0]=o+h+x,e[1]=a+p+m,e[2]=f+l+M,e}var Le=yr;var pi=function(){let e=Ft();return function(t,n,r,s,i,c){let o,a;for(n||(n=3),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,o=r;o<a;o+=n)e[0]=t[o],e[1]=t[o+1],e[2]=t[o+2],i(e,e,c),t[o]=e[0],t[o+1]=e[1],t[o+2]=e[2];return t}}();var yt,W=class extends Mt{static get ZERO(){return yt||(yt=new W(0,0,0,0),Object.freeze(yt)),yt}constructor(t=0,n=0,r=0,s=0){super(-0,-0,-0,-0),Y(t)&&arguments.length===1?this.copy(t):(R.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 R.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 gt(this,this,t),this.check()}transformByMatrix3(t){return Se(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 At=class extends U{toString(){let t="[";if(R.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]=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 Ne(){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 Er(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 _e(e,t){if(e===t){let n=t[1],r=t[2],s=t[3],i=t[6],c=t[7],o=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]=c,e[14]=o}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 Ie(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],c=t[4],o=t[5],a=t[6],f=t[7],h=t[8],p=t[9],l=t[10],x=t[11],m=t[12],M=t[13],d=t[14],E=t[15],O=n*o-r*c,g=n*a-s*c,y=n*f-i*c,A=r*a-s*o,T=r*f-i*o,N=s*f-i*a,_=h*M-p*m,I=h*d-l*m,P=h*E-x*m,v=p*d-l*M,u=p*E-x*M,k=l*E-x*d,S=O*k-g*u+y*v+A*P-T*I+N*_;return S?(S=1/S,e[0]=(o*k-a*u+f*v)*S,e[1]=(s*u-r*k-i*v)*S,e[2]=(M*N-d*T+E*A)*S,e[3]=(l*T-p*N-x*A)*S,e[4]=(a*P-c*k-f*I)*S,e[5]=(n*k-s*P+i*I)*S,e[6]=(d*y-m*N-E*g)*S,e[7]=(h*N-l*y+x*g)*S,e[8]=(c*u-o*P+f*_)*S,e[9]=(r*P-n*u-i*_)*S,e[10]=(m*T-M*y+E*O)*S,e[11]=(p*y-h*T-x*O)*S,e[12]=(o*I-c*v-a*_)*S,e[13]=(n*v-r*I+s*_)*S,e[14]=(M*g-m*A-d*O)*S,e[15]=(h*A-p*g+l*O)*S,e):null}function Pe(e){let t=e[0],n=e[1],r=e[2],s=e[3],i=e[4],c=e[5],o=e[6],a=e[7],f=e[8],h=e[9],p=e[10],l=e[11],x=e[12],m=e[13],M=e[14],d=e[15],E=t*c-n*i,O=t*o-r*i,g=n*o-r*c,y=f*m-h*x,A=f*M-p*x,T=h*M-p*m,N=t*T-n*A+r*y,_=i*T-c*A+o*y,I=f*g-h*O+p*E,P=x*g-m*O+M*E;return a*N-s*_+d*I-l*P}function Ct(e,t,n){let r=t[0],s=t[1],i=t[2],c=t[3],o=t[4],a=t[5],f=t[6],h=t[7],p=t[8],l=t[9],x=t[10],m=t[11],M=t[12],d=t[13],E=t[14],O=t[15],g=n[0],y=n[1],A=n[2],T=n[3];return e[0]=g*r+y*o+A*p+T*M,e[1]=g*s+y*a+A*l+T*d,e[2]=g*i+y*f+A*x+T*E,e[3]=g*c+y*h+A*m+T*O,g=n[4],y=n[5],A=n[6],T=n[7],e[4]=g*r+y*o+A*p+T*M,e[5]=g*s+y*a+A*l+T*d,e[6]=g*i+y*f+A*x+T*E,e[7]=g*c+y*h+A*m+T*O,g=n[8],y=n[9],A=n[10],T=n[11],e[8]=g*r+y*o+A*p+T*M,e[9]=g*s+y*a+A*l+T*d,e[10]=g*i+y*f+A*x+T*E,e[11]=g*c+y*h+A*m+T*O,g=n[12],y=n[13],A=n[14],T=n[15],e[12]=g*r+y*o+A*p+T*M,e[13]=g*s+y*a+A*l+T*d,e[14]=g*i+y*f+A*x+T*E,e[15]=g*c+y*h+A*m+T*O,e}function ve(e,t,n){let r=n[0],s=n[1],i=n[2],c,o,a,f,h,p,l,x,m,M,d,E;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]):(c=t[0],o=t[1],a=t[2],f=t[3],h=t[4],p=t[5],l=t[6],x=t[7],m=t[8],M=t[9],d=t[10],E=t[11],e[0]=c,e[1]=o,e[2]=a,e[3]=f,e[4]=h,e[5]=p,e[6]=l,e[7]=x,e[8]=m,e[9]=M,e[10]=d,e[11]=E,e[12]=c*r+h*s+m*i+t[12],e[13]=o*r+p*s+M*i+t[13],e[14]=a*r+l*s+d*i+t[14],e[15]=f*r+x*s+E*i+t[15]),e}function ue(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 ke(e,t,n,r){let s=r[0],i=r[1],c=r[2],o=Math.sqrt(s*s+i*i+c*c),a,f,h,p,l,x,m,M,d,E,O,g,y,A,T,N,_,I,P,v,u,k,S,X;return o<1e-6?null:(o=1/o,s*=o,i*=o,c*=o,f=Math.sin(n),a=Math.cos(n),h=1-a,p=t[0],l=t[1],x=t[2],m=t[3],M=t[4],d=t[5],E=t[6],O=t[7],g=t[8],y=t[9],A=t[10],T=t[11],N=s*s*h+a,_=i*s*h+c*f,I=c*s*h-i*f,P=s*i*h-c*f,v=i*i*h+a,u=c*i*h+s*f,k=s*c*h+i*f,S=i*c*h-s*f,X=c*c*h+a,e[0]=p*N+M*_+g*I,e[1]=l*N+d*_+y*I,e[2]=x*N+E*_+A*I,e[3]=m*N+O*_+T*I,e[4]=p*P+M*v+g*u,e[5]=l*P+d*v+y*u,e[6]=x*P+E*v+A*u,e[7]=m*P+O*v+T*u,e[8]=p*k+M*S+g*X,e[9]=l*k+d*S+y*X,e[10]=x*k+E*S+A*X,e[11]=m*k+O*S+T*X,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function ze(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[4],c=t[5],o=t[6],a=t[7],f=t[8],h=t[9],p=t[10],l=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]=c*s+h*r,e[6]=o*s+p*r,e[7]=a*s+l*r,e[8]=f*s-i*r,e[9]=h*s-c*r,e[10]=p*s-o*r,e[11]=l*s-a*r,e}function be(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],c=t[1],o=t[2],a=t[3],f=t[8],h=t[9],p=t[10],l=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]=c*s-h*r,e[2]=o*s-p*r,e[3]=a*s-l*r,e[8]=i*r+f*s,e[9]=c*r+h*s,e[10]=o*r+p*s,e[11]=a*r+l*s,e}function qe(e,t,n){let r=Math.sin(n),s=Math.cos(n),i=t[0],c=t[1],o=t[2],a=t[3],f=t[4],h=t[5],p=t[6],l=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]=c*s+h*r,e[2]=o*s+p*r,e[3]=a*s+l*r,e[4]=f*s-i*r,e[5]=h*s-c*r,e[6]=p*s-o*r,e[7]=l*s-a*r,e}function Fe(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],c=n+n,o=r+r,a=s+s,f=n*c,h=r*c,p=r*o,l=s*c,x=s*o,m=s*a,M=i*c,d=i*o,E=i*a;return e[0]=1-p-m,e[1]=h+E,e[2]=l-d,e[3]=0,e[4]=h-E,e[5]=1-f-m,e[6]=x+M,e[7]=0,e[8]=l+d,e[9]=x-M,e[10]=1-f-p,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Be(e,t,n,r,s,i,c){let o=1/(n-t),a=1/(s-r),f=1/(i-c);return e[0]=i*2*o,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)*o,e[9]=(s+r)*a,e[10]=(c+i)*f,e[11]=-1,e[12]=0,e[13]=0,e[14]=c*i*2*f,e[15]=0,e}function Sr(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 c=1/(r-s);e[10]=(s+r)*c,e[14]=2*s*r*c}else e[10]=-1,e[14]=-2*r;return e}var Ce=Sr;function wr(e,t,n,r,s,i,c){let o=1/(t-n),a=1/(r-s),f=1/(i-c);return e[0]=-2*o,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)*o,e[13]=(s+r)*a,e[14]=(c+i)*f,e[15]=1,e}var Ue=wr;function Ve(e,t,n,r){let s,i,c,o,a,f,h,p,l,x,m=t[0],M=t[1],d=t[2],E=r[0],O=r[1],g=r[2],y=n[0],A=n[1],T=n[2];return Math.abs(m-y)<1e-6&&Math.abs(M-A)<1e-6&&Math.abs(d-T)<1e-6?Er(e):(p=m-y,l=M-A,x=d-T,s=1/Math.sqrt(p*p+l*l+x*x),p*=s,l*=s,x*=s,i=O*x-g*l,c=g*p-E*x,o=E*l-O*p,s=Math.sqrt(i*i+c*c+o*o),s?(s=1/s,i*=s,c*=s,o*=s):(i=0,c=0,o=0),a=l*o-x*c,f=x*i-p*o,h=p*c-l*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]=p,e[3]=0,e[4]=c,e[5]=f,e[6]=l,e[7]=0,e[8]=o,e[9]=h,e[10]=x,e[11]=0,e[12]=-(i*m+c*M+o*d),e[13]=-(a*m+f*M+h*d),e[14]=-(p*m+l*M+x*d),e[15]=1,e)}function Or(){let e=new L(4);return L!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function De(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 Ye(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 $e(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 Ge(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],c=n*n+r*r+s*s+i*i;return c>0&&(c=1/Math.sqrt(c)),e[0]=n*c,e[1]=r*c,e[2]=s*c,e[3]=i*c,e}function He(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Xe(e,t,n,r){let s=t[0],i=t[1],c=t[2],o=t[3];return e[0]=s+r*(n[0]-s),e[1]=i+r*(n[1]-i),e[2]=c+r*(n[2]-c),e[3]=o+r*(n[3]-o),e}function je(e,t,n){let r=t[0],s=t[1],i=t[2],c=t[3];return e[0]=n[0]*r+n[4]*s+n[8]*i+n[12]*c,e[1]=n[1]*r+n[5]*s+n[9]*i+n[13]*c,e[2]=n[2]*r+n[6]*s+n[10]*i+n[14]*c,e[3]=n[3]*r+n[7]*s+n[11]*i+n[15]*c,e}function Ke(e,t,n){let r=t[0],s=t[1],i=t[2],c=n[0],o=n[1],a=n[2],f=n[3],h=f*r+o*i-a*s,p=f*s+a*r-c*i,l=f*i+c*s-o*r,x=-c*r-o*s-a*i;return e[0]=h*f+x*-c+p*-a-l*-o,e[1]=p*f+x*-o+l*-c-h*-a,e[2]=l*f+x*-a+h*-o-p*-c,e[3]=t[3],e}var Oi=function(){let e=Or();return function(t,n,r,s,i,c){let o,a;for(n||(n=4),r||(r=0),s?a=Math.min(s*n+r,t.length):a=t.length,o=r;o<a;o+=n)e[0]=t[o],e[1]=t[o+1],e[2]=t[o+2],e[3]=t[o+3],i(e,e,c),t[o]=e[0],t[o+1]=e[1],t[o+2]=e[2],t[o+3]=e[3];return t}}();var Dt;(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"})(Dt||(Dt={}));var Lr=45*Math.PI/180,Nr=1,Ut=.1,Vt=500,_r=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),B=class extends At{static get IDENTITY(){return Pr()}static get ZERO(){return Ir()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Dt}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,c,o,a,f,h,p,l,x,m,M,d){return this[0]=t,this[1]=n,this[2]=r,this[3]=s,this[4]=i,this[5]=c,this[6]=o,this[7]=a,this[8]=f,this[9]=h,this[10]=p,this[11]=l,this[12]=x,this[13]=m,this[14]=M,this[15]=d,this.check()}setRowMajor(t,n,r,s,i,c,o,a,f,h,p,l,x,m,M,d){return this[0]=t,this[1]=i,this[2]=f,this[3]=x,this[4]=n,this[5]=c,this[6]=h,this[7]=m,this[8]=r,this[9]=o,this[10]=p,this[11]=M,this[12]=s,this[13]=a,this[14]=l,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(_r)}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:c=Ut,far:o=Vt}=t;return o===1/0?vr(this,n,r,s,i,c):Be(this,n,r,s,i,c,o),this.check()}lookAt(t){let{eye:n,center:r=[0,0,0],up:s=[0,1,0]}=t;return Ve(this,n,r,s),this.check()}ortho(t){let{left:n,right:r,bottom:s,top:i,near:c=Ut,far:o=Vt}=t;return Ue(this,n,r,s,i,c,o),this.check()}orthographic(t){let{fovy:n=Lr,aspect:r=Nr,focalDistance:s=1,near:i=Ut,far:c=Vt}=t;Qe(n);let o=n/2,a=s*Math.tan(o),f=a*r;return this.ortho({left:-f,right:f,bottom:-a,top:a,near:i,far:c})}perspective(t){let{fovy:n=45*Math.PI/180,aspect:r=1,near:s=.1,far:i=500}=t;return Qe(n),Ce(this,n,r,s,i),this.check()}determinant(){return Pe(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],c=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*c,t[3]=0,t[4]=this[4]*s,t[5]=this[5]*i,t[6]=this[6]*c,t[7]=0,t[8]=this[8]*s,t[9]=this[9]*i,t[10]=this[10]*c,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],c=1/r[2];return t[0]=this[0]*s,t[1]=this[1]*i,t[2]=this[2]*c,t[3]=this[4]*s,t[4]=this[5]*i,t[5]=this[6]*c,t[6]=this[8]*s,t[7]=this[9]*i,t[8]=this[10]*c,t}transpose(){return _e(this,this),this.check()}invert(){return Ie(this,this),this.check()}multiplyLeft(t){return Ct(this,t,this),this.check()}multiplyRight(t){return Ct(this,this,t),this.check()}rotateX(t){return ze(this,this,t),this.check()}rotateY(t){return be(this,this,t),this.check()}rotateZ(t){return qe(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,n){return ke(this,this,t,n),this.check()}scale(t){return ue(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return ve(this,this,t),this.check()}transform(t,n){return t.length===4?(n=je(n||[-0,-0,-0,-0],t,this),$(n,4),n):this.transformAsPoint(t,n)}transformAsPoint(t,n){let{length:r}=t,s;switch(r){case 2:s=ye(n||[-0,-0],t,this);break;case 3:s=gt(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return $(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=Te(n||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return $(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])}},Tt,Et;function Ir(){return Tt||(Tt=new B([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Tt)),Tt}function Pr(){return Et||(Et=new B,Object.freeze(Et)),Et}function Qe(e){if(e>Math.PI*2)throw Error("expected radians")}function vr(e,t,n,r,s,i){let c=2*i/(n-t),o=2*i/(s-r),a=(n+t)/(n-t),f=(s+r)/(s-r),h=-1,p=-1,l=-2*i;return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=a,e[9]=f,e[10]=h,e[11]=p,e[12]=0,e[13]=0,e[14]=l,e[15]=0,e}function Ze(){let e=new L(4);return L!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Je(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Yt(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 $t(e,t,n){let r=t[0],s=t[1],i=t[2],c=t[3],o=n[0],a=n[1],f=n[2],h=n[3];return e[0]=r*h+c*o+s*f-i*a,e[1]=s*h+c*a+i*o-r*f,e[2]=i*h+c*f+r*a-s*o,e[3]=c*h-r*o-s*a-i*f,e}function tn(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],c=t[3],o=Math.sin(n),a=Math.cos(n);return e[0]=r*a+c*o,e[1]=s*a+i*o,e[2]=i*a-s*o,e[3]=c*a-r*o,e}function en(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],c=t[3],o=Math.sin(n),a=Math.cos(n);return e[0]=r*a-i*o,e[1]=s*a+c*o,e[2]=i*a+r*o,e[3]=c*a-s*o,e}function nn(e,t,n){n*=.5;let r=t[0],s=t[1],i=t[2],c=t[3],o=Math.sin(n),a=Math.cos(n);return e[0]=r*a+s*o,e[1]=s*a-r*o,e[2]=i*a+c*o,e[3]=c*a-i*o,e}function rn(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],c=t[2],o=t[3],a=n[0],f=n[1],h=n[2],p=n[3],l,x,m,M,d;return l=s*a+i*f+c*h+o*p,l<0&&(l=-l,a=-a,f=-f,h=-h,p=-p),1-l>1e-6?(x=Math.acos(l),d=Math.sin(x),m=Math.sin((1-r)*x)/d,M=Math.sin(r*x)/d):(m=1-r,M=r),e[0]=m*s+M*a,e[1]=m*i+M*f,e[2]=m*c+M*h,e[3]=m*o+M*p,e}function sn(e,t){let n=t[0],r=t[1],s=t[2],i=t[3],c=n*n+r*r+s*s+i*i,o=c?1/c:0;return e[0]=-n*o,e[1]=-r*o,e[2]=-s*o,e[3]=i*o,e}function cn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Wt(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,c=(s+2)%3;r=Math.sqrt(t[s*3+s]-t[i*3+i]-t[c*3+c]+1),e[s]=.5*r,r=.5/r,e[3]=(t[i*3+c]-t[c*3+i])*r,e[i]=(t[i*3+s]+t[s*3+i])*r,e[c]=(t[c*3+s]+t[s*3+c])*r}return e}var on=De;var an=Ye,fn=He,hn=Xe,ln=$e;var pn=We;var xn=Ge;var mn=function(){let e=Ft(),t=Bt(1,0,0),n=Bt(0,1,0);return function(r,s,i){let c=Oe(s,i);return c<-.999999?(dt(e,t,s),Le(e)<1e-6&&dt(e,n,s),we(e,e),Yt(r,e,Math.PI),r):c>.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+c,xn(r,r))}}(),Bi=function(){let e=Ze(),t=Ze();return function(n,r,s,i,c,o){return et(e,r,c,o),et(t,s,i,o),et(n,e,t,2*o*(1-o)),n}}(),Ci=function(){let e=Ne();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,Wt(t,e))}}();var ur=[0,0,0,1],nt=class extends U{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 Wt(this,t),this.check()}fromAxisRotation(t,n){return Yt(this,t,n),this.check()}identity(){return Je(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 ln(this)}lengthSquared(){return pn(this)}dot(t){return fn(this,t)}rotationTo(t,n){return mn(this,t,n),this.check()}add(t){return on(this,this,t),this.check()}calculateW(){return rn(this,this),this.check()}conjugate(){return cn(this,this),this.check()}invert(){return sn(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 $t(this,this,t),this.check()}multiplyLeft(t){return $t(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 tn(this,this,t),this.check()}rotateY(t){return en(this,this,t),this.check()}rotateZ(t){return nn(this,this,t),this.check()}scale(t){return an(this,this,t),this.check()}slerp(t,n,r){let s,i,c;switch(arguments.length){case 1:({start:s=ur,target:i,ratio:c}=t);break;case 2:s=this,i=t,c=n;break;default:s=t,i=n,c=r}return et(this,s,i,c),this.check()}transformVector4(t,n=new W){return Ke(n,t,this),$(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 Ht=C(j(),1);var kr={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},Xt=class{name="unnamed";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:c})=>{Ur(r,s,i,c),qr(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:o,interpolation:a="LINEAR",output:f})=>({input:Mn(t.accessors[o]),interpolation:a,output:Mn(t.accessors[f])})),c=n.channels.map(({sampler:o,target:a})=>({sampler:i[o],target:t.nodes[a.node],path:a.path}));return new Xt({name:s,channels:c})})}animate(t){this.setTime(t)}setTime(t){this.animations.forEach(n=>n.animate(t))}getAnimations(){return this.animations}};function Mn(e){if(!e._animation){let t=zr[e.componentType],n=kr[e.type],r=n*e.count,{buffer:s,byteOffset:i}=e.bufferView.data,c=new t(s,i+(e.byteOffset||0),r);if(n===1)e._animation=Array.from(c);else{let o=[];for(let a=0;a<c.length;a+=n)o.push(Array.from(c.slice(a,a+n)));e._animation=o}}return e._animation}var br=new B;function qr(e,t){if(t.matrix.identity(),e.translation&&t.matrix.translate(e.translation),e.rotation){let n=br.fromQuaternion(e.rotation);t.matrix.multiplyRight(n)}e.scale&&t.matrix.scale(e.scale)}var Gt=new nt;function Fr(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 Br(e,t,{p0:n,outTangent0:r,inTangent1:s,p1:i,tDiff:c,ratio:o}){for(let a=0;a<e[t].length;a++){let f=r[a]*c,h=s[a]*c;e[t][a]=(2*Math.pow(o,3)-3*Math.pow(o,2)+1)*n[a]+(Math.pow(o,3)-2*Math.pow(o,2)+o)*f+(-2*Math.pow(o,3)+3*Math.pow(o,2))*i[a]+(Math.pow(o,3)-Math.pow(o,2))*h}}function Cr(e,t,n){for(let r=0;r<n.length;r++)e[t][r]=n[r]}function Ur(e,{input:t,interpolation:n,output:r},s,i){let c=t[t.length-1],o=e%c,a=t.findIndex(l=>l>=o),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:Ht.log.warn(`Bad animation path ${i}`)()}let h=t[f],p=t[a];switch(n){case"STEP":Cr(s,i,r[f]);break;case"LINEAR":if(p>h){let l=(o-h)/(p-h);Fr(s,i,r[f],r[a],l)}break;case"CUBICSPLINE":if(p>h){let l=(o-h)/(p-h),x=p-h,m=r[3*f+1],M=r[3*f+2],d=r[3*a+0],E=r[3*a+1];Br(s,i,{p0:m,outTangent0:M,inTangent1:d,p1:E,tDiff:x,ratio:l})}break;default:Ht.log.warn(`Interpolation ${n} not supported`)();break}}var yn=C(j(),1),An=C(gn(),1),St=C(at(),1);var Vr=`
|
|
8
8
|
layout(0) positions: vec4; // in vec4 POSITION;
|
|
9
9
|
|
|
10
10
|
#ifdef HAS_NORMALS
|
|
@@ -95,6 +95,6 @@ layout(0) positions: vec4; // in vec4 POSITION;
|
|
|
95
95
|
vec3 pos = pbr_vPosition;
|
|
96
96
|
fragmentColor = pbr_filterColor(vec4(1.0));
|
|
97
97
|
}
|
|
98
|
-
`;function
|
|
98
|
+
`;function Tn(e,t){let{id:n,geometry:r,material:s,vertexCount:i,materialOptions:c,modelOptions:o={}}=t,a=ot(e,s,r.attributes,c);yn.log.info(4,"createGLTFModel defines: ",a.defines)();let f=[],h={depthWriteEnabled:!0,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back"},p={id:n,source:Vr,vs:Dr,fs:Yr,geometry:r,topology:r.topology,vertexCount:i,modules:[An.pbrMaterial],...o,defines:{...a.defines,...o.defines},parameters:{...h,...a.parameters,...o.parameters}},l=new St.Model(e,p),{camera:x,...m}={...a.uniforms,...o.uniforms,...a.bindings,...o.bindings};return l.shaderInputs.setProps({pbrMaterial:m,pbrProjection:{camera:x}}),new St.ModelNode({managedResources:f,model:l})}var D;(function(e){e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN"})(D||(D={}));function En(e){switch(e){case D.POINTS:return"point-list";case D.LINES:return"line-list";case D.LINE_STRIP:return"line-strip";case D.TRIANGLES:return"triangle-list";case D.TRIANGLE_STRIP:return"triangle-strip";default:throw new Error(String(e))}}var $r={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:void 0,lights:!0,useTangents:!1},wt=class{device;options;gltf;constructor(t,n={}){this.device=t,this.options={...$r,...n}}instantiate(t){return this.gltf=jt(t),(this.gltf.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 H.GroupNode({id:t.name||t.id,children:r})}createNode(t){if(!t._node){let s=(t.children||[]).map(c=>this.createNode(c));t.mesh&&s.push(this.createMesh(t.mesh));let i=new H.GroupNode({id:t.name||t.id,children:s});if(t.matrix)i.setMatrix(t.matrix);else{if(i.matrix.identity(),t.translation&&i.matrix.translate(t.translation),t.rotation){let c=new B().fromQuaternion(t.rotation);i.matrix.multiplyRight(c)}t.scale&&i.matrix.scale(t.scale)}t._node=i}let n=this.gltf.nodes.find(r=>r.id===t.id);return n._node=t._node,t._node}createMesh(t){if(!t._mesh){let r=(t.primitives||[]).map((i,c)=>this.createPrimitive(i,c,t)),s=new H.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=En(t.mode||4),c=t.indices?t.indices.count:this.getVertexCount(t.attributes),o=Tn(this.device,{id:s,geometry:this.createGeometry(s,t,i),material:t.material,materialOptions:this.options,modelOptions:this.options.modelOptions,vertexCount:c});return o.bounds=[t.attributes.POSITION.min,t.attributes.POSITION.max],o}getVertexCount(t){throw new Error("getVertexCount not implemented")}createGeometry(t,n,r){let s={};for(let[i,c]of Object.entries(n.attributes)){let{components:o,size:a,value:f}=c;s[i]={size:a??o,value:f}}return new H.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 jt(e){if(ArrayBuffer.isView(e)||e instanceof ArrayBuffer)return e;if(Array.isArray(e))return e.map(jt);if(e&&typeof e=="object"){let t={};for(let n in e)t[n]=jt(e[n]);return t}return e}function Sn(e,t,n){let r=new wt(e,n),s=r.instantiate(t),i=r.createAnimator();return{scenes:s,animator:i}}return In(rt);})();
|
|
99
99
|
return __exports__;
|
|
100
100
|
});
|
|
@@ -104,7 +104,7 @@ const fs = /* glsl */ `\
|
|
|
104
104
|
}
|
|
105
105
|
`;
|
|
106
106
|
export function createGLTFModel(device, options) {
|
|
107
|
-
const { id, geometry, material, vertexCount, materialOptions, modelOptions } = options;
|
|
107
|
+
const { id, geometry, material, vertexCount, materialOptions, modelOptions = {} } = options;
|
|
108
108
|
const parsedMaterial = parsePBRMaterial(device, material, geometry.attributes, materialOptions);
|
|
109
109
|
log.info(4, 'createGLTFModel defines: ', parsedMaterial.defines)();
|
|
110
110
|
// Calculate managedResources
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-gltf-model.js","sourceRoot":"","sources":["../../src/gltf/create-gltf-model.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAmC,GAAG,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,WAAW,EAAe,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAW,KAAK,EAAE,SAAS,EAAa,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAA0B,gBAAgB,EAAC,qCAAkC;AAEpF,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CzB,CAAC;AAEF,gDAAgD;AAChD,yDAAyD;AACzD,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCrB,CAAC;AAEF,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;CAQrB,CAAC;AAWF,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAA+B;IAC7E,MAAM,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAC,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"create-gltf-model.js","sourceRoot":"","sources":["../../src/gltf/create-gltf-model.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAmC,GAAG,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,WAAW,EAAe,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAW,KAAK,EAAE,SAAS,EAAa,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAA0B,gBAAgB,EAAC,qCAAkC;AAEpF,MAAM,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CzB,CAAC;AAEF,gDAAgD;AAChD,yDAAyD;AACzD,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCrB,CAAC;AAEF,MAAM,EAAE,GAAG,UAAU,CAAC;;;;;;;;CAQrB,CAAC;AAWF,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAA+B;IAC7E,MAAM,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,GAAG,EAAE,EAAC,GAAG,OAAO,CAAC;IAE1F,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAChG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,2BAA2B,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAEnE,6BAA6B;IAC7B,sDAAsD;IACtD,4DAA4D;IAC5D,MAAM,gBAAgB,GAAU,EAAE,CAAC;IACnC,8DAA8D;IAC9D,4FAA4F;IAE5F,MAAM,UAAU,GAA6B;QAC3C,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAC;IAEF,MAAM,UAAU,GAAe;QAC7B,EAAE;QACF,MAAM,EAAE,MAAM;QACd,EAAE;QACF,EAAE;QACF,QAAQ;QACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW;QACX,OAAO,EAAE,CAAC,WAAsC,CAAC;QACjD,GAAG,YAAY;QAEf,OAAO,EAAE,EAAC,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAC;QAC7D,UAAU,EAAE,EAAC,GAAG,UAAU,EAAE,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,UAAU,EAAC;KACtF,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,EAAC,MAAM,EAAE,GAAG,gBAAgB,EAAC,GAAG;QACpC,GAAG,cAAc,CAAC,QAAQ;QAC1B,GAAG,YAAY,CAAC,QAAQ;QACxB,GAAG,cAAc,CAAC,QAAQ;QAC1B,GAAG,YAAY,CAAC,QAAQ;KACzB,CAAC;IAEF,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC,CAAC;IACtF,OAAO,IAAI,SAAS,CAAC,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-animator.d.ts","sourceRoot":"","sources":["../../src/gltf/gltf-animator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gltf-animator.d.ts","sourceRoot":"","sources":["../../src/gltf/gltf-animator.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B;;;;;;;;CAQxC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;CAO7C,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,cAAM,aAAa;IACjB,IAAI,EAAE,MAAM,CAAa;IACzB,SAAS,EAAE,MAAM,CAAK;IACtB,OAAO,EAAE,OAAO,CAAQ;IACxB,KAAK,EAAE,MAAM,CAAK;IAClB,QAAQ,EAAE,GAAG,CAAM;gBAEP,KAAK,EAAE,kBAAkB;IAIrC,OAAO,CAAC,MAAM,EAAE,MAAM;CAavB;AAED,qBAAa,YAAY;IACvB,UAAU,EAAE,aAAa,EAAE,CAAC;gBAEhB,IAAI,EAAE,GAAG;IAiBrB,0EAA0E;IAC1E,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,aAAa;CAGd"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
+
// @ts-nocheck TODO
|
|
4
5
|
import { log } from '@luma.gl/core';
|
|
5
6
|
import { Matrix4, Quaternion } from '@math.gl/core';
|
|
6
7
|
// TODO: import from loaders.gl?
|
|
@@ -22,7 +23,7 @@ export const ATTRIBUTE_COMPONENT_TYPE_TO_ARRAY = {
|
|
|
22
23
|
5126: Float32Array
|
|
23
24
|
};
|
|
24
25
|
class GLTFAnimation {
|
|
25
|
-
name;
|
|
26
|
+
name = 'unnamed';
|
|
26
27
|
startTime = 0;
|
|
27
28
|
playing = true;
|
|
28
29
|
speed = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-animator.js","sourceRoot":"","sources":["../../src/gltf/gltf-animator.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"gltf-animator.js","sourceRoot":"","sources":["../../src/gltf/gltf-animator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-instantiator.d.ts","sourceRoot":"","sources":["../../src/gltf/gltf-instantiator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gltf-instantiator.d.ts","sourceRoot":"","sources":["../../src/gltf/gltf-instantiator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,EAAC,QAAQ,EAAqB,SAAS,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG9F,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAE7C,OAAO,KAAK,EAAC,cAAc,EAAC,kCAA+B;AAG3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B,CAAC,EAAE,cAAc,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAUF;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,uBAAuB,CAAC;IACjC,IAAI,EAAE,GAAG,CAAC;gBAEE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B;IAKjE,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,EAAE;IAMnC,cAAc,IAAI,YAAY;IAS9B,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS;IAUtC,UAAU,CAAC,QAAQ,KAAA;IA2CnB,UAAU,CAAC,QAAQ,KAAA,GAAG,SAAS;IAiB/B,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,KAAA,GAAG,SAAS;IA0BnE,cAAc,CAAC,UAAU,EAAE,GAAG;IAI9B,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,GAAG,QAAQ;IAgBrF,YAAY,CAAC,SAAS,KAAA,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAuB9C,aAAa,CAAC,WAAW,KAAA;IAMzB,QAAQ,IAAI,OAAO;CAOpB"}
|
|
@@ -9,7 +9,7 @@ import { convertGLDrawModeToTopology } from "./gl-utils.js";
|
|
|
9
9
|
const DEFAULT_OPTIONS = {
|
|
10
10
|
modelOptions: {},
|
|
11
11
|
pbrDebug: false,
|
|
12
|
-
imageBasedLightingEnvironment:
|
|
12
|
+
imageBasedLightingEnvironment: undefined,
|
|
13
13
|
lights: true,
|
|
14
14
|
useTangents: false
|
|
15
15
|
};
|
|
@@ -34,6 +34,7 @@ export class GLTFInstantiator {
|
|
|
34
34
|
if (Array.isArray(this.gltf.animations)) {
|
|
35
35
|
return new GLTFAnimator(this.gltf);
|
|
36
36
|
}
|
|
37
|
+
// @ts-ignore TODO - should we create an empty animator that does nothing?
|
|
37
38
|
return null;
|
|
38
39
|
}
|
|
39
40
|
createScene(gltfScene) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-instantiator.js","sourceRoot":"","sources":["../../src/gltf/gltf-instantiator.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"gltf-instantiator.js","sourceRoot":"","sources":["../../src/gltf/gltf-instantiator.ts"],"names":[],"mappings":"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"}
|