ss-component-new 1.1.596 → 1.1.598

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 (97) hide show
  1. package/dist/{array-mnEYd91h.cjs → array-C1gcNGaP.cjs} +1 -1
  2. package/dist/{array-wJSGLzMi.js → array-CaisX3_y.js} +1 -1
  3. package/dist/{crypto-BRyGpjGR.js → crypto-BLqrsrbD.js} +503 -430
  4. package/dist/{crypto-CRbcEKIz.cjs → crypto-kdpAHFnl.cjs} +11 -11
  5. package/dist/index-2tDhJ_PE.cjs +74 -0
  6. package/dist/{index-CdV-dIPz.js → index-6zxl3bAx.js} +3 -3
  7. package/dist/{index-Bq9zvPYq.js → index-B40Vg6be.js} +6 -6
  8. package/dist/index-BA5Dtdnf.cjs +1 -0
  9. package/dist/{index-DIQgn1lv.js → index-BIT-bLqc.js} +1 -1
  10. package/dist/index-BND1JkQV.cjs +1 -0
  11. package/dist/{index-C1KIIGh8.js → index-BQcbH-Bx.js} +5 -5
  12. package/dist/index-BTFmTXxw.cjs +1 -0
  13. package/dist/{index-Dr_FFxuS.cjs → index-BTR1Mq9-.cjs} +1 -1
  14. package/dist/{index-BhIXAFkM.js → index-BX8Qt4Rx.js} +6 -7
  15. package/dist/index-BkcTV4rw.cjs +1 -0
  16. package/dist/{index-DTKpspvK.cjs → index-BlUO9yjl.cjs} +1 -1
  17. package/dist/{index-Dm8EQvZF.cjs → index-Bn3uMi-8.cjs} +1 -1
  18. package/dist/index-Bp7fX2Un.cjs +1 -0
  19. package/dist/{index-Bb1N38wE.js → index-BzxOgHaM.js} +3 -3
  20. package/dist/{index-CUnz8HhY.cjs → index-C1pvDeK-.cjs} +1 -1
  21. package/dist/index-C2whMdL5.cjs +1 -0
  22. package/dist/{index-_h1qmm7b.js → index-C39wdrEg.js} +13 -13
  23. package/dist/{index-BmX_GIIO.cjs → index-CDtFBTgg.cjs} +1 -1
  24. package/dist/{index-Db0lTu76.js → index-CJT5TxjA.js} +3 -3
  25. package/dist/{index-DHuIlYC1.cjs → index-CLbudYRq.cjs} +1 -1
  26. package/dist/index-CLx_m5eO.cjs +1 -0
  27. package/dist/{index-bALhgSe4.js → index-CZevQ8Dr.js} +22 -23
  28. package/dist/index-CdUSKaxX.cjs +1 -0
  29. package/dist/{index-DSsJ2-ii.cjs → index-D-9AsLgs.cjs} +1 -1
  30. package/dist/{index-BriwvEur.js → index-D-EA3Esr.js} +4 -4
  31. package/dist/{index-BIu-jTfc.js → index-D0SLiYEQ.js} +1 -1
  32. package/dist/{index-Zt6huWXY.js → index-D7dvgWgC.js} +8 -8
  33. package/dist/{index-Bk3SowMg.js → index-D93nyxZ8.js} +4 -4
  34. package/dist/{index-B4LVTE2a.cjs → index-D9qvpCOL.cjs} +174 -174
  35. package/dist/{index-DQm7DvqZ.cjs → index-DAXzplpp.cjs} +1 -1
  36. package/dist/{index-CB4s2Qtu.cjs → index-DHxqKUgB.cjs} +1 -1
  37. package/dist/{index-C7x-mC0R.js → index-DJuUjZvH.js} +83 -84
  38. package/dist/index-DTyUDeyD.js +4369 -0
  39. package/dist/{index-CwYjbsHf.cjs → index-DeXIDjm6.cjs} +1 -1
  40. package/dist/{index-TRcS4V2m.js → index-DiGq9Lsv.js} +5 -5
  41. package/dist/{index-BBnnl-_P.cjs → index-Dnc9hCoC.cjs} +1 -1
  42. package/dist/{index-BurAdhpz.js → index-DyUmQMqi.js} +4 -4
  43. package/dist/index-HXTaOl2k.cjs +1 -0
  44. package/dist/{index-CmXpvujN.js → index-HkaBIp59.js} +1 -1
  45. package/dist/{index-BOb-2bQ6.js → index-RN-gwhe0.js} +2 -2
  46. package/dist/{index-Bkm9CeI0.js → index-V9vs-ScR.js} +1 -1
  47. package/dist/{index-8gbPS8-X.js → index-VF7EMAm-.js} +3 -3
  48. package/dist/{index-4me0w_d_.js → index-Ww4aroev.js} +3 -3
  49. package/dist/{index-BrR-UBrL.js → index-bCB0m90F.js} +5 -5
  50. package/dist/{index-CJ_rdkr8.js → index-hBF27unU.js} +7021 -7051
  51. package/dist/{index-Dsnvzj37.cjs → index-mWOC2B6n.cjs} +1 -1
  52. package/dist/{index-CjrWmm5T.js → index-sLT63BWC.js} +2030 -2020
  53. package/dist/{index-l52VRsV3.cjs → index-v95HBZGa.cjs} +1 -1
  54. package/dist/{index-P7MVl516.cjs → index-vqffUZk8.cjs} +1 -1
  55. package/dist/{index.vue_vue_type_script_setup_true_lang-DdxkZBiO.js → index.vue_vue_type_script_setup_true_lang-CPMJDln6.js} +2 -2
  56. package/dist/{index.vue_vue_type_script_setup_true_lang-CKo9xhlB.cjs → index.vue_vue_type_script_setup_true_lang-T3qSOy6p.cjs} +1 -1
  57. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CfEICeD4.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BNbsh3Kc.js} +1 -1
  58. package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DXFzvQ4G.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-DPUizNX8.cjs} +1 -1
  59. package/dist/index.vue_vue_type_style_index_0_scoped_b9f960ef_lang-BrSe9KLj.cjs +1 -0
  60. package/dist/{index.vue_vue_type_style_index_0_scoped_b9f960ef_lang-C4KOyCan.js → index.vue_vue_type_style_index_0_scoped_b9f960ef_lang-CNhkr8wC.js} +8 -8
  61. package/dist/{index.vue_vue_type_style_index_0_scoped_c4f9c92c_lang-DNiiRDF0.cjs → index.vue_vue_type_style_index_0_scoped_c4f9c92c_lang-CcbD9_8d.cjs} +10 -10
  62. package/dist/{index.vue_vue_type_style_index_0_scoped_c4f9c92c_lang--Ckdd4kI.js → index.vue_vue_type_style_index_0_scoped_c4f9c92c_lang-DCgz0iSg.js} +2170 -2164
  63. package/dist/{main-CBruCFMa.cjs → main-OEqZN7Ta.cjs} +1 -1
  64. package/dist/{main-BdwwE9kL.js → main-v-I0DDbj.js} +5 -5
  65. package/dist/{menu-DYsWoy6Z.cjs → menu-1olc0mrV.cjs} +9 -9
  66. package/dist/{menu-Qw1eGtzq.js → menu-BxkEScwt.js} +201 -199
  67. package/dist/menuIndex-DGUNtXPA.cjs +1 -0
  68. package/dist/menuIndex-DaxuTIfn.js +60 -0
  69. package/dist/{modelComp-y7HaQuVQ.js → modelComp-Bj7Q1JDt.js} +1 -1
  70. package/dist/{modelComp-8s0tWZDU.cjs → modelComp-C5jCD_od.cjs} +1 -1
  71. package/dist/ss-component.cjs +1 -1
  72. package/dist/ss-component.css +1 -1
  73. package/dist/ss-component.js +9 -9
  74. package/dist/ss-component2.cjs +1 -1
  75. package/dist/ss-component2.js +9 -9
  76. package/dist/{threeModel-WeRc8TWE.js → threeModel-D_RxjZwp.js} +568 -550
  77. package/dist/threeModel-ncwxCK1P.cjs +1 -0
  78. package/package.json +1 -1
  79. package/dist/index-B-P2iW5F.cjs +0 -1
  80. package/dist/index-BFKRXrzQ.cjs +0 -1
  81. package/dist/index-BJi_ECqJ.cjs +0 -1
  82. package/dist/index-BiqWWf_i.cjs +0 -1
  83. package/dist/index-DFdkXYtv.js +0 -4373
  84. package/dist/index-DJc0EPc7.cjs +0 -1
  85. package/dist/index-DUjNOx49.cjs +0 -1
  86. package/dist/index-K05hKXiU.cjs +0 -1
  87. package/dist/index-R71UAxtE.cjs +0 -1
  88. package/dist/index-RFCzxTjm.cjs +0 -87
  89. package/dist/index-n20urAJT.cjs +0 -1
  90. package/dist/index.vue_vue_type_style_index_0_scoped_b9f960ef_lang-CHdcwZZm.cjs +0 -1
  91. package/dist/login-BBvcYktp.cjs +0 -1
  92. package/dist/login-afGmER0u.js +0 -129
  93. package/dist/obj/model.mtl +0 -42
  94. package/dist/obj/model.obj +0 -26110
  95. package/dist/threeModel-DQIGp3UU.cjs +0 -1
  96. package/public/obj/model.mtl +0 -42
  97. package/public/obj/model.obj +0 -26110
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),o=require("./index-B4LVTE2a.cjs"),te=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),fe=require("./menu-DYsWoy6Z.cjs"),pe={type:"change"},ce={type:"start"},_e={type:"end"},ie=new o.Ray,me=new o.Plane,ge=Math.cos(70*o.MathUtils.DEG2RAD),I=new o.Vector3,K=2*Math.PI,k={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},le=1e-6;class ye extends o.Controls{constructor(t,i=null){super(t,i),this.state=k.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=be.bind(this),this._onPointerDown=ve.bind(this),this._onPointerUp=we.bind(this),this._onContextMenu=Se.bind(this),this._onMouseWheel=Me.bind(this),this._onKeyDown=xe.bind(this),this._onTouchStart=De.bind(this),this._onTouchMove=Ve.bind(this),this._onMouseDown=Ee.bind(this),this._onMouseMove=Pe.bind(this),this._interceptControlDown=ke.bind(this),this._interceptControlUp=Te.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(pe),this.update(),this.state=k.NONE}update(t=null){const i=this.object.position;I.copy(i).sub(this.target),I.applyQuaternion(this._quat),this._spherical.setFromVector3(I),this.autoRotate&&this.state===k.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,l=this.maxAzimuthAngle;isFinite(s)&&isFinite(l)&&(s<-Math.PI?s+=K:s>Math.PI&&(s-=K),l<-Math.PI?l+=K:l>Math.PI&&(l-=K),s<=l?this._spherical.theta=Math.max(s,Math.min(l,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(s+l)/2?Math.max(s,this._spherical.theta):Math.min(l,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 f=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const b=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),f=b!=this._spherical.radius}if(I.setFromSpherical(this._spherical),I.applyQuaternion(this._quatInverse),i.copy(this.target).add(I),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 b=null;if(this.object.isPerspectiveCamera){const r=I.length();b=this._clampDistance(r*this._scale);const x=r-b;this.object.position.addScaledVector(this._dollyDirection,x),this.object.updateMatrixWorld(),f=!!x}else if(this.object.isOrthographicCamera){const r=new o.Vector3(this._mouse.x,this._mouse.y,0);r.unproject(this.object);const x=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),f=x!==this.object.zoom;const M=new o.Vector3(this._mouse.x,this._mouse.y,0);M.unproject(this.object),this.object.position.sub(M).add(r),this.object.updateMatrixWorld(),b=I.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;b!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(b).add(this.object.position):(ie.origin.copy(this.object.position),ie.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(ie.direction))<ge?this.object.lookAt(this.target):(me.setFromNormalAndCoplanarPoint(this.object.up,this.target),ie.intersectPlane(me,this.target))))}else if(this.object.isOrthographicCamera){const b=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),b!==this.object.zoom&&(this.object.updateProjectionMatrix(),f=!0)}return this._scale=1,this._performCursorZoom=!1,f||this._lastPosition.distanceToSquared(this.object.position)>le||8*(1-this._lastQuaternion.dot(this.object.quaternion))>le||this._lastTargetPosition.distanceToSquared(this.target)>le?(this.dispatchEvent(pe),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 i=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*i)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,i){I.setFromMatrixColumn(i,0),I.multiplyScalar(-t),this._panOffset.add(I)}_panUp(t,i){this.screenSpacePanning===!0?I.setFromMatrixColumn(i,1):(I.setFromMatrixColumn(i,0),I.crossVectors(this.object.up,I)),I.multiplyScalar(t),this._panOffset.add(I)}_pan(t,i){const s=this.domElement;if(this.object.isPerspectiveCamera){const l=this.object.position;I.copy(l).sub(this.target);let f=I.length();f*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*f/s.clientHeight,this.object.matrix),this._panUp(2*i*f/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(i*(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,i){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const s=this.domElement.getBoundingClientRect(),l=t-s.left,f=i-s.top,b=s.width,r=s.height;this._mouse.x=l/b*2-1,this._mouse.y=-(f/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 i=this.domElement;this._rotateLeft(K*this._rotateDelta.x/i.clientHeight),this._rotateUp(K*this._rotateDelta.y/i.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 i=!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),i=!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),i=!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),i=!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),i=!0;break}i&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),s=.5*(t.pageX+i.x),l=.5*(t.pageY+i.y);this._rotateStart.set(s,l)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),s=.5*(t.pageX+i.x),l=.5*(t.pageY+i.y);this._panStart.set(s,l)}}_handleTouchStartDolly(t){const i=this._getSecondPointerPosition(t),s=t.pageX-i.x,l=t.pageY-i.y,f=Math.sqrt(s*s+l*l);this._dollyStart.set(0,f)}_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),l=.5*(t.pageX+s.x),f=.5*(t.pageY+s.y);this._rotateEnd.set(l,f)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const i=this.domElement;this._rotateLeft(K*this._rotateDelta.x/i.clientHeight),this._rotateUp(K*this._rotateDelta.y/i.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const i=this._getSecondPointerPosition(t),s=.5*(t.pageX+i.x),l=.5*(t.pageY+i.y);this._panEnd.set(s,l)}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 i=this._getSecondPointerPosition(t),s=t.pageX-i.x,l=t.pageY-i.y,f=Math.sqrt(s*s+l*l);this._dollyEnd.set(0,f),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 b=(t.pageX+i.x)*.5,r=(t.pageY+i.y)*.5;this._updateZoomParameters(b,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 i=0;i<this._pointers.length;i++)if(this._pointers[i]==t.pointerId){this._pointers.splice(i,1);return}}_isTrackingPointer(t){for(let i=0;i<this._pointers.length;i++)if(this._pointers[i]==t.pointerId)return!0;return!1}_trackPointer(t){let i=this._pointerPositions[t.pointerId];i===void 0&&(i=new o.Vector2,this._pointerPositions[t.pointerId]=i),i.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const i=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[i]}_customWheelEvent(t){const i=t.deltaMode,s={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(i){case 1:s.deltaY*=16;break;case 2:s.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(s.deltaY*=10),s}}function ve(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 be(a){this.enabled!==!1&&(a.pointerType==="touch"?this._onTouchMove(a):this._onMouseMove(a))}function we(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(_e),this.state=k.NONE;break;case 1:const t=this._pointers[0],i=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:i.x,pageY:i.y});break}}function Ee(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 o.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(a),this.state=k.DOLLY;break;case o.MOUSE.ROTATE:if(a.ctrlKey||a.metaKey||a.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(a),this.state=k.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(a),this.state=k.ROTATE}break;case o.MOUSE.PAN:if(a.ctrlKey||a.metaKey||a.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(a),this.state=k.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(a),this.state=k.PAN}break;default:this.state=k.NONE}this.state!==k.NONE&&this.dispatchEvent(ce)}function Pe(a){switch(this.state){case k.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(a);break;case k.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(a);break;case k.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(a);break}}function Me(a){this.enabled===!1||this.enableZoom===!1||this.state!==k.NONE||(a.preventDefault(),this.dispatchEvent(ce),this._handleMouseWheel(this._customWheelEvent(a)),this.dispatchEvent(_e))}function xe(a){this.enabled!==!1&&this._handleKeyDown(a)}function De(a){switch(this._trackPointer(a),this._pointers.length){case 1:switch(this.touches.ONE){case o.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(a),this.state=k.TOUCH_ROTATE;break;case o.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(a),this.state=k.TOUCH_PAN;break;default:this.state=k.NONE}break;case 2:switch(this.touches.TWO){case o.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(a),this.state=k.TOUCH_DOLLY_PAN;break;case o.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(a),this.state=k.TOUCH_DOLLY_ROTATE;break;default:this.state=k.NONE}break;default:this.state=k.NONE}this.state!==k.NONE&&this.dispatchEvent(ce)}function Ve(a){switch(this._trackPointer(a),this.state){case k.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(a),this.update();break;case k.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(a),this.update();break;case k.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(a),this.update();break;case k.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(a),this.update();break;default:this.state=k.NONE}}function Se(a){this.enabled!==!1&&a.preventDefault()}function ke(a){a.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Te(a){a.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Ce(a){let t=null,i=null,s=null,l=null,f=null,b=null,r=null,x=null;const M=e.ref([]),A=e.ref(new o.Vector3),L=e.ref(new o.Vector3),T=()=>{if(!a.value)return;t=new o.Scene,t.background=new o.Color(15790320);const g=a.value;i=new o.PerspectiveCamera(75,g.clientWidth/g.clientHeight,.1,1e4),i.position.set(8,-8,6),i.up.set(0,0,1),i.lookAt(0,0,0),s=new o.WebGLRenderer({antialias:!0,alpha:!0}),s.setSize(g.clientWidth,g.clientHeight),s.localClippingEnabled=!0,s.shadowMap.enabled=!0,s.shadowMap.type=o.PCFSoftShadowMap,s.toneMapping=o.ACESFilmicToneMapping,s.toneMappingExposure=1,s.outputColorSpace=o.SRGBColorSpace,g.appendChild(s.domElement),l=new ye(i,s.domElement),l.enableDamping=!0,l.dampingFactor=.05,l.mouseButtons={LEFT:o.MOUSE.ROTATE,MIDDLE:o.MOUSE.PAN,RIGHT:null},l.panSpeed=.7,f=new o.Xe(i,s,{container:g,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"}}),f.attachControls(l),v(),n()},u=(g,d)=>{r&&(t.remove(r),r.dispose()),x&&(t.remove(x),x.geometry.dispose(),x.material.dispose());const S=Math.min(Math.max(Math.floor(g/20),30),40);r=new o.GridHelper(g,S,13421772,14540253),r.rotateX(Math.PI/2),r.position.copy(d),t.add(r);const Y=new o.PlaneGeometry(g,g),Z=new o.ShadowMaterial({opacity:.3,color:0});x=new o.Mesh(Y,Z),x.position.copy(d),x.position.z-=.01,x.receiveShadow=!0,t.add(x)},D=()=>{if(M.value.length===0)return;const g=new o.Box3;M.value.forEach(H=>{g.expandByObject(H)});const d=g.getSize(new o.Vector3),S=g.getCenter(new o.Vector3),Y=Math.max(d.x,d.y,d.z),Z=Math.max(Y*8,50),z=new o.Vector3(S.x,S.y,g.min.z);u(Z,z)},v=()=>{const g=new o.AmbientLight(4210752,.6);t.add(g);const d=new o.DirectionalLight(16777215,2);d.position.set(10,10,8),d.castShadow=!0,d.shadow.mapSize.width=4096,d.shadow.mapSize.height=4096,d.shadow.camera.near=.5,d.shadow.camera.far=50,d.shadow.camera.left=-50,d.shadow.camera.right=50,d.shadow.camera.top=50,d.shadow.camera.bottom=-50,t.add(d);const S=new o.DirectionalLight(16777215,.8);S.position.set(-8,-8,6),t.add(S);const Y=new o.DirectionalLight(16777215,.6);Y.position.set(0,-15,2),t.add(Y);const Z=new o.HemisphereLight(16777215,4473924,.8);t.add(Z);const z=new o.PointLight(16777215,1,50);z.position.set(15,15,15),t.add(z);const H=new o.PointLight(16777215,.5,50);H.position.set(-15,-15,15),t.add(H)},n=()=>{b=requestAnimationFrame(n),l&&l.update(),s&&t&&i&&s.render(t,i),f&&f.render()},m=g=>{["map","normalMap","bumpMap","roughnessMap","metalnessMap","emissiveMap","specularMap","envMap","lightMap","aoMap","displacementMap"].forEach(S=>{g[S]&&g[S].dispose&&g[S].dispose()}),g.dispose&&g.dispose()},E=g=>{g==null||g.traverse(d=>{d.geometry&&d.geometry.dispose(),d.material&&(Array.isArray(d.material)?d.material.forEach(S=>{m(S)}):m(d.material))})};return{currentModels:M,initialCameraPosition:A,initialTargetPosition:L,initThreeJS:T,handleResize:()=>{if(!a.value||!i||!s||!f)return;const g=a.value,d=g.clientWidth,S=g.clientHeight;i.aspect=d/S,i.updateProjectionMatrix(),s.setSize(d,S),f.update()},fitCameraToAllModels:()=>{if(!i||!l||M.value.length===0)return;const g=new o.Box3;M.value.forEach(H=>{g.expandByObject(H)});const d=g.getSize(new o.Vector3),S=g.getCenter(new o.Vector3),Z=Math.max(d.x,d.y,d.z)*.8,z=new o.Vector3(S.x+Z,S.y-Z,S.z+Z);i.position.copy(z),i.lookAt(S),l.target.copy(S),l.update(),A.value.copy(z),L.value.copy(S),D()},getThreeJSObjects:()=>({scene:t,camera:i,renderer:s,controls:l,gizmo:f}),clearAllModels:()=>{if(!t)return;M.value.forEach(d=>{t.remove(d),E(d)});const g=[];t.children.forEach(d=>{!d.isLight&&!d.isCamera&&d.type!=="GridHelper"&&d!==x&&g.push(d)}),g.forEach(d=>{t.remove(d),E(d)}),M.value=[],D()},cleanup:()=>{b&&cancelAnimationFrame(b),r&&r.dispose(),x&&(x.geometry.dispose(),x.material.dispose()),s&&s.dispose(),l&&l.dispose(),f&&f.dispose()},updateGridForModels:D}}function Ae(a,t){const i=e.ref(!1);let s=null,l=12700,f=new o.Vector3,b=new o.Vector3,r=new o.Vector3,x=0,M=null;const A=n=>n<.5?4*n*n*n:1-Math.pow(-2*n+2,3)/2,L=n=>{const m=new o.Vector3,E=x*1.2,R=new o.Vector3(r.x+E,r.y,r.z),F=new o.Vector3(r.x,r.y+E,r.z),B=new o.Vector3(r.x,r.y-E,r.z);if(n<=.567){const U=n/.567*Math.PI*2;m.x=r.x+Math.cos(U)*E,m.z=r.z+Math.sin(U)*E,m.y=r.y}else if(n<=.724){const j=(n-.567)/.157,U=A(j);m.lerpVectors(R,F,U)}else if(n<=.881){const j=(n-.724)/.157,g=A(j)*Math.PI;m.x=r.x+Math.sin(g)*E,m.y=r.y+Math.cos(g)*E,m.z=r.z}else{const j=(n-.881)/.119,U=A(j);m.lerpVectors(B,f,U)}return m},T=()=>{const{camera:n,controls:m}=a();if(!n||!m)return;s||(s=Date.now());const E=Date.now()-s,R=Math.min(E/l,1);if(R>=1){D();return}const F=L(R);n.position.copy(F),n.lookAt(r),m.target.copy(r),M=requestAnimationFrame(T)},u=()=>{if(t.value.length===0)return;const{camera:n,controls:m}=a();if(!n||!m)return;f.copy(n.position),b.copy(m.target);const E=new o.Box3;t.value.forEach(d=>{E.expandByObject(d)});const R=E.getSize(new o.Vector3);r=E.getCenter(new o.Vector3),x=Math.max(R.x,R.y,R.z)*1.2;const F=new o.Vector3(r.x+x*1.2,r.y,r.z);m.enabled=!1;const B=n.position.clone(),j=1e3,U=Date.now(),g=()=>{const d=Date.now()-U,S=Math.min(d/j,1),Y=A(S);n.position.lerpVectors(B,F,Y),n.lookAt(r),m.target.copy(r),S<1?requestAnimationFrame(g):(i.value=!0,s=null,T())};g()},D=()=>{i.value=!1,s=null,M&&(cancelAnimationFrame(M),M=null);const{controls:n}=a();n&&(n.enabled=!0,n.target.copy(b))};return{isAnimating:i,toggleAnimation:()=>{if(i.value){i.value=!1,s=null,M&&(cancelAnimationFrame(M),M=null);const{camera:n,controls:m}=a();if(!n||!m)return;m.enabled=!0;const E=n.position.clone(),R=m.target.clone(),F=1500,B=Date.now(),j=()=>{const U=Date.now()-B,g=Math.min(U/F,1),d=A(g);n.position.lerpVectors(E,f,d),m.target.lerpVectors(R,b,d),g<1&&requestAnimationFrame(j)};j()}else u()},startAnimation:u,stopAnimation:D}}function Ne(a,t){const i=e.ref(!1),s=e.ref("none");let l=[],f=[],b=new o.Box3,r=new o.Vector3;const x=()=>{l=[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)]},M=()=>{b.makeEmpty(),t.value.forEach(v=>{b.expandByObject(v)}),r=b.getCenter(new o.Vector3)},A=v=>{const n=b.getSize(new o.Vector3);let m,E,R;v==="x"?(m=new o.PlaneGeometry(n.z*1.2,n.y*1.2),E=new o.Vector3(r.x,r.y,r.z),R=new o.Euler(0,Math.PI/2,0)):v==="y"?(m=new o.PlaneGeometry(n.x*1.2,n.z*1.2),E=new o.Vector3(r.x,r.y,r.z),R=new o.Euler(Math.PI/2,0,0)):v==="z"&&(m=new o.PlaneGeometry(n.x*1.2,n.y*1.2),E=new o.Vector3(r.x,r.y,r.z),R=new o.Euler(0,0,0));const F=new o.MeshPhongMaterial({color:8900331,transparent:!0,opacity:.3,side:o.DoubleSide,depthWrite:!1}),B=new o.Mesh(m,F);return B.position.copy(E),B.rotation.copy(R),B},L=()=>{if(T(),u(),s.value==="none")return;M();let v=null;if(s.value==="x"?(l[0].constant=-r.x,v=l[0]):s.value==="y"?(l[1].constant=-r.y,v=l[1]):s.value==="z"&&(l[2].constant=-r.z,v=l[2]),v){t.value.forEach(m=>{m.traverse(E=>{E.isMesh&&E.material&&(Array.isArray(E.material)?E.material.forEach(R=>{R.clippingPlanes=[v]}):E.material.clippingPlanes=[v])})});const{scene:n}=a();if(n){const m=A(s.value);n.add(m),f.push(m)}}},T=()=>{t.value.forEach(v=>{v.traverse(n=>{n.isMesh&&n.material&&(Array.isArray(n.material)?n.material.forEach(m=>{m.clippingPlanes=[]}):n.material.clippingPlanes=[])})})},u=()=>{const{scene:v}=a();v&&f.forEach(n=>{v.remove(n),n.geometry.dispose(),n.material.dispose()}),f=[]};return{isClipping:i,activeClippingAxis:s,toggleClipping:()=>{i.value=!i.value,i.value?(x(),t.value.length>0&&M()):(s.value="none",T(),u())},updateClippingPlanes:L,clearClippingPlanes:T,clearClippingMeshes:u}}const Re={class:"panel-content"},ze={__name:"animationTable",props:{animationData:Object,model:Object},setup(a){const t=a;e.ref();const i=e.ref();return e.watch(()=>[t==null?void 0:t.animationData],()=>{var l;let s=((l=fe.cloneDeep(t==null?void 0:t.animationData))==null?void 0:l.动画输出Content)??[];s&&(i.value=s)},{deep:!0,immediate:!0}),(s,l)=>{var f,b,r;return e.openBlock(),e.createElementBlock("div",Re,[(e.openBlock(),e.createBlock(o.ssTable,{itemData:(f=i.value)==null?void 0:f.compData,key:(b=i.value)==null?void 0:b.id,index:(r=i.value)==null?void 0:r.id,showHeader:!1},null,8,["itemData","index"]))])}}},Oe=te._export_sfc(ze,[["__scopeId","data-v-02b89b4b"]]),Le={class:"panel-content"},je="id",Ie={__name:"urdfTree",props:{model:Object,maxExpandCount:{type:Number,default:10},expandStrategy:{type:String,default:"breadth",validator:a=>["breadth","firstLevel"].includes(a)}},emits:["nodeClick"],setup(a,{emit:t}){const i=a,s=t,l=e.ref([]),f={children:"children",label:"label"},b=u=>{s("nodeClick",u)},r=(u,D=0)=>{const v=[];return Array.isArray(u)&&(u==null?void 0:u.length)>0&&u.forEach(n=>{if(!(n!=null&&n.isMesh)&&((n==null?void 0:n.type)==="URDFJoint"||(n==null?void 0:n.type)==="URDFLink")){const m={name:n==null?void 0:n.name,label:n==null?void 0:n.name,show:!0,level:D+1,isPenultimate:!1,type:n==null?void 0:n.type,id:n==null?void 0:n.id,limit:(n==null?void 0:n.limit)??"",children:r(n==null?void 0:n.children,D+1),path:n==null?void 0:n.name};v.push(m)}}),v},x=u=>u?[{name:u==null?void 0:u.name,label:u==null?void 0:u.name,show:!0,level: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:r(u==null?void 0:u.children,1),path:u==null?void 0:u.name}]:[],M=(u,D)=>{const v=[],n=[...u];for(;n.length>0&&v.length<D;){const m=n.shift();m.children&&m.children.length>0&&(v.push(m.id),n.push(...m.children))}return v},A=(u,D)=>{const v=[];return u.forEach(n=>{if(n.children&&n.children.length>0){v.push(n.id);const m=n.children.filter(E=>E.children&&E.children.length>0).slice(0,D).map(E=>E.id);v.push(...m)}}),v.slice(0,D+1)},L=e.computed(()=>!l.value||l.value.length===0?[]:i.expandStrategy==="firstLevel"?A(l.value,i.maxExpandCount):M(l.value,i.maxExpandCount)),T=e.computed(()=>i!=null&&i.model?x(i.model):[]);return e.watch(T,u=>{l.value=JSON.parse(JSON.stringify(u))},{immediate:!0}),(u,D)=>{const v=e.resolveComponent("el-tree");return e.openBlock(),e.createElementBlock("div",Le,[e.createVNode(v,{data:l.value,props:f,"default-expanded-keys":L.value,"node-key":je,onNodeClick:b},null,8,["data","default-expanded-keys"])])}}},Ue=te._export_sfc(Ie,[["__scopeId","data-v-290ff4e1"]]),Fe={class:"panel-content"},Be={key:0,class:"joints-list"},Ye={class:"joint-info-row"},Ze={class:"joint-left"},He={class:"joint-name"},Ke={class:"joint-range"},Xe={class:"joint-type"},$e={key:0,class:"joint-control-row"},Ge={class:"slider-container"},Je=["min","max","value","onInput","disabled"],qe={class:"value-display"},We={class:"joint-value"},Qe={class:"unit"},et={key:1,class:"empty-state"},ne=.001,tt=1e3,re=60,ot={__name:"jointPanel",props:{model:Object,scene:Object,animationData:Object},setup(a,{expose:t}){const i=a;e.ref(!0);const s=e.ref([]),l=e.ref(null),f=e.ref(null),b=e.ref(12.5),r=e.ref(),x=e.ref(1302),M=e.ref(!1),A=e.ref(!1),L=e.ref(0),T=e.ref(0),u=e.ref(null),D=o.MathUtils.degToRad,v=e.ref(1),n=()=>tt/re/v.value;let m=[];e.watch(()=>i.animationData,c=>{var p;let w=((p=fe.cloneDeep(c))==null?void 0:p.动画输出)??[];w&&w.length>0&&(m=w,Z())},{deep:!0}),e.computed(()=>m.length>0);const E=(c,w=!1)=>c==="revolute"?w?Math.PI:-Math.PI:c==="prismatic"?w?1:-1:0,R=()=>{if(!l.value)return ElMessage.error("未加载 URDF"),!1;let c=null;return l.value.traverse(w=>{w.name==="Pipe_Link"&&!c&&w.traverse(p=>{p instanceof o.Mesh&&!c&&(c=p)})}),c?(r.value=c,c.material=new o.MeshPhongMaterial({color:11184810,shininess:80,side:o.DoubleSide}),!0):(ElMessage.error("Pipe_Link 内未找到 Mesh"),!1)},F=c=>{if(!c||!c.joints)return console.warn("URDF模型没有关节信息"),[];let w=null;if(c.traverse(P=>{P.name==="Pipe_Link"&&!w&&(w=P)}),w)r.value=w;else return console.warn("未找到管子模型"),[];const p=[];return Object.keys(c.joints).forEach(P=>{const y=c.joints[P];if(y._jointType==="fixed")return;const O=y.limit?{lower:y.limit.lower??E(y._jointType,!1),upper:y.limit.upper??E(y._jointType,!0)}:{lower:E(y._jointType,!1),upper:E(y._jointType,!0)};p.push({name:P,type:y._jointType||"unknown",limit:O,currentValue:y.angle||0,urdfJoint:y})}),p.sort((P,y)=>P.name.localeCompare(y.name))},B=(c,w)=>{const p=s.value.find(y=>y.name===c);if(!p)return;const P=parseFloat(w);if(p.limit){const y=Math.max(p.limit.lower,Math.min(p.limit.upper,P));p.currentValue=y}else p.currentValue=P;i.model&&i.model.setJointValue?i.model.setJointValue(c,p.currentValue):p.urdfJoint&&p.urdfJoint.setJointValue(p.currentValue)},j=c=>c.reduce((w,p)=>{let P=0;const y=p.Y??0,O=p.C??0,_=p.R??0;return y>0&&(P+=y),O>0&&_>0&&(P+=_*D(O)),w+P},0),U=c=>{const w=[],p=c.Y??0,P=c.B??0,y=c.C??0,O=c.R??0,_={pos:new o.Vector3(0,0,0),localY:new o.Vector3(0,1,0),localX:new o.Vector3(1,0,0),localZ:new o.Vector3(0,0,1)};if(!p&&!y)return w;if(w.push(_.pos.clone()),P!==0){const h=new o.Matrix4().makeRotationAxis(_.localY,D(P));_.localX.applyMatrix4(h),_.localZ.applyMatrix4(h)}if(p>0&&(_.pos.add(_.localY.clone().multiplyScalar(p*ne)),w.push(_.pos.clone())),y>0&&O>0){const h=D(y),N=O*ne,X=_.pos.clone().add(_.localX.clone().multiplyScalar(-N)),q=Math.max(16,Math.ceil(y/5));for(let $=1;$<=q;$++){const ee=h*$/q,V=new o.Matrix4().makeRotationAxis(_.localZ,ee),J=_.localX.clone().multiplyScalar(N).applyMatrix4(V),W=X.clone().add(J);w.push(W)}}return w},g=c=>{const w=m.slice(0,c+1),p=j(w),P=Math.max(0,x.value-p),y=[];y.push(new o.Vector3(0,0,0));const O=new o.Vector3(0,P*ne,0);P>0&&y.push(O);let _={pos:O.clone(),localY:new o.Vector3(0,1,0),localX:new o.Vector3(1,0,0),localZ:new o.Vector3(0,0,1)};const h=[];for(let N=w.length-1;N>=0;N--){const X=w[N],q=U(X);if(q.length>0){const $=q.map(J=>{const W=J.clone(),de=new o.Matrix4;return de.makeBasis(_.localX,_.localY,_.localZ),W.applyMatrix4(de),W.add(_.pos)});h.push($);const ee=$[$.length-1];_.pos=ee.clone();const V=X.B??0,G=X.C??0;if(V!==0){const J=new o.Matrix4().makeRotationAxis(_.localY,D(V));_.localX.applyMatrix4(J),_.localZ.applyMatrix4(J)}if(G>0){const J=D(G),W=new o.Matrix4().makeRotationAxis(_.localZ,J);_.localY.applyMatrix4(W),_.localX.applyMatrix4(W)}}}for(const N of h)N.length>1&&y.push(...N.slice(1));y.length<2&&y.push(new o.Vector3(0,.001,0));try{const N=new o.CatmullRomCurve3(y,!1,"catmullrom",.01),X=new o.TubeGeometry(N,Math.max(2,y.length*4),b.value*ne,18,!1);r.value.geometry.dispose(),r.value.geometry=X}catch(N){console.error("管件更新失败",N)}},d=(c,w)=>{c&&(Object.keys(c).forEach(p=>{const P=c[p],y=s.value.find(O=>O.name===p);y&&(y.currentValue=P,i.model&&i.model.setJointValue?i.model.setJointValue(p,P):y.urdfJoint&&y.urdfJoint.setJointValue(P))}),g(w))},S=(c,w,p)=>c+(w-c)*p,Y=(c,w,p)=>{if(!c||!w)return c||w;const P={};return Object.keys(c).forEach(y=>{const O=c[y],_=w[y];P[y]=S(O,_||O,p)}),P},Z=()=>{if(m.length===0){console.warn("没有动画数据");return}R(),M.value=!0,A.value=!1;const c=()=>{if(!M.value||A.value)return;const w=T.value/re,p=L.value,P=m[L.value],y=m[L.value+1];if(y){const O=Y(P,y,w);d(O,p)}else d(P,p);if(T.value++,T.value>=re&&(T.value=0,L.value++,L.value>=m.length-1)){H();return}u.value=setTimeout(c,n())};c()},z=()=>{A.value=!0,u.value&&(clearTimeout(u.value),u.value=null)},H=()=>{M.value=!1,A.value=!1,v.value=1,u.value&&(clearTimeout(u.value),u.value=null)};t({startAnimation:Z,pauseAnimation:z,stopAnimation:H,resetAll:()=>{H(),L.value=0,T.value=0,s.value.forEach(c=>{(c.type==="revolute"||c.type==="prismatic")&&B(c.name,0)})},fastForward:()=>{v.value<4&&(v.value=Math.min(4,v.value*2))},fastBackward:()=>{v.value>.25&&(v.value=Math.max(.25,v.value/2))}}),e.watch(()=>i.model,c=>{c?(l.value=c,s.value=F(c)):s.value=[]},{immediate:!0});const oe=()=>{!i.model||M.value&&!A.value||s.value.forEach(c=>{c.urdfJoint&&c.urdfJoint.angle!==void 0&&(c.currentValue=c.urdfJoint.angle)})},se=()=>{const c=()=>{oe(),f.value=requestAnimationFrame(c)};c()},ae=()=>{f.value&&(cancelAnimationFrame(f.value),f.value=null)};return e.onMounted(()=>{se()}),e.onUnmounted(()=>{ae(),H()}),(c,w)=>(e.openBlock(),e.createElementBlock("div",Fe,[s.value.length>0?(e.openBlock(),e.createElementBlock("div",Be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,p=>{var P,y,O,_;return e.openBlock(),e.createElementBlock("div",{key:p.name,class:"joint-item"},[e.createElementVNode("div",Ye,[e.createElementVNode("div",Ze,[e.createElementVNode("span",He,e.toDisplayString(p.name),1),e.createElementVNode("span",Ke," ["+e.toDisplayString(((P=p.limit)==null?void 0:P.lower.toFixed(2))??(p.type==="revolute"?"-3.14":"-1.00"))+", "+e.toDisplayString(((y=p.limit)==null?void 0:y.upper.toFixed(2))??(p.type==="revolute"?"3.14":"1.00"))+"] ",1)]),e.createElementVNode("span",Xe,e.toDisplayString(p.type),1)]),p.type==="revolute"||p.type==="prismatic"?(e.openBlock(),e.createElementBlock("div",$e,[e.createElementVNode("div",Ge,[e.createElementVNode("input",{type:"range",min:((O=p.limit)==null?void 0:O.lower)??(p.type==="revolute"?-Math.PI:-1),max:((_=p.limit)==null?void 0:_.upper)??(p.type==="revolute"?Math.PI:1),step:.01,value:p.currentValue,onInput:h=>B(p.name,h.target.value),class:"joint-slider",disabled:M.value&&!A.value},null,40,Je)]),e.createElementVNode("div",qe,[e.createElementVNode("span",We,e.toDisplayString(p.currentValue.toFixed(3)),1),e.createElementVNode("span",Qe,e.toDisplayString(p.type==="revolute"?"rad":"m"),1)])])):e.createCommentVNode("",!0)])}),128))])):(e.openBlock(),e.createElementBlock("div",et,w[0]||(w[0]=[e.createElementVNode("p",null,"未检测到可控制的关节",-1)])))]))}},it=te._export_sfc(ot,[["__scopeId","data-v-efaa40d4"]]),nt=["xlink:href"],st=e.defineComponent({__name:"svgIcon",props:{backgroundColor:{default:"#f0f0f0"},prefix:{default:"icon"},name:{},size:{default:16},spin:{type:Boolean,default:!1},active:{type:Boolean,default:!1}},setup(a){const t=a,i=e.computed(()=>({backgroundColor:t.backgroundColor})),s=e.computed(()=>`#${t.prefix}-${t.name}`),l=e.computed(()=>{const{size:f}=t;let b=`${f}`;return b=`${b.replace("px","")}px`,{width:b,height:b}});return(f,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["container",{active:f.active}]),style:e.normalizeStyle(i.value)},[(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["svg-icon",[f.$attrs.class,f.spin&&"svg-icon-spin"]]),style:e.normalizeStyle(l.value),"aria-hidden":"true"},[e.createElementVNode("use",{"xlink:href":s.value},null,8,nt)],6))],6))}}),C=te._export_sfc(st,[["__scopeId","data-v-3150a90b"]]),at={class:"obj-viewer-container"},lt={class:"buttonGroup-top"},rt={class:"buttonGroup-topLeft"},ct={class:"buttonGroup-left"},ht={class:"buttonGroup-right"},ut={class:"buttonGroup-bottom"},dt={class:"left-panel"},pt={class:"panel-header"},mt={key:1,class:"clipping-content"},ft={class:"radio-group"},_t={class:"radio-label"},gt={class:"radio-label"},yt={class:"radio-label"},vt={class:"radio-label"},bt={class:"right-panel"},wt={class:"panel-header"},Et={key:0,class:"loading-overlay"},Pt={__name:"threeModel",props:{animationData:{type:Object,default:()=>{}}},emits:["getAnimationData"],setup(a,{expose:t,emit:i}){const s=i,l=a;let f=null,b=!1;const r=e.ref(null),x=e.ref(!1),M=e.ref("");e.ref(!1);const A=e.ref(!1),L=e.ref(!1),T=e.ref(""),u=e.ref(!1),D=e.ref(""),v=e.ref(),{currentModels:n,initialCameraPosition:m,initialTargetPosition:E,initThreeJS:R,handleResize:F,fitCameraToAllModels:B,getThreeJSObjects:j,clearAllModels:U,cleanup:g}=Ce(r),{isAnimating:d,toggleAnimation:S,stopAnimation:Y}=Ae(j,n),{isClipping:Z,activeClippingAxis:z,toggleClipping:H,updateClippingPlanes:Q}=Ne(j,n),{addModelsFromUrls:he,loadModelByDefaultPath:ue,urdfModel:oe}=o.useModelLoader(j,n,x,M,U),se=()=>{if(A.value||n.value.length===0)return;A.value=!0,d.value&&Y();const{camera:_,controls:h}=j();if(!_||!h)return;h.enabled=!0;const N=G=>G<.5?4*G*G*G:1-Math.pow(-2*G+2,3)/2,X=_.position.clone(),q=h.target.clone(),$=1500,ee=Date.now(),V=()=>{const G=Date.now()-ee,J=Math.min(G/$,1),W=N(J);_.position.lerpVectors(X,m.value,W),h.target.lerpVectors(q,E.value,W),J<1?requestAnimationFrame(V):A.value=!1};V()},ae=async()=>b?Promise.resolve():new Promise(_=>{const h=()=>{b?_():requestAnimationFrame(h)};h()}),c=async(_,h)=>{try{await ae(),d.value&&Y(),Z.value&&H();const N=await h(_);return B(),N}catch(N){throw console.error("加载模型失败:",N),N}},w=async _=>c(_,he),p=async _=>c(_,ue),P=_=>{L.value=!0,T.value=_,_==="剖面视图"&&!Z.value&&H()},y=_=>{u.value=!0,D.value=_},O=()=>{s("getAnimationData"),e.nextTick(()=>{var _;(_=v.value)==null||_.startAnimation()})};return e.onMounted(async()=>{await e.nextTick();try{R(),f=j().scene,b=!0,window.addEventListener("resize",F)}catch(_){console.error("Three.js初始化失败:",_)}}),e.onBeforeUnmount(()=>{b=!1,T.value="",D.value="",window.removeEventListener("resize",F),d.value&&Y(),g()}),t({addModelsFromUrls:w,loadModelByDefaultPath:p}),(_,h)=>{var X,q,$,ee;const N=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",at,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:r,class:"threejs-container"},null,512),e.createElementVNode("div",lt,[e.createVNode(C,{name:"guanjianjiexi",size:"34"}),e.createVNode(C,{name:"guanjiekongzhi",size:"34"}),e.createVNode(C,{name:"gongyishengcheng",size:"34"}),e.createVNode(C,{name:"buchangshezhi",size:"34"}),e.createVNode(C,{name:"shuchujiagongchengxu",size:"34"})]),e.createElementVNode("div",rt,[e.createVNode(C,{name:"viewReset",size:"24",onClick:se,title:"重置"}),e.createVNode(C,{name:"fangda",size:"24",title:"放大"}),e.createVNode(C,{name:"suoxiao",size:"24",title:"缩小"}),e.createVNode(C,{name:"lookAround",size:"24",onClick:e.unref(S),title:e.unref(d)?"停止动画":"动画视图"},null,8,["onClick","title"])]),e.createElementVNode("div",ct,[e.createVNode(C,{name:"jiegoushu",size:"24",onClick:h[0]||(h[0]=V=>P("场景树")),active:L.value&&T.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(C,{name:"clipping",size:"24",onClick:h[1]||(h[1]=V=>P("剖面视图")),active:L.value&&T.value==="剖面视图",title:"剖面视图"},null,8,["active"]),e.createVNode(C,{name:"donghuafangzhen",size:"24",onClick:h[2]||(h[2]=V=>P("场景树3"))}),e.createVNode(C,{name:"donghuafangzhen",size:"24",onClick:h[3]||(h[3]=V=>P("场景4"))})]),e.createElementVNode("div",ht,[e.createVNode(C,{name:"donghuafangzhen",size:"24"}),e.createVNode(C,{name:"donghuafangzhen",size:"24"}),e.createVNode(C,{name:"guanjiekongzhi",size:"24",onClick:h[4]||(h[4]=V=>y("关节控制")),active:u.value&&D.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(C,{name:"DongHuaFangZhen",size:"24",title:"动画仿真",onClick:h[5]||(h[5]=V=>y("动画仿真")),active:u.value&&D.value==="动画仿真"},null,8,["active"]),e.createVNode(C,{name:"donghuafangzhen",size:"24"}),e.createVNode(C,{name:"donghuafangzhen",size:"24"})]),e.createElementVNode("div",ut,[e.createVNode(C,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:(X=v.value)==null?void 0:X.fastBackward},null,8,["onClick"]),e.createVNode(C,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:O}),e.createVNode(C,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:(q=v.value)==null?void 0:q.fastForward},null,8,["onClick"]),e.createVNode(C,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:($=v.value)==null?void 0:$.pauseAnimation},null,8,["onClick"]),e.createVNode(C,{name:"zhongzhi",size:"24",backgroundColor:"#ffffff",title:"停止",onClick:(ee=v.value)==null?void 0:ee.resetAll},null,8,["onClick"])]),e.withDirectives(e.createElementVNode("div",dt,[e.createElementVNode("div",pt,[e.createElementVNode("span",null,e.toDisplayString(T.value),1),e.createElementVNode("span",{class:"close",onClick:h[6]||(h[6]=V=>L.value=!1)}," X ")]),e.createVNode(N,{"max-height":"650px"},{default:e.withCtx(()=>[T.value==="场景树"?(e.openBlock(),e.createBlock(Ue,{key:0,model:e.unref(oe)},null,8,["model"])):e.createCommentVNode("",!0),T.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",mt,[e.createElementVNode("div",ft,[e.createElementVNode("label",_t,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":h[7]||(h[7]=V=>e.isRef(z)?z.value=V:null),onChange:h[8]||(h[8]=(...V)=>e.unref(Q)&&e.unref(Q)(...V))},null,544),[[e.vModelRadio,e.unref(z)]]),h[16]||(h[16]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",gt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":h[9]||(h[9]=V=>e.isRef(z)?z.value=V:null),onChange:h[10]||(h[10]=(...V)=>e.unref(Q)&&e.unref(Q)(...V))},null,544),[[e.vModelRadio,e.unref(z)]]),h[17]||(h[17]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",yt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":h[11]||(h[11]=V=>e.isRef(z)?z.value=V:null),onChange:h[12]||(h[12]=(...V)=>e.unref(Q)&&e.unref(Q)(...V))},null,544),[[e.vModelRadio,e.unref(z)]]),h[18]||(h[18]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",vt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":h[13]||(h[13]=V=>e.isRef(z)?z.value=V:null),onChange:h[14]||(h[14]=(...V)=>e.unref(Q)&&e.unref(Q)(...V))},null,544),[[e.vModelRadio,e.unref(z)]]),h[19]||(h[19]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})],512),[[e.vShow,L.value]]),e.withDirectives(e.createElementVNode("div",bt,[e.createElementVNode("div",wt,[e.createElementVNode("span",null,e.toDisplayString(D.value),1),e.createElementVNode("span",{class:"close",onClick:h[15]||(h[15]=V=>u.value=!1)}," X ")]),e.createVNode(N,{"max-height":"650px"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(it,{ref_key:"jointRef",ref:v,model:e.unref(oe),scene:e.unref(f),animationData:l==null?void 0:l.animationData},null,8,["model","scene","animationData"]),[[e.vShow,D.value==="关节控制"]]),e.withDirectives(e.createVNode(Oe,{animationData:l==null?void 0:l.animationData},null,8,["animationData"]),[[e.vShow,D.value==="动画仿真"]])]),_:1})],512),[[e.vShow,u.value]]),x.value?(e.openBlock(),e.createElementBlock("div",Et,[h[20]||(h[20]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(M.value),1)])):e.createCommentVNode("",!0)])}}},Mt=te._export_sfc(Pt,[["__scopeId","data-v-14112288"]]);exports.default=Mt;
@@ -1,42 +0,0 @@
1
- # CAD Exchanger 3.24.0 (cadexchanger.com)
2
- # Material Count: 5
3
-
4
- newmtl Material_1
5
- Ns 0.000000
6
- Ka 0.200000 0.200000 0.200000
7
- Kd 0.666667 0.666667 0.666667
8
- Ks 0.000000 0.000000 0.000000
9
- Ke 0.000000 0.000000 0.000000
10
- d 1.000000
11
-
12
- newmtl Material_2
13
- Ns 0.000000
14
- Ka 0.200000 0.200000 0.200000
15
- Kd 0.133333 0.133333 0.133333
16
- Ks 0.000000 0.000000 0.000000
17
- Ke 0.000000 0.000000 0.000000
18
- d 1.000000
19
-
20
- newmtl Material_3
21
- Ns 0.000000
22
- Ka 0.200000 0.200000 0.200000
23
- Kd 0.733333 0.733333 0.733333
24
- Ks 0.000000 0.000000 0.000000
25
- Ke 0.000000 0.000000 0.000000
26
- d 1.000000
27
-
28
- newmtl Material_5
29
- Ns 0.000000
30
- Ka 0.200000 0.200000 0.200000
31
- Kd 0.396078 0.941176 0.450980
32
- Ks 0.000000 0.000000 0.000000
33
- Ke 0.000000 0.000000 0.000000
34
- d 1.000000
35
-
36
- newmtl Material_4
37
- Ns 0.000000
38
- Ka 0.200000 0.200000 0.200000
39
- Kd 1.000000 1.000000 0.000000
40
- Ks 0.000000 0.000000 0.000000
41
- Ke 0.000000 0.000000 0.000000
42
- d 1.000000