1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,120941,e=>{"use strict";var t=e.i(844847),r=e.i(401157),n=e.i(319465),a=e.i(868275),i=e.i(164309),o=e.i(784544),s=e.i(177619),l=e.i(648486),A=e.i(164863);function u(e,t){var r;return function(){for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];clearTimeout(r),r=setTimeout(function(){return e.apply(void 0,(0,l._)(a))},t)}}function c(e,t){var r=!1;return function(){for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];r||(e.apply(void 0,(0,l._)(a)),r=!0,setTimeout(function(){r=!1},t))}}var B=function(){function e(){(0,r._)(this,e)}return(0,n._)(e,null,[{key:"get",value:function(e){var t=this.cache.get(e);return t?Date.now()-t.timestamp>this.ttl?(this.cache.delete(e),this.stats.misses++,null):(t.accessCount++,t.lastAccessed=Date.now(),this.stats.hits++,t.result):(this.stats.misses++,null)}},{key:"set",value:function(e,t){this.cache.size>=this.maxSize&&this.evictLeastRecentlyUsed(),this.cache.set(e,{result:(0,i._)({},t),timestamp:Date.now(),accessCount:1,lastAccessed:Date.now()})}},{key:"evictLeastRecentlyUsed",value:function(){var e="",t=Date.now(),r=!0,n=!1,a=void 0;try{for(var i,o=this.cache[Symbol.iterator]();!(r=(i=o.next()).done);r=!0){var l=(0,s._)(i.value,2),A=l[0],u=l[1];u.lastAccessed<t&&(t=u.lastAccessed,e=A)}}catch(e){n=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(n)throw a}}e&&(this.cache.delete(e),this.stats.evictions++)}},{key:"warmup",value:function(e){return(0,t._)(function(){var t,r,n,a,i,o;return(0,A._)(this,function(s){console.log("ð¥ å¼å§ç¼åé¢ç"),t=!0,r=!1,n=void 0;try{for(a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0)o=i.value,this.set(o.key,o.result)}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}return console.log("â
ç¼åé¢ç宿: ".concat(e.length," æ¡è®°å½")),[2]})}).call(this)}},{key:"getStats",value:function(){var e=this.stats.hits/(this.stats.hits+this.stats.misses)*100;return(0,o._)((0,i._)({},this.stats),{hitRate:isNaN(e)?0:e.toFixed(2),size:this.cache.size,maxSize:this.maxSize})}},{key:"cleanup",value:function(){var e=this,t=Date.now(),r=[],n=!0,a=!1,i=void 0;try{for(var o,l=this.cache[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var A=(0,s._)(o.value,2),u=A[0],c=A[1];t-c.timestamp>this.ttl&&r.push(u)}}catch(e){a=!0,i=e}finally{try{n||null==l.return||l.return()}finally{if(a)throw i}}r.forEach(function(t){return e.cache.delete(t)}),r.length>0&&console.log("ð§¹ æ¸
çè¿æç¼å: ".concat(r.length," æ¡è®°å½"))}},{key:"clear",value:function(){this.cache.clear(),this.stats={hits:0,misses:0,evictions:0}}}]),e}();(0,a._)(B,"cache",new Map),(0,a._)(B,"maxSize",100),(0,a._)(B,"ttl",18e5),(0,a._)(B,"stats",{hits:0,misses:0,evictions:0});var d=function(){function e(){(0,r._)(this,e)}return(0,n._)(e,null,[{key:"initialize",value:function(){return(0,t._)(function(){return(0,A._)(this,function(e){return this.isInitialized||(console.warn("Web Worker åè½å·²ç¦ç¨ï¼ä½¿ç¨ä¸»çº¿ç¨è®¡ç®"),this.isInitialized=!0),[2]})}).call(this)}},{key:"analyzeWithWorker",value:function(e,r){return(0,t._)(function(){return(0,A._)(this,function(e){throw Error("Web Workeråè½å·²ç¦ç¨ï¼è¯·ä½¿ç¨ä¸»çº¿ç¨è®¡ç®")})})()}},{key:"processQueue",value:function(){if(0!==this.taskQueue.length){var e=this.workers.find(function(e){return!e.busy});if(e){var t=this.taskQueue.shift();t&&(e.busy=!0,e.currentTaskId=t.id,e.currentTask=t,e.postMessage({id:t.id,modelData:t.modelData,attachmentType:t.attachmentType}))}}}},{key:"handleWorkerMessage",value:function(e,t){var r=e.data,n=r.id,a=r.result,i=r.error,o=t.currentTask;o&&o.id===n&&(t.busy=!1,delete t.currentTaskId,delete t.currentTask,i?o.reject(Error(i)):o.resolve(a),this.processQueue())}},{key:"destroy",value:function(){this.workers.forEach(function(e){return e.terminate()}),this.workers=[],this.taskQueue=[],this.isInitialized=!1}}]),e}();(0,a._)(d,"workers",[]),(0,a._)(d,"maxWorkers","undefined"!=typeof navigator&&navigator.hardwareConcurrency||4),(0,a._)(d,"taskQueue",[]),(0,a._)(d,"isInitialized",!1);var h=function(){function e(){(0,r._)(this,e)}return(0,n._)(e,null,[{key:"start",value:function(e){var t=performance.memory?performance.memory.usedJSHeapSize:void 0;this.metrics.set(e,{startTime:performance.now(),memory:t})}},{key:"end",value:function(e){var t=this.metrics.get(e);if(!t)return console.warn("æ§è½æµéæ ç¾æªæ¾å°: ".concat(e)),0;var r=performance.now(),n=r-t.startTime;return t.endTime=r,t.duration=n,n}},{key:"getMetrics",value:function(){var e={},t=!0,r=!1,n=void 0;try{for(var a,i=this.metrics[Symbol.iterator]();!(t=(a=i.next()).done);t=!0){var o,l=(0,s._)(a.value,2),A=l[0],u=l[1];e[A]={duration:(null==(o=u.duration)?void 0:o.toFixed(2))+"ms",memory:u.memory?(u.memory/1024/1024).toFixed(2)+"MB":"N/A"}}}catch(e){r=!0,n=e}finally{try{t||null==i.return||i.return()}finally{if(r)throw n}}return e}},{key:"clear",value:function(){this.metrics.clear()}},{key:"record",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ms";console.log("ð ".concat(e,": ").concat(t.toFixed(2)).concat(r))}}]),e}();(0,a._)(h,"metrics",new Map);var C=function(){function e(){(0,r._)(this,e)}return(0,n._)(e,null,[{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e5;this.isRunning||(this.interval=setInterval(function(){e.optimize()},t),this.isRunning=!0,console.log("ð èªå¨æ§è½ä¼åå¨å·²å¯å¨"))}},{key:"stop",value:function(){this.interval&&clearInterval(this.interval),this.isRunning=!1,
1console.log("â¹ï¸ èªå¨æ§è½ä¼åå¨å·²åæ¢")}},{key:"optimize",value:function(){if(console.log("ð§ æ§è¡èªå¨æ§è½ä¼å"),B.cleanup(),console.log("ð ç¼åç»è®¡:",B.getStats()),window.gc&&"function"==typeof window.gc)try{window.gc(),console.log("ðï¸ æå¨è§¦ååå¾åæ¶")}catch(e){console.log("â ï¸ åå¾åæ¶ä¸å¯ç¨")}}}]),e}();(0,a._)(C,"interval",void 0),(0,a._)(C,"isRunning",!1),window.addEventListener("beforeunload",function(){d.destroy(),C.stop()}),e.s(["AdvancedComplianceCache",()=>B,"AutoPerformanceOptimizer",()=>C,"CompliancePerformanceMonitor",()=>h,"ComplianceWorkerManager",()=>d,"debounce",()=>u,"throttle",()=>c])},538320,e=>{"use strict";var t,r=e.i(844847),n=e.i(396784),a=e.i(401157),i=e.i(319465),o=e.i(785337),s=e.i(94e4),l=e.i(177619),A=e.i(536038),u=e.i(164863),c=e.i(14929),B=e.i(974553),d=e.i(160625),h=e.i(966792),C=e.i(332355),f=e.i(428358),m=e.i(694071),v=e.i(766417),p=e.i(230330),g=e.i(753758),M=e.i(292927),F=e.i(164309),E=e.i(784544),G=e.i(648486),I=e.i(117328);function y(e,t){if(t===I.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t!==I.TriangleFanDrawMode&&t!==I.TriangleStripDrawMode)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",t),e;var r=e.getIndex();if(null===r){var n=[],a=e.getAttribute("position");if(void 0===a)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(var i=0;i<a.count;i++)n.push(i);e.setIndex(n),r=e.getIndex()}var o=r.count-2,s=[];if(r)if(t===I.TriangleFanDrawMode)for(var l=1;l<=o;l++)s.push(r.getX(0)),s.push(r.getX(l)),s.push(r.getX(l+1));else for(var A=0;A<o;A++)A%2==0?(s.push(r.getX(A)),s.push(r.getX(A+1)),s.push(r.getX(A+2))):(s.push(r.getX(A+2)),s.push(r.getX(A+1)),s.push(r.getX(A)));s.length/3!==o&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var u=e.clone();return u.setIndex(s),u.clearGroups(),u}var R=e.i(582432);function D(e){if("undefined"!=typeof TextDecoder)return new TextDecoder().decode(e);for(var t="",r=0,n=e.length;r<n;r++)t+=String.fromCharCode(e[r]);try{return decodeURIComponent(escape(t))}catch(e){return t}}var T="srgb",x="srgb-linear",H=function(e){function t(e){var r;return(0,a._)(this,t),(r=(0,n._)(this,t,[e])).dracoLoader=null,r.ktx2Loader=null,r.meshoptDecoder=null,r.pluginCallbacks=[],r.register(function(e){return new _(e)}),r.register(function(e){return new k(e)}),r.register(function(e){return new Y(e)}),r.register(function(e){return new Z(e)}),r.register(function(e){return new W(e)}),r.register(function(e){return new U(e)}),r.register(function(e){return new P(e)}),r.register(function(e){return new K(e)}),r.register(function(e){return new N(e)}),r.register(function(e){return new w(e)}),r.register(function(e){return new Q(e)}),r.register(function(e){return new O(e)}),r.register(function(e){return new j(e)}),r.register(function(e){return new X(e)}),r.register(function(e){return new J(e)}),r.register(function(e){return new V(e)}),r.register(function(e){return new z(e)}),r}return(0,o._)(t,e),(0,i._)(t,[{key:"load",value:function(e,t,r,n){var a,i=this;if(""!==this.resourcePath)a=this.resourcePath;else if(""!==this.path){var o=I.LoaderUtils.extractUrlBase(e);a=I.LoaderUtils.resolveURL(o,this.path)}else a=I.LoaderUtils.extractUrlBase(e);this.manager.itemStart(e);var s=function(t){n?n(t):console.error(t),i.manager.itemError(e),i.manager.itemEnd(e)},l=new I.FileLoader(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(r){try{i.parse(r,a,function(r){t(r),i.manager.itemEnd(e)},s)}catch(e){s(e)}},r,s)}},{key:"setDRACOLoader",value:function(e){return this.dracoLoader=e,this}},{key:"setDDSLoader",value:function(){throw Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}},{key:"setKTX2Loader",value:function(e){return this.ktx2Loader=e,this}},{key:"setMeshoptDecoder",value:function(e){return this.meshoptDecoder=e,this}},{key:"register",value:function(e){return -1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}},{key:"unregister",value:function(e){return -1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}},{key:"parse",value:function(e,t,r,n){var a,i={},o={};if("string"==typeof e)a=JSON.parse(e);else if((0,s._)(e,ArrayBuffer))if(D(new Uint8Array(e.slice(0,4)))===q){try{i[L.KHR_BINARY_GLTF]=new $(e)}catch(e){n&&n(e);return}a=JSON.parse(i[L.KHR_BINARY_GLTF].content)}else a=JSON.parse(D(new Uint8Array(e)));else a=e;if(void 0===a.asset||a.asset.version[0]<2){n&&n(Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}var l=new ep(a,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(var A=0;A<this.pluginCallbacks.length;A++){var u=this.pluginCallbacks[A](l);u.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),o[u.name]=u,i[u.name]=!0}if(a.extensionsUsed)for(var c=0;c<a.extensionsUsed.length;++c){var B=a.extensionsUsed[c],d=a.extensionsRequired||[];switch(B){case L.KHR_MATERIALS_UNLIT:i[B]=new S;break;case L.KHR_DRACO_MESH_COMPRESSION:i[B]=new ee(a,this.dracoLoader);break;case L.KHR_TEXTURE_TRANSFORM:i[B]=new et;break;
1case L.KHR_MESH_QUANTIZATION:i[B]=new er;break;default:d.indexOf(B)>=0&&void 0===o[B]&&console.warn('THREE.GLTFLoader: Unknown extension "'+B+'".')}}l.setExtensions(i),l.setPlugins(o),l.parse(r,n)}},{key:"parseAsync",value:function(e,t){var r=this;return new Promise(function(n,a){r.parse(e,t,n,a)})}}]),t}(I.Loader);function b(){var e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}var L={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_DISPERSION:"KHR_materials_dispersion",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"},J=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}return(0,i._)(e,[{key:"_markDefs",value:function(){for(var e=this.parser,t=this.parser.json.nodes||[],r=0,n=t.length;r<n;r++){var a=t[r];a.extensions&&a.extensions[this.name]&&void 0!==a.extensions[this.name].light&&e._addNodeRef(this.cache,a.extensions[this.name].light)}}},{key:"_loadLight",value:function(e){var t,r=this.parser,n="light:"+e,a=r.cache.get(n);if(a)return a;var i=r.json,o=((i.extensions&&i.extensions[this.name]||{}).lights||[])[e],s=new I.Color(0xffffff);void 0!==o.color&&s.setRGB(o.color[0],o.color[1],o.color[2],x);var l=void 0!==o.range?o.range:0;switch(o.type){case"directional":(t=new I.DirectionalLight(s)).target.position.set(0,0,-1),t.add(t.target);break;case"point":(t=new I.PointLight(s)).distance=l;break;case"spot":(t=new I.SpotLight(s)).distance=l,o.spot=o.spot||{},o.spot.innerConeAngle=void 0!==o.spot.innerConeAngle?o.spot.innerConeAngle:0,o.spot.outerConeAngle=void 0!==o.spot.outerConeAngle?o.spot.outerConeAngle:Math.PI/4,t.angle=o.spot.outerConeAngle,t.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,t.target.position.set(0,0,-1),t.add(t.target);break;default:throw Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return t.position.set(0,0,0),t.decay=2,eC(t,o),void 0!==o.intensity&&(t.intensity=o.intensity),t.name=r.createUniqueName(o.name||"light_"+e),a=Promise.resolve(t),r.cache.add(n,a),a}},{key:"getDependency",value:function(e,t){if("light"===e)return this._loadLight(t)}},{key:"createNodeAttachment",value:function(e){var t=this,r=this.parser,n=r.json.nodes[e],a=(n.extensions&&n.extensions[this.name]||{}).light;return void 0===a?null:this._loadLight(a).then(function(e){return r._getNodeRef(t.cache,a,e)})}}]),e}(),S=function(){function e(){(0,a._)(this,e),this.name=L.KHR_MATERIALS_UNLIT}return(0,i._)(e,[{key:"getMaterialType",value:function(){return I.MeshBasicMaterial}},{key:"extendParams",value:function(e,t,r){var n=[];e.color=new I.Color(1,1,1),e.opacity=1;var a=t.pbrMetallicRoughness;if(a){if(Array.isArray(a.baseColorFactor)){var i=a.baseColorFactor;e.color.setRGB(i[0],i[1],i[2],x),e.opacity=i[3]}void 0!==a.baseColorTexture&&n.push(r.assignTexture(e,"map",a.baseColorTexture,T))}return Promise.all(n)}}]),e}(),w=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_EMISSIVE_STRENGTH}return(0,i._)(e,[{key:"extendMaterialParams",value:function(e,t){var r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();var n=r.extensions[this.name].emissiveStrength;return void 0!==n&&(t.emissiveIntensity=n),Promise.resolve()}}]),e}(),_=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_CLEARCOAT}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];if(void 0!==i.clearcoatFactor&&(t.clearcoat=i.clearcoatFactor),void 0!==i.clearcoatTexture&&a.push(r.assignTexture(t,"clearcoatMap",i.clearcoatTexture)),void 0!==i.clearcoatRoughnessFactor&&(t.clearcoatRoughness=i.clearcoatRoughnessFactor),void 0!==i.clearcoatRoughnessTexture&&a.push(r.assignTexture(t,"clearcoatRoughnessMap",i.clearcoatRoughnessTexture)),void 0!==i.clearcoatNormalTexture&&(a.push(r.assignTexture(t,"clearcoatNormalMap",i.clearcoatNormalTexture)),void 0!==i.clearcoatNormalTexture.scale)){var o=i.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new I.Vector2(o,o)}return Promise.all(a)}}]),e}(),k=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_DISPERSION}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();var n=r.extensions[this.name];return t.dispersion=void 0!==n.dispersion?n.dispersion:0,Promise.resolve()}}]),e}(),O=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_IRIDESCENCE}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];return void 0!==i.iridescenceFactor&&(t.iridescence=i.iridescenceFactor),void 0!==i.iridescenceTexture&&a.push(r.assignTexture(t,"iridescenceMap",i.iridescenceTexture)),void 0!==i.iridescenceIor&&(t.iridescenceIOR=i.iridescenceIor),void 0===t.iridescenceThicknessRange&&(t.iridescenceThicknessRange=[100,400]),void 0!==i.iridescenceThicknessMinimum&&(t.iridescenceThicknessRange[0]=i.iridescenceThicknessMinimum),void 0!==i.iridescenceThicknessMaximum&&(t.iridescenceThicknessRange[1]=i.iridescenceThicknessMaximum),void 0!==i.iridescenceThicknessTexture&&a.push(r.assignTexture(t,"iridescenceThicknessMap",i.iridescenceThicknessTexture)),Promise.all(a)}}]),e}(),U=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_SHEEN}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[];t.sheenColor=new I.Color(0,0,0),t.sheenRoughness=0,t.sheen=1;var i=n.extensions[this.name];if(void 0!==i.sheenColorFactor){var o=i.sheenColorFactor;t.sheenColor.setRGB(o[0],o[1],o[2],x)}return void 0!==i.sheenRoughnessFactor&&(t.sheenRoughness=i.sheenRoughnessFactor),void 0!==i.sheenColorTexture&&a.push(r.assignTexture(t,"sheenColorMap",i.sheenColorTexture,T)),void 0!==i.sheenRoughnessTexture&&a.push(r.assignTexture(t,"sheenRoughnessMap",i.sheenRoughnessTexture)),Promise.all(a)}}]),e}(),P=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_TRANSMISSION}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];return void 0!==i.transmissionFactor&&(t.transmission=i.transmissionFactor),void 0!==i.transmissionTexture&&a.push(r.assignTexture(t,"transmissionMap",i.transmissionTexture)),Promise.all(a)}}]),e}(),K=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_VOLUME}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];t.thickness=void 0!==i.thicknessFactor?i.thicknessFactor:0,void 0!==i.thicknessTexture&&a.push(r.assignTexture(t,"thicknessMap",i.thicknessTexture)),t.attenuationDistance=i.attenuationDistance||1/0;var o=i.attenuationColor||[1,1,1];return t.attenuationColor=new I.Color().setRGB(o[0],o[1],o[2],x),Promise.all(a)}}]),e}(),N=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_IOR}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser.json.materials[e];if(!r.extensions||!r.extensions[this.name])return Promise.resolve();var n=r.extensions[this.name];return t.ior=void 0!==n.ior?n.ior:1.5,Promise.resolve()}}]),e}(),Q=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_SPECULAR}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];t.specularIntensity=void 0!==i.specularFactor?i.specularFactor:1,void 0!==i.specularTexture&&a.push(r.assignTexture(t,"specularIntensityMap",i.specularTexture));var o=i.specularColorFactor||[1,1,1];return t.specularColor=new I.Color().setRGB(o[0],o[1],o[2],x),void 0!==i.specularColorTexture&&a.push(r.assignTexture(t,"specularColorMap",i.specularColorTexture,T)),Promise.all(a)}}]),e}(),X=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.EXT_MATERIALS_BUMP}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];return t.bumpScale=void 0!==i.bumpFactor?i.bumpFactor:1,void 0!==i.bumpTexture&&a.push(r.assignTexture(t,"bumpMap",i.bumpTexture)),Promise.all(a)}}]),e}(),j=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_MATERIALS_ANISOTROPY}return(0,i._)(e,[{key:"getMaterialType",value:function(e){var t=this.parser.json.materials[e];return t.extensions&&t.extensions[this.name]?I.MeshPhysicalMaterial:null}},{key:"extendMaterialParams",value:function(e,t){var r=this.parser,n=r.json.materials[e];if(!n.extensions||!n.extensions[this.name])return Promise.resolve();var a=[],i=n.extensions[this.name];return void 0!==i.anisotropyStrength&&(t.anisotropy=i.anisotropyStrength),void 0!==i.anisotropyRotation&&(t.anisotropyRotation=i.anisotropyRotation),void 0!==i.anisotropyTexture&&a.push(r.assignTexture(t,"anisotropyMap",i.anisotropyTexture)),Promise.all(a)}}]),e}(),Y=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.KHR_TEXTURE_BASISU}return(0,i._)(e,[{key:"loadTexture",value:function(e){var t=this.parser,r=t.json,n=r.textures[e];if(!n.extensions||!n.extensions[this.name])return null;var a=n.extensions[this.name],i=t.options.ktx2Loader;if(!i)if(!(r.extensionsRequired&&r.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return t.loadTextureImage(e,a.source,i)}}]),e}(),Z=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.EXT_TEXTURE_WEBP,this.isSupported=null}return(0,i._)(e,[{key:"loadTexture",value:function(e){var t=this.name,r=this.parser,n=r.json,a=n.textures[e];if(!a.extensions||!a.extensions[t])return null;var i=a.extensions[t],o=n.images[i.source],s=r.textureLoader;if(o.uri){var l=r.options.manager.getHandler(o.uri);null!==l&&(s=l)}
1return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(e,i.source,s);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)})}},{key:"detectSupport",value:function(){return this.isSupported||(this.isSupported=new Promise(function(e){var t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}]),e}(),W=function(){function e(t){(0,a._)(this,e),this.parser=t,this.name=L.EXT_TEXTURE_AVIF,this.isSupported=null}return(0,i._)(e,[{key:"loadTexture",value:function(e){var t=this.name,r=this.parser,n=r.json,a=n.textures[e];if(!a.extensions||!a.extensions[t])return null;var i=a.extensions[t],o=n.images[i.source],s=r.textureLoader;if(o.uri){var l=r.options.manager.getHandler(o.uri);null!==l&&(s=l)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(e,i.source,s);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)})}},{key:"detectSupport",value:function(){return this.isSupported||(this.isSupported=new Promise(function(e){var t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}]),e}(),V=function(){function e(t){(0,a._)(this,e),this.name=L.EXT_MESHOPT_COMPRESSION,this.parser=t}return(0,i._)(e,[{key:"loadBufferView",value:function(e){var t=this.parser.json,r=t.bufferViews[e];if(!r.extensions||!r.extensions[this.name])return null;var n=r.extensions[this.name],a=this.parser.getDependency("buffer",n.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported)if(!(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0))return null;else throw Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return a.then(function(e){var t=n.byteOffset||0,r=n.byteLength||0,a=n.count,o=n.byteStride,s=new Uint8Array(e,t,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(a,o,s,n.mode,n.filter).then(function(e){return e.buffer}):i.ready.then(function(){var e=new ArrayBuffer(a*o);return i.decodeGltfBuffer(new Uint8Array(e),a,o,s,n.mode,n.filter),e})})}}]),e}(),z=function(){function e(t){(0,a._)(this,e),this.name=L.EXT_MESH_GPU_INSTANCING,this.parser=t}return(0,i._)(e,[{key:"createNodeMesh",value:function(e){var t,r=function(e){h.push(t.parser.getDependency("accessor",d[e]).then(function(t){return C[e]=t,C[e]}))},n=this,a=this.parser.json,i=a.nodes[e];if(!i.extensions||!i.extensions[this.name]||void 0===i.mesh)return null;var o=a.meshes[i.mesh],s=!0,l=!1,A=void 0;try{for(var u,c=o.primitives[Symbol.iterator]();!(s=(u=c.next()).done);s=!0){var B=u.value;if(B.mode!==eo.TRIANGLES&&B.mode!==eo.TRIANGLE_STRIP&&B.mode!==eo.TRIANGLE_FAN&&void 0!==B.mode)return null}}catch(e){l=!0,A=e}finally{try{s||null==c.return||c.return()}finally{if(l)throw A}}var d=i.extensions[this.name].attributes,h=[],C={};for(var f in d)t=this,r(f);return h.length<1?null:(h.push(this.parser.createNodeMesh(e)),Promise.all(h).then(function(e){var t=e.pop(),r=t.isGroup?t.children:[t],a=e[0].count,i=[],o=!0,s=!1,l=void 0;try{for(var A,u=r[Symbol.iterator]();!(o=(A=u.next()).done);o=!0){for(var c=A.value,B=new I.Matrix4,d=new I.Vector3,h=new I.Quaternion,f=new I.Vector3(1,1,1),m=new I.InstancedMesh(c.geometry,c.material,a),v=0;v<a;v++)C.TRANSLATION&&d.fromBufferAttribute(C.TRANSLATION,v),C.ROTATION&&h.fromBufferAttribute(C.ROTATION,v),C.SCALE&&f.fromBufferAttribute(C.SCALE,v),m.setMatrixAt(v,B.compose(d,h,f));for(var p in C)if("_COLOR_0"===p){var g=C[p];m.instanceColor=new I.InstancedBufferAttribute(g.array,g.itemSize,g.normalized)}else"TRANSLATION"!==p&&"ROTATION"!==p&&"SCALE"!==p&&c.geometry.setAttribute(p,C[p]);I.Object3D.prototype.copy.call(m,c),n.parser.assignFinalMaterial(m),i.push(m)}}catch(e){s=!0,l=e}finally{try{o||null==u.return||u.return()}finally{if(s)throw l}}return t.isGroup?(t.clear(),t.add.apply(t,(0,G._)(i)),t):i[0]}))}}]),e}(),q="glTF",$=function e(t){(0,a._)(this,e),this.name=L.KHR_BINARY_GLTF,this.content=null,this.body=null;var r=new DataView(t,0,12);if(this.header={magic:D(new Uint8Array(t.slice(0,4))),version:r.getUint32(4,!0),length:r.getUint32(8,!0)},this.header.magic!==q)throw Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw Error("THREE.GLTFLoader: Legacy binary file detected.");for(var n=this.header.length-12,i=new DataView(t,12),o=0;o<n;){var s=i.getUint32(o,!0);o+=4;var l=i.getUint32(o,!0);if(o+=4,0x4e4f534a===l){var A=new Uint8Array(t,12+o,s);this.content=D(A)}else if(5130562===l){var u=12+o;this.body=t.slice(u,u+s)}o+=s}if(null===this.content)throw Error("THREE.GLTFLoader: JSON content not found.")},ee=function(){function e(t,r){if((0,a._)(this,e),!r)throw Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=L.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=r,this.dracoLoader.preload()}return(0,i._)(e,[{key:"decodePrimitive",value:function(e,t){var r=this.json,n=this.dracoLoader,a=e.extensions[this.name].bufferView,i=e.extensions[this.name].attributes,o={},s={},l={};for(var A in i)o[ec[A]||A.toLowerCase()]=i[A];for(var u in e.attributes){var c=ec[u]||u.toLowerCase();if(void 0!==i[u]){var B=r.accessors[e.attributes[u]],d=es[B.componentType];l[c]=d.name,s[c]=!0===B.normalized}}return t.getDependency("bufferView",a).then(function(e){return new Promise(function(t,r){n.decodeDracoFile(e,function(e){for(var r in e.attributes){var n=e.attributes[r],a=s[r];void 0!==a&&(n.normalized=a)}t(e)},o,l,x,r)})})}}]),e}(),et=function(){function e(){(0,a._)(this,e),this.name=L.KHR_TEXTURE_TRANSFORM}return(0,i._)(e,[{key:"extendTexture",value:function(e,t){return(void 0===t.texCoord||t.texCoord===e.channel)&&void 0===t.offset&&void 0===t.rotation&&void 0===t.scale||(e=e.clone(),void 0!==t.texCoord&&(e.channel=t.texCoord),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}}]),e}
1(),er=function e(){(0,a._)(this,e),this.name=L.KHR_MESH_QUANTIZATION},en=function(e){function t(e,r,i,o){return(0,a._)(this,t),(0,n._)(this,t,[e,r,i,o])}return(0,o._)(t,e),(0,i._)(t,[{key:"copySampleValue_",value:function(e){for(var t=this.resultBuffer,r=this.sampleValues,n=this.valueSize,a=e*n*3+n,i=0;i!==n;i++)t[i]=r[a+i];return t}},{key:"interpolate_",value:function(e,t,r,n){for(var a=this.resultBuffer,i=this.sampleValues,o=this.valueSize,s=2*o,l=3*o,A=n-t,u=(r-t)/A,c=u*u,B=c*u,d=e*l,h=d-l,C=-2*B+3*c,f=B-c,m=1-C,v=f-c+u,p=0;p!==o;p++){var g=i[h+p+o],M=i[h+p+s]*A,F=i[d+p+o],E=i[d+p]*A;a[p]=m*g+v*M+C*F+f*E}return a}}]),t}(I.Interpolant),ea=new I.Quaternion,ei=function(e){function t(){return(0,a._)(this,t),(0,n._)(this,t,arguments)}return(0,o._)(t,e),(0,i._)(t,[{key:"interpolate_",value:function(e,r,n,a){var i=(0,g._)((0,M._)(t.prototype),"interpolate_",this).call(this,e,r,n,a);return ea.fromArray(i).normalize().toArray(i),i}}]),t}(en),eo={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},es={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},el={9728:I.NearestFilter,9729:I.LinearFilter,9984:I.NearestMipmapNearestFilter,9985:I.LinearMipmapNearestFilter,9986:I.NearestMipmapLinearFilter,9987:I.LinearMipmapLinearFilter},eA={33071:I.ClampToEdgeWrapping,33648:I.MirroredRepeatWrapping,10497:I.RepeatWrapping},eu={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ec=(0,E._)((0,F._)({POSITION:"position",NORMAL:"normal",TANGENT:"tangent"},R.version>=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"}),{COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"}),eB={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},ed={CUBICSPLINE:void 0,LINEAR:I.InterpolateLinear,STEP:I.InterpolateDiscrete};function eh(e,t,r){for(var n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function eC(e,t){void 0!==t.extras&&("object"===(0,A._)(t.extras)?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function ef(e){for(var t="",r=Object.keys(e).sort(),n=0,a=r.length;n<a;n++)t+=r[n]+":"+e[r[n]]+";";return t}function em(e){switch(e){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}var ev=new I.Matrix4,ep=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,a._)(this,e),this.json=t,this.extensions={},this.plugins={},this.options=r,this.cache=new b,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={};var n=!1,i=!1,o=-1;"undefined"!=typeof navigator&&void 0!==navigator.userAgent&&(n=!0===/^((?!chrome|android).)*safari/i.test(navigator.userAgent),o=(i=navigator.userAgent.indexOf("Firefox")>-1)?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&o<98?this.textureLoader=new I.TextureLoader(this.options.manager):this.textureLoader=new I.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new I.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}return(0,i._)(e,[{key:"setExtensions",value:function(e){this.extensions=e}},{key:"setPlugins",value:function(e){this.plugins=e}},{key:"parse",value:function(e,t){var r=this,n=this.json,a=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(e){return e._markDefs&&e._markDefs()}),Promise.all(this._invokeAll(function(e){return e.beforeRoot&&e.beforeRoot()}
1)).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(t){var i={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:r,userData:{}};return eh(a,i,n),eC(i,n),Promise.all(r._invokeAll(function(e){return e.afterRoot&&e.afterRoot(i)})).then(function(){var t=!0,r=!1,n=void 0;try{for(var a,o=i.scenes[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)a.value.updateMatrixWorld()}catch(e){r=!0,n=e}finally{try{t||null==o.return||o.return()}finally{if(r)throw n}}e(i)})}).catch(t)}},{key:"_markDefs",value:function(){for(var e=this.json.nodes||[],t=this.json.skins||[],r=this.json.meshes||[],n=0,a=t.length;n<a;n++)for(var i=t[n].joints,o=0,s=i.length;o<s;o++)e[i[o]].isBone=!0;for(var l=0,A=e.length;l<A;l++){var u=e[l];void 0!==u.mesh&&(this._addNodeRef(this.meshCache,u.mesh),void 0!==u.skin&&(r[u.mesh].isSkinnedMesh=!0)),void 0!==u.camera&&this._addNodeRef(this.cameraCache,u.camera)}}},{key:"_addNodeRef",value:function(e,t){void 0!==t&&(void 0===e.refs[t]&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}},{key:"_getNodeRef",value:function(e,t,r){var n=this;if(e.refs[t]<=1)return r;var a=r.clone(),i=function(e,t){var r=n.associations.get(e);null!=r&&n.associations.set(t,r);var a=!0,o=!1,s=void 0;try{for(var A,u=e.children.entries()[Symbol.iterator]();!(a=(A=u.next()).done);a=!0){var c=(0,l._)(A.value,2),B=c[0],d=c[1];i(d,t.children[B])}}catch(e){o=!0,s=e}finally{try{a||null==u.return||u.return()}finally{if(o)throw s}}};return i(r,a),a.name+="_instance_"+e.uses[t]++,a}},{key:"_invokeOne",value:function(e){var t=Object.values(this.plugins);t.push(this);for(var r=0;r<t.length;r++){var n=e(t[r]);if(n)return n}return null}},{key:"_invokeAll",value:function(e){var t=Object.values(this.plugins);t.unshift(this);for(var r=[],n=0;n<t.length;n++){var a=e(t[n]);a&&r.push(a)}return r}},{key:"getDependency",value:function(e,t){var r=e+":"+t,n=this.cache.get(r);if(!n){switch(e){case"scene":n=this.loadScene(t);break;case"node":n=this._invokeOne(function(e){return e.loadNode&&e.loadNode(t)});break;case"mesh":n=this._invokeOne(function(e){return e.loadMesh&&e.loadMesh(t)});break;case"accessor":n=this.loadAccessor(t);break;case"bufferView":n=this._invokeOne(function(e){return e.loadBufferView&&e.loadBufferView(t)});break;case"buffer":n=this.loadBuffer(t);break;case"material":n=this._invokeOne(function(e){return e.loadMaterial&&e.loadMaterial(t)});break;case"texture":n=this._invokeOne(function(e){return e.loadTexture&&e.loadTexture(t)});break;case"skin":n=this.loadSkin(t);break;case"animation":n=this._invokeOne(function(e){return e.loadAnimation&&e.loadAnimation(t)});break;case"camera":n=this.loadCamera(t);break;default:if(!(n=this._invokeOne(function(r){return r!=this&&r.getDependency&&r.getDependency(e,t)})))throw Error("Unknown type: "+e)}this.cache.add(r,n)}return n}},{key:"getDependencies",value:function(e){var t=this.cache.get(e);if(!t){var r=this;t=Promise.all((this.json[e+("mesh"===e?"es":"s")]||[]).map(function(t,n){return r.getDependency(e,n)})),this.cache.add(e,t)}return t}},{key:"loadBuffer",value:function(e){var t=this.json.buffers[e],r=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[L.KHR_BINARY_GLTF].body);var n=this.options;return new Promise(function(e,a){r.load(I.LoaderUtils.resolveURL(t.uri,n.path),e,void 0,function(){a(Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}},{key:"loadBufferView",value:function(e){var t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(e){var r=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+r)})}},{key:"loadAccessor",value:function(e){var t=this,r=this.json,n=this.json.accessors[e];if(void 0===n.bufferView&&void 0===n.sparse){var a=eu[n.type],i=es[n.componentType],o=!0===n.normalized,s=new i(n.count*a);return Promise.resolve(new I.BufferAttribute(s,a,o))}var l=[];return void 0!==n.bufferView?l.push(this.getDependency("bufferView",n.bufferView)):l.push(null),void 0!==n.sparse&&(l.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),l.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(l).then(function(e){var a,i,o=e[0],s=eu[n.type],l=es[n.componentType],A=l.BYTES_PER_ELEMENT,u=A*s,c=n.byteOffset||0,B=void 0!==n.bufferView?r.bufferViews[n.bufferView].byteStride:void 0,d=!0===n.normalized;if(B&&B!==u){var h=Math.floor(c/B),C="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+h+":"+n.count,f=t.cache.get(C);f||(a=new l(o,h*B,n.count*B/A),f=new I.InterleavedBuffer(a,B/A),t.cache.add(C,f)),i=new I.InterleavedBufferAttribute(f,s,c%B/A,d)}else a=null===o?new l(n.count*s):new l(o,c,n.count*s),i=new I.BufferAttribute(a,s,d);if(void 0!==n.sparse){var m=eu.SCALAR,v=es[n.sparse.indices.componentType],p=n.sparse.indices.byteOffset||0,g=n.sparse.values.byteOffset||0,M=new v(e[1],p,n.sparse.count*m),F=new l(e[2],g,n.sparse.count*s);null!==o&&(i=new I.BufferAttribute(i.array.slice(),i.itemSize,i.normalized));for(var E=0,G=M.length;E<G;E++){var y=M[E];if(i.setX(y,F[E*s]),s>=2&&i.setY(y,F[E*s+1]),s>=3&&i.setZ(y,F[E*s+2]),s>=4&&i.setW(y,F[E*s+3]),s>=5)throw Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return i})}},{key:"loadTexture",value:function(e){var t=this.json,r=this.options,n=t.textures[e].source,a=t.images[n],i=this.textureLoader;if(a.uri){var o=r.manager.getHandler(a.uri);null!==o&&(i=o)}return this.loadTextureImage(e,n,i)}},{key:"loadTextureImage",value:function(e,t,r){var n=this,a=this.json,i=a.textures[e],o=a.images[t],s=(o.uri||o.bufferView)+":"+i.sampler;if(this.textureCache[s])return this.textureCache[s];var l=this.loadImageSource(t,r).then(function(t){t.flipY=!1,t.name=i.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);var r=(a.samplers||{})[i.sampler]||{};return t.magFilter=el[r.magFilter]||I.LinearFilter,t.minFilter=el[r.minFilter]||I.LinearMipmapLinearFilter,t.wrapS=eA[r.wrapS]||I.RepeatWrapping,t.wrapT=eA[r.wrapT]||I.RepeatWrapping,n.associations.set(t,{textures:e}),t}).catch(function(){return null});return this.textureCache[s]=l,l}},{key:"loadImageSource",value:function(e,t){var r=this.json,n=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(function(e){return e.clone()});
1var a=r.images[e],i=self.URL||self.webkitURL,o=a.uri||"",s=!1;if(void 0!==a.bufferView)o=this.getDependency("bufferView",a.bufferView).then(function(e){s=!0;var t=new Blob([e],{type:a.mimeType});return o=i.createObjectURL(t)});else if(void 0===a.uri)throw Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");var l=Promise.resolve(o).then(function(e){return new Promise(function(r,a){var i=r;!0===t.isImageBitmapLoader&&(i=function(e){var t=new I.Texture(e);t.needsUpdate=!0,r(t)}),t.load(I.LoaderUtils.resolveURL(e,n.path),i,void 0,a)})}).then(function(e){var t;return!0===s&&i.revokeObjectURL(o),eC(e,a),e.userData.mimeType=a.mimeType||((t=a.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e}).catch(function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",o),e});return this.sourceCache[e]=l,l}},{key:"assignTexture",value:function(e,t,r,n){var a=this;return this.getDependency("texture",r.index).then(function(i){if(!i)return null;if(void 0!==r.texCoord&&r.texCoord>0&&((i=i.clone()).channel=r.texCoord),a.extensions[L.KHR_TEXTURE_TRANSFORM]){var o=void 0!==r.extensions?r.extensions[L.KHR_TEXTURE_TRANSFORM]:void 0;if(o){var s=a.associations.get(i);i=a.extensions[L.KHR_TEXTURE_TRANSFORM].extendTexture(i,o),a.associations.set(i,s)}}return void 0!==n&&("number"==typeof n&&(n=3001===n?T:x),"colorSpace"in i?i.colorSpace
1=n:i.encoding=n===T?3001:3e3),e[t]=i,i})}},{key:"assignFinalMaterial",value:function(e){var t=e.geometry,r=e.material,n=void 0===t.attributes.tangent,a=void 0!==t.attributes.color,i=void 0===t.attributes.normal;if(e.isPoints){var o="PointsMaterial:"+r.uuid,s=this.cache.get(o);s||(s=new I.PointsMaterial,I.Material.prototype.copy.call(s,r),s.color.copy(r.color),s.map=r.map,s.sizeAttenuation=!1,this.cache.add(o,s)),r=s}else if(e.isLine){var l="LineBasicMaterial:"+r.uuid,A=this.cache.get(l);A||(A=new I.LineBasicMaterial,I.Material.prototype.copy.call(A,r),A.color.copy(r.color),A.map=r.map,this.cache.add(l,A)),r=A}if(n||a||i){var u="ClonedMaterial:"+r.uuid+":";n&&(u+="derivative-tangents:"),a&&(u+="vertex-colors:"),i&&(u+="flat-shading:");var c=this.cache.get(u);c||(c=r.clone(),a&&(c.vertexColors=!0),i&&(c.flatShading=!0),n&&(c.normalScale&&(c.normalScale.y*=-1),c.clearcoatNormalScale&&(c.clearcoatNormalScale.y*=-1)),this.cache.add(u,c),this.associations.set(c,this.associations.get(r))),r=c}e.material=r}},{key:"getMaterialType",value:function(){return I.MeshStandardMaterial}},{key:"loadMaterial",value:function(e){var t,r=this,n=this.json,a=this.extensions,i=n.materials[e],o={},s=i.extensions||{},l=[];if(s[L.KHR_MATERIALS_UNLIT]){var A=a[L.KHR_MATERIALS_UNLIT];t=A.getMaterialType(),l.push(A.extendParams(o,i,r))}else{var u=i.pbrMetallicRoughness||{};if(o.color=new I.Color(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){var c=u.baseColorFactor;o.color.setRGB(c[0],c[1],c[2],x),o.opacity=c[3]}void 0!==u.baseColorTexture&&l.push(r.assignTexture(o,"map",u.baseColorTexture,T)),o.metalness=void 0!==u.metallicFactor?u.metallicFactor:1,o.roughness=void 0!==u.roughnessFactor?u.roughnessFactor:1,void 0!==u.metallicRoughnessTexture&&(l.push(r.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),l.push(r.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),t=this._invokeOne(function(t){return t.getMaterialType&&t.getMaterialType(e)}),l.push(Promise.all(this._invokeAll(function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)})))}!0===i.doubleSided&&(o.side=I.DoubleSide);var B=i.alphaMode||"OPAQUE";if("BLEND"===B?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,"MASK"===B&&(o.alphaTest=void 0!==i.alphaCutoff?i.alphaCutoff:.5)),void 0!==i.normalTexture&&t!==I.MeshBasicMaterial&&(l.push(r.assignTexture(o,"normalMap",i.normalTexture)),o.normalScale=new I.Vector2(1,1),void 0!==i.normalTexture.scale)){var d=i.normalTexture.scale;o.normalScale.set(d,d)}if(void 0!==i.occlusionTexture&&t!==I.MeshBasicMaterial&&(l.push(r.assignTexture(o,"aoMap",i.occlusionTexture)),void 0!==i.occlusionTexture.strength&&(o.aoMapIntensity=i.occlusionTexture.strength)),void 0!==i.emissiveFactor&&t!==I.MeshBasicMaterial){var h=i.emissiveFactor;o.emissive=new I.Color().setRGB(h[0],h[1],h[2],x)}return void 0!==i.emissiveTexture&&t!==I.MeshBasicMaterial&&l.push(r.assignTexture(o,"emissiveMap",i.emissiveTexture,T)),Promise.all(l).then(function(){var n=new t(o);return i.name&&(n.name=i.name),eC(n,i),r.associations.set(n,{materials:e}),i.extensions&&eh(a,n,i),n})}},{key:"createUniqueName",value:function(e){var t=I.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}},{key:"loadGeometries",value:function(e){for(var t=this,r=this.extensions,n=this.primitiveCache,a=[],i=0,o=e.length;i<o;i++){var s=e[i],l=function(e){var t,r=e.extensions&&e.extensions[L.KHR_DRACO_MESH_COMPRESSION];if(t=r?"draco:"+r.bufferView+":"+r.indices+":"+ef(r.attributes):e.indices+":"+ef(e.attributes)+":"+e.mode,void 0!==e.targets)for(var n=0,a=e.targets.length;n<a;n++)t+=":"+ef(e.targets[n]);return t}(s),A=n[l];if(A)a.push(A.promise);else{var u=void 0;u=s.extensions&&s.extensions[L.KHR_DRACO_MESH_COMPRESSION]?function(e){return r[L.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then(function(r){return eg(r,e,t)})}(s):eg(new I.BufferGeometry,s,t),n[l]={primitive:s,promise:u},a.push(u)}}return Promise.all(a)}},{key:"loadMesh",value:function(e){for(var t=this,r=this.json,n=this.extensions,a=r.meshes[e],i=a.primitives,o=[],s=0,l=i.length;s<l;s++){var A,u=void 0===i[s].material?(void 0===(A=this.cache).DefaultMaterial&&(A.DefaultMaterial=new I.MeshStandardMaterial({color:0xffffff,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:I.FrontSide})),A.DefaultMaterial):this.getDependency("material",i[s].material);o.push(u)}return o.push(t.loadGeometries(i)),Promise.all(o).then(function(r){for(var o=r.slice(0,r.length-1),s=r[r.length-1],l=[],A=0,u=s.length;A<u;A++){var c=s[A],B=i[A],d=void 0,h=o[A];if(B.mode===eo.TRIANGLES||B.mode===eo.TRIANGLE_STRIP||B.mode===eo.TRIANGLE_FAN||void 0===B.mode)!0===(d=!0===a.isSkinnedMesh?new I.SkinnedMesh(c,h):new I.Mesh(c,h)).isSkinnedMesh&&d.normalizeSkinWeights(),B.mode===eo.TRIANGLE_STRIP?d.geometry=y(d.geometry,I.TriangleStripDrawMode):B.mode===eo.TRIANGLE_FAN&&(d.geometry=y(d.geometry,I.TriangleFanDrawMode));else if(B.mode===eo.LINES)d=new I.LineSegments(c,h);else if(B.mode===eo.LINE_STRIP)d=new I.Line(c,h);else if(B.mode===eo.LINE_LOOP)d=new I.LineLoop(c,h);else if(B.mode===eo.POINTS)d=new I.Points(c,h);else throw Error("THREE.GLTFLoader: Primitive mode unsupported: "+B.mode);Object.keys(d.geometry.morphAttributes).length>0&&function(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(var r=0,n=t.weights.length;r<n;r++)e.morphTargetInfluences[r]=t.weights[r];if(t.extras&&Array.isArray(t.extras.targetNames)){var a=t.extras.targetNames;if(e.morphTargetInfluences.length===a.length){e.morphTargetDictionary={};for(var i=0,o=a.length;i<o;i++)e.morphTargetDictionary[a[i]]=i}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}(d,a),d.name=t.createUniqueName(a.name||"mesh_"+e),eC(d,a),B.extensions&&eh(n,d,B),t.assignFinalMaterial(d),l.push(d)}for(var C=0,f=l.length;C<f;C++)t.associations.set(l[C],{meshes:e,primitives:C});if(1===l.length)return a.extensions&&eh(n,l[0],a),l[0];var m=new I.Group;a.extensions&&eh(n,m,a),t.associations.set(m,{meshes:e});for(var v=0,p=l.length;v<p;v++)m.add(l[v]);return m})}},{key:"loadCamera",value:function(e){var t,r=this.json.cameras[e],n=r[r.type];return n?("perspective"===r.type?t=new I.PerspectiveCamera(I.MathUtils.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):"orthographic"===r.type&&(t=new I.Orthogra
1phicCamera(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),r.name&&(t.name=this.createUniqueName(r.name)),eC(t,r),Promise.resolve(t)):void console.warn("THREE.GLTFLoader: Missing camera parameters.")}},{key:"loadSkin",value:function(e){for(var t=this.json.skins[e],r=[],n=0,a=t.joints.length;n<a;n++)r.push(this._loadNodeShallow(t.joints[n]));return void 0!==t.inverseBindMatrices?r.push(this.getDependency("accessor",t.inverseBindMatrices)):r.push(null),Promise.all(r).then(function(e){for(var r=e.pop(),n=[],a=[],i=0,o=e.length;i<o;i++){var s=e[i];if(s){n.push(s);var l=new I.Matrix4;null!==r&&l.fromArray(r.array,16*i),a.push(l)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[i])}return new I.Skeleton(n,a)})}},{key:"loadAnimation",value:function(e){for(var t=this.json,r=this,n=t.animations[e],a=n.name?n.name:"animation_"+e,i=[],o=[],s=[],l=[],A=[],u=0,c=n.channels.length;u<c;u++){var B=n.channels[u],d=n.samplers[B.sampler],h=B.target,C=h.node,f=void 0!==n.parameters?n.parameters[d.input]:d.input,m=void 0!==n.parameters?n.parameters[d.output]:d.output;void 0!==h.node&&(i.push(this.getDependency("node",C)),o.push(this.getDependency("accessor",f)),s.push(this.getDependency("accessor",m)),l.push(d),A.push(h))}return Promise.all([Promise.all(i),Promise.all(o),Promise.all(s),Promise.all(l),Promise.all(A)]).then(function(e){for(var t=e[0],n=e[1],i=e[2],o=e[3],s=e[4],l=[],A=0,u=t.length;A<u;A++){var c=t[A],B=n[A],d=i[A],h=o[A],C=s[A];if(void 0!==c){c.updateMatrix&&c.updateMatrix();var f=r._createAnimationTracks(c,B,d,h,C);if(f)for(var m=0;m<f.length;m++)l.push(f[m])}}return new I.AnimationClip(a,void 0,l)})}},{key:"createNodeMesh",value:function(e){var t=this.json,r=this,n=t.nodes[e];return void 0===n.mesh?null:r.getDependency("mesh",n.mesh).then(function(e){var t=r._getNodeRef(r.meshCache,n.mesh,e);return void 0!==n.weights&&t.traverse(function(e){if(e.isMesh)for(var t=0,r=n.weights.length;t<r;t++)e.morphTargetInfluences[t]=n.weights[t]}),t})}},{key:"loadNode",value:function(e){for(var t=this.json,r=t.nodes[e],n=this._loadNodeShallow(e),a=[],i=r.children||[],o=0,s=i.length;o<s;o++)a.push(this.getDependency("node",i[o]));var l=void 0===r.skin?Promise.resolve(null):this.getDependency("skin",r.skin);return Promise.all([n,Promise.all(a),l]).then(function(e){var t=e[0],r=e[1],n=e[2];null!==n&&t.traverse(function(e){e.isSkinnedMesh&&e.bind(n,ev)});for(var a=0,i=r.length;a<i;a++)t.add(r[a]);return t})}},{key:"_loadNodeShallow",value:function(e){var t=this.json,r=this.extensions,n=this;if(void 0!==this.nodeCache[e])return this.nodeCache[e];var a=t.nodes[e],i=a.name?n.createUniqueName(a.name):"",o=[],s=n._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(e)});return s&&o.push(s),void 0!==a.camera&&o.push(n.getDependency("camera",a.camera).then(function(e){return n._getNodeRef(n.cameraCache,a.camera,e)})),n._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(e)}).forEach(function(e){o.push(e)}),this.nodeCache[e]=Promise.all(o).then(function(t){var o;if((o=!0===a.isBone?new I.Bone:t.length>1?new I.Group:1===t.length?t[0]:new I.Object3D)!==t[0])for(var s=0,l=t.length;s<l;s++)o.add(t[s]);if(a.name&&(o.userData.name=a.name,o.name=i),eC(o,a),a.extensions&&eh(r,o,a),void 0!==a.matrix){var A=new I.Matrix4;A.fromArray(a.matrix),o.applyMatrix4(A)}else void 0!==a.translation&&o.position.fromArray(a.translation),void 0!==a.rotation&&o.quaternion.fromArray(a.rotation),void 0!==a.scale&&o.scale.fromArray(a.scale);return n.associations.has(o)||n.associations.set(o,{}),n.associations.get(o).nodes=e,o}),this.nodeCache[e]}},{key:"loadScene",value:function(e){var t=this.extensions,r=this.json.scenes[e],n=this,a=new I.Group;r.name&&(a.name=n.createUniqueName(r.name)),eC(a,r),r.extensions&&eh(t,a,r);for(var i=r.nodes||[],o=[],A=0,u=i.length;A<u;A++)o.push(n.getDependency("node",i[A]));return Promise.all(o).then(function(e){for(var t=0,r=e.length;t<r;t++)a.add(e[t]);return n.associations=function(e){var t=new Map,r=!0,a=!1,i=void 0;try{for(var o,A=n.associations[Symbol.iterator]();!(r=(o=A.next()).done);r=!0){var u=(0,l._)(o.value,2),c=u[0],B=u[1];((0,s._)(c,I.Material)||(0,s._)(c,I.Texture))&&t.set(c,B)}}catch(e){a=!0,i=e}finally{try{r||null==A.return||A.return()}finally{if(a)throw i}}return e.traverse(function(e){var r=n.associations.get(e);null!=r&&t.set(e,r)}),t}(a),a})}},{key:"_createAnimationTracks",value:function(e,t,r,n,a){var i,o=[],s=e.name?e.name:e.uuid,l=[];switch(eB[a.path]===eB.weights?e.traverse(function(e){e.morphTargetInfluences&&l.push(e.name?e.name:e.uuid)}):l.push(s),eB[a.path]){case eB.weights:i=I.NumberKeyframeTrack;break;case eB.rotation:i=I.QuaternionKeyframeTrack;break;case eB.position:case eB.scale:i=I.VectorKeyframeTrack;break;default:i=1===r.itemSize?I.NumberKeyframeTrack:I.VectorKeyframeTrack}for(var A=void 0!==n.interpolation?ed[n.interpolation]:I.InterpolateLinear,u=this._getArrayFromAccessor(r),c=0,B=l.length;c<B;c++){var d=new i(l[c]+"."+eB[a.path],t.array,u,A);
1"CUBICSPLINE"===n.interpolation&&this._createCubicSplineTrackInterpolant(d),o.push(d)}return o}},{key:"_getArrayFromAccessor",value:function(e){var t=e.array;if(e.normalized){for(var r=em(t.constructor),n=new Float32Array(t.length),a=0,i=t.length;a<i;a++)n[a]=t[a]*r;t=n}return t}},{key:"_createCubicSplineTrackInterpolant",value:function(e){e.createInterpolant=function(e){return new((0,s._)(this,I.QuaternionKeyframeTrack)?ei:en)(this.times,this.values,this.getValueSize()/3,e)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}]),e}();function eg(e,t,r){var n=t.attributes,a=[];for(var i in n){var o=ec[i]||i.toLowerCase();o in e.attributes||a.push(function(t,n){return r.getDependency("accessor",t).then(function(t){e.setAttribute(n,t)})}(n[i],o))}if(void 0!==t.indices&&!e.index){var s=r.getDependency("accessor",t.indices).then(function(t){e.setIndex(t)});a.push(s)}return eC(e,t),!function(e,t,r){var n=t.attributes,a=new I.Box3;if(void 0!==n.POSITION){var i=r.json.accessors[n.POSITION],o=i.min,s=i.max;if(void 0===o||void 0===s)return console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(a.set(new I.Vector3(o[0],o[1],o[2]),new I.Vector3(s[0],s[1],s[2])),i.normalized){var l=em(es[i.componentType]);a.min.multiplyScalar(l),a.max.multiplyScalar(l)}var A=t.targets;if(void 0!==A){for(var u=new I.Vector3,c=new I.Vector3,B=0,d=A.length;B<d;B++){var h=A[B];if(void 0!==h.POSITION){var C=r.json.accessors[h.POSITION],f=C.min,m=C.max;if(void 0!==f&&void 0!==m){if(c.setX(Math.max(Math.abs(f[0]),Math.abs(m[0]))),c.setY(Math.max(Math.abs(f[1]),Math.abs(m[1]))),c.setZ(Math.max(Math.abs(f[2]),Math.abs(m[2]))),C.normalized){var v=em(es[C.componentType]);c.multiplyScalar(v)}u.max(c)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}a.expandByVector(u)}e.boundingBox=a;var p=new I.Sphere;a.getCenter(p.center),p.radius=a.min.distanceTo(a.max)/2,e.boundingSphere=p}}(e,t,r),Promise.all(a).then(function(){return void 0!==t.targets?function(e,t,r){for(var n=!1,a=!1,i=!1,o=0,s=t.length;o<s;o++){var l=t[o];if(void 0!==l.POSITION&&(n=!0),void 0!==l.NORMAL&&(a=!0),void 0!==l.COLOR_0&&(i=!0),n&&a&&i)break}if(!n&&!a&&!i)return Promise.resolve(e);for(var A=[],u=[],c=[],B=0,d=t.length;B<d;B++){var h=t[B];if(n){var C=void 0!==h.POSITION?r.getDependency("accessor",h.POSITION):e.attributes.position;A.push(C)}if(a){var f=void 0!==h.NORMAL?r.getDependency("accessor",h.NORMAL):e.attributes.normal;u.push(f)}if(i){var m=void 0!==h.COLOR_0?r.getDependency("accessor",h.COLOR_0):e.attributes.color;c.push(m)}}return Promise.all([Promise.all(A),Promise.all(u),Promise.all(c)]).then(function(t){var r=t[0],o=t[1],s=t[2];return n&&(e.morphAttributes.position=r),a&&(e.morphAttributes.normal=o),i&&(e.morphAttributes.color=s),e.morphTargetsRelative=!0,e})}(e,t.targets,r):e})}var eM=new WeakMap,eF=function(e){function t(e){var r;return(0,a._)(this,t),(r=(0,n._)(this,t,[e])).decoderPath="",r.decoderConfig={},r.decoderBinary=null,r.decoderPending=null,r.workerLimit=4,r.workerPool=[],r.workerNextTaskID=1,r.workerSourceURL="",r.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},r.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"},r}return(0,o._)(t,e),(0,i._)(t,[{key:"setDecoderPath",value:function(e){return this.decoderPath=e,this}},{key:"setDecoderConfig",value:function(e){return this.decoderConfig=e,this}},{key:"setWorkerLimit",value:function(e){return this.workerLimit=e,this}},{key:"load",value:function(e,t,r,n){var a=this,i=new I.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,function(e){var r={attributeIDs:a.defaultAttributeIDs,attributeTypes:a.defaultAttributeTypes,useUniqueIDs:!1};a.decodeGeometry(e,r).then(t).catch(n)},r,n)}},{key:"decodeDracoFile",value:function(e,t,r,n){var a={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,a).then(t)}},{key:"decodeGeometry",value:function(e,t){var r,n=this;for(var a in t.attributeTypes){var i=t.attributeTypes[a];void 0!==i.BYTES_PER_ELEMENT&&(t.attributeTypes[a]=i.name)}var o=JSON.stringify(t);if(eM.has(e)){var s=eM.get(e);if(s.key===o)return s.promise;if(0===e.byteLength)throw Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}var l=this.workerNextTaskID++,A=e.byteLength,u=this._getWorker(l,A).then(function(n){return r=n,new Promise(function(n,a){r._callbacks[l]={resolve:n,reject:a},r.postMessage({type:"decode",id:l,taskConfig:t,buffer:e},[e])})}).then(function(e){return n._createGeometry(e.geometry)});return u.catch(function(){return!0}).then(function(){r&&l&&n._releaseTask(r,l)}),eM.set(e,{key:o,promise:u}),u}},{key:"_createGeometry",value:function(e){var t=new I.BufferGeometry;e.index&&t.setIndex(new I.BufferAttribute(e.index.array,1));for(var r=0;r<e.attributes.length;r++){var n=e.attributes[r],a=n.name,i=n.array,o=n.itemSize;t.setAttribute(a,new I.BufferAttribute(i,o))}return t}},{key:"_loadLibrary",value:function(e,t){var r=new I.FileLoader(this.manager);return r.setPath(this.decoderPath),r.setResponseType(t),r.setWithCredentials(this.withCredentials),new Promise(function(t,n){r.load(e,t,void 0,n)})}},{key:"preload",value:function(){return this._initDecoder(),this}},{key:"_initDecoder",value:function(){var e=this;if(this.decoderPending)return this.decoderPending;var t=("undefined"==typeof WebAssembly?"undefined":(0,A._)(WebAssembly))!=="object"||"js"===this.decoderConfig.type,r=[];return t?r.push(this._loadLibrary("draco_decoder.js","text")):(r.push(this._loadLibrary("draco_wasm_wrapper.js","text")),r.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(r).then(function(r){var n=r[0];t||(e.decoderConfig.wasmBinary=r[1]);var a=eE.toString(),i=["/* draco decoder */",n,"\n/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join("\n");e.workerSourceURL=URL.createObjectURL(new Blob([i]))}),this.decoderPending}},{key:"_getWorker",value:function(e,t){var r=this;return this._initDecoder().then(function(){if(r.workerPool.length<r.workerLimit){var n=new Worker(r.workerSourceURL);n._callbacks={},n._taskCosts={},n._taskLoad=0,n.postMessage({type:"init",decoderConfig:r.decoderConfig}),n.onmessage=function(e){var t=e.data;switch(t.type){case"decode":n._callbacks[t.id].resolve(t);break;case"error":n._callbacks[t.id].reject(t);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+t.type+'"')}},r.workerPool.push(n)}else r.workerPool.sort(function(e,t){return e._taskLoad>t._taskLoad?-1:1});var a=r.workerPool[r.workerPool.length-1];return a._taskCosts[e]=t,a._taskLoad+=t,a})}},{key:"_releaseTask",value:function(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}},{key:"debug",value:function(){console.log("Task load: ",this.workerPool.map(function(e){return e._taskLoad}))}},{key:"dispose",value:function(){for(var e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}]),t}(I.Loader);function eE(){var e,t;onmessage=function(r){var n=r.data;switch(n.type){case"init":e=n.decoderConfig,t=new Promise(function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)});break;case"decode":var a=n.buffer,i=n.taskConfig;t.then(function(e){var t=e.draco,r=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(a),a.byteLength);try{var s=function(e,t,r,n){var a,i,o,s,l,A,u,c,B,d=n.attributeIDs,h=n.attributeTypes,C=t.GetEncodedGeometryType(r);if(C===e.TRIANGULAR_MESH)c=new e.Mesh,B=t.DecodeBufferToMesh(r,c);else if(C===e.POINT_CLOUD)c=new e.PointCloud,B=t.DecodeBufferToPointCloud(r,c);else throw Error("THREE.DRACOLoader: Unexpected geometry type.");if(!B.ok()||0===c.ptr)throw Error("THREE.DRACOLoader: Decoding failed: "+B.error_msg());var f={index:null,attributes:[]};for(var m in d){var v=self[h[m]],p=void 0,g=void 0;if(n.useUniqueIDs)g=d[m],p=t.GetAttributeByUniqueId(c,g);else{if(-1===(g=t.GetAttributeId(c,e[d[m]])))continue;p=t.GetAttribute(c,g)}
1f.attributes.push(function(e,t,r,n,a,i){var o=i.num_components(),s=r.num_points()*o,l=s*a.BYTES_PER_ELEMENT,A=function(e,t){switch(t){case Float32Array:return e.DT_FLOAT32;case Int8Array:return e.DT_INT8;case Int16Array:return e.DT_INT16;case Int32Array:return e.DT_INT32;case Uint8Array:return e.DT_UINT8;case Uint16Array:return e.DT_UINT16;case Uint32Array:return e.DT_UINT32}}(e,a),u=e._malloc(l);t.GetAttributeDataArrayForAllPoints(r,i,A,l,u);var c=new a(e.HEAPF32.buffer,u,s).slice();return e._free(u),{name:n,array:c,itemSize:o}}(e,t,c,m,v,p))}return C===e.TRIANGULAR_MESH&&(a=e,i=t,o=c,s=3*o.num_faces(),l=4*s,A=a._malloc(l),i.GetTrianglesUInt32Array(o,l,A),u=new Uint32Array(a.HEAPF32.buffer,A,s).slice(),a._free(A),f.index={array:u,itemSize:1}),e.destroy(c),f}(t,r,o,i),l=s.attributes.map(function(e){return e.array.buffer});s.index&&l.push(s.index.array.buffer),self.postMessage({type:"decode",id:n.id,geometry:s},l)}catch(e){console.error(e),self.postMessage({type:"error",id:n.id,error:e.message})}finally{t.destroy(o),t.destroy(r)}})}}}var eG=function(){var e,r=function(t,r,n,a,i,o){var s=e.exports.sbrk,l=n+3&-4,A=s(l*a),u=s(i.length),c=new Uint8Array(e.exports.memory.buffer);c.set(i,u);var B=t(A,n,a,u,i.length);if(0===B&&o&&o(A,l,a),r.set(c.subarray(A,A+n*a)),s(A-s(0)),0!==B)throw Error("Malformed buffer data: ".concat(B))};if(t)return t;var n=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]),a=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(("undefined"==typeof WebAssembly?"undefined":(0,A._)(WebAssembly))!=="object")return{supported:!1};var i="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";
1WebAssembly.validate(n)&&(i="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");var o=WebAssembly.instantiate(function(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;++r){var n=e.charCodeAt(r);t[r]=n>96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}for(var i=0,o=0;o<e.length;
1++o)t[i++]=t[o]<60?a[t[o]]:(t[o]-60)*64+t[++o];return t.buffer.slice(0,i)}(i),{}).then(function(t){(e=t.instance).exports.__wasm_call_ctors()}),s={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return t={ready:o,supported:!0,decodeVertexBuffer:function(t,n,a,i,o){r(e.exports.meshopt_decodeVertexBuffer,t,n,a,i,e.exports[s[o]])},decodeIndexBuffer:function(t,n,a,i){r(e.exports.meshopt_decodeIndexBuffer,t,n,a,i)},decodeIndexSequence:function(t,n,a,i){r(e.exports.meshopt_decodeIndexSequence,t,n,a,i)},decodeGltfBuffer:function(t,n,a,i,o,A){r(e.exports[l[o]],t,n,a,i,e.exports[s[A]])}}},eI=function(e){var t=new Map,r=new Map,n=e.clone();return function e(t,r,n){n(t,r);for(var a=0;a<t.children.length;a++)e(t.children[a],r.children[a],n)}(e,n,function(e,n){t.set(n,e),r.set(e,n)}),n.traverse(function(e){if(e.isSkinnedMesh){var n=t.get(e),a=n.skeleton.bones;e.skeleton=n.skeleton.clone(),e.bindMatrix.copy(n.bindMatrix),e.skeleton.bones=a.map(function(e){return r.get(e)}),e.bind(e.skeleton,e.bindMatrix)}}),n},ey=h.forwardRef(function(e,t){var r=e.isChild,n=void 0!==r&&r,a=e.object,i=e.children,o=e.deep,l=e.castShadow,A=e.receiveShadow,u=e.inject,c=e.keys,B=(0,v._)(e,["isChild","object","children","deep","castShadow","receiveShadow","inject","keys"]),d={keys:c,deep:o,inject:u,castShadow:l,receiveShadow:A};if(Array.isArray(a=h.useMemo(function(){if(!1===n&&!Array.isArray(a)){var e=!1;if(a.traverse(function(t){t.isSkinnedMesh&&(e=!0)}),e)return eI(a)}return a},[a,n])))return h.createElement("group",(0,p.default)({},B,{ref:t}),a.map(function(e){return h.createElement(ey,(0,p.default)({key:e.uuid,object:e},d))}),i);var C=function(e,t){var r=t.keys,n=t.deep,a=t.inject,i=t.castShadow,o=t.receiveShadow,l={},A=!0,u=!1,c=void 0;try{for(var B,d=(void 0===r?["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"]:r)[Symbol.iterator]();!(A=(B=d.next()).done);A=!0){var C=B.value;l[C]=e[C]}}catch(e){u=!0,c=e}finally{try{A||null==d.return||d.return()}finally{if(u)throw c}}return n&&(l.geometry&&"materialsOnly"!==n&&(l.geometry=l.geometry.clone()),l.material&&"geometriesOnly"!==n&&(l.material=l.material.clone())),a&&(l="function"==typeof a?(0,E._)((0,F._)({},l),{children:a(e)}):h.isValidElement(a)?(0,E._)((0,F._)({},l),{children:a}):(0,F._)({},l,a)),(0,s._)(e,I.Mesh)&&(i&&(l.castShadow=!0),o&&(l.receiveShadow=!0)),l}(a,d),f=C.children,m=(0,v._)(C,["children"]),g=a.type[0].toLowerCase()+a.type.slice(1);return h.createElement(g,(0,p.default)({},m,B,{ref:t}),a.children.map(function(e){return"Bone"===e.type?h.createElement("primitive",(0,p.default)({key:e.uuid,object:e},d)):h.createElement(ey,(0,p.default)({key:e.uuid,object:e},d,{isChild:!0}))}),i,f)}),eR=null,eD="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function eT(){var e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],r=arguments.length>2?arguments[2]:void 0;return function(n){r&&r(n),e&&(eR||(eR=new eF),eR.setDecoderPath("string"==typeof e?e:eD),n.setDRACOLoader(eR)),t&&n.setMeshoptDecoder("function"==typeof eG?eG():eG)}}var ex=function(e,t,r,n){return(0,f.useLoader)(H,e,eT(t,r,n))};ex.preload=function(e,t,r,n){return f.useLoader.preload(H,e,eT(t,r,n))},ex.clear=function(e){return f.useLoader.clear(H,e)},ex.setDecoderPath=function(e){eD=e};var eH=e.i(340546),eb=e.i(374016);function eL(e){var t=(e||"").split("?")[0].toLowerCase();return t.endsWith(".fbx")?"fbx":t.endsWith(".glb")||t.endsWith(".gltf")?"glb":t.includes(".fbx")?"fbx":"glb"}var eJ=e.i(975157),eS=e.i(674401),ew=function(){function t(){(0,a._)(this,t)}return(0,i._)(t,null,[{key:"analyzeModel",value:function(e,t){try{var r=this.analyzeTriangles(e),n=this.analyzeBoundingBox(e,t),a=this.analyzeMaterials(e),i=this.analyzeTextures(e),o=this.calculateOverallStatus(r,n,a,i);return console.log("åè§æ£æ¥å®æ:",{triangles:r.current,boundingBox:n.
1current,materials:a.current,textures:i.current,overall:o}),{triangles:r,boundingBox:n,materials:a,textures:i,overall:o,timestamp:Date.now()}}catch(e){return console.error("åè§æ£æ¥å¤±è´¥:",e),this.getErrorResult()}}},{key:"analyzeFromUrl",value:function(t,n){return(0,r._)(function(){var r,a;return(0,u._)(this,function(i){switch(i.label){case 0:r=this,i.label=1;case 1:return i.trys.push([1,3,,4]),[4,e.A(577238)];case 2:return a=new(i.sent()).GLTFLoader,[2,new Promise(function(e,i){a.load(t,function(t){e(r.analyzeModel(t.scene,n))},function(e){console.log("模åå è½½è¿åº¦:",e.loaded/e.total*100+"%")},function(e){console.error("模åå 载失败:",e),i(e)})})];case 3:return console.error("GLBåæå¤±è´¥:",i.sent()),[2,this.getErrorResult()];case 4:return[2]}})}).call(this)}},{key:"analyzeTriangles",value:function(e){var t=0;e.traverse(function(e){if((0,s._)(e,I.Mesh)){var r=e.geometry;r.index?t+=r.index.count/3:t+=r.attributes.position.count/3}});var r=Math.floor(t),n=eS.ROBLOX_UGC_LIMITS.TECHNICAL_LIMITS.maxTriangles,a=eS.ROBLOX_UGC_LIMITS.COMPLIANCE_THRESHOLDS.yellowTriangles,i="green";return r>n?i="red":r>a&&(i="yellow"),{current:r,limit:n,status:i,percentage:r/n*100,message:"模åå
å« ".concat(r.toLocaleString()," 个ä¸è§å½¢")}}},{key:"analyzeBoundingBox",value:function(e,t){var r,n=new I.Box3;n.setFromObject(e);var a=n.getSize(new I.Vector3),i=eS.ROBLOX_UGC_LIMITS.SIZE_LIMITS["auto"===t?"Back":t],o=[a.x/i.width,a.y/i.height,a.z/i.depth],s=(r=Math).max.apply(r,(0,G._)(o)),l=[];o[0]>1&&l.push("宽度"),o[1]>1&&l.push("é«åº¦"),o[2]>1&&l.push("深度");var A="green",u=eS.ROBLOX_UGC_LIMITS.COMPLIANCE_THRESHOLDS.yellow;return s>eS.ROBLOX_UGC_LIMITS.COMPLIANCE_THRESHOLDS.red?A="red":s>u&&(A="yellow"),{current:[Math.round(100*a.x)/100,Math.round(100*a.y)/100,Math.round(100*a.z)/100],limit:[i.width,i.height,i.depth],status:A,maxRatio:Math.round(100*s)/100,violations:l}}},{key:"analyzeMaterials",value:function(e){var t=new Set;e.traverse(function(e){if((0,s._)(e,I.Mesh)){var r=e.material;Array.isArray(r)?r.forEach(function(e){return t.add(e)}):t.add(r)}});var r=t.size,n=eS.ROBLOX_UGC_LIMITS.TECHNICAL_LIMITS.maxMaterials;return{current:r,limit:n,status:r<=n?"green":"red",percentage:r/n*100,message:"ä½¿ç¨ ".concat(r," 个æè´¨").concat(r>1?"ï¼å»ºè®®å并为åæè´¨ï¼":"")}}},{key:"analyzeTextures",value:function(e){var t=0,r=new Set;e.traverse(function(e){if((0,s._)(e,I.Mesh)){var n=e.material,a=function(e){if(e&&e.image){r.add(e);var n=e.image,a=Math.max(n.width||0,n.height||0);t=Math.max(t,a)}};(0,s._)(n,I.MeshStandardMaterial)&&(a(n.map),a(n.normalMap),a(n.roughnessMap),a(n.metalnessMap),a(n.emissiveMap))}});var n=t||eS.ROBLOX_UGC_LIMITS.TECHNICAL_LIMITS.defaultTextureSize,a=eS.ROBLOX_UGC_LIMITS.TECHNICAL_LIMITS.maxTextureSize,i=eS.ROBLOX_UGC_LIMITS.TECHNICAL_LIMITS.maxTextureSize,o="green";return n>a?o="red":n>=i&&(o="yellow"),{current:n,limit:a,status:o,percentage:n/a*100,message:"æå¤§çº¹çå辨ç ".concat(n,"Ã").concat(n,"px")}}},{key:"calculateOverallStatus",value:function(e,t,r,n){return[e.status,t.status,r.status,n.status].includes("red")?"red":[e.status,t.status,r.status,n.status].includes("yellow")?"yellow":"green"}},{key:"getErrorResult",value:function(){var e={current:0,limit:0,status:"red",percentage:0,message:"æ£æµå¤±è´¥"};return{triangles:e,boundingBox:{current:[0,0,0],limit:[0,0,0],status:"red",maxRatio:0,violations:["æ£æµå¤±è´¥"]},materials:e,textures:e,overall:"red",timestamp:Date.now()}}}]),t}(),e_=function(){function t(){(0,a._)(this,t)}return(0,i._)(t,null,[{key:"get",value:function(t){return e.r(120941).AdvancedComplianceCache.get(t)}},{key:"set",value:function(t,r){e.r(120941).AdvancedComplianceCache.set(t,r)}},{key:"clear",value:function(){e.r(120941).AdvancedComplianceCache.clear()}},{key:"getStats",value:function(){return e.r(120941).AdvancedComplianceCache.getStats()}}]),t}(),ek=e.i(868275),eO=function(){function e(){(0,a._)(this,e)}return(0,i._)(e,null,[{key:"optimizeForCompliance",value:function(e,t){return(0,r._)(function(){var r,n,a,i,o,l;return(0,u._)(this,function(A){switch(A.label){case 0:console.log("ð§ å¼å§ä¸é®ä¼å模å"),A.label=1;case 1:if(A.trys.push([1,10,,11]),r=e.clone(),console.log("å½ååè§ç¶æ:",n=ew.analyzeModel(r,t)),"green"===n.overall)return console.log("â
模å已符ååè§è¦æ±ï¼æ éä¼å"),[2,{optimizedScene:r,beforeCompliance:n,afterCompliance:n,optimizationSteps:[],improvements:{}}];if(a=[],"green"===n.boundingBox.status)return[3,3];return[4,this.optimizeBoundingBox(r,t)];case 2:A.sent(),a.push("尺寸缩æ¾"),A.label=3;case 3:if("green"===n.triangles.status)return[3,5];return[4,this.optimizeTriangles(r)];case 4:A.sent(),a.push("å ä½ç®å"),A.label=5;case 5:if("green"===n.materials.status)return[3,7];return[4,this.optimizeMaterials(r)];case 6:A.sent(),a.push("æè´¨åå¹¶"),A.label=7;case 7:if("green"===n.textures.status)return[3,9];return[4,this.optimizeTextures(r)];case 8:A.sent(),a.push("纹çå缩"),A.label=9;case 9:return i=ew.analyzeModel(r,t),o={optimizedScene:r,beforeCompliance:n,afterCompliance:i,optimizationSteps:a,improvements:{textureResolution:n.textures.current>i.textures.current?{before:n.textures.current,after:i.textures.current}:void 0,materialCount:n.materials.current>i.materials.current?{before:n.materials.current,after:i.materials.current}:void 0,triangleCount:n.triangles.current>
1i.triangles.current?{before:n.triangles.current,after:i.triangles.current}:void 0,qualityScore:.94}},console.log("ä¼å宿:",{steps:a,before:n.overall,after:i.overall,improvements:o.improvements}),[2,o];case 10:throw console.error("模åä¼å失败:",l=A.sent()),Error("模åä¼å失败: ".concat((0,s._)(l,Error)?l.message:"æªç¥é误"));case 11:return[2]}})}).call(this)}},{key:"optimizeBoundingBox",value:function(e,t){return(0,r._)(function(){var r,n,a,i,o,l,A;return(0,u._)(this,function(u){return console.log("ð ä¼åå
å´ç尺寸"),n=new I.Box3().setFromObject(e).getSize(new I.Vector3),a="auto"===t?"Back":t,i=eS.ROBLOX_UGC_LIMITS.SIZE_LIMITS[a],o=[n.x/i.width,n.y/i.height,n.z/i.depth],(l=(r=Math).max.apply(r,(0,G._)(o)))>1&&(A=.95/l,e.traverse(function(e){(0,s._)(e,I.Mesh)&&e.scale.multiplyScalar(A)}),console.log("â
尺寸已缩æ¾: ".concat((100*A).toFixed(1),"%"))),[2]})})()}},{key:"optimizeTriangles",value:function(e){return(0,r._)(function(){var t,r,n,a,i,o,l,A,c,B,d,h;return(0,u._)(this,function(u){if(console.log("ðº ä¼åä¸è§å½¢æ°é"),t=0,r=[],e.traverse(function(e){if((0,s._)(e,I.Mesh)){r.push(e);var n=e.geometry;n.index?t+=n.index.count/3:t+=n.attributes.position.count/3}}),n=eS.ROBLOX_UGC_LIMITS.TECHNICAL_LIMITS.maxTriangles,t>n){a=n/t*.9,i=!0,o=!1,l=void 0;try{for(A=r[Symbol.iterator]();!(i=(c=A.next()).done);i=!0)(d=(B=c.value).geometry).index&&(h=this.simplifyGeometry(d,a),B.geometry.dispose(),B.geometry=h)}catch(e){o=!0,l=e}finally{try{i||null==A.return||A.return()}finally{if(o)throw l}}console.log("â
ä¸è§å½¢æ°éå·²ä¼å: ".concat(Math.floor(t)," â ").concat(Math.floor(t*a)))}return[2]})}).call(this)}},{key:"simplifyGeometry",value:function(e,t){if(!e.index||t>=1)return e;for(var r=3*Math.floor(e.index.count/3*t),n=e.index.array,a=new Uint32Array(r),i=Math.floor(n.length/r),o=0;o<r;o++)a[o]=n[o*i]||n[n.length-1];var s=e.clone();return s.setIndex(new I.BufferAttribute(a,1)),s.computeVertexNormals(),s}},{key:"optimizeMaterials",value:function(e){return(0,r._)(function(){var t,r,n;return(0,u._)(this,function(a){return(console.log("ð¨ ä¼åæè´¨"),t=new Set,r=[],e.traverse(function(e){if((0,s._)(e,I.Mesh)){r.push(e);var n=e.material;Array.isArray(n)?n.forEach(function(e){return t.add(e)}):t.add(n)}}),t.size<=1)?console.log("â
æè´¨æ°éå·²åè§"):(n=new I.MeshStandardMaterial({color:0xffffff,roughness:.5,metalness:.1}),r.forEach(function(e){var t=Array.isArray(e.material)?e.material[0]:e.material;(0,s._)(t,I.MeshStandardMaterial)&&(n.color.copy(t.color),n.map=t.map),Array.isArray(e.material)?e.material.forEach(function(e){return e.dispose()}):e.material.dispose(),e.material=n}),console.log("â
æè´¨å·²åå¹¶: ".concat(t.size," â 1"))),[2]})})()}},{key:"optimizeTextures",value:function(e){return(0,r._)(function(){var t,r;return(0,u._)(this,function(n){return t=this,console.log("ð¼ï¸ å¼å§æºè½å级纹çä¼å"),r=[],e.traverse(function(e){if((0,s._)(e,I.Mesh)){var n=e.material;(0,s._)(n,I.MeshStandardMaterial)&&[{texture:n.map,type:"albedo",targetSize:1024,algorithm:"lanczos"},{texture:n.normalMap,type:"normal",targetSize:512,algorithm:"bicubic"},{texture:n.roughnessMap,type:"roughness",targetSize:256,algorithm:"bilinear"},{texture:n.metalnessMap,type:"metalness",targetSize:256,algorithm:"bilinear"},{texture:n.emissiveMap,type:"emissive",targetSize:512,algorithm:"bicubic"}].forEach(function(e){if(e.texture){var a=t.processTextureAdvanced(e.texture,e.type,e.targetSize,e.algorithm);if(a.wasOptimized)switch(r.push(a),e.type){case"albedo":n.map=a.optimizedTexture;break;case"normal":n.normalMap=a.optimizedTexture;break;case"roughness":n.roughnessMap=a.optimizedTexture;break;case"metalness":n.metalnessMap=a.optimizedTexture;break;case"emissive":n.emissiveMap=a.optimizedTexture}}})}}),r.length>0?(console.log("â
纹çä¼å宿:"),r.forEach(function(e){console.log(" ".concat(e.type,": ").concat(e.originalSize,"px â ").concat(e.targetSize,"px (").concat(e.algorithm,", SSIM: ").concat(e.qualityScore.toFixed(3),")"))})):console.log("â
纹ç尺寸已åè§ï¼æ éä¼å"),[2]})}).call(this)}},{key:"processTextureAdvanced",value:function(e,t,r,n){if(!e.image)return{type:t,originalSize:0,targetSize:r,algorithm:n,wasOptimized:!1,qual
1ityScore:1,optimizedTexture:e};var a=e.image,i=Math.max(a.width||0,a.height||0);if(i<=r)return{type:t,originalSize:i,targetSize:r,algorithm:n,wasOptimized:!1,qualityScore:1,optimizedTexture:e};var o=this.resampleTexture(e,r,n),s=this.calculateQualityScore(i,r,n);return{type:t,originalSize:i,targetSize:r,algorithm:n,wasOptimized:!0,qualityScore:s,optimizedTexture:o}}},{key:"resampleTexture",value:function(e,t,r){var n=document.createElement("canvas"),a=n.getContext("2d");if(!a||!e.image)return e;switch(n.width=t,n.height=t,r){case"lanczos":a.imageSmoothingEnabled=!0,a.imageSmoothingQuality="high";break;case"bicubic":a.imageSmoothingEnabled=!0,a.imageSmoothingQuality="medium";break;default:a.imageSmoothingEnabled=!0,a.imageSmoothingQuality="low"}a.drawImage(e.image,0,0,t,t),"lanczos"===r&&this.applyUnsharpMask(a,n.width,n.height);var i=new I.CanvasTexture(n);return i.wrapS=e.wrapS,i.wrapT=e.wrapT,i.magFilter=e.magFilter,i.minFilter=e.minFilter,i.format=e.format,i.type=e.type,i}},{key:"applyUnsharpMask",value:function(e,t,r){for(var n=e.getImageData(0,0,t,r).data,a=new Uint8ClampedArray(n),i=0;i<n.length;i+=4){for(var o=0;o<3;o++){var s=n[i+o],l=Math.min(255,Math.max(0,s+(s-128)*.3));a[i+o]=l}a[i+3]=n[i+3]}var A=new ImageData(a,t,r);e.putImageData(A,0,0)}},{key:"calculateQualityScore",value:function(e,t,r){return Math.max(.7,{lanczos:.95,bicubic:.9,bilinear:.85}[r]-Math.max(0,(1-t/e)*.1))}}]),e}(),eU=function(){function e(){(0,a._)(this,e)}return(0,i._)(e,null,[{key:"record",value:function(e,t,r){this.history.push({id:"opt_".concat(Date.now(),"_").concat(Math.random().toString(36).substr(2,9)),timestamp:Date.now(),originalCompliance:e,optimizedCompliance:t,operations:r}),this.history.length>10&&this.history.shift()}},{key:"getHistory",value:function(){return(0,G._)(this.history)}},{key:"clear",value:function(){this.history=[]}}]),e}();(0,ek._)(eU,"history",[]);var eP=e.i(487486),eK=e.i(808562);function eN(e){var t=e.currentResolution,r=e.availableResolutions,n=e.onResolutionChange,a=e.className,i=e.disabled,o=void 0!==i&&i,s=(0,B.useUGCTranslations)();return(0,c.jsxs)("div",{className:(0,eJ.cn)("flex items-center gap-3 mb-2 p-2 bg-background/50 backdrop-blur-sm rounded-lg border",o&&"opacity-50 pointer-events-none",a),children:[(0,c.jsxs)("span",{className:"text-xs text-muted-foreground font-medium",children:[s("resolutionToggle.previewQuality"),":"]}),(0,c.jsx)(eK.ToggleGroup,{value:t,onValueChange:function(e){e&&r.includes(e)&&n(e)},type:"single",className:"gap-1",disabled:o,children:r.map(function(e){return(0,c.jsxs)(eK.ToggleGroupItem,{value:e,className:(0,eJ.cn)("text-xs px-3 py-1 h-auto data-[state=on]:bg-primary data-[state=on]:text-primary-foreground","border border-border hover:bg-accent hover:text-accent-foreground","transition-all duration-200"),disabled:o,children:[e,"px"]},e)})}),(0,c.jsx)(eP.Badge,{variant:"outline",className:(0,eJ.cn)("text-xs px-2 py-0 h-5 border-amber-200 text-amber-700 bg-amber-50","dark:border-amber-800 dark:text-amber-300 dark:bg-amber-950/30"),children:s("resolutionToggle.debugMode")})]})}var eQ=e.i(968301),eX={isMobile:!1,lowPowerMode:!1,pixelRatioCap:1.75,antialias:!0,enableShadows:!0,powerPreference:"high-performance",lightingIntensityMultiplier:1,shadowMapSize:2048},ej=function(e){function t(e){var r;return(0,a._)(this,t),(r=(0,n._)(this,t,[e])).state={hasError:!1},r}
1return(0,o._)(t,e),(0,i._)(t,[{key:"componentDidCatch",value:function(e,t){var r=this;console.error("Model loading error caught by boundary:",{error:e.message,stack:e.stack,componentStack:t.componentStack,errorBoundary:"ModelErrorBoundary"}),setTimeout(function(){var t,n;null==(t=(n=r.props).onError)||t.call(n,e)},0)}},{key:"render",value:function(){if(this.state.hasError){var e;return(0,c.jsx)(eH.Html,{center:!0,children:(0,c.jsxs)("div",{className:"flex flex-col items-center space-y-3 text-center max-w-xs",children:[(0,c.jsx)("div",{className:"w-8 h-8 bg-destructive/10 rounded-full flex items-center justify-center",children:(0,c.jsx)("svg",{className:"w-4 h-4 text-destructive",fill:"currentColor",viewBox:"0 0 20 20",children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,c.jsx)("div",{className:"text-sm text-destructive",children:"Model loading failed"}),(0,c.jsx)("div",{className:"text-xs text-muted-foreground",children:(null==(e=this.state.error)?void 0:e.message)||"Unknown error"})]})})}return this.props.children}}],[{key:"getDerivedStateFromError",value:function(e){return{hasError:!0,error:e}}}]),t}(h.default.Component);function eY(e){var t=e.url,r=e.onLoad,n=e.onError,a=(0,f.useLoader)(eb.FBXLoader,t);return((0,h.useEffect)(function(){if(!a){null==n||n(Error("Invalid FBX file: empty scene"));return}a.children.length||null==n||n(Error("Invalid FBX file: no 3D objects"))},[a,n]),a)?(0,c.jsx)(eW,{scene:a,onLoad:r,onError:n}):null}function eZ(e){var t=e.url,r=e.onLoad,n=e.onError,a=ex(t,!0);return((0,h.useEffect)(function(){var e;if(!(null==a?void 0:a.scene)){console.error("GLB loaded but scene is empty or invalid"),null==n||n(Error("Invalid GLB file: empty scene"));return}if(!a.scene.children.length){console.error("GLB loaded but contains
1no meshes"),null==n||n(Error("Invalid GLB file: no 3D objects"));return}console.log("GLB loaded successfully:",{meshCount:a.scene.children.length,hasAnimations:(null==(e=a.animations)?void 0:e.length)>0,hasMaterials:a.materials?Object.keys(a.materials).length:0})},[a,n]),null==a?void 0:a.scene)?(0,c.jsx)(eW,{scene:a.scene,onLoad:r,onError:n}):null}function eW(e){var t=e.scene,r=e.onLoad,n=e.onError,a=(0,h.useRef)(null);(0,h.useEffect)(function(){if(t&&a.current)try{a.current.clear();var e=t.clone();i(e),a.current.add(e);var o=setTimeout(function(){var t=new I.Scene;t.add(e.clone()),null==r||r(t)},0);return function(){return clearTimeout(o)}}catch(e){console.error("Model processing error:",e),setTimeout(function(){null==n||n(e)},0)}},[t,r,n]);var i=function(e){console.log("ð§ Preprocessing 3D model for centered scaling...");var t=new I.Box3().setFromObject(e),r=t.getSize(new I.Vector3),n=t.getCenter(new I.Vector3);console.log("ð Model dimensions:",{size:{x:r.x.toFixed(2),y:r.y.toFixed(2),z:r.z.toFixed(2)},center:{x:n.x.toFixed(2),y:n.y.toFixed(2),z:n.z.toFixed(2)},originalPosition:{x:e.position.x,y:e.position.y,z:e.position.z}}),e.position.set(-n.x,-n.y,-n.z);var a=Math.max(r.x,r.y,r.z),i=2.5/a;e.scale.setScalar(i),console.log("â
Model centered and scaled:",{newPosition:{x:e.position.x.toFixed(2),y:e.position.y.toFixed(2),z:e.position.z.toFixed(2)},scale:i.toFixed(3),maxDimension:a.toFixed(2)}),(0,eQ.applyStudioMaterialTuning)(e)};return(0,c.jsx)("group",{ref:a})}function eV(e){var t,r=e.url,n=e.onLoad,a=e.onError;console.log("ð Loading 3D model from URL:",r);var i=function(e){if(console.log("ð [URL-VALIDATION] éªè¯URL:",{url:e,type:void 0===e?"undefined":(0,A._)(e),length:(null==e?void 0:e.length)||0,trimmed:(null==e?void 0:e.trim())||"",isEmpty:!e||!e.trim()}),!e||!e.trim())return console.log("â [URL-VALIDATION] URL为空"),{isValid:!1,error:"Empty URL provided"};if(e.startsWith("data:"))return{isValid:!0,proxyUrl:e,modelType:eL(e)};try{new URL(e),console.log("â
[URL-VALIDATION] URLæ ¼å¼ææ")}catch(e){return console.log("â [URL-VALIDATION] URLæ ¼å¼æ æ:",e),{isValid:!1,error:"Invalid URL format"}}var t=function(){try{return new URL(e).hostname}catch(e){return""}}(),r=window.location.hostname,n=eL(e),a=t&&t!==r?"".concat("glb"===n?"/api/proxy/glb":"/api/proxy/fbx","?url=").concat(encodeURIComponent(e),"&mode=preview"):e;return console.log("â
[URL-VALIDATION] éªè¯æå:",{original:e,proxy:a,modelType:n,useProxy:a!==e}),{isValid:!0,proxyUrl:a,modelType:n}}(r);if(!i.isValid)return console.error("â URL validation failed:",i.error),(0,h.useEffect)(function(){null==a||a(Error("URL validation failed: ".concat(i.error)))},[a]),null;var o=i.proxyUrl,s=null!=(t=i.modelType)?t:"glb";return console.log("â
Using processed URL:",{original:r,final:o,modelType:s,isProxied:o!==r}),"fbx"===s?(0,c.jsx)(eY,{url:o,onLoad:n,onError:a}):(0,c.jsx)(eZ,{url:o,onLoad:n,onError:a})}function ez(){var e=(0,B.useUGCTranslations)();return(0,c.jsx)(eH.Html,{center:!0,children:(0,c.jsxs)("div",{className:"flex flex-col items-center space-y-3 text-center",children:[(0,c.jsx)("div",{className:"w-8 h-8 border-2 border-border border-t-transparent rounded-full animate-spin"}),(0,c.jsx)("div",{className:"text-sm text-muted-foreground whitespace-nowrap min-w-max",children:e("modelViewer.loading3DModel")})]})})}function eq(e){var t=e.error,r=(0,B.useUGCTranslations)();return(0,c.jsx)(eH.Html,{center:!0,children:(0,c.jsxs)("div",{className:"flex flex-col items-center space-y-3 text-center max-w-xs",children:[(0,c.jsx)("div",{className:"w-8 h-8 bg-destructive/10 rounded-full flex items-center justify-center",children:(0,c.jsx)("svg",{className:"w-4 h-4 text-destructive",fill:"currentColor",viewBox:"0 0 20 20",children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,c.jsx)("div",{className:"text-sm text-destructive",children:r("modelViewer.loadingFailed")}),(0,c.jsx)("div",{className:"text-xs text-muted-foreground",children:t})]})})}function e$(e){var t=e.modelUrl,r=e.modelType,n=e.lightingIntensityMultiplier,a=e.onModelLoad,i=e.onModelError,o=(0,B.useUGCTranslations)(),s=(0,l._)((0,h.useState)(null),2),A=s[0],u=s[1],d=(0,h.useCallback)(function(e){var t=(null==e?void 0:e.message)||"Unknown error";setTimeout(function(){u(t),null==i||i(e)},0)},[i]),C=(0,h.useCallback)(function(e){setTimeout(function(){u(null),null==a||a(e)},0)},[a]);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(eQ.StudioLighting,{variant:"draft"===r?"asset-draft":"asset-final",intensityMultiplier:void 0===n?1:n}),t&&t.trim()&&"undefined"!==t?(0,c.jsx)(ej,{onError:d,children:(0,c.jsx)(h.Suspense,{fallback:(0,c.jsx)(ez,{}),children:(0,c.jsx)(eV,{url:t,onLoad:C,onError:d})})},t):(0,c.jsx)(eH.Html,{center:!0,children:(0,c.jsxs)("div",{className:"text-center space-y-2",children:[(0,c.jsx)("div",{className:"w-12 h-12 bg-muted rounded-lg flex items-center justify-center mx-auto",children:(0,c.jsxs)("svg",{className:"w-6 h-6 text-muted-foreground",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,c.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z"}),(0,c.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z"})]})}),(0,c.jsx)("div",{className:"text-sm text-muted-foreground",children:o("draft"===r?"modelViewer.waitingSelectDraft":"modelViewer.waitingGeneration")})]})}),A&&(0,c.jsx)(eq,{error:A})]})}function e0(e){var t,n,a,i=e.modelUrl,o=e.modelType,A=e.attachmentType,f=void 0===A?"Hat":A,v=e.onModelLoad,p=e.onComplianceUpdate,g=e.showControls,M=e.showCompl
1iance,F=void 0===M||M,E=e.complianceData,G=e.className,y=e.optimizedModelUrl,R=(e.hasBeenOptimized,e.showResolutionToggle),D=e.enableZoom,T=e.autoRotate,x=void 0!==T&&T,H=e.autoRotateSpeed,b=(0,B.useUGCTranslations)(),L=(0,d.useTranslations)("common"),J=(0,h.useRef)(null),S=(0,l._)((0,h.useState)(!1),2),w=(S[0],S[1]),_=(0,l._)((0,h.useState)(null),2),k=_[0],O=_[1],U=(0,l._)((0,h.useState)(),2),P=U[0],K=U[1],N=(0,l._)((0,h.useState)(!1),2),Q=(N[0],N[1]),X=(0,l._)((0,h.useState)(),2),j=X[0],Y=X[1],Z=(n=(t=(0,l._)((0,h.useState)(eX),2))[0],a=t[1],(0,h.useEffect)(function(){var e=function(){var e,t,r,n,i,o,s,l,A,u,c;return a((n="undefined"!=typeof navigator?navigator.userAgent:"",i=/Android|iPhone|iPad|iPod|Mobile/i.test(n),o=null!=(r=null==(e=(t=window).matchMedia)?void 0:e.call(t,"(pointer: coarse)").matches)&&r,s=window.innerWidth<=1024,l="undefined"!=typeof navigator&&navigator.hardwareConcurrency||8,A="undefined"!=typeof navigator&&navigator.deviceMemory||8,c=(u=i||o||s)||l<=4||A<=4,{isMobile:u,lowPowerMode:c,pixelRatioCap:c?1.2:1.75,antialias:!c,enableShadows:!c,powerPreference:c?"low-power":"high-performance",lightingIntensityMultiplier:c?.78:1,shadowMapSize:c?1024:2048}))};return e(),window.addEventListener("resize",e,{passive:!0}),function(){window.removeEventListener("resize",e)}},[]),n),W=(0,h.useMemo)(function(){return"draft"===o?"asset-draft":"asset-final"},[o]),V=(0,h.useMemo)(function(){return(0,eQ.getToneMappingExposure)(W)},[W]),z=(0,h.useMemo)(function(){return V*(Z.lowPowerMode?.92:1)},[V,Z.lowPowerMode]),q=(0,l._)((0,h.useState)("2048"),2),$=q[0],ee=q[1],et=E||P,er=function(){var e=[];return i&&e.push("2048"),y&&e.push("1024"),e},en=(0,h.useCallback)(function(e){return(0,r._)(function(){var t,r;return(0,u._)(this,function(n){if(Y(e),setTimeout(function(){w(!1),O(null),null==v||v(e)},0),F&&i&&f&&"final"===o)try{if(Q(!0),t=e_.get(i))return console.log(b("modelViewer.usingCachedCompliance")),K(t),null==p||p(t),[2];console.log(b("modelViewer.startingComplianceAnalysis"),{modelUrl:i,attachmentType:f}),r=ew.analyzeModel(e,f),e_.set(i,r),K(r),null==p||p(r)}catch(e){console.error(b("modelViewer.complianceCheckFailed"),e)}finally{Q(!1)}return[2]})})()},[v,F,i,f,o,p]),ea=(0,h.useCallback)(function(e){setTimeout(function(){w(!1),O((null==e?void 0:e.message)||b("modelViewer.loadingFailed")),Q(!1)},0)},[b]);(0,h.useCallback)(function(){return(0,r._)(function(){var e,t;return(0,u._)(this,function(r){switch(r.label){case 0:if(!j||!f||!et)return console.warn(b("modelViewer.missingOptimizationData")),[2,null];r.label=1;case 1:return r.trys.push([1,3,,4]),console.log(b("modelViewer.startingOneClickOptimization")),[4,eO.optimizeForCompliance(j,f)];case 2:return Y((e=r.sent()).optimizedScene),i&&e_.set(i+"_optimized",e.afterCompliance),K(e.afterCompliance),null==p||p(e.afterCompliance),console.log(b("modelViewer.oneClickOptimizationComplete"),{before:e.beforeCompliance.overall,after:e.afterCompliance.overall,steps:e.optimizationSteps}),[2,e];case 3:throw t=r.sent(),console.error(b("modelViewer.oneClickOptimizationFailed"),t),O("".concat(b("modelViewer.optimizationFailed")," ").concat((0,s._)(t,Error)?t.message:b("modelViewer.unknownError"))),t;case 4:return[2]}})})()},[j,f,et,i,p,b]),(0,h.useEffect)(function(){i&&(w(!0),O(null))},[i]);var ei=L("hints.dragToRotate");return(0,c.jsxs)("div",{className:(0,eJ.cn)("relative w-full h-full rounded-lg overflow-hidden",G),role:"region","aria-label":ei,title:ei,children:[(0,c.jsxs)(C.Canvas,{frameloop:Z.lowPowerMode&&!x?"demand":"always",camera:{position:[2,2,4],fov:45,near:.1,far:50},dpr:[1,Z.pixelRatioCap],shadows:!!Z.enableShadows&&"soft",className:"w-full h-full",gl:{antialias:Z.antialias,alpha:!0,preserveDrawingBuffer:!1,powerPreference:Z.powerPreference},onCreated:function(e){var t=e.gl,r=e.scene;t.outputColorSpace=I.SRGBColorSpace,t.toneMapping=I.ACESFilmicToneMapping,t.toneMappingExposure=z,t.shadowMap.enabled=Z.enableShadows,t.shadowMap.type=Z.enableShadows?I.PCFSoftShadowMap:I.BasicShadowMap,t.shadowMap.autoUpdate=Z.enableShadows,r.fog=new I.Fog(0,15,60),console.log("ð¬ Cinematic UGC Viewer initialized:",{fov:45,target:[0,0,0],toneMapping:"ACESFilmic",shadows:"PCFSoft",exposure:z,lowPowerMode:Z.lowPowerMode})},children:[(0,c.jsx)(e$,{modelUrl:"1024"===$&&y?y:i,modelType:o,lightingIntensityMultiplier:Z.lightingIntensityMultiplier,onModelLoad:en,onModelError:ea}),(void 0===g||g)&&(0,c.jsx)(m.OrbitControls,{ref:J,enablePan:!1,enableZoom:void 0===D||D,enableRotate:!0,autoRotate:x,autoRotateSpeed:void 0===H?1:H,minDistance:1,maxDistance:8,minPolarAngle:Math.PI/6,maxPolarAngle:Math.PI-Math.PI/6,target:[0,0,0],makeDefault:!0})]}
1),k&&(0,c.jsx)("div",{className:"absolute bottom-4 left-4 bg-background/80 backdrop-blur-sm rounded-lg px-3 py-2",children:(0,c.jsxs)("div",{className:"flex items-center gap-2 text-sm text-destructive",children:[(0,c.jsx)("svg",{className:"w-4 h-4 flex-shrink-0",fill:"currentColor",viewBox:"0 0 20 20",children:(0,c.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})}),(0,c.jsx)("span",{className:"whitespace-nowrap",children:k})]})}),void 0!==R&&R&&er().length>1&&(0,c.jsx)("div",{className:"absolute top-2 left-2 right-2 z-20",children:(0,c.jsx)(eN,{currentResolution:$,availableResolutions:er(),onResolutionChange:ee})})]})}ex.preload=function(e){ex(e)},e.s(["UGCModelViewer",()=>e0],538320)},245169,e=>{e.n(e.i(538320))}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.