Files
qhmes/deploy-qhmes/frontend/js/index-B2VydZIT.js
2026-05-15 11:34:12 +08:00

2 lines
54 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var vt=Object.defineProperty,Lt=Object.defineProperties;var It=Object.getOwnPropertyDescriptors;var He=Object.getOwnPropertySymbols;var Nt=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable;var De=(f,t,e)=>t in f?vt(f,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):f[t]=e,J=(f,t)=>{for(var e in t||(t={}))Nt.call(t,e)&&De(f,e,t[e]);if(He)for(var e of He(t))Ot.call(t,e)&&De(f,e,t[e]);return f},ue=(f,t)=>Lt(f,It(t));var ee=(f,t,e)=>new Promise((s,n)=>{var r=o=>{try{a(e.next(o))}catch(c){n(c)}},i=o=>{try{a(e.throw(o))}catch(c){n(c)}},a=o=>o.done?s(o.value):Promise.resolve(o.value).then(r,i);a((e=e.apply(f,t)).next())});import{f as K,o as Ct,j as Pt,ar as te,as as ne,au as L,ag as Be,aB as Ge,av as G,at as Ft,G as q}from"./vue-vendor-C7Zq48Yl.js";import{BufferAttribute as ge,BufferGeometry as kt,InstancedBufferAttribute as Ht,InterleavedBuffer as Dt,InterleavedBufferAttribute as Bt,TrianglesDrawMode as Gt,TriangleFanDrawMode as Me,TriangleStripDrawMode as tt,Vector3 as U,Float32BufferAttribute as ws,Quaternion as nt,Matrix4 as he,AnimationMixer as Es,VectorKeyframeTrack as Ue,QuaternionKeyframeTrack as ze,AnimationClip as Ut,SkeletonHelper as ys,Loader as zt,LoaderUtils as ie,FileLoader as st,Color as X,LinearSRGBColorSpace as z,SpotLight as Kt,PointLight as jt,DirectionalLight as rt,MeshBasicMaterial as re,SRGBColorSpace as ae,MeshPhysicalMaterial as B,Vector2 as ve,InstancedMesh as Vt,Object3D as it,Interpolant as Xt,LinearMipmapLinearFilter as ot,NearestMipmapLinearFilter as Wt,LinearMipmapNearestFilter as qt,NearestMipmapNearestFilter as Yt,LinearFilter as be,NearestFilter as at,RepeatWrapping as Re,MirroredRepeatWrapping as Zt,ClampToEdgeWrapping as Qt,InterpolateDiscrete as $t,InterpolateLinear as ct,MeshStandardMaterial as oe,FrontSide as Jt,TextureLoader as en,ImageBitmapLoader as tn,Texture as Ke,PointsMaterial as nn,Material as Te,LineBasicMaterial as sn,DoubleSide as rn,PropertyBinding as on,SkinnedMesh as an,Mesh as de,LineSegments as cn,Line as ln,LineLoop as un,Points as fn,Group as xe,PerspectiveCamera as lt,MathUtils as dn,OrthographicCamera as hn,Skeleton as pn,Bone as mn,NumberKeyframeTrack as je,Box3 as gn,Sphere as Tn,ColorManagement as xn,Scene as An,WebGLRenderer as wn,MOUSE as Ae,AmbientLight as En,PlaneGeometry as yn,GridHelper as Mn,BoxGeometry as Ve,Raycaster as bn}from"./three.module-C62V74CF.js";import{O as Rn}from"./OrbitControls-CJGLS2vR.js";import{d as Sn}from"./index-BI6CMai0.js";import"./antd-vue-vendor-BPnV8VqP.js";import"./vxe-table-vendor-B88kchpX.js";function Xe(f,t){if(t===Gt)return f;if(t===Me||t===tt){let e=f.getIndex();if(e===null){const i=[],a=f.getAttribute("position");if(a!==void 0){for(let o=0;o<a.count;o++)i.push(o);f.setIndex(i),e=f.getIndex()}else return f}const s=e.count-2,n=[];if(t===Me)for(let i=1;i<=s;i++)n.push(e.getX(0)),n.push(e.getX(i)),n.push(e.getX(i+1));else for(let i=0;i<s;i++)i%2===0?(n.push(e.getX(i)),n.push(e.getX(i+1)),n.push(e.getX(i+2))):(n.push(e.getX(i+2)),n.push(e.getX(i+1)),n.push(e.getX(i)));n.length/3;const r=f.clone();return r.setIndex(n),r.clearGroups(),r}else return f}function _n(f){const t=new Map,e=new Map,s=f.clone();return ut(f,s,function(n,r){t.set(r,n),e.set(n,r)}),s.traverse(function(n){if(!n.isSkinnedMesh)return;const r=n,i=t.get(n),a=i.skeleton.bones;r.skeleton=i.skeleton.clone(),r.bindMatrix.copy(i.bindMatrix),r.skeleton.bones=a.map(function(o){return e.get(o)}),r.bind(r.skeleton,r.bindMatrix)}),s}function ut(f,t,e){e(f,t);for(let s=0;s<f.children.length;s++)ut(f.children[s],t.children[s],e)}class vn extends zt{constructor(t){super(t),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(e){return new Cn(e)}),this.register(function(e){return new Pn(e)}),this.register(function(e){return new Kn(e)}),this.register(function(e){return new jn(e)}),this.register(function(e){return new Vn(e)}),this.register(function(e){return new kn(e)}),this.register(function(e){return new Hn(e)}),this.register(function(e){return new Dn(e)}),this.register(function(e){return new Bn(e)}),this.register(function(e){return new On(e)}),this.register(function(e){return new Gn(e)}),this.register(function(e){return new Fn(e)}),this.register(function(e){return new zn(e)}),this.register(function(e){return new Un(e)}),this.register(function(e){return new In(e)}),this.register(function(e){return new We(e,y.EXT_MESHOPT_COMPRESSION)}),this.register(function(e){return new We(e,y.KHR_MESHOPT_COMPRESSION)}),this.register(function(e){return new Xn(e)})}load(t,e,s,n){const r=this;let i;if(this.resourcePath!=="")i=this.resourcePath;else if(this.path!==""){const c=ie.extractUrlBase(t);i=ie.resolveURL(c,this.path)}else i=ie.extractUrlBase(t);this.manager.itemStart(t);const a=function(c){n&&n(c),r.manager.itemError(t),r.manager.itemEnd(t)},o=new st(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,function(c){try{r.parse(c,i,function(l){e(l),r.manager.itemEnd(t)},a)}catch(l){a(l)}},s,a)}setDRACOLoader(t){return this.dracoLoader=t,this}setKTX2Loader(t){return this.ktx2Loader=t,this}setMeshoptDecoder(t){return this.meshoptDecoder=t,this}register(t){return this.pluginCallbacks.indexOf(t)===-1&&this.pluginCallbacks.push(t),this}unregister(t){return this.pluginCallbacks.indexOf(t)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(t),1),this}parse(t,e,s,n){let r;const i={},a={},o=new TextDecoder;if(typeof t=="string")r=JSON.parse(t);else if(t instanceof ArrayBuffer)if(o.decode(new Uint8Array(t,0,4))===ft){try{i[y.KHR_BINARY_GLTF]=new Wn(t)}catch(u){n&&n(u);return}r=JSON.parse(i[y.KHR_BINARY_GLTF].content)}else r=JSON.parse(o.decode(t));else r=t;if(r.asset===void 0||r.asset.version[0]<2){n&&n(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}const c=new os(r,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let l=0;l<this.pluginCallbacks.length;l++){const u=this.pluginCallbacks[l](c);u.name,a[u.name]=u,i[u.name]=!0}if(r.extensionsUsed)for(let l=0;l<r.extensionsUsed.length;++l){const u=r.extensionsUsed[l],d=r.extensionsRequired||[];switch(u){case y.KHR_MATERIALS_UNLIT:i[u]=new Nn;break;case y.KHR_DRACO_MESH_COMPRESSION:i[u]=new qn(r,this.dracoLoader);break;case y.KHR_TEXTURE_TRANSFORM:i[u]=new Yn;break;case y.KHR_MESH_QUANTIZATION:i[u]=new Zn;break;default:d.indexOf(u)>=0&&a[u]}}c.setExtensions(i),c.setPlugins(a),c.parse(s,n)}parseAsync(t,e){const s=this;return new Promise(function(n,r){s.parse(t,e,n,r)})}}function Ln(){let f={};return{get:function(t){return f[t]},add:function(t,e){f[t]=e},remove:function(t){delete f[t]},removeAll:function(){f={}}}}function N(f,t,e){const s=f.json.materials[t];return s.extensions&&s.extensions[e]?s.extensions[e]:null}const y={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",KHR_MESHOPT_COMPRESSION:"KHR_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class In{constructor(t){this.parser=t,this.name=y.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let s=0,n=e.length;s<n;s++){const r=e[s];r.extensions&&r.extensions[this.name]&&r.extensions[this.name].light!==void 0&&t._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(t){const e=this.parser,s="light:"+t;let n=e.cache.get(s);if(n)return n;const r=e.json,o=((r.extensions&&r.extensions[this.name]||{}).lights||[])[t];let c;const l=new X(16777215);o.color!==void 0&&l.setRGB(o.color[0],o.color[1],o.color[2],z);const u=o.range!==void 0?o.range:0;switch(o.type){case"directional":c=new rt(l),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new jt(l),c.distance=u;break;case"spot":c=new Kt(l),c.distance=u,o.spot=o.spot||{},o.spot.innerConeAngle=o.spot.innerConeAngle!==void 0?o.spot.innerConeAngle:0,o.spot.outerConeAngle=o.spot.outerConeAngle!==void 0?o.spot.outerConeAngle:Math.PI/4,c.angle=o.spot.outerConeAngle,c.penumbra=1-o.spot.innerConeAngle/o.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+o.type)}return c.position.set(0,0,0),D(c,o),o.intensity!==void 0&&(c.intensity=o.intensity),c.name=e.createUniqueName(o.name||"light_"+t),n=Promise.resolve(c),e.cache.add(s,n),n}getDependency(t,e){if(t==="light")return this._loadLight(e)}createNodeAttachment(t){const e=this,s=this.parser,r=s.json.nodes[t],a=(r.extensions&&r.extensions[this.name]||{}).light;return a===void 0?null:this._loadLight(a).then(function(o){return s._getNodeRef(e.cache,a,o)})}}class Nn{constructor(){this.name=y.KHR_MATERIALS_UNLIT}getMaterialType(){return re}extendParams(t,e,s){const n=[];t.color=new X(1,1,1),t.opacity=1;const r=e.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){const i=r.baseColorFactor;t.color.setRGB(i[0],i[1],i[2],z),t.opacity=i[3]}r.baseColorTexture!==void 0&&n.push(s.assignTexture(t,"map",r.baseColorTexture,ae))}return Promise.all(n)}}class On{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);return s===null||s.emissiveStrength!==void 0&&(e.emissiveIntensity=s.emissiveStrength),Promise.resolve()}}class Cn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_CLEARCOAT}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];if(s.clearcoatFactor!==void 0&&(e.clearcoat=s.clearcoatFactor),s.clearcoatTexture!==void 0&&n.push(this.parser.assignTexture(e,"clearcoatMap",s.clearcoatTexture)),s.clearcoatRoughnessFactor!==void 0&&(e.clearcoatRoughness=s.clearcoatRoughnessFactor),s.clearcoatRoughnessTexture!==void 0&&n.push(this.parser.assignTexture(e,"clearcoatRoughnessMap",s.clearcoatRoughnessTexture)),s.clearcoatNormalTexture!==void 0&&(n.push(this.parser.assignTexture(e,"clearcoatNormalMap",s.clearcoatNormalTexture)),s.clearcoatNormalTexture.scale!==void 0)){const r=s.clearcoatNormalTexture.scale;e.clearcoatNormalScale=new ve(r,r)}return Promise.all(n)}}class Pn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_DISPERSION}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);return s===null||(e.dispersion=s.dispersion!==void 0?s.dispersion:0),Promise.resolve()}}class Fn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_IRIDESCENCE}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];return s.iridescenceFactor!==void 0&&(e.iridescence=s.iridescenceFactor),s.iridescenceTexture!==void 0&&n.push(this.parser.assignTexture(e,"iridescenceMap",s.iridescenceTexture)),s.iridescenceIor!==void 0&&(e.iridescenceIOR=s.iridescenceIor),e.iridescenceThicknessRange===void 0&&(e.iridescenceThicknessRange=[100,400]),s.iridescenceThicknessMinimum!==void 0&&(e.iridescenceThicknessRange[0]=s.iridescenceThicknessMinimum),s.iridescenceThicknessMaximum!==void 0&&(e.iridescenceThicknessRange[1]=s.iridescenceThicknessMaximum),s.iridescenceThicknessTexture!==void 0&&n.push(this.parser.assignTexture(e,"iridescenceThicknessMap",s.iridescenceThicknessTexture)),Promise.all(n)}}class kn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_SHEEN}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];if(e.sheenColor=new X(0,0,0),e.sheenRoughness=0,e.sheen=1,s.sheenColorFactor!==void 0){const r=s.sheenColorFactor;e.sheenColor.setRGB(r[0],r[1],r[2],z)}return s.sheenRoughnessFactor!==void 0&&(e.sheenRoughness=s.sheenRoughnessFactor),s.sheenColorTexture!==void 0&&n.push(this.parser.assignTexture(e,"sheenColorMap",s.sheenColorTexture,ae)),s.sheenRoughnessTexture!==void 0&&n.push(this.parser.assignTexture(e,"sheenRoughnessMap",s.sheenRoughnessTexture)),Promise.all(n)}}class Hn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_TRANSMISSION}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];return s.transmissionFactor!==void 0&&(e.transmission=s.transmissionFactor),s.transmissionTexture!==void 0&&n.push(this.parser.assignTexture(e,"transmissionMap",s.transmissionTexture)),Promise.all(n)}}class Dn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_VOLUME}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];e.thickness=s.thicknessFactor!==void 0?s.thicknessFactor:0,s.thicknessTexture!==void 0&&n.push(this.parser.assignTexture(e,"thicknessMap",s.thicknessTexture)),e.attenuationDistance=s.attenuationDistance||1/0;const r=s.attenuationColor||[1,1,1];return e.attenuationColor=new X().setRGB(r[0],r[1],r[2],z),Promise.all(n)}}class Bn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_IOR}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);return s===null||(e.ior=s.ior!==void 0?s.ior:1.5),Promise.resolve()}}class Gn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_SPECULAR}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];e.specularIntensity=s.specularFactor!==void 0?s.specularFactor:1,s.specularTexture!==void 0&&n.push(this.parser.assignTexture(e,"specularIntensityMap",s.specularTexture));const r=s.specularColorFactor||[1,1,1];return e.specularColor=new X().setRGB(r[0],r[1],r[2],z),s.specularColorTexture!==void 0&&n.push(this.parser.assignTexture(e,"specularColorMap",s.specularColorTexture,ae)),Promise.all(n)}}class Un{constructor(t){this.parser=t,this.name=y.EXT_MATERIALS_BUMP}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];return e.bumpScale=s.bumpFactor!==void 0?s.bumpFactor:1,s.bumpTexture!==void 0&&n.push(this.parser.assignTexture(e,"bumpMap",s.bumpTexture)),Promise.all(n)}}class zn{constructor(t){this.parser=t,this.name=y.KHR_MATERIALS_ANISOTROPY}getMaterialType(t){return N(this.parser,t,this.name)!==null?B:null}extendMaterialParams(t,e){const s=N(this.parser,t,this.name);if(s===null)return Promise.resolve();const n=[];return s.anisotropyStrength!==void 0&&(e.anisotropy=s.anisotropyStrength),s.anisotropyRotation!==void 0&&(e.anisotropyRotation=s.anisotropyRotation),s.anisotropyTexture!==void 0&&n.push(this.parser.assignTexture(e,"anisotropyMap",s.anisotropyTexture)),Promise.all(n)}}class Kn{constructor(t){this.parser=t,this.name=y.KHR_TEXTURE_BASISU}loadTexture(t){const e=this.parser,s=e.json,n=s.textures[t];if(!n.extensions||!n.extensions[this.name])return null;const r=n.extensions[this.name],i=e.options.ktx2Loader;if(!i){if(s.extensionsRequired&&s.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,r.source,i)}}class jn{constructor(t){this.parser=t,this.name=y.EXT_TEXTURE_WEBP}loadTexture(t){const e=this.name,s=this.parser,n=s.json,r=n.textures[t];if(!r.extensions||!r.extensions[e])return null;const i=r.extensions[e],a=n.images[i.source];let o=s.textureLoader;if(a.uri){const c=s.options.manager.getHandler(a.uri);c!==null&&(o=c)}return s.loadTextureImage(t,i.source,o)}}class Vn{constructor(t){this.parser=t,this.name=y.EXT_TEXTURE_AVIF}loadTexture(t){const e=this.name,s=this.parser,n=s.json,r=n.textures[t];if(!r.extensions||!r.extensions[e])return null;const i=r.extensions[e],a=n.images[i.source];let o=s.textureLoader;if(a.uri){const c=s.options.manager.getHandler(a.uri);c!==null&&(o=c)}return s.loadTextureImage(t,i.source,o)}}class We{constructor(t,e){this.name=e,this.parser=t}loadBufferView(t){const e=this.parser.json,s=e.bufferViews[t];if(s.extensions&&s.extensions[this.name]){const n=s.extensions[this.name],r=this.parser.getDependency("buffer",n.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(a){const o=n.byteOffset||0,c=n.byteLength||0,l=n.count,u=n.byteStride,d=new Uint8Array(a,o,c);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(l,u,d,n.mode,n.filter).then(function(h){return h.buffer}):i.ready.then(function(){const h=new ArrayBuffer(l*u);return i.decodeGltfBuffer(new Uint8Array(h),l,u,d,n.mode,n.filter),h})})}else return null}}class Xn{constructor(t){this.name=y.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,s=e.nodes[t];if(!s.extensions||!s.extensions[this.name]||s.mesh===void 0)return null;const n=e.meshes[s.mesh];for(const c of n.primitives)if(c.mode!==k.TRIANGLES&&c.mode!==k.TRIANGLE_STRIP&&c.mode!==k.TRIANGLE_FAN&&c.mode!==void 0)return null;const i=s.extensions[this.name].attributes,a=[],o={};for(const c in i)a.push(this.parser.getDependency("accessor",i[c]).then(l=>(o[c]=l,o[c])));return a.length<1?null:(a.push(this.parser.createNodeMesh(t)),Promise.all(a).then(c=>{const l=c.pop(),u=l.isGroup?l.children:[l],d=c[0].count,h=[];for(const g of u){const M=new he,T=new U,A=new nt,_=new U(1,1,1),v=new Vt(g.geometry,g.material,d);for(let R=0;R<d;R++)o.TRANSLATION&&T.fromBufferAttribute(o.TRANSLATION,R),o.ROTATION&&A.fromBufferAttribute(o.ROTATION,R),o.SCALE&&_.fromBufferAttribute(o.SCALE,R),v.setMatrixAt(R,M.compose(T,A,_));for(const R in o)if(R==="_COLOR_0"){const I=o[R];v.instanceColor=new Ht(I.array,I.itemSize,I.normalized)}else R!=="TRANSLATION"&&R!=="ROTATION"&&R!=="SCALE"&&g.geometry.setAttribute(R,o[R]);it.prototype.copy.call(v,g),this.parser.assignFinalMaterial(v),h.push(v)}return l.isGroup?(l.clear(),l.add(...h),l):h[0]}))}}const ft="glTF",se=12,qe={JSON:1313821514,BIN:5130562};class Wn{constructor(t){this.name=y.KHR_BINARY_GLTF,this.content=null,this.body=null;const e=new DataView(t,0,se),s=new TextDecoder;if(this.header={magic:s.decode(new Uint8Array(t.slice(0,4))),version:e.getUint32(4,!0),length:e.getUint32(8,!0)},this.header.magic!==ft)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const n=this.header.length-se,r=new DataView(t,se);let i=0;for(;i<n;){const a=r.getUint32(i,!0);i+=4;const o=r.getUint32(i,!0);if(i+=4,o===qe.JSON){const c=new Uint8Array(t,se+i,a);this.content=s.decode(c)}else if(o===qe.BIN){const c=se+i;this.body=t.slice(c,c+a)}i+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class qn{constructor(t,e){if(!e)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=y.KHR_DRACO_MESH_COMPRESSION,this.json=t,this.dracoLoader=e,this.dracoLoader.preload()}decodePrimitive(t,e){const s=this.json,n=this.dracoLoader,r=t.extensions[this.name].bufferView,i=t.extensions[this.name].attributes,a={},o={},c={};for(const l in i){const u=Se[l]||l.toLowerCase();a[u]=i[l]}for(const l in t.attributes){const u=Se[l]||l.toLowerCase();if(i[l]!==void 0){const d=s.accessors[t.attributes[l]],h=Y[d.componentType];c[u]=h.name,o[u]=d.normalized===!0}}return e.getDependency("bufferView",r).then(function(l){return new Promise(function(u,d){n.decodeDracoFile(l,function(h){for(const g in h.attributes){const M=h.attributes[g],T=o[g];T!==void 0&&(M.normalized=T)}u(h)},a,c,z,d)})})}}class Yn{constructor(){this.name=y.KHR_TEXTURE_TRANSFORM}extendTexture(t,e){return(e.texCoord===void 0||e.texCoord===t.channel)&&e.offset===void 0&&e.rotation===void 0&&e.scale===void 0||(t=t.clone(),e.texCoord!==void 0&&(t.channel=e.texCoord),e.offset!==void 0&&t.offset.fromArray(e.offset),e.rotation!==void 0&&(t.rotation=e.rotation),e.scale!==void 0&&t.repeat.fromArray(e.scale),t.needsUpdate=!0),t}}class Zn{constructor(){this.name=y.KHR_MESH_QUANTIZATION}}class dt extends Xt{constructor(t,e,s,n){super(t,e,s,n)}copySampleValue_(t){const e=this.resultBuffer,s=this.sampleValues,n=this.valueSize,r=t*n*3+n;for(let i=0;i!==n;i++)e[i]=s[r+i];return e}interpolate_(t,e,s,n){const r=this.resultBuffer,i=this.sampleValues,a=this.valueSize,o=a*2,c=a*3,l=n-e,u=(s-e)/l,d=u*u,h=d*u,g=t*c,M=g-c,T=-2*h+3*d,A=h-d,_=1-T,v=A-d+u;for(let R=0;R!==a;R++){const I=i[M+R+a],P=i[M+R+o]*l,O=i[g+R+a],F=i[g+R]*l;r[R]=_*I+v*P+T*O+A*F}return r}}const Qn=new nt;class $n extends dt{interpolate_(t,e,s,n){const r=super.interpolate_(t,e,s,n);return Qn.fromArray(r).normalize().toArray(r),r}}const k={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},Y={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Ye={9728:at,9729:be,9984:Yt,9985:qt,9986:Wt,9987:ot},Ze={33071:Qt,33648:Zt,10497:Re},we={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Se={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},j={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Jn={CUBICSPLINE:void 0,LINEAR:ct,STEP:$t},Ee={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function es(f){return f.DefaultMaterial===void 0&&(f.DefaultMaterial=new oe({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:Jt})),f.DefaultMaterial}function W(f,t,e){for(const s in e.extensions)f[s]===void 0&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[s]=e.extensions[s])}function D(f,t){t.extras!==void 0&&typeof t.extras=="object"&&Object.assign(f.userData,t.extras)}function ts(f,t,e){let s=!1,n=!1,r=!1;for(let c=0,l=t.length;c<l;c++){const u=t[c];if(u.POSITION!==void 0&&(s=!0),u.NORMAL!==void 0&&(n=!0),u.COLOR_0!==void 0&&(r=!0),s&&n&&r)break}if(!s&&!n&&!r)return Promise.resolve(f);const i=[],a=[],o=[];for(let c=0,l=t.length;c<l;c++){const u=t[c];if(s){const d=u.POSITION!==void 0?e.getDependency("accessor",u.POSITION):f.attributes.position;i.push(d)}if(n){const d=u.NORMAL!==void 0?e.getDependency("accessor",u.NORMAL):f.attributes.normal;a.push(d)}if(r){const d=u.COLOR_0!==void 0?e.getDependency("accessor",u.COLOR_0):f.attributes.color;o.push(d)}}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(o)]).then(function(c){const l=c[0],u=c[1],d=c[2];return s&&(f.morphAttributes.position=l),n&&(f.morphAttributes.normal=u),r&&(f.morphAttributes.color=d),f.morphTargetsRelative=!0,f})}function ns(f,t){if(f.updateMorphTargets(),t.weights!==void 0)for(let e=0,s=t.weights.length;e<s;e++)f.morphTargetInfluences[e]=t.weights[e];if(t.extras&&Array.isArray(t.extras.targetNames)){const e=t.extras.targetNames;if(f.morphTargetInfluences.length===e.length){f.morphTargetDictionary={};for(let s=0,n=e.length;s<n;s++)f.morphTargetDictionary[e[s]]=s}}}function ss(f){let t;const e=f.extensions&&f.extensions[y.KHR_DRACO_MESH_COMPRESSION];if(e?t="draco:"+e.bufferView+":"+e.indices+":"+ye(e.attributes):t=f.indices+":"+ye(f.attributes)+":"+f.mode,f.targets!==void 0)for(let s=0,n=f.targets.length;s<n;s++)t+=":"+ye(f.targets[s]);return t}function ye(f){let t="";const e=Object.keys(f).sort();for(let s=0,n=e.length;s<n;s++)t+=e[s]+":"+f[e[s]]+";";return t}function _e(f){switch(f){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function rs(f){return f.search(/\.jpe?g($|\?)/i)>0||f.search(/^data\:image\/jpeg/)===0?"image/jpeg":f.search(/\.webp($|\?)/i)>0||f.search(/^data\:image\/webp/)===0?"image/webp":f.search(/\.ktx2($|\?)/i)>0||f.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"}const is=new he;class os{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Ln,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let s=!1,n=-1,r=!1,i=-1;if(typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined"){const a=navigator.userAgent;s=/^((?!chrome|android).)*safari/i.test(a)===!0;const o=a.match(/Version\/(\d+)/);n=s&&o?parseInt(o[1],10):-1,r=a.indexOf("Firefox")>-1,i=r?a.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap=="undefined"||s&&n<17||r&&i<98?this.textureLoader=new en(this.options.manager):this.textureLoader=new tn(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new st(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const s=this,n=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(i){return i._markDefs&&i._markDefs()}),Promise.all(this._invokeAll(function(i){return i.beforeRoot&&i.beforeRoot()})).then(function(){return Promise.all([s.getDependencies("scene"),s.getDependencies("animation"),s.getDependencies("camera")])}).then(function(i){const a={scene:i[0][n.scene||0],scenes:i[0],animations:i[1],cameras:i[2],asset:n.asset,parser:s,userData:{}};return W(r,a,n),D(a,n),Promise.all(s._invokeAll(function(o){return o.afterRoot&&o.afterRoot(a)})).then(function(){for(const o of a.scenes)o.updateMatrixWorld();t(a)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],s=this.json.meshes||[];for(let n=0,r=e.length;n<r;n++){const i=e[n].joints;for(let a=0,o=i.length;a<o;a++)t[i[a]].isBone=!0}for(let n=0,r=t.length;n<r;n++){const i=t[n];i.mesh!==void 0&&(this._addNodeRef(this.meshCache,i.mesh),i.skin!==void 0&&(s[i.mesh].isSkinnedMesh=!0)),i.camera!==void 0&&this._addNodeRef(this.cameraCache,i.camera)}}_addNodeRef(t,e){e!==void 0&&(t.refs[e]===void 0&&(t.refs[e]=t.uses[e]=0),t.refs[e]++)}_getNodeRef(t,e,s){if(t.refs[e]<=1)return s;const n=s.clone(),r=(i,a)=>{const o=this.associations.get(i);o!=null&&this.associations.set(a,o);for(const[c,l]of i.children.entries())r(l,a.children[c])};return r(s,n),n.name+="_instance_"+t.uses[e]++,n}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let s=0;s<e.length;s++){const n=t(e[s]);if(n)return n}return null}_invokeAll(t){const e=Object.values(this.plugins);e.unshift(this);const s=[];for(let n=0;n<e.length;n++){const r=t(e[n]);r&&s.push(r)}return s}getDependency(t,e){const s=t+":"+e;let n=this.cache.get(s);if(!n){switch(t){case"scene":n=this.loadScene(e);break;case"node":n=this._invokeOne(function(r){return r.loadNode&&r.loadNode(e)});break;case"mesh":n=this._invokeOne(function(r){return r.loadMesh&&r.loadMesh(e)});break;case"accessor":n=this.loadAccessor(e);break;case"bufferView":n=this._invokeOne(function(r){return r.loadBufferView&&r.loadBufferView(e)});break;case"buffer":n=this.loadBuffer(e);break;case"material":n=this._invokeOne(function(r){return r.loadMaterial&&r.loadMaterial(e)});break;case"texture":n=this._invokeOne(function(r){return r.loadTexture&&r.loadTexture(e)});break;case"skin":n=this.loadSkin(e);break;case"animation":n=this._invokeOne(function(r){return r.loadAnimation&&r.loadAnimation(e)});break;case"camera":n=this.loadCamera(e);break;default:if(n=this._invokeOne(function(r){return r!=this&&r.getDependency&&r.getDependency(t,e)}),!n)throw new Error("Unknown type: "+t);break}this.cache.add(s,n)}return n}getDependencies(t){let e=this.cache.get(t);if(!e){const s=this,n=this.json[t+(t==="mesh"?"es":"s")]||[];e=Promise.all(n.map(function(r,i){return s.getDependency(t,i)})),this.cache.add(t,e)}return e}loadBuffer(t){const e=this.json.buffers[t],s=this.fileLoader;if(e.type&&e.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+e.type+" buffer type is not supported.");if(e.uri===void 0&&t===0)return Promise.resolve(this.extensions[y.KHR_BINARY_GLTF].body);const n=this.options;return new Promise(function(r,i){s.load(ie.resolveURL(e.uri,n.path),r,void 0,function(){i(new Error('THREE.GLTFLoader: Failed to load buffer "'+e.uri+'".'))})})}loadBufferView(t){const e=this.json.bufferViews[t];return this.getDependency("buffer",e.buffer).then(function(s){const n=e.byteLength||0,r=e.byteOffset||0;return s.slice(r,r+n)})}loadAccessor(t){const e=this,s=this.json,n=this.json.accessors[t];if(n.bufferView===void 0&&n.sparse===void 0){const i=we[n.type],a=Y[n.componentType],o=n.normalized===!0,c=new a(n.count*i);return Promise.resolve(new ge(c,i,o))}const r=[];return n.bufferView!==void 0?r.push(this.getDependency("bufferView",n.bufferView)):r.push(null),n.sparse!==void 0&&(r.push(this.getDependency("bufferView",n.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",n.sparse.values.bufferView))),Promise.all(r).then(function(i){const a=i[0],o=we[n.type],c=Y[n.componentType],l=c.BYTES_PER_ELEMENT,u=l*o,d=n.byteOffset||0,h=n.bufferView!==void 0?s.bufferViews[n.bufferView].byteStride:void 0,g=n.normalized===!0;let M,T;if(h&&h!==u){const A=Math.floor(d/h),_="InterleavedBuffer:"+n.bufferView+":"+n.componentType+":"+A+":"+n.count;let v=e.cache.get(_);v||(M=new c(a,A*h,n.count*h/l),v=new Dt(M,h/l),e.cache.add(_,v)),T=new Bt(v,o,d%h/l,g)}else a===null?M=new c(n.count*o):M=new c(a,d,n.count*o),T=new ge(M,o,g);if(n.sparse!==void 0){const A=we.SCALAR,_=Y[n.sparse.indices.componentType],v=n.sparse.indices.byteOffset||0,R=n.sparse.values.byteOffset||0,I=new _(i[1],v,n.sparse.count*A),P=new c(i[2],R,n.sparse.count*o);a!==null&&(T=new ge(T.array.slice(),T.itemSize,T.normalized)),T.normalized=!1;for(let O=0,F=I.length;O<F;O++){const S=I[O];if(T.setX(S,P[O*o]),o>=2&&T.setY(S,P[O*o+1]),o>=3&&T.setZ(S,P[O*o+2]),o>=4&&T.setW(S,P[O*o+3]),o>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}T.normalized=g}return T})}loadTexture(t){const e=this.json,s=this.options,r=e.textures[t].source,i=e.images[r];let a=this.textureLoader;if(i.uri){const o=s.manager.getHandler(i.uri);o!==null&&(a=o)}return this.loadTextureImage(t,r,a)}loadTextureImage(t,e,s){const n=this,r=this.json,i=r.textures[t],a=r.images[e],o=(a.uri||a.bufferView)+":"+i.sampler;if(this.textureCache[o])return this.textureCache[o];const c=this.loadImageSource(e,s).then(function(l){l.flipY=!1,l.name=i.name||a.name||"",l.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(l.name=a.uri);const d=(r.samplers||{})[i.sampler]||{};return l.magFilter=Ye[d.magFilter]||be,l.minFilter=Ye[d.minFilter]||ot,l.wrapS=Ze[d.wrapS]||Re,l.wrapT=Ze[d.wrapT]||Re,l.generateMipmaps=!l.isCompressedTexture&&l.minFilter!==at&&l.minFilter!==be,n.associations.set(l,{textures:t}),l}).catch(function(){return null});return this.textureCache[o]=c,c}loadImageSource(t,e){const s=this,n=this.json,r=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const i=n.images[t],a=self.URL||self.webkitURL;let o=i.uri||"",c=!1;if(i.bufferView!==void 0)o=s.getDependency("bufferView",i.bufferView).then(function(u){c=!0;const d=new Blob([u],{type:i.mimeType});return o=a.createObjectURL(d),o});else if(i.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const l=Promise.resolve(o).then(function(u){return new Promise(function(d,h){let g=d;e.isImageBitmapLoader===!0&&(g=function(M){const T=new Ke(M);T.needsUpdate=!0,d(T)}),e.load(ie.resolveURL(u,r.path),g,void 0,h)})}).then(function(u){return c===!0&&a.revokeObjectURL(o),D(u,i),u.userData.mimeType=i.mimeType||rs(i.uri),u}).catch(function(u){throw u});return this.sourceCache[t]=l,l}assignTexture(t,e,s,n){const r=this;return this.getDependency("texture",s.index).then(function(i){if(!i)return null;if(s.texCoord!==void 0&&s.texCoord>0&&(i=i.clone(),i.channel=s.texCoord),r.extensions[y.KHR_TEXTURE_TRANSFORM]){const a=s.extensions!==void 0?s.extensions[y.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const o=r.associations.get(i);i=r.extensions[y.KHR_TEXTURE_TRANSFORM].extendTexture(i,a),r.associations.set(i,o)}}return n!==void 0&&(i.colorSpace=n),t[e]=i,i})}assignFinalMaterial(t){const e=t.geometry;let s=t.material;const n=e.attributes.tangent===void 0,r=e.attributes.color!==void 0,i=e.attributes.normal===void 0;if(t.isPoints){const a="PointsMaterial:"+s.uuid;let o=this.cache.get(a);o||(o=new nn,Te.prototype.copy.call(o,s),o.color.copy(s.color),o.map=s.map,o.sizeAttenuation=!1,this.cache.add(a,o)),s=o}else if(t.isLine){const a="LineBasicMaterial:"+s.uuid;let o=this.cache.get(a);o||(o=new sn,Te.prototype.copy.call(o,s),o.color.copy(s.color),o.map=s.map,this.cache.add(a,o)),s=o}if(n||r||i){let a="ClonedMaterial:"+s.uuid+":";n&&(a+="derivative-tangents:"),r&&(a+="vertex-colors:"),i&&(a+="flat-shading:");let o=this.cache.get(a);o||(o=s.clone(),r&&(o.vertexColors=!0),i&&(o.flatShading=!0),n&&(o.normalScale&&(o.normalScale.y*=-1),o.clearcoatNormalScale&&(o.clearcoatNormalScale.y*=-1)),this.cache.add(a,o),this.associations.set(o,this.associations.get(s))),s=o}t.material=s}getMaterialType(){return oe}loadMaterial(t){const e=this,s=this.json,n=this.extensions,r=s.materials[t];let i;const a={},o=r.extensions||{},c=[];if(o[y.KHR_MATERIALS_UNLIT]){const u=n[y.KHR_MATERIALS_UNLIT];i=u.getMaterialType(),c.push(u.extendParams(a,r,e))}else{const u=r.pbrMetallicRoughness||{};if(a.color=new X(1,1,1),a.opacity=1,Array.isArray(u.baseColorFactor)){const d=u.baseColorFactor;a.color.setRGB(d[0],d[1],d[2],z),a.opacity=d[3]}u.baseColorTexture!==void 0&&c.push(e.assignTexture(a,"map",u.baseColorTexture,ae)),a.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,a.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(c.push(e.assignTexture(a,"metalnessMap",u.metallicRoughnessTexture)),c.push(e.assignTexture(a,"roughnessMap",u.metallicRoughnessTexture))),i=this._invokeOne(function(d){return d.getMaterialType&&d.getMaterialType(t)}),c.push(Promise.all(this._invokeAll(function(d){return d.extendMaterialParams&&d.extendMaterialParams(t,a)})))}r.doubleSided===!0&&(a.side=rn);const l=r.alphaMode||Ee.OPAQUE;if(l===Ee.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,l===Ee.MASK&&(a.alphaTest=r.alphaCutoff!==void 0?r.alphaCutoff:.5)),r.normalTexture!==void 0&&i!==re&&(c.push(e.assignTexture(a,"normalMap",r.normalTexture)),a.normalScale=new ve(1,1),r.normalTexture.scale!==void 0)){const u=r.normalTexture.scale;a.normalScale.set(u,u)}if(r.occlusionTexture!==void 0&&i!==re&&(c.push(e.assignTexture(a,"aoMap",r.occlusionTexture)),r.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=r.occlusionTexture.strength)),r.emissiveFactor!==void 0&&i!==re){const u=r.emissiveFactor;a.emissive=new X().setRGB(u[0],u[1],u[2],z)}return r.emissiveTexture!==void 0&&i!==re&&c.push(e.assignTexture(a,"emissiveMap",r.emissiveTexture,ae)),Promise.all(c).then(function(){const u=new i(a);return r.name&&(u.name=r.name),D(u,r),e.associations.set(u,{materials:t}),r.extensions&&W(n,u,r),u})}createUniqueName(t){const e=on.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,s=this.extensions,n=this.primitiveCache;function r(a){return s[y.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,e).then(function(o){return Qe(o,a,e)})}const i=[];for(let a=0,o=t.length;a<o;a++){const c=t[a],l=ss(c),u=n[l];if(u)i.push(u.promise);else{let d;c.extensions&&c.extensions[y.KHR_DRACO_MESH_COMPRESSION]?d=r(c):d=Qe(new kt,c,e),n[l]={primitive:c,promise:d},i.push(d)}}return Promise.all(i)}loadMesh(t){const e=this,s=this.json,n=this.extensions,r=s.meshes[t],i=r.primitives,a=[];for(let o=0,c=i.length;o<c;o++){const l=i[o].material===void 0?es(this.cache):this.getDependency("material",i[o].material);a.push(l)}return a.push(e.loadGeometries(i)),Promise.all(a).then(function(o){const c=o.slice(0,o.length-1),l=o[o.length-1],u=[];for(let h=0,g=l.length;h<g;h++){const M=l[h],T=i[h];let A;const _=c[h];if(T.mode===k.TRIANGLES||T.mode===k.TRIANGLE_STRIP||T.mode===k.TRIANGLE_FAN||T.mode===void 0)A=r.isSkinnedMesh===!0?new an(M,_):new de(M,_),A.isSkinnedMesh===!0&&A.normalizeSkinWeights(),T.mode===k.TRIANGLE_STRIP?A.geometry=Xe(A.geometry,tt):T.mode===k.TRIANGLE_FAN&&(A.geometry=Xe(A.geometry,Me));else if(T.mode===k.LINES)A=new cn(M,_);else if(T.mode===k.LINE_STRIP)A=new ln(M,_);else if(T.mode===k.LINE_LOOP)A=new un(M,_);else if(T.mode===k.POINTS)A=new fn(M,_);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+T.mode);Object.keys(A.geometry.morphAttributes).length>0&&ns(A,r),A.name=e.createUniqueName(r.name||"mesh_"+t),D(A,r),T.extensions&&W(n,A,T),e.assignFinalMaterial(A),u.push(A)}for(let h=0,g=u.length;h<g;h++)e.associations.set(u[h],{meshes:t,primitives:h});if(u.length===1)return r.extensions&&W(n,u[0],r),u[0];const d=new xe;r.extensions&&W(n,d,r),e.associations.set(d,{meshes:t});for(let h=0,g=u.length;h<g;h++)d.add(u[h]);return d})}loadCamera(t){let e;const s=this.json.cameras[t],n=s[s.type];if(n)return s.type==="perspective"?e=new lt(dn.radToDeg(n.yfov),n.aspectRatio||1,n.znear||1,n.zfar||2e6):s.type==="orthographic"&&(e=new hn(-n.xmag,n.xmag,n.ymag,-n.ymag,n.znear,n.zfar)),s.name&&(e.name=this.createUniqueName(s.name)),D(e,s),Promise.resolve(e)}loadSkin(t){const e=this.json.skins[t],s=[];for(let n=0,r=e.joints.length;n<r;n++)s.push(this._loadNodeShallow(e.joints[n]));return e.inverseBindMatrices!==void 0?s.push(this.getDependency("accessor",e.inverseBindMatrices)):s.push(null),Promise.all(s).then(function(n){const r=n.pop(),i=n,a=[],o=[];for(let c=0,l=i.length;c<l;c++){const u=i[c];if(u){a.push(u);const d=new he;r!==null&&d.fromArray(r.array,c*16),o.push(d)}}return new pn(a,o)})}loadAnimation(t){const e=this.json,s=this,n=e.animations[t],r=n.name?n.name:"animation_"+t,i=[],a=[],o=[],c=[],l=[];for(let u=0,d=n.channels.length;u<d;u++){const h=n.channels[u],g=n.samplers[h.sampler],M=h.target,T=M.node,A=n.parameters!==void 0?n.parameters[g.input]:g.input,_=n.parameters!==void 0?n.parameters[g.output]:g.output;M.node!==void 0&&(i.push(this.getDependency("node",T)),a.push(this.getDependency("accessor",A)),o.push(this.getDependency("accessor",_)),c.push(g),l.push(M))}return Promise.all([Promise.all(i),Promise.all(a),Promise.all(o),Promise.all(c),Promise.all(l)]).then(function(u){const d=u[0],h=u[1],g=u[2],M=u[3],T=u[4],A=[];for(let v=0,R=d.length;v<R;v++){const I=d[v],P=h[v],O=g[v],F=M[v],S=T[v];if(I===void 0)continue;I.updateMatrix&&I.updateMatrix();const Z=s._createAnimationTracks(I,P,O,F,S);if(Z)for(let Q=0;Q<Z.length;Q++)A.push(Z[Q])}const _=new Ut(r,void 0,A);return D(_,n),_})}createNodeMesh(t){const e=this.json,s=this,n=e.nodes[t];return n.mesh===void 0?null:s.getDependency("mesh",n.mesh).then(function(r){const i=s._getNodeRef(s.meshCache,n.mesh,r);return n.weights!==void 0&&i.traverse(function(a){if(a.isMesh)for(let o=0,c=n.weights.length;o<c;o++)a.morphTargetInfluences[o]=n.weights[o]}),i})}loadNode(t){const e=this.json,s=this,n=e.nodes[t],r=s._loadNodeShallow(t),i=[],a=n.children||[];for(let c=0,l=a.length;c<l;c++)i.push(s.getDependency("node",a[c]));const o=n.skin===void 0?Promise.resolve(null):s.getDependency("skin",n.skin);return Promise.all([r,Promise.all(i),o]).then(function(c){const l=c[0],u=c[1],d=c[2];d!==null&&l.traverse(function(h){h.isSkinnedMesh&&h.bind(d,is)});for(let h=0,g=u.length;h<g;h++)l.add(u[h]);if(l.userData.pivot!==void 0&&u.length>0){const h=l.userData.pivot,g=u[0];l.pivot=new U().fromArray(h),l.position.x-=h[0],l.position.y-=h[1],l.position.z-=h[2],g.position.set(0,0,0),delete l.userData.pivot}return l})}_loadNodeShallow(t){const e=this.json,s=this.extensions,n=this;if(this.nodeCache[t]!==void 0)return this.nodeCache[t];const r=e.nodes[t],i=r.name?n.createUniqueName(r.name):"",a=[],o=n._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(t)});return o&&a.push(o),r.camera!==void 0&&a.push(n.getDependency("camera",r.camera).then(function(c){return n._getNodeRef(n.cameraCache,r.camera,c)})),n._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(t)}).forEach(function(c){a.push(c)}),this.nodeCache[t]=Promise.all(a).then(function(c){let l;if(r.isBone===!0?l=new mn:c.length>1?l=new xe:c.length===1?l=c[0]:l=new it,l!==c[0])for(let u=0,d=c.length;u<d;u++)l.add(c[u]);if(r.name&&(l.userData.name=r.name,l.name=i),D(l,r),r.extensions&&W(s,l,r),r.matrix!==void 0){const u=new he;u.fromArray(r.matrix),l.applyMatrix4(u)}else r.translation!==void 0&&l.position.fromArray(r.translation),r.rotation!==void 0&&l.quaternion.fromArray(r.rotation),r.scale!==void 0&&l.scale.fromArray(r.scale);if(!n.associations.has(l))n.associations.set(l,{});else if(r.mesh!==void 0&&n.meshCache.refs[r.mesh]>1){const u=n.associations.get(l);n.associations.set(l,J({},u))}return n.associations.get(l).nodes=t,l}),this.nodeCache[t]}loadScene(t){const e=this.extensions,s=this.json.scenes[t],n=this,r=new xe;s.name&&(r.name=n.createUniqueName(s.name)),D(r,s),s.extensions&&W(e,r,s);const i=s.nodes||[],a=[];for(let o=0,c=i.length;o<c;o++)a.push(n.getDependency("node",i[o]));return Promise.all(a).then(function(o){for(let l=0,u=o.length;l<u;l++){const d=o[l];d.parent!==null?r.add(_n(d)):r.add(d)}const c=l=>{const u=new Map;for(const[d,h]of n.associations)(d instanceof Te||d instanceof Ke)&&u.set(d,h);return l.traverse(d=>{const h=n.associations.get(d);h!=null&&u.set(d,h)}),u};return n.associations=c(r),r})}_createAnimationTracks(t,e,s,n,r){const i=[],a=t.name?t.name:t.uuid,o=[];j[r.path]===j.weights?t.traverse(function(d){d.morphTargetInfluences&&o.push(d.name?d.name:d.uuid)}):o.push(a);let c;switch(j[r.path]){case j.weights:c=je;break;case j.rotation:c=ze;break;case j.translation:case j.scale:c=Ue;break;default:switch(s.itemSize){case 1:c=je;break;case 2:case 3:default:c=Ue;break}break}const l=n.interpolation!==void 0?Jn[n.interpolation]:ct,u=this._getArrayFromAccessor(s);for(let d=0,h=o.length;d<h;d++){const g=new c(o[d]+"."+j[r.path],e.array,u,l);n.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(g),i.push(g)}return i}_getArrayFromAccessor(t){let e=t.array;if(t.normalized){const s=_e(e.constructor),n=new Float32Array(e.length);for(let r=0,i=e.length;r<i;r++)n[r]=e[r]*s;e=n}return e}_createCubicSplineTrackInterpolant(t){t.createInterpolant=function(s){const n=this instanceof ze?$n:dt;return new n(this.times,this.values,this.getValueSize()/3,s)},t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function as(f,t,e){const s=t.attributes,n=new gn;if(s.POSITION!==void 0){const a=e.json.accessors[s.POSITION],o=a.min,c=a.max;if(o!==void 0&&c!==void 0){if(n.set(new U(o[0],o[1],o[2]),new U(c[0],c[1],c[2])),a.normalized){const l=_e(Y[a.componentType]);n.min.multiplyScalar(l),n.max.multiplyScalar(l)}}else return}else return;const r=t.targets;if(r!==void 0){const a=new U,o=new U;for(let c=0,l=r.length;c<l;c++){const u=r[c];if(u.POSITION!==void 0){const d=e.json.accessors[u.POSITION],h=d.min,g=d.max;if(h!==void 0&&g!==void 0){if(o.setX(Math.max(Math.abs(h[0]),Math.abs(g[0]))),o.setY(Math.max(Math.abs(h[1]),Math.abs(g[1]))),o.setZ(Math.max(Math.abs(h[2]),Math.abs(g[2]))),d.normalized){const M=_e(Y[d.componentType]);o.multiplyScalar(M)}a.max(o)}}}n.expandByVector(a)}f.boundingBox=n;const i=new Tn;n.getCenter(i.center),i.radius=n.min.distanceTo(n.max)/2,f.boundingSphere=i}function Qe(f,t,e){const s=t.attributes,n=[];function r(i,a){return e.getDependency("accessor",i).then(function(o){f.setAttribute(a,o)})}for(const i in s){const a=Se[i]||i.toLowerCase();a in f.attributes||n.push(r(s[i],a))}if(t.indices!==void 0&&!f.index){const i=e.getDependency("accessor",t.indices).then(function(a){f.setIndex(a)});n.push(i)}return xn.workingColorSpace!==z&&"COLOR_0"in s,D(f,t),as(f,t,e),Promise.all(n).then(function(){return t.targets!==void 0?ts(f,t.targets,e):f})}const cs={class:"workshop-container"},ls={class:"gesture-control-wrapper"},us={key:1,class:"gesture-info"},fs={key:1,class:"info-panel"},ds={class:"info-header"},hs={class:"info-content"},ps=50,fe=.002,V=.6,$e=2.5,Je=4,et=1500,ms=120,gs={__name:"index",setup(f){const t=K(null),e=K(null),s=K(null),n=K(null),r=K(!1),i=K("正在加载模型..."),a=K(!1),o=K({x:0,y:0});let c,l,u,d,h,g=[],M,T,A=null,_=null,v=null,R=null,I=null,P=!1,O=!1,F=null,S={x:0,y:0};const Z=[{id:"DEV-001",name:"加工中心A",status:"运行中",statusColor:"#52c41a",temperature:45,runtime:1234,color:1609983},{id:"DEV-002",name:"加工中心B",status:"待机",statusColor:"#faad14",temperature:28,runtime:2456,color:5424154},{id:"DEV-003",name:"装配机器人",status:"运行中",statusColor:"#52c41a",temperature:38,runtime:3678,color:16065069},{id:"DEV-004",name:"质检设备",status:"故障",statusColor:"#f5222d",temperature:65,runtime:890,color:16419862},{id:"DEV-005",name:"包装机",status:"运行中",statusColor:"#52c41a",temperature:42,runtime:5432,color:7483089}];Ct(()=>{Q(),ht(),mt(),Fe(),window.addEventListener("resize",Ie)}),Pt(()=>{cancelAnimationFrame(h),window.removeEventListener("resize",Ie),window.removeEventListener("click",Le),pe(),d.dispose(),u.dispose(),c.clear()});function Q(){c=new An,c.background=new X(15790837),l=new lt(75,t.value.clientWidth/t.value.clientHeight,.1,1e3),l.position.set(8,8,8),l.lookAt(0,0,0),u=new wn({antialias:!0}),u.setSize(t.value.clientWidth,t.value.clientHeight),u.shadowMap.enabled=!0,t.value.appendChild(u.domElement),d=new Rn(l,u.domElement),d.enableDamping=!0,d.dampingFactor=.05,d.mouseButtons={LEFT:Ae.ROTATE,MIDDLE:Ae.PAN,RIGHT:Ae.PAN};const p=new En(16777215,.6);c.add(p);const m=new rt(16777215,.8);m.position.set(10,10,5),m.castShadow=!0,c.add(m);const w=new yn(20,20),x=new oe({color:13421772}),E=new de(w,x);E.rotation.x=-Math.PI/2,E.receiveShadow=!0,c.add(E);const b=new Mn(20,20,8947848,14540253);c.add(b)}function ht(){const p=[{x:-4,y:1,z:-4},{x:4,y:1,z:-4},{x:0,y:1,z:0},{x:-4,y:1,z:4},{x:4,y:1,z:4}];Z.forEach((m,w)=>{if(w===2)pt(p[w],m);else{const x=new Ve(1.5,1.5,1.5),E=new oe({color:m.color,metalness:.3,roughness:.4}),b=new de(x,E);b.position.set(p[w].x,p[w].y,p[w].z),b.castShadow=!0,b.receiveShadow=!0,b.userData=ue(J({},m),{position:p[w],originalColor:m.color}),c.add(b),g.push(b)}})}function pt(p,m){new vn().load("/models/robot.glb",x=>{A=x.scene,A.position.set(p.x,p.y,p.z),A.scale.set(2,2,2),A.traverse(E=>{E.isMesh&&(E.castShadow=!0,E.receiveShadow=!0)}),A.userData=ue(J({},m),{position:p,originalColor:m.color,isModel:!0}),c.add(A),g.push(A)},x=>{},x=>{const E=new Ve(1.5,1.5,1.5),b=new oe({color:m.color,metalness:.3,roughness:.4}),C=new de(E,b);C.position.set(p.x,p.y,p.z),C.castShadow=!0,C.receiveShadow=!0,C.userData=ue(J({},m),{position:p,originalColor:m.color}),c.add(C),g.push(C)})}function mt(){M=new bn,T=new ve,window.addEventListener("click",Le)}function Le(p){const m=t.value.getBoundingClientRect();T.x=(p.clientX-m.left)/m.width*2-1,T.y=-((p.clientY-m.top)/m.height)*2+1,M.setFromCamera(T,l);const w=M.intersectObjects(g,!0);if(g.forEach(x=>{x.material?(x.material.color.setHex(x.userData.originalColor),x.material.emissive.setHex(0)):x.userData.isModel&&x.traverse(E=>{E.isMesh&&E.material&&E.material.emissive.setHex(0)})}),w.length>0){let E=w[0].object;for(;E.parent&&!g.includes(E);)E=E.parent;E.material?E.material.emissive.setHex(5592405):E.userData.isModel&&E.traverse(b=>{b.isMesh&&b.material&&b.material.emissive.setHex(5592405)}),e.value=E.userData}else e.value=null}function Ie(){l.aspect=t.value.clientWidth/t.value.clientHeight,l.updateProjectionMatrix(),u.setSize(t.value.clientWidth,t.value.clientHeight)}function Ne(){return ee(this,null,function*(){r.value?pe():yield Tt()})}function gt(){return ee(this,null,function*(){return new Promise((p,m)=>{if(window.tf&&window.handpose){p();return}const w=document.createElement("script");w.src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.11.0/dist/tf.min.js",w.onload=()=>{const x=document.createElement("script");x.src="https://cdn.jsdelivr.net/npm/@tensorflow-models/handpose@0.0.7/dist/handpose.min.js",x.onload=()=>p(),x.onerror=()=>m(new Error("HandPose 加载失败")),document.head.appendChild(x)},w.onerror=()=>m(new Error("TensorFlow.js 加载失败")),document.head.appendChild(w)})})}function Tt(){return ee(this,null,function*(){try{i.value="正在加载 TensorFlow.js...",yield gt(),i.value="正在加载手势识别模型...",R=yield window.handpose.load(),i.value="正在启动摄像头...",_=yield navigator.mediaDevices.getUserMedia({video:{width:640,height:480,facingMode:"user"}}),s.value.srcObject=_,r.value=!0,yield new Promise(p=>{s.value.onloadedmetadata=p}),n.value.width=s.value.videoWidth,n.value.height=s.value.videoHeight,i.value="手势控制已启用",Oe()}catch(p){i.value="启动失败: "+p.message,pe(),alert("手势控制启动失败: "+p.message)}})}function pe(){_&&(_.getTracks().forEach(p=>p.stop()),_=null),v&&(cancelAnimationFrame(v),v=null),r.value=!1,I=null,P=!1,O=!1,F=null,S={x:0,y:0}}function Oe(){return ee(this,null,function*(){if(!(!r.value||!R)){try{const p=yield R.estimateHands(s.value),m=n.value.getContext("2d");m.clearRect(0,0,n.value.width,n.value.height),m.drawImage(s.value,0,0,n.value.width,n.value.height),p.length>0?(p.forEach(w=>Mt(m,w.landmarks)),p.length>=2?At(p):Pe(p[0].landmarks)):(i.value="未检测到手部",Ce())}catch(p){}v=requestAnimationFrame(Oe)}})}function Ce(){I=null,P=!1,O=!1,F=null,S={x:0,y:0}}function me(p){const m=p[4],w=p[8];return Math.sqrt(Math.pow(m[0]-w[0],2)+Math.pow(m[1]-w[1],2))<ps}function xt(p){const m=p[0],w=[p[4],p[8],p[12],p[16],p[20]];let x=0;return w.forEach(b=>{const C=Math.sqrt(Math.pow(b[0]-m[0],2)+Math.pow(b[1]-m[1],2));x+=C}),x/w.length>ms}function Pe(p){const m=me(p),w=xt(p);if(m){const x=p[4],E=p[8],b=[(x[0]+E[0])/2,(x[1]+E[1])/2],C=b[0]/n.value.width*window.innerWidth,H=b[1]/n.value.height*window.innerHeight;if(o.value={x:C,y:H},a.value=!0,P&&I){let ce=(b[0]-I[0])/n.value.width,le=(b[1]-I[1])/n.value.height;S.x=S.x*(1-V)+ce*V,S.y=S.y*(1-V)+le*V,Math.abs(S.x)<fe&&(S.x=0),Math.abs(S.y)<fe&&(S.y=0),wt(S.x,S.y),i.value="捏合旋转"}I=b,P=!0,F=null}else if(w){if(a.value=!1,F===null)F=Date.now();else{const x=Date.now()-F;x>=et?(yt(),i.value="视角已重置",F=null):i.value=`保持手掌张开 ${((et-x)/1e3).toFixed(1)}s 重置视角`}P=!1,I=null}else a.value=!1,Ce(),i.value="等待手势..."}function At(p){const m=p[0].landmarks,w=p[1].landmarks,x=me(m),E=me(w);if(x&&E){const b=m[4],C=m[8],H=w[4],ce=w[8],le=[(b[0]+C[0])/2,(b[1]+C[1])/2],ke=[(H[0]+ce[0])/2,(H[1]+ce[1])/2],$=[(le[0]+ke[0])/2,(le[1]+ke[1])/2],bt=$[0]/n.value.width*window.innerWidth,Rt=$[1]/n.value.height*window.innerHeight;if(o.value={x:bt,y:Rt},a.value=!0,O&&I){let St=($[0]-I[0])/n.value.width,_t=($[1]-I[1])/n.value.height;S.x=S.x*(1-V)+St*V,S.y=S.y*(1-V)+_t*V,Math.abs(S.x)<fe&&(S.x=0),Math.abs(S.y)<fe&&(S.y=0),Et(S.x,S.y),i.value="双手平移"}I=$,O=!0,P=!1}else O=!1,Pe(p[0].landmarks)}function wt(p,m){const w=-p*Math.PI*$e,x=-m*Math.PI*$e,E=l.position.clone().sub(d.target),b=E.length();let C=Math.atan2(E.x,E.z),H=Math.acos(Math.max(-1,Math.min(1,E.y/b)));C+=w,H+=x,H=Math.max(.1,Math.min(Math.PI-.1,H)),l.position.x=d.target.x+b*Math.sin(H)*Math.sin(C),l.position.y=d.target.y+b*Math.cos(H),l.position.z=d.target.z+b*Math.sin(H)*Math.cos(C),l.lookAt(d.target)}function Et(p,m){const w=new U,x=new U;w.setFromMatrixColumn(l.matrix,0),x.setFromMatrixColumn(l.matrix,1),d.target.add(w.multiplyScalar(-p*Je)),d.target.add(x.multiplyScalar(m*Je))}function yt(){l.position.set(8,8,8),d.target.set(0,0,0),l.lookAt(d.target)}function Mt(p,m){p.fillStyle="#00ff00",m.forEach(x=>{p.beginPath(),p.arc(x[0],x[1],5,0,2*Math.PI),p.fill()});const w=[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[0,9],[9,10],[10,11],[11,12],[0,13],[13,14],[14,15],[15,16],[0,17],[17,18],[18,19],[19,20],[5,9],[9,13],[13,17]];p.strokeStyle="#00ff00",p.lineWidth=2,w.forEach(([x,E])=>{p.beginPath(),p.moveTo(m[x][0],m[x][1]),p.lineTo(m[E][0],m[E][1]),p.stroke()})}function Fe(){h=requestAnimationFrame(Fe),g.forEach((p,m)=>{p.userData.isModel||(p.rotation.y+=.005*(m%2===0?1:-1))}),d.update(),u.render(c,l)}return(p,m)=>(ne(),te("div",cs,[L("div",{ref_key:"container",ref:t,class:"three-container"},null,512),a.value?(ne(),te("div",{key:0,class:"virtual-cursor",style:Ge({left:o.value.x+"px",top:o.value.y+"px"})},[...m[1]||(m[1]=[L("div",{class:"cursor-dot"},null,-1),L("div",{class:"cursor-ring"},null,-1)])],4)):Be("",!0),L("div",ls,[r.value?(ne(),te("div",us,[L("span",null,G(i.value),1),L("button",{onClick:Ne,class:"toggle-btn"},"关闭")])):(ne(),te("button",{key:0,onClick:Ne,class:"gesture-toggle-btn"}," 🎥 启用手势控制 "))]),L("div",{class:Ft(["camera-preview",{hidden:!r.value}])},[L("video",{ref_key:"videoElement",ref:s,autoplay:"",playsinline:""},null,512),L("canvas",{ref_key:"canvasElement",ref:n},null,512)],2),e.value?(ne(),te("div",fs,[L("div",ds,[m[2]||(m[2]=L("h3",null,"设备信息",-1)),L("button",{onClick:m[0]||(m[0]=w=>e.value=null),class:"close-btn"},"×")]),L("div",hs,[L("p",null,[m[3]||(m[3]=L("strong",null,"设备名称:",-1)),q(" "+G(e.value.name),1)]),L("p",null,[m[4]||(m[4]=L("strong",null,"设备ID:",-1)),q(" "+G(e.value.id),1)]),L("p",null,[m[5]||(m[5]=L("strong",null,"状态:",-1)),m[6]||(m[6]=q()),L("span",{style:Ge({color:e.value.statusColor})},G(e.value.status),5)]),L("p",null,[m[7]||(m[7]=L("strong",null,"位置:",-1)),q(" X: "+G(e.value.position.x.toFixed(2))+", Y: "+G(e.value.position.y.toFixed(2))+", Z: "+G(e.value.position.z.toFixed(2)),1)]),L("p",null,[m[8]||(m[8]=L("strong",null,"温度:",-1)),q(" "+G(e.value.temperature)+"°C",1)]),L("p",null,[m[9]||(m[9]=L("strong",null,"运行时长:",-1)),q(" "+G(e.value.runtime)+"小时",1)])])])):Be("",!0)]))}},_s=Sn(gs,[["__scopeId","data-v-c59c8626"]]);export{_s as default};