ss-component-new 1.1.428 → 1.1.430

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 (86) hide show
  1. package/dist/{array-C4Es3IJl.cjs → array-BE8kxwbF.cjs} +1 -1
  2. package/dist/{array-CfYKb4Nd.js → array-CmTW1wXQ.js} +1 -1
  3. package/dist/icons/svg/EyeFill.svg +1 -0
  4. package/dist/{index-jteGdz9o.js → index-B3sv--5l.js} +9 -9
  5. package/dist/{index-DGftdu10.cjs → index-B8ONEgpW.cjs} +1 -1
  6. package/dist/{index-CRfrrpPf.cjs → index-BCFtIIf_.cjs} +1 -1
  7. package/dist/{index-B5T_VqYF.js → index-BWHERznY.js} +4 -4
  8. package/dist/{index-CTvJr4hu.cjs → index-BZkQ29Tz.cjs} +1 -1
  9. package/dist/{index-EYlNG37M.cjs → index-B_AUqKy_.cjs} +1 -1
  10. package/dist/{index-CkZ55Trw.cjs → index-Bb7GoIJp.cjs} +1 -1
  11. package/dist/{index-CjSdK9n3.js → index-BiuhwvlL.js} +9 -9
  12. package/dist/{index-AELMbDVd.js → index-BnlhM9YS.js} +7 -7
  13. package/dist/{index-Bp9OCGp9.js → index-BwhVhBYj.js} +5 -5
  14. package/dist/index-C-jjWrUl.cjs +1 -0
  15. package/dist/{index-l4f4Ksrs.js → index-CMBrDaM5.js} +1 -1
  16. package/dist/{index-BNZtQgpp.cjs → index-CNpklHzK.cjs} +1 -1
  17. package/dist/{index-UZsDwc9I.cjs → index-CONyMR2I.cjs} +1 -1
  18. package/dist/{index-Ct43M3Ia.js → index-CSj1osh5.js} +6 -6
  19. package/dist/{index-Dxporpi3.js → index-CYOSbBn4.js} +212 -219
  20. package/dist/{index-C76WZoJF.cjs → index-CjlMUufz.cjs} +1 -1
  21. package/dist/{index-BTQXT09h.cjs → index-Clor83sA.cjs} +1 -1
  22. package/dist/{index-HOLtxrWE.cjs → index-CqaFuVhy.cjs} +1 -1
  23. package/dist/{index-UiIVwT0x.js → index-Cqd4dRu7.js} +4 -4
  24. package/dist/{index-DdlG0SsL.js → index-CrtuDvMe.js} +1 -1
  25. package/dist/{index-6I-wNfSX.cjs → index-CsHPoVQL.cjs} +1 -1
  26. package/dist/{index-Ct6CbWll.js → index-CzfGrSpV.js} +1 -1
  27. package/dist/{index-B0jpwR-h.cjs → index-D2aIlMCu.cjs} +1 -1
  28. package/dist/{index-CMYViTL8.cjs → index-D3ah-UXX.cjs} +1 -1
  29. package/dist/{index-BN5V2XDK.cjs → index-D5JRjtWD.cjs} +1 -1
  30. package/dist/{index-B1B8QwCz.cjs → index-D6iTzH06.cjs} +1 -1
  31. package/dist/{index-DNxPzGNN.js → index-DDoTCY3C.js} +5 -5
  32. package/dist/{index-BJ4skhum.js → index-DFilfUFX.js} +3 -3
  33. package/dist/{index-CjUuYXN_.cjs → index-DIxSv5u4.cjs} +1 -1
  34. package/dist/{index-C6jLxi8v.cjs → index-DOm1fXtU.cjs} +1 -1
  35. package/dist/{index-BqXldRGs.js → index-DQq3rsff.js} +5 -5
  36. package/dist/{index-DxH1id_m.cjs → index-DUPkZILz.cjs} +1 -1
  37. package/dist/{index-BBCbfygK.js → index-DXtXtduX.js} +4 -4
  38. package/dist/{index-B4PppAMz.cjs → index-D_j7_Hn_.cjs} +1 -1
  39. package/dist/index-Daqdy9e9.js +20924 -0
  40. package/dist/{index-DnL48cUW.js → index-DeXnZk4X.js} +6 -6
  41. package/dist/{index-DN77Gqf7.js → index-Di1ajNKI.js} +4 -4
  42. package/dist/{index-Ds17eX5X.js → index-DkiBGvqU.js} +1 -1
  43. package/dist/{index-DMQYdu7x.js → index-DxCiQhlC.js} +2 -2
  44. package/dist/{index-BshhtCGw.cjs → index-DxNyBY1w.cjs} +1 -1
  45. package/dist/{index-C8hk7atl.cjs → index-DygfoHkC.cjs} +1 -1
  46. package/dist/{index-CYd3fvF0.js → index-EzZiR3ly.js} +4 -4
  47. package/dist/{index-D7yRWMe9.js → index-LoH8EwXA.js} +3 -3
  48. package/dist/{index-CiC0L55k.cjs → index-N9Y_z5k_.cjs} +1 -1
  49. package/dist/{index-Dn-Jaifm.cjs → index-PdwN7EaB.cjs} +1 -1
  50. package/dist/{index-CHHBmFWf.js → index-eH2F0oMQ.js} +3 -3
  51. package/dist/index-gXA0eS6O.cjs +15 -0
  52. package/dist/{index-B8_cYT3O.cjs → index-o5dof3CA.cjs} +1 -1
  53. package/dist/{index-BSQfr-21.js → index-pvjM6t0d.js} +6 -6
  54. package/dist/{index-Lr-jM5BD.js → index-qEFkFDy8.js} +7 -7
  55. package/dist/{index-CiiImREt.js → index-uatggqnf.js} +5 -5
  56. package/dist/{index.vue_vue_type_script_setup_true_lang-3lAQFpGt.cjs → index.vue_vue_type_script_setup_true_lang-EaaJleWP.cjs} +1 -1
  57. package/dist/{index.vue_vue_type_script_setup_true_lang-AQDB--lA.js → index.vue_vue_type_script_setup_true_lang-YlUeUQJ4.js} +3 -3
  58. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-C2oFMwa6.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Bw_ydbnW.cjs} +1 -1
  59. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-XVUNtATu.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CClJxB6F.js} +2 -2
  60. package/dist/{index.vue_vue_type_style_index_0_scoped_ed9fe0f5_lang-DuQ2lr1u.cjs → index.vue_vue_type_style_index_0_scoped_ed9fe0f5_lang-B2duMdZT.cjs} +1 -1
  61. package/dist/{index.vue_vue_type_style_index_0_scoped_ed9fe0f5_lang-CPssMJ2M.js → index.vue_vue_type_style_index_0_scoped_ed9fe0f5_lang-CcYfjXoA.js} +8 -8
  62. package/dist/index.vue_vue_type_style_index_0_scoped_f69cf49c_lang-TQjM60R4.js +1947 -0
  63. package/dist/index.vue_vue_type_style_index_0_scoped_f69cf49c_lang-Z8fBYrL9.cjs +1 -0
  64. package/dist/{login-CcYUrJ0A.js → login-B520hsEu.js} +1 -1
  65. package/dist/{login-Cf3T6tgq.cjs → login-BMAi9yYX.cjs} +1 -1
  66. package/dist/{main-B3iC_GFY.js → main-Dpbg9Pxc.js} +6 -6
  67. package/dist/{main-3IJiaVcX.cjs → main-yzKa6bxy.cjs} +1 -1
  68. package/dist/{menu-DBX0QxSF.cjs → menu-BAEUpxbd.cjs} +1 -1
  69. package/dist/{menu-DBnQNYlq.js → menu-qAL8FiSW.js} +1 -1
  70. package/dist/ss-component.cjs +1 -1
  71. package/dist/ss-component.css +2 -2
  72. package/dist/ss-component.js +10 -10
  73. package/dist/ss-component3.cjs +1 -1
  74. package/dist/ss-component3.js +1 -1
  75. package/dist/{threeModel-BJTtjg6F.js → threeModel-ClGUp5fG.js} +639 -763
  76. package/dist/threeModel-CxKWxMlL.cjs +1 -0
  77. package/dist/{threeModel.vue_vue_type_style_index_0_scoped_e7dd7d83_lang-C3w6_nGz.cjs → threeModel.vue_vue_type_style_index_0_scoped_3e87dec6_lang-BOT5Tivd.cjs} +181 -181
  78. package/dist/{threeModel.vue_vue_type_style_index_0_scoped_e7dd7d83_lang-bdUv7Wu8.js → threeModel.vue_vue_type_style_index_0_scoped_3e87dec6_lang-DYhzYEGg.js} +4567 -5349
  79. package/package.json +5 -1
  80. package/public/icons/svg/EyeFill.svg +1 -0
  81. package/dist/index-Cz3Bar44.cjs +0 -1
  82. package/dist/index-D55Us6td.js +0 -2782
  83. package/dist/index-W-mzocaB.cjs +0 -4
  84. package/dist/index.vue_vue_type_style_index_0_scoped_7ee96c6e_lang-D684C3wt.cjs +0 -1
  85. package/dist/index.vue_vue_type_style_index_0_scoped_7ee96c6e_lang-iXOYIk8v.js +0 -1929
  86. package/dist/threeModel-nm_sKExW.cjs +0 -1
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o=require("./threeModel.vue_vue_type_style_index_0_scoped_e7dd7d83_lang-C3w6_nGz.cjs"),it=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),Mt={class:"tree-container"},Et=e.defineComponent({__name:"index",props:{treeData:Array,expand:{type:Boolean,default:!1}},emits:["nodeClick"],setup(l,{emit:t}){const n=t,s=l,c={children:"children",label:"label"},J=G=>{n("nodeClick",G)};return(G,a)=>{const p=e.resolveComponent("el-tree");return e.openBlock(),e.createElementBlock("div",Mt,[e.createVNode(p,{data:s==null?void 0:s.treeData,props:c,"default-expand-all":l.expand,onNodeClick:J},null,8,["data","default-expand-all"])])}}}),wt=it._export_sfc(Et,[["__scopeId","data-v-b4bd4658"]]),vt={key:0,class:"jointPanel-container"},Rt={class:"panel-content"},Bt=e.defineComponent({__name:"robotMenu",props:{model:Object},setup(l){const t=l,n=e.ref(!0),s=e.ref([]),c=(a,p=0)=>{const g=[];return Array.isArray(a)&&(a==null?void 0:a.length)>0&&a.forEach(u=>{if(!(u!=null&&u.isMesh)&&((u==null?void 0:u.type)==="URDFJoint"||(u==null?void 0:u.type)==="URDFLink")){const H={name:u==null?void 0:u.name,label:u==null?void 0:u.name,show:!0,level:p+1,isPenultimate:!1,type:u==null?void 0:u.type,id:u==null?void 0:u.id,limit:(u==null?void 0:u.limit)??"",children:c(u==null?void 0:u.children,p+1),path:u==null?void 0:u.name};g.push(H)}}),g},J=a=>a?[{name:a==null?void 0:a.name,label:a==null?void 0:a.name,show:!0,level:1,isPenultimate:!1,type:a==null?void 0:a.type,id:a==null?void 0:a.id,limit:(a==null?void 0:a.limit)??"",children:c(a==null?void 0:a.children,1),path:a==null?void 0:a.name}]:[],G=e.computed(()=>t!=null&&t.model?J(t.model):[]);return e.watch(G,a=>{s.value=JSON.parse(JSON.stringify(a))},{immediate:!0}),(a,p)=>{const g=e.resolveComponent("el-scrollbar"),u=e.resolveComponent("el-collapse-transition");return l.model?(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",{class:"panel-header",onClick:p[0]||(p[0]=H=>n.value=!n.value)},p[1]||(p[1]=[e.createElementVNode("h3",null,"URDF树",-1)])),e.createVNode(u,null,{default:e.withCtx(()=>[e.withDirectives(e.createVNode(g,{"max-height":"600px"},{default:e.withCtx(()=>[e.createElementVNode("div",Rt,[e.createVNode(wt,{treeData:s.value,expand:!0},null,8,["treeData"])])]),_:1},512),[[e.vShow,n.value]])]),_:1})])):e.createCommentVNode("",!0)}}}),xt=it._export_sfc(Bt,[["__scopeId","data-v-bc2f3f82"]]),ut={type:"change"},dt={type:"start"},pt={type:"end"},st=new o.Ray,Jt=new o.Plane,Dt=Math.cos(70*o.MathUtils.DEG2RAD),S=new o.Vector3,L=2*Math.PI,b={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},ct=1e-6;class Vt extends o.Controls{constructor(t,n=null){super(t,n),this.state=b.NONE,this.target=new o.Vector3,this.cursor=new o.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:o.MOUSE.ROTATE,MIDDLE:o.MOUSE.DOLLY,RIGHT:o.MOUSE.PAN},this.touches={ONE:o.TOUCH.ROTATE,TWO:o.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new o.Vector3,this._lastQuaternion=new o.Quaternion,this._lastTargetPosition=new o.Vector3,this._quat=new o.Quaternion().setFromUnitVectors(t.up,new o.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new o.Spherical,this._sphericalDelta=new o.Spherical,this._scale=1,this._panOffset=new o.Vector3,this._rotateStart=new o.Vector2,this._rotateEnd=new o.Vector2,this._rotateDelta=new o.Vector2,this._panStart=new o.Vector2,this._panEnd=new o.Vector2,this._panDelta=new o.Vector2,this._dollyStart=new o.Vector2,this._dollyEnd=new o.Vector2,this._dollyDelta=new o.Vector2,this._dollyDirection=new o.Vector3,this._mouse=new o.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Tt.bind(this),this._onPointerDown=St.bind(this),this._onPointerUp=Ct.bind(this),this._onContextMenu=Ht.bind(this),this._onMouseWheel=At.bind(this),this._onKeyDown=Ot.bind(this),this._onTouchStart=zt.bind(this),this._onTouchMove=Lt.bind(this),this._onMouseDown=kt.bind(this),this._onMouseMove=Nt.bind(this),this._interceptControlDown=jt.bind(this),this._interceptControlUp=It.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(ut),this.update(),this.state=b.NONE}update(t=null){const n=this.object.position;S.copy(n).sub(this.target),S.applyQuaternion(this._quat),this._spherical.setFromVector3(S),this.autoRotate&&this.state===b.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let s=this.minAzimuthAngle,c=this.maxAzimuthAngle;isFinite(s)&&isFinite(c)&&(s<-Math.PI?s+=L:s>Math.PI&&(s-=L),c<-Math.PI?c+=L:c>Math.PI&&(c-=L),s<=c?this._spherical.theta=Math.max(s,Math.min(c,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(s+c)/2?Math.max(s,this._spherical.theta):Math.min(c,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let J=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const G=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),J=G!=this._spherical.radius}if(S.setFromSpherical(this._spherical),S.applyQuaternion(this._quatInverse),n.copy(this.target).add(S),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let G=null;if(this.object.isPerspectiveCamera){const a=S.length();G=this._clampDistance(a*this._scale);const p=a-G;this.object.position.addScaledVector(this._dollyDirection,p),this.object.updateMatrixWorld(),J=!!p}else if(this.object.isOrthographicCamera){const a=new o.Vector3(this._mouse.x,this._mouse.y,0);a.unproject(this.object);const p=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),J=p!==this.object.zoom;const g=new o.Vector3(this._mouse.x,this._mouse.y,0);g.unproject(this.object),this.object.position.sub(g).add(a),this.object.updateMatrixWorld(),G=S.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;G!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(G).add(this.object.position):(st.origin.copy(this.object.position),st.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(st.direction))<Dt?this.object.lookAt(this.target):(Jt.setFromNormalAndCoplanarPoint(this.object.up,this.target),st.intersectPlane(Jt,this.target))))}else if(this.object.isOrthographicCamera){const G=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),G!==this.object.zoom&&(this.object.updateProjectionMatrix(),J=!0)}return this._scale=1,this._performCursorZoom=!1,J||this._lastPosition.distanceToSquared(this.object.position)>ct||8*(1-this._lastQuaternion.dot(this.object.quaternion))>ct||this._lastTargetPosition.distanceToSquared(this.target)>ct?(this.dispatchEvent(ut),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?L/60*this.autoRotateSpeed*t:L/60/60*this.autoRotateSpeed}_getZoomScale(t){const n=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*n)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,n){S.setFromMatrixColumn(n,0),S.multiplyScalar(-t),this._panOffset.add(S)}_panUp(t,n){this.screenSpacePanning===!0?S.setFromMatrixColumn(n,1):(S.setFromMatrixColumn(n,0),S.crossVectors(this.object.up,S)),S.multiplyScalar(t),this._panOffset.add(S)}_pan(t,n){const s=this.domElement;if(this.object.isPerspectiveCamera){const c=this.object.position;S.copy(c).sub(this.target);let J=S.length();J*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*J/s.clientHeight,this.object.matrix),this._panUp(2*n*J/s.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/s.clientWidth,this.object.matrix),this._panUp(n*(this.object.top-this.object.bottom)/this.object.zoom/s.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,n){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const s=this.domElement.getBoundingClientRect(),c=t-s.left,J=n-s.top,G=s.width,a=s.height;this._mouse.x=c/G*2-1,this._mouse.y=-(J/a)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const n=this.domElement;this._rotateLeft(L*this._rotateDelta.x/n.clientHeight),this._rotateUp(L*this._rotateDelta.y/n.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let n=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(L*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),n=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-L*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),n=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(L*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),n=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-L*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),n=!0;break}n&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),s=.5*(t.pageX+n.x),c=.5*(t.pageY+n.y);this._rotateStart.set(s,c)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),s=.5*(t.pageX+n.x),c=.5*(t.pageY+n.y);this._panStart.set(s,c)}}_handleTouchStartDolly(t){const n=this._getSecondPointerPosition(t),s=t.pageX-n.x,c=t.pageY-n.y,J=Math.sqrt(s*s+c*c);this._dollyStart.set(0,J)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const s=this._getSecondPointerPosition(t),c=.5*(t.pageX+s.x),J=.5*(t.pageY+s.y);this._rotateEnd.set(c,J)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const n=this.domElement;this._rotateLeft(L*this._rotateDelta.x/n.clientHeight),this._rotateUp(L*this._rotateDelta.y/n.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),s=.5*(t.pageX+n.x),c=.5*(t.pageY+n.y);this._panEnd.set(s,c)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const n=this._getSecondPointerPosition(t),s=t.pageX-n.x,c=t.pageY-n.y,J=Math.sqrt(s*s+c*c);this._dollyEnd.set(0,J),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const G=(t.pageX+n.x)*.5,a=(t.pageY+n.y)*.5;this._updateZoomParameters(G,a)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let n=0;n<this._pointers.length;n++)if(this._pointers[n]==t.pointerId){this._pointers.splice(n,1);return}}_isTrackingPointer(t){for(let n=0;n<this._pointers.length;n++)if(this._pointers[n]==t.pointerId)return!0;return!1}_trackPointer(t){let n=this._pointerPositions[t.pointerId];n===void 0&&(n=new o.Vector2,this._pointerPositions[t.pointerId]=n),n.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const n=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[n]}_customWheelEvent(t){const n=t.deltaMode,s={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(n){case 1:s.deltaY*=16;break;case 2:s.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(s.deltaY*=10),s}}function St(l){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(l.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(l)&&(this._addPointer(l),l.pointerType==="touch"?this._onTouchStart(l):this._onMouseDown(l)))}function Tt(l){this.enabled!==!1&&(l.pointerType==="touch"?this._onTouchMove(l):this._onMouseMove(l))}function Ct(l){switch(this._removePointer(l),this._pointers.length){case 0:this.domElement.releasePointerCapture(l.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(pt),this.state=b.NONE;break;case 1:const t=this._pointers[0],n=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:n.x,pageY:n.y});break}}function kt(l){let t;switch(l.button){case 0:t=this.mouseButtons.LEFT;break;case 1:t=this.mouseButtons.MIDDLE;break;case 2:t=this.mouseButtons.RIGHT;break;default:t=-1}switch(t){case o.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(l),this.state=b.DOLLY;break;case o.MOUSE.ROTATE:if(l.ctrlKey||l.metaKey||l.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(l),this.state=b.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(l),this.state=b.ROTATE}break;case o.MOUSE.PAN:if(l.ctrlKey||l.metaKey||l.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(l),this.state=b.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(l),this.state=b.PAN}break;default:this.state=b.NONE}this.state!==b.NONE&&this.dispatchEvent(dt)}function Nt(l){switch(this.state){case b.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(l);break;case b.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(l);break;case b.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(l);break}}function At(l){this.enabled===!1||this.enableZoom===!1||this.state!==b.NONE||(l.preventDefault(),this.dispatchEvent(dt),this._handleMouseWheel(this._customWheelEvent(l)),this.dispatchEvent(pt))}function Ot(l){this.enabled!==!1&&this._handleKeyDown(l)}function zt(l){switch(this._trackPointer(l),this._pointers.length){case 1:switch(this.touches.ONE){case o.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(l),this.state=b.TOUCH_ROTATE;break;case o.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(l),this.state=b.TOUCH_PAN;break;default:this.state=b.NONE}break;case 2:switch(this.touches.TWO){case o.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(l),this.state=b.TOUCH_DOLLY_PAN;break;case o.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(l),this.state=b.TOUCH_DOLLY_ROTATE;break;default:this.state=b.NONE}break;default:this.state=b.NONE}this.state!==b.NONE&&this.dispatchEvent(dt)}function Lt(l){switch(this._trackPointer(l),this.state){case b.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(l),this.update();break;case b.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(l),this.update();break;case b.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(l),this.update();break;case b.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(l),this.update();break;default:this.state=b.NONE}}function Ht(l){this.enabled!==!1&&l.preventDefault()}function jt(l){l.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function It(l){l.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Ut(l){let t=null,n=null,s=null,c=null,J=null,G=null,a=null,p=null;const g=e.ref([]),u=e.ref(new o.Vector3),H=e.ref(new o.Vector3),j=()=>{if(!l.value)return;t=new o.Scene,t.background=new o.Color(15790320);const r=l.value;n=new o.PerspectiveCamera(75,r.clientWidth/r.clientHeight,.1,1e4),n.position.set(8,-8,6),n.up.set(0,0,1),n.lookAt(0,0,0),s=new o.WebGLRenderer({antialias:!0,alpha:!0}),s.setSize(r.clientWidth,r.clientHeight),s.localClippingEnabled=!0,s.shadowMap.enabled=!0,s.shadowMap.type=o.PCFSoftShadowMap,s.toneMapping=o.ACESFilmicToneMapping,s.toneMappingExposure=1,s.outputColorSpace=o.SRGBColorSpace,r.appendChild(s.domElement),c=new Vt(n,s.domElement),c.enableDamping=!0,c.dampingFactor=.05,c.mouseButtons={LEFT:o.MOUSE.ROTATE,MIDDLE:o.MOUSE.PAN,RIGHT:null},c.panSpeed=.7,J=new o.Xe(n,s,{container:r,type:"cube",placement:"top-right",offset:{top:10,right:10},background:{color:"#D1D1D1",opacity:1},front:{label:"Top"},bottom:{label:"Front"},left:{label:"Left"},right:{label:"Right"},top:{label:"Back"},back:{label:"Bottom"}}),J.attachControls(c),E(),_()},U=(r,i)=>{a&&(t.remove(a),a.dispose()),p&&(t.remove(p),p.geometry.dispose(),p.material.dispose());const d=Math.min(Math.max(Math.floor(r/20),30),40);a=new o.GridHelper(r,d,13421772,14540253),a.rotateX(Math.PI/2),a.position.copy(i),t.add(a);const y=new o.PlaneGeometry(r,r),M=new o.ShadowMaterial({opacity:.3,color:0});p=new o.Mesh(y,M),p.position.copy(i),p.position.z-=.01,p.receiveShadow=!0,t.add(p)},O=()=>{if(g.value.length===0)return;const r=new o.Box3;g.value.forEach(T=>{r.expandByObject(T)});const i=r.getSize(new o.Vector3),d=r.getCenter(new o.Vector3),y=Math.max(i.x,i.y,i.z),M=Math.max(y*8,50),x=new o.Vector3(d.x,d.y,r.min.z);U(M,x)},E=()=>{const r=new o.AmbientLight(4210752,.6);t.add(r);const i=new o.DirectionalLight(16777215,2);i.position.set(10,10,8),i.castShadow=!0,i.shadow.mapSize.width=4096,i.shadow.mapSize.height=4096,i.shadow.camera.near=.5,i.shadow.camera.far=50,i.shadow.camera.left=-50,i.shadow.camera.right=50,i.shadow.camera.top=50,i.shadow.camera.bottom=-50,t.add(i);const d=new o.DirectionalLight(16777215,.8);d.position.set(-8,-8,6),t.add(d);const y=new o.DirectionalLight(16777215,.6);y.position.set(0,-15,2),t.add(y);const M=new o.HemisphereLight(16777215,4473924,.8);t.add(M);const x=new o.PointLight(16777215,1,50);x.position.set(15,15,15),t.add(x);const T=new o.PointLight(16777215,.5,50);T.position.set(-15,-15,15),t.add(T)},_=()=>{G=requestAnimationFrame(_),c&&c.update(),s&&t&&n&&s.render(t,n),J&&J.render()},m=r=>{["map","normalMap","bumpMap","roughnessMap","metalnessMap","emissiveMap","specularMap","envMap","lightMap","aoMap","displacementMap"].forEach(d=>{r[d]&&r[d].dispose&&r[d].dispose()}),r.dispose&&r.dispose()},f=r=>{r==null||r.traverse(i=>{i.geometry&&i.geometry.dispose(),i.material&&(Array.isArray(i.material)?i.material.forEach(d=>{m(d)}):m(i.material))})};return{currentModels:g,initialCameraPosition:u,initialTargetPosition:H,initThreeJS:j,handleResize:()=>{if(!l.value||!n||!s||!J)return;const r=l.value,i=r.clientWidth,d=r.clientHeight;n.aspect=i/d,n.updateProjectionMatrix(),s.setSize(i,d),J.update()},fitCameraToAllModels:()=>{if(!n||!c||g.value.length===0)return;const r=new o.Box3;g.value.forEach(T=>{r.expandByObject(T)});const i=r.getSize(new o.Vector3),d=r.getCenter(new o.Vector3),M=Math.max(i.x,i.y,i.z)*.8,x=new o.Vector3(d.x+M,d.y-M,d.z+M);n.position.copy(x),n.lookAt(d),c.target.copy(d),c.update(),u.value.copy(x),H.value.copy(d),O()},getThreeJSObjects:()=>({scene:t,camera:n,renderer:s,controls:c,gizmo:J}),clearAllModels:()=>{if(!t)return;g.value.forEach(i=>{t.remove(i),f(i)});const r=[];t.children.forEach(i=>{!i.isLight&&!i.isCamera&&i.type!=="GridHelper"&&i!==p&&r.push(i)}),r.forEach(i=>{t.remove(i),f(i)}),g.value=[],O()},cleanup:()=>{G&&cancelAnimationFrame(G),a&&a.dispose(),p&&(p.geometry.dispose(),p.material.dispose()),s&&s.dispose(),c&&c.dispose(),J&&J.dispose()},updateGridForModels:O}}function Ft(l,t){const n=e.ref(!1);let s=null,c=12700,J=new o.Vector3,G=new o.Vector3,a=new o.Vector3,p=0,g=null;const u=_=>_<.5?4*_*_*_:1-Math.pow(-2*_+2,3)/2,H=_=>{const m=new o.Vector3,f=p*1.2,R=new o.Vector3(a.x+f,a.y,a.z),w=new o.Vector3(a.x,a.y+f,a.z),A=new o.Vector3(a.x,a.y-f,a.z);if(_<=.567){const h=_/.567*Math.PI*2;m.x=a.x+Math.cos(h)*f,m.z=a.z+Math.sin(h)*f,m.y=a.y}else if(_<=.724){const B=(_-.567)/.157,h=u(B);m.lerpVectors(R,w,h)}else if(_<=.881){const B=(_-.724)/.157,r=u(B)*Math.PI;m.x=a.x+Math.sin(r)*f,m.y=a.y+Math.cos(r)*f,m.z=a.z}else{const B=(_-.881)/.119,h=u(B);m.lerpVectors(A,J,h)}return m},j=()=>{const{camera:_,controls:m}=l();if(!_||!m)return;s||(s=Date.now());const f=Date.now()-s,R=Math.min(f/c,1);if(R>=1){O();return}const w=H(R);_.position.copy(w),_.lookAt(a),m.target.copy(a),g=requestAnimationFrame(j)},U=()=>{if(t.value.length===0)return;const{camera:_,controls:m}=l();if(!_||!m)return;J.copy(_.position),G.copy(m.target);const f=new o.Box3;t.value.forEach(i=>{f.expandByObject(i)});const R=f.getSize(new o.Vector3);a=f.getCenter(new o.Vector3),p=Math.max(R.x,R.y,R.z)*1.2;const w=new o.Vector3(a.x+p*1.2,a.y,a.z);m.enabled=!1;const A=_.position.clone(),B=1e3,h=Date.now(),r=()=>{const i=Date.now()-h,d=Math.min(i/B,1),y=u(d);_.position.lerpVectors(A,w,y),_.lookAt(a),m.target.copy(a),d<1?requestAnimationFrame(r):(n.value=!0,s=null,j())};r()},O=()=>{n.value=!1,s=null,g&&(cancelAnimationFrame(g),g=null);const{controls:_}=l();_&&(_.enabled=!0,_.target.copy(G))};return{isAnimating:n,toggleAnimation:()=>{if(n.value){n.value=!1,s=null,g&&(cancelAnimationFrame(g),g=null);const{camera:_,controls:m}=l();if(!_||!m)return;m.enabled=!0;const f=_.position.clone(),R=m.target.clone(),w=1500,A=Date.now(),B=()=>{const h=Date.now()-A,r=Math.min(h/w,1),i=u(r);_.position.lerpVectors(f,J,i),m.target.lerpVectors(R,G,i),r<1&&requestAnimationFrame(B)};B()}else U()},startAnimation:U,stopAnimation:O}}function Yt(l,t){const n=e.ref(!1),s=e.ref("none");let c=[],J=[],G=new o.Box3,a=new o.Vector3;const p=()=>{c=[new o.Plane(new o.Vector3(1,0,0),0),new o.Plane(new o.Vector3(0,1,0),0),new o.Plane(new o.Vector3(0,0,1),0)]},g=()=>{G.makeEmpty(),t.value.forEach(E=>{G.expandByObject(E)}),a=G.getCenter(new o.Vector3)},u=E=>{const _=G.getSize(new o.Vector3);let m,f,R;E==="x"?(m=new o.PlaneGeometry(_.z*1.2,_.y*1.2),f=new o.Vector3(a.x,a.y,a.z),R=new o.Euler(0,Math.PI/2,0)):E==="y"?(m=new o.PlaneGeometry(_.x*1.2,_.z*1.2),f=new o.Vector3(a.x,a.y,a.z),R=new o.Euler(Math.PI/2,0,0)):E==="z"&&(m=new o.PlaneGeometry(_.x*1.2,_.y*1.2),f=new o.Vector3(a.x,a.y,a.z),R=new o.Euler(0,0,0));const w=new o.MeshPhongMaterial({color:8900331,transparent:!0,opacity:.3,side:o.DoubleSide,depthWrite:!1}),A=new o.Mesh(m,w);return A.position.copy(f),A.rotation.copy(R),A},H=()=>{if(j(),U(),s.value==="none")return;g();let E=null;if(s.value==="x"?(c[0].constant=-a.x,E=c[0]):s.value==="y"?(c[1].constant=-a.y,E=c[1]):s.value==="z"&&(c[2].constant=-a.z,E=c[2]),E){t.value.forEach(m=>{m.traverse(f=>{f.isMesh&&f.material&&(Array.isArray(f.material)?f.material.forEach(R=>{R.clippingPlanes=[E]}):f.material.clippingPlanes=[E])})});const{scene:_}=l();if(_){const m=u(s.value);_.add(m),J.push(m)}}},j=()=>{t.value.forEach(E=>{E.traverse(_=>{_.isMesh&&_.material&&(Array.isArray(_.material)?_.material.forEach(m=>{m.clippingPlanes=[]}):_.material.clippingPlanes=[])})})},U=()=>{const{scene:E}=l();E&&J.forEach(_=>{E.remove(_),_.geometry.dispose(),_.material.dispose()}),J=[]};return{isClipping:n,activeClippingAxis:s,toggleClipping:()=>{n.value=!n.value,n.value?(p(),t.value.length>0&&g()):(s.value="none",j(),U())},updateClippingPlanes:H,clearClippingPlanes:j,clearClippingMeshes:U}}const Zt=[{"J1_Joint(GP1)":-.003172089,"J2_Joint(GP1)":-.096027484,"J3_Joint(GP1)":-1.118475479,"J4_Joint(GP1)":1.57418324,"J5_Joint(GP1)":1.572865909,"J6_Joint(GP1)":-.549141112,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":0},{"J1_Joint(GP1)":-.003172089,"J2_Joint(GP1)":-.096027484,"J3_Joint(GP1)":-1.118475479,"J4_Joint(GP1)":1.57418324,"J5_Joint(GP1)":1.572865909,"J6_Joint(GP1)":-.549141112,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":0},{"J1_Joint(GP1)":-.051468453,"J2_Joint(GP1)":-.094548525,"J3_Joint(GP1)":-1.117172585,"J4_Joint(GP1)":1.615414534,"J5_Joint(GP1)":1.598024878,"J6_Joint(GP1)":-.548360986,"BendRotatePart_Joint(GP2)":.860623343,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":0},{"J1_Joint(GP1)":-.051468453,"J2_Joint(GP1)":-.094548525,"J3_Joint(GP1)":-1.117172585,"J4_Joint(GP1)":1.615414534,"J5_Joint(GP1)":1.598024878,"J6_Joint(GP1)":-.548360986,"BendRotatePart_Joint(GP2)":.860623343,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":0},{"J1_Joint(GP1)":-.054269136,"J2_Joint(GP1)":-.09438254,"J3_Joint(GP1)":-1.117026191,"J4_Joint(GP1)":1.617807288,"J5_Joint(GP1)":1.59948194,"J6_Joint(GP1)":-.548274538,"BendRotatePart_Joint(GP2)":.860623343,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":0},{"J1_Joint(GP1)":-.054269136,"J2_Joint(GP1)":-.09438254,"J3_Joint(GP1)":-1.117026191,"J4_Joint(GP1)":1.617807288,"J5_Joint(GP1)":1.59948194,"J6_Joint(GP1)":-.548274538,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":0},{"J1_Joint(GP1)":-.07106296,"J2_Joint(GP1)":-.093202686,"J3_Joint(GP1)":-1.115984624,"J4_Joint(GP1)":1.632161558,"J5_Joint(GP1)":1.608211995,"J6_Joint(GP1)":-.547662192,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-1.582839141},{"J1_Joint(GP1)":-.07106296,"J2_Joint(GP1)":-.093202686,"J3_Joint(GP1)":-1.115984624,"J4_Joint(GP1)":1.632161558,"J5_Joint(GP1)":1.608211995,"J6_Joint(GP1)":-.547662192,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":-1.582839141},{"J1_Joint(GP1)":-.15885978,"J2_Joint(GP1)":-.081876359,"J3_Joint(GP1)":-1.105898511,"J4_Joint(GP1)":1.707488829,"J5_Joint(GP1)":1.653550174,"J6_Joint(GP1)":-.541902553,"BendRotatePart_Joint(GP2)":1.584934783,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":-1.582839141},{"J1_Joint(GP1)":-.15885978,"J2_Joint(GP1)":-.081876359,"J3_Joint(GP1)":-1.105898511,"J4_Joint(GP1)":1.707488829,"J5_Joint(GP1)":1.653550174,"J6_Joint(GP1)":-.541902553,"BendRotatePart_Joint(GP2)":1.584934783,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-1.582839141},{"J1_Joint(GP1)":-.161596827,"J2_Joint(GP1)":-.081383753,"J3_Joint(GP1)":-1.105456248,"J4_Joint(GP1)":1.709847399,"J5_Joint(GP1)":1.654952777,"J6_Joint(GP1)":-.541656255,"BendRotatePart_Joint(GP2)":1.584934783,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-1.582839141},{"J1_Joint(GP1)":-.161596827,"J2_Joint(GP1)":-.081383753,"J3_Joint(GP1)":-1.105456248,"J4_Joint(GP1)":1.709847399,"J5_Joint(GP1)":1.654952777,"J6_Joint(GP1)":-.541656255,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-1.582839141},{"J1_Joint(GP1)":-.206647418,"J2_Joint(GP1)":-.072058188,"J3_Joint(GP1)":-1.097027028,"J4_Joint(GP1)":1.748782637,"J5_Joint(GP1)":1.677920661,"J6_Joint(GP1)":-.53705618,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-2.788687058},{"J1_Joint(GP1)":-.206647418,"J2_Joint(GP1)":-.072058188,"J3_Joint(GP1)":-1.097027028,"J4_Joint(GP1)":1.748782637,"J5_Joint(GP1)":1.677920661,"J6_Joint(GP1)":-.53705618,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":-2.788687058},{"J1_Joint(GP1)":-.222883715,"J2_Joint(GP1)":-.068132789,"J3_Joint(GP1)":-1.093446644,"J4_Joint(GP1)":1.762872336,"J5_Joint(GP1)":1.686139573,"J6_Joint(GP1)":-.535155089,"BendRotatePart_Joint(GP2)":.302813533,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":-2.788687058},{"J1_Joint(GP1)":-.222883715,"J2_Joint(GP1)":-.068132789,"J3_Joint(GP1)":-1.093446644,"J4_Joint(GP1)":1.762872336,"J5_Joint(GP1)":1.686139573,"J6_Joint(GP1)":-.535155089,"BendRotatePart_Joint(GP2)":.302813533,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-2.788687058},{"J1_Joint(GP1)":-.225553405,"J2_Joint(GP1)":-.067458613,"J3_Joint(GP1)":-1.092829796,"J4_Joint(GP1)":1.765192186,"J5_Joint(GP1)":1.687487837,"J6_Joint(GP1)":-.534830668,"BendRotatePart_Joint(GP2)":.302813533,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-2.788687058},{"J1_Joint(GP1)":-.225553405,"J2_Joint(GP1)":-.067458613,"J3_Joint(GP1)":-1.092829796,"J4_Joint(GP1)":1.765192186,"J5_Joint(GP1)":1.687487837,"J6_Joint(GP1)":-.534830668,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":-2.788687058},{"J1_Joint(GP1)":-.253794227,"J2_Joint(GP1)":-.059828421,"J3_Joint(GP1)":-1.085808974,"J4_Joint(GP1)":1.789788497,"J5_Joint(GP1)":1.701694229,"J6_Joint(GP1)":-.531201442,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.253794227,"J2_Joint(GP1)":-.059828421,"J3_Joint(GP1)":-1.085808974,"J4_Joint(GP1)":1.789788497,"J5_Joint(GP1)":1.701694229,"J6_Joint(GP1)":-.531201442,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.269664357,"J2_Joint(GP1)":-.055139299,"J3_Joint(GP1)":-1.081458321,"J4_Joint(GP1)":1.803657153,"J5_Joint(GP1)":1.709631958,"J6_Joint(GP1)":-.52900977,"BendRotatePart_Joint(GP2)":.302815131,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.269664357,"J2_Joint(GP1)":-.055139299,"J3_Joint(GP1)":-1.081458321,"J4_Joint(GP1)":1.803657153,"J5_Joint(GP1)":1.709631958,"J6_Joint(GP1)":-.52900977,"BendRotatePart_Joint(GP2)":.302815131,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.272271675,"J2_Joint(GP1)":-.05434119,"J3_Joint(GP1)":-1.080715087,"J4_Joint(GP1)":1.805938943,"J5_Joint(GP1)":1.710932883,"J6_Joint(GP1)":-.528639664,"BendRotatePart_Joint(GP2)":.302815131,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.272271675,"J2_Joint(GP1)":-.05434119,"J3_Joint(GP1)":-1.080715087,"J4_Joint(GP1)":1.805938943,"J5_Joint(GP1)":1.710932883,"J6_Joint(GP1)":-.528639664,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.666340342,"J2_Joint(GP1)":.165158009,"J3_Joint(GP1)":-.846100311,"J4_Joint(GP1)":2.1593725,"J5_Joint(GP1)":1.90543118,"J6_Joint(GP1)":-.458042565,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.666340342,"J2_Joint(GP1)":.165158009,"J3_Joint(GP1)":-.846100311,"J4_Joint(GP1)":2.1593725,"J5_Joint(GP1)":1.90543118,"J6_Joint(GP1)":-.458042565,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.676764437,"J2_Joint(GP1)":.174126178,"J3_Joint(GP1)":-.835263449,"J4_Joint(GP1)":2.168745148,"J5_Joint(GP1)":1.911070297,"J6_Joint(GP1)":-.456401397,"BendRotatePart_Joint(GP2)":.302813234,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.676764437,"J2_Joint(GP1)":.174126178,"J3_Joint(GP1)":-.835263449,"J4_Joint(GP1)":2.168745148,"J5_Joint(GP1)":1.911070297,"J6_Joint(GP1)":-.456401397,"BendRotatePart_Joint(GP2)":.302813234,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.678469051,"J2_Joint(GP1)":.175612656,"J3_Joint(GP1)":-.833458171,"J4_Joint(GP1)":2.170275986,"J5_Joint(GP1)":1.911999806,"J6_Joint(GP1)":-.456138025,"BendRotatePart_Joint(GP2)":.302813234,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.678469051,"J2_Joint(GP1)":.175612656,"J3_Joint(GP1)":-.833458171,"J4_Joint(GP1)":2.170275986,"J5_Joint(GP1)":1.911999806,"J6_Joint(GP1)":-.456138025,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":.352905596},{"J1_Joint(GP1)":-.696352039,"J2_Joint(GP1)":.191555012,"J3_Joint(GP1)":-.813935936,"J4_Joint(GP1)":2.186300561,"J5_Joint(GP1)":1.921886405,"J6_Joint(GP1)":-.453466278,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":3.49449825},{"J1_Joint(GP1)":-.696352039,"J2_Joint(GP1)":.191555012,"J3_Joint(GP1)":-.813935936,"J4_Joint(GP1)":2.186300561,"J5_Joint(GP1)":1.921886405,"J6_Joint(GP1)":-.453466278,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":3.49449825},{"J1_Joint(GP1)":-.706279886,"J2_Joint(GP1)":.200687848,"J3_Joint(GP1)":-.80262089,"J4_Joint(GP1)":2.195165367,"J5_Joint(GP1)":1.927490122,"J6_Joint(GP1)":-.452060238,"BendRotatePart_Joint(GP2)":.302814632,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":3.49449825},{"J1_Joint(GP1)":-.706279886,"J2_Joint(GP1)":.200687848,"J3_Joint(GP1)":-.80262089,"J4_Joint(GP1)":2.195165367,"J5_Joint(GP1)":1.927490122,"J6_Joint(GP1)":-.452060238,"BendRotatePart_Joint(GP2)":.302814632,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":3.49449825},{"J1_Joint(GP1)":-.707903161,"J2_Joint(GP1)":.202200891,"J3_Joint(GP1)":-.800737154,"J4_Joint(GP1)":2.196612452,"J5_Joint(GP1)":1.928414793,"J6_Joint(GP1)":-.45183595,"BendRotatePart_Joint(GP2)":.302814632,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":3.49449825},{"J1_Joint(GP1)":-.707903161,"J2_Joint(GP1)":.202200891,"J3_Joint(GP1)":-.800737154,"J4_Joint(GP1)":2.196612452,"J5_Joint(GP1)":1.928414793,"J6_Joint(GP1)":-.45183595,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":3.49449825},{"J1_Joint(GP1)":-.734200754,"J2_Joint(GP1)":.227518671,"J3_Joint(GP1)":-.768834774,"J4_Joint(GP1)":2.219949057,"J5_Joint(GP1)":1.943757592,"J6_Joint(GP1)":-.448441828,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":4.700346166},{"J1_Joint(GP1)":-.734200754,"J2_Joint(GP1)":.227518671,"J3_Joint(GP1)":-.768834774,"J4_Joint(GP1)":2.219949057,"J5_Joint(GP1)":1.943757592,"J6_Joint(GP1)":-.448441828,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":4.700346166},{"J1_Joint(GP1)":-.781149218,"J2_Joint(GP1)":.276839725,"J3_Joint(GP1)":-.704674666,"J4_Joint(GP1)":2.260965081,"J5_Joint(GP1)":1.973194737,"J6_Joint(GP1)":-.443707106,"BendRotatePart_Joint(GP2)":1.584933185,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":4.700346166},{"J1_Joint(GP1)":-.781149218,"J2_Joint(GP1)":.276839725,"J3_Joint(GP1)":-.704674666,"J4_Joint(GP1)":2.260965081,"J5_Joint(GP1)":1.973194737,"J6_Joint(GP1)":-.443707106,"BendRotatePart_Joint(GP2)":1.584933185,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":4.700346166},{"J1_Joint(GP1)":-.782563443,"J2_Joint(GP1)":.278415273,"J3_Joint(GP1)":-.702582574,"J4_Joint(GP1)":2.262184408,"J5_Joint(GP1)":1.974129872,"J6_Joint(GP1)":-.443595316,"BendRotatePart_Joint(GP2)":1.584933185,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":4.700346166},{"J1_Joint(GP1)":-.782563443,"J2_Joint(GP1)":.278415273,"J3_Joint(GP1)":-.702582574,"J4_Joint(GP1)":2.262184408,"J5_Joint(GP1)":1.974129872,"J6_Joint(GP1)":-.443595316,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":4.700346166},{"J1_Joint(GP1)":-.790970382,"J2_Joint(GP1)":.287898042,"J3_Joint(GP1)":-.689936686,"J4_Joint(GP1)":2.269409635,"J5_Joint(GP1)":1.979755278,"J6_Joint(GP1)":-.442972648,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.790970382,"J2_Joint(GP1)":.287898042,"J3_Joint(GP1)":-.689936686,"J4_Joint(GP1)":2.269409635,"J5_Joint(GP1)":1.979755278,"J6_Joint(GP1)":-.442972648,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.81430373,"J2_Joint(GP1)":.315316096,"J3_Joint(GP1)":-.652859101,"J4_Joint(GP1)":2.28923367,"J5_Joint(GP1)":1.996012131,"J6_Joint(GP1)":-.441647984,"BendRotatePart_Joint(GP2)":.860625939,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.81430373,"J2_Joint(GP1)":.315316096,"J3_Joint(GP1)":-.652859101,"J4_Joint(GP1)":2.28923367,"J5_Joint(GP1)":1.996012131,"J6_Joint(GP1)":-.441647984,"BendRotatePart_Joint(GP2)":.860625939,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.815624991,"J2_Joint(GP1)":.31691936,"J3_Joint(GP1)":-.650667784,"J4_Joint(GP1)":2.290345082,"J5_Joint(GP1)":1.9969632,"J6_Joint(GP1)":-.441592027,"BendRotatePart_Joint(GP2)":.860625939,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.815624991,"J2_Joint(GP1)":.31691936,"J3_Joint(GP1)":-.650667784,"J4_Joint(GP1)":2.290345082,"J5_Joint(GP1)":1.9969632,"J6_Joint(GP1)":-.441592027,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.856703221,"J2_Joint(GP1)":.369769111,"J3_Joint(GP1)":-.577053756,"J4_Joint(GP1)":2.324173006,"J5_Joint(GP1)":2.028430263,"J6_Joint(GP1)":-.441031864,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.856703221,"J2_Joint(GP1)":.369769111,"J3_Joint(GP1)":-.577053756,"J4_Joint(GP1)":2.324173006,"J5_Joint(GP1)":2.028430263,"J6_Joint(GP1)":-.441031864,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":0,"BendGuidePart_Joint(GP2)":0,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.856703221,"J2_Joint(GP1)":.369769111,"J3_Joint(GP1)":-.577053756,"J4_Joint(GP1)":2.324173006,"J5_Joint(GP1)":2.028430263,"J6_Joint(GP1)":-.441031864,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307},{"J1_Joint(GP1)":-.85790624,"J2_Joint(GP1)":.371411093,"J3_Joint(GP1)":-.574724957,"J4_Joint(GP1)":2.325139523,"J5_Joint(GP1)":2.029413042,"J6_Joint(GP1)":-.441053498,"BendRotatePart_Joint(GP2)":0,"BendMainPart_Joint(GP2)":-.05,"BendGuidePart_Joint(GP2)":-.015,"HolderRoate_Joint(GP3)":6.283185307}],$t={class:"panel-actions"},Kt=["disabled"],Xt={class:"panel-content"},Wt={key:0,class:"joints-list"},qt={class:"joint-info-row"},Qt={class:"joint-left"},te={class:"joint-name"},ee={class:"joint-range"},oe={class:"joint-type"},ne={key:0,class:"joint-control-row"},ie={class:"slider-container"},ae=["min","max","value","onInput","disabled"],se={class:"value-display"},re={class:"joint-value"},le={class:"unit"},ce={key:1,class:"empty-state"},de=1e3,he={__name:"jointPanel",props:{model:Object,scene:Object},setup(l){const t=l;e.ref(!0);const n=e.ref([]),s=e.ref(null),c=e.ref(!1),J=e.ref(null),G=Zt;G.length>0&&Object.keys(G[0]);const a=(h,r=!1)=>h==="revolute"?r?Math.PI:-Math.PI:h==="prismatic"?r?1:-1:0,p=h=>{if(!h||!h.joints)return console.warn("URDF模型没有关节信息"),[];const r=[];return Object.keys(h.joints).forEach(i=>{const d=h.joints[i];if(d._jointType==="fixed")return;const y=d.limit?{lower:d.limit.lower??a(d._jointType,!1),upper:d.limit.upper??a(d._jointType,!0)}:{lower:a(d._jointType,!1),upper:a(d._jointType,!0)};r.push({name:i,type:d._jointType||"unknown",limit:y,currentValue:d.angle||0,urdfJoint:d})}),r.sort((i,d)=>i.name.localeCompare(d.name))},g=(h,r)=>{const i=n.value.find(y=>y.name===h);if(!i)return;const d=parseFloat(r);if(i.limit){const y=Math.max(i.limit.lower,Math.min(i.limit.upper,d));i.currentValue=y}else i.currentValue=d;t.model&&t.model.setJointValue?t.model.setJointValue(h,i.currentValue):i.urdfJoint&&i.urdfJoint.setJointValue(i.currentValue)},u=h=>{h&&Object.keys(h).forEach(r=>{const i=h[r],d=n.value.find(y=>y.name===r);d&&(d.currentValue=i,t.model&&t.model.setJointValue?t.model.setJointValue(r,i):d.urdfJoint&&d.urdfJoint.setJointValue(i))})},H=(h,r,i)=>h+(r-h)*i,j=(h,r,i)=>{if(!h||!r)return h||r;const d={};return Object.keys(h).forEach(y=>{const M=h[y],x=r[y];d[y]=H(M,x||M,i)}),d},U=()=>{c.value?E():O()},O=()=>{if(G.length===0){console.warn("没有动画数据");return}c.value=!0;const h=G.length,r=60,i=de/r;let d=0,y=0;const M=()=>{if(!c.value)return;const x=d/r,T=G[y],D=G[y+1];if(D){const P=j(T,D,x);u(P)}else u(T);if(d++,d>=r&&(d=0,y++,y>=h-1)){E();return}J.value=setTimeout(M,i)};M()},E=()=>{c.value=!1,J.value&&(clearTimeout(J.value),J.value=null)},_=()=>{n.value.forEach(h=>{(h.type==="revolute"||h.type==="prismatic")&&g(h.name,0)})};e.watch(()=>t.model,h=>{h?n.value=p(h):n.value=[]},{immediate:!0});const m=()=>{!t.model||c.value||n.value.forEach(h=>{h.urdfJoint&&h.urdfJoint.angle!==void 0&&(h.currentValue=h.urdfJoint.angle)})},f=()=>{const h=()=>{m(),s.value=requestAnimationFrame(h)};h()},R=()=>{s.value&&(cancelAnimationFrame(s.value),s.value=null)};e.onMounted(()=>{f()}),e.onUnmounted(()=>{R(),E()});const w=(h,r,i,d={})=>{const M={...{segmentDuration:3,position:new o.Vector3(1.128,-.699,.378),tubeSegments:12},...d},x=[...h].reverse().map((C,V,N)=>V===N.length-1?{...C,c:0,r:0}:{...C,c:N[V+1].c,r:N[V+1].r});if(!t.scene)return;const T=(C,V)=>Math.abs(C)*Math.PI*V/180,D=[];for(let C=0;C<x.length;C++){const{y:V,b:N,c:Y,r:F}=x[C];if(D.push({type:"straight",length:V,segmentIndex:C,twist:N}),Y!==0&&F!==0){const K=T(Y,F);D.push({type:"bend",length:K,angle:Y,radius:F,segmentIndex:C})}}const P=(C=[])=>{const V=[];let N=new o.Vector3(0,0,0),Y=new o.Vector3(1,0,0),F=new o.Vector3(0,1,0),K=new o.Vector3(0,0,1);V.push(N.clone());for(let I=0;I<D.length;I++){const z=D[I];if(z.type==="straight"){if(z.twist!==0){const X=z.twist*Math.PI/180,Z=new o.Matrix4().makeRotationAxis(F,X);Y.applyMatrix4(Z),K.applyMatrix4(Z)}const q=z.length/1e3,Q=Math.max(8,Math.floor(z.length*.05));for(let X=1;X<=Q;X++){const Z=X/Q,tt=N.clone().add(F.clone().multiplyScalar(q*Z));V.push(tt)}N.add(F.clone().multiplyScalar(q))}else if(z.type==="bend"){const q=C[z.segmentIndex]||0,Q=z.angle*Math.PI/180,X=z.radius/1e3;if(q>0){const Z=N.clone().add(Y.clone().multiplyScalar(-X)),tt=Math.max(16,Math.floor(Math.abs(z.angle)/5));for(let lt=1;lt<=tt;lt++){const ft=lt/tt,gt=Q*q*ft,yt=new o.Matrix4().makeRotationAxis(K,gt),Pt=Y.clone().multiplyScalar(X);Pt.applyMatrix4(yt);const bt=Z.clone().add(Pt);V.push(bt)}const ot=Q*q,nt=new o.Matrix4().makeRotationAxis(K,ot),at=Y.clone().multiplyScalar(X);at.applyMatrix4(nt),N=Z.clone().add(at),Y.applyMatrix4(nt),F.applyMatrix4(nt)}else{const Z=z.length/1e3,tt=Math.max(8,Math.floor(z.length*.05));for(let ot=1;ot<=tt;ot++){const nt=ot/tt,at=N.clone().add(F.clone().multiplyScalar(Z*nt));V.push(at)}N.add(F.clone().multiplyScalar(Z))}}}const rt=new o.CatmullRomCurve3(V);return new o.TubeGeometry(rt,V.length*2,i/1e3,M.tubeSegments,!1)},$=new o.MeshPhongMaterial({color:11119017,shininess:60}),v=x.map(()=>0),mt=P(v),W=new o.Mesh(mt,$);W.position.copy(M.position),t.scene.add(W);const ht=x.map((C,V)=>C.c!==0&&C.r!==0?V:-1).filter(C=>C!==-1),et=[...ht].reverse(),Gt=Date.now(),_t=()=>{const V=(Date.now()-Gt)/1e3,N=Math.min(Math.floor(V/M.segmentDuration),et.length),Y=V%M.segmentDuration,F=Math.min(Y/M.segmentDuration,1),K=[...Array(x.length)].map(()=>0);for(let I=0;I<N;I++)K[et[I]]=1;N<et.length&&(K[et[N]]=F);try{const I=P(K);W.geometry.dispose(),W.geometry=I}catch(I){console.error("更新几何体失败:",I)}const rt=et.length*M.segmentDuration;if(V<rt)requestAnimationFrame(_t);else{const I=[...Array(x.length)].map((q,Q)=>ht.includes(Q)?1:0),z=P(I);W.geometry.dispose(),W.geometry=z}};return _t(),W},A=()=>{if(!t.scene)return;const h=[];t.scene.traverse(r=>{r.isMesh&&r.geometry&&r.geometry.type==="TubeGeometry"&&h.push(r)}),h.forEach(r=>{r.geometry.dispose(),r.material&&r.material.dispose(),t.scene.remove(r)})},B=()=>{A(),w([{y:88.61,b:0,c:90,r:8},{y:54.29,b:-90,c:90,r:8},{y:460.1,b:180,c:90,r:8},{y:48.95,b:-90,c:90,r:8},{y:27,b:0,c:0,r:0}],729,3.17,{segmentDuration:3,position:new o.Vector3(1.128,-.699,.378)})};return(h,r)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",$t,[e.createElementVNode("button",{onClick:U,class:"animate-btn"},e.toDisplayString(c.value?"停止动画":"开始动画"),1),e.createElementVNode("button",{onClick:_,disabled:c.value},"重置所有关节",8,Kt),e.createElementVNode("button",{onClick:B},"弯管"),e.createElementVNode("button",{onClick:A},"清理管子")]),e.createElementVNode("div",Xt,[n.value.length>0?(e.openBlock(),e.createElementBlock("div",Wt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,i=>{var d,y,M,x;return e.openBlock(),e.createElementBlock("div",{key:i.name,class:"joint-item"},[e.createElementVNode("div",qt,[e.createElementVNode("div",Qt,[e.createElementVNode("span",te,e.toDisplayString(i.name),1),e.createElementVNode("span",ee," ["+e.toDisplayString(((d=i.limit)==null?void 0:d.lower.toFixed(2))??(i.type==="revolute"?"-3.14":"-1.00"))+", "+e.toDisplayString(((y=i.limit)==null?void 0:y.upper.toFixed(2))??(i.type==="revolute"?"3.14":"1.00"))+"] ",1)]),e.createElementVNode("span",oe,e.toDisplayString(i.type),1)]),i.type==="revolute"||i.type==="prismatic"?(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("div",ie,[e.createElementVNode("input",{type:"range",min:((M=i.limit)==null?void 0:M.lower)??(i.type==="revolute"?-Math.PI:-1),max:((x=i.limit)==null?void 0:x.upper)??(i.type==="revolute"?Math.PI:1),step:.01,value:i.currentValue,onInput:T=>g(i.name,T.target.value),class:"joint-slider",disabled:c.value},null,40,ae)]),e.createElementVNode("div",se,[e.createElementVNode("span",re,e.toDisplayString(i.currentValue.toFixed(3)),1),e.createElementVNode("span",le,e.toDisplayString(i.type==="revolute"?"rad":"m"),1)])])):e.createCommentVNode("",!0)])}),128))])):(e.openBlock(),e.createElementBlock("div",ce,r[0]||(r[0]=[e.createElementVNode("p",null,"未检测到可控制的关节",-1)])))])],64))}},_e=it._export_sfc(he,[["__scopeId","data-v-54b54492"]]),Pe={class:"container"},ue=["xlink:href"];function Je(l,t,n,s,c,J){return e.openBlock(),e.createElementBlock("div",Pe,[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["svg-icon",[l.$attrs.class,l.spin&&"svg-icon-spin"]]),style:e.normalizeStyle(l.getStyle),"aria-hidden":"true"},[e.createElementVNode("use",{"xlink:href":l.symbolId},null,8,ue)],6))])}const k=it._export_sfc(o._sfc_main,[["render",Je],["__scopeId","data-v-7ece834c"]]),pe={class:"obj-viewer-container"},me={class:"buttonGroup-top"},Ge={class:"buttonGroup-topLeft"},fe={class:"buttonGroup-left"},ge={class:"buttonGroup-right"},ye={class:"left-panel"},be={class:"panel-header"},Me={key:1,class:"panel-content"},Ee={class:"radio-group"},we={class:"radio-label"},ve={class:"radio-label"},Re={class:"radio-label"},Be={class:"radio-label"},xe={class:"right-panel"},De={class:"panel-header"},Ve={key:0,class:"loading-overlay"},Se={__name:"threeModel",setup(l,{expose:t}){let n=null,s=!1;const c=e.ref(null),J=e.ref(!1),G=e.ref("");e.ref(!1),e.ref(!1);const a=e.ref(!1),p=e.ref(""),g=e.ref(!1),{currentModels:u,initThreeJS:H,handleResize:j,fitCameraToAllModels:U,getThreeJSObjects:O,clearAllModels:E,cleanup:_}=Ut(c),{isAnimating:m,stopAnimation:f}=Ft(O,u),{isClipping:R,activeClippingAxis:w,toggleClipping:A,updateClippingPlanes:B}=Yt(O,u),{addModelsFromUrls:h,loadModelByDefaultPath:r,urdfModel:i}=o.useModelLoader(O,u,J,G,E),d=async()=>s?Promise.resolve():new Promise(D=>{const P=()=>{s?D():requestAnimationFrame(P)};P()}),y=async(D,P)=>{try{await d(),m.value&&f(),R.value&&A();const $=await P(D);return U(),$}catch($){throw console.error("加载模型失败:",$),$}},M=async D=>y(D,h),x=async D=>y(D,r),T=D=>{a.value=!0,p.value=D,D==="剖面图"&&!R.value&&A()};return e.onMounted(async()=>{await e.nextTick();try{H(),n=O().scene,s=!0,window.addEventListener("resize",j)}catch(D){console.error("Three.js初始化失败:",D)}}),e.onBeforeUnmount(()=>{s=!1,window.removeEventListener("resize",j),m.value&&f(),_()}),t({addModelsFromUrls:M,loadModelByDefaultPath:x}),(D,P)=>{const $=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",pe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",me,[e.createVNode(k,{name:"guanjianjiexi",size:"34"}),e.createVNode(k,{name:"guanjiekongzhi",size:"34"}),e.createVNode(k,{name:"gongyishengcheng",size:"34"}),e.createVNode(k,{name:"buchangshezhi",size:"34"}),e.createVNode(k,{name:"shuchujiagongchengxu",size:"34"})]),e.createElementVNode("div",Ge,[e.createVNode(k,{name:"fangda",size:"24"}),e.createVNode(k,{name:"suoxiao",size:"24"}),e.createVNode(k,{name:"fangdazhichuangkou",size:"24"})]),e.createElementVNode("div",fe,[e.createVNode(k,{name:"jiegoushu",size:"24",onClick:P[0]||(P[0]=v=>T("场景树"))}),e.createVNode(k,{name:"donghuafangzhen",size:"24",onClick:P[1]||(P[1]=v=>T("剖面图"))}),e.createVNode(k,{name:"donghuafangzhen",size:"24",onClick:P[2]||(P[2]=v=>T("场景树3"))}),e.createVNode(k,{name:"donghuafangzhen",size:"24",onClick:P[3]||(P[3]=v=>T("场景4"))})]),e.createElementVNode("div",ge,[e.createVNode(k,{name:"donghuafangzhen",size:"24"}),e.createVNode(k,{name:"donghuafangzhen",size:"24"}),e.createVNode(k,{name:"guanjiekongzhi",size:"24",onClick:P[4]||(P[4]=v=>g.value=!0)}),e.createVNode(k,{name:"donghuafangzhen",size:"24"}),e.createVNode(k,{name:"donghuafangzhen",size:"24"}),e.createVNode(k,{name:"donghuafangzhen",size:"24"})]),e.withDirectives(e.createElementVNode("div",ye,[e.createElementVNode("div",be,[e.createElementVNode("span",null,e.toDisplayString(p.value),1),e.createElementVNode("span",{class:"close",onClick:P[5]||(P[5]=v=>a.value=!1)}," X ")]),e.createVNode($,{"max-height":"650px"},{default:e.withCtx(()=>[p.value==="场景树"?(e.openBlock(),e.createBlock(xt,{key:0,model:e.unref(i)},null,8,["model"])):e.createCommentVNode("",!0),p.value==="剖面图"?(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",Ee,[e.createElementVNode("label",we,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":P[6]||(P[6]=v=>e.isRef(w)?w.value=v:null),onChange:P[7]||(P[7]=(...v)=>e.unref(B)&&e.unref(B)(...v))},null,544),[[e.vModelRadio,e.unref(w)]]),P[15]||(P[15]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ve,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":P[8]||(P[8]=v=>e.isRef(w)?w.value=v:null),onChange:P[9]||(P[9]=(...v)=>e.unref(B)&&e.unref(B)(...v))},null,544),[[e.vModelRadio,e.unref(w)]]),P[16]||(P[16]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",Re,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":P[10]||(P[10]=v=>e.isRef(w)?w.value=v:null),onChange:P[11]||(P[11]=(...v)=>e.unref(B)&&e.unref(B)(...v))},null,544),[[e.vModelRadio,e.unref(w)]]),P[17]||(P[17]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",Be,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":P[12]||(P[12]=v=>e.isRef(w)?w.value=v:null),onChange:P[13]||(P[13]=(...v)=>e.unref(B)&&e.unref(B)(...v))},null,544),[[e.vModelRadio,e.unref(w)]]),P[18]||(P[18]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})],512),[[e.vShow,a.value]]),e.withDirectives(e.createElementVNode("div",xe,[e.createElementVNode("div",De,[P[19]||(P[19]=e.createElementVNode("span",null,e.toDisplayString("关节控制"),-1)),e.createElementVNode("span",{class:"close",onClick:P[14]||(P[14]=v=>g.value=!1)}," X ")]),e.createVNode($,{"max-height":"650px"},{default:e.withCtx(()=>[e.createVNode(_e,{model:e.unref(i),scene:e.unref(n)},null,8,["model","scene"])]),_:1})],512),[[e.vShow,g.value]]),J.value?(e.openBlock(),e.createElementBlock("div",Ve,[P[20]||(P[20]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(G.value),1)])):e.createCommentVNode("",!0)])}}},Te=it._export_sfc(Se,[["__scopeId","data-v-e7dd7d83"]]);exports.default=Te;