ss-component-new 1.1.429 → 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 (85) hide show
  1. package/dist/{array-C3OjTdFF.cjs → array-BE8kxwbF.cjs} +1 -1
  2. package/dist/{array-DriW7TrH.js → array-CmTW1wXQ.js} +1 -1
  3. package/dist/icons/svg/EyeFill.svg +1 -0
  4. package/dist/{index-BHxlvMv6.js → index-B3sv--5l.js} +10 -10
  5. package/dist/{index-CeMds4uE.cjs → index-B8ONEgpW.cjs} +1 -1
  6. package/dist/{index-C041luJT.cjs → index-BCFtIIf_.cjs} +1 -1
  7. package/dist/{index-B1X-bNE0.js → index-BWHERznY.js} +4 -4
  8. package/dist/{index-DAgE3WO9.cjs → index-BZkQ29Tz.cjs} +1 -1
  9. package/dist/{index-D9rAVZEL.cjs → index-B_AUqKy_.cjs} +1 -1
  10. package/dist/{index-o4WPwqzp.cjs → index-Bb7GoIJp.cjs} +2 -2
  11. package/dist/{index-DdLcYvE3.js → index-BiuhwvlL.js} +9 -9
  12. package/dist/{index-BGLizV4G.js → index-BnlhM9YS.js} +7 -7
  13. package/dist/{index-DjBjjDpg.js → index-BwhVhBYj.js} +5 -5
  14. package/dist/index-C-jjWrUl.cjs +1 -0
  15. package/dist/{index-X7EJLhQp.js → index-CMBrDaM5.js} +1 -1
  16. package/dist/{index-De1s3ea7.cjs → index-CNpklHzK.cjs} +1 -1
  17. package/dist/index-CONyMR2I.cjs +74 -0
  18. package/dist/{index-DuomA_Ys.js → index-CSj1osh5.js} +6 -6
  19. package/dist/{index-CLr3y5Du.js → index-CYOSbBn4.js} +212 -219
  20. package/dist/{index-DGnJNcjc.cjs → index-CjlMUufz.cjs} +1 -1
  21. package/dist/{index-Drc2BWLn.cjs → index-Clor83sA.cjs} +1 -1
  22. package/dist/{index-DB1AfPdQ.cjs → index-CqaFuVhy.cjs} +1 -1
  23. package/dist/{index-CrsymeXk.js → index-Cqd4dRu7.js} +4 -4
  24. package/dist/{index-exhk8lMr.js → index-CrtuDvMe.js} +1 -1
  25. package/dist/{index-D2PXGh3y.cjs → index-CsHPoVQL.cjs} +1 -1
  26. package/dist/{index-BDHFJwhX.js → index-CzfGrSpV.js} +7021 -7051
  27. package/dist/{index-Ci4dnyyZ.cjs → index-D2aIlMCu.cjs} +1 -1
  28. package/dist/{index-DErdQiE5.cjs → index-D3ah-UXX.cjs} +1 -1
  29. package/dist/{index-DMqZtCR1.cjs → index-D5JRjtWD.cjs} +1 -1
  30. package/dist/{index-B7NzplQm.cjs → index-D6iTzH06.cjs} +1 -1
  31. package/dist/{index-dpjmnZm7.js → index-DDoTCY3C.js} +5 -5
  32. package/dist/{index-BHO7rTdQ.js → index-DFilfUFX.js} +3 -3
  33. package/dist/{index-CaW2QXnl.cjs → index-DIxSv5u4.cjs} +1 -1
  34. package/dist/{index-oM_7BEoi.cjs → index-DOm1fXtU.cjs} +1 -1
  35. package/dist/{index-C5htghVN.js → index-DQq3rsff.js} +5 -5
  36. package/dist/{index-DpCi5S7b.cjs → index-DUPkZILz.cjs} +1 -1
  37. package/dist/{index-ByT2pf2G.js → index-DXtXtduX.js} +4 -4
  38. package/dist/{index-Cu9nFCcK.cjs → index-D_j7_Hn_.cjs} +1 -1
  39. package/dist/{index-BkvkvC9V.js → index-Daqdy9e9.js} +17274 -17247
  40. package/dist/{index-DOdaH5Dk.js → index-DeXnZk4X.js} +6 -6
  41. package/dist/{index-uSX5QLdo.js → index-Di1ajNKI.js} +4 -4
  42. package/dist/{index-F-6m4uLc.js → index-DkiBGvqU.js} +1 -1
  43. package/dist/{index-C4I9I7dr.js → index-DxCiQhlC.js} +2 -2
  44. package/dist/{index-DhsJZNDO.cjs → index-DxNyBY1w.cjs} +1 -1
  45. package/dist/{index-b6bi-mnI.cjs → index-DygfoHkC.cjs} +1 -1
  46. package/dist/{index-BNA4Hofc.js → index-EzZiR3ly.js} +4 -4
  47. package/dist/{index-BMTUQiR1.js → index-LoH8EwXA.js} +3 -3
  48. package/dist/{index-Nzu-Yg3L.cjs → index-N9Y_z5k_.cjs} +1 -1
  49. package/dist/{index-CRBAzfEs.cjs → index-PdwN7EaB.cjs} +1 -1
  50. package/dist/{index-DqlG2nHS.js → index-eH2F0oMQ.js} +3 -3
  51. package/dist/{index-AFInDriS.cjs → index-gXA0eS6O.cjs} +13 -13
  52. package/dist/{index-BGNfD1q7.cjs → index-o5dof3CA.cjs} +1 -1
  53. package/dist/{index-BEBs6lDF.js → index-pvjM6t0d.js} +6 -6
  54. package/dist/{index-1lEb6AxE.js → index-qEFkFDy8.js} +7 -7
  55. package/dist/{index-d_3spDmN.js → index-uatggqnf.js} +5 -5
  56. package/dist/{index.vue_vue_type_script_setup_true_lang-CQS0yIXC.cjs → index.vue_vue_type_script_setup_true_lang-EaaJleWP.cjs} +1 -1
  57. package/dist/{index.vue_vue_type_script_setup_true_lang-r5ntXx1H.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-BcnUrtwr.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-Bw_ydbnW.cjs} +58 -58
  59. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DhjhVvbJ.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CClJxB6F.js} +6849 -6849
  60. package/dist/{index.vue_vue_type_style_index_0_scoped_ed9fe0f5_lang-B95fnBYd.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-_nLEVa23.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-Dz-Choxe.js → login-B520hsEu.js} +1 -1
  65. package/dist/{login-4CQsNYqj.cjs → login-BMAi9yYX.cjs} +1 -1
  66. package/dist/{main-D4TIX5ZJ.js → main-Dpbg9Pxc.js} +6 -6
  67. package/dist/{main-Dr2n-t77.cjs → main-yzKa6bxy.cjs} +1 -1
  68. package/dist/{menu-DRqy2FlY.cjs → menu-BAEUpxbd.cjs} +8 -8
  69. package/dist/{menu-C47R8xaz.js → menu-qAL8FiSW.js} +5 -3
  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-DC6dUe7Z.js → threeModel-ClGUp5fG.js} +628 -752
  76. package/dist/threeModel-CxKWxMlL.cjs +1 -0
  77. package/dist/{threeModel.vue_vue_type_style_index_0_scoped_e7dd7d83_lang-P-VgKxw9.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-DHvoNEJo.js → threeModel.vue_vue_type_style_index_0_scoped_3e87dec6_lang-DYhzYEGg.js} +4567 -5349
  79. package/package.json +1 -1
  80. package/public/icons/svg/EyeFill.svg +1 -0
  81. package/dist/index-D5QWCaxA.cjs +0 -87
  82. package/dist/index-DsAxFIrB.cjs +0 -1
  83. package/dist/index.vue_vue_type_style_index_0_scoped_7ee96c6e_lang-B9DK4OqF.js +0 -1929
  84. package/dist/index.vue_vue_type_style_index_0_scoped_7ee96c6e_lang-CBxAbUn1.cjs +0 -1
  85. package/dist/threeModel-CiX5oIo9.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n=require("./threeModel.vue_vue_type_style_index_0_scoped_3e87dec6_lang-BOT5Tivd.cjs"),j=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),lt={class:"tree-container"},ct=e.defineComponent({__name:"index",props:{treeData:Array,expand:{type:Boolean,default:!1}},emits:["nodeClick"],setup(a,{emit:t}){const o=t,i=a,d={children:"children",label:"label"},m=l=>{o("nodeClick",l)};return(l,r)=>{const g=e.resolveComponent("el-tree");return e.openBlock(),e.createElementBlock("div",lt,[e.createVNode(g,{data:i==null?void 0:i.treeData,props:d,"default-expand-all":a.expand,onNodeClick:m},null,8,["data","default-expand-all"])])}}}),dt=j._export_sfc(ct,[["__scopeId","data-v-b4bd4658"]]),ht={class:"panel-content"},_t=e.defineComponent({__name:"robotMenu",props:{model:Object},setup(a){const t=a,o=e.ref([]),i=(l,r=0)=>{const g=[];return Array.isArray(l)&&(l==null?void 0:l.length)>0&&l.forEach(h=>{if(!(h!=null&&h.isMesh)&&((h==null?void 0:h.type)==="URDFJoint"||(h==null?void 0:h.type)==="URDFLink")){const R={name:h==null?void 0:h.name,label:h==null?void 0:h.name,show:!0,level:r+1,isPenultimate:!1,type:h==null?void 0:h.type,id:h==null?void 0:h.id,limit:(h==null?void 0:h.limit)??"",children:i(h==null?void 0:h.children,r+1),path:h==null?void 0:h.name};g.push(R)}}),g},d=l=>l?[{name:l==null?void 0:l.name,label:l==null?void 0:l.name,show:!0,level:1,isPenultimate:!1,type:l==null?void 0:l.type,id:l==null?void 0:l.id,limit:(l==null?void 0:l.limit)??"",children:i(l==null?void 0:l.children,1),path:l==null?void 0:l.name}]:[],m=e.computed(()=>t!=null&&t.model?d(t.model):[]);return e.watch(m,l=>{o.value=JSON.parse(JSON.stringify(l))},{immediate:!0}),(l,r)=>(e.openBlock(),e.createElementBlock("div",ht,[e.createVNode(dt,{treeData:o.value,expand:!0},null,8,["treeData"])]))}}),Pt=j._export_sfc(_t,[["__scopeId","data-v-b1177706"]]),W={type:"change"},Y={type:"start"},Q={type:"end"},U=new n.Ray,q=new n.Plane,Jt=Math.cos(70*n.MathUtils.DEG2RAD),x=new n.Vector3,k=2*Math.PI,M={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},F=1e-6;class ut extends n.Controls{constructor(t,o=null){super(t,o),this.state=M.NONE,this.target=new n.Vector3,this.cursor=new n.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:n.MOUSE.ROTATE,MIDDLE:n.MOUSE.DOLLY,RIGHT:n.MOUSE.PAN},this.touches={ONE:n.TOUCH.ROTATE,TWO:n.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 n.Vector3,this._lastQuaternion=new n.Quaternion,this._lastTargetPosition=new n.Vector3,this._quat=new n.Quaternion().setFromUnitVectors(t.up,new n.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new n.Spherical,this._sphericalDelta=new n.Spherical,this._scale=1,this._panOffset=new n.Vector3,this._rotateStart=new n.Vector2,this._rotateEnd=new n.Vector2,this._rotateDelta=new n.Vector2,this._panStart=new n.Vector2,this._panEnd=new n.Vector2,this._panDelta=new n.Vector2,this._dollyStart=new n.Vector2,this._dollyEnd=new n.Vector2,this._dollyDelta=new n.Vector2,this._dollyDirection=new n.Vector3,this._mouse=new n.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=mt.bind(this),this._onPointerDown=pt.bind(this),this._onPointerUp=Gt.bind(this),this._onContextMenu=vt.bind(this),this._onMouseWheel=yt.bind(this),this._onKeyDown=bt.bind(this),this._onTouchStart=Mt.bind(this),this._onTouchMove=Et.bind(this),this._onMouseDown=ft.bind(this),this._onMouseMove=gt.bind(this),this._interceptControlDown=wt.bind(this),this._interceptControlUp=Bt.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(W),this.update(),this.state=M.NONE}update(t=null){const o=this.object.position;x.copy(o).sub(this.target),x.applyQuaternion(this._quat),this._spherical.setFromVector3(x),this.autoRotate&&this.state===M.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 i=this.minAzimuthAngle,d=this.maxAzimuthAngle;isFinite(i)&&isFinite(d)&&(i<-Math.PI?i+=k:i>Math.PI&&(i-=k),d<-Math.PI?d+=k:d>Math.PI&&(d-=k),i<=d?this._spherical.theta=Math.max(i,Math.min(d,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(i+d)/2?Math.max(i,this._spherical.theta):Math.min(d,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 m=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const l=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),m=l!=this._spherical.radius}if(x.setFromSpherical(this._spherical),x.applyQuaternion(this._quatInverse),o.copy(this.target).add(x),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 l=null;if(this.object.isPerspectiveCamera){const r=x.length();l=this._clampDistance(r*this._scale);const g=r-l;this.object.position.addScaledVector(this._dollyDirection,g),this.object.updateMatrixWorld(),m=!!g}else if(this.object.isOrthographicCamera){const r=new n.Vector3(this._mouse.x,this._mouse.y,0);r.unproject(this.object);const g=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),m=g!==this.object.zoom;const h=new n.Vector3(this._mouse.x,this._mouse.y,0);h.unproject(this.object),this.object.position.sub(h).add(r),this.object.updateMatrixWorld(),l=x.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;l!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(l).add(this.object.position):(U.origin.copy(this.object.position),U.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(U.direction))<Jt?this.object.lookAt(this.target):(q.setFromNormalAndCoplanarPoint(this.object.up,this.target),U.intersectPlane(q,this.target))))}else if(this.object.isOrthographicCamera){const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),l!==this.object.zoom&&(this.object.updateProjectionMatrix(),m=!0)}return this._scale=1,this._performCursorZoom=!1,m||this._lastPosition.distanceToSquared(this.object.position)>F||8*(1-this._lastQuaternion.dot(this.object.quaternion))>F||this._lastTargetPosition.distanceToSquared(this.target)>F?(this.dispatchEvent(W),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?k/60*this.autoRotateSpeed*t:k/60/60*this.autoRotateSpeed}_getZoomScale(t){const o=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*o)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,o){x.setFromMatrixColumn(o,0),x.multiplyScalar(-t),this._panOffset.add(x)}_panUp(t,o){this.screenSpacePanning===!0?x.setFromMatrixColumn(o,1):(x.setFromMatrixColumn(o,0),x.crossVectors(this.object.up,x)),x.multiplyScalar(t),this._panOffset.add(x)}_pan(t,o){const i=this.domElement;if(this.object.isPerspectiveCamera){const d=this.object.position;x.copy(d).sub(this.target);let m=x.length();m*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*m/i.clientHeight,this.object.matrix),this._panUp(2*o*m/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(o*(this.object.top-this.object.bottom)/this.object.zoom/i.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,o){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const i=this.domElement.getBoundingClientRect(),d=t-i.left,m=o-i.top,l=i.width,r=i.height;this._mouse.x=d/l*2-1,this._mouse.y=-(m/r)*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 o=this.domElement;this._rotateLeft(k*this._rotateDelta.x/o.clientHeight),this._rotateUp(k*this._rotateDelta.y/o.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 o=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(k*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),o=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-k*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),o=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(k*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),o=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-k*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),o=!0;break}o&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const o=this._getSecondPointerPosition(t),i=.5*(t.pageX+o.x),d=.5*(t.pageY+o.y);this._rotateStart.set(i,d)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const o=this._getSecondPointerPosition(t),i=.5*(t.pageX+o.x),d=.5*(t.pageY+o.y);this._panStart.set(i,d)}}_handleTouchStartDolly(t){const o=this._getSecondPointerPosition(t),i=t.pageX-o.x,d=t.pageY-o.y,m=Math.sqrt(i*i+d*d);this._dollyStart.set(0,m)}_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 i=this._getSecondPointerPosition(t),d=.5*(t.pageX+i.x),m=.5*(t.pageY+i.y);this._rotateEnd.set(d,m)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const o=this.domElement;this._rotateLeft(k*this._rotateDelta.x/o.clientHeight),this._rotateUp(k*this._rotateDelta.y/o.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const o=this._getSecondPointerPosition(t),i=.5*(t.pageX+o.x),d=.5*(t.pageY+o.y);this._panEnd.set(i,d)}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 o=this._getSecondPointerPosition(t),i=t.pageX-o.x,d=t.pageY-o.y,m=Math.sqrt(i*i+d*d);this._dollyEnd.set(0,m),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 l=(t.pageX+o.x)*.5,r=(t.pageY+o.y)*.5;this._updateZoomParameters(l,r)}_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 o=0;o<this._pointers.length;o++)if(this._pointers[o]==t.pointerId){this._pointers.splice(o,1);return}}_isTrackingPointer(t){for(let o=0;o<this._pointers.length;o++)if(this._pointers[o]==t.pointerId)return!0;return!1}_trackPointer(t){let o=this._pointerPositions[t.pointerId];o===void 0&&(o=new n.Vector2,this._pointerPositions[t.pointerId]=o),o.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const o=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[o]}_customWheelEvent(t){const o=t.deltaMode,i={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(o){case 1:i.deltaY*=16;break;case 2:i.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(i.deltaY*=10),i}}function pt(a){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(a.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(a)&&(this._addPointer(a),a.pointerType==="touch"?this._onTouchStart(a):this._onMouseDown(a)))}function mt(a){this.enabled!==!1&&(a.pointerType==="touch"?this._onTouchMove(a):this._onMouseMove(a))}function Gt(a){switch(this._removePointer(a),this._pointers.length){case 0:this.domElement.releasePointerCapture(a.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(Q),this.state=M.NONE;break;case 1:const t=this._pointers[0],o=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:o.x,pageY:o.y});break}}function ft(a){let t;switch(a.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 n.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(a),this.state=M.DOLLY;break;case n.MOUSE.ROTATE:if(a.ctrlKey||a.metaKey||a.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(a),this.state=M.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(a),this.state=M.ROTATE}break;case n.MOUSE.PAN:if(a.ctrlKey||a.metaKey||a.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(a),this.state=M.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(a),this.state=M.PAN}break;default:this.state=M.NONE}this.state!==M.NONE&&this.dispatchEvent(Y)}function gt(a){switch(this.state){case M.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(a);break;case M.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(a);break;case M.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(a);break}}function yt(a){this.enabled===!1||this.enableZoom===!1||this.state!==M.NONE||(a.preventDefault(),this.dispatchEvent(Y),this._handleMouseWheel(this._customWheelEvent(a)),this.dispatchEvent(Q))}function bt(a){this.enabled!==!1&&this._handleKeyDown(a)}function Mt(a){switch(this._trackPointer(a),this._pointers.length){case 1:switch(this.touches.ONE){case n.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(a),this.state=M.TOUCH_ROTATE;break;case n.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(a),this.state=M.TOUCH_PAN;break;default:this.state=M.NONE}break;case 2:switch(this.touches.TWO){case n.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(a),this.state=M.TOUCH_DOLLY_PAN;break;case n.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(a),this.state=M.TOUCH_DOLLY_ROTATE;break;default:this.state=M.NONE}break;default:this.state=M.NONE}this.state!==M.NONE&&this.dispatchEvent(Y)}function Et(a){switch(this._trackPointer(a),this.state){case M.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(a),this.update();break;case M.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(a),this.update();break;case M.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(a),this.update();break;case M.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(a),this.update();break;default:this.state=M.NONE}}function vt(a){this.enabled!==!1&&a.preventDefault()}function wt(a){a.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Bt(a){a.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Rt(a){let t=null,o=null,i=null,d=null,m=null,l=null,r=null,g=null;const h=e.ref([]),R=e.ref(new n.Vector3),T=e.ref(new n.Vector3),S=()=>{if(!a.value)return;t=new n.Scene,t.background=new n.Color(15790320);const c=a.value;o=new n.PerspectiveCamera(75,c.clientWidth/c.clientHeight,.1,1e4),o.position.set(8,-8,6),o.up.set(0,0,1),o.lookAt(0,0,0),i=new n.WebGLRenderer({antialias:!0,alpha:!0}),i.setSize(c.clientWidth,c.clientHeight),i.localClippingEnabled=!0,i.shadowMap.enabled=!0,i.shadowMap.type=n.PCFSoftShadowMap,i.toneMapping=n.ACESFilmicToneMapping,i.toneMappingExposure=1,i.outputColorSpace=n.SRGBColorSpace,c.appendChild(i.domElement),d=new ut(o,i.domElement),d.enableDamping=!0,d.dampingFactor=.05,d.mouseButtons={LEFT:n.MOUSE.ROTATE,MIDDLE:n.MOUSE.PAN,RIGHT:null},d.panSpeed=.7,m=new n.Xe(o,i,{container:c,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"}}),m.attachControls(d),E(),_()},N=(c,s)=>{r&&(t.remove(r),r.dispose()),g&&(t.remove(g),g.geometry.dispose(),g.material.dispose());const b=Math.min(Math.max(Math.floor(c/20),30),40);r=new n.GridHelper(c,b,13421772,14540253),r.rotateX(Math.PI/2),r.position.copy(s),t.add(r);const w=new n.PlaneGeometry(c,c),C=new n.ShadowMaterial({opacity:.3,color:0});g=new n.Mesh(w,C),g.position.copy(s),g.position.z-=.01,g.receiveShadow=!0,t.add(g)},A=()=>{if(h.value.length===0)return;const c=new n.Box3;h.value.forEach(z=>{c.expandByObject(z)});const s=c.getSize(new n.Vector3),b=c.getCenter(new n.Vector3),w=Math.max(s.x,s.y,s.z),C=Math.max(w*8,50),O=new n.Vector3(b.x,b.y,c.min.z);N(C,O)},E=()=>{const c=new n.AmbientLight(4210752,.6);t.add(c);const s=new n.DirectionalLight(16777215,2);s.position.set(10,10,8),s.castShadow=!0,s.shadow.mapSize.width=4096,s.shadow.mapSize.height=4096,s.shadow.camera.near=.5,s.shadow.camera.far=50,s.shadow.camera.left=-50,s.shadow.camera.right=50,s.shadow.camera.top=50,s.shadow.camera.bottom=-50,t.add(s);const b=new n.DirectionalLight(16777215,.8);b.position.set(-8,-8,6),t.add(b);const w=new n.DirectionalLight(16777215,.6);w.position.set(0,-15,2),t.add(w);const C=new n.HemisphereLight(16777215,4473924,.8);t.add(C);const O=new n.PointLight(16777215,1,50);O.position.set(15,15,15),t.add(O);const z=new n.PointLight(16777215,.5,50);z.position.set(-15,-15,15),t.add(z)},_=()=>{l=requestAnimationFrame(_),d&&d.update(),i&&t&&o&&i.render(t,o),m&&m.render()},G=c=>{["map","normalMap","bumpMap","roughnessMap","metalnessMap","emissiveMap","specularMap","envMap","lightMap","aoMap","displacementMap"].forEach(b=>{c[b]&&c[b].dispose&&c[b].dispose()}),c.dispose&&c.dispose()},y=c=>{c==null||c.traverse(s=>{s.geometry&&s.geometry.dispose(),s.material&&(Array.isArray(s.material)?s.material.forEach(b=>{G(b)}):G(s.material))})};return{currentModels:h,initialCameraPosition:R,initialTargetPosition:T,initThreeJS:S,handleResize:()=>{if(!a.value||!o||!i||!m)return;const c=a.value,s=c.clientWidth,b=c.clientHeight;o.aspect=s/b,o.updateProjectionMatrix(),i.setSize(s,b),m.update()},fitCameraToAllModels:()=>{if(!o||!d||h.value.length===0)return;const c=new n.Box3;h.value.forEach(z=>{c.expandByObject(z)});const s=c.getSize(new n.Vector3),b=c.getCenter(new n.Vector3),C=Math.max(s.x,s.y,s.z)*.8,O=new n.Vector3(b.x+C,b.y-C,b.z+C);o.position.copy(O),o.lookAt(b),d.target.copy(b),d.update(),R.value.copy(O),T.value.copy(b),A()},getThreeJSObjects:()=>({scene:t,camera:o,renderer:i,controls:d,gizmo:m}),clearAllModels:()=>{if(!t)return;h.value.forEach(s=>{t.remove(s),y(s)});const c=[];t.children.forEach(s=>{!s.isLight&&!s.isCamera&&s.type!=="GridHelper"&&s!==g&&c.push(s)}),c.forEach(s=>{t.remove(s),y(s)}),h.value=[],A()},cleanup:()=>{l&&cancelAnimationFrame(l),r&&r.dispose(),g&&(g.geometry.dispose(),g.material.dispose()),i&&i.dispose(),d&&d.dispose(),m&&m.dispose()},updateGridForModels:A}}function Dt(a,t){const o=e.ref(!1);let i=null,d=12700,m=new n.Vector3,l=new n.Vector3,r=new n.Vector3,g=0,h=null;const R=_=>_<.5?4*_*_*_:1-Math.pow(-2*_+2,3)/2,T=_=>{const G=new n.Vector3,y=g*1.2,B=new n.Vector3(r.x+y,r.y,r.z),J=new n.Vector3(r.x,r.y+y,r.z),f=new n.Vector3(r.x,r.y-y,r.z);if(_<=.567){const p=_/.567*Math.PI*2;G.x=r.x+Math.cos(p)*y,G.z=r.z+Math.sin(p)*y,G.y=r.y}else if(_<=.724){const P=(_-.567)/.157,p=R(P);G.lerpVectors(B,J,p)}else if(_<=.881){const P=(_-.724)/.157,c=R(P)*Math.PI;G.x=r.x+Math.sin(c)*y,G.y=r.y+Math.cos(c)*y,G.z=r.z}else{const P=(_-.881)/.119,p=R(P);G.lerpVectors(f,m,p)}return G},S=()=>{const{camera:_,controls:G}=a();if(!_||!G)return;i||(i=Date.now());const y=Date.now()-i,B=Math.min(y/d,1);if(B>=1){A();return}const J=T(B);_.position.copy(J),_.lookAt(r),G.target.copy(r),h=requestAnimationFrame(S)},N=()=>{if(t.value.length===0)return;const{camera:_,controls:G}=a();if(!_||!G)return;m.copy(_.position),l.copy(G.target);const y=new n.Box3;t.value.forEach(s=>{y.expandByObject(s)});const B=y.getSize(new n.Vector3);r=y.getCenter(new n.Vector3),g=Math.max(B.x,B.y,B.z)*1.2;const J=new n.Vector3(r.x+g*1.2,r.y,r.z);G.enabled=!1;const f=_.position.clone(),P=1e3,p=Date.now(),c=()=>{const s=Date.now()-p,b=Math.min(s/P,1),w=R(b);_.position.lerpVectors(f,J,w),_.lookAt(r),G.target.copy(r),b<1?requestAnimationFrame(c):(o.value=!0,i=null,S())};c()},A=()=>{o.value=!1,i=null,h&&(cancelAnimationFrame(h),h=null);const{controls:_}=a();_&&(_.enabled=!0,_.target.copy(l))};return{isAnimating:o,toggleAnimation:()=>{if(o.value){o.value=!1,i=null,h&&(cancelAnimationFrame(h),h=null);const{camera:_,controls:G}=a();if(!_||!G)return;G.enabled=!0;const y=_.position.clone(),B=G.target.clone(),J=1500,f=Date.now(),P=()=>{const p=Date.now()-f,c=Math.min(p/J,1),s=R(c);_.position.lerpVectors(y,m,s),G.target.lerpVectors(B,l,s),c<1&&requestAnimationFrame(P)};P()}else N()},startAnimation:N,stopAnimation:A}}function xt(a,t){const o=e.ref(!1),i=e.ref("none");let d=[],m=[],l=new n.Box3,r=new n.Vector3;const g=()=>{d=[new n.Plane(new n.Vector3(1,0,0),0),new n.Plane(new n.Vector3(0,1,0),0),new n.Plane(new n.Vector3(0,0,1),0)]},h=()=>{l.makeEmpty(),t.value.forEach(E=>{l.expandByObject(E)}),r=l.getCenter(new n.Vector3)},R=E=>{const _=l.getSize(new n.Vector3);let G,y,B;E==="x"?(G=new n.PlaneGeometry(_.z*1.2,_.y*1.2),y=new n.Vector3(r.x,r.y,r.z),B=new n.Euler(0,Math.PI/2,0)):E==="y"?(G=new n.PlaneGeometry(_.x*1.2,_.z*1.2),y=new n.Vector3(r.x,r.y,r.z),B=new n.Euler(Math.PI/2,0,0)):E==="z"&&(G=new n.PlaneGeometry(_.x*1.2,_.y*1.2),y=new n.Vector3(r.x,r.y,r.z),B=new n.Euler(0,0,0));const J=new n.MeshPhongMaterial({color:8900331,transparent:!0,opacity:.3,side:n.DoubleSide,depthWrite:!1}),f=new n.Mesh(G,J);return f.position.copy(y),f.rotation.copy(B),f},T=()=>{if(S(),N(),i.value==="none")return;h();let E=null;if(i.value==="x"?(d[0].constant=-r.x,E=d[0]):i.value==="y"?(d[1].constant=-r.y,E=d[1]):i.value==="z"&&(d[2].constant=-r.z,E=d[2]),E){t.value.forEach(G=>{G.traverse(y=>{y.isMesh&&y.material&&(Array.isArray(y.material)?y.material.forEach(B=>{B.clippingPlanes=[E]}):y.material.clippingPlanes=[E])})});const{scene:_}=a();if(_){const G=R(i.value);_.add(G),m.push(G)}}},S=()=>{t.value.forEach(E=>{E.traverse(_=>{_.isMesh&&_.material&&(Array.isArray(_.material)?_.material.forEach(G=>{G.clippingPlanes=[]}):_.material.clippingPlanes=[])})})},N=()=>{const{scene:E}=a();E&&m.forEach(_=>{E.remove(_),_.geometry.dispose(),_.material.dispose()}),m=[]};return{isClipping:o,activeClippingAxis:i,toggleClipping:()=>{o.value=!o.value,o.value?(g(),t.value.length>0&&h()):(i.value="none",S(),N())},updateClippingPlanes:T,clearClippingPlanes:S,clearClippingMeshes:N}}const Vt=[{"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}],St={class:"panel-actions"},Tt=["disabled"],Ct={class:"panel-content"},kt={key:0,class:"joints-list"},Nt={class:"joint-info-row"},At={class:"joint-left"},Ot={class:"joint-name"},zt={class:"joint-range"},Lt={class:"joint-type"},Ht={key:0,class:"joint-control-row"},jt={class:"slider-container"},It=["min","max","value","onInput","disabled"],Ut={class:"value-display"},Ft={class:"joint-value"},Yt={class:"unit"},Zt={key:1,class:"empty-state"},$t=1e3,Kt={__name:"jointPanel",props:{model:Object,scene:Object},setup(a){const t=a;e.ref(!0);const o=e.ref([]),i=e.ref(null),d=e.ref(!1),m=e.ref(null),l=Vt;l.length>0&&Object.keys(l[0]);const r=(J,f=!1)=>J==="revolute"?f?Math.PI:-Math.PI:J==="prismatic"?f?1:-1:0,g=J=>{if(!J||!J.joints)return console.warn("URDF模型没有关节信息"),[];const f=[];return Object.keys(J.joints).forEach(P=>{const p=J.joints[P];if(p._jointType==="fixed")return;const c=p.limit?{lower:p.limit.lower??r(p._jointType,!1),upper:p.limit.upper??r(p._jointType,!0)}:{lower:r(p._jointType,!1),upper:r(p._jointType,!0)};f.push({name:P,type:p._jointType||"unknown",limit:c,currentValue:p.angle||0,urdfJoint:p})}),f.sort((P,p)=>P.name.localeCompare(p.name))},h=(J,f)=>{const P=o.value.find(c=>c.name===J);if(!P)return;const p=parseFloat(f);if(P.limit){const c=Math.max(P.limit.lower,Math.min(P.limit.upper,p));P.currentValue=c}else P.currentValue=p;t.model&&t.model.setJointValue?t.model.setJointValue(J,P.currentValue):P.urdfJoint&&P.urdfJoint.setJointValue(P.currentValue)},R=J=>{J&&Object.keys(J).forEach(f=>{const P=J[f],p=o.value.find(c=>c.name===f);p&&(p.currentValue=P,t.model&&t.model.setJointValue?t.model.setJointValue(f,P):p.urdfJoint&&p.urdfJoint.setJointValue(P))})},T=(J,f,P)=>J+(f-J)*P,S=(J,f,P)=>{if(!J||!f)return J||f;const p={};return Object.keys(J).forEach(c=>{const s=J[c],b=f[c];p[c]=T(s,b||s,P)}),p},N=()=>{d.value?E():A()},A=()=>{if(l.length===0){console.warn("没有动画数据");return}d.value=!0;const J=l.length,f=60,P=$t/f;let p=0,c=0;const s=()=>{if(!d.value)return;const b=p/f,w=l[c],C=l[c+1];if(C){const O=S(w,C,b);R(O)}else R(w);if(p++,p>=f&&(p=0,c++,c>=J-1)){E();return}m.value=setTimeout(s,P)};s()},E=()=>{d.value=!1,m.value&&(clearTimeout(m.value),m.value=null)},_=()=>{o.value.forEach(J=>{(J.type==="revolute"||J.type==="prismatic")&&h(J.name,0)})};e.watch(()=>t.model,J=>{J?o.value=g(J):o.value=[]},{immediate:!0});const G=()=>{!t.model||d.value||o.value.forEach(J=>{J.urdfJoint&&J.urdfJoint.angle!==void 0&&(J.currentValue=J.urdfJoint.angle)})},y=()=>{const J=()=>{G(),i.value=requestAnimationFrame(J)};J()},B=()=>{i.value&&(cancelAnimationFrame(i.value),i.value=null)};return e.onMounted(()=>{y()}),e.onUnmounted(()=>{B(),E()}),(J,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",St,[e.createElementVNode("button",{onClick:N,class:"animate-btn"},e.toDisplayString(d.value?"停止动画":"开始动画"),1),e.createElementVNode("button",{onClick:_,disabled:d.value},"重置所有关节",8,Tt)]),e.createElementVNode("div",Ct,[o.value.length>0?(e.openBlock(),e.createElementBlock("div",kt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,P=>{var p,c,s,b;return e.openBlock(),e.createElementBlock("div",{key:P.name,class:"joint-item"},[e.createElementVNode("div",Nt,[e.createElementVNode("div",At,[e.createElementVNode("span",Ot,e.toDisplayString(P.name),1),e.createElementVNode("span",zt," ["+e.toDisplayString(((p=P.limit)==null?void 0:p.lower.toFixed(2))??(P.type==="revolute"?"-3.14":"-1.00"))+", "+e.toDisplayString(((c=P.limit)==null?void 0:c.upper.toFixed(2))??(P.type==="revolute"?"3.14":"1.00"))+"] ",1)]),e.createElementVNode("span",Lt,e.toDisplayString(P.type),1)]),P.type==="revolute"||P.type==="prismatic"?(e.openBlock(),e.createElementBlock("div",Ht,[e.createElementVNode("div",jt,[e.createElementVNode("input",{type:"range",min:((s=P.limit)==null?void 0:s.lower)??(P.type==="revolute"?-Math.PI:-1),max:((b=P.limit)==null?void 0:b.upper)??(P.type==="revolute"?Math.PI:1),step:.01,value:P.currentValue,onInput:w=>h(P.name,w.target.value),class:"joint-slider",disabled:d.value},null,40,It)]),e.createElementVNode("div",Ut,[e.createElementVNode("span",Ft,e.toDisplayString(P.currentValue.toFixed(3)),1),e.createElementVNode("span",Yt,e.toDisplayString(P.type==="revolute"?"rad":"m"),1)])])):e.createCommentVNode("",!0)])}),128))])):(e.openBlock(),e.createElementBlock("div",Zt,f[0]||(f[0]=[e.createElementVNode("p",null,"未检测到可控制的关节",-1)])))])],64))}},Xt=j._export_sfc(Kt,[["__scopeId","data-v-ef47ba0d"]]),Wt=["xlink:href"];function qt(a,t,o,i,d,m){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["container",{active:a.active}])},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["svg-icon",[a.$attrs.class,a.spin&&"svg-icon-spin"]]),style:e.normalizeStyle(a.getStyle),"aria-hidden":"true"},[e.createElementVNode("use",{"xlink:href":a.symbolId},null,8,Wt)],6))],2)}const V=j._export_sfc(n._sfc_main,[["render",qt],["__scopeId","data-v-1f76fc63"]]),Qt={class:"obj-viewer-container"},te={class:"buttonGroup-top"},ee={class:"buttonGroup-topLeft"},oe={class:"buttonGroup-left"},ne={class:"buttonGroup-right"},ie={class:"left-panel"},ae={class:"panel-header"},se={key:1,class:"panel-content"},re={class:"radio-group"},le={class:"radio-label"},ce={class:"radio-label"},de={class:"radio-label"},he={class:"radio-label"},_e={class:"right-panel"},Pe={class:"panel-header"},Je={key:0,class:"loading-overlay"},ue={__name:"threeModel",setup(a,{expose:t}){let o=null,i=!1;const d=e.ref(null),m=e.ref(!1),l=e.ref("");e.ref(!1);const r=e.ref(!1),g=e.ref(!1),h=e.ref(""),R=e.ref(!1),T=e.ref(""),{currentModels:S,initialCameraPosition:N,initialTargetPosition:A,initThreeJS:E,handleResize:_,fitCameraToAllModels:G,getThreeJSObjects:y,clearAllModels:B,cleanup:J}=Rt(d),{isAnimating:f,toggleAnimation:P,stopAnimation:p}=Dt(y,S),{isClipping:c,activeClippingAxis:s,toggleClipping:b,updateClippingPlanes:w}=xt(y,S),{addModelsFromUrls:C,loadModelByDefaultPath:O,urdfModel:z}=n.useModelLoader(y,S,m,l,B),tt=()=>{if(r.value||S.value.length===0)return;r.value=!0,f.value&&p();const{camera:D,controls:u}=y();if(!D||!u)return;u.enabled=!0;const L=H=>H<.5?4*H*H*H:1-Math.pow(-2*H+2,3)/2,v=D.position.clone(),at=u.target.clone(),st=1500,rt=Date.now(),$=()=>{const H=Date.now()-rt,K=Math.min(H/st,1),X=L(K);D.position.lerpVectors(v,N.value,X),u.target.lerpVectors(at,A.value,X),K<1?requestAnimationFrame($):r.value=!1};$()},et=async()=>i?Promise.resolve():new Promise(D=>{const u=()=>{i?D():requestAnimationFrame(u)};u()}),Z=async(D,u)=>{try{await et(),f.value&&p(),c.value&&b();const L=await u(D);return G(),L}catch(L){throw console.error("加载模型失败:",L),L}},ot=async D=>Z(D,C),nt=async D=>Z(D,O),I=D=>{g.value=!0,h.value=D,D==="剖面图"&&!c.value&&b()},it=D=>{R.value=!0,T.value=D};return e.onMounted(async()=>{await e.nextTick();try{E(),o=y().scene,i=!0,window.addEventListener("resize",_)}catch(D){console.error("Three.js初始化失败:",D)}}),e.onBeforeUnmount(()=>{i=!1,h.value="",T.value="",window.removeEventListener("resize",_),f.value&&p(),J()}),t({addModelsFromUrls:ot,loadModelByDefaultPath:nt}),(D,u)=>{const L=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qt,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:d,class:"threejs-container"},null,512),e.createElementVNode("div",te,[e.createVNode(V,{name:"guanjianjiexi",size:"34"}),e.createVNode(V,{name:"guanjiekongzhi",size:"34"}),e.createVNode(V,{name:"gongyishengcheng",size:"34"}),e.createVNode(V,{name:"buchangshezhi",size:"34"}),e.createVNode(V,{name:"shuchujiagongchengxu",size:"34"})]),e.createElementVNode("div",ee,[e.createVNode(V,{name:"donghuafangzhen",size:"24",onClick:tt,title:"重置"}),e.createVNode(V,{name:"fangda",size:"24",title:"放大"}),e.createVNode(V,{name:"suoxiao",size:"24",title:"缩小"}),e.createVNode(V,{name:"donghuafangzhen",size:"24",onClick:e.unref(P),title:e.unref(f)?"停止动画":"动画视图"},null,8,["onClick","title"])]),e.createElementVNode("div",oe,[e.createVNode(V,{name:"jiegoushu",size:"24",onClick:u[0]||(u[0]=v=>I("场景树")),active:g.value&&h.value==="场景树"},null,8,["active"]),e.createVNode(V,{name:"donghuafangzhen",size:"24",onClick:u[1]||(u[1]=v=>I("剖面图")),active:g.value&&h.value==="剖面图"},null,8,["active"]),e.createVNode(V,{name:"donghuafangzhen",size:"24",onClick:u[2]||(u[2]=v=>I("场景树3"))}),e.createVNode(V,{name:"donghuafangzhen",size:"24",onClick:u[3]||(u[3]=v=>I("场景4"))})]),e.createElementVNode("div",ne,[e.createVNode(V,{name:"donghuafangzhen",size:"24"}),e.createVNode(V,{name:"donghuafangzhen",size:"24"}),e.createVNode(V,{name:"guanjiekongzhi",size:"24",onClick:u[4]||(u[4]=v=>it("关节控制")),active:R.value&&T.value==="关节控制"},null,8,["active"]),e.createVNode(V,{name:"donghuafangzhen",size:"24"}),e.createVNode(V,{name:"donghuafangzhen",size:"24"}),e.createVNode(V,{name:"donghuafangzhen",size:"24"})]),e.withDirectives(e.createElementVNode("div",ie,[e.createElementVNode("div",ae,[e.createElementVNode("span",null,e.toDisplayString(h.value),1),e.createElementVNode("span",{class:"close",onClick:u[5]||(u[5]=v=>g.value=!1)}," X ")]),e.createVNode(L,{"max-height":"650px"},{default:e.withCtx(()=>[h.value==="场景树"?(e.openBlock(),e.createBlock(Pt,{key:0,model:e.unref(z)},null,8,["model"])):e.createCommentVNode("",!0),h.value==="剖面图"?(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",re,[e.createElementVNode("label",le,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":u[6]||(u[6]=v=>e.isRef(s)?s.value=v:null),onChange:u[7]||(u[7]=(...v)=>e.unref(w)&&e.unref(w)(...v))},null,544),[[e.vModelRadio,e.unref(s)]]),u[15]||(u[15]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ce,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":u[8]||(u[8]=v=>e.isRef(s)?s.value=v:null),onChange:u[9]||(u[9]=(...v)=>e.unref(w)&&e.unref(w)(...v))},null,544),[[e.vModelRadio,e.unref(s)]]),u[16]||(u[16]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",de,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":u[10]||(u[10]=v=>e.isRef(s)?s.value=v:null),onChange:u[11]||(u[11]=(...v)=>e.unref(w)&&e.unref(w)(...v))},null,544),[[e.vModelRadio,e.unref(s)]]),u[17]||(u[17]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",he,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":u[12]||(u[12]=v=>e.isRef(s)?s.value=v:null),onChange:u[13]||(u[13]=(...v)=>e.unref(w)&&e.unref(w)(...v))},null,544),[[e.vModelRadio,e.unref(s)]]),u[18]||(u[18]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})],512),[[e.vShow,g.value]]),e.withDirectives(e.createElementVNode("div",_e,[e.createElementVNode("div",Pe,[e.createElementVNode("span",null,e.toDisplayString(T.value),1),e.createElementVNode("span",{class:"close",onClick:u[14]||(u[14]=v=>R.value=!1)}," X ")]),e.createVNode(L,{"max-height":"650px"},{default:e.withCtx(()=>[T.value==="关节控制"?(e.openBlock(),e.createBlock(Xt,{key:0,model:e.unref(z),scene:e.unref(o)},null,8,["model","scene"])):e.createCommentVNode("",!0)]),_:1})],512),[[e.vShow,R.value]]),m.value?(e.openBlock(),e.createElementBlock("div",Je,[u[19]||(u[19]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(l.value),1)])):e.createCommentVNode("",!0)])}}},pe=j._export_sfc(ue,[["__scopeId","data-v-3e87dec6"]]);exports.default=pe;