var A=Object.defineProperty,I=Object.defineProperties;var P=Object.getOwnPropertyDescriptors;var b=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable;var D=(s,t,o)=>t in s?A(s,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):s[t]=o,k=(s,t)=>{for(var o in t||(t={}))R.call(t,o)&&D(s,o,t[o]);if(b)for(var o of b(t))j.call(t,o)&&D(s,o,t[o]);return s},z=(s,t)=>I(s,P(t));import{Scene as N,Color as O,PerspectiveCamera as _,WebGLRenderer as T,AmbientLight as X,DirectionalLight as Y,PlaneGeometry as q,MeshStandardMaterial as S,Mesh as H,GridHelper as Q,BoxGeometry as U,Raycaster as Z,Vector2 as $}from"./three.module-DDq6qIBS.js";import{O as J}from"./OrbitControls-BnVF_s4z.js";import{au as K}from"./index-X7Y8jykP.js";import{o as ee,x as te,r as L,C as M,Q as n,H as oe,E as p,G as m,T as ne,z as V}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const re={class:"workshop-container"},se={key:0,class:"info-panel"},ae={class:"info-header"},ie={class:"info-content"},le={__name:"Workshop3D",setup(s){const t=L(null),o=L(null);let l,u,c,f,h,w=[],g,x;const W=[{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}];ee(()=>{B(),F(),G(),E(),window.addEventListener("resize",y)}),te(()=>{cancelAnimationFrame(h),window.removeEventListener("resize",y),window.removeEventListener("click",C),f.dispose(),c.dispose(),l.clear()});function B(){l=new N,l.background=new O(15790837),u=new _(75,t.value.clientWidth/t.value.clientHeight,.1,1e3),u.position.set(8,8,8),u.lookAt(0,0,0),c=new T({antialias:!0}),c.setSize(t.value.clientWidth,t.value.clientHeight),c.shadowMap.enabled=!0,t.value.appendChild(c.domElement),f=new J(u,c.domElement),f.enableDamping=!0,f.dampingFactor=.05;const r=new X(16777215,.6);l.add(r);const e=new Y(16777215,.8);e.position.set(10,10,5),e.castShadow=!0,l.add(e);const a=new q(20,20),i=new S({color:13421772}),v=new H(a,i);v.rotation.x=-Math.PI/2,v.receiveShadow=!0,l.add(v);const d=new Q(20,20,8947848,14540253);l.add(d)}function F(){const r=[{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}];W.forEach((e,a)=>{const i=new U(1.5,1.5,1.5),v=new S({color:e.color,metalness:.3,roughness:.4}),d=new H(i,v);d.position.set(r[a].x,r[a].y,r[a].z),d.castShadow=!0,d.receiveShadow=!0,d.userData=z(k({},e),{position:r[a],originalColor:e.color}),l.add(d),w.push(d)})}function G(){g=new Z,x=new $,window.addEventListener("click",C)}function C(r){const e=t.value.getBoundingClientRect();x.x=(r.clientX-e.left)/e.width*2-1,x.y=-((r.clientY-e.top)/e.height)*2+1,g.setFromCamera(x,u);const a=g.intersectObjects(w);if(w.forEach(i=>{i.material.color.setHex(i.userData.originalColor),i.material.emissive.setHex(0)}),a.length>0){const i=a[0].object;i.material.emissive.setHex(5592405),o.value=i.userData}else o.value=null}function y(){u.aspect=t.value.clientWidth/t.value.clientHeight,u.updateProjectionMatrix(),c.setSize(t.value.clientWidth,t.value.clientHeight)}function E(){h=requestAnimationFrame(E),w.forEach((r,e)=>{r.rotation.y+=.005*(e%2===0?1:-1)}),f.update(),c.render(l,u)}return(r,e)=>(V(),M("div",re,[n("div",{ref_key:"container",ref:t,class:"three-container"},null,512),o.value?(V(),M("div",se,[n("div",ae,[e[1]||(e[1]=n("h3",null,"设备信息",-1)),n("button",{onClick:e[0]||(e[0]=a=>o.value=null),class:"close-btn"},"×")]),n("div",ie,[n("p",null,[e[2]||(e[2]=n("strong",null,"设备名称:",-1)),p(" "+m(o.value.name),1)]),n("p",null,[e[3]||(e[3]=n("strong",null,"设备ID:",-1)),p(" "+m(o.value.id),1)]),n("p",null,[e[4]||(e[4]=n("strong",null,"状态:",-1)),e[5]||(e[5]=p()),n("span",{style:ne({color:o.value.statusColor})},m(o.value.status),5)]),n("p",null,[e[6]||(e[6]=n("strong",null,"位置:",-1)),p(" X: "+m(o.value.position.x.toFixed(2))+", Y: "+m(o.value.position.y.toFixed(2))+", Z: "+m(o.value.position.z.toFixed(2)),1)]),n("p",null,[e[7]||(e[7]=n("strong",null,"温度:",-1)),p(" "+m(o.value.temperature)+"°C",1)]),n("p",null,[e[8]||(e[8]=n("strong",null,"运行时长:",-1)),p(" "+m(o.value.runtime)+"小时",1)])])])):oe("",!0)]))}},ve=K(le,[["__scopeId","data-v-0ce3037c"]]);export{ve as default};