ss-component-new 1.2.136 → 1.2.138

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/{MTLLoader-W2bcC1q8.js → MTLLoader-BQPWZhwJ.js} +1 -1
  2. package/dist/{MTLLoader-MINcyZJJ.cjs → MTLLoader-rHpbWTI_.cjs} +1 -1
  3. package/dist/{OrbitControls-DInp3xM3.js → OrbitControls-Bvp2b_M2.js} +1 -1
  4. package/dist/{OrbitControls-zIDPLP2N.cjs → OrbitControls-D2yX87zU.cjs} +1 -1
  5. package/dist/{animationData-9Rwp8uyx.js → animationData-B3zZOzAE.js} +3 -3
  6. package/dist/{animationData-CPq6_wNF.cjs → animationData-CuUj6JDb.cjs} +1 -1
  7. package/dist/{array-jPdolPpm.js → array-B9gWNnej.js} +1 -1
  8. package/dist/{array-CYnA_0YM.cjs → array-DXu383Fa.cjs} +1 -1
  9. package/dist/{dataUtil-B4sGo38_.cjs → dataUtil-Brpg9CSN.cjs} +1 -1
  10. package/dist/{dataUtil-DQX9rTvE.js → dataUtil-DcGEuoWS.js} +1 -1
  11. package/dist/{iconfont-Bfcif4Wm.cjs → iconfont-Cd-HtwmG.cjs} +1 -1
  12. package/dist/{iconfont-BP_QEXyH.js → iconfont-DXGCEldy.js} +2 -2
  13. package/dist/{index-Ctb0iFbe.cjs → index-0EgOP_zr.cjs} +1 -1
  14. package/dist/{index-VvTawd2K.cjs → index-1iBK4SOi.cjs} +1 -1
  15. package/dist/{index-BXRe2SdU.cjs → index-7Z4hH5DN.cjs} +1 -1
  16. package/dist/{index-DoqCGsXd.js → index-B2rc9xa6.js} +11 -11
  17. package/dist/{index-4LcggUsv.cjs → index-B8PUJh-M.cjs} +1 -1
  18. package/dist/{index-D-8Ve1vd.js → index-B8pM9LoP.js} +19 -19
  19. package/dist/{index-BcdrVmA2.js → index-BE4Ox6_a.js} +2 -2
  20. package/dist/{index-3WEMy5_p.js → index-BGui0vrG.js} +2 -2
  21. package/dist/{index-DOZJO31u.cjs → index-BUacsR_l.cjs} +1 -1
  22. package/dist/{index-D4KRA-ju.js → index-BV8CK8MT.js} +5 -5
  23. package/dist/{index-C9D1SCzp.js → index-BYCdUxqq.js} +5 -5
  24. package/dist/{index-CcklBwqU.js → index-Bnmx0uns.js} +2 -2
  25. package/dist/index-BotH0jHM.cjs +1 -0
  26. package/dist/{index-CBsOpx33.cjs → index-BqzSSymu.cjs} +1 -1
  27. package/dist/{index-WjmB2-oN.cjs → index-Bw2f8X7m.cjs} +1 -1
  28. package/dist/{index-Dc7vS45u.js → index-BxtkLab-.js} +2 -2
  29. package/dist/{index-Bo9YSg2v.js → index-CBLiY4kf.js} +1 -1
  30. package/dist/{index-BN4MhImz.js → index-CGeabbQ5.js} +7 -7
  31. package/dist/{index-CSQJCfDf.js → index-CIoVLl8r.js} +1 -1
  32. package/dist/{index-BxZ-k8Ww.js → index-CR1PuEcf.js} +1 -1
  33. package/dist/{index-B21qNg4A.cjs → index-CSUfNuHC.cjs} +1 -1
  34. package/dist/{index-CGRb8BQx.cjs → index-C_U3JqBH.cjs} +1 -1
  35. package/dist/{index-CfrzoYYm.js → index-Ck1jmhY4.js} +10 -10
  36. package/dist/{index-CmVXy6DG.js → index-ClzevDbG.js} +2 -2
  37. package/dist/{index-Cw3gRBT3.cjs → index-D6ZtjYlX.cjs} +1 -1
  38. package/dist/{index-sqKsSUMY.js → index-DCkDkfcv.js} +2 -2
  39. package/dist/{index-a6bC3A9D.cjs → index-DHMUS6aq.cjs} +1 -1
  40. package/dist/{index-CcwTi2WJ.js → index-DMB7b-Hz.js} +1 -1
  41. package/dist/{index-BP7w8f-l.cjs → index-DNd_R3Wc.cjs} +1 -1
  42. package/dist/{index-CXrryrro.js → index-DToa387-.js} +1 -1
  43. package/dist/{index-DH1jRFsR.js → index-DUvCKtvN.js} +1 -1
  44. package/dist/{index-eaKFpHpQ.cjs → index-DW4LUPva.cjs} +1 -1
  45. package/dist/{index-DhufphmT.cjs → index-DWozj8SO.cjs} +1 -1
  46. package/dist/{index-DRVFz7q3.js → index-DXKmyyiU.js} +2 -2
  47. package/dist/{index-CcvCPGjx.js → index-DZshon9L.js} +3 -3
  48. package/dist/{index-h4NtMFJ6.cjs → index-Da-jfSLY.cjs} +1 -1
  49. package/dist/{index-CqDh73Kp.js → index-DcZT1tEr.js} +3 -3
  50. package/dist/{index-Duq040ej.js → index-DiaETo4w.js} +5 -5
  51. package/dist/{index-lQ5itYsF.cjs → index-Dr6BN_zC.cjs} +1 -1
  52. package/dist/{index-BXfKtvF-.js → index-Dr9Egq23.js} +1 -1
  53. package/dist/{index-KgwRgulq.cjs → index-Dv2ROWAm.cjs} +1 -1
  54. package/dist/{index-CJOQxUog.js → index-DzBBqrxe.js} +2 -2
  55. package/dist/{index-CV2JWX-7.js → index-EqgbW679.js} +1 -1
  56. package/dist/{index-CUo9Rzi3.cjs → index-F-zgk6uc.cjs} +1 -1
  57. package/dist/{index-C_paG8gS.cjs → index-GBr-eArU.cjs} +1 -1
  58. package/dist/{index-DI1_OcYK.js → index-K_jsxywJ.js} +4 -4
  59. package/dist/{index-C1eL6q7Z.cjs → index-aJ6qSTMl.cjs} +1 -1
  60. package/dist/{index-8wlioSUm.cjs → index-bzux6PE0.cjs} +1 -1
  61. package/dist/{index-jYsmQ_MD.js → index-d7FbcLhM.js} +5 -5
  62. package/dist/{index-PHVmpaM3.cjs → index-dEECSdIC.cjs} +1 -1
  63. package/dist/{index-dT9Iek_K.cjs → index-eEf1sDte.cjs} +1 -1
  64. package/dist/{index-DqFTTAE_.cjs → index-h7b-2-4Q.cjs} +1 -1
  65. package/dist/{index-D3rnfXSB.cjs → index-jvD6GMrr.cjs} +1 -1
  66. package/dist/{index-yKyLlN3j.cjs → index-kddiRLxz.cjs} +1 -1
  67. package/dist/{index-DwFpQNpA.cjs → index-mDbSepFg.cjs} +1 -1
  68. package/dist/{index-DRizRbU3.js → index-u963fvJq.js} +1 -1
  69. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-VeGs2jMN.js → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-BPcGKxya.js} +11 -11
  70. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DKaT8xTU.cjs → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-VXj1bZpQ.cjs} +1 -1
  71. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-pcyvQAbK.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CSGUG8yi.cjs} +1 -1
  72. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Ca5MAWqT.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-JTfuXDvR.js} +1 -1
  73. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-BJWbNR2V.cjs → index.vue_vue_type_style_index_0_scoped_92477073_lang-DSTQwClf.cjs} +1 -1
  74. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-gNnmU49-.js → index.vue_vue_type_style_index_0_scoped_92477073_lang-datljWVr.js} +5 -5
  75. package/dist/{index.vue_vue_type_style_index_1_lang-BqG2FKzs.cjs → index.vue_vue_type_style_index_1_lang-C3Kw83zI.cjs} +1 -1
  76. package/dist/{index.vue_vue_type_style_index_1_lang-Cg1p_3ne.js → index.vue_vue_type_style_index_1_lang-DCNwSjkL.js} +1414 -1409
  77. package/dist/{index.vue_vue_type_style_index_1_lang-B8_elAaU.cjs → index.vue_vue_type_style_index_1_lang-_MRLV2pU.cjs} +5 -5
  78. package/dist/{index.vue_vue_type_style_index_1_lang-DbWCiN56.js → index.vue_vue_type_style_index_1_lang-rhYAIITv.js} +4 -4
  79. package/dist/{main-DL-OIsZx.js → main-CHpE2HyT.js} +4 -4
  80. package/dist/{main-rAd7GfHp.cjs → main-Wuj537Hx.cjs} +1 -1
  81. package/dist/ss-component.cjs +1 -1
  82. package/dist/ss-component.css +1 -1
  83. package/dist/ss-component.js +10 -10
  84. package/dist/ss-component2.cjs +1 -1
  85. package/dist/ss-component2.js +11 -11
  86. package/dist/{threeModel-BZ45sbaM.cjs → threeModel-B86bww-L.cjs} +1 -1
  87. package/dist/{threeModel-Bfr23IA3.js → threeModel-BJx5MH-m.js} +4 -4
  88. package/dist/{threePreview-n92dat47.js → threePreview-C8oiPD1l.js} +3 -3
  89. package/dist/{threePreview-DH6gyAm7.cjs → threePreview-DJLDHZlr.cjs} +1 -1
  90. package/dist/{threeSceneView-Bbv4UqdI.cjs → threeSceneView-8xsyz8QG.cjs} +1 -1
  91. package/dist/{threeSceneView-C3kjUyQz.js → threeSceneView-gxNGr3MP.js} +10 -10
  92. package/dist/{threeSceneViewForCPMPIP-CU85SdU2.js → threeSceneViewForCPMPIP-2m5nxgEF.js} +9 -9
  93. package/dist/{threeSceneViewForCPMPIP-Do8dA3xZ.cjs → threeSceneViewForCPMPIP-CLYeetY9.cjs} +1 -1
  94. package/dist/{threeTrackPathView-DundgA2K.cjs → threeTrackPathView-B8p4EFO1.cjs} +1 -1
  95. package/dist/{threeTrackPathView-DWqvizaQ.js → threeTrackPathView-DeQo7Wnu.js} +4 -4
  96. package/dist/{threeViewerHost-BRhsxthj.cjs → threeViewerHost-BDh0cvdZ.cjs} +2 -2
  97. package/dist/{threeViewerHost-BX-lA9Q_.js → threeViewerHost-DrxyqlfL.js} +3 -3
  98. package/dist/{urdfTree-Bd4DPzOI.cjs → urdfTree--UXeuTR1.cjs} +1 -1
  99. package/dist/{urdfTree-IrNrj52s.js → urdfTree-DlUtmYxX.js} +1 -1
  100. package/dist/{workpieceTreePanel-BCI9f-jE.cjs → workpieceTreePanel-82bZ2pJM.cjs} +1 -1
  101. package/dist/{workpieceTreePanel-BD3mDnhg.js → workpieceTreePanel-Tfx49DXu.js} +5 -5
  102. package/package.json +1 -1
  103. package/dist/index-O1JbRmM1.cjs +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),j=require("./workpieceTreePanel-BCI9f-jE.cjs"),pe=require("./iconfont-Bfcif4Wm.cjs"),A=require("./index-C8qRkCgn.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-pcyvQAbK.cjs");require("./index.vue_vue_type_style_index_1_lang-B8_elAaU.cjs");require("./index-BpPyaNFa.cjs");const Q=require("./index-DhufphmT.cjs");require("./index.vue_vue_type_style_index_1_lang-BqG2FKzs.cjs");require("./index-a6bC3A9D.cjs");const Ce=require("./animationData-CPq6_wNF.cjs"),ae=require("./urdfTree-Bd4DPzOI.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-B4sGo38_.cjs"),F=require("./svgIcon-CUM54R6L.cjs"),O=.001,K=s.MathUtils.degToRad,Ne=new s.MeshStandardMaterial({color:13421772,metalness:.3,roughness:.6,side:s.DoubleSide});function Te(V=.005,m=64){const f=new s.CatmullRomCurve3([new s.Vector3(0,0,0),new s.Vector3(0,0,0)]),n=new s.TubeGeometry(f,m,V,16,!1),g=Ne;return new s.Mesh(n,g)}const ke=V=>V.reduce((m,f)=>{let n=0;const g=f.Y??0,h=f.C??0,u=f.R??0;return g>0&&(n+=g),h>0&&u>0&&(n+=u*K(h)),m+n},0),Me=V=>{const m=[],f=V.Y??0,n=V.B??0,g=V.C??0,h=V.R??0,u={pos:new s.Vector3(0,0,0),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};if(!f&&!g)return m;if(m.push(u.pos.clone()),n!==0){const _=new s.Matrix4().makeRotationAxis(u.localY,K(n));u.localX.applyMatrix4(_),u.localZ.applyMatrix4(_)}if(f>0&&(u.pos.add(u.localY.clone().multiplyScalar(f*O)),m.push(u.pos.clone())),g>0&&h>0){const _=K(g),c=h*O,x=u.pos.clone().add(u.localX.clone().multiplyScalar(-c)),r=Math.max(16,Math.ceil(g/5));for(let p=1;p<=r;p++){const a=_*p/r,d=new s.Matrix4().makeRotationAxis(u.localZ,a),b=u.localX.clone().multiplyScalar(c).applyMatrix4(d),k=x.clone().add(b);m.push(k)}}return m};function Se(V,m){const f=new s.Group;f.name="CompletePipe";const n={pos:new s.Vector3(0,0,0),localX:new s.Vector3(1,0,0),localY:new s.Vector3(0,1,0),localZ:new s.Vector3(0,0,1)};let g=0,h=1;for(let u=0;u<V.length;u++){const _=V[u],c=_.Y??0,x=_.B??0,r=_.C??0,p=_.R??0;if(x!==0){const a=new s.Matrix4().makeRotationAxis(n.localY,K(x));n.localX.applyMatrix4(a),n.localZ.applyMatrix4(a)}if(c>0){const a=n.pos.clone();n.pos.add(n.localY.clone().multiplyScalar(c*O));const d=n.pos.clone(),i=Pe(a,d,m*O);i.userData={segmentType:"straight",segmentIndex:g,frameIndex:u,length:c,frame:{Y:c,B:x,C:r,R:p}},i.name=`直段_${g}`,f.add(i);const b=a.clone();De(f,h,b,m*O),g++}if(r>0&&p>0){const a=K(r),d=p*O,i=[];i.push(n.pos.clone());const b=n.pos.clone().add(n.localX.clone().multiplyScalar(-d)),k=Math.max(16,Math.ceil(r/5));for(let P=1;P<=k;P++){const S=a*P/k,D=new s.Matrix4().makeRotationAxis(n.localZ,S),Y=n.localX.clone().multiplyScalar(d).applyMatrix4(D),M=b.clone().add(Y);i.push(M)}const v=Re(i,m*O);v.userData={segmentType:"bend",segmentIndex:g,frameIndex:u,angle:r,radius:p,centerPoint:b.toArray(),frame:{Y:c,B:x,C:r,R:p}},v.name=`弯段_${g}`,f.add(v),Math.floor(i.length/2),i[0],n.pos=i[i.length-1].clone();const T=new s.Matrix4().makeRotationAxis(n.localZ,a);n.localY.applyMatrix4(T),n.localX.applyMatrix4(T),g++,h++}}return f}function De(V,m,f,n){const g=new s.Vector3(0,n*2,n*5),h=f.clone().add(g),u=[f,h],_=new s.BufferGeometry().setFromPoints(u),c=new s.LineDashedMaterial({color:16711680,dashSize:n*.5,gapSize:n*.3,linewidth:1}),x=new s.Line(_,c);x.computeLineDistances(),V.add(x);const r=document.createElement("canvas"),p=r.getContext("2d");r.width=128,r.height=128,p.clearRect(0,0,128,128),p.fillStyle="#FF0000",p.font="bold 80px Arial",p.textAlign="center",p.textBaseline="middle",p.fillText(m.toString(),64,64);const a=new s.CanvasTexture(r),d=new s.SpriteMaterial({map:a,transparent:!0,depthTest:!1,depthWrite:!1}),i=new s.Sprite(d),b=n*3;i.scale.set(b,b,1),i.position.copy(h),i.name=`Label_${m}`,i.userData={labelNumber:m},V.add(i)}function Pe(V,m,f){const n=new s.LineCurve3(V,m),g=new s.TubeGeometry(n,2,f,18,!1);return new s.Mesh(g,Ne)}function Re(V,m){const f=new s.CatmullRomCurve3(V,!1,"catmullrom",.01),n=new s.TubeGeometry(f,Math.max(16,V.length*2),m,18,!1);return new s.Mesh(n,Ne)}function _e(V,m,f,n,g,h=0){let u=m.slice(0,g+1);const _=m[g+1];if(_&&h>0){const i={..._,B:(_.B??0)*h,C:(_.C??0)*h};u.push(i)}const c=ke(u),x=Math.max(0,f-c),r=[];r.push(new s.Vector3(0,0,0));const p=new s.Vector3(0,x*O,0);x>0&&r.push(p);let a={pos:p.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const d=[];for(let i=u.length-1;i>=0;i--){const b=u[i],k=Me(b);if(k.length>0){const v=k.map(D=>{const R=D.clone(),Y=new s.Matrix4;return Y.makeBasis(a.localX,a.localY,a.localZ),R.applyMatrix4(Y),R.add(a.pos)});d.push(v);const T=v[v.length-1];a.pos=T.clone();const P=b.B??0,S=b.C??0;if(P!==0){const D=new s.Matrix4().makeRotationAxis(a.localY,K(P));a.localX.applyMatrix4(D),a.localZ.applyMatrix4(D)}if(S>0){const D=K(S),R=new s.Matrix4().makeRotationAxis(a.localZ,D);a.localY.applyMatrix4(R),a.localX.applyMatrix4(R)}}}for(const i of d)i.length>1&&r.push(...i.slice(1));r.length<2&&r.push(new s.Vector3(0,.001,0));try{const i=new s.CatmullRomCurve3(r,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,r.length*4),n*O,18,!1);V.geometry.dispose(),V.geometry=b}catch(i){console.error("管件更新失败",i)}}function xe(V,m,f,n=0){let g=V.slice(0,f+1);const h=V[f+1];if(h&&n>0){const a={...h,B:(h.B??0)*n,C:(h.C??0)*n};g.push(a)}const u=ke(g),_=Math.max(0,m-u),c=[];c.push(new s.Vector3(0,0,0));const x=new s.Vector3(0,_*O,0);_>0&&c.push(x);let r={pos:x.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const p=[];for(let a=g.length-1;a>=0;a--){const d=g[a],i=Me(d);if(i.length>0){const b=i.map(P=>{const S=P.clone(),D=new s.Matrix4;return D.makeBasis(r.localX,r.localY,r.localZ),S.applyMatrix4(D),S.add(r.pos)});p.push(b);const k=b[b.length-1];r.pos=k.clone();const v=d.B??0,T=d.C??0;if(v!==0){const P=new s.Matrix4().makeRotationAxis(r.localY,K(v));r.localX.applyMatrix4(P),r.localZ.applyMatrix4(P)}if(T>0){const P=K(T),S=new s.Matrix4().makeRotationAxis(r.localZ,P);r.localY.applyMatrix4(S),r.localX.applyMatrix4(S)}}}for(const a of p)a.length>1&&c.push(...a.slice(1));return c.length<2&&c.push(new s.Vector3(0,.001,0)),c}function Ee(V,m,f,n,g,h,u,_=0,c=0){const x=g-c,r=xe(n,x,u,_);let a=xe(f,c,u,_);a.forEach(i=>i.y=-i.y),a.reverse();const d=[...a,...r];try{const i=new s.CatmullRomCurve3(d,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,d.length*4),h*O,18,!1);m.geometry.dispose(),V.geometry.dispose(),m.parent&&m.parent.remove(m),V.geometry=b}catch(i){console.error("管件更新失败",i)}}const Be={class:"panel-content"},Ae={class:"action-bar"},$e={class:"animation-controls"},Fe={class:"control-row"},ze={class:"control-row"},Ye={class:"frame-info"},Le={class:"control-row"},Ue={class:"progress-bar"},Ie={class:"dialog-footer"},Ge=e.defineComponent({__name:"animationPanel",props:{model:{},threeData:{}},emits:["getThreeData"],setup(V,{expose:m,emit:f}){const n=V,g=f,h=e.ref(),u=e.ref();e.watch(()=>n.threeData,l=>{const t=l==null?void 0:l.data;u.value=t==null?void 0:t.type},{immediate:!0});const _=async()=>{if(!sessionStorage.getItem("systemKey")){g("getThreeData");return}let t={};u.value===j.robotMode.SINGLE&&(t=await Ce.fetchSingleRobotAnimationData()),u.value===j.robotMode.DOUBLE&&(t=await Ce.fetchDoubleRobotAnimationData());const{initialPipeLength:o=0,pipeRadius:y=0,clampLength:N=0,animationData:E}=t;S.value=o,D.value=y,R.value=N,h.value=E;const G=A.cloneDeep(h.value),W=ue($.value),J=(G==null?void 0:G["输出(动画数据)"])||[];c.value=J.length?J:[W]},c=e.ref([]),x=e.ref(!1),r=e.ref(""),p=e.ref(!1),a=e.ref(0),d=e.ref(0),i=e.ref(1e3);let b=!1;const k=e.ref(null),v=e.shallowRef(null),T=e.shallowRef(null),P=e.shallowRef(null),S=e.ref(0),D=e.ref(12.5),R=e.ref(30),Y=e.ref([]),M=e.ref(null),C=e.computed(()=>n.model?ae.getNonFixedJoints(n.model).map(o=>o.name):[]),X=e.ref(["Y","B","C","R"]),$=e.computed(()=>[...C.value,...X.value]),Z=e.computed(()=>$.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),j=require("./workpieceTreePanel-82bZ2pJM.cjs"),pe=require("./iconfont-Cd-HtwmG.cjs"),A=require("./index-C8qRkCgn.cjs"),s=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CSGUG8yi.cjs");require("./index.vue_vue_type_style_index_1_lang-_MRLV2pU.cjs");require("./index-BpPyaNFa.cjs");const Q=require("./index-DWozj8SO.cjs");require("./index.vue_vue_type_style_index_1_lang-C3Kw83zI.cjs");require("./index-DHMUS6aq.cjs");const Ce=require("./animationData-CuUj6JDb.cjs"),ae=require("./urdfTree--UXeuTR1.cjs"),we=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),ee=require("./dataUtil-Brpg9CSN.cjs"),F=require("./svgIcon-CUM54R6L.cjs"),O=.001,K=s.MathUtils.degToRad,Ne=new s.MeshStandardMaterial({color:13421772,metalness:.3,roughness:.6,side:s.DoubleSide});function Te(V=.005,m=64){const f=new s.CatmullRomCurve3([new s.Vector3(0,0,0),new s.Vector3(0,0,0)]),n=new s.TubeGeometry(f,m,V,16,!1),g=Ne;return new s.Mesh(n,g)}const ke=V=>V.reduce((m,f)=>{let n=0;const g=f.Y??0,h=f.C??0,u=f.R??0;return g>0&&(n+=g),h>0&&u>0&&(n+=u*K(h)),m+n},0),Me=V=>{const m=[],f=V.Y??0,n=V.B??0,g=V.C??0,h=V.R??0,u={pos:new s.Vector3(0,0,0),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};if(!f&&!g)return m;if(m.push(u.pos.clone()),n!==0){const _=new s.Matrix4().makeRotationAxis(u.localY,K(n));u.localX.applyMatrix4(_),u.localZ.applyMatrix4(_)}if(f>0&&(u.pos.add(u.localY.clone().multiplyScalar(f*O)),m.push(u.pos.clone())),g>0&&h>0){const _=K(g),c=h*O,x=u.pos.clone().add(u.localX.clone().multiplyScalar(-c)),r=Math.max(16,Math.ceil(g/5));for(let p=1;p<=r;p++){const a=_*p/r,d=new s.Matrix4().makeRotationAxis(u.localZ,a),b=u.localX.clone().multiplyScalar(c).applyMatrix4(d),k=x.clone().add(b);m.push(k)}}return m};function Se(V,m){const f=new s.Group;f.name="CompletePipe";const n={pos:new s.Vector3(0,0,0),localX:new s.Vector3(1,0,0),localY:new s.Vector3(0,1,0),localZ:new s.Vector3(0,0,1)};let g=0,h=1;for(let u=0;u<V.length;u++){const _=V[u],c=_.Y??0,x=_.B??0,r=_.C??0,p=_.R??0;if(x!==0){const a=new s.Matrix4().makeRotationAxis(n.localY,K(x));n.localX.applyMatrix4(a),n.localZ.applyMatrix4(a)}if(c>0){const a=n.pos.clone();n.pos.add(n.localY.clone().multiplyScalar(c*O));const d=n.pos.clone(),i=Pe(a,d,m*O);i.userData={segmentType:"straight",segmentIndex:g,frameIndex:u,length:c,frame:{Y:c,B:x,C:r,R:p}},i.name=`直段_${g}`,f.add(i);const b=a.clone();De(f,h,b,m*O),g++}if(r>0&&p>0){const a=K(r),d=p*O,i=[];i.push(n.pos.clone());const b=n.pos.clone().add(n.localX.clone().multiplyScalar(-d)),k=Math.max(16,Math.ceil(r/5));for(let P=1;P<=k;P++){const S=a*P/k,D=new s.Matrix4().makeRotationAxis(n.localZ,S),Y=n.localX.clone().multiplyScalar(d).applyMatrix4(D),M=b.clone().add(Y);i.push(M)}const v=Re(i,m*O);v.userData={segmentType:"bend",segmentIndex:g,frameIndex:u,angle:r,radius:p,centerPoint:b.toArray(),frame:{Y:c,B:x,C:r,R:p}},v.name=`弯段_${g}`,f.add(v),Math.floor(i.length/2),i[0],n.pos=i[i.length-1].clone();const T=new s.Matrix4().makeRotationAxis(n.localZ,a);n.localY.applyMatrix4(T),n.localX.applyMatrix4(T),g++,h++}}return f}function De(V,m,f,n){const g=new s.Vector3(0,n*2,n*5),h=f.clone().add(g),u=[f,h],_=new s.BufferGeometry().setFromPoints(u),c=new s.LineDashedMaterial({color:16711680,dashSize:n*.5,gapSize:n*.3,linewidth:1}),x=new s.Line(_,c);x.computeLineDistances(),V.add(x);const r=document.createElement("canvas"),p=r.getContext("2d");r.width=128,r.height=128,p.clearRect(0,0,128,128),p.fillStyle="#FF0000",p.font="bold 80px Arial",p.textAlign="center",p.textBaseline="middle",p.fillText(m.toString(),64,64);const a=new s.CanvasTexture(r),d=new s.SpriteMaterial({map:a,transparent:!0,depthTest:!1,depthWrite:!1}),i=new s.Sprite(d),b=n*3;i.scale.set(b,b,1),i.position.copy(h),i.name=`Label_${m}`,i.userData={labelNumber:m},V.add(i)}function Pe(V,m,f){const n=new s.LineCurve3(V,m),g=new s.TubeGeometry(n,2,f,18,!1);return new s.Mesh(g,Ne)}function Re(V,m){const f=new s.CatmullRomCurve3(V,!1,"catmullrom",.01),n=new s.TubeGeometry(f,Math.max(16,V.length*2),m,18,!1);return new s.Mesh(n,Ne)}function _e(V,m,f,n,g,h=0){let u=m.slice(0,g+1);const _=m[g+1];if(_&&h>0){const i={..._,B:(_.B??0)*h,C:(_.C??0)*h};u.push(i)}const c=ke(u),x=Math.max(0,f-c),r=[];r.push(new s.Vector3(0,0,0));const p=new s.Vector3(0,x*O,0);x>0&&r.push(p);let a={pos:p.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const d=[];for(let i=u.length-1;i>=0;i--){const b=u[i],k=Me(b);if(k.length>0){const v=k.map(D=>{const R=D.clone(),Y=new s.Matrix4;return Y.makeBasis(a.localX,a.localY,a.localZ),R.applyMatrix4(Y),R.add(a.pos)});d.push(v);const T=v[v.length-1];a.pos=T.clone();const P=b.B??0,S=b.C??0;if(P!==0){const D=new s.Matrix4().makeRotationAxis(a.localY,K(P));a.localX.applyMatrix4(D),a.localZ.applyMatrix4(D)}if(S>0){const D=K(S),R=new s.Matrix4().makeRotationAxis(a.localZ,D);a.localY.applyMatrix4(R),a.localX.applyMatrix4(R)}}}for(const i of d)i.length>1&&r.push(...i.slice(1));r.length<2&&r.push(new s.Vector3(0,.001,0));try{const i=new s.CatmullRomCurve3(r,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,r.length*4),n*O,18,!1);V.geometry.dispose(),V.geometry=b}catch(i){console.error("管件更新失败",i)}}function xe(V,m,f,n=0){let g=V.slice(0,f+1);const h=V[f+1];if(h&&n>0){const a={...h,B:(h.B??0)*n,C:(h.C??0)*n};g.push(a)}const u=ke(g),_=Math.max(0,m-u),c=[];c.push(new s.Vector3(0,0,0));const x=new s.Vector3(0,_*O,0);_>0&&c.push(x);let r={pos:x.clone(),localY:new s.Vector3(0,1,0),localX:new s.Vector3(1,0,0),localZ:new s.Vector3(0,0,1)};const p=[];for(let a=g.length-1;a>=0;a--){const d=g[a],i=Me(d);if(i.length>0){const b=i.map(P=>{const S=P.clone(),D=new s.Matrix4;return D.makeBasis(r.localX,r.localY,r.localZ),S.applyMatrix4(D),S.add(r.pos)});p.push(b);const k=b[b.length-1];r.pos=k.clone();const v=d.B??0,T=d.C??0;if(v!==0){const P=new s.Matrix4().makeRotationAxis(r.localY,K(v));r.localX.applyMatrix4(P),r.localZ.applyMatrix4(P)}if(T>0){const P=K(T),S=new s.Matrix4().makeRotationAxis(r.localZ,P);r.localY.applyMatrix4(S),r.localX.applyMatrix4(S)}}}for(const a of p)a.length>1&&c.push(...a.slice(1));return c.length<2&&c.push(new s.Vector3(0,.001,0)),c}function Ee(V,m,f,n,g,h,u,_=0,c=0){const x=g-c,r=xe(n,x,u,_);let a=xe(f,c,u,_);a.forEach(i=>i.y=-i.y),a.reverse();const d=[...a,...r];try{const i=new s.CatmullRomCurve3(d,!1,"catmullrom",.01),b=new s.TubeGeometry(i,Math.max(2,d.length*4),h*O,18,!1);m.geometry.dispose(),V.geometry.dispose(),m.parent&&m.parent.remove(m),V.geometry=b}catch(i){console.error("管件更新失败",i)}}const Be={class:"panel-content"},Ae={class:"action-bar"},$e={class:"animation-controls"},Fe={class:"control-row"},ze={class:"control-row"},Ye={class:"frame-info"},Le={class:"control-row"},Ue={class:"progress-bar"},Ie={class:"dialog-footer"},Ge=e.defineComponent({__name:"animationPanel",props:{model:{},threeData:{}},emits:["getThreeData"],setup(V,{expose:m,emit:f}){const n=V,g=f,h=e.ref(),u=e.ref();e.watch(()=>n.threeData,l=>{const t=l==null?void 0:l.data;u.value=t==null?void 0:t.type},{immediate:!0});const _=async()=>{if(!sessionStorage.getItem("systemKey")){g("getThreeData");return}let t={};u.value===j.robotMode.SINGLE&&(t=await Ce.fetchSingleRobotAnimationData()),u.value===j.robotMode.DOUBLE&&(t=await Ce.fetchDoubleRobotAnimationData());const{initialPipeLength:o=0,pipeRadius:y=0,clampLength:N=0,animationData:E}=t;S.value=o,D.value=y,R.value=N,h.value=E;const G=A.cloneDeep(h.value),W=ue($.value),J=(G==null?void 0:G["输出(动画数据)"])||[];c.value=J.length?J:[W]},c=e.ref([]),x=e.ref(!1),r=e.ref(""),p=e.ref(!1),a=e.ref(0),d=e.ref(0),i=e.ref(1e3);let b=!1;const k=e.ref(null),v=e.shallowRef(null),T=e.shallowRef(null),P=e.shallowRef(null),S=e.ref(0),D=e.ref(12.5),R=e.ref(30),Y=e.ref([]),M=e.ref(null),C=e.computed(()=>n.model?ae.getNonFixedJoints(n.model).map(o=>o.name):[]),X=e.ref(["Y","B","C","R"]),$=e.computed(()=>[...C.value,...X.value]),Z=e.computed(()=>$.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
2
2
  ${$.value.join(" ")}
3
3
  0 0 0 ...
4
4
  1 2 3 ...`:"请先加载模型。"),z=()=>c.value.map(l=>({Y:parseFloat(l.Y)||0,B:parseFloat(l.B)||0,C:parseFloat(l.C)||0,R:parseFloat(l.R)||0})),q=()=>{const l=[],t=[];return c.value.forEach(o=>{const{Y1:y,B1:N,C1:E,R1:G,Y2:W,B2:J,C2:ce,R2:B}=o;l.push({Y:parseFloat(y)||0,B:parseFloat(N)||0,C:parseFloat(E)||0,R:parseFloat(G)||0}),t.push({Y:parseFloat(W)||0,B:parseFloat(J)||0,C:parseFloat(ce)||0,R:parseFloat(B)||0})}),{posPipeYbcr:l,negPipeYbcr:t}},U=(l=0,t=0)=>{if(v.value&&T.value){const o=q();Ee(v.value,T.value,o.posPipeYbcr,o.negPipeYbcr,S.value,D.value,l,t,R.value)}else if(v.value){const o=z();_e(v.value,o,S.value,D.value,l,t)}},L=l=>{if(l<0||l>=c.value.length){console.error(`帧索引 ${l} 超出范围`);return}const t=c.value[l];if(console.log(`应用第 ${l} 帧数据 ${t}`),a.value=l,k.value){const o={};C.value.forEach(y=>{const N=parseFloat(t[y]);isNaN(N)||(o[y]=N)}),k.value.setJointAngles(o)}U(l,0)},H=async()=>{if(c.value.length===0){A.ElMessage.error("无法播放动画:无数据");return}if(!p.value){p.value=!0,b=!1,c.value.length-1===a.value&&(a.value=0);try{for(let l=a.value+1;l<c.value.length&&!b;l++){a.value=l;const t=c.value[l],o={};k.value&&C.value.forEach(y=>{const N=parseFloat(t[y]);isNaN(N)||(o[y]=N)}),k.value?await k.value.animateToState(o,i.value,y=>{d.value=(l+y)/c.value.length*100,U(l-1,y)}):(await new Promise(y=>setTimeout(y,i.value)),d.value=(l+1)/c.value.length*100)}b||A.ElMessage.success("动画播放完成")}catch(l){console.error("动画播放出错:",l),A.ElMessage.error("动画播放出错")}finally{p.value=!1,d.value=0}}},w=()=>{b=!0,p.value=!1,d.value=0,A.ElMessage.info("动画已停止")},oe=()=>{a.value=0},I=()=>{if(v.value&&T.value){const l=q();Ee(v.value,T.value,l.posPipeYbcr,l.negPipeYbcr,S.value,D.value,-1,0,R.value)}else if(v.value){const l=z();_e(v.value,l,S.value,D.value,-1,0)}},le=()=>{k.value&&k.value.resetToZero(),I(),oe(),A.ElMessage.success("机器人和管件已重置")},se=l=>`第 ${l+1} 帧`,me=l=>{p.value&&w(),L(l)},ve=()=>{p.value&&w(),!(a.value+1>=c.value.length)&&L(a.value+1)},fe=()=>{p.value&&w(),a.value!==0&&L(a.value-1)},re=()=>{P.value&&(P.value.visible=!0),v.value&&v.value.parent&&v.value.parent.remove(v.value),P.value=null,v.value=null,T.value=null},ue=l=>l==null?void 0:l.reduce((t,o)=>(t[o]="0",t),{});e.watch($,(l,t)=>{if(JSON.stringify(l)!==JSON.stringify(t))if(l.length>0){const o=ue(l);c.value=[o]}else c.value=[]},{immediate:!0});const ie=e.ref(0),ge=l=>{ie.value=l},te=(l,t)=>{if(!l||!t)return;const o=ae.getTargetJoint(l,t),y=Te();y.visible=!1,o==null||o.add(y)},ne=l=>{k.value=new j.URDFRobotController(l),Y.value=ae.getAllLinkName(l),M.value="Pipe_Joint"},he=()=>{k.value=null,Y.value=[],M.value=null},Ve=l=>{ne(l),te(l,M.value),ge(ie.value+1),le()};e.watch(()=>n.model,l=>{if(re(),l){Ve(l);return}he()},{immediate:!0});const de=l=>{var o,y;const t=new s.Mesh(l.geometry.clone(),l.material);return t.name="managed_pipe_clone",(y=(o=l==null?void 0:l.parent)==null?void 0:o.add)==null||y.call(o,t),t.position.copy(l.position),t.rotation.copy(l.rotation),t.scale.copy(l.scale),t};e.watch([M,R,S,ie],([l,t])=>{if(re(),n.model&&l){const o=ae.getMeshFromJoint(n.model,l);if(console.log(o,"meshToReplace"),o&&o.parent){P.value=o,o.visible=!1;const y=de(o);if(u.value===j.robotMode.SINGLE&&(y.position.y-=t*.001),v.value=y,u.value===j.robotMode.DOUBLE){const N=de(o);T.value=N}U(0,0)}else l&&console.warn(`在 link '${l}' 中未找到可替换的网格或其没有父级。`)}});const be=async()=>{if($.value.length===0){A.ElMessage.warning("没有可导出的表头");return}const l=$.value.join(" ");try{await navigator.clipboard.writeText(l),A.ElMessage.success("表头已成功复制到剪贴板!")}catch(t){console.error("复制失败:",t),A.ElMessage.error("复制失败,请检查浏览器权限或手动复制。")}},ye=()=>{if(!r.value.trim()){A.ElMessage.warning("导入内容不能为空");return}const l=r.value.trim().split(`
@@ -1,17 +1,17 @@
1
1
  import { defineComponent as Ee, ref as b, watch as se, shallowRef as ve, computed as _e, onUnmounted as et, resolveComponent as O, createElementBlock as we, openBlock as le, createElementVNode as a, createVNode as o, withCtx as T, createBlock as Ce, createCommentVNode as ye, unref as S, toDisplayString as me, nextTick as We, onMounted as Ie, onBeforeUnmount as Ke, Fragment as tt, renderList as lt, withDirectives as I, vShow as re, renderSlot as De, isRef as Re, vModelRadio as Te } from "vue";
2
- import { r as Ve, U as ot, s as je, u as nt, a as at, W as st } from "./workpieceTreePanel-BD3mDnhg.js";
3
- import { u as qe, a as it, b as rt } from "./iconfont-BP_QEXyH.js";
2
+ import { r as Ve, U as ot, s as je, u as nt, a as at, W as st } from "./workpieceTreePanel-Tfx49DXu.js";
3
+ import { u as qe, a as it, b as rt } from "./iconfont-DXGCEldy.js";
4
4
  import { ag as ut, c as ct, E, aW as pt, aw as dt } from "./index-BUYYl2Pc.js";
5
- import { t as Me, T as ke, V as z, r as q, s as mt, u as vt, k as Se, v as ft, L as gt, w as ht, x as bt, y as yt, z as _t, F as wt, I as Ct, p as kt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Ca5MAWqT.js";
6
- import "./index.vue_vue_type_style_index_1_lang-Cg1p_3ne.js";
5
+ import { t as Me, T as ke, V as z, r as q, s as mt, u as vt, k as Se, v as ft, L as gt, w as ht, x as bt, y as yt, z as _t, F as wt, I as Ct, p as kt } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-JTfuXDvR.js";
6
+ import "./index.vue_vue_type_style_index_1_lang-DCNwSjkL.js";
7
7
  import "./index-BHtNKL1L.js";
8
- import { _ as ue, s as Pt } from "./index-DRizRbU3.js";
9
- import "./index.vue_vue_type_style_index_1_lang-DbWCiN56.js";
10
- import "./index-CV2JWX-7.js";
11
- import { f as xt, a as Dt } from "./animationData-9Rwp8uyx.js";
12
- import { g as Rt, a as Tt, b as Vt, c as Mt, U as St, J as At } from "./urdfTree-IrNrj52s.js";
8
+ import { _ as ue, s as Pt } from "./index-u963fvJq.js";
9
+ import "./index.vue_vue_type_style_index_1_lang-rhYAIITv.js";
10
+ import "./index-EqgbW679.js";
11
+ import { f as xt, a as Dt } from "./animationData-B3zZOzAE.js";
12
+ import { g as Rt, a as Tt, b as Vt, c as Mt, U as St, J as At } from "./urdfTree-DlUtmYxX.js";
13
13
  import { _ as Xe } from "./_plugin-vue_export-helper-CHgC5LLL.js";
14
- import { g as $t, a as Oe, d as Ft, c as zt, e as Yt, b as Bt } from "./dataUtil-DQX9rTvE.js";
14
+ import { g as $t, a as Oe, d as Ft, c as zt, e as Yt, b as Bt } from "./dataUtil-DcGEuoWS.js";
15
15
  import { T as j } from "./svgIcon-D-_fXUBL.js";
16
16
  const K = 1e-3, ne = mt.degToRad, Ge = new ft({
17
17
  // 灰色
@@ -1,16 +1,16 @@
1
1
  import { defineComponent as xe, ref as u, computed as C, watch as K, onUnmounted as Qe, resolveComponent as W, createElementBlock as L, openBlock as U, createElementVNode as l, createCommentVNode as M, createVNode as i, toDisplayString as z, Fragment as el, renderList as ll, withCtx as ae, inject as ke, shallowRef as ue, onMounted as tl, nextTick as Pe, onBeforeUnmount as al, withDirectives as $, vShow as H, unref as r, renderSlot as re, createBlock as Ce, isRef as de, vModelRadio as ve } from "vue";
2
- import { aw as nl } from "./index.vue_vue_type_style_index_1_lang-Cg1p_3ne.js";
3
- import { U as ol, s as _e, u as sl, a as il, W as ul } from "./workpieceTreePanel-BD3mDnhg.js";
4
- import { u as rl, a as dl, b as vl } from "./iconfont-BP_QEXyH.js";
2
+ import { aw as nl } from "./index.vue_vue_type_style_index_1_lang-DCNwSjkL.js";
3
+ import { U as ol, s as _e, u as sl, a as il, W as ul } from "./workpieceTreePanel-Tfx49DXu.js";
4
+ import { u as rl, a as dl, b as vl } from "./iconfont-DXGCEldy.js";
5
5
  import { c as cl, E as P } from "./index-BUYYl2Pc.js";
6
- import "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Ca5MAWqT.js";
7
- import { _ as fe } from "./index-DRizRbU3.js";
8
- import { g as ml, b as pl, U as fl, J as bl, d as gl } from "./urdfTree-IrNrj52s.js";
6
+ import "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-JTfuXDvR.js";
7
+ import { _ as fe } from "./index-u963fvJq.js";
8
+ import { g as ml, b as pl, U as fl, J as bl, d as gl } from "./urdfTree-DlUtmYxX.js";
9
9
  import { _ as Ne } from "./_plugin-vue_export-helper-CHgC5LLL.js";
10
10
  import { T as k } from "./svgIcon-D-_fXUBL.js";
11
- import { i as hl } from "./animationData-9Rwp8uyx.js";
12
- import { O as yl } from "./MTLLoader-W2bcC1q8.js";
13
- import { L as kl, j as Pl } from "./index-CfrzoYYm.js";
11
+ import { i as hl } from "./animationData-B3zZOzAE.js";
12
+ import { O as yl } from "./MTLLoader-BQPWZhwJ.js";
13
+ import { L as kl, j as Pl } from "./index-Ck1jmhY4.js";
14
14
  const Cl = { class: "panel-content" }, _l = { class: "action-bar" }, wl = {
15
15
  key: 0,
16
16
  class: "animation-controls"
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Re=require("./index.vue_vue_type_style_index_1_lang-B8_elAaU.cjs"),j=require("./workpieceTreePanel-BCI9f-jE.cjs"),ee=require("./iconfont-Bfcif4Wm.cjs"),f=require("./index-C8qRkCgn.cjs");require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-pcyvQAbK.cjs");const te=require("./index-DhufphmT.cjs"),H=require("./urdfTree-Bd4DPzOI.cjs"),re=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),b=require("./svgIcon-CUM54R6L.cjs"),$e=require("./animationData-CPq6_wNF.cjs"),Ue=require("./MTLLoader-MINcyZJJ.cjs"),se=require("./index-O1JbRmM1.cjs"),je={class:"panel-content"},Le={class:"action-bar"},Ae={key:0,class:"animation-controls"},Oe={class:"control-row"},Ie={class:"control-row"},Fe={class:"frame-info"},qe={class:"control-row"},Je={key:1,class:"empty-state"},He={class:"dialog-footer"},Xe=e.defineComponent({__name:"urdfAnimationPanel",props:{model:{},scene:{},xyzbcList:{}},setup(D,{expose:L}){const w=D,o=e.ref([]),C=e.ref(!1),_=e.ref(""),i=e.ref("stopped"),d=e.ref(0),M=e.ref(0),U=e.ref(10),g=e.ref(null);let m=0;const A=e.ref([]),O=e.computed(()=>w.model?H.getNonFixedJoints(w.model).map(r=>r.name):[]),B=e.computed(()=>[...O.value]),X=e.computed(()=>B.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Re=require("./index.vue_vue_type_style_index_1_lang-_MRLV2pU.cjs"),j=require("./workpieceTreePanel-82bZ2pJM.cjs"),ee=require("./iconfont-Cd-HtwmG.cjs"),f=require("./index-C8qRkCgn.cjs");require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CSGUG8yi.cjs");const te=require("./index-DWozj8SO.cjs"),H=require("./urdfTree--UXeuTR1.cjs"),re=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),b=require("./svgIcon-CUM54R6L.cjs"),$e=require("./animationData-CuUj6JDb.cjs"),Ue=require("./MTLLoader-rHpbWTI_.cjs"),se=require("./index-BotH0jHM.cjs"),je={class:"panel-content"},Le={class:"action-bar"},Ae={key:0,class:"animation-controls"},Oe={class:"control-row"},Ie={class:"control-row"},Fe={class:"frame-info"},qe={class:"control-row"},Je={key:1,class:"empty-state"},He={class:"dialog-footer"},Xe=e.defineComponent({__name:"urdfAnimationPanel",props:{model:{},scene:{},xyzbcList:{}},setup(D,{expose:L}){const w=D,o=e.ref([]),C=e.ref(!1),_=e.ref(""),i=e.ref("stopped"),d=e.ref(0),M=e.ref(0),U=e.ref(10),g=e.ref(null);let m=0;const A=e.ref([]),O=e.computed(()=>w.model?H.getNonFixedJoints(w.model).map(r=>r.name):[]),B=e.computed(()=>[...O.value]),X=e.computed(()=>B.value.length>0?`请按以下格式粘贴数据 (第一行为表头,使用 Tab 分隔):
2
2
  ${B.value.join(" ")}
3
3
  0 0 0 ...
4
4
  1 2 3 ...`:"请先加载模型。"),z=e.computed(()=>o.value[d.value]||{});e.watch(()=>w.model,s=>{s?(g.value=new j.URDFRobotController(s),A.value=H.getAllLinkName(s),d.value=0):(g.value=null,A.value=[])},{immediate:!0});const R=s=>{if(s<0||s>=o.value.length){console.error(`帧索引 ${s} 超出范围`);return}const n=o.value[s];if(g.value){const r={};O.value.forEach(N=>{const v=parseFloat(n[N]);isNaN(v)||(r[N]=v)}),g.value.setJointAngles(r)}d.value=s,M.value=o.value.length>1?s/(o.value.length-1)*100:100},Y=async s=>{try{for(let n=d.value;n<o.value.length;n++){if(s!==m)return;const r=o.value[n],N={};if(g.value)O.value.forEach(v=>{const p=parseFloat(r[v]);isNaN(p)||(N[v]=p)}),await g.value.animateToState(N,U.value,v=>{s===m&&(M.value=(n+v)/o.value.length*100)});else{if(await new Promise(v=>setTimeout(v,U.value)),s!==m)return;M.value=(n+1)/o.value.length*100}d.value=n}s===m&&(f.ElMessage.success("动画播放完成"),i.value="stopped",M.value=100)}catch(n){console.error("动画播放出错:",n),f.ElMessage.error("动画播放出错"),i.value="stopped"}},P=()=>{if(o.value.length===0){f.ElMessage.error("无动画数据");return}i.value==="stopped"&&(d.value=0,R(0)),i.value="playing",m++,Y(m),f.ElMessage.info("动画播放中")},I=()=>{i.value==="playing"&&(m++,i.value="paused",f.ElMessage.info("动画已暂停"))},F=()=>{m++,i.value="stopped",d.value=0,M.value=0,R(0),f.ElMessage.info("动画已停止并重置")},S=()=>{i.value==="playing"?I():P()},y=s=>{m++,i.value="paused",R(s)},$=()=>{if(!_.value.trim()){f.ElMessage.warning("导入内容不能为空");return}const s=_.value.trim().split(`
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("./iconfont-Bfcif4Wm.cjs"),h=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-pcyvQAbK.cjs"),ge=require("./threeViewerHost-BRhsxthj.cjs"),B=require("./index-C8qRkCgn.cjs"),S=require("./urdfTree-Bd4DPzOI.cjs"),W=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),V=require("./svgIcon-CUM54R6L.cjs"),he=require("./isString--eJE54G5.cjs");function ye(t=.5,n=4){const r=new h.Mesh(new h.ConeGeometry(t,n,32),new h.MeshStandardMaterial({color:"#919191ff",metalness:.3,roughness:.6})),l=r.geometry.parameters.height;return r.geometry.translate(0,-l/2,0),r.rotation.set(-90,0,0,"XYZ"),r}function we(t,n){t.position.copy(n)}function Ce(t,n,r=new h.Color(16711680)){const l=new h.Vector3;n.getWorldPosition(l);const c=t.geometry.attributes.position,o=t.geometry.attributes.color,s=new h.Color(55551);let i=1/0,f=-1;for(let d=0;d<c.count;d++){const v=new h.Vector3().fromBufferAttribute(c,d).distanceTo(l);v<i&&(i=v,f=d)}for(let d=0;d<o.count;d++)s.toArray(o.array,d*3);if(f!==-1){const d=r.toArray(),m=f*3+2;for(let v=0;v<m;v=v+3)o.array[v]=d[0],o.array[v+1]=d[1],o.array[v+2]=d[2]}o.needsUpdate=!0}function H(t,n,r,l=new h.Color(16711680)){we(t,n),Ce(r,t,l)}const Ve={class:"panel-content"},be={class:"animation-controls"},ke={class:"control-row"},Ne={class:"control-row"},Ee={class:"frame-info"},_e={class:"control-row"},Te=e.defineComponent({__name:"trackAnimationPanel",props:{cloud:{},knife:{},vectors:{}},emits:["getThreeData"],setup(t,{expose:n,emit:r}){const l=t,c=e.computed(()=>l.vectors),o=e.ref(!1),s=e.ref(0),i=e.ref(100);let f=!1;const d=p=>`第 ${p+1} 帧`,m=p=>{if(p<0||p>=c.value.length){console.error(`帧索引 ${p} 超出范围`);return}const y=c.value[p];s.value=p,H(l.knife,y,l.cloud)},v=async()=>{if(c.value.length===0){B.ElMessage.error("无法播放动画:无数据");return}if(!o.value){o.value=!0,f=!1,c.value.length-1===s.value&&(s.value=0);try{for(let p=s.value+1;p<c.value.length&&!f;p++)await new Promise(y=>setTimeout(y,i.value)),m(p);f||B.ElMessage.success("动画播放完成")}catch(p){console.error("动画播放出错:",p)}finally{o.value=!1}}},w=async()=>{o.value&&(f=!0,await new Promise(p=>{const y=e.watch(()=>o.value,F=>{y(),p()})}),B.ElMessage.info("动画已停止"))},N=async p=>{o.value&&await w(),m(p)},E=async()=>{o.value&&await w(),!(s.value+1>=c.value.length)&&m(s.value+1)},_=async()=>{o.value&&await w(),s.value!==0&&m(s.value-1)},C=()=>{s.value=0};return n({playAnimation:v,stopAnimation:w,forwardFrame:E,backwardFrame:_,resetAnimationFrame:C,reset:async()=>{await w(),C()}}),(p,y)=>{const F=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-form-item"),q=e.resolveComponent("el-form"),I=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createVNode(q,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(j,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=M=>i.value=M),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ne,[y[2]||(y[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ee,e.toDisplayString(s.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",_e,[y[3]||(y[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(I,{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=M=>s.value=M),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":d,onInput:N,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),xe=W._export_sfc(Te,[["__scopeId","data-v-b5665bfd"]]);function ze(t){const n=[];return t.forEach(r=>{const[l,c,o]=r.trim().split(/\s+/);n.push(+l,+c,+o)}),n}function $(t,n,r){switch(t){case"X":n.x=+r||0;break;case"Y":n.y=+r||0;break;case"Z":n.z=+r||0;break}}function Ae(t){const n=[],r=["X","Y","Z"];return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f],m=r.find(v=>v===d);if(m){s&&$(s,c,i),i="",s=m;continue}i=i+d}$(s,c,i),n.push(c.x,c.y,c.z)}),n}const Pe=t=>t==null?void 0:t.filter(r=>r.includes("=")),Me=t=>t.replace(/,/g,""),De=t=>t==null?void 0:t.map(r=>Me(r)),Ue=t=>{const n=Pe(t);return De(n)};function Fe(t){const n=Ue(t),r=[];return n.forEach(l=>{var v,w,N,E,_,C;let[c,o,s,i]=l.trim().split(/\s+/);o=(v=o==null?void 0:o.trim)==null?void 0:v.call(o),s=(w=s==null?void 0:s.trim)==null?void 0:w.call(s),i=(N=i==null?void 0:i.trim)==null?void 0:N.call(i);const[,f]=(E=o==null?void 0:o.split)==null?void 0:E.call(o,"="),[,d]=(_=s==null?void 0:s.split)==null?void 0:_.call(s,"="),[,m]=(C=i==null?void 0:i.split)==null?void 0:C.call(i,"=");r.push(+f,+d,+m)}),r}const Ie=t=>t>="0"&&t<="9",Le=t=>t==="+"||t==="-",Be=t=>t===".";function $e(t){return Ie(t)||Le(t)||Be(t)}function je(t){const n=[],r=new Set(["X","Y","Z"]);return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f];if(d==="T")break;const m=r.has(d)?d:null,v=$e(d);if(m||!v){s&&$(s,c,i),s=m,i="";continue}i=i+d}s&&$(s,c,i),n.push(c.x,c.y,c.z)}),n}function qe(t){return t==null?void 0:t.includes("=")}async function Xe(t){var c,o;const n=(c=t==null?void 0:t.trim())==null?void 0:c.split(/\r?\n/);if(qe(t))return Fe(n);const r=n==null?void 0:n[0],l=(o=r==null?void 0:r.trim())==null?void 0:o.split(/\s+/);if((l==null?void 0:l.length)>=3)return ze(n);if((l==null?void 0:l.length)===1)return Ae(n)}async function Re(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ye(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ze(t){let n=t.trim().split(/\r?\n/);return n=n.filter(l=>{const c=l.startsWith("X")||l.startsWith("Y")||l.startsWith("Z"),o=l.startsWith("G")&&(l.includes("X")||l.includes("Y")||l.includes("Z")),s=l.startsWith("N")&&(l.includes("X")||l.includes("Y")||l.includes("Z"));return c||o||s}),je(n)}async function Oe(t,n){const{isCyd:r,isUv:l,isCpt:c,isNc:o}=n;return l?Xe(t):r?Ye(t):c?Re(t):o?Ze(t):[]}function Ge(t){const n=[];for(let r=0;r<t.length;r+=3)n.push(new h.Vector3(t[r],t[r+1],t[r+2]));return n}function Ke(t){const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new h.LineBasicMaterial({color:55551,linewidth:3});return new h.Line(n,r)}function Se(t,n){if(!n||n.length<3)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=Ke(n);return s.name="轨迹路径",r.add(s),s}function We(t,n,r,l=4,c=50){let o=1/0,s=-1/0,i=1/0,f=-1/0,d=1/0,m=-1/0;for(let C=0;C<t.length;C+=3){const b=t[C],p=t[C+1],y=t[C+2];o=Math.min(o,b),s=Math.max(s,b),i=Math.min(i,p),f=Math.max(f,p),d=Math.min(d,y),m=Math.max(m,y)}const w=Math.sqrt((s-o)**2+(f-i)**2+(m-d)**2)*.05,N=h.MathUtils.degToRad(n.fov),E=2*Math.tan(N/2)*c,_=w/E*r.domElement.height*(l/4);return Math.min(.4,_)}function He(t){if(t.length%3!==0)return console.error("points array length is not a multiple of 3:",t),null;const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new Float32Array(t.length);for(let o=0;o<t.length;o+=3)r[o]=0,r[o+1]=.847,r[o+2]=1;n.setAttribute("color",new h.BufferAttribute(r,3));const l=new h.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!0}),c=new h.Points(n,l);return l.needsUpdate=!0,c}function Je(t,n){if(!n)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=He(n);if(!s)return;s.name="轨迹路径",r.add(s);const i=We(n,l,c,.1,50);return s.material.size=i,s}const Qe={class:"obj-viewer-container"},et={class:"buttonGroup-topLeft"},tt={class:"buttonGroup-left"},nt={class:"buttonGroup-right"},ot={class:"buttonGroup-bottom"},rt={class:"left-panel"},lt={class:"panel-header"},st={class:"panel-body"},it={key:1,class:"clipping-content"},at={class:"radio-group"},ct={class:"radio-label"},ut={class:"radio-label"},dt={class:"radio-label"},ft={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},gt={key:0,class:"loading-overlay"},ht=e.defineComponent({__name:"threeTrackPathView",props:{fileBlobs:{},threeData:{default:()=>""},trackFileType:{}},emits:["getAnimationData","getThreeData"],setup(t,{emit:n}){const r=n,l=t,c=e.ref(null),o=e.ref(!1),s=e.ref(""),i=e.ref(),f=e.ref(!1),d=e.ref(""),m=e.ref(!1),v=e.ref(""),w=e.shallowRef(null),N=e.shallowRef(null),{currentModels:E,initThreeJS:_,handleResize:C,getThreeJSObjects:b,cleanup:p,axesHelperVisible:y,toggleAxesVisibility:F,zoomIn:j,zoomOut:q}=P.useThreeJS(c),{isAnimating:I,toggleAnimation:M,stopAnimation:J}=P.useAnimation(b,E),{isClipping:Q,activeClippingAxis:k,toggleClipping:ee,updateClippingPlanes:T}=P.useClipping(b,E),te=()=>{F()},X=u=>{f.value=!0,d.value=u,u==="剖面视图"&&!Q.value&&ee()},R=u=>{m.value=!0,v.value=u,u==="动画仿真"&&r("getAnimationData")},Y=e.ref([]),D=e.ref([]),ne=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isUv}),oe=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCyd}),re=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCpt}),z=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isNc}),Z=e.computed(()=>{const u=l.fileBlobs||[];return u==null?void 0:u[0]});let x=e.shallowRef(),A=e.shallowRef();const le=()=>{const{scene:u}=b();x.value&&u&&(P.disposeObj(x.value,u),x.value=null)},se=()=>{const{scene:u}=b();A.value&&u&&(P.disposeObj(A.value,u),A.value=null)},O=()=>{le(),se()},ie=async u=>{const a=URL.createObjectURL(u),U=await ge.readFileText(a);if(URL.revokeObjectURL(a),he.isString(U)){const g=await Oe(U,l.trackFileType)||[];Y.value=g;const K=Y.value;ne.value&&(x.value=Se(b,K)),(oe.value||re.value||z.value)&&(x.value=Je(b,K)),P.frameCameraToObject3D(b,x.value)}},ae=async()=>{var u,a;A.value=ye(),D.value=Ge(Y.value),D.value&&D.value.length&&(H(A.value,D.value[0],x.value,new h.Color(16711680)),(a=(u=N.value)==null?void 0:u.add)==null||a.call(u,A.value))},ce=async()=>{var u;await((u=i==null?void 0:i.value)==null?void 0:u.reset()),await G(Z.value)},G=async u=>{O(),await ie(u),z.value&&ae()};e.watch(()=>Z.value,async u=>{u&&await G(u)},{immediate:!0,deep:!0});const ue=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.playAnimation())},de=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.stopAnimation())},fe=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.forwardFrame())},ve=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.backwardFrame())};let L=null;const me=()=>{_(),e.nextTick(()=>{c.value&&(L=new ResizeObserver(C),L.observe(c.value))});const u=b();N.value=u.scene,N.value&&(N.value.name="CPMPIP")},pe=()=>{L&&L.disconnect(),I.value&&J(),O(),p()};return e.onMounted(async()=>{try{me()}catch(u){console.error("Three.js 初始化失败:",u),B.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{pe()}),(u,a)=>{const U=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",et,[e.createVNode(V.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:ce,title:"重置"}),e.createVNode(V.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(j)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(q)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(M),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(V.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(y),onClick:te,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",tt,[e.renderSlot(u.$slots,"button-left",{switchRightPanel:X},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:a[0]||(a[0]=g=>X("场景树")),active:f.value&&d.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"clipping",size:"24",onClick:a[1]||(a[1]=g=>X("剖面视图")),active:f.value&&d.value==="剖面视图",title:"剖面视图"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(u.$slots,"button-right",{switchRightPanel:R},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:a[2]||(a[2]=g=>R("关节控制")),active:m.value&&v.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:a[3]||(a[3]=g=>R("动画仿真")),active:m.value&&v.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",ot,[e.createVNode(V.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ve}),e.createVNode(V.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:ue}),e.createVNode(V.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:fe}),e.createVNode(V.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:de})]),e.withDirectives(e.createElementVNode("div",rt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(d.value),1),e.createElementVNode("span",{class:"close",onClick:a[4]||(a[4]=g=>f.value=!1)}," X ")]),e.createElementVNode("div",st,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[d.value==="场景树"?(e.openBlock(),e.createBlock(S.UrdfTree,{key:0,model:w.value},null,8,["model"])):e.createCommentVNode("",!0),d.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",at,[e.createElementVNode("label",ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":a[5]||(a[5]=g=>e.isRef(k)?k.value=g:null),onChange:a[6]||(a[6]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[14]||(a[14]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":a[7]||(a[7]=g=>e.isRef(k)?k.value=g:null),onChange:a[8]||(a[8]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[15]||(a[15]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",dt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":a[9]||(a[9]=g=>e.isRef(k)?k.value=g:null),onChange:a[10]||(a[10]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[16]||(a[16]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":a[11]||(a[11]=g=>e.isRef(k)?k.value=g:null),onChange:a[12]||(a[12]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[17]||(a[17]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})])],512),[[e.vShow,f.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(v.value),1),e.createElementVNode("span",{class:"close",onClick:a[13]||(a[13]=g=>m.value=!1)}," X ")]),e.createElementVNode("div",pt,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(S.JointPanel,{model:w.value},null,8,["model"]),[[e.vShow,v.value==="关节控制"]]),e.withDirectives(e.createVNode(xe,{ref_key:"animationPanelRef",ref:i,cloud:e.unref(x),knife:e.unref(A),vectors:D.value},null,8,["cloud","knife","vectors"]),[[e.vShow,v.value==="动画仿真"&&z.value]])]),_:1})])],512),[[e.vShow,m.value]]),o.value?(e.openBlock(),e.createElementBlock("div",gt,[a[18]||(a[18]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(s.value),1)])):e.createCommentVNode("",!0)])}}}),yt=W._export_sfc(ht,[["__scopeId","data-v-61931e01"]]);exports.default=yt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("./iconfont-Cd-HtwmG.cjs"),h=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CSGUG8yi.cjs"),ge=require("./threeViewerHost-BDh0cvdZ.cjs"),B=require("./index-C8qRkCgn.cjs"),S=require("./urdfTree--UXeuTR1.cjs"),W=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),V=require("./svgIcon-CUM54R6L.cjs"),he=require("./isString--eJE54G5.cjs");function ye(t=.5,n=4){const r=new h.Mesh(new h.ConeGeometry(t,n,32),new h.MeshStandardMaterial({color:"#919191ff",metalness:.3,roughness:.6})),l=r.geometry.parameters.height;return r.geometry.translate(0,-l/2,0),r.rotation.set(-90,0,0,"XYZ"),r}function we(t,n){t.position.copy(n)}function Ce(t,n,r=new h.Color(16711680)){const l=new h.Vector3;n.getWorldPosition(l);const c=t.geometry.attributes.position,o=t.geometry.attributes.color,s=new h.Color(55551);let i=1/0,f=-1;for(let d=0;d<c.count;d++){const v=new h.Vector3().fromBufferAttribute(c,d).distanceTo(l);v<i&&(i=v,f=d)}for(let d=0;d<o.count;d++)s.toArray(o.array,d*3);if(f!==-1){const d=r.toArray(),m=f*3+2;for(let v=0;v<m;v=v+3)o.array[v]=d[0],o.array[v+1]=d[1],o.array[v+2]=d[2]}o.needsUpdate=!0}function H(t,n,r,l=new h.Color(16711680)){we(t,n),Ce(r,t,l)}const Ve={class:"panel-content"},be={class:"animation-controls"},ke={class:"control-row"},Ne={class:"control-row"},Ee={class:"frame-info"},_e={class:"control-row"},Te=e.defineComponent({__name:"trackAnimationPanel",props:{cloud:{},knife:{},vectors:{}},emits:["getThreeData"],setup(t,{expose:n,emit:r}){const l=t,c=e.computed(()=>l.vectors),o=e.ref(!1),s=e.ref(0),i=e.ref(100);let f=!1;const d=p=>`第 ${p+1} 帧`,m=p=>{if(p<0||p>=c.value.length){console.error(`帧索引 ${p} 超出范围`);return}const y=c.value[p];s.value=p,H(l.knife,y,l.cloud)},v=async()=>{if(c.value.length===0){B.ElMessage.error("无法播放动画:无数据");return}if(!o.value){o.value=!0,f=!1,c.value.length-1===s.value&&(s.value=0);try{for(let p=s.value+1;p<c.value.length&&!f;p++)await new Promise(y=>setTimeout(y,i.value)),m(p);f||B.ElMessage.success("动画播放完成")}catch(p){console.error("动画播放出错:",p)}finally{o.value=!1}}},w=async()=>{o.value&&(f=!0,await new Promise(p=>{const y=e.watch(()=>o.value,F=>{y(),p()})}),B.ElMessage.info("动画已停止"))},N=async p=>{o.value&&await w(),m(p)},E=async()=>{o.value&&await w(),!(s.value+1>=c.value.length)&&m(s.value+1)},_=async()=>{o.value&&await w(),s.value!==0&&m(s.value-1)},C=()=>{s.value=0};return n({playAnimation:v,stopAnimation:w,forwardFrame:E,backwardFrame:_,resetAnimationFrame:C,reset:async()=>{await w(),C()}}),(p,y)=>{const F=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-form-item"),q=e.resolveComponent("el-form"),I=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createVNode(q,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(j,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=M=>i.value=M),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ne,[y[2]||(y[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ee,e.toDisplayString(s.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",_e,[y[3]||(y[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(I,{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=M=>s.value=M),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":d,onInput:N,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),xe=W._export_sfc(Te,[["__scopeId","data-v-b5665bfd"]]);function ze(t){const n=[];return t.forEach(r=>{const[l,c,o]=r.trim().split(/\s+/);n.push(+l,+c,+o)}),n}function $(t,n,r){switch(t){case"X":n.x=+r||0;break;case"Y":n.y=+r||0;break;case"Z":n.z=+r||0;break}}function Ae(t){const n=[],r=["X","Y","Z"];return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f],m=r.find(v=>v===d);if(m){s&&$(s,c,i),i="",s=m;continue}i=i+d}$(s,c,i),n.push(c.x,c.y,c.z)}),n}const Pe=t=>t==null?void 0:t.filter(r=>r.includes("=")),Me=t=>t.replace(/,/g,""),De=t=>t==null?void 0:t.map(r=>Me(r)),Ue=t=>{const n=Pe(t);return De(n)};function Fe(t){const n=Ue(t),r=[];return n.forEach(l=>{var v,w,N,E,_,C;let[c,o,s,i]=l.trim().split(/\s+/);o=(v=o==null?void 0:o.trim)==null?void 0:v.call(o),s=(w=s==null?void 0:s.trim)==null?void 0:w.call(s),i=(N=i==null?void 0:i.trim)==null?void 0:N.call(i);const[,f]=(E=o==null?void 0:o.split)==null?void 0:E.call(o,"="),[,d]=(_=s==null?void 0:s.split)==null?void 0:_.call(s,"="),[,m]=(C=i==null?void 0:i.split)==null?void 0:C.call(i,"=");r.push(+f,+d,+m)}),r}const Ie=t=>t>="0"&&t<="9",Le=t=>t==="+"||t==="-",Be=t=>t===".";function $e(t){return Ie(t)||Le(t)||Be(t)}function je(t){const n=[],r=new Set(["X","Y","Z"]);return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f];if(d==="T")break;const m=r.has(d)?d:null,v=$e(d);if(m||!v){s&&$(s,c,i),s=m,i="";continue}i=i+d}s&&$(s,c,i),n.push(c.x,c.y,c.z)}),n}function qe(t){return t==null?void 0:t.includes("=")}async function Xe(t){var c,o;const n=(c=t==null?void 0:t.trim())==null?void 0:c.split(/\r?\n/);if(qe(t))return Fe(n);const r=n==null?void 0:n[0],l=(o=r==null?void 0:r.trim())==null?void 0:o.split(/\s+/);if((l==null?void 0:l.length)>=3)return ze(n);if((l==null?void 0:l.length)===1)return Ae(n)}async function Re(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ye(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ze(t){let n=t.trim().split(/\r?\n/);return n=n.filter(l=>{const c=l.startsWith("X")||l.startsWith("Y")||l.startsWith("Z"),o=l.startsWith("G")&&(l.includes("X")||l.includes("Y")||l.includes("Z")),s=l.startsWith("N")&&(l.includes("X")||l.includes("Y")||l.includes("Z"));return c||o||s}),je(n)}async function Oe(t,n){const{isCyd:r,isUv:l,isCpt:c,isNc:o}=n;return l?Xe(t):r?Ye(t):c?Re(t):o?Ze(t):[]}function Ge(t){const n=[];for(let r=0;r<t.length;r+=3)n.push(new h.Vector3(t[r],t[r+1],t[r+2]));return n}function Ke(t){const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new h.LineBasicMaterial({color:55551,linewidth:3});return new h.Line(n,r)}function Se(t,n){if(!n||n.length<3)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=Ke(n);return s.name="轨迹路径",r.add(s),s}function We(t,n,r,l=4,c=50){let o=1/0,s=-1/0,i=1/0,f=-1/0,d=1/0,m=-1/0;for(let C=0;C<t.length;C+=3){const b=t[C],p=t[C+1],y=t[C+2];o=Math.min(o,b),s=Math.max(s,b),i=Math.min(i,p),f=Math.max(f,p),d=Math.min(d,y),m=Math.max(m,y)}const w=Math.sqrt((s-o)**2+(f-i)**2+(m-d)**2)*.05,N=h.MathUtils.degToRad(n.fov),E=2*Math.tan(N/2)*c,_=w/E*r.domElement.height*(l/4);return Math.min(.4,_)}function He(t){if(t.length%3!==0)return console.error("points array length is not a multiple of 3:",t),null;const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new Float32Array(t.length);for(let o=0;o<t.length;o+=3)r[o]=0,r[o+1]=.847,r[o+2]=1;n.setAttribute("color",new h.BufferAttribute(r,3));const l=new h.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!0}),c=new h.Points(n,l);return l.needsUpdate=!0,c}function Je(t,n){if(!n)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=He(n);if(!s)return;s.name="轨迹路径",r.add(s);const i=We(n,l,c,.1,50);return s.material.size=i,s}const Qe={class:"obj-viewer-container"},et={class:"buttonGroup-topLeft"},tt={class:"buttonGroup-left"},nt={class:"buttonGroup-right"},ot={class:"buttonGroup-bottom"},rt={class:"left-panel"},lt={class:"panel-header"},st={class:"panel-body"},it={key:1,class:"clipping-content"},at={class:"radio-group"},ct={class:"radio-label"},ut={class:"radio-label"},dt={class:"radio-label"},ft={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},gt={key:0,class:"loading-overlay"},ht=e.defineComponent({__name:"threeTrackPathView",props:{fileBlobs:{},threeData:{default:()=>""},trackFileType:{}},emits:["getAnimationData","getThreeData"],setup(t,{emit:n}){const r=n,l=t,c=e.ref(null),o=e.ref(!1),s=e.ref(""),i=e.ref(),f=e.ref(!1),d=e.ref(""),m=e.ref(!1),v=e.ref(""),w=e.shallowRef(null),N=e.shallowRef(null),{currentModels:E,initThreeJS:_,handleResize:C,getThreeJSObjects:b,cleanup:p,axesHelperVisible:y,toggleAxesVisibility:F,zoomIn:j,zoomOut:q}=P.useThreeJS(c),{isAnimating:I,toggleAnimation:M,stopAnimation:J}=P.useAnimation(b,E),{isClipping:Q,activeClippingAxis:k,toggleClipping:ee,updateClippingPlanes:T}=P.useClipping(b,E),te=()=>{F()},X=u=>{f.value=!0,d.value=u,u==="剖面视图"&&!Q.value&&ee()},R=u=>{m.value=!0,v.value=u,u==="动画仿真"&&r("getAnimationData")},Y=e.ref([]),D=e.ref([]),ne=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isUv}),oe=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCyd}),re=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCpt}),z=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isNc}),Z=e.computed(()=>{const u=l.fileBlobs||[];return u==null?void 0:u[0]});let x=e.shallowRef(),A=e.shallowRef();const le=()=>{const{scene:u}=b();x.value&&u&&(P.disposeObj(x.value,u),x.value=null)},se=()=>{const{scene:u}=b();A.value&&u&&(P.disposeObj(A.value,u),A.value=null)},O=()=>{le(),se()},ie=async u=>{const a=URL.createObjectURL(u),U=await ge.readFileText(a);if(URL.revokeObjectURL(a),he.isString(U)){const g=await Oe(U,l.trackFileType)||[];Y.value=g;const K=Y.value;ne.value&&(x.value=Se(b,K)),(oe.value||re.value||z.value)&&(x.value=Je(b,K)),P.frameCameraToObject3D(b,x.value)}},ae=async()=>{var u,a;A.value=ye(),D.value=Ge(Y.value),D.value&&D.value.length&&(H(A.value,D.value[0],x.value,new h.Color(16711680)),(a=(u=N.value)==null?void 0:u.add)==null||a.call(u,A.value))},ce=async()=>{var u;await((u=i==null?void 0:i.value)==null?void 0:u.reset()),await G(Z.value)},G=async u=>{O(),await ie(u),z.value&&ae()};e.watch(()=>Z.value,async u=>{u&&await G(u)},{immediate:!0,deep:!0});const ue=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.playAnimation())},de=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.stopAnimation())},fe=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.forwardFrame())},ve=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.backwardFrame())};let L=null;const me=()=>{_(),e.nextTick(()=>{c.value&&(L=new ResizeObserver(C),L.observe(c.value))});const u=b();N.value=u.scene,N.value&&(N.value.name="CPMPIP")},pe=()=>{L&&L.disconnect(),I.value&&J(),O(),p()};return e.onMounted(async()=>{try{me()}catch(u){console.error("Three.js 初始化失败:",u),B.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{pe()}),(u,a)=>{const U=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",et,[e.createVNode(V.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:ce,title:"重置"}),e.createVNode(V.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(j)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(q)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(M),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(V.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(y),onClick:te,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",tt,[e.renderSlot(u.$slots,"button-left",{switchRightPanel:X},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:a[0]||(a[0]=g=>X("场景树")),active:f.value&&d.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"clipping",size:"24",onClick:a[1]||(a[1]=g=>X("剖面视图")),active:f.value&&d.value==="剖面视图",title:"剖面视图"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(u.$slots,"button-right",{switchRightPanel:R},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:a[2]||(a[2]=g=>R("关节控制")),active:m.value&&v.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:a[3]||(a[3]=g=>R("动画仿真")),active:m.value&&v.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",ot,[e.createVNode(V.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ve}),e.createVNode(V.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:ue}),e.createVNode(V.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:fe}),e.createVNode(V.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:de})]),e.withDirectives(e.createElementVNode("div",rt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(d.value),1),e.createElementVNode("span",{class:"close",onClick:a[4]||(a[4]=g=>f.value=!1)}," X ")]),e.createElementVNode("div",st,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[d.value==="场景树"?(e.openBlock(),e.createBlock(S.UrdfTree,{key:0,model:w.value},null,8,["model"])):e.createCommentVNode("",!0),d.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",at,[e.createElementVNode("label",ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":a[5]||(a[5]=g=>e.isRef(k)?k.value=g:null),onChange:a[6]||(a[6]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[14]||(a[14]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":a[7]||(a[7]=g=>e.isRef(k)?k.value=g:null),onChange:a[8]||(a[8]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[15]||(a[15]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",dt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":a[9]||(a[9]=g=>e.isRef(k)?k.value=g:null),onChange:a[10]||(a[10]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[16]||(a[16]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":a[11]||(a[11]=g=>e.isRef(k)?k.value=g:null),onChange:a[12]||(a[12]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[17]||(a[17]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})])],512),[[e.vShow,f.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(v.value),1),e.createElementVNode("span",{class:"close",onClick:a[13]||(a[13]=g=>m.value=!1)}," X ")]),e.createElementVNode("div",pt,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(S.JointPanel,{model:w.value},null,8,["model"]),[[e.vShow,v.value==="关节控制"]]),e.withDirectives(e.createVNode(xe,{ref_key:"animationPanelRef",ref:i,cloud:e.unref(x),knife:e.unref(A),vectors:D.value},null,8,["cloud","knife","vectors"]),[[e.vShow,v.value==="动画仿真"&&z.value]])]),_:1})])],512),[[e.vShow,m.value]]),o.value?(e.openBlock(),e.createElementBlock("div",gt,[a[18]||(a[18]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(s.value),1)])):e.createCommentVNode("",!0)])}}}),yt=W._export_sfc(ht,[["__scopeId","data-v-61931e01"]]);exports.default=yt;
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as de, computed as $, ref as _, resolveComponent as Y, createElementBlock as W, openBlock as j, createElementVNode as c, createVNode as h, withCtx as J, toDisplayString as Z, watch as ve, shallowRef as O, onMounted as Ee, onBeforeUnmount as Xe, withDirectives as M, createCommentVNode as se, unref as C, renderSlot as ce, createBlock as Ye, isRef as G, vModelRadio as q, vShow as K, nextTick as je } from "vue";
2
- import { u as Ze, a as Ne, b as Be, f as Ie, d as fe } from "./iconfont-BP_QEXyH.js";
3
- import { C as H, k as Oe, aE as Ge, v as qe, V as ae, w as me, aF as pe, ai as Ke, y as We, a5 as Re, ag as Je, ao as He, s as Qe } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Ca5MAWqT.js";
4
- import { r as Se } from "./threeViewerHost-BX-lA9Q_.js";
2
+ import { u as Ze, a as Ne, b as Be, f as Ie, d as fe } from "./iconfont-DXGCEldy.js";
3
+ import { C as H, k as Oe, aE as Ge, v as qe, V as ae, w as me, aF as pe, ai as Ke, y as We, a5 as Re, ag as Je, ao as He, s as Qe } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-JTfuXDvR.js";
4
+ import { r as Se } from "./threeViewerHost-DrxyqlfL.js";
5
5
  import { E as R } from "./index-BUYYl2Pc.js";
6
- import { U as et, J as tt } from "./urdfTree-IrNrj52s.js";
6
+ import { U as et, J as tt } from "./urdfTree-DlUtmYxX.js";
7
7
  import { _ as ge } from "./_plugin-vue_export-helper-CHgC5LLL.js";
8
8
  import { T as k } from "./svgIcon-D-_fXUBL.js";
9
9
  import { i as nt } from "./isString-BATKat46.js";