aptechka 0.5.9 → 0.5.10
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/lib/en3/index.cjs +1 -1
- package/lib/en3/index.js +4 -4
- package/package.json +1 -1
package/lib/en3/index.cjs
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
z-index: -1;
|
|
8
8
|
`,E(this,W).append(E(this,y).domElement),E(this,x).set("default",new me("default",IA({sizeElement:E(this,W)},A==null?void 0:A.view))),R(this,OA,(A==null?void 0:A.cacheAssets)||!1),R(this,cA,!0),yA.windowResizer.subscribe(E(this,_A),NA.RESIZE_ORDER.EN3),LA.ticker.subscribe(E(this,PA),{order:NA.TICK_ORDER.EN3})}destroy(){if(!E(this,cA)){console.warn("[en3.setup]: You are trying to destory en3 but it has not been initialized.");return}yA.windowResizer.unsubscribe(E(this,_A)),LA.ticker.unsubscribe(E(this,PA)),E(this,x).forEach(A=>{A.destroy()}),E(this,y).dispose(),E(this,y).domElement.remove(),R(this,y,null),R(this,cA,!1),O.forEach(A=>{A.dispose()}),O.clear()}createView(A,e){const s=E(this,x).size,t=new me(A,e);return E(this,x).set(A,t),s===1&&E(this,y).setScissorTest(!0),t}getView(A){return E(this,x).get(A)}destroyView(A){const e=E(this,x).get(A);e&&(E(this,x).delete(A),e.destroy(),E(this,x).size<=1&&E(this,y).setScissorTest(!1))}render(A){var e;if(E(this,x).size>1||this.view.isClipped){const s=A.box.left+A.box.CSSTranslation.x+A.box.scrollValue.x,t=S.height-A.box.height-A.box.top+A.box.CSSTranslation.y+A.box.scrollValue.y*-1;E(this,y).setScissor(s,t,A.box.width,A.box.height),E(this,y).setViewport(s,t,A.box.width,A.box.height)}(e=A.beforeRenderCallback)==null||e.call(A),E(this,y).render(A.scene,A.camera)}}ae=new WeakMap,W=new WeakMap,y=new WeakMap,x=new WeakMap,DA=new WeakMap,FA=new WeakMap,GA=new WeakMap,KA=new WeakMap,cA=new WeakMap,OA=new WeakMap,_A=new WeakMap,PA=new WeakMap;const S=new Ft,aA=new B.TextureLoader,Gt=aA.load.bind(aA),Rt=aA.loadAsync.bind(aA);aA.load=(C,A,...e)=>{if(S.cacheAssets&&O.has(C)){const s=O.get(C);return A==null||A(s.data),s.data}return Gt(C,s=>{S.cacheAssets&&O.set(C,{data:s,dispose:()=>s.dispose()}),A==null||A(s)},...e)};aA.loadAsync=(C,...A)=>dA(exports,null,function*(){if(S.cacheAssets&&O.has(C))return O.get(C).data;const e=yield Rt(C,...A);return S.cacheAssets&&O.set(C,{data:e,dispose:()=>e.dispose()}),e});function be(C,A){if(A===B.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),C;if(A===B.TriangleFanDrawMode||A===B.TriangleStripDrawMode){let e=C.getIndex();if(e===null){const i=[],r=C.getAttribute("position");if(r!==void 0){for(let o=0;o<r.count;o++)i.push(o);C.setIndex(i),e=C.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),C}const s=e.count-2,t=[];if(A===B.TriangleFanDrawMode)for(let i=1;i<=s;i++)t.push(e.getX(0)),t.push(e.getX(i)),t.push(e.getX(i+1));else for(let i=0;i<s;i++)i%2===0?(t.push(e.getX(i)),t.push(e.getX(i+1)),t.push(e.getX(i+2))):(t.push(e.getX(i+2)),t.push(e.getX(i+1)),t.push(e.getX(i)));t.length/3!==s&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const n=C.clone();return n.setIndex(t),n.clearGroups(),n}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),C}class pt extends B.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new yt(e)}),this.register(function(e){return new bt(e)}),this.register(function(e){return new Kt(e)}),this.register(function(e){return new Ot(e)}),this.register(function(e){return new Tt(e)}),this.register(function(e){return new Ht(e)}),this.register(function(e){return new Jt(e)}),this.register(function(e){return new Ut(e)}),this.register(function(e){return new St(e)}),this.register(function(e){return new xt(e)}),this.register(function(e){return new Lt(e)}),this.register(function(e){return new kt(e)}),this.register(function(e){return new Nt(e)}),this.register(function(e){return new Mt(e)}),this.register(function(e){return new _t(e)}),this.register(function(e){return new Pt(e)})}load(A,e,s,t){const n=this;let i;if(this.resourcePath!=="")i=this.resourcePath;else if(this.path!==""){const a=B.LoaderUtils.extractUrlBase(A);i=B.LoaderUtils.resolveURL(a,this.path)}else i=B.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const r=function(a){t?t(a):console.error(a),n.manager.itemError(A),n.manager.itemEnd(A)},o=new B.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(A,function(a){try{n.parse(a,i,function(g){e(g),n.manager.itemEnd(A)},r)}catch(g){r(g)}},s,r)}setDRACOLoader(A){return this.dracoLoader=A,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,e,s,t){let n;const i={},r={},o=new TextDecoder;if(typeof A=="string")n=JSON.parse(A);else if(A instanceof ArrayBuffer)if(o.decode(new Uint8Array(A,0,4))===Ze){try{i[p.KHR_BINARY_GLTF]=new Yt(A)}catch(I){t&&t(I);return}n=JSON.parse(i[p.KHR_BINARY_GLTF].content)}else n=JSON.parse(o.decode(A));else n=A;if(n.asset===void 0||n.asset.version[0]<2){t&&t(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const a=new ss(n,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let g=0;g<this.pluginCallbacks.length;g++){const I=this.pluginCallbacks[g](a);I.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),r[I.name]=I,i[I.name]=!0}if(n.extensionsUsed)for(let g=0;g<n.extensionsUsed.length;++g){const I=n.extensionsUsed[g],Q=n.extensionsRequired||[];switch(I){case p.KHR_MATERIALS_UNLIT:i[I]=new wt;break;case p.KHR_DRACO_MESH_COMPRESSION:i[I]=new qt(n,this.dracoLoader);break;case p.KHR_TEXTURE_TRANSFORM:i[I]=new Xt;break;case p.KHR_MESH_QUANTIZATION:i[I]=new Vt;break;default:Q.indexOf(I)>=0&&r[I]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+I+'".')}}a.setExtensions(i),a.setPlugins(r),a.parse(s,t)}parseAsync(A,e){const s=this;return new Promise(function(t,n){s.parse(A,e,t,n)})}}function mt(){let C={};return{get:function(A){return C[A]},add:function(A,e){C[A]=e},remove:function(A){delete C[A]},removeAll:function(){C={}}}}const p={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Mt{constructor(A){this.parser=A,this.name=p.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,e=this.parser.json.nodes||[];for(let s=0,t=e.length;s<t;s++){const n=e[s];n.extensions&&n.extensions[this.name]&&n.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,n.extensions[this.name].light)}}_loadLight(A){const e=this.parser,s="light:"+A;let t=e.cache.get(s);if(t)return t;const n=e.json,o=((n.extensions&&n.extensions[this.name]||{}).lights||[])[A];let a;const g=new B.Color(16777215);o.color!==void 0&&g.setRGB(o.color[0],o.color[1],o.color[2],B.LinearSRGBColorSpace);const I=o.range!==void 0?o.range:0;switch(o.type){case"directional":a=new B.DirectionalLight(g),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new B.PointLight(g),a.distance=I;break;case"spot":a=new B.SpotLight(g),a.distance=I,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,a.angle=o.spot.outerConeAngle,a.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return a.position.set(0,0,0),a.decay=2,AA(a,o),o.intensity!==void 0&&(a.intensity=o.intensity),a.name=e.createUniqueName(o.name||"light_"+A),t=Promise.resolve(a),e.cache.add(s,t),t}getDependency(A,e){if(A==="light")return this._loadLight(e)}createNodeAttachment(A){const e=this,s=this.parser,n=s.json.nodes[A],r=(n.extensions&&n.extensions[this.name]||{}).light;return r===void 0?null:this._loadLight(r).then(function(o){return s._getNodeRef(e.cache,r,o)})}}class wt{constructor(){this.name=p.KHR_MATERIALS_UNLIT}getMaterialType(){return B.MeshBasicMaterial}extendParams(A,e,s){const t=[];A.color=new B.Color(1,1,1),A.opacity=1;const n=e.pbrMetallicRoughness;if(n){if(Array.isArray(n.baseColorFactor)){const i=n.baseColorFactor;A.color.setRGB(i[0],i[1],i[2],B.LinearSRGBColorSpace),A.opacity=i[3]}n.baseColorTexture!==void 0&&t.push(s.assignTexture(A,"map",n.baseColorTexture,B.SRGBColorSpace))}return Promise.all(t)}}class St{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=t.extensions[this.name].emissiveStrength;return n!==void 0&&(e.emissiveIntensity=n),Promise.resolve()}}class yt{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];if(i.clearcoatFactor!==void 0&&(e.clearcoat=i.clearcoatFactor),i.clearcoatTexture!==void 0&&n.push(s.assignTexture(e,"clearcoatMap",i.clearcoatTexture)),i.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=i.clearcoatRoughnessFactor),i.clearcoatRoughnessTexture!==void 0&&n.push(s.assignTexture(e,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),i.clearcoatNormalTexture!==void 0&&(n.push(s.assignTexture(e,"clearcoatNormalMap",i.clearcoatNormalTexture)),i.clearcoatNormalTexture.scale!==void 0)){const r=i.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new B.Vector2(r,r)}return Promise.all(n)}}class Lt{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];return i.iridescenceFactor!==void 0&&(e.iridescence=i.iridescenceFactor),i.iridescenceTexture!==void 0&&n.push(s.assignTexture(e,"iridescenceMap",i.iridescenceTexture)),i.iridescenceIor!==void 0&&(e.iridescenceIOR=i.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),i.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=i.iridescenceThicknessMinimum),i.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=i.iridescenceThicknessMaximum),i.iridescenceThicknessTexture!==void 0&&n.push(s.assignTexture(e,"iridescenceThicknessMap",i.iridescenceThicknessTexture)),Promise.all(n)}}class Tt{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_SHEEN}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[];e.sheenColor=new B.Color(0,0,0),e.sheenRoughness=0,e.sheen=1;const i=t.extensions[this.name];if(i.sheenColorFactor!==void 0){const r=i.sheenColorFactor;e.sheenColor.setRGB(r[0],r[1],r[2],B.LinearSRGBColorSpace)}return i.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=i.sheenRoughnessFactor),i.sheenColorTexture!==void 0&&n.push(s.assignTexture(e,"sheenColorMap",i.sheenColorTexture,B.SRGBColorSpace)),i.sheenRoughnessTexture!==void 0&&n.push(s.assignTexture(e,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(n)}}class Ht{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];return i.transmissionFactor!==void 0&&(e.transmission=i.transmissionFactor),i.transmissionTexture!==void 0&&n.push(s.assignTexture(e,"transmissionMap",i.transmissionTexture)),Promise.all(n)}}class Jt{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_VOLUME}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];e.thickness=i.thicknessFactor!==void 0?i.thicknessFactor:0,i.thicknessTexture!==void 0&&n.push(s.assignTexture(e,"thicknessMap",i.thicknessTexture)),e.attenuationDistance=i.attenuationDistance||1/0;const r=i.attenuationColor||[1,1,1];return e.attenuationColor=new B.Color().setRGB(r[0],r[1],r[2],B.LinearSRGBColorSpace),Promise.all(n)}}class Ut{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_IOR}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const t=this.parser.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=t.extensions[this.name];return e.ior=n.ior!==void 0?n.ior:1.5,Promise.resolve()}}class xt{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_SPECULAR}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];e.specularIntensity=i.specularFactor!==void 0?i.specularFactor:1,i.specularTexture!==void 0&&n.push(s.assignTexture(e,"specularIntensityMap",i.specularTexture));const r=i.specularColorFactor||[1,1,1];return e.specularColor=new B.Color().setRGB(r[0],r[1],r[2],B.LinearSRGBColorSpace),i.specularColorTexture!==void 0&&n.push(s.assignTexture(e,"specularColorMap",i.specularColorTexture,B.SRGBColorSpace)),Promise.all(n)}}class Nt{constructor(A){this.parser=A,this.name=p.EXT_MATERIALS_BUMP}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];return e.bumpScale=i.bumpFactor!==void 0?i.bumpFactor:1,i.bumpTexture!==void 0&&n.push(s.assignTexture(e,"bumpMap",i.bumpTexture)),Promise.all(n)}}class kt{constructor(A){this.parser=A,this.name=p.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const s=this.parser.json.materials[A];return!s.extensions||!s.extensions[this.name]?null:B.MeshPhysicalMaterial}extendMaterialParams(A,e){const s=this.parser,t=s.json.materials[A];if(!t.extensions||!t.extensions[this.name])return Promise.resolve();const n=[],i=t.extensions[this.name];return i.anisotropyStrength!==void 0&&(e.anisotropy=i.anisotropyStrength),i.anisotropyRotation!==void 0&&(e.anisotropyRotation=i.anisotropyRotation),i.anisotropyTexture!==void 0&&n.push(s.assignTexture(e,"anisotropyMap",i.anisotropyTexture)),Promise.all(n)}}class bt{constructor(A){this.parser=A,this.name=p.KHR_TEXTURE_BASISU}loadTexture(A){const e=this.parser,s=e.json,t=s.textures[A];if(!t.extensions||!t.extensions[this.name])return null;const n=t.extensions[this.name],i=e.options.ktx2Loader;if(!i){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(A,n.source,i)}}class Kt{constructor(A){this.parser=A,this.name=p.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(A){const e=this.name,s=this.parser,t=s.json,n=t.textures[A];if(!n.extensions||!n.extensions[e])return null;const i=n.extensions[e],r=t.images[i.source];let o=s.textureLoader;if(r.uri){const a=s.options.manager.getHandler(r.uri);a!==null&&(o=a)}return this.detectSupport().then(function(a){if(a)return s.loadTextureImage(A,i.source,o);if(t.extensionsRequired&&t.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return s.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){A(e.height===1)}})),this.isSupported}}class Ot{constructor(A){this.parser=A,this.name=p.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(A){const e=this.name,s=this.parser,t=s.json,n=t.textures[A];if(!n.extensions||!n.extensions[e])return null;const i=n.extensions[e],r=t.images[i.source];let o=s.textureLoader;if(r.uri){const a=s.options.manager.getHandler(r.uri);a!==null&&(o=a)}return this.detectSupport().then(function(a){if(a)return s.loadTextureImage(A,i.source,o);if(t.extensionsRequired&&t.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return s.loadTexture(A)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(A){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){A(e.height===1)}})),this.isSupported}}class _t{constructor(A){this.name=p.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const e=this.parser.json,s=e.bufferViews[A];if(s.extensions&&s.extensions[this.name]){const t=s.extensions[this.name],n=this.parser.getDependency("buffer",t.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then(function(r){const o=t.byteOffset||0,a=t.byteLength||0,g=t.count,I=t.byteStride,Q=new Uint8Array(r,o,a);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(g,I,Q,t.mode,t.filter).then(function(h){return h.buffer}):i.ready.then(function(){const h=new ArrayBuffer(g*I);return i.decodeGltfBuffer(new Uint8Array(h),g,I,Q,t.mode,t.filter),h})})}else return null}}class Pt{constructor(A){this.name=p.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const e=this.parser.json,s=e.nodes[A];if(!s.extensions||!s.extensions[this.name]||s.mesh===void 0)return null;const t=e.meshes[s.mesh];for(const a of t.primitives)if(a.mode!==K.TRIANGLES&&a.mode!==K.TRIANGLE_STRIP&&a.mode!==K.TRIANGLE_FAN&&a.mode!==void 0)return null;const i=s.extensions[this.name].attributes,r=[],o={};for(const a in i)r.push(this.parser.getDependency("accessor",i[a]).then(g=>(o[a]=g,o[a])));return r.length<1?null:(r.push(this.parser.createNodeMesh(A)),Promise.all(r).then(a=>{const g=a.pop(),I=g.isGroup?g.children:[g],Q=a[0].count,h=[];for(const d of I){const l=new B.Matrix4,c=new B.Vector3,u=new B.Quaternion,f=new B.Vector3(1,1,1),D=new B.InstancedMesh(d.geometry,d.material,Q);for(let F=0;F<Q;F++)o.TRANSLATION&&c.fromBufferAttribute(o.TRANSLATION,F),o.ROTATION&&u.fromBufferAttribute(o.ROTATION,F),o.SCALE&&f.fromBufferAttribute(o.SCALE,F),D.setMatrixAt(F,l.compose(c,u,f));for(const F in o)if(F==="_COLOR_0"){const m=o[F];D.instanceColor=new B.InstancedBufferAttribute(m.array,m.itemSize,m.normalized)}else F!=="TRANSLATION"&&F!=="ROTATION"&&F!=="SCALE"&&d.geometry.setAttribute(F,o[F]);B.Object3D.prototype.copy.call(D,d),this.parser.assignFinalMaterial(D),h.push(D)}return g.isGroup?(g.clear(),g.add(...h),g):h[0]}))}}const Ze="glTF",JA=12,Ke={JSON:1313821514,BIN:5130562};class Yt{constructor(A){this.name=p.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(A,0,JA),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(A.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==Ze)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const t=this.header.length-JA,n=new DataView(A,JA);let i=0;for(;i<t;){const r=n.getUint32(i,!0);i+=4;const o=n.getUint32(i,!0);if(i+=4,o===Ke.JSON){const a=new Uint8Array(A,JA+i,r);this.content=s.decode(a)}else if(o===Ke.BIN){const a=JA+i;this.body=A.slice(a,a+r)}i+=r}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class qt{constructor(A,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=p.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(A,e){const s=this.json,t=this.dracoLoader,n=A.extensions[this.name].bufferView,i=A.extensions[this.name].attributes,r={},o={},a={};for(const g in i){const I=Me[g]||g.toLowerCase();r[I]=i[g]}for(const g in A.attributes){const I=Me[g]||g.toLowerCase();if(i[g]!==void 0){const Q=s.accessors[A.attributes[g]],h=uA[Q.componentType];a[I]=h.name,o[I]=Q.normalized===!0}}return e.getDependency("bufferView",n).then(function(g){return new Promise(function(I,Q){t.decodeDracoFile(g,function(h){for(const d in h.attributes){const l=h.attributes[d],c=o[d];c!==void 0&&(l.normalized=c)}I(h)},r,a,B.LinearSRGBColorSpace,Q)})})}}class Xt{constructor(){this.name=p.KHR_TEXTURE_TRANSFORM}extendTexture(A,e){return(e.texCoord===void 0||e.texCoord===A.channel)&&e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(A=A.clone(),e.texCoord!==void 0&&(A.channel=e.texCoord),e.offset!==void 0&&A.offset.fromArray(e.offset),e.rotation!==void 0&&(A.rotation=e.rotation),e.scale!==void 0&&A.repeat.fromArray(e.scale),A.needsUpdate=!0),A}}class Vt{constructor(){this.name=p.KHR_MESH_QUANTIZATION}}class ze extends B.Interpolant{constructor(A,e,s,t){super(A,e,s,t)}copySampleValue_(A){const e=this.resultBuffer,s=this.sampleValues,t=this.valueSize,n=A*t*3+t;for(let i=0;i!==t;i++)e[i]=s[n+i];return e}interpolate_(A,e,s,t){const n=this.resultBuffer,i=this.sampleValues,r=this.valueSize,o=r*2,a=r*3,g=t-e,I=(s-e)/g,Q=I*I,h=Q*I,d=A*a,l=d-a,c=-2*h+3*Q,u=h-Q,f=1-c,D=u-Q+I;for(let F=0;F!==r;F++){const m=i[l+F+r],M=i[l+F+o]*g,w=i[d+F+r],_=i[d+F]*g;n[F]=f*m+D*M+c*w+u*_}return n}}const vt=new B.Quaternion;class Wt extends ze{interpolate_(A,e,s,t){const n=super.interpolate_(A,e,s,t);return vt.fromArray(n).normalize().toArray(n),n}}const K={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},uA={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Oe={9728:B.NearestFilter,9729:B.LinearFilter,9984:B.NearestMipmapNearestFilter,9985:B.LinearMipmapNearestFilter,9986:B.NearestMipmapLinearFilter,9987:B.LinearMipmapLinearFilter},_e={33071:B.ClampToEdgeWrapping,33648:B.MirroredRepeatWrapping,10497:B.RepeatWrapping},Ee={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Me={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},$={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},jt={CUBICSPLINE:void 0,LINEAR:B.InterpolateLinear,STEP:B.InterpolateDiscrete},ce={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function Zt(C){return C.DefaultMaterial===void 0&&(C.DefaultMaterial=new B.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:B.FrontSide})),C.DefaultMaterial}function gA(C,A,e){for(const s in e.extensions)C[s]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[s]=e.extensions[s])}function AA(C,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(C.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function zt(C,A,e){let s=!1,t=!1,n=!1;for(let a=0,g=A.length;a<g;a++){const I=A[a];if(I.POSITION!==void 0&&(s=!0),I.NORMAL!==void 0&&(t=!0),I.COLOR_0!==void 0&&(n=!0),s&&t&&n)break}if(!s&&!t&&!n)return Promise.resolve(C);const i=[],r=[],o=[];for(let a=0,g=A.length;a<g;a++){const I=A[a];if(s){const Q=I.POSITION!==void 0?e.getDependency("accessor",I.POSITION):C.attributes.position;i.push(Q)}if(t){const Q=I.NORMAL!==void 0?e.getDependency("accessor",I.NORMAL):C.attributes.normal;r.push(Q)}if(n){const Q=I.COLOR_0!==void 0?e.getDependency("accessor",I.COLOR_0):C.attributes.color;o.push(Q)}}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o)]).then(function(a){const g=a[0],I=a[1],Q=a[2];return s&&(C.morphAttributes.position=g),t&&(C.morphAttributes.normal=I),n&&(C.morphAttributes.color=Q),C.morphTargetsRelative=!0,C})}function $t(C,A){if(C.updateMorphTargets(),A.weights!==void 0)for(let e=0,s=A.weights.length;e<s;e++)C.morphTargetInfluences[e]=A.weights[e];if(A.extras&&Array.isArray(A.extras.targetNames)){const e=A.extras.targetNames;if(C.morphTargetInfluences.length===e.length){C.morphTargetDictionary={};for(let s=0,t=e.length;s<t;s++)C.morphTargetDictionary[e[s]]=s}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function As(C){let A;const e=C.extensions&&C.extensions[p.KHR_DRACO_MESH_COMPRESSION];if(e?A="draco:"+e.bufferView+":"+e.indices+":"+Qe(e.attributes):A=C.indices+":"+Qe(C.attributes)+":"+C.mode,C.targets!==void 0)for(let s=0,t=C.targets.length;s<t;s++)A+=":"+Qe(C.targets[s]);return A}function Qe(C){let A="";const e=Object.keys(C).sort();for(let s=0,t=e.length;s<t;s++)A+=e[s]+":"+C[e[s]]+";";return A}function we(C){switch(C){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function es(C){return C.search(/\.jpe?g($|\?)/i)>0||C.search(/^data\:image\/jpeg/)===0?"image/jpeg":C.search(/\.webp($|\?)/i)>0||C.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const ts=new B.Matrix4;class ss{constructor(A={},e={}){this.json=A,this.extensions={},this.plugins={},this.options=e,this.cache=new mt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let s=!1,t=!1,n=-1;typeof navigator!="undefined"&&(s=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,t=navigator.userAgent.indexOf("Firefox")>-1,n=t?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||s||t&&n<98?this.textureLoader=new B.TextureLoader(this.options.manager):this.textureLoader=new B.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new B.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,e){const s=this,t=this.json,n=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(i){return i._markDefs&&i._markDefs()}),Promise.all(this._invokeAll(function(i){return i.beforeRoot&&i.beforeRoot()})).then(function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(i){const r={scene:i[0][t.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:t.asset,parser:s,userData:{}};return gA(n,r,t),AA(r,t),Promise.all(s._invokeAll(function(o){return o.afterRoot&&o.afterRoot(r)})).then(function(){for(const o of r.scenes)o.updateMatrixWorld();A(r)})}).catch(e)}_markDefs(){const A=this.json.nodes||[],e=this.json.skins||[],s=this.json.meshes||[];for(let t=0,n=e.length;t<n;t++){const i=e[t].joints;for(let r=0,o=i.length;r<o;r++)A[i[r]].isBone=!0}for(let t=0,n=A.length;t<n;t++){const i=A[t];i.mesh!==void 0&&(this._addNodeRef(this.meshCache,i.mesh),i.skin!==void 0&&(s[i.mesh].isSkinnedMesh=!0)),i.camera!==void 0&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(A,e){e!==void 0&&(A.refs[e]===void 0&&(A.refs[e]=A.uses[e]=0),A.refs[e]++)}_getNodeRef(A,e,s){if(A.refs[e]<=1)return s;const t=s.clone(),n=(i,r)=>{const o=this.associations.get(i);o!=null&&this.associations.set(r,o);for(const[a,g]of i.children.entries())n(g,r.children[a])};return n(s,t),t.name+="_instance_"+A.uses[e]++,t}_invokeOne(A){const e=Object.values(this.plugins);e.push(this);for(let s=0;s<e.length;s++){const t=A(e[s]);if(t)return t}return null}_invokeAll(A){const e=Object.values(this.plugins);e.unshift(this);const s=[];for(let t=0;t<e.length;t++){const n=A(e[t]);n&&s.push(n)}return s}getDependency(A,e){const s=A+":"+e;let t=this.cache.get(s);if(!t){switch(A){case"scene":t=this.loadScene(e);break;case"node":t=this._invokeOne(function(n){return n.loadNode&&n.loadNode(e)});break;case"mesh":t=this._invokeOne(function(n){return n.loadMesh&&n.loadMesh(e)});break;case"accessor":t=this.loadAccessor(e);break;case"bufferView":t=this._invokeOne(function(n){return n.loadBufferView&&n.loadBufferView(e)});break;case"buffer":t=this.loadBuffer(e);break;case"material":t=this._invokeOne(function(n){return n.loadMaterial&&n.loadMaterial(e)});break;case"texture":t=this._invokeOne(function(n){return n.loadTexture&&n.loadTexture(e)});break;case"skin":t=this.loadSkin(e);break;case"animation":t=this._invokeOne(function(n){return n.loadAnimation&&n.loadAnimation(e)});break;case"camera":t=this.loadCamera(e);break;default:if(t=this._invokeOne(function(n){return n!=this&&n.getDependency&&n.getDependency(A,e)}),!t)throw new Error("Unknown type: "+A);break}this.cache.add(s,t)}return t}getDependencies(A){let e=this.cache.get(A);if(!e){const s=this,t=this.json[A+(A==="mesh"?"es":"s")]||[];e=Promise.all(t.map(function(n,i){return s.getDependency(A,i)})),this.cache.add(A,e)}return e}loadBuffer(A){const e=this.json.buffers[A],s=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&A===0)return Promise.resolve(this.extensions[p.KHR_BINARY_GLTF].body);const t=this.options;return new Promise(function(n,i){s.load(B.LoaderUtils.resolveURL(e.uri,t.path),n,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(A){const e=this.json.bufferViews[A];return this.getDependency("buffer",e.buffer).then(function(s){const t=e.byteLength||0,n=e.byteOffset||0;return s.slice(n,n+t)})}loadAccessor(A){const e=this,s=this.json,t=this.json.accessors[A];if(t.bufferView===void 0&&t.sparse===void 0){const i=Ee[t.type],r=uA[t.componentType],o=t.normalized===!0,a=new r(t.count*i);return Promise.resolve(new B.BufferAttribute(a,i,o))}const n=[];return t.bufferView!==void 0?n.push(this.getDependency("bufferView",t.bufferView)):n.push(null),t.sparse!==void 0&&(n.push(this.getDependency("bufferView",t.sparse.indices.bufferView)),n.push(this.getDependency("bufferView",t.sparse.values.bufferView))),Promise.all(n).then(function(i){const r=i[0],o=Ee[t.type],a=uA[t.componentType],g=a.BYTES_PER_ELEMENT,I=g*o,Q=t.byteOffset||0,h=t.bufferView!==void 0?s.bufferViews[t.bufferView].byteStride:void 0,d=t.normalized===!0;let l,c;if(h&&h!==I){const u=Math.floor(Q/h),f="InterleavedBuffer:"+t.bufferView+":"+t.componentType+":"+u+":"+t.count;let D=e.cache.get(f);D||(l=new a(r,u*h,t.count*h/g),D=new B.InterleavedBuffer(l,h/g),e.cache.add(f,D)),c=new B.InterleavedBufferAttribute(D,o,Q%h/g,d)}else r===null?l=new a(t.count*o):l=new a(r,Q,t.count*o),c=new B.BufferAttribute(l,o,d);if(t.sparse!==void 0){const u=Ee.SCALAR,f=uA[t.sparse.indices.componentType],D=t.sparse.indices.byteOffset||0,F=t.sparse.values.byteOffset||0,m=new f(i[1],D,t.sparse.count*u),M=new a(i[2],F,t.sparse.count*o);r!==null&&(c=new B.BufferAttribute(c.array.slice(),c.itemSize,c.normalized));for(let w=0,_=m.length;w<_;w++){const U=m[w];if(c.setX(U,M[w*o]),o>=2&&c.setY(U,M[w*o+1]),o>=3&&c.setZ(U,M[w*o+2]),o>=4&&c.setW(U,M[w*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return c})}loadTexture(A){const e=this.json,s=this.options,n=e.textures[A].source,i=e.images[n];let r=this.textureLoader;if(i.uri){const o=s.manager.getHandler(i.uri);o!==null&&(r=o)}return this.loadTextureImage(A,n,r)}loadTextureImage(A,e,s){const t=this,n=this.json,i=n.textures[A],r=n.images[e],o=(r.uri||r.bufferView)+":"+i.sampler;if(this.textureCache[o])return this.textureCache[o];const a=this.loadImageSource(e,s).then(function(g){g.flipY=!1,g.name=i.name||r.name||"",g.name===""&&typeof r.uri=="string"&&r.uri.startsWith("data:image/")===!1&&(g.name=r.uri);const Q=(n.samplers||{})[i.sampler]||{};return g.magFilter=Oe[Q.magFilter]||B.LinearFilter,g.minFilter=Oe[Q.minFilter]||B.LinearMipmapLinearFilter,g.wrapS=_e[Q.wrapS]||B.RepeatWrapping,g.wrapT=_e[Q.wrapT]||B.RepeatWrapping,t.associations.set(g,{textures:A}),g}).catch(function(){return null});return this.textureCache[o]=a,a}loadImageSource(A,e){const s=this,t=this.json,n=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(I=>I.clone());const i=t.images[A],r=self.URL||self.webkitURL;let o=i.uri||"",a=!1;if(i.bufferView!==void 0)o=s.getDependency("bufferView",i.bufferView).then(function(I){a=!0;const Q=new Blob([I],{type:i.mimeType});return o=r.createObjectURL(Q),o});else if(i.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const g=Promise.resolve(o).then(function(I){return new Promise(function(Q,h){let d=Q;e.isImageBitmapLoader===!0&&(d=function(l){const c=new B.Texture(l);c.needsUpdate=!0,Q(c)}),e.load(B.LoaderUtils.resolveURL(I,n.path),d,void 0,h)})}).then(function(I){return a===!0&&r.revokeObjectURL(o),I.userData.mimeType=i.mimeType||es(i.uri),I}).catch(function(I){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),I});return this.sourceCache[A]=g,g}assignTexture(A,e,s,t){const n=this;return this.getDependency("texture",s.index).then(function(i){if(!i)return null;if(s.texCoord!==void 0&&s.texCoord>0&&(i=i.clone(),i.channel=s.texCoord),n.extensions[p.KHR_TEXTURE_TRANSFORM]){const r=s.extensions!==void 0?s.extensions[p.KHR_TEXTURE_TRANSFORM]:void 0;if(r){const o=n.associations.get(i);i=n.extensions[p.KHR_TEXTURE_TRANSFORM].extendTexture(i,r),n.associations.set(i,o)}}return t!==void 0&&(i.colorSpace=t),A[e]=i,i})}assignFinalMaterial(A){const e=A.geometry;let s=A.material;const t=e.attributes.tangent===void 0,n=e.attributes.color!==void 0,i=e.attributes.normal===void 0;if(A.isPoints){const r="PointsMaterial:"+s.uuid;let o=this.cache.get(r);o||(o=new B.PointsMaterial,B.Material.prototype.copy.call(o,s),o.color.copy(s.color),o.map=s.map,o.sizeAttenuation=!1,this.cache.add(r,o)),s=o}else if(A.isLine){const r="LineBasicMaterial:"+s.uuid;let o=this.cache.get(r);o||(o=new B.LineBasicMaterial,B.Material.prototype.copy.call(o,s),o.color.copy(s.color),o.map=s.map,this.cache.add(r,o)),s=o}if(t||n||i){let r="ClonedMaterial:"+s.uuid+":";t&&(r+="derivative-tangents:"),n&&(r+="vertex-colors:"),i&&(r+="flat-shading:");let o=this.cache.get(r);o||(o=s.clone(),n&&(o.vertexColors=!0),i&&(o.flatShading=!0),t&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),this.cache.add(r,o),this.associations.set(o,this.associations.get(s))),s=o}A.material=s}getMaterialType(){return B.MeshStandardMaterial}loadMaterial(A){const e=this,s=this.json,t=this.extensions,n=s.materials[A];let i;const r={},o=n.extensions||{},a=[];if(o[p.KHR_MATERIALS_UNLIT]){const I=t[p.KHR_MATERIALS_UNLIT];i=I.getMaterialType(),a.push(I.extendParams(r,n,e))}else{const I=n.pbrMetallicRoughness||{};if(r.color=new B.Color(1,1,1),r.opacity=1,Array.isArray(I.baseColorFactor)){const Q=I.baseColorFactor;r.color.setRGB(Q[0],Q[1],Q[2],B.LinearSRGBColorSpace),r.opacity=Q[3]}I.baseColorTexture!==void 0&&a.push(e.assignTexture(r,"map",I.baseColorTexture,B.SRGBColorSpace)),r.metalness=I.metallicFactor!==void 0?I.metallicFactor:1,r.roughness=I.roughnessFactor!==void 0?I.roughnessFactor:1,I.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(r,"metalnessMap",I.metallicRoughnessTexture)),a.push(e.assignTexture(r,"roughnessMap",I.metallicRoughnessTexture))),i=this._invokeOne(function(Q){return Q.getMaterialType&&Q.getMaterialType(A)}),a.push(Promise.all(this._invokeAll(function(Q){return Q.extendMaterialParams&&Q.extendMaterialParams(A,r)})))}n.doubleSided===!0&&(r.side=B.DoubleSide);const g=n.alphaMode||ce.OPAQUE;if(g===ce.BLEND?(r.transparent=!0,r.depthWrite=!1):(r.transparent=!1,g===ce.MASK&&(r.alphaTest=n.alphaCutoff!==void 0?n.alphaCutoff:.5)),n.normalTexture!==void 0&&i!==B.MeshBasicMaterial&&(a.push(e.assignTexture(r,"normalMap",n.normalTexture)),r.normalScale=new B.Vector2(1,1),n.normalTexture.scale!==void 0)){const I=n.normalTexture.scale;r.normalScale.set(I,I)}if(n.occlusionTexture!==void 0&&i!==B.MeshBasicMaterial&&(a.push(e.assignTexture(r,"aoMap",n.occlusionTexture)),n.occlusionTexture.strength!==void 0&&(r.aoMapIntensity=n.occlusionTexture.strength)),n.emissiveFactor!==void 0&&i!==B.MeshBasicMaterial){const I=n.emissiveFactor;r.emissive=new B.Color().setRGB(I[0],I[1],I[2],B.LinearSRGBColorSpace)}return n.emissiveTexture!==void 0&&i!==B.MeshBasicMaterial&&a.push(e.assignTexture(r,"emissiveMap",n.emissiveTexture,B.SRGBColorSpace)),Promise.all(a).then(function(){const I=new i(r);return n.name&&(I.name=n.name),AA(I,n),e.associations.set(I,{materials:A}),n.extensions&&gA(t,I,n),I})}createUniqueName(A){const e=B.PropertyBinding.sanitizeNodeName(A||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(A){const e=this,s=this.extensions,t=this.primitiveCache;function n(r){return s[p.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(r,e).then(function(o){return Pe(o,r,e)})}const i=[];for(let r=0,o=A.length;r<o;r++){const a=A[r],g=As(a),I=t[g];if(I)i.push(I.promise);else{let Q;a.extensions&&a.extensions[p.KHR_DRACO_MESH_COMPRESSION]?Q=n(a):Q=Pe(new B.BufferGeometry,a,e),t[g]={primitive:a,promise:Q},i.push(Q)}}return Promise.all(i)}loadMesh(A){const e=this,s=this.json,t=this.extensions,n=s.meshes[A],i=n.primitives,r=[];for(let o=0,a=i.length;o<a;o++){const g=i[o].material===void 0?Zt(this.cache):this.getDependency("material",i[o].material);r.push(g)}return r.push(e.loadGeometries(i)),Promise.all(r).then(function(o){const a=o.slice(0,o.length-1),g=o[o.length-1],I=[];for(let h=0,d=g.length;h<d;h++){const l=g[h],c=i[h];let u;const f=a[h];if(c.mode===K.TRIANGLES||c.mode===K.TRIANGLE_STRIP||c.mode===K.TRIANGLE_FAN||c.mode===void 0)u=n.isSkinnedMesh===!0?new B.SkinnedMesh(l,f):new B.Mesh(l,f),u.isSkinnedMesh===!0&&u.normalizeSkinWeights(),c.mode===K.TRIANGLE_STRIP?u.geometry=be(u.geometry,B.TriangleStripDrawMode):c.mode===K.TRIANGLE_FAN&&(u.geometry=be(u.geometry,B.TriangleFanDrawMode));else if(c.mode===K.LINES)u=new B.LineSegments(l,f);else if(c.mode===K.LINE_STRIP)u=new B.Line(l,f);else if(c.mode===K.LINE_LOOP)u=new B.LineLoop(l,f);else if(c.mode===K.POINTS)u=new B.Points(l,f);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+c.mode);Object.keys(u.geometry.morphAttributes).length>0&&$t(u,n),u.name=e.createUniqueName(n.name||"mesh_"+A),AA(u,n),c.extensions&&gA(t,u,c),e.assignFinalMaterial(u),I.push(u)}for(let h=0,d=I.length;h<d;h++)e.associations.set(I[h],{meshes:A,primitives:h});if(I.length===1)return n.extensions&&gA(t,I[0],n),I[0];const Q=new B.Group;n.extensions&&gA(t,Q,n),e.associations.set(Q,{meshes:A});for(let h=0,d=I.length;h<d;h++)Q.add(I[h]);return Q})}loadCamera(A){let e;const s=this.json.cameras[A],t=s[s.type];if(!t){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return s.type==="perspective"?e=new B.PerspectiveCamera(B.MathUtils.radToDeg(t.yfov),t.aspectRatio||1,t.znear||1,t.zfar||2e6):s.type==="orthographic"&&(e=new B.OrthographicCamera(-t.xmag,t.xmag,t.ymag,-t.ymag,t.znear,t.zfar)),s.name&&(e.name=this.createUniqueName(s.name)),AA(e,s),Promise.resolve(e)}loadSkin(A){const e=this.json.skins[A],s=[];for(let t=0,n=e.joints.length;t<n;t++)s.push(this._loadNodeShallow(e.joints[t]));return e.inverseBindMatrices!==void 0?s.push(this.getDependency("accessor",e.inverseBindMatrices)):s.push(null),Promise.all(s).then(function(t){const n=t.pop(),i=t,r=[],o=[];for(let a=0,g=i.length;a<g;a++){const I=i[a];if(I){r.push(I);const Q=new B.Matrix4;n!==null&&Q.fromArray(n.array,a*16),o.push(Q)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',e.joints[a])}return new B.Skeleton(r,o)})}loadAnimation(A){const e=this.json,s=this,t=e.animations[A],n=t.name?t.name:"animation_"+A,i=[],r=[],o=[],a=[],g=[];for(let I=0,Q=t.channels.length;I<Q;I++){const h=t.channels[I],d=t.samplers[h.sampler],l=h.target,c=l.node,u=t.parameters!==void 0?t.parameters[d.input]:d.input,f=t.parameters!==void 0?t.parameters[d.output]:d.output;l.node!==void 0&&(i.push(this.getDependency("node",c)),r.push(this.getDependency("accessor",u)),o.push(this.getDependency("accessor",f)),a.push(d),g.push(l))}return Promise.all([Promise.all(i),Promise.all(r),Promise.all(o),Promise.all(a),Promise.all(g)]).then(function(I){const Q=I[0],h=I[1],d=I[2],l=I[3],c=I[4],u=[];for(let f=0,D=Q.length;f<D;f++){const F=Q[f],m=h[f],M=d[f],w=l[f],_=c[f];if(F===void 0)continue;F.updateMatrix&&F.updateMatrix();const U=s._createAnimationTracks(F,m,M,w,_);if(U)for(let X=0;X<U.length;X++)u.push(U[X])}return new B.AnimationClip(n,void 0,u)})}createNodeMesh(A){const e=this.json,s=this,t=e.nodes[A];return t.mesh===void 0?null:s.getDependency("mesh",t.mesh).then(function(n){const i=s._getNodeRef(s.meshCache,t.mesh,n);return t.weights!==void 0&&i.traverse(function(r){if(r.isMesh)for(let o=0,a=t.weights.length;o<a;o++)r.morphTargetInfluences[o]=t.weights[o]}),i})}loadNode(A){const e=this.json,s=this,t=e.nodes[A],n=s._loadNodeShallow(A),i=[],r=t.children||[];for(let a=0,g=r.length;a<g;a++)i.push(s.getDependency("node",r[a]));const o=t.skin===void 0?Promise.resolve(null):s.getDependency("skin",t.skin);return Promise.all([n,Promise.all(i),o]).then(function(a){const g=a[0],I=a[1],Q=a[2];Q!==null&&g.traverse(function(h){h.isSkinnedMesh&&h.bind(Q,ts)});for(let h=0,d=I.length;h<d;h++)g.add(I[h]);return g})}_loadNodeShallow(A){const e=this.json,s=this.extensions,t=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const n=e.nodes[A],i=n.name?t.createUniqueName(n.name):"",r=[],o=t._invokeOne(function(a){return a.createNodeMesh&&a.createNodeMesh(A)});return o&&r.push(o),n.camera!==void 0&&r.push(t.getDependency("camera",n.camera).then(function(a){return t._getNodeRef(t.cameraCache,n.camera,a)})),t._invokeAll(function(a){return a.createNodeAttachment&&a.createNodeAttachment(A)}).forEach(function(a){r.push(a)}),this.nodeCache[A]=Promise.all(r).then(function(a){let g;if(n.isBone===!0?g=new B.Bone:a.length>1?g=new B.Group:a.length===1?g=a[0]:g=new B.Object3D,g!==a[0])for(let I=0,Q=a.length;I<Q;I++)g.add(a[I]);if(n.name&&(g.userData.name=n.name,g.name=i),AA(g,n),n.extensions&&gA(s,g,n),n.matrix!==void 0){const I=new B.Matrix4;I.fromArray(n.matrix),g.applyMatrix4(I)}else n.translation!==void 0&&g.position.fromArray(n.translation),n.rotation!==void 0&&g.quaternion.fromArray(n.rotation),n.scale!==void 0&&g.scale.fromArray(n.scale);return t.associations.has(g)||t.associations.set(g,{}),t.associations.get(g).nodes=A,g}),this.nodeCache[A]}loadScene(A){const e=this.extensions,s=this.json.scenes[A],t=this,n=new B.Group;s.name&&(n.name=t.createUniqueName(s.name)),AA(n,s),s.extensions&&gA(e,n,s);const i=s.nodes||[],r=[];for(let o=0,a=i.length;o<a;o++)r.push(t.getDependency("node",i[o]));return Promise.all(r).then(function(o){for(let g=0,I=o.length;g<I;g++)n.add(o[g]);const a=g=>{const I=new Map;for(const[Q,h]of t.associations)(Q instanceof B.Material||Q instanceof B.Texture)&&I.set(Q,h);return g.traverse(Q=>{const h=t.associations.get(Q);h!=null&&I.set(Q,h)}),I};return t.associations=a(n),n})}_createAnimationTracks(A,e,s,t,n){const i=[],r=A.name?A.name:A.uuid,o=[];$[n.path]===$.weights?A.traverse(function(Q){Q.morphTargetInfluences&&o.push(Q.name?Q.name:Q.uuid)}):o.push(r);let a;switch($[n.path]){case $.weights:a=B.NumberKeyframeTrack;break;case $.rotation:a=B.QuaternionKeyframeTrack;break;case $.position:case $.scale:a=B.VectorKeyframeTrack;break;default:switch(s.itemSize){case 1:a=B.NumberKeyframeTrack;break;case 2:case 3:default:a=B.VectorKeyframeTrack;break}break}const g=t.interpolation!==void 0?jt[t.interpolation]:B.InterpolateLinear,I=this._getArrayFromAccessor(s);for(let Q=0,h=o.length;Q<h;Q++){const d=new a(o[Q]+"."+$[n.path],e.array,I,g);t.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(d),i.push(d)}return i}_getArrayFromAccessor(A){let e=A.array;if(A.normalized){const s=we(e.constructor),t=new Float32Array(e.length);for(let n=0,i=e.length;n<i;n++)t[n]=e[n]*s;e=t}return e}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(s){const t=this instanceof B.QuaternionKeyframeTrack?Wt:ze;return new t(this.times,this.values,this.getValueSize()/3,s)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function ns(C,A,e){const s=A.attributes,t=new B.Box3;if(s.POSITION!==void 0){const r=e.json.accessors[s.POSITION],o=r.min,a=r.max;if(o!==void 0&&a!==void 0){if(t.set(new B.Vector3(o[0],o[1],o[2]),new B.Vector3(a[0],a[1],a[2])),r.normalized){const g=we(uA[r.componentType]);t.min.multiplyScalar(g),t.max.multiplyScalar(g)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;const n=A.targets;if(n!==void 0){const r=new B.Vector3,o=new B.Vector3;for(let a=0,g=n.length;a<g;a++){const I=n[a];if(I.POSITION!==void 0){const Q=e.json.accessors[I.POSITION],h=Q.min,d=Q.max;if(h!==void 0&&d!==void 0){if(o.setX(Math.max(Math.abs(h[0]),Math.abs(d[0]))),o.setY(Math.max(Math.abs(h[1]),Math.abs(d[1]))),o.setZ(Math.max(Math.abs(h[2]),Math.abs(d[2]))),Q.normalized){const l=we(uA[Q.componentType]);o.multiplyScalar(l)}r.max(o)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}t.expandByVector(r)}C.boundingBox=t;const i=new B.Sphere;t.getCenter(i.center),i.radius=t.min.distanceTo(t.max)/2,C.boundingSphere=i}function Pe(C,A,e){const s=A.attributes,t=[];function n(i,r){return e.getDependency("accessor",i).then(function(o){C.setAttribute(r,o)})}for(const i in s){const r=Me[i]||i.toLowerCase();r in C.attributes||t.push(n(s[i],r))}if(A.indices!==void 0&&!C.index){const i=e.getDependency("accessor",A.indices).then(function(r){C.setIndex(r)});t.push(i)}return B.ColorManagement.workingColorSpace!==B.LinearSRGBColorSpace&&"COLOR_0"in s&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${B.ColorManagement.workingColorSpace}" not supported.`),AA(C,A),ns(C,A,e),Promise.all(t).then(function(){return A.targets!==void 0?zt(C,A.targets,e):C})}const he=new WeakMap;class is extends B.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,e,s,t){const n=new B.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),n.load(A,i=>{this.parse(i,e,t)},s,t)}parse(A,e,s=()=>{}){this.decodeDracoFile(A,e,null,null,B.SRGBColorSpace).catch(s)}decodeDracoFile(A,e,s,t,n=B.LinearSRGBColorSpace,i=()=>{}){const r={attributeIDs:s||this.defaultAttributeIDs,attributeTypes:t||this.defaultAttributeTypes,useUniqueIDs:!!s,vertexColorSpace:n};return this.decodeGeometry(A,r).then(e).catch(i)}decodeGeometry(A,e){const s=JSON.stringify(e);if(he.has(A)){const o=he.get(A);if(o.key===s)return o.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let t;const n=this.workerNextTaskID++,i=A.byteLength,r=this._getWorker(n,i).then(o=>(t=o,new Promise((a,g)=>{t._callbacks[n]={resolve:a,reject:g},t.postMessage({type:"decode",id:n,taskConfig:e,buffer:A},[A])}))).then(o=>this._createGeometry(o.geometry));return r.catch(()=>!0).then(()=>{t&&n&&this._releaseTask(t,n)}),he.set(A,{key:s,promise:r}),r}_createGeometry(A){const e=new B.BufferGeometry;A.index&&e.setIndex(new B.BufferAttribute(A.index.array,1));for(let s=0;s<A.attributes.length;s++){const t=A.attributes[s],n=t.name,i=t.array,r=t.itemSize,o=new B.BufferAttribute(i,r);n==="color"&&(this._assignVertexColorSpace(o,t.vertexColorSpace),o.normalized=!(i instanceof Float32Array)),e.setAttribute(n,o)}return e}_assignVertexColorSpace(A,e){if(e!==B.SRGBColorSpace)return;const s=new B.Color;for(let t=0,n=A.count;t<n;t++)s.fromBufferAttribute(A,t).convertSRGBToLinear(),A.setXYZ(t,s.r,s.g,s.b)}_loadLibrary(A,e){const s=new B.FileLoader(this.manager);return s.setPath(this.decoderPath),s.setResponseType(e),s.setWithCredentials(this.withCredentials),new Promise((t,n)=>{s.load(A,t,void 0,n)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return A?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(s=>{const t=s[0];A||(this.decoderConfig.wasmBinary=s[1]);const n=os.toString(),i=["/* draco decoder */",t,"","/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join(`
|
|
9
9
|
`);this.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}_getWorker(A,e){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const t=new Worker(this.workerSourceURL);t._callbacks={},t._taskCosts={},t._taskLoad=0,t.postMessage({type:"init",decoderConfig:this.decoderConfig}),t.onmessage=function(n){const i=n.data;switch(i.type){case"decode":t._callbacks[i.id].resolve(i);break;case"error":t._callbacks[i.id].reject(i);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+i.type+'"')}},this.workerPool.push(t)}else this.workerPool.sort(function(t,n){return t._taskLoad>n._taskLoad?-1:1});const s=this.workerPool[this.workerPool.length-1];return s._taskCosts[A]=e,s._taskLoad+=e,s})}_releaseTask(A,e){A._taskLoad-=A._taskCosts[e],delete A._callbacks[e],delete A._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function os(){let C,A;onmessage=function(i){const r=i.data;switch(r.type){case"init":C=r.decoderConfig,A=new Promise(function(g){C.onModuleLoaded=function(I){g({draco:I})},DracoDecoderModule(C)});break;case"decode":const o=r.buffer,a=r.taskConfig;A.then(g=>{const I=g.draco,Q=new I.Decoder;try{const h=e(I,Q,new Int8Array(o),a),d=h.attributes.map(l=>l.array.buffer);h.index&&d.push(h.index.array.buffer),self.postMessage({type:"decode",id:r.id,geometry:h},d)}catch(h){console.error(h),self.postMessage({type:"error",id:r.id,error:h.message})}finally{I.destroy(Q)}});break}};function e(i,r,o,a){const g=a.attributeIDs,I=a.attributeTypes;let Q,h;const d=r.GetEncodedGeometryType(o);if(d===i.TRIANGULAR_MESH)Q=new i.Mesh,h=r.DecodeArrayToMesh(o,o.byteLength,Q);else if(d===i.POINT_CLOUD)Q=new i.PointCloud,h=r.DecodeArrayToPointCloud(o,o.byteLength,Q);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!h.ok()||Q.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+h.error_msg());const l={index:null,attributes:[]};for(const c in g){const u=self[I[c]];let f,D;if(a.useUniqueIDs)D=g[c],f=r.GetAttributeByUniqueId(Q,D);else{if(D=r.GetAttributeId(Q,i[g[c]]),D===-1)continue;f=r.GetAttribute(Q,D)}const F=t(i,r,Q,c,u,f);c==="color"&&(F.vertexColorSpace=a.vertexColorSpace),l.attributes.push(F)}return d===i.TRIANGULAR_MESH&&(l.index=s(i,r,Q)),i.destroy(Q),l}function s(i,r,o){const g=o.num_faces()*3,I=g*4,Q=i._malloc(I);r.GetTrianglesUInt32Array(o,I,Q);const h=new Uint32Array(i.HEAPF32.buffer,Q,g).slice();return i._free(Q),{array:h,itemSize:1}}function t(i,r,o,a,g,I){const Q=I.num_components(),d=o.num_points()*Q,l=d*g.BYTES_PER_ELEMENT,c=n(i,g),u=i._malloc(l);r.GetAttributeDataArrayForAllPoints(o,I,c,l,u);const f=new g(i.HEAPF32.buffer,u,d).slice();return i._free(u),{name:a,array:f,itemSize:Q}}function n(i,r){switch(r){case Float32Array:return i.DT_FLOAT32;case Int8Array:return i.DT_INT8;case Int16Array:return i.DT_INT16;case Int32Array:return i.DT_INT32;case Uint8Array:return i.DT_UINT8;case Uint16Array:return i.DT_UINT16;case Uint32Array:return i.DT_UINT32}}}class rs{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(A){if(!this.workers[A]){const e=this.workerCreator();e.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=e}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,e){const s=this.workersResolve[A];if(s&&s(e),this.queue.length){const{resolve:t,msg:n,transfer:i}=this.queue.shift();this.workersResolve[A]=t,this.workers[A].postMessage(n,i)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,e){return new Promise(s=>{const t=this._getIdleWorker();t!==-1?(this._initWorker(t),this.workerStatus|=1<<t,this.workersResolve[t]=s,this.workers[t].postMessage(A,e)):this.queue.push({resolve:s,msg:A,transfer:e})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const Bs=0,Ye=2,as=1,qe=2,Cs=0,Is=1,gs=10,Es=0,$e=9,At=15,et=16,tt=22,st=37,nt=43,it=76,ot=83,rt=97,Bt=100,at=103,Ct=109,It=165,gt=166;class cs{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class UA{constructor(A,e,s,t){this._dataView=new DataView(A.buffer,A.byteOffset+e,s),this._littleEndian=t,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_skip(A){return this._offset+=A,this}_scan(A,e=0){const s=this._offset;let t=0;for(;this._dataView.getUint8(this._offset)!==e&&t<A;)t++,this._offset++;return t<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+s,t)}}const J=[171,75,84,88,32,50,48,187,13,10,26,10];function Xe(C){return typeof TextDecoder!="undefined"?new TextDecoder().decode(C):Buffer.from(C).toString("utf8")}function Qs(C){const A=new Uint8Array(C.buffer,C.byteOffset,J.length);if(A[0]!==J[0]||A[1]!==J[1]||A[2]!==J[2]||A[3]!==J[3]||A[4]!==J[4]||A[5]!==J[5]||A[6]!==J[6]||A[7]!==J[7]||A[8]!==J[8]||A[9]!==J[9]||A[10]!==J[10]||A[11]!==J[11])throw new Error("Missing KTX 2.0 identifier.");const e=new cs,s=17*Uint32Array.BYTES_PER_ELEMENT,t=new UA(C,J.length,s,!0);e.vkFormat=t._nextUint32(),e.typeSize=t._nextUint32(),e.pixelWidth=t._nextUint32(),e.pixelHeight=t._nextUint32(),e.pixelDepth=t._nextUint32(),e.layerCount=t._nextUint32(),e.faceCount=t._nextUint32();const n=t._nextUint32();e.supercompressionScheme=t._nextUint32();const i=t._nextUint32(),r=t._nextUint32(),o=t._nextUint32(),a=t._nextUint32(),g=t._nextUint64(),I=t._nextUint64(),Q=new UA(C,J.length+s,3*n*8,!0);for(let H=0;H<n;H++)e.levels.push({levelData:new Uint8Array(C.buffer,C.byteOffset+Q._nextUint64(),Q._nextUint64()),uncompressedByteLength:Q._nextUint64()});const h=new UA(C,i,r,!0),d={vendorId:h._skip(4)._nextUint16(),descriptorType:h._nextUint16(),versionNumber:h._nextUint16(),descriptorBlockSize:h._nextUint16(),colorModel:h._nextUint8(),colorPrimaries:h._nextUint8(),transferFunction:h._nextUint8(),flags:h._nextUint8(),texelBlockDimension:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],bytesPlane:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],samples:[]},l=(d.descriptorBlockSize/4-6)/4;for(let H=0;H<l;H++){const N={bitOffset:h._nextUint16(),bitLength:h._nextUint8(),channelType:h._nextUint8(),samplePosition:[h._nextUint8(),h._nextUint8(),h._nextUint8(),h._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&N.channelType?(N.sampleLower=h._nextInt32(),N.sampleUpper=h._nextInt32()):(N.sampleLower=h._nextUint32(),N.sampleUpper=h._nextUint32()),d.samples[H]=N}e.dataFormatDescriptor.length=0,e.dataFormatDescriptor.push(d);const c=new UA(C,o,a,!0);for(;c._offset<a;){const H=c._nextUint32(),N=c._scan(H),HA=Xe(N),V=c._scan(H-N.byteLength);e.keyValue[HA]=HA.match(/^ktx/i)?Xe(V):V,c._offset%4&&c._skip(4-c._offset%4)}if(I<=0)return e;const u=new UA(C,g,I,!0),f=u._nextUint16(),D=u._nextUint16(),F=u._nextUint32(),m=u._nextUint32(),M=u._nextUint32(),w=u._nextUint32(),_=[];for(let H=0;H<n;H++)_.push({imageFlags:u._nextUint32(),rgbSliceByteOffset:u._nextUint32(),rgbSliceByteLength:u._nextUint32(),alphaSliceByteOffset:u._nextUint32(),alphaSliceByteLength:u._nextUint32()});const U=g+u._offset,X=U+F,TA=X+m,se=TA+M,CA=new Uint8Array(C.buffer,C.byteOffset+U,F),ne=new Uint8Array(C.buffer,C.byteOffset+X,m),z=new Uint8Array(C.buffer,C.byteOffset+TA,M),ie=new Uint8Array(C.buffer,C.byteOffset+se,w);return e.globalData={endpointCount:f,selectorCount:D,imageDescs:_,endpointsData:CA,selectorsData:ne,tablesData:z,extendedData:ie},e}let le,v,Se;const de={env:{emscripten_notify_memory_growth:function(C){Se=new Uint8Array(v.exports.memory.buffer)}}};class hs{init(){return le||(le=typeof fetch!="undefined"?fetch("data:application/wasm;base64,"+Ve).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,de)).then(this._init):WebAssembly.instantiate(Buffer.from(Ve,"base64"),de).then(this._init),le)}_init(A){v=A.instance,de.env.emscripten_notify_memory_growth(0)}decode(A,e=0){if(!v)throw new Error("ZSTDDecoder: Await .init() before decoding.");const s=A.byteLength,t=v.exports.malloc(s);Se.set(A,t),e=e||Number(v.exports.ZSTD_findDecompressedSize(t,s));const n=v.exports.malloc(e),i=v.exports.ZSTD_decompress(n,e,t,s),r=Se.slice(n,n+i);return v.exports.free(t),v.exports.free(n),r}}const Ve="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",ue=new WeakMap;let fe=0,De;class q extends B.Loader{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new rs,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER!="undefined"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}detectSupportAsync(A){return dA(this,null,function*(){return this.workerConfig={astcSupported:yield A.hasFeatureAsync("texture-compression-astc"),etc1Supported:yield A.hasFeatureAsync("texture-compression-etc1"),etc2Supported:yield A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:yield A.hasFeatureAsync("texture-compression-bc"),bptcSupported:yield A.hasFeatureAsync("texture-compression-bptc"),pvrtcSupported:yield A.hasFeatureAsync("texture-compression-pvrtc")},this})}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),etc1Supported:A.hasFeature("texture-compression-etc1"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bptc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:(this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const A=new B.FileLoader(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const e=A.loadAsync("basis_transcoder.js"),s=new B.FileLoader(this.manager);s.setPath(this.transcoderPath),s.setResponseType("arraybuffer"),s.setWithCredentials(this.withCredentials);const t=s.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([e,t]).then(([n,i])=>{const r=q.BasisWorker.toString(),o=["/* constants */","let _EngineFormat = "+JSON.stringify(q.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(q.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(q.BasisFormat),"/* basis_transcoder.js */",n,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join(`
|
|
10
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([o])),this.transcoderBinary=i,this.workerPool.setWorkerCreator(()=>{const a=new Worker(this.workerSourceURL),g=this.transcoderBinary.slice(0);return a.postMessage({type:"init",config:this.workerConfig,transcoderBinary:g},[g]),a})}),fe>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),fe++}return this.transcoderPending}load(A,e,s,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const n=new B.FileLoader(this.manager);n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials),n.load(A,i=>{if(ue.has(i))return ue.get(i).promise.then(e).catch(t);this._createTexture(i).then(r=>e?e(r):null).catch(t)},s,t)}_createTextureFrom(A,e){const{faces:s,width:t,height:n,format:i,type:r,error:o,dfdFlags:a}=A;if(r==="error")return Promise.reject(o);let g;if(e.faceCount===6)g=new B.CompressedCubeTexture(s,i,B.UnsignedByteType);else{const I=s[0].mipmaps;g=e.layerCount>1?new B.CompressedArrayTexture(I,t,n,e.layerCount,i,B.UnsignedByteType):new B.CompressedTexture(I,t,n,i,B.UnsignedByteType)}return g.minFilter=s[0].mipmaps.length===1?B.LinearFilter:B.LinearMipmapLinearFilter,g.magFilter=B.LinearFilter,g.generateMipmaps=!1,g.needsUpdate=!0,g.colorSpace=Et(e),g.premultiplyAlpha=!!(a&as),g}_createTexture(s){return dA(this,arguments,function*(A,e={}){const t=Qs(new Uint8Array(A));if(t.vkFormat!==Es)return ds(t);const n=e,i=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:n},[A])).then(r=>this._createTextureFrom(r.data,t));return ue.set(A,{promise:i}),i})}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),fe--,this}}q.BasisFormat={ETC1S:0,UASTC_4x4:1};q.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16};q.EngineFormat={RGBAFormat:B.RGBAFormat,RGBA_ASTC_4x4_Format:B.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:B.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:B.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:B.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:B.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:B.RGB_ETC1_Format,RGB_ETC2_Format:B.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:B.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:B.RGB_S3TC_DXT1_Format};q.BasisWorker=function(){let C,A,e;const s=_EngineFormat,t=_TranscoderFormat,n=_BasisFormat;self.addEventListener("message",function(d){const l=d.data;switch(l.type){case"init":C=l.config,i(l.transcoderBinary);break;case"transcode":A.then(()=>{try{const{faces:c,buffers:u,width:f,height:D,hasAlpha:F,format:m,dfdFlags:M}=r(l.buffer);self.postMessage({type:"transcode",id:l.id,faces:c,width:f,height:D,hasAlpha:F,format:m,dfdFlags:M},u)}catch(c){console.error(c),self.postMessage({type:"error",id:l.id,error:c.message})}});break}});function i(d){A=new Promise(l=>{e={wasmBinary:d,onRuntimeInitialized:l},BASIS(e)}).then(()=>{e.initializeBasis(),e.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")})}function r(d){const l=new e.KTX2File(new Uint8Array(d));function c(){l.close(),l.delete()}if(!l.isValid())throw c(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");const u=l.isUASTC()?n.UASTC_4x4:n.ETC1S,f=l.getWidth(),D=l.getHeight(),F=l.getLayers()||1,m=l.getLevels(),M=l.getFaces(),w=l.getHasAlpha(),_=l.getDFDFlags(),{transcoderFormat:U,engineFormat:X}=I(u,f,D,w);if(!f||!D||!m)throw c(),new Error("THREE.KTX2Loader: Invalid texture");if(!l.startTranscoding())throw c(),new Error("THREE.KTX2Loader: .startTranscoding failed");const TA=[],se=[];for(let CA=0;CA<M;CA++){const ne=[];for(let z=0;z<m;z++){const ie=[];let H,N;for(let V=0;V<F;V++){const lA=l.getImageLevelInfo(z,V,CA);CA===0&&z===0&&V===0&&(lA.origWidth%4!==0||lA.origHeight%4!==0)&&console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),m>1?(H=lA.origWidth,N=lA.origHeight):(H=lA.width,N=lA.height);const Ue=new Uint8Array(l.getImageTranscodedSizeInBytes(z,V,0,U));if(!l.transcodeImage(Ue,z,V,CA,U,0,-1,-1))throw c(),new Error("THREE.KTX2Loader: .transcodeImage failed.");ie.push(Ue)}const HA=h(ie);ne.push({data:HA,width:H,height:N}),se.push(HA.buffer)}TA.push({mipmaps:ne,width:f,height:D,format:X})}return c(),{faces:TA,buffers:se,width:f,height:D,hasAlpha:w,format:X,dfdFlags:_}}const o=[{if:"astcSupported",basisFormat:[n.UASTC_4x4],transcoderFormat:[t.ASTC_4x4,t.ASTC_4x4],engineFormat:[s.RGBA_ASTC_4x4_Format,s.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.BC7_M5,t.BC7_M5],engineFormat:[s.RGBA_BPTC_Format,s.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.BC1,t.BC3],engineFormat:[s.RGB_S3TC_DXT1_Format,s.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.ETC1,t.ETC2],engineFormat:[s.RGB_ETC2_Format,s.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.ETC1],engineFormat:[s.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.PVRTC1_4_RGB,t.PVRTC1_4_RGBA],engineFormat:[s.RGB_PVRTC_4BPPV1_Format,s.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],a=o.sort(function(d,l){return d.priorityETC1S-l.priorityETC1S}),g=o.sort(function(d,l){return d.priorityUASTC-l.priorityUASTC});function I(d,l,c,u){let f,D;const F=d===n.ETC1S?a:g;for(let m=0;m<F.length;m++){const M=F[m];if(C[M.if]&&M.basisFormat.includes(d)&&!(u&&M.transcoderFormat.length<2)&&!(M.needsPowerOfTwo&&!(Q(l)&&Q(c))))return f=M.transcoderFormat[u?1:0],D=M.engineFormat[u?1:0],{transcoderFormat:f,engineFormat:D}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),f=t.RGBA32,D=s.RGBAFormat,{transcoderFormat:f,engineFormat:D}}function Q(d){return d<=2?!0:(d&d-1)===0&&d!==0}function h(d){if(d.length===1)return d[0];let l=0;for(let f=0;f<d.length;f++){const D=d[f];l+=D.byteLength}const c=new Uint8Array(l);let u=0;for(let f=0;f<d.length;f++){const D=d[f];c.set(D,u),u+=D.byteLength}return c}};const ls=new Set([B.RGBAFormat,B.RGFormat,B.RedFormat]),Fe={[Ct]:B.RGBAFormat,[rt]:B.RGBAFormat,[st]:B.RGBAFormat,[nt]:B.RGBAFormat,[at]:B.RGFormat,[ot]:B.RGFormat,[et]:B.RGFormat,[tt]:B.RGFormat,[Bt]:B.RedFormat,[it]:B.RedFormat,[At]:B.RedFormat,[$e]:B.RedFormat,[gt]:B.RGBA_ASTC_6x6_Format,[It]:B.RGBA_ASTC_6x6_Format},Ge={[Ct]:B.FloatType,[rt]:B.HalfFloatType,[st]:B.UnsignedByteType,[nt]:B.UnsignedByteType,[at]:B.FloatType,[ot]:B.HalfFloatType,[et]:B.UnsignedByteType,[tt]:B.UnsignedByteType,[Bt]:B.FloatType,[it]:B.HalfFloatType,[At]:B.UnsignedByteType,[$e]:B.UnsignedByteType,[gt]:B.UnsignedByteType,[It]:B.UnsignedByteType};function ds(C){return dA(this,null,function*(){const{vkFormat:A}=C;if(Fe[A]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let e;C.supercompressionScheme===Ye&&(De||(De=new Promise(n=>dA(this,null,function*(){const i=new hs;yield i.init(),n(i)}))),e=yield De);const s=[];for(let n=0;n<C.levels.length;n++){const i=Math.max(1,C.pixelWidth>>n),r=Math.max(1,C.pixelHeight>>n),o=C.pixelDepth?Math.max(1,C.pixelDepth>>n):0,a=C.levels[n];let g;if(C.supercompressionScheme===Bs)g=a.levelData;else if(C.supercompressionScheme===Ye)g=e.decode(a.levelData,a.uncompressedByteLength);else throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");let I;Ge[A]===B.FloatType?I=new Float32Array(g.buffer,g.byteOffset,g.byteLength/Float32Array.BYTES_PER_ELEMENT):Ge[A]===B.HalfFloatType?I=new Uint16Array(g.buffer,g.byteOffset,g.byteLength/Uint16Array.BYTES_PER_ELEMENT):I=g,s.push({data:I,width:i,height:r,depth:o})}let t;if(ls.has(Fe[A]))t=C.pixelDepth===0?new B.DataTexture(s[0].data,C.pixelWidth,C.pixelHeight):new B.Data3DTexture(s[0].data,C.pixelWidth,C.pixelHeight,C.pixelDepth);else{if(C.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");t=new B.CompressedTexture(s,C.pixelWidth,C.pixelHeight)}return t.mipmaps=s,t.type=Ge[A],t.format=Fe[A],t.colorSpace=Et(C),t.needsUpdate=!0,Promise.resolve(t)})}function Et(C){const A=C.dataFormatDescriptor[0];return A.colorPrimaries===Is?A.transferFunction===qe?B.SRGBColorSpace:B.LinearSRGBColorSpace:A.colorPrimaries===gs?A.transferFunction===qe?B.DisplayP3ColorSpace:B.LinearDisplayP3ColorSpace:(A.colorPrimaries===Cs||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),B.NoColorSpace)}let Be;const us=()=>{if(Be)return Be;const C="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",A="B9h9z9tFBBBFiI9gBB9gLaaaaaFa9gEaaaB9gFaFaEMcBBFBFFGGGEILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBOn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBNI9z9iqlBVc+N9IcIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMk8lLbaE97F9+FaL978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAeDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAeDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBReCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBH8ZCFD9tA8ZAPD9OD9hD9RH8ZDQBTFtGmEYIPLdKeOnHpAIAQJDBIBHyCFD9tAyAPD9OD9hD9RHyAIASJDBIBH8cCFD9tA8cAPD9OD9hD9RH8cDQBTFtGmEYIPLdKeOnH8dDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAeD9uHeDyBjGBAEAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeApA8dDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNiV8ZcpMyS8cQ8df8eb8fHdAyA8cDQNiV8ZcpMyS8cQ8df8eb8fH8ZDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/dLEK97FaF97GXGXAGCI9HQBAF9FQFCBRGEXABABDBBBHECiD+rFCiD+sFD/6FHIAECND+rFCiD+sFD/6FAID/gFAECTD+rFCiD+sFD/6FHLD/gFD/kFD/lFHKCBDtD+2FHOAICUUUU94DtHND9OD9RD/kFHI9DBB/+hDYAIAID/mFAKAKD/mFALAOALAND9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHLD/mF9DBBX9LDYHOD/kFCgFDtD9OAECUUU94DtD9OD9QAIALD/mFAOD/kFCND+rFCU/+EDtD9OD9QAKALD/mFAOD/kFCTD+rFCUU/8ODtD9OD9QDMBBABCTJRBAGCIJHGAF9JQBSGMMAF9FQBCBRGEXABCTJHVAVDBBBHECBDtHOCUU98D8cFCUU98D8cEHND9OABDBBBHKAEDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAKAEDQBFGENVcMTtmYi8ZpyHECTD+sFD/6FHID/gFAECTD+rFCTD+sFD/6FHLD/gFD/kFD/lFHE9DB/+g6DYALAEAOD+2FHOALCUUUU94DtHcD9OD9RD/kFHLALD/mFAEAED/mFAIAOAIAcD9OD9RD/kFHEAED/mFD/kFD/kFD/jFD/nFHID/mF9DBBX9LDYHOD/kFCTD+rFALAID/mFAOD/kFCggEDtD9OD9QHLAEAID/mFAOD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHEDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAKAND9OALAEDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM/hEIGaF97FaL978jUUUUBCTlREGXAF9FQBCBRIEXAEABDBBBHLABCTJHKDBBBHODQILKOSQfbPden8c8d8e8fHNCTD+sFHVCID+rFDMIBAB9DBBU8/DY9D/zI818/DYAVCEDtD9QD/6FD/nFHVALAODQBFGENVcMTtmYi8ZpyHLCTD+rFCTD+sFD/6FD/mFHOAOD/mFAVALCTD+sFD/6FD/mFHcAcD/mFAVANCTD+rFCTD+sFD/6FD/mFHNAND/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHVD/mF9DBBX9LDYHLD/kFCggEDtHMD9OAcAVD/mFALD/kFCTD+rFD9QHcANAVD/mFALD/kFCTD+rFAOAVD/mFALD/kFAMD9OD9QHVDQBFTtGEmYILPdKOenHLD8dBAEDBIBDyB+t+J83EBABCNJALD8dFAEDBIBDyF+t+J83EBAKAcAVDQNVi8ZcMpySQ8c8dfb8e8fHVD8dBAEDBIBDyG+t+J83EBABCiJAVD8dFAEDBIBDyE+t+J83EBABCAJRBAICIJHIAF9JQBMMM9jFF97GXAGCGrAF9sHG9FQBCBRFEXABABDBBBHECND+rFCND+sFD/6FAECiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBABCTJRBAFCIJHFAG9JQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),s=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!="object")return{supported:!1};let t=C;WebAssembly.validate(e)&&(t=A);let n;const i=WebAssembly.instantiate(r(t),{}).then(I=>{n=I.instance,n.exports.__wasm_call_ctors()});function r(I){const Q=new Uint8Array(I.length);for(let d=0;d<I.length;++d){const l=I.charCodeAt(d);Q[d]=l>96?l-71:l>64?l-65:l>47?l+4:l>46?63:62}let h=0;for(let d=0;d<I.length;++d)Q[h++]=Q[d]<60?s[Q[d]]:(Q[d]-60)*64+Q[++d];return Q.buffer.slice(0,h)}function o(I,Q,h,d,l,c){const u=n.exports.sbrk,f=h+3&-4,D=u(f*d),F=u(l.length),m=new Uint8Array(n.exports.memory.buffer);m.set(l,F);const M=I(D,h,d,F,l.length);if(M===0&&c&&c(D,f,d),Q.set(m.subarray(D,D+h*d)),u(D-u(0)),M!==0)throw new Error(`Malformed buffer data: ${M}`)}const a={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},g={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return Be={ready:i,supported:!0,decodeVertexBuffer(I,Q,h,d,l){o(n.exports.meshopt_decodeVertexBuffer,I,Q,h,d,n.exports[a[l]])},decodeIndexBuffer(I,Q,h,d){o(n.exports.meshopt_decodeIndexBuffer,I,Q,h,d)},decodeIndexSequence(I,Q,h,d){o(n.exports.meshopt_decodeIndexSequence,I,Q,h,d)},decodeGltfBuffer(I,Q,h,d,l,c){o(n.exports[g[l]],I,Q,h,d,n.exports[a[c]])}},Be};var RA,YA,qA,XA;class fs{constructor(){G(this,RA,new pt);G(this,YA,new is().setDecoderPath(`${S.CDNVersion}/examples/jsm/libs/draco/gltf/`));G(this,qA,new q().setTranscoderPath(`${S.CDNVersion}/examples/jsm/libs/basis/`));G(this,XA,!1);E(this,RA).setCrossOrigin("anonymous").setDRACOLoader(E(this,YA)).setMeshoptDecoder(us)}get gltfLoader(){return E(this,RA)}get dracoLoader(){return E(this,YA)}get ktx2Loader(){return E(this,qA)}load(...A){E(this,XA)||(E(this,RA).setKTX2Loader(E(this,qA).detectSupport(S.webglRenderer)),R(this,XA,!0));const[e,s,...t]=A;if(S.cacheAssets&&O.has(e)){const n=O.get(e);s(n.data)}else this.gltfLoader.load(e,n=>{S.cacheAssets&&O.set(e,{data:n,dispose:()=>{n.cameras.forEach(i=>kA(i)),n.scenes.forEach(i=>{kA(i)})}}),s(n)},...t)}}RA=new WeakMap,YA=new WeakMap,qA=new WeakMap,XA=new WeakMap;const ct=new fs;var j,L,Z,VA;class Ds{constructor(A,e){G(this,j,void 0);G(this,L,void 0);G(this,Z,[]);G(this,VA,()=>{const A=E(this,L).left-E(this,j).box.left,e=E(this,L).top-E(this,j).box.top;let s=0,t=0;E(this,j).isClipped||(s=E(this,L).position.x-E(this,L).left,t=E(this,L).position.y-E(this,L).top);const n=E(this,j).box.width-E(this,L).scale.x,i=A-n,r=E(this,j).box.height-E(this,L).scale.y,o=e-r;E(this,Z)[0].constant=E(this,L).scale.y/2+t*-1-r/2-o,E(this,Z)[1].constant=E(this,L).scale.y/2+t+r/2+o,E(this,Z)[2].constant=E(this,L).scale.x/2+s+n/2+i,E(this,Z)[3].constant=E(this,L).scale.x/2+s*-1-n/2-i});R(this,j,S.getView((e==null?void 0:e.viewName)||"default")),R(this,L,new pe.LayoutBox(A,{cartesian:!1}));const s=(e==null?void 0:e.scale)||1;R(this,Z,[new B.Plane(new B.Vector3(0,-1*s,0)),new B.Plane(new B.Vector3(0,1*s,0)),new B.Plane(new B.Vector3(-1*s,0,0)),new B.Plane(new B.Vector3(1*s,0,0))]),LA.ticker.subscribe(E(this,VA),{order:NA.TICK_ORDER.LAYOUT_BOX})}get planes(){return E(this,Z)}get layoutBox(){return E(this,L)}destroy(){LA.ticker.unsubscribe(E(this,VA)),E(this,L).destroy()}}j=new WeakMap,L=new WeakMap,Z=new WeakMap,VA=new WeakMap;class Fs extends B.Group{constructor(A,e=500){super(),this.add(new B.PlaneHelper(A.planes[0],e,16711680)),this.add(new B.PlaneHelper(A.planes[1],e,16711680)),this.add(new B.PlaneHelper(A.planes[2],e,16711680)),this.add(new B.PlaneHelper(A.planes[3],e,16711680))}}var pA,QA,mA,vA,WA,iA,MA,jA;class Te extends Dt.SourceManager{constructor(e){super(e);G(this,pA,new ke.Store(null));G(this,QA,new ke.Store(void 0));G(this,mA,void 0);G(this,vA,void 0);G(this,WA,void 0);G(this,iA,void 0);G(this,MA,!1);G(this,jA,()=>{if(!(E(this,iA)&&!E(this,MA))&&(this.current!==this.previous&&(E(this,pA).current=null),this.current)){const e=E(this,WA)?this.current.url:this.current.name+this.current.extension;E(this,iA)||ge.loading.setTotal(e,1),E(this,QA).current="start",E(this,vA).load(e,s=>{E(this,pA).current=s,E(this,QA).current="complete",E(this,iA)||ge.loading.setLoaded(e,1)},void 0,()=>{E(this,iA)||(E(this,QA).current="error",ge.loading.setError(e,e))})}});R(this,mA,e.consumer),R(this,vA,e.loader),R(this,WA,e.keepSourceParameters||!1),R(this,iA,e.lazy||!1),this.subscribe(E(this,jA)),E(this,mA).addEventListener("added",()=>{this.connect()}),E(this,mA).addEventListener("removed",()=>{this.disconnect()})}get data(){return E(this,pA)}get loading(){return E(this,QA)}lazyLoad(){E(this,MA)||(R(this,MA,!0),E(this,jA).call(this))}}pA=new WeakMap,QA=new WeakMap,mA=new WeakMap,vA=new WeakMap,WA=new WeakMap,iA=new WeakMap,MA=new WeakMap,jA=new WeakMap;var wA;class Gs extends B.Group{constructor(e){super();G(this,wA,void 0);R(this,wA,new Te(IA({loader:ct,consumer:this},e))),E(this,wA).data.subscribe(s=>{s.current?this.add(...s.current.scene.children):this.children.forEach(t=>{this.remove(t),kA(t)})})}get sourceManager(){return E(this,wA)}}wA=new WeakMap;function He(C,A,e){const s=A.x,t=A.y,n=e||C.image.width/C.image.height;let i=0,r=0,o=C.offset.x,a=C.offset.y,g=C.rotation,I=C.center.x,Q=C.center.y;s/t>n?(i=1,r=t/s*n):(r=1,i=s/t/n),C.matrix.setUvTransform(o,a,i,r,g,I,Q)}const xA=new B.Vector3;function b(C,A,e,s,t,n){const i=2*Math.PI*t/4,r=Math.max(n-2*t,0),o=Math.PI/4;xA.copy(A),xA[s]=0,xA.normalize();const a=.5*i/(i+r),g=1-xA.angleTo(C)/o;return Math.sign(xA[e])===1?g*a:r/(i+r)+a+a*(1-g)}class Rs extends B.BoxGeometry{constructor(A=1,e=1,s=1,t=2,n=.1){if(t=t*2+1,n=Math.min(A/2,e/2,s/2,n),super(1,1,1,t,t,t),t===1)return;const i=this.toNonIndexed();this.index=null,this.attributes.position=i.attributes.position,this.attributes.normal=i.attributes.normal,this.attributes.uv=i.attributes.uv;const r=new B.Vector3,o=new B.Vector3,a=new B.Vector3(A,e,s).divideScalar(2).subScalar(n),g=this.attributes.position.array,I=this.attributes.normal.array,Q=this.attributes.uv.array,h=g.length/6,d=new B.Vector3,l=.5/t;for(let c=0,u=0;c<g.length;c+=3,u+=2)switch(r.fromArray(g,c),o.copy(r),o.x-=Math.sign(o.x)*l,o.y-=Math.sign(o.y)*l,o.z-=Math.sign(o.z)*l,o.normalize(),g[c+0]=a.x*Math.sign(r.x)+o.x*n,g[c+1]=a.y*Math.sign(r.y)+o.y*n,g[c+2]=a.z*Math.sign(r.z)+o.z*n,I[c+0]=o.x,I[c+1]=o.y,I[c+2]=o.z,Math.floor(c/h)){case 0:d.set(1,0,0),Q[u+0]=b(d,o,"z","y",n,s),Q[u+1]=1-b(d,o,"y","z",n,e);break;case 1:d.set(-1,0,0),Q[u+0]=1-b(d,o,"z","y",n,s),Q[u+1]=1-b(d,o,"y","z",n,e);break;case 2:d.set(0,1,0),Q[u+0]=1-b(d,o,"x","z",n,A),Q[u+1]=b(d,o,"z","x",n,s);break;case 3:d.set(0,-1,0),Q[u+0]=1-b(d,o,"x","z",n,A),Q[u+1]=1-b(d,o,"z","x",n,s);break;case 4:d.set(0,0,1),Q[u+0]=1-b(d,o,"x","y",n,A),Q[u+1]=1-b(d,o,"y","x",n,e);break;case 5:d.set(0,0,-1),Q[u+0]=b(d,o,"x","y",n,A),Q[u+1]=1-b(d,o,"y","x",n,e);break}}}const ve=new B.Vector3,ps=new B.Quaternion,We=new B.Vector3;class ms extends B.Object3D{constructor(A=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=A,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(e){e.element instanceof Element&&e.element.parentNode!==null&&e.element.parentNode.removeChild(e.element)})})}copy(A,e){return super.copy(A,e),this.element=A.element.cloneNode(!0),this}}const P=new B.Matrix4,Ms=new B.Matrix4;class ws{constructor(A={}){const e=this;let s,t,n,i;const r={camera:{style:""},objects:new WeakMap},o=A.element!==void 0?A.element:document.createElement("div");o.style.overflow="hidden",this.domElement=o;const a=document.createElement("div");a.style.transformOrigin="0 0",a.style.pointerEvents="none",o.appendChild(a);const g=document.createElement("div");g.style.transformStyle="preserve-3d",a.appendChild(g),this.getSize=function(){return{width:s,height:t}},this.render=function(l,c){const u=c.projectionMatrix.elements[5]*i;c.view&&c.view.enabled?(a.style.transform=`translate( ${-c.view.offsetX*(s/c.view.width)}px, ${-c.view.offsetY*(t/c.view.height)}px )`,a.style.transform+=`scale( ${c.view.fullWidth/c.view.width}, ${c.view.fullHeight/c.view.height} )`):a.style.transform="",l.matrixWorldAutoUpdate===!0&&l.updateMatrixWorld(),c.parent===null&&c.matrixWorldAutoUpdate===!0&&c.updateMatrixWorld();let f,D;c.isOrthographicCamera&&(f=-(c.right+c.left)/2,D=(c.top+c.bottom)/2);const F=c.view&&c.view.enabled?c.view.height/c.view.fullHeight:1,m=c.isOrthographicCamera?`scale( ${F} )scale(`+u+")translate("+I(f)+"px,"+I(D)+"px)"+Q(c.matrixWorldInverse):`scale( ${F} )translateZ(`+u+"px)"+Q(c.matrixWorldInverse),w=(c.isPerspectiveCamera?"perspective("+u+"px) ":"")+m+"translate("+n+"px,"+i+"px)";r.camera.style!==w&&(g.style.transform=w,r.camera.style=w),d(l,l,c)},this.setSize=function(l,c){s=l,t=c,n=s/2,i=t/2,o.style.width=l+"px",o.style.height=c+"px",a.style.width=l+"px",a.style.height=c+"px",g.style.width=l+"px",g.style.height=c+"px"};function I(l){return Math.abs(l)<1e-10?0:l}function Q(l){const c=l.elements;return"matrix3d("+I(c[0])+","+I(-c[1])+","+I(c[2])+","+I(c[3])+","+I(c[4])+","+I(-c[5])+","+I(c[6])+","+I(c[7])+","+I(c[8])+","+I(-c[9])+","+I(c[10])+","+I(c[11])+","+I(c[12])+","+I(-c[13])+","+I(c[14])+","+I(c[15])+")"}function h(l){const c=l.elements;return"translate(-50%,-50%)"+("matrix3d("+I(c[0])+","+I(c[1])+","+I(c[2])+","+I(c[3])+","+I(-c[4])+","+I(-c[5])+","+I(-c[6])+","+I(-c[7])+","+I(c[8])+","+I(c[9])+","+I(c[10])+","+I(c[11])+","+I(c[12])+","+I(c[13])+","+I(c[14])+","+I(c[15])+")")}function d(l,c,u,f){if(l.isCSS3DObject){const D=l.visible===!0&&l.layers.test(u.layers)===!0;if(l.element.style.display=D===!0?"":"none",D===!0){l.onBeforeRender(e,c,u);let F;l.isCSS3DSprite?(P.copy(u.matrixWorldInverse),P.transpose(),l.rotation2D!==0&&P.multiply(Ms.makeRotationZ(l.rotation2D)),l.matrixWorld.decompose(ve,ps,We),P.setPosition(ve),P.scale(We),P.elements[3]=0,P.elements[7]=0,P.elements[11]=0,P.elements[15]=1,F=h(P)):F=h(l.matrixWorld);const m=l.element,M=r.objects.get(l);if(M===void 0||M.style!==F){m.style.transform=F;const w={style:F};r.objects.set(l,w)}m.parentNode!==g&&g.appendChild(m),l.onAfterRender(e,c,u)}}for(let D=0,F=l.children.length;D<F;D++)d(l.children[D],c,u)}}}var oA,SA,hA;class Je extends B.Mesh{constructor(e){super(new Rs(e.width,e.height,1,e.segments,e.round||0),e.material);G(this,oA,void 0);G(this,SA,void 0);G(this,hA,()=>{E(this,oA).data.current&&E(this,SA)&&this.onCoverResize(E(this,oA).data.current)});R(this,oA,new Te(IA({consumer:this},e))),R(this,SA,e.cover||!1),this.addEventListener("added",()=>{yA.windowResizer.subscribe(E(this,hA))}),this.addEventListener("removed",()=>{yA.windowResizer.unsubscribe(E(this,hA))}),E(this,oA).data.subscribe(s=>{!s.current&&s.previous?s.previous.dispose():s.current&&this.material&&(E(this,SA)&&(s.current.matrixAutoUpdate=!1),s.current.colorSpace=B.SRGBColorSpace,s.current.center.set(.5,.5),this.material.map=s.current,this.material.needsUpdate=!0,E(this,hA).call(this))})}get sourceManager(){return E(this,oA)}updateTexture(){E(this,hA).call(this)}onCoverResize(e){He(e,{x:this.scale.x,y:this.scale.y})}}oA=new WeakMap,SA=new WeakMap,hA=new WeakMap;class Ss extends Je{constructor(A){super(oe(IA({},A),{loader:aA}))}}class ys{load(...A){const e=A[0],s=A[1],t=A[3],n=document.createElement("video");n.src=e,n.onloadeddata=()=>{s(new B.VideoTexture(n)),n.onerror=null,n.onloadeddata=null},n.onerror=()=>{t==null||t(e),n.onerror=null,n.onloadeddata=null}}}var ZA,zA,$A;class Ls extends Je{constructor(e){super(oe(IA({},e),{loader:new ys}));G(this,ZA,void 0);G(this,zA,void 0);G(this,$A,void 0);R(this,ZA,e.autoplay||!1),R(this,zA,e.muted||!1),R(this,$A,e.loop||!1),this.sourceManager.data.subscribe(s=>{if(s.current){const t=s.current.image;E(this,zA)&&(t.muted=!0),E(this,$A)&&(t.loop=!0),E(this,ZA)&&t.play()}})}onCoverResize(e){const s=e.image;He(e,{x:this.scale.x,y:this.scale.y},s.videoWidth/s.videoHeight)}}ZA=new WeakMap,zA=new WeakMap,$A=new WeakMap;function Ts(C,A){C.traverse(e=>{e instanceof B.Mesh&&A(e)})}function Hs(C,A){C.traverse(e=>{e instanceof B.Mesh&&e.material&&(Array.isArray(e.material)?e.material:[e.material]).forEach(A)})}const Re=new B.Vector3,Js=new B.Vector3;function Us(C,A="default"){const e=S.getView(A),{width:s,height:t}=S,n=s/t;C instanceof B.Vector3?Re.copy(C):Re.set(...C);const i=e.camera.getWorldPosition(Js).distanceTo(Re);if(e.camera instanceof B.OrthographicCamera)return{width:s/e.camera.zoom,height:t/e.camera.zoom,factor:1,distance:i,aspect:n};{const r=e.camera.fov*Math.PI/180,o=2*Math.tan(r/2)*i,a=o*(s/t);return{width:a,height:o,factor:s/a,distance:i,aspect:n}}}var Y,Ce,Qt,Ae,ee;const k=class k extends ms{static destroy(){yA.windowResizer.unsubscribe(E(this,ee)),LA.ticker.unsubscribe(E(this,Ae)),R(this,Y,null)}constructor(A){var e;super(A.element),E(k,Y)||re(e=k,Ce,Qt).call(e)}};Y=new WeakMap,Ce=new WeakSet,Qt=function(){R(k,Y,new ws),E(k,Y).domElement.style.cssText=`
|
|
10
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([o])),this.transcoderBinary=i,this.workerPool.setWorkerCreator(()=>{const a=new Worker(this.workerSourceURL),g=this.transcoderBinary.slice(0);return a.postMessage({type:"init",config:this.workerConfig,transcoderBinary:g},[g]),a})}),fe>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),fe++}return this.transcoderPending}load(A,e,s,t){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const n=new B.FileLoader(this.manager);n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials),n.load(A,i=>{if(ue.has(i))return ue.get(i).promise.then(e).catch(t);this._createTexture(i).then(r=>e?e(r):null).catch(t)},s,t)}_createTextureFrom(A,e){const{faces:s,width:t,height:n,format:i,type:r,error:o,dfdFlags:a}=A;if(r==="error")return Promise.reject(o);let g;if(e.faceCount===6)g=new B.CompressedCubeTexture(s,i,B.UnsignedByteType);else{const I=s[0].mipmaps;g=e.layerCount>1?new B.CompressedArrayTexture(I,t,n,e.layerCount,i,B.UnsignedByteType):new B.CompressedTexture(I,t,n,i,B.UnsignedByteType)}return g.minFilter=s[0].mipmaps.length===1?B.LinearFilter:B.LinearMipmapLinearFilter,g.magFilter=B.LinearFilter,g.generateMipmaps=!1,g.needsUpdate=!0,g.colorSpace=Et(e),g.premultiplyAlpha=!!(a&as),g}_createTexture(s){return dA(this,arguments,function*(A,e={}){const t=Qs(new Uint8Array(A));if(t.vkFormat!==Es)return ds(t);const n=e,i=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:n},[A])).then(r=>this._createTextureFrom(r.data,t));return ue.set(A,{promise:i}),i})}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),fe--,this}}q.BasisFormat={ETC1S:0,UASTC_4x4:1};q.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16};q.EngineFormat={RGBAFormat:B.RGBAFormat,RGBA_ASTC_4x4_Format:B.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:B.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:B.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:B.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:B.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:B.RGB_ETC1_Format,RGB_ETC2_Format:B.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:B.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:B.RGB_S3TC_DXT1_Format};q.BasisWorker=function(){let C,A,e;const s=_EngineFormat,t=_TranscoderFormat,n=_BasisFormat;self.addEventListener("message",function(d){const l=d.data;switch(l.type){case"init":C=l.config,i(l.transcoderBinary);break;case"transcode":A.then(()=>{try{const{faces:c,buffers:u,width:f,height:D,hasAlpha:F,format:m,dfdFlags:M}=r(l.buffer);self.postMessage({type:"transcode",id:l.id,faces:c,width:f,height:D,hasAlpha:F,format:m,dfdFlags:M},u)}catch(c){console.error(c),self.postMessage({type:"error",id:l.id,error:c.message})}});break}});function i(d){A=new Promise(l=>{e={wasmBinary:d,onRuntimeInitialized:l},BASIS(e)}).then(()=>{e.initializeBasis(),e.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")})}function r(d){const l=new e.KTX2File(new Uint8Array(d));function c(){l.close(),l.delete()}if(!l.isValid())throw c(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");const u=l.isUASTC()?n.UASTC_4x4:n.ETC1S,f=l.getWidth(),D=l.getHeight(),F=l.getLayers()||1,m=l.getLevels(),M=l.getFaces(),w=l.getHasAlpha(),_=l.getDFDFlags(),{transcoderFormat:U,engineFormat:X}=I(u,f,D,w);if(!f||!D||!m)throw c(),new Error("THREE.KTX2Loader: Invalid texture");if(!l.startTranscoding())throw c(),new Error("THREE.KTX2Loader: .startTranscoding failed");const TA=[],se=[];for(let CA=0;CA<M;CA++){const ne=[];for(let z=0;z<m;z++){const ie=[];let H,N;for(let V=0;V<F;V++){const lA=l.getImageLevelInfo(z,V,CA);CA===0&&z===0&&V===0&&(lA.origWidth%4!==0||lA.origHeight%4!==0)&&console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),m>1?(H=lA.origWidth,N=lA.origHeight):(H=lA.width,N=lA.height);const Ue=new Uint8Array(l.getImageTranscodedSizeInBytes(z,V,0,U));if(!l.transcodeImage(Ue,z,V,CA,U,0,-1,-1))throw c(),new Error("THREE.KTX2Loader: .transcodeImage failed.");ie.push(Ue)}const HA=h(ie);ne.push({data:HA,width:H,height:N}),se.push(HA.buffer)}TA.push({mipmaps:ne,width:f,height:D,format:X})}return c(),{faces:TA,buffers:se,width:f,height:D,hasAlpha:w,format:X,dfdFlags:_}}const o=[{if:"astcSupported",basisFormat:[n.UASTC_4x4],transcoderFormat:[t.ASTC_4x4,t.ASTC_4x4],engineFormat:[s.RGBA_ASTC_4x4_Format,s.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.BC7_M5,t.BC7_M5],engineFormat:[s.RGBA_BPTC_Format,s.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.BC1,t.BC3],engineFormat:[s.RGB_S3TC_DXT1_Format,s.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.ETC1,t.ETC2],engineFormat:[s.RGB_ETC2_Format,s.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.ETC1],engineFormat:[s.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[n.ETC1S,n.UASTC_4x4],transcoderFormat:[t.PVRTC1_4_RGB,t.PVRTC1_4_RGBA],engineFormat:[s.RGB_PVRTC_4BPPV1_Format,s.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],a=o.sort(function(d,l){return d.priorityETC1S-l.priorityETC1S}),g=o.sort(function(d,l){return d.priorityUASTC-l.priorityUASTC});function I(d,l,c,u){let f,D;const F=d===n.ETC1S?a:g;for(let m=0;m<F.length;m++){const M=F[m];if(C[M.if]&&M.basisFormat.includes(d)&&!(u&&M.transcoderFormat.length<2)&&!(M.needsPowerOfTwo&&!(Q(l)&&Q(c))))return f=M.transcoderFormat[u?1:0],D=M.engineFormat[u?1:0],{transcoderFormat:f,engineFormat:D}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),f=t.RGBA32,D=s.RGBAFormat,{transcoderFormat:f,engineFormat:D}}function Q(d){return d<=2?!0:(d&d-1)===0&&d!==0}function h(d){if(d.length===1)return d[0];let l=0;for(let f=0;f<d.length;f++){const D=d[f];l+=D.byteLength}const c=new Uint8Array(l);let u=0;for(let f=0;f<d.length;f++){const D=d[f];c.set(D,u),u+=D.byteLength}return c}};const ls=new Set([B.RGBAFormat,B.RGFormat,B.RedFormat]),Fe={[Ct]:B.RGBAFormat,[rt]:B.RGBAFormat,[st]:B.RGBAFormat,[nt]:B.RGBAFormat,[at]:B.RGFormat,[ot]:B.RGFormat,[et]:B.RGFormat,[tt]:B.RGFormat,[Bt]:B.RedFormat,[it]:B.RedFormat,[At]:B.RedFormat,[$e]:B.RedFormat,[gt]:B.RGBA_ASTC_6x6_Format,[It]:B.RGBA_ASTC_6x6_Format},Ge={[Ct]:B.FloatType,[rt]:B.HalfFloatType,[st]:B.UnsignedByteType,[nt]:B.UnsignedByteType,[at]:B.FloatType,[ot]:B.HalfFloatType,[et]:B.UnsignedByteType,[tt]:B.UnsignedByteType,[Bt]:B.FloatType,[it]:B.HalfFloatType,[At]:B.UnsignedByteType,[$e]:B.UnsignedByteType,[gt]:B.UnsignedByteType,[It]:B.UnsignedByteType};function ds(C){return dA(this,null,function*(){const{vkFormat:A}=C;if(Fe[A]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let e;C.supercompressionScheme===Ye&&(De||(De=new Promise(n=>dA(this,null,function*(){const i=new hs;yield i.init(),n(i)}))),e=yield De);const s=[];for(let n=0;n<C.levels.length;n++){const i=Math.max(1,C.pixelWidth>>n),r=Math.max(1,C.pixelHeight>>n),o=C.pixelDepth?Math.max(1,C.pixelDepth>>n):0,a=C.levels[n];let g;if(C.supercompressionScheme===Bs)g=a.levelData;else if(C.supercompressionScheme===Ye)g=e.decode(a.levelData,a.uncompressedByteLength);else throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");let I;Ge[A]===B.FloatType?I=new Float32Array(g.buffer,g.byteOffset,g.byteLength/Float32Array.BYTES_PER_ELEMENT):Ge[A]===B.HalfFloatType?I=new Uint16Array(g.buffer,g.byteOffset,g.byteLength/Uint16Array.BYTES_PER_ELEMENT):I=g,s.push({data:I,width:i,height:r,depth:o})}let t;if(ls.has(Fe[A]))t=C.pixelDepth===0?new B.DataTexture(s[0].data,C.pixelWidth,C.pixelHeight):new B.Data3DTexture(s[0].data,C.pixelWidth,C.pixelHeight,C.pixelDepth);else{if(C.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");t=new B.CompressedTexture(s,C.pixelWidth,C.pixelHeight)}return t.mipmaps=s,t.type=Ge[A],t.format=Fe[A],t.colorSpace=Et(C),t.needsUpdate=!0,Promise.resolve(t)})}function Et(C){const A=C.dataFormatDescriptor[0];return A.colorPrimaries===Is?A.transferFunction===qe?B.SRGBColorSpace:B.LinearSRGBColorSpace:A.colorPrimaries===gs?A.transferFunction===qe?B.DisplayP3ColorSpace:B.LinearDisplayP3ColorSpace:(A.colorPrimaries===Cs||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),B.NoColorSpace)}let Be;const us=()=>{if(Be)return Be;const C="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",A="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",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),s=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!="object")return{supported:!1};let t=C;WebAssembly.validate(e)&&(t=A);let n;const i=WebAssembly.instantiate(r(t),{}).then(I=>{n=I.instance,n.exports.__wasm_call_ctors()});function r(I){const Q=new Uint8Array(I.length);for(let d=0;d<I.length;++d){const l=I.charCodeAt(d);Q[d]=l>96?l-71:l>64?l-65:l>47?l+4:l>46?63:62}let h=0;for(let d=0;d<I.length;++d)Q[h++]=Q[d]<60?s[Q[d]]:(Q[d]-60)*64+Q[++d];return Q.buffer.slice(0,h)}function o(I,Q,h,d,l,c){const u=n.exports.sbrk,f=h+3&-4,D=u(f*d),F=u(l.length),m=new Uint8Array(n.exports.memory.buffer);m.set(l,F);const M=I(D,h,d,F,l.length);if(M===0&&c&&c(D,f,d),Q.set(m.subarray(D,D+h*d)),u(D-u(0)),M!==0)throw new Error(`Malformed buffer data: ${M}`)}const a={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},g={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return Be={ready:i,supported:!0,decodeVertexBuffer(I,Q,h,d,l){o(n.exports.meshopt_decodeVertexBuffer,I,Q,h,d,n.exports[a[l]])},decodeIndexBuffer(I,Q,h,d){o(n.exports.meshopt_decodeIndexBuffer,I,Q,h,d)},decodeIndexSequence(I,Q,h,d){o(n.exports.meshopt_decodeIndexSequence,I,Q,h,d)},decodeGltfBuffer(I,Q,h,d,l,c){o(n.exports[g[l]],I,Q,h,d,n.exports[a[c]])}},Be};var RA,YA,qA,XA;class fs{constructor(){G(this,RA,new pt);G(this,YA,new is().setDecoderPath(`${S.CDNVersion}/examples/jsm/libs/draco/gltf/`));G(this,qA,new q().setTranscoderPath(`${S.CDNVersion}/examples/jsm/libs/basis/`));G(this,XA,!1);E(this,RA).setCrossOrigin("anonymous").setDRACOLoader(E(this,YA)).setMeshoptDecoder(us)}get gltfLoader(){return E(this,RA)}get dracoLoader(){return E(this,YA)}get ktx2Loader(){return E(this,qA)}load(...A){E(this,XA)||(E(this,RA).setKTX2Loader(E(this,qA).detectSupport(S.webglRenderer)),R(this,XA,!0));const[e,s,...t]=A;if(S.cacheAssets&&O.has(e)){const n=O.get(e).data;s(n)}else this.gltfLoader.load(e,n=>{S.cacheAssets&&O.set(e,{data:n,dispose:()=>{n.cameras.forEach(i=>kA(i)),n.scenes.forEach(i=>{kA(i)})}}),s(n)},...t)}}RA=new WeakMap,YA=new WeakMap,qA=new WeakMap,XA=new WeakMap;const ct=new fs;var j,L,Z,VA;class Ds{constructor(A,e){G(this,j,void 0);G(this,L,void 0);G(this,Z,[]);G(this,VA,()=>{const A=E(this,L).left-E(this,j).box.left,e=E(this,L).top-E(this,j).box.top;let s=0,t=0;E(this,j).isClipped||(s=E(this,L).position.x-E(this,L).left,t=E(this,L).position.y-E(this,L).top);const n=E(this,j).box.width-E(this,L).scale.x,i=A-n,r=E(this,j).box.height-E(this,L).scale.y,o=e-r;E(this,Z)[0].constant=E(this,L).scale.y/2+t*-1-r/2-o,E(this,Z)[1].constant=E(this,L).scale.y/2+t+r/2+o,E(this,Z)[2].constant=E(this,L).scale.x/2+s+n/2+i,E(this,Z)[3].constant=E(this,L).scale.x/2+s*-1-n/2-i});R(this,j,S.getView((e==null?void 0:e.viewName)||"default")),R(this,L,new pe.LayoutBox(A,{cartesian:!1}));const s=(e==null?void 0:e.scale)||1;R(this,Z,[new B.Plane(new B.Vector3(0,-1*s,0)),new B.Plane(new B.Vector3(0,1*s,0)),new B.Plane(new B.Vector3(-1*s,0,0)),new B.Plane(new B.Vector3(1*s,0,0))]),LA.ticker.subscribe(E(this,VA),{order:NA.TICK_ORDER.LAYOUT_BOX})}get planes(){return E(this,Z)}get layoutBox(){return E(this,L)}destroy(){LA.ticker.unsubscribe(E(this,VA)),E(this,L).destroy()}}j=new WeakMap,L=new WeakMap,Z=new WeakMap,VA=new WeakMap;class Fs extends B.Group{constructor(A,e=500){super(),this.add(new B.PlaneHelper(A.planes[0],e,16711680)),this.add(new B.PlaneHelper(A.planes[1],e,16711680)),this.add(new B.PlaneHelper(A.planes[2],e,16711680)),this.add(new B.PlaneHelper(A.planes[3],e,16711680))}}var pA,QA,mA,vA,WA,iA,MA,jA;class Te extends Dt.SourceManager{constructor(e){super(e);G(this,pA,new ke.Store(null));G(this,QA,new ke.Store(void 0));G(this,mA,void 0);G(this,vA,void 0);G(this,WA,void 0);G(this,iA,void 0);G(this,MA,!1);G(this,jA,()=>{if(!(E(this,iA)&&!E(this,MA))&&(this.current!==this.previous&&(E(this,pA).current=null),this.current)){const e=E(this,WA)?this.current.url:this.current.name+this.current.extension;E(this,iA)||ge.loading.setTotal(e,1),E(this,QA).current="start",E(this,vA).load(e,s=>{E(this,pA).current=s,E(this,QA).current="complete",E(this,iA)||ge.loading.setLoaded(e,1)},void 0,()=>{E(this,iA)||(E(this,QA).current="error",ge.loading.setError(e,e))})}});R(this,mA,e.consumer),R(this,vA,e.loader),R(this,WA,e.keepSourceParameters||!1),R(this,iA,e.lazy||!1),this.subscribe(E(this,jA)),E(this,mA).addEventListener("added",()=>{this.connect()}),E(this,mA).addEventListener("removed",()=>{this.disconnect()})}get data(){return E(this,pA)}get loading(){return E(this,QA)}lazyLoad(){E(this,MA)||(R(this,MA,!0),E(this,jA).call(this))}}pA=new WeakMap,QA=new WeakMap,mA=new WeakMap,vA=new WeakMap,WA=new WeakMap,iA=new WeakMap,MA=new WeakMap,jA=new WeakMap;var wA;class Gs extends B.Group{constructor(e){super();G(this,wA,void 0);R(this,wA,new Te(IA({loader:ct,consumer:this},e))),E(this,wA).data.subscribe(s=>{s.current?this.add(...s.current.scene.clone(!0).children):this.children.forEach(t=>{this.remove(t),kA(t)})})}get sourceManager(){return E(this,wA)}}wA=new WeakMap;function He(C,A,e){const s=A.x,t=A.y,n=e||C.image.width/C.image.height;let i=0,r=0,o=C.offset.x,a=C.offset.y,g=C.rotation,I=C.center.x,Q=C.center.y;s/t>n?(i=1,r=t/s*n):(r=1,i=s/t/n),C.matrix.setUvTransform(o,a,i,r,g,I,Q)}const xA=new B.Vector3;function b(C,A,e,s,t,n){const i=2*Math.PI*t/4,r=Math.max(n-2*t,0),o=Math.PI/4;xA.copy(A),xA[s]=0,xA.normalize();const a=.5*i/(i+r),g=1-xA.angleTo(C)/o;return Math.sign(xA[e])===1?g*a:r/(i+r)+a+a*(1-g)}class Rs extends B.BoxGeometry{constructor(A=1,e=1,s=1,t=2,n=.1){if(t=t*2+1,n=Math.min(A/2,e/2,s/2,n),super(1,1,1,t,t,t),t===1)return;const i=this.toNonIndexed();this.index=null,this.attributes.position=i.attributes.position,this.attributes.normal=i.attributes.normal,this.attributes.uv=i.attributes.uv;const r=new B.Vector3,o=new B.Vector3,a=new B.Vector3(A,e,s).divideScalar(2).subScalar(n),g=this.attributes.position.array,I=this.attributes.normal.array,Q=this.attributes.uv.array,h=g.length/6,d=new B.Vector3,l=.5/t;for(let c=0,u=0;c<g.length;c+=3,u+=2)switch(r.fromArray(g,c),o.copy(r),o.x-=Math.sign(o.x)*l,o.y-=Math.sign(o.y)*l,o.z-=Math.sign(o.z)*l,o.normalize(),g[c+0]=a.x*Math.sign(r.x)+o.x*n,g[c+1]=a.y*Math.sign(r.y)+o.y*n,g[c+2]=a.z*Math.sign(r.z)+o.z*n,I[c+0]=o.x,I[c+1]=o.y,I[c+2]=o.z,Math.floor(c/h)){case 0:d.set(1,0,0),Q[u+0]=b(d,o,"z","y",n,s),Q[u+1]=1-b(d,o,"y","z",n,e);break;case 1:d.set(-1,0,0),Q[u+0]=1-b(d,o,"z","y",n,s),Q[u+1]=1-b(d,o,"y","z",n,e);break;case 2:d.set(0,1,0),Q[u+0]=1-b(d,o,"x","z",n,A),Q[u+1]=b(d,o,"z","x",n,s);break;case 3:d.set(0,-1,0),Q[u+0]=1-b(d,o,"x","z",n,A),Q[u+1]=1-b(d,o,"z","x",n,s);break;case 4:d.set(0,0,1),Q[u+0]=1-b(d,o,"x","y",n,A),Q[u+1]=1-b(d,o,"y","x",n,e);break;case 5:d.set(0,0,-1),Q[u+0]=b(d,o,"x","y",n,A),Q[u+1]=1-b(d,o,"y","x",n,e);break}}}const ve=new B.Vector3,ps=new B.Quaternion,We=new B.Vector3;class ms extends B.Object3D{constructor(A=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=A,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",function(){this.traverse(function(e){e.element instanceof Element&&e.element.parentNode!==null&&e.element.parentNode.removeChild(e.element)})})}copy(A,e){return super.copy(A,e),this.element=A.element.cloneNode(!0),this}}const P=new B.Matrix4,Ms=new B.Matrix4;class ws{constructor(A={}){const e=this;let s,t,n,i;const r={camera:{style:""},objects:new WeakMap},o=A.element!==void 0?A.element:document.createElement("div");o.style.overflow="hidden",this.domElement=o;const a=document.createElement("div");a.style.transformOrigin="0 0",a.style.pointerEvents="none",o.appendChild(a);const g=document.createElement("div");g.style.transformStyle="preserve-3d",a.appendChild(g),this.getSize=function(){return{width:s,height:t}},this.render=function(l,c){const u=c.projectionMatrix.elements[5]*i;c.view&&c.view.enabled?(a.style.transform=`translate( ${-c.view.offsetX*(s/c.view.width)}px, ${-c.view.offsetY*(t/c.view.height)}px )`,a.style.transform+=`scale( ${c.view.fullWidth/c.view.width}, ${c.view.fullHeight/c.view.height} )`):a.style.transform="",l.matrixWorldAutoUpdate===!0&&l.updateMatrixWorld(),c.parent===null&&c.matrixWorldAutoUpdate===!0&&c.updateMatrixWorld();let f,D;c.isOrthographicCamera&&(f=-(c.right+c.left)/2,D=(c.top+c.bottom)/2);const F=c.view&&c.view.enabled?c.view.height/c.view.fullHeight:1,m=c.isOrthographicCamera?`scale( ${F} )scale(`+u+")translate("+I(f)+"px,"+I(D)+"px)"+Q(c.matrixWorldInverse):`scale( ${F} )translateZ(`+u+"px)"+Q(c.matrixWorldInverse),w=(c.isPerspectiveCamera?"perspective("+u+"px) ":"")+m+"translate("+n+"px,"+i+"px)";r.camera.style!==w&&(g.style.transform=w,r.camera.style=w),d(l,l,c)},this.setSize=function(l,c){s=l,t=c,n=s/2,i=t/2,o.style.width=l+"px",o.style.height=c+"px",a.style.width=l+"px",a.style.height=c+"px",g.style.width=l+"px",g.style.height=c+"px"};function I(l){return Math.abs(l)<1e-10?0:l}function Q(l){const c=l.elements;return"matrix3d("+I(c[0])+","+I(-c[1])+","+I(c[2])+","+I(c[3])+","+I(c[4])+","+I(-c[5])+","+I(c[6])+","+I(c[7])+","+I(c[8])+","+I(-c[9])+","+I(c[10])+","+I(c[11])+","+I(c[12])+","+I(-c[13])+","+I(c[14])+","+I(c[15])+")"}function h(l){const c=l.elements;return"translate(-50%,-50%)"+("matrix3d("+I(c[0])+","+I(c[1])+","+I(c[2])+","+I(c[3])+","+I(-c[4])+","+I(-c[5])+","+I(-c[6])+","+I(-c[7])+","+I(c[8])+","+I(c[9])+","+I(c[10])+","+I(c[11])+","+I(c[12])+","+I(c[13])+","+I(c[14])+","+I(c[15])+")")}function d(l,c,u,f){if(l.isCSS3DObject){const D=l.visible===!0&&l.layers.test(u.layers)===!0;if(l.element.style.display=D===!0?"":"none",D===!0){l.onBeforeRender(e,c,u);let F;l.isCSS3DSprite?(P.copy(u.matrixWorldInverse),P.transpose(),l.rotation2D!==0&&P.multiply(Ms.makeRotationZ(l.rotation2D)),l.matrixWorld.decompose(ve,ps,We),P.setPosition(ve),P.scale(We),P.elements[3]=0,P.elements[7]=0,P.elements[11]=0,P.elements[15]=1,F=h(P)):F=h(l.matrixWorld);const m=l.element,M=r.objects.get(l);if(M===void 0||M.style!==F){m.style.transform=F;const w={style:F};r.objects.set(l,w)}m.parentNode!==g&&g.appendChild(m),l.onAfterRender(e,c,u)}}for(let D=0,F=l.children.length;D<F;D++)d(l.children[D],c,u)}}}var oA,SA,hA;class Je extends B.Mesh{constructor(e){super(new Rs(e.width,e.height,1,e.segments,e.round||0),e.material);G(this,oA,void 0);G(this,SA,void 0);G(this,hA,()=>{E(this,oA).data.current&&E(this,SA)&&this.onCoverResize(E(this,oA).data.current)});R(this,oA,new Te(IA({consumer:this},e))),R(this,SA,e.cover||!1),this.addEventListener("added",()=>{yA.windowResizer.subscribe(E(this,hA))}),this.addEventListener("removed",()=>{yA.windowResizer.unsubscribe(E(this,hA))}),E(this,oA).data.subscribe(s=>{!s.current&&s.previous?s.previous.dispose():s.current&&this.material&&(E(this,SA)&&(s.current.matrixAutoUpdate=!1),s.current.colorSpace=B.SRGBColorSpace,s.current.center.set(.5,.5),this.material.map=s.current.clone(),this.material.needsUpdate=!0,E(this,hA).call(this))})}get sourceManager(){return E(this,oA)}updateTexture(){E(this,hA).call(this)}onCoverResize(e){He(e,{x:this.scale.x,y:this.scale.y})}}oA=new WeakMap,SA=new WeakMap,hA=new WeakMap;class Ss extends Je{constructor(A){super(oe(IA({},A),{loader:aA}))}}class ys{load(...A){const e=A[0],s=A[1],t=A[3],n=document.createElement("video");n.src=e,n.onloadeddata=()=>{s(new B.VideoTexture(n)),n.onerror=null,n.onloadeddata=null},n.onerror=()=>{t==null||t(e),n.onerror=null,n.onloadeddata=null}}}var ZA,zA,$A;class Ls extends Je{constructor(e){super(oe(IA({},e),{loader:new ys}));G(this,ZA,void 0);G(this,zA,void 0);G(this,$A,void 0);R(this,ZA,e.autoplay||!1),R(this,zA,e.muted||!1),R(this,$A,e.loop||!1),this.sourceManager.data.subscribe(s=>{if(s.current){const t=s.current.image;E(this,zA)&&(t.muted=!0),E(this,$A)&&(t.loop=!0),E(this,ZA)&&t.play()}})}onCoverResize(e){const s=e.image;He(e,{x:this.scale.x,y:this.scale.y},s.videoWidth/s.videoHeight)}}ZA=new WeakMap,zA=new WeakMap,$A=new WeakMap;function Ts(C,A){C.traverse(e=>{e instanceof B.Mesh&&A(e)})}function Hs(C,A){C.traverse(e=>{e instanceof B.Mesh&&e.material&&(Array.isArray(e.material)?e.material:[e.material]).forEach(A)})}const Re=new B.Vector3,Js=new B.Vector3;function Us(C,A="default"){const e=S.getView(A),{width:s,height:t}=S,n=s/t;C instanceof B.Vector3?Re.copy(C):Re.set(...C);const i=e.camera.getWorldPosition(Js).distanceTo(Re);if(e.camera instanceof B.OrthographicCamera)return{width:s/e.camera.zoom,height:t/e.camera.zoom,factor:1,distance:i,aspect:n};{const r=e.camera.fov*Math.PI/180,o=2*Math.tan(r/2)*i,a=o*(s/t);return{width:a,height:o,factor:s/a,distance:i,aspect:n}}}var Y,Ce,Qt,Ae,ee;const k=class k extends ms{static destroy(){yA.windowResizer.unsubscribe(E(this,ee)),LA.ticker.unsubscribe(E(this,Ae)),R(this,Y,null)}constructor(A){var e;super(A.element),E(k,Y)||re(e=k,Ce,Qt).call(e)}};Y=new WeakMap,Ce=new WeakSet,Qt=function(){R(k,Y,new ws),E(k,Y).domElement.style.cssText=`
|
|
11
11
|
position: fixed;
|
|
12
12
|
left: 0;
|
|
13
13
|
top: 0;
|
package/lib/en3/index.js
CHANGED
|
@@ -2860,8 +2860,8 @@ class Ci {
|
|
|
2860
2860
|
), G(this, ne, !0));
|
|
2861
2861
|
const [e, s, ...t] = A;
|
|
2862
2862
|
if (w.cacheAssets && _.has(e)) {
|
|
2863
|
-
const n = _.get(e);
|
|
2864
|
-
s(n
|
|
2863
|
+
const n = _.get(e).data;
|
|
2864
|
+
s(n);
|
|
2865
2865
|
} else
|
|
2866
2866
|
this.gltfLoader.load(
|
|
2867
2867
|
e,
|
|
@@ -2980,7 +2980,7 @@ class Ji extends jA {
|
|
|
2980
2980
|
loader: ai,
|
|
2981
2981
|
consumer: this
|
|
2982
2982
|
}, e))), g(this, UA).data.subscribe((s) => {
|
|
2983
|
-
s.current ? this.add(...s.current.scene.children) : this.children.forEach((t) => {
|
|
2983
|
+
s.current ? this.add(...s.current.scene.clone(!0).children) : this.children.forEach((t) => {
|
|
2984
2984
|
this.remove(t), we(t);
|
|
2985
2985
|
});
|
|
2986
2986
|
});
|
|
@@ -3130,7 +3130,7 @@ class ss extends Qe {
|
|
|
3130
3130
|
}), this.addEventListener("removed", () => {
|
|
3131
3131
|
NA.unsubscribe(g(this, fA));
|
|
3132
3132
|
}), g(this, aA).data.subscribe((s) => {
|
|
3133
|
-
!s.current && s.previous ? s.previous.dispose() : s.current && this.material && (g(this, xA) && (s.current.matrixAutoUpdate = !1), s.current.colorSpace = AA, s.current.center.set(0.5, 0.5), this.material.map = s.current, this.material.needsUpdate = !0, g(this, fA).call(this));
|
|
3133
|
+
!s.current && s.previous ? s.previous.dispose() : s.current && this.material && (g(this, xA) && (s.current.matrixAutoUpdate = !1), s.current.colorSpace = AA, s.current.center.set(0.5, 0.5), this.material.map = s.current.clone(), this.material.needsUpdate = !0, g(this, fA).call(this));
|
|
3134
3134
|
});
|
|
3135
3135
|
}
|
|
3136
3136
|
get sourceManager() {
|