ss-component-new 1.2.149 → 1.2.151

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 (63) hide show
  1. package/dist/{index-i1LAk7xi.js → index-7DELdi9r.js} +1 -1
  2. package/dist/{index-XBad8y7M.cjs → index-8wS2qFqg.cjs} +1 -1
  3. package/dist/{index-Ce6Xth3g.cjs → index-B4Dav25z.cjs} +1 -1
  4. package/dist/{index-Du2FYs3S.js → index-B6eTEaGv.js} +1 -1
  5. package/dist/{index-DVt1L2ot.cjs → index-BEFCGgLz.cjs} +1 -1
  6. package/dist/{index-Dzf_vkuc.cjs → index-BHtPwXUo.cjs} +1 -1
  7. package/dist/{index-v2S671fD.cjs → index-BOyFi91b.cjs} +1 -1
  8. package/dist/{index-8DB3lotY.cjs → index-BSL9W2d7.cjs} +1 -1
  9. package/dist/{index-DLF7ygmQ.cjs → index-BhG4_Tfo.cjs} +1 -1
  10. package/dist/{index-DDxP42fR.js → index-C0WirylR.js} +2 -2
  11. package/dist/{index-D17vnpLv.js → index-C2hU6rEK.js} +2 -2
  12. package/dist/{index-MAzQB5DM.js → index-C2jpY6gn.js} +1 -1
  13. package/dist/{index-rFb5Uov-.js → index-CAeRUyFF.js} +1 -1
  14. package/dist/{index-CYhJ15gW.js → index-CDju2pWS.js} +3 -3
  15. package/dist/{index-Cyvjf1Tt.cjs → index-CFjrHQH6.cjs} +1 -1
  16. package/dist/{index-CUlDR7dI.cjs → index-CMCCG94d.cjs} +1 -1
  17. package/dist/{index-DInx9Y4c.cjs → index-COqzfjzR.cjs} +1 -1
  18. package/dist/{index-CBqtxIIl.js → index-CSYiATH1.js} +1 -1
  19. package/dist/{index-B4sIGL0m.cjs → index-ChFX--GQ.cjs} +1 -1
  20. package/dist/{index-MV4QQgNN.js → index-CjXkQVcN.js} +1 -1
  21. package/dist/{index-BtaWtnC-.cjs → index-CzTzKK_O.cjs} +1 -1
  22. package/dist/{index-BErrbVUP.cjs → index-D32cMyo0.cjs} +1 -1
  23. package/dist/{index-DsLrebPb.js → index-D4ojc0S5.js} +1 -1
  24. package/dist/{index-aGamYrWo.js → index-D5XWQUk3.js} +1 -1
  25. package/dist/{index-s6qOGT1h.js → index-D6K8NNPh.js} +1 -1
  26. package/dist/{index-DImtWATy.js → index-DAl6CucA.js} +4 -4
  27. package/dist/{index-BvDxElun.js → index-DDfjNHBy.js} +11 -11
  28. package/dist/{index-BmyV7Fva.cjs → index-DSuXYMr_.cjs} +1 -1
  29. package/dist/{index-BFVfpBbP.cjs → index-DdfPRTL5.cjs} +1 -1
  30. package/dist/{index-CTGO4Ewf.js → index-Del2eFi6.js} +2 -2
  31. package/dist/{index-BoAYS22J.cjs → index-DmvdN8lL.cjs} +1 -1
  32. package/dist/{index-Bi_W4w_v.cjs → index-DySdRNBj.cjs} +1 -1
  33. package/dist/{index-BAIey5tR.cjs → index-HWUcNziq.cjs} +1 -1
  34. package/dist/{index-PiOLeC-k.js → index-TAspRdCx.js} +3 -3
  35. package/dist/{index-BmZdiLNN.js → index-XRYZm_qy.js} +5 -5
  36. package/dist/{index-DaTfC7jm.js → index-_-tamaLy.js} +2 -2
  37. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-BvzIzj42.js → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-BQhXFHYQ.js} +4 -4
  38. package/dist/{index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-DDaQ7fMJ.cjs → index.vue_vue_type_style_index_0_scoped_0b6f1a18_lang-CmYgfyIU.cjs} +1 -1
  39. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-D1ClG0E4.js → index.vue_vue_type_style_index_0_scoped_92477073_lang-CqW-0H8X.js} +2 -2
  40. package/dist/{index.vue_vue_type_style_index_0_scoped_92477073_lang-TGvcTKst.cjs → index.vue_vue_type_style_index_0_scoped_92477073_lang-oXfc3hdG.cjs} +1 -1
  41. package/dist/{index.vue_vue_type_style_index_1_lang-BfqM0yXd.js → index.vue_vue_type_style_index_1_lang-C8g4AgUY.js} +1 -1
  42. package/dist/{index.vue_vue_type_style_index_1_lang-v7PqBRK1.cjs → index.vue_vue_type_style_index_1_lang-D2meTSOH.cjs} +1 -1
  43. package/dist/{main-IXvpvF2s.js → main-BBvXwMzi.js} +2 -2
  44. package/dist/{main-DHcbTBTz.cjs → main-jFoMsjK_.cjs} +1 -1
  45. package/dist/ss-component.cjs +1 -1
  46. package/dist/ss-component.css +1 -1
  47. package/dist/ss-component.js +6 -6
  48. package/dist/ss-component2.cjs +1 -1
  49. package/dist/ss-component2.js +10 -10
  50. package/dist/{threeModel-BPxq2m7t.cjs → threeModel-CSnXvZ94.cjs} +1 -1
  51. package/dist/{threeModel-CoXosFb7.js → threeModel-CdfvEjKV.js} +2 -2
  52. package/dist/{threeSceneView-B1GA1qKg.js → threeSceneView-AmMO5tkE.js} +2 -2
  53. package/dist/{threeSceneView-CXRpJ7eO.cjs → threeSceneView-CWPYN102.cjs} +1 -1
  54. package/dist/{threeSceneViewForCPMPIP-Crd1kNSF.js → threeSceneViewForCPMPIP-CXN75l03.js} +61 -61
  55. package/dist/threeSceneViewForCPMPIP-DHXHT5MM.cjs +1 -0
  56. package/dist/{threeTrackPathView-BQaL9BrB.cjs → threeTrackPathView-C5nEpc3L.cjs} +1 -1
  57. package/dist/{threeTrackPathView-BseOiC1G.js → threeTrackPathView-el7dDO8-.js} +1 -1
  58. package/dist/{threeViewerHost-DBute_QP.cjs → threeViewerHost-C0peX0tH.cjs} +1 -1
  59. package/dist/{threeViewerHost-CGRUSgAm.js → threeViewerHost-DFr6IPZq.js} +1 -1
  60. package/dist/{workpieceTreePanel-C5KOCwQM.cjs → workpieceTreePanel-Bbo1zDTZ.cjs} +1 -1
  61. package/dist/{workpieceTreePanel-Bbq7yU0e.js → workpieceTreePanel-BiyrnaZH.js} +2 -2
  62. package/package.json +1 -1
  63. package/dist/threeSceneViewForCPMPIP-DN29gK4N.cjs +0 -1
@@ -1,16 +1,16 @@
1
- import { defineComponent as Pe, computed as A, ref as m, resolveComponent as W, createElementBlock as K, openBlock as O, createElementVNode as a, createVNode as c, withCtx as q, toDisplayString as V, watch as H, inject as he, shallowRef as se, onMounted as ot, nextTick as we, onBeforeUnmount as lt, withDirectives as z, createCommentVNode as I, vShow as J, unref as v, renderSlot as ie, createBlock as _e, isRef as re, vModelRadio as ue } from "vue";
1
+ import { defineComponent as Pe, computed as z, ref as m, resolveComponent as W, createElementBlock as K, openBlock as O, createElementVNode as a, createVNode as c, withCtx as q, toDisplayString as V, watch as H, inject as he, shallowRef as se, onMounted as ot, nextTick as _e, onBeforeUnmount as lt, withDirectives as A, createCommentVNode as I, vShow as J, unref as v, renderSlot as ie, createBlock as we, isRef as re, vModelRadio as ue } from "vue";
2
2
  import { aw as st } from "./index.vue_vue_type_style_index_1_lang-DCNwSjkL.js";
3
- import { s as xe, u as it, a as rt, U as ut, W as ct } from "./workpieceTreePanel-Bbq7yU0e.js";
3
+ import { s as xe, u as it, a as rt, U as ut, W as ct } from "./workpieceTreePanel-BiyrnaZH.js";
4
4
  import { u as dt, a as vt, b as mt } from "./iconfont-Bc_1QADn.js";
5
5
  import { E as Q } from "./index-BUYYl2Pc.js";
6
- import { w as pt, aF as ft, a5 as bt, ag as gt, ao as ze, k as yt, y as ht, ah as Ce, V as wt, s as ke } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-D9pbpHt3.js";
7
- import { U as _t, J as xt, d as Ct } from "./urdfTree-B5ODHHDI.js";
8
- import { b as kt, c as Pt } from "./threeViewerHost-CGRUSgAm.js";
9
- import { _ as Ae } from "./_plugin-vue_export-helper-CHgC5LLL.js";
6
+ import { w as pt, aF as ft, a5 as bt, ag as gt, ao as Ae, k as yt, y as ht, ah as Ce, V as _t, s as ke } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-D9pbpHt3.js";
7
+ import { U as wt, J as xt, d as Ct } from "./urdfTree-B5ODHHDI.js";
8
+ import { b as kt, c as Pt } from "./threeViewerHost-DFr6IPZq.js";
9
+ import { _ as ze } from "./_plugin-vue_export-helper-CHgC5LLL.js";
10
10
  import { T as y } from "./svgIcon-D-_fXUBL.js";
11
- import { O as zt } from "./MTLLoader-o-YPPeZl.js";
12
- import { L as At, j as Tt } from "./index-DImtWATy.js";
13
- const Ut = async (p) => await new zt().loadAsync(p);
11
+ import { O as At } from "./MTLLoader-o-YPPeZl.js";
12
+ import { L as zt, j as Tt } from "./index-DAl6CucA.js";
13
+ const Ut = async (p) => await new At().loadAsync(p);
14
14
  function Mt(p) {
15
15
  if (p.length % 3 !== 0)
16
16
  return console.error("points array length is not a multiple of 3:", p), null;
@@ -25,14 +25,14 @@ function Mt(p) {
25
25
  size: 0.4,
26
26
  // 像素世界单位
27
27
  sizeAttenuation: !1
28
- }), u = new ze(h, i);
28
+ }), u = new Ae(h, i);
29
29
  return i.needsUpdate = !0, u;
30
30
  }
31
31
  const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (p) => {
32
32
  const h = await Vt(p);
33
33
  return (await Nt(h)).map((u) => {
34
34
  const r = { x: 0, y: 0, z: 0, b: 0, c: 0, x_axis: 0, y_axis: 0, z_axis: 0 };
35
- return r.x_axis = u.X轴, r.y_axis = u.Y轴, r.z_axis = u.Z轴, r.b = u.B轴, r.c = u.C轴, r.x = u.X, r.y = u.Y, r.z = u.Z, r;
35
+ return r.x_axis = u.X_Axis, r.y_axis = u.Y_Axis, r.z_axis = u.Z_Axis, r.b = u.B_Axis, r.c = u.C_Axis, r.x = u.X, r.y = u.Y, r.z = u.Z, r;
36
36
  });
37
37
  }, Lt = { class: "panel-content" }, $t = { class: "animation-controls" }, jt = { class: "control-row" }, Dt = { class: "control-row" }, Ft = { class: "frame-info" }, Ot = { class: "control-row" }, St = /* @__PURE__ */ Pe({
38
38
  __name: "bladeTrackPanel",
@@ -43,7 +43,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
43
43
  },
44
44
  emits: ["getThreeData"],
45
45
  setup(p, { expose: h, emit: T }) {
46
- const i = p, u = A(() => i.xyzbcList), r = m(!1), d = m(0), k = m(100);
46
+ const i = p, u = z(() => i.xyzbcList), r = m(!1), d = m(0), k = m(100);
47
47
  let S = !1;
48
48
  const ce = {
49
49
  bladeAxis: "叶片模型位置"
@@ -58,13 +58,13 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
58
58
  if (o < 0 || o >= u.value.length)
59
59
  return null;
60
60
  const l = u.value[o], n = R(ce.bladeAxis);
61
- return n ? new wt(l.x, l.y, l.z).applyMatrix4(n) : null;
61
+ return n ? new _t(l.x, l.y, l.z).applyMatrix4(n) : null;
62
62
  }, de = (o, l) => {
63
63
  o && o.setJointValues(l);
64
- }, ve = (o, l, n, g, w) => {
64
+ }, ve = (o, l, n, g, _) => {
65
65
  const $ = {
66
66
  B_Axis: ke.degToRad(g),
67
- C_Axis: ke.degToRad(w),
67
+ C_Axis: ke.degToRad(_),
68
68
  X_Axis: o,
69
69
  Y_Axis: l,
70
70
  Z_Axis: n
@@ -77,12 +77,12 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
77
77
  o.traverse((n) => {
78
78
  (n.name === "TrajectoryPoints" || n.name === "TrajectoryLine") && l.push(n);
79
79
  }), l.forEach((n) => {
80
- o.remove(n), (n instanceof yt || n instanceof ze || n instanceof ht) && (n.geometry && n.geometry.dispose(), n.material && (Array.isArray(n.material) ? n.material.forEach((g) => {
80
+ o.remove(n), (n instanceof yt || n instanceof Ae || n instanceof ht) && (n.geometry && n.geometry.dispose(), n.material && (Array.isArray(n.material) ? n.material.forEach((g) => {
81
81
  g instanceof Ce && g.dispose();
82
82
  }) : n.material instanceof Ce && n.material.dispose()));
83
83
  });
84
84
  }, E = (o) => {
85
- var g, w, $;
85
+ var g, _, $;
86
86
  Z();
87
87
  const l = [];
88
88
  for (let M = 0; M <= o; M++) {
@@ -91,7 +91,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
91
91
  }
92
92
  P.value && ((g = i.scene) == null || g.remove(P.value));
93
93
  const n = Mt(l);
94
- n && (n.name = "TrajectoryPoints", P.value = n, ($ = (w = i.scene) == null ? void 0 : w.add) == null || $.call(w, n));
94
+ n && (n.name = "TrajectoryPoints", P.value = n, ($ = (_ = i.scene) == null ? void 0 : _.add) == null || $.call(_, n));
95
95
  }, Y = (o) => `第 ${o + 1} 帧`, X = (o) => {
96
96
  if (o < 0 || o >= u.value.length) {
97
97
  console.error(`帧索引 ${o} 超出范围`);
@@ -136,11 +136,11 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
136
136
  return h({ playAnimation: D, stopAnimation: N, forwardFrame: B, backwardFrame: C, resetAnimationFrame: L, reset: async () => {
137
137
  await N(), Z(), L();
138
138
  } }), (o, l) => {
139
- const n = W("el-input-number"), g = W("el-form-item"), w = W("el-form"), $ = W("el-slider");
139
+ const n = W("el-input-number"), g = W("el-form-item"), _ = W("el-form"), $ = W("el-slider");
140
140
  return O(), K("div", Lt, [
141
141
  a("div", $t, [
142
142
  a("div", jt, [
143
- c(w, {
143
+ c(_, {
144
144
  "label-width": "auto",
145
145
  style: { width: "100%" }
146
146
  }, {
@@ -187,7 +187,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
187
187
  ]);
188
188
  };
189
189
  }
190
- }), Rt = /* @__PURE__ */ Ae(St, [["__scopeId", "data-v-286bad75"]]), Et = async (p) => await Ut(p), Xt = { class: "obj-viewer-container" }, Jt = { class: "buttonGroup-topLeft" }, Wt = { class: "buttonGroup-left" }, Zt = { class: "buttonGroup-right" }, Yt = { class: "buttonGroup-bottom" }, Gt = { class: "top-panel" }, It = { class: "panel-header" }, Kt = { class: "panel-body" }, Ht = { class: "left-panel" }, qt = { class: "panel-header" }, Qt = { class: "panel-body" }, ea = {
190
+ }), Rt = /* @__PURE__ */ ze(St, [["__scopeId", "data-v-286bad75"]]), Et = async (p) => await Ut(p), Xt = { class: "obj-viewer-container" }, Jt = { class: "buttonGroup-topLeft" }, Wt = { class: "buttonGroup-left" }, Zt = { class: "buttonGroup-right" }, Yt = { class: "buttonGroup-bottom" }, Gt = { class: "top-panel" }, It = { class: "panel-header" }, Kt = { class: "panel-body" }, Ht = { class: "left-panel" }, qt = { class: "panel-header" }, Qt = { class: "panel-body" }, ea = {
191
191
  key: 1,
192
192
  class: "clipping-content"
193
193
  }, ta = { class: "radio-group" }, aa = { class: "radio-label" }, na = { class: "radio-label" }, oa = { class: "radio-label" }, la = { class: "radio-label" }, sa = { class: "right-panel" }, ia = { class: "panel-header" }, ra = { class: "panel-body" }, ua = {
@@ -204,27 +204,27 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
204
204
  },
205
205
  emits: ["getAnimationData", "getThreeData"],
206
206
  setup(p, { emit: h }) {
207
- const T = h, i = p, u = he("setManagementPageTitle"), r = he("setManagementPageVisible"), d = A(() => {
207
+ const T = h, i = p, u = he("setManagementPageTitle"), r = he("setManagementPageVisible"), d = z(() => {
208
208
  var e, s;
209
209
  return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.machine;
210
- }), k = A(() => {
210
+ }), k = z(() => {
211
211
  var e;
212
212
  return (e = d == null ? void 0 : d.value) == null ? void 0 : e.产品型号;
213
- }), S = A(() => {
213
+ }), S = z(() => {
214
214
  var e;
215
215
  return (e = d == null ? void 0 : d.value) == null ? void 0 : e.编号;
216
- }), ce = A(() => {
216
+ }), ce = z(() => {
217
217
  var e;
218
218
  return (e = d == null ? void 0 : d.value) == null ? void 0 : e.厂家;
219
- }), P = A(() => {
219
+ }), P = z(() => {
220
220
  var e, s;
221
221
  return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.workpieceInfo;
222
- }), R = A(() => {
222
+ }), R = z(() => {
223
223
  var e, s;
224
224
  return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.knife;
225
225
  }), ee = m([]), de = async (t) => {
226
226
  !t || !t.isExtra || (await ve(t), u == null || u(t == null ? void 0 : t.pageName), r == null || r(!0));
227
- }, ve = At(async (t) => {
227
+ }, ve = zt(async (t) => {
228
228
  await Tt();
229
229
  const { mainKey: e, baseMenuPath: s } = t || {};
230
230
  st(s, e);
@@ -232,7 +232,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
232
232
  H(
233
233
  () => [k.value, P.value, R.value],
234
234
  () => {
235
- var _, f, ge, ye;
235
+ var w, f, ge, ye;
236
236
  const t = [], e = {
237
237
  pageName: "机床",
238
238
  name: "机床",
@@ -266,7 +266,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
266
266
  };
267
267
  P.value && s.children.push({
268
268
  isExtra: !0,
269
- type: (_ = P.value) == null ? void 0 : _.type,
269
+ type: (w = P.value) == null ? void 0 : w.type,
270
270
  pageName: "工件",
271
271
  mainKey: (f = P.value) == null ? void 0 : f.name,
272
272
  label: (ge = P.value) == null ? void 0 : ge.name,
@@ -295,7 +295,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
295
295
  immediate: !0
296
296
  }
297
297
  );
298
- const Z = m([]), E = A(() => {
298
+ const Z = m([]), E = z(() => {
299
299
  var e, s;
300
300
  return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.csvUrl;
301
301
  });
@@ -307,10 +307,10 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
307
307
  }, {
308
308
  immediate: !0
309
309
  });
310
- const Y = A(() => {
310
+ const Y = z(() => {
311
311
  var e, s;
312
312
  return (s = (e = i == null ? void 0 : i.threeData) == null ? void 0 : e.data) == null ? void 0 : s.bladeObjUrl;
313
- }), X = m(xe.ROBOT), D = m(null), N = m(!1), te = m(""), B = m(!1), C = m(""), L = m(!1), U = m(""), o = m(!1), l = m(""), n = se(null), g = m(null), w = m("叶片模型"), $ = se(null), M = se(null), F = se(null);
313
+ }), X = m(xe.ROBOT), D = m(null), N = m(!1), te = m(""), B = m(!1), C = m(""), L = m(!1), U = m(""), o = m(!1), l = m(""), n = se(null), g = m(null), _ = m("叶片模型"), $ = se(null), M = se(null), F = se(null);
314
314
  m();
315
315
  const b = m(), {
316
316
  currentModels: ae,
@@ -331,7 +331,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
331
331
  te
332
332
  ), { isAnimating: be, toggleAnimation: De, stopAnimation: Fe } = vt(G, ae), { isClipping: Oe, activeClippingAxis: x, toggleClipping: Se, updateClippingPlanes: j } = mt(G, ae), { initRaycaster: Re, selectedObject3D: Ee, setSelectedObjVisible: Xe, updatePosition: Je, updateRotation: We, dispose: Ze } = it(D, G, ae), Ye = () => {
333
333
  Be();
334
- }, Ge = A(() => X.value === xe.ROBOT), ne = (t) => {
334
+ }, Ge = z(() => X.value === xe.ROBOT), ne = (t) => {
335
335
  B.value = !0, C.value = t, t === "剖面视图" && !Oe.value && Se();
336
336
  }, me = (t) => {
337
337
  L.value = !0, U.value = t, t === "动画仿真" && T("getAnimationData");
@@ -353,12 +353,12 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
353
353
  }, Qe = () => {
354
354
  pe(), Te(), g.value && g.value.resetToZero();
355
355
  }, et = (t, e) => Ct(t, e), tt = async (t) => {
356
- const e = et(t, w.value);
356
+ const e = et(t, _.value);
357
357
  if (M.value = e, console.log("bladeObjUrl", Y.value), e && e.parent && Y.value) {
358
358
  const s = await Et(Y.value);
359
359
  s.name = "blade_clone", e.parent.add(s), s.position.copy(e.position), s.rotation.copy(e.rotation), s.scale.copy(e.scale), e.visible = !1, $.value = s;
360
360
  } else
361
- w.value && console.warn(`在 Blade '${w.value}' 中未找到可替换的网格或其没有父级。`);
361
+ _.value && console.warn(`在 Blade '${_.value}' 中未找到可替换的网格或其没有父级。`);
362
362
  };
363
363
  H(() => i.fileBlobs, (t) => {
364
364
  if (t && t.length > 0) {
@@ -380,7 +380,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
380
380
  });
381
381
  let oe = null;
382
382
  const at = () => {
383
- Ue(), we(() => {
383
+ Ue(), _e(() => {
384
384
  D.value && (oe = new ResizeObserver(Me), oe.observe(D.value));
385
385
  });
386
386
  const t = G();
@@ -389,7 +389,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
389
389
  C.value = "", U.value = "", oe && oe.disconnect(), be.value && Fe(), pe(), Ve(), Ze();
390
390
  };
391
391
  return ot(async () => {
392
- await we();
392
+ await _e();
393
393
  try {
394
394
  at();
395
395
  } catch (t) {
@@ -400,7 +400,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
400
400
  }), (t, e) => {
401
401
  const s = W("el-scrollbar"), le = W("PipeAnalysisPanel");
402
402
  return O(), K("div", Xt, [
403
- z(a("div", {
403
+ A(a("div", {
404
404
  ref_key: "threejsContainer",
405
405
  ref: D,
406
406
  class: "threejs-container"
@@ -445,21 +445,21 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
445
445
  c(y, {
446
446
  name: "jiegoushu",
447
447
  size: "24",
448
- onClick: e[0] || (e[0] = (_) => ne("场景树")),
448
+ onClick: e[0] || (e[0] = (w) => ne("场景树")),
449
449
  active: B.value && C.value === "场景树",
450
450
  title: "场景树"
451
451
  }, null, 8, ["active"]),
452
452
  c(y, {
453
453
  name: "clipping",
454
454
  size: "24",
455
- onClick: e[1] || (e[1] = (_) => ne("剖面视图")),
455
+ onClick: e[1] || (e[1] = (w) => ne("剖面视图")),
456
456
  active: B.value && C.value === "剖面视图",
457
457
  title: "剖面视图"
458
458
  }, null, 8, ["active"]),
459
459
  c(y, {
460
460
  name: "donghuafangzhen",
461
461
  size: "24",
462
- onClick: e[2] || (e[2] = (_) => ne("工件树")),
462
+ onClick: e[2] || (e[2] = (w) => ne("工件树")),
463
463
  active: B.value && C.value === "工件树"
464
464
  }, null, 8, ["active"])
465
465
  ]),
@@ -468,7 +468,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
468
468
  c(y, {
469
469
  name: "jichuangxuanze",
470
470
  size: "24",
471
- onClick: e[3] || (e[3] = (_) => me("机床控制")),
471
+ onClick: e[3] || (e[3] = (w) => me("机床控制")),
472
472
  active: L.value && U.value === "机床控制",
473
473
  title: "机床控制"
474
474
  }, null, 8, ["active"]),
@@ -476,7 +476,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
476
476
  name: "donghuafangzhen",
477
477
  size: "24",
478
478
  title: "动画仿真",
479
- onClick: e[4] || (e[4] = (_) => me("轨迹路径")),
479
+ onClick: e[4] || (e[4] = (w) => me("轨迹路径")),
480
480
  active: L.value && U.value === "轨迹路径"
481
481
  }, null, 8, ["active"])
482
482
  ]),
@@ -510,12 +510,12 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
510
510
  onClick: Ke
511
511
  })
512
512
  ]),
513
- z(a("div", Gt, [
513
+ A(a("div", Gt, [
514
514
  a("div", It, [
515
515
  a("span", null, V(l.value), 1),
516
516
  a("span", {
517
517
  class: "close",
518
- onClick: e[5] || (e[5] = (_) => o.value = !1)
518
+ onClick: e[5] || (e[5] = (w) => o.value = !1)
519
519
  }, " X ")
520
520
  ]),
521
521
  a("div", Kt, [
@@ -529,20 +529,20 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
529
529
  ], 512), [
530
530
  [J, o.value]
531
531
  ]),
532
- z(a("div", Ht, [
532
+ A(a("div", Ht, [
533
533
  a("div", qt, [
534
534
  a("span", null, V(C.value), 1),
535
535
  a("span", {
536
536
  class: "close",
537
- onClick: e[6] || (e[6] = (_) => B.value = !1)
537
+ onClick: e[6] || (e[6] = (w) => B.value = !1)
538
538
  }, " X ")
539
539
  ]),
540
540
  a("div", Qt, [
541
541
  c(s, { height: "100%" }, {
542
542
  default: q(() => {
543
- var _;
543
+ var w;
544
544
  return [
545
- C.value === "场景树" ? (O(), _e(_t, {
545
+ C.value === "场景树" ? (O(), we(wt, {
546
546
  key: 0,
547
547
  model: n.value,
548
548
  extraNodes: ee.value,
@@ -551,7 +551,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
551
551
  C.value === "剖面视图" ? (O(), K("div", ea, [
552
552
  a("div", ta, [
553
553
  a("label", aa, [
554
- z(a("input", {
554
+ A(a("input", {
555
555
  type: "radio",
556
556
  name: "clipping-axis",
557
557
  value: "none",
@@ -564,7 +564,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
564
564
  e[16] || (e[16] = a("span", { class: "radio-text" }, "无切割", -1))
565
565
  ]),
566
566
  a("label", na, [
567
- z(a("input", {
567
+ A(a("input", {
568
568
  type: "radio",
569
569
  name: "clipping-axis",
570
570
  value: "x",
@@ -577,7 +577,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
577
577
  e[17] || (e[17] = a("span", { class: "radio-text" }, "X轴切割", -1))
578
578
  ]),
579
579
  a("label", oa, [
580
- z(a("input", {
580
+ A(a("input", {
581
581
  type: "radio",
582
582
  name: "clipping-axis",
583
583
  value: "y",
@@ -590,7 +590,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
590
590
  e[18] || (e[18] = a("span", { class: "radio-text" }, "Y轴切割", -1))
591
591
  ]),
592
592
  a("label", la, [
593
- z(a("input", {
593
+ A(a("input", {
594
594
  type: "radio",
595
595
  name: "clipping-axis",
596
596
  value: "z",
@@ -604,9 +604,9 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
604
604
  ])
605
605
  ])
606
606
  ])) : I("", !0),
607
- C.value === "工件树" ? (O(), _e(ct, {
607
+ C.value === "工件树" ? (O(), we(ct, {
608
608
  key: 2,
609
- model: (_ = v(Ee)) == null ? void 0 : _.obj,
609
+ model: (w = v(Ee)) == null ? void 0 : w.obj,
610
610
  onVisibleChange: v(Xe),
611
611
  onUpdatePosition: v(Je),
612
612
  onUpdateRotation: v(We)
@@ -619,21 +619,21 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
619
619
  ], 512), [
620
620
  [J, B.value]
621
621
  ]),
622
- z(a("div", sa, [
622
+ A(a("div", sa, [
623
623
  a("div", ia, [
624
624
  a("span", null, V(U.value), 1),
625
625
  a("span", {
626
626
  class: "close",
627
- onClick: e[15] || (e[15] = (_) => L.value = !1)
627
+ onClick: e[15] || (e[15] = (w) => L.value = !1)
628
628
  }, " X ")
629
629
  ]),
630
630
  a("div", ra, [
631
631
  c(s, { height: "100%" }, {
632
632
  default: q(() => [
633
- z(c(xt, { model: n.value }, null, 8, ["model"]), [
633
+ A(c(xt, { model: n.value }, null, 8, ["model"]), [
634
634
  [J, U.value === "机床控制"]
635
635
  ]),
636
- z(c(Rt, {
636
+ A(c(Rt, {
637
637
  robot: n.value,
638
638
  scene: F.value,
639
639
  xyzbcList: Z.value,
@@ -672,7 +672,7 @@ const Vt = async (p) => await kt(p), Nt = async (p) => await Pt(p), Bt = async (
672
672
  ]);
673
673
  };
674
674
  }
675
- }), Ma = /* @__PURE__ */ Ae(ga, [["__scopeId", "data-v-847f2783"]]);
675
+ }), Ma = /* @__PURE__ */ ze(ga, [["__scopeId", "data-v-dd2f53e0"]]);
676
676
  export {
677
677
  Ma as default
678
678
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),Re=require("./index.vue_vue_type_style_index_1_lang-_MRLV2pU.cjs"),j=require("./workpieceTreePanel-Bbo1zDTZ.cjs"),ee=require("./iconfont-n9ziSjXJ.cjs"),I=require("./index-C8qRkCgn.cjs"),b=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-v_tZRKeY.cjs"),te=require("./urdfTree-Bou0Ub-r.cjs"),re=require("./threeViewerHost-C0peX0tH.cjs"),ie=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),p=require("./svgIcon-CUM54R6L.cjs"),$e=require("./MTLLoader-DqSL2MhN.cjs"),se=require("./index-DdfPRTL5.cjs"),Fe=async d=>await new $e.OBJLoader().loadAsync(d);function Ie(d){if(d.length%3!==0)return console.error("points array length is not a multiple of 3:",d),null;const g=new b.BufferGeometry;g.setAttribute("position",new b.Float32BufferAttribute(d,3));const x=new Float32Array(d.length);for(let i=0;i<d.length;i+=3)x[i]=0,x[i+1]=.847,x[i+2]=1;g.setAttribute("color",new b.BufferAttribute(x,3));const r=new b.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!1}),c=new b.Points(g,r);return r.needsUpdate=!0,c}const Oe=async d=>await re.downloadFile(d),qe=async d=>await re.readCsv(d),Xe=async d=>{const g=await Oe(d);return(await qe(g)).map(c=>{const i={x:0,y:0,z:0,b:0,c:0,x_axis:0,y_axis:0,z_axis:0};return i.x_axis=c.X_Axis,i.y_axis=c.Y_Axis,i.z_axis=c.Z_Axis,i.b=c.B_Axis,i.c=c.C_Axis,i.x=c.X,i.y=c.Y,i.z=c.Z,i})},Ze={class:"panel-content"},Je={class:"animation-controls"},We={class:"control-row"},Ye={class:"control-row"},Ge={class:"frame-info"},He={class:"control-row"},Ke=e.defineComponent({__name:"bladeTrackPanel",props:{scene:{},robot:{},xyzbcList:{}},emits:["getThreeData"],setup(d,{expose:g,emit:x}){const r=d,c=e.computed(()=>r.xyzbcList),i=e.ref(!1),u=e.ref(0),w=e.ref(100);let D=!1;const Y={bladeAxis:"叶片模型位置"},_=e.ref(null),B=a=>{if(!r.robot)return null;let l=null;return r.robot.traverse(n=>{n.name===a&&(l=n.matrixWorld.clone())}),l},O=a=>{if(a<0||a>=c.value.length)return null;const l=c.value[a],n=B(Y.bladeAxis);return n?new b.Vector3(l.x,l.y,l.z).applyMatrix4(n):null},G=(a,l)=>{a&&a.setJointValues(l)},H=(a,l,n,f,h)=>{const S={B_Axis:b.MathUtils.degToRad(f),C_Axis:b.MathUtils.degToRad(h),X_Axis:a,Y_Axis:l,Z_Axis:n};G(r.robot,S)},R=()=>{const a=r.scene;if(!a)return;const l=[];a.traverse(n=>{(n.name==="TrajectoryPoints"||n.name==="TrajectoryLine")&&l.push(n)}),l.forEach(n=>{a.remove(n),(n instanceof b.Mesh||n instanceof b.Points||n instanceof b.Line)&&(n.geometry&&n.geometry.dispose(),n.material&&(Array.isArray(n.material)?n.material.forEach(f=>{f instanceof b.Material&&f.dispose()}):n.material instanceof b.Material&&n.material.dispose()))})},U=a=>{var f,h,S;R();const l=[];for(let k=0;k<=a;k++){const z=O(k);z&&l.push(z.x,z.y,z.z)}_.value&&((f=r.scene)==null||f.remove(_.value));const n=Ie(l);n&&(n.name="TrajectoryPoints",_.value=n,(S=(h=r.scene)==null?void 0:h.add)==null||S.call(h,n))},$=a=>`第 ${a+1} 帧`,L=a=>{if(a<0||a>=c.value.length){console.error(`帧索引 ${a} 超出范围`);return}const l=c.value[a];u.value=a,H(l.x_axis,l.y_axis,l.z_axis,l.b,l.c);const n=r.scene;n&&n.updateMatrixWorld(!0),U(a)},M=async()=>{if(c.value.length===0){I.ElMessage.error("无法播放动画:无数据");return}if(!i.value){i.value=!0,D=!1,c.value.length-1===u.value&&(u.value=0);try{for(let a=u.value+1;a<c.value.length&&!D;a++)await new Promise(l=>setTimeout(l,w.value)),L(a);D||I.ElMessage.success("动画播放完成")}catch(a){console.error("动画播放出错:",a)}finally{i.value=!1}}},E=async()=>{i.value&&(D=!0,await new Promise(a=>{const l=e.watch(()=>i.value,n=>{l(),a()})}),I.ElMessage.info("动画已停止"))},q=async a=>{i.value&&await E(),L(a)},P=async()=>{i.value&&await E(),!(u.value+1>=c.value.length)&&L(u.value+1)},N=async()=>{i.value&&await E(),u.value!==0&&L(u.value-1)},T=()=>{u.value=0};return g({playAnimation:M,stopAnimation:E,forwardFrame:P,backwardFrame:N,resetAnimationFrame:T,reset:async()=>{await E(),R(),T()}}),(a,l)=>{const n=e.resolveComponent("el-input-number"),f=e.resolveComponent("el-form-item"),h=e.resolveComponent("el-form"),S=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ze,[e.createElementVNode("div",Je,[e.createElementVNode("div",We,[e.createVNode(h,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(f,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(n,{modelValue:w.value,"onUpdate:modelValue":l[0]||(l[0]=k=>w.value=k),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ye,[l[2]||(l[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ge,e.toDisplayString(u.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",He,[l[3]||(l[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(S,{modelValue:u.value,"onUpdate:modelValue":l[1]||(l[1]=k=>u.value=k),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":$,onInput:q,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),Qe=ie._export_sfc(Ke,[["__scopeId","data-v-286bad75"]]),et=async d=>await Fe(d),tt={class:"obj-viewer-container"},ot={class:"buttonGroup-topLeft"},nt={class:"buttonGroup-left"},at={class:"buttonGroup-right"},lt={class:"buttonGroup-bottom"},st={class:"top-panel"},rt={class:"panel-header"},it={class:"panel-body"},ct={class:"left-panel"},ut={class:"panel-header"},dt={class:"panel-body"},vt={key:1,class:"clipping-content"},mt={class:"radio-group"},ft={class:"radio-label"},pt={class:"radio-label"},gt={class:"radio-label"},ht={class:"radio-label"},yt={class:"right-panel"},bt={class:"panel-header"},Vt={class:"panel-body"},Nt={key:0,class:"loading-overlay"},wt={key:1,class:"brand"},_t={class:"brand-item"},xt={class:"item-value"},Ct={class:"brand-item"},kt={class:"item-value"},Et={class:"brand-item"},Pt={class:"item-value"},Tt=e.defineComponent({__name:"threeSceneViewForCPMPIP",props:{fileBlobs:{default:()=>[]},threeData:{}},emits:["getAnimationData","getThreeData"],setup(d,{emit:g}){const x=g,r=d,c=e.inject("setManagementPageTitle"),i=e.inject("setManagementPageVisible"),u=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.machine}),w=e.computed(()=>{var t;return(t=u==null?void 0:u.value)==null?void 0:t.产品型号}),D=e.computed(()=>{var t;return(t=u==null?void 0:u.value)==null?void 0:t.编号}),Y=e.computed(()=>{var t;return(t=u==null?void 0:u.value)==null?void 0:t.厂家}),_=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.workpieceInfo}),B=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.knife}),O=e.ref([]),G=async o=>{!o||!o.isExtra||(await H(o),c==null||c(o==null?void 0:o.pageName),i==null||i(!0))},H=se.debounce(async o=>{await se.onPageBack();const{mainKey:t,baseMenuPath:s}=o||{};Re.copyAdd(s,t)},500);e.watch(()=>[w.value,_.value,B.value],()=>{var y,v,ae,le;const o=[],t={pageName:"机床",name:"机床",label:"机床",type:"机床",id:"机床",path:"机床",baseMenuPath:"设备库/机床",children:[],show:!0,isPenultimate:!1};w.value&&t.children.push({isExtra:!0,pageName:"机床",mainKey:w.value,label:w.value,baseMenuPath:"设备库/机床"});const s={pageName:"工件",name:"工件",label:"工件",type:"工件",id:"工件",path:"工件",baseMenuPath:"设备库/机床",children:[],show:!0,isPenultimate:!1};_.value&&s.children.push({isExtra:!0,type:(y=_.value)==null?void 0:y.type,pageName:"工件",mainKey:(v=_.value)==null?void 0:v.name,label:(ae=_.value)==null?void 0:ae.name,baseMenuPath:`工件库/${(le=_.value)==null?void 0:le.type}`});const W={pageName:"刀具",name:"刀具",label:"刀具",type:"刀具",id:"刀具",path:"刀具",children:[],show:!0,isPenultimate:!1};B.value&&W.children.push({isExtra:!0,pageName:"刀具",mainKey:B.value,label:B.value,baseMenuPath:"设备库/刀具"}),o.push(t,s,W),O.value=o},{immediate:!0});const R=e.ref([]),U=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.csvUrl});e.watch(()=>U.value,async()=>{if(console.log("three data",r==null?void 0:r.threeData),console.log("csvUrl",U.value),U.value){const o=await Xe(U.value);R.value=o}},{immediate:!0});const $=e.computed(()=>{var t,s;return(s=(t=r==null?void 0:r.threeData)==null?void 0:t.data)==null?void 0:s.bladeObjUrl}),L=e.ref(j.sceneType.ROBOT),M=e.ref(null),E=e.ref(!1),q=e.ref(""),P=e.ref(!1),N=e.ref(""),T=e.ref(!1),C=e.ref(""),a=e.ref(!1),l=e.ref(""),n=e.shallowRef(null),f=e.ref(null),h=e.ref("叶片模型"),S=e.shallowRef(null),k=e.shallowRef(null),z=e.shallowRef(null);e.ref();const m=e.ref(),{currentModels:X,resetView:ce,initThreeJS:ue,handleResize:de,getThreeJSObjects:F,cleanup:ve,setModels:oe,axesHelperVisible:me,toggleAxesVisibility:fe,zoomIn:pe,zoomOut:ge}=ee.useThreeJS(M),{loadSceneFromFile:he}=j.useUrdfLoader(F,X,E,q),{isAnimating:ne,toggleAnimation:ye,stopAnimation:be}=ee.useAnimation(F,X),{isClipping:Ve,activeClippingAxis:V,toggleClipping:Ne,updateClippingPlanes:A}=ee.useClipping(F,X),{initRaycaster:we,selectedObject3D:_e,setSelectedObjVisible:xe,updatePosition:Ce,updateRotation:ke,dispose:Ee}=j.useRaycaster(M,F,X),Pe=()=>{fe()},Te=e.computed(()=>L.value===j.sceneType.ROBOT),Z=o=>{P.value=!0,N.value=o,o==="剖面视图"&&!Ve.value&&Ne()},K=o=>{T.value=!0,C.value=o,o==="动画仿真"&&x("getAnimationData")},Se=()=>{var o;(o=m==null?void 0:m.value)==null||o.playAnimation()},Ae=()=>{var o;(o=m==null?void 0:m.value)==null||o.stopAnimation()},Me=()=>{var o;(o=m==null?void 0:m.value)==null||o.forwardFrame()},ze=()=>{var o;(o=m==null?void 0:m.value)==null||o.backwardFrame()},Q=()=>{var o;(o=m==null?void 0:m.value)==null||o.reset()},De=()=>{Q(),ce(),f.value&&f.value.resetToZero()},Be=(o,t)=>te.getMeshFromLink(o,t),Ue=async o=>{const t=Be(o,h.value);if(k.value=t,console.log("bladeObjUrl",$.value),t&&t.parent&&$.value){const s=await et($.value);s.name="blade_clone",t.parent.add(s),s.position.copy(t.position),s.rotation.copy(t.rotation),s.scale.copy(t.scale),t.visible=!1,S.value=s}else h.value&&console.warn(`在 Blade '${h.value}' 中未找到可替换的网格或其没有父级。`)};e.watch(()=>r.fileBlobs,o=>{if(o&&o.length>0){const t=o[0];if(!t.name.toLowerCase().endsWith(".urdf"))return;he(t).then(s=>{n.value=s,s&&(f.value=new j.URDFRobotController(s),Ue(s))}).catch(s=>{console.error("加载URDF文件时发生错误:",s),I.ElMessage.error("加载urdf模型失败"),n.value=null})}else n.value=null},{immediate:!0,deep:!0}),e.watch(n,o=>{Q(),oe(o?[o]:[]),we()});let J=null;const Le=()=>{ue(),e.nextTick(()=>{M.value&&(J=new ResizeObserver(de),J.observe(M.value))});const o=F();z.value=o.scene},je=()=>{N.value="",C.value="",J&&J.disconnect(),ne.value&&be(),Q(),ve(),Ee()};return e.onMounted(async()=>{await e.nextTick();try{Le()}catch(o){console.error("Three.js 初始化失败:",o),I.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{je()}),(o,t)=>{const s=e.resolveComponent("el-scrollbar"),W=e.resolveComponent("PipeAnalysisPanel");return e.openBlock(),e.createElementBlock("div",tt,[e.withDirectives(e.createElementVNode("div",{ref_key:"threejsContainer",ref:M,class:"threejs-container"},null,512),[[e.vShow,Te.value]]),e.createElementVNode("div",ot,[e.createVNode(p.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:De,title:"重置"}),e.createVNode(p.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(pe)},null,8,["onClick"]),e.createVNode(p.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(ge)},null,8,["onClick"]),e.createVNode(p.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(ye),title:e.unref(ne)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(p.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(me),onClick:Pe,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(o.$slots,"button-left",{switchRightPanel:Z},void 0,!0),e.createVNode(p.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:t[0]||(t[0]=y=>Z("场景树")),active:P.value&&N.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(p.ThreeSvgIcon,{name:"clipping",size:"24",onClick:t[1]||(t[1]=y=>Z("剖面视图")),active:P.value&&N.value==="剖面视图",title:"剖面视图"},null,8,["active"]),e.createVNode(p.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",onClick:t[2]||(t[2]=y=>Z("工件树")),active:P.value&&N.value==="工件树"},null,8,["active"])]),e.createElementVNode("div",at,[e.renderSlot(o.$slots,"button-right",{switchRightPanel:K},void 0,!0),e.createVNode(p.ThreeSvgIcon,{name:"jichuangxuanze",size:"24",onClick:t[3]||(t[3]=y=>K("机床控制")),active:T.value&&C.value==="机床控制",title:"机床控制"},null,8,["active"]),e.createVNode(p.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:t[4]||(t[4]=y=>K("轨迹路径")),active:T.value&&C.value==="轨迹路径"},null,8,["active"])]),e.createElementVNode("div",lt,[e.createVNode(p.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ze}),e.createVNode(p.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:Se}),e.createVNode(p.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:Me}),e.createVNode(p.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:Ae})]),e.withDirectives(e.createElementVNode("div",st,[e.createElementVNode("div",rt,[e.createElementVNode("span",null,e.toDisplayString(l.value),1),e.createElementVNode("span",{class:"close",onClick:t[5]||(t[5]=y=>a.value=!1)}," X ")]),e.createElementVNode("div",it,[e.createVNode(s,{height:"100%"},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"top-panel",{topPanelType:l.value},void 0,!0)]),_:3})])],512),[[e.vShow,a.value]]),e.withDirectives(e.createElementVNode("div",ct,[e.createElementVNode("div",ut,[e.createElementVNode("span",null,e.toDisplayString(N.value),1),e.createElementVNode("span",{class:"close",onClick:t[6]||(t[6]=y=>P.value=!1)}," X ")]),e.createElementVNode("div",dt,[e.createVNode(s,{height:"100%"},{default:e.withCtx(()=>{var y;return[N.value==="场景树"?(e.openBlock(),e.createBlock(te.UrdfTree,{key:0,model:n.value,extraNodes:O.value,onNodeClick:G},null,8,["model","extraNodes"])):e.createCommentVNode("",!0),N.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":t[7]||(t[7]=v=>e.isRef(V)?V.value=v:null),onChange:t[8]||(t[8]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[16]||(t[16]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",pt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":t[9]||(t[9]=v=>e.isRef(V)?V.value=v:null),onChange:t[10]||(t[10]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[17]||(t[17]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",gt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":t[11]||(t[11]=v=>e.isRef(V)?V.value=v:null),onChange:t[12]||(t[12]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[18]||(t[18]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ht,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":t[13]||(t[13]=v=>e.isRef(V)?V.value=v:null),onChange:t[14]||(t[14]=(...v)=>e.unref(A)&&e.unref(A)(...v))},null,544),[[e.vModelRadio,e.unref(V)]]),t[19]||(t[19]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0),N.value==="工件树"?(e.openBlock(),e.createBlock(j.WorkpieceTreePanel,{key:2,model:(y=e.unref(_e))==null?void 0:y.obj,onVisibleChange:e.unref(xe),onUpdatePosition:e.unref(Ce),onUpdateRotation:e.unref(ke)},null,8,["model","onVisibleChange","onUpdatePosition","onUpdateRotation"])):e.createCommentVNode("",!0)]}),_:1})])],512),[[e.vShow,P.value]]),e.withDirectives(e.createElementVNode("div",yt,[e.createElementVNode("div",bt,[e.createElementVNode("span",null,e.toDisplayString(C.value),1),e.createElementVNode("span",{class:"close",onClick:t[15]||(t[15]=y=>T.value=!1)}," X ")]),e.createElementVNode("div",Vt,[e.createVNode(s,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(te.JointPanel,{model:n.value},null,8,["model"]),[[e.vShow,C.value==="机床控制"]]),e.withDirectives(e.createVNode(Qe,{robot:n.value,scene:z.value,xyzbcList:R.value,ref_key:"bladeTrackPanelRef",ref:m},null,8,["robot","scene","xyzbcList"]),[[e.vShow,C.value==="轨迹路径"]]),e.renderSlot(o.$slots,"right-panel",{rightPanelType:C.value},void 0,!0)]),_:3})])],512),[[e.vShow,T.value]]),E.value?(e.openBlock(),e.createElementBlock("div",Nt,[t[20]||(t[20]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(q.value),1)])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createElementBlock("div",wt,[e.createElementVNode("div",_t,[t[21]||(t[21]=e.createElementVNode("div",{class:"item-label"},"厂家:",-1)),e.createElementVNode("div",xt,e.toDisplayString(Y.value),1)]),e.createElementVNode("div",Ct,[t[22]||(t[22]=e.createElementVNode("div",{class:"item-label"},"型号:",-1)),e.createElementVNode("div",kt,e.toDisplayString(w.value),1)]),e.createElementVNode("div",Et,[t[23]||(t[23]=e.createElementVNode("div",{class:"item-label"},"编号:",-1)),e.createElementVNode("div",Pt,e.toDisplayString(D.value),1)])])):e.createCommentVNode("",!0),e.createVNode(W,{ref:"pipeAnalysisPanelRef"},null,512)])}}}),St=ie._export_sfc(Tt,[["__scopeId","data-v-dd2f53e0"]]);exports.default=St;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("./iconfont-n9ziSjXJ.cjs"),h=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-v_tZRKeY.cjs"),ge=require("./threeViewerHost-DBute_QP.cjs"),B=require("./index-C8qRkCgn.cjs"),S=require("./urdfTree-Bou0Ub-r.cjs"),W=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),V=require("./svgIcon-CUM54R6L.cjs"),he=require("./isString--eJE54G5.cjs");function ye(t=.5,n=4){const r=new h.Mesh(new h.ConeGeometry(t,n,32),new h.MeshStandardMaterial({color:"#919191ff",metalness:.3,roughness:.6})),l=r.geometry.parameters.height;return r.geometry.translate(0,-l/2,0),r.rotation.set(-90,0,0,"XYZ"),r}function we(t,n){t.position.copy(n)}function Ce(t,n,r=new h.Color(16711680)){const l=new h.Vector3;n.getWorldPosition(l);const c=t.geometry.attributes.position,o=t.geometry.attributes.color,s=new h.Color(55551);let i=1/0,f=-1;for(let d=0;d<c.count;d++){const v=new h.Vector3().fromBufferAttribute(c,d).distanceTo(l);v<i&&(i=v,f=d)}for(let d=0;d<o.count;d++)s.toArray(o.array,d*3);if(f!==-1){const d=r.toArray(),m=f*3+2;for(let v=0;v<m;v=v+3)o.array[v]=d[0],o.array[v+1]=d[1],o.array[v+2]=d[2]}o.needsUpdate=!0}function H(t,n,r,l=new h.Color(16711680)){we(t,n),Ce(r,t,l)}const Ve={class:"panel-content"},be={class:"animation-controls"},ke={class:"control-row"},Ne={class:"control-row"},Ee={class:"frame-info"},_e={class:"control-row"},Te=e.defineComponent({__name:"trackAnimationPanel",props:{cloud:{},knife:{},vectors:{}},emits:["getThreeData"],setup(t,{expose:n,emit:r}){const l=t,c=e.computed(()=>l.vectors),o=e.ref(!1),s=e.ref(0),i=e.ref(100);let f=!1;const d=p=>`第 ${p+1} 帧`,m=p=>{if(p<0||p>=c.value.length){console.error(`帧索引 ${p} 超出范围`);return}const y=c.value[p];s.value=p,H(l.knife,y,l.cloud)},v=async()=>{if(c.value.length===0){B.ElMessage.error("无法播放动画:无数据");return}if(!o.value){o.value=!0,f=!1,c.value.length-1===s.value&&(s.value=0);try{for(let p=s.value+1;p<c.value.length&&!f;p++)await new Promise(y=>setTimeout(y,i.value)),m(p);f||B.ElMessage.success("动画播放完成")}catch(p){console.error("动画播放出错:",p)}finally{o.value=!1}}},w=async()=>{o.value&&(f=!0,await new Promise(p=>{const y=e.watch(()=>o.value,F=>{y(),p()})}),B.ElMessage.info("动画已停止"))},N=async p=>{o.value&&await w(),m(p)},E=async()=>{o.value&&await w(),!(s.value+1>=c.value.length)&&m(s.value+1)},_=async()=>{o.value&&await w(),s.value!==0&&m(s.value-1)},C=()=>{s.value=0};return n({playAnimation:v,stopAnimation:w,forwardFrame:E,backwardFrame:_,resetAnimationFrame:C,reset:async()=>{await w(),C()}}),(p,y)=>{const F=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-form-item"),q=e.resolveComponent("el-form"),I=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createVNode(q,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(j,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=M=>i.value=M),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ne,[y[2]||(y[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ee,e.toDisplayString(s.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",_e,[y[3]||(y[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(I,{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=M=>s.value=M),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":d,onInput:N,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),xe=W._export_sfc(Te,[["__scopeId","data-v-b5665bfd"]]);function ze(t){const n=[];return t.forEach(r=>{const[l,c,o]=r.trim().split(/\s+/);n.push(+l,+c,+o)}),n}function $(t,n,r){switch(t){case"X":n.x=+r||0;break;case"Y":n.y=+r||0;break;case"Z":n.z=+r||0;break}}function Ae(t){const n=[],r=["X","Y","Z"];return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f],m=r.find(v=>v===d);if(m){s&&$(s,c,i),i="",s=m;continue}i=i+d}$(s,c,i),n.push(c.x,c.y,c.z)}),n}const Pe=t=>t==null?void 0:t.filter(r=>r.includes("=")),Me=t=>t.replace(/,/g,""),De=t=>t==null?void 0:t.map(r=>Me(r)),Ue=t=>{const n=Pe(t);return De(n)};function Fe(t){const n=Ue(t),r=[];return n.forEach(l=>{var v,w,N,E,_,C;let[c,o,s,i]=l.trim().split(/\s+/);o=(v=o==null?void 0:o.trim)==null?void 0:v.call(o),s=(w=s==null?void 0:s.trim)==null?void 0:w.call(s),i=(N=i==null?void 0:i.trim)==null?void 0:N.call(i);const[,f]=(E=o==null?void 0:o.split)==null?void 0:E.call(o,"="),[,d]=(_=s==null?void 0:s.split)==null?void 0:_.call(s,"="),[,m]=(C=i==null?void 0:i.split)==null?void 0:C.call(i,"=");r.push(+f,+d,+m)}),r}const Ie=t=>t>="0"&&t<="9",Le=t=>t==="+"||t==="-",Be=t=>t===".";function $e(t){return Ie(t)||Le(t)||Be(t)}function je(t){const n=[],r=new Set(["X","Y","Z"]);return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f];if(d==="T")break;const m=r.has(d)?d:null,v=$e(d);if(m||!v){s&&$(s,c,i),s=m,i="";continue}i=i+d}s&&$(s,c,i),n.push(c.x,c.y,c.z)}),n}function qe(t){return t==null?void 0:t.includes("=")}async function Xe(t){var c,o;const n=(c=t==null?void 0:t.trim())==null?void 0:c.split(/\r?\n/);if(qe(t))return Fe(n);const r=n==null?void 0:n[0],l=(o=r==null?void 0:r.trim())==null?void 0:o.split(/\s+/);if((l==null?void 0:l.length)>=3)return ze(n);if((l==null?void 0:l.length)===1)return Ae(n)}async function Re(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ye(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ze(t){let n=t.trim().split(/\r?\n/);return n=n.filter(l=>{const c=l.startsWith("X")||l.startsWith("Y")||l.startsWith("Z"),o=l.startsWith("G")&&(l.includes("X")||l.includes("Y")||l.includes("Z")),s=l.startsWith("N")&&(l.includes("X")||l.includes("Y")||l.includes("Z"));return c||o||s}),je(n)}async function Oe(t,n){const{isCyd:r,isUv:l,isCpt:c,isNc:o}=n;return l?Xe(t):r?Ye(t):c?Re(t):o?Ze(t):[]}function Ge(t){const n=[];for(let r=0;r<t.length;r+=3)n.push(new h.Vector3(t[r],t[r+1],t[r+2]));return n}function Ke(t){const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new h.LineBasicMaterial({color:55551,linewidth:3});return new h.Line(n,r)}function Se(t,n){if(!n||n.length<3)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=Ke(n);return s.name="轨迹路径",r.add(s),s}function We(t,n,r,l=4,c=50){let o=1/0,s=-1/0,i=1/0,f=-1/0,d=1/0,m=-1/0;for(let C=0;C<t.length;C+=3){const b=t[C],p=t[C+1],y=t[C+2];o=Math.min(o,b),s=Math.max(s,b),i=Math.min(i,p),f=Math.max(f,p),d=Math.min(d,y),m=Math.max(m,y)}const w=Math.sqrt((s-o)**2+(f-i)**2+(m-d)**2)*.05,N=h.MathUtils.degToRad(n.fov),E=2*Math.tan(N/2)*c,_=w/E*r.domElement.height*(l/4);return Math.min(.4,_)}function He(t){if(t.length%3!==0)return console.error("points array length is not a multiple of 3:",t),null;const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new Float32Array(t.length);for(let o=0;o<t.length;o+=3)r[o]=0,r[o+1]=.847,r[o+2]=1;n.setAttribute("color",new h.BufferAttribute(r,3));const l=new h.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!0}),c=new h.Points(n,l);return l.needsUpdate=!0,c}function Je(t,n){if(!n)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=He(n);if(!s)return;s.name="轨迹路径",r.add(s);const i=We(n,l,c,.1,50);return s.material.size=i,s}const Qe={class:"obj-viewer-container"},et={class:"buttonGroup-topLeft"},tt={class:"buttonGroup-left"},nt={class:"buttonGroup-right"},ot={class:"buttonGroup-bottom"},rt={class:"left-panel"},lt={class:"panel-header"},st={class:"panel-body"},it={key:1,class:"clipping-content"},at={class:"radio-group"},ct={class:"radio-label"},ut={class:"radio-label"},dt={class:"radio-label"},ft={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},gt={key:0,class:"loading-overlay"},ht=e.defineComponent({__name:"threeTrackPathView",props:{fileBlobs:{},threeData:{default:()=>""},trackFileType:{}},emits:["getAnimationData","getThreeData"],setup(t,{emit:n}){const r=n,l=t,c=e.ref(null),o=e.ref(!1),s=e.ref(""),i=e.ref(),f=e.ref(!1),d=e.ref(""),m=e.ref(!1),v=e.ref(""),w=e.shallowRef(null),N=e.shallowRef(null),{currentModels:E,initThreeJS:_,handleResize:C,getThreeJSObjects:b,cleanup:p,axesHelperVisible:y,toggleAxesVisibility:F,zoomIn:j,zoomOut:q}=P.useThreeJS(c),{isAnimating:I,toggleAnimation:M,stopAnimation:J}=P.useAnimation(b,E),{isClipping:Q,activeClippingAxis:k,toggleClipping:ee,updateClippingPlanes:T}=P.useClipping(b,E),te=()=>{F()},X=u=>{f.value=!0,d.value=u,u==="剖面视图"&&!Q.value&&ee()},R=u=>{m.value=!0,v.value=u,u==="动画仿真"&&r("getAnimationData")},Y=e.ref([]),D=e.ref([]),ne=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isUv}),oe=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCyd}),re=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCpt}),z=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isNc}),Z=e.computed(()=>{const u=l.fileBlobs||[];return u==null?void 0:u[0]});let x=e.shallowRef(),A=e.shallowRef();const le=()=>{const{scene:u}=b();x.value&&u&&(P.disposeObj(x.value,u),x.value=null)},se=()=>{const{scene:u}=b();A.value&&u&&(P.disposeObj(A.value,u),A.value=null)},O=()=>{le(),se()},ie=async u=>{const a=URL.createObjectURL(u),U=await ge.readFileText(a);if(URL.revokeObjectURL(a),he.isString(U)){const g=await Oe(U,l.trackFileType)||[];Y.value=g;const K=Y.value;ne.value&&(x.value=Se(b,K)),(oe.value||re.value||z.value)&&(x.value=Je(b,K)),P.frameCameraToObject3D(b,x.value)}},ae=async()=>{var u,a;A.value=ye(),D.value=Ge(Y.value),D.value&&D.value.length&&(H(A.value,D.value[0],x.value,new h.Color(16711680)),(a=(u=N.value)==null?void 0:u.add)==null||a.call(u,A.value))},ce=async()=>{var u;await((u=i==null?void 0:i.value)==null?void 0:u.reset()),await G(Z.value)},G=async u=>{O(),await ie(u),z.value&&ae()};e.watch(()=>Z.value,async u=>{u&&await G(u)},{immediate:!0,deep:!0});const ue=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.playAnimation())},de=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.stopAnimation())},fe=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.forwardFrame())},ve=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.backwardFrame())};let L=null;const me=()=>{_(),e.nextTick(()=>{c.value&&(L=new ResizeObserver(C),L.observe(c.value))});const u=b();N.value=u.scene,N.value&&(N.value.name="CPMPIP")},pe=()=>{L&&L.disconnect(),I.value&&J(),O(),p()};return e.onMounted(async()=>{try{me()}catch(u){console.error("Three.js 初始化失败:",u),B.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{pe()}),(u,a)=>{const U=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",et,[e.createVNode(V.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:ce,title:"重置"}),e.createVNode(V.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(j)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(q)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(M),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(V.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(y),onClick:te,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",tt,[e.renderSlot(u.$slots,"button-left",{switchRightPanel:X},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:a[0]||(a[0]=g=>X("场景树")),active:f.value&&d.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"clipping",size:"24",onClick:a[1]||(a[1]=g=>X("剖面视图")),active:f.value&&d.value==="剖面视图",title:"剖面视图"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(u.$slots,"button-right",{switchRightPanel:R},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:a[2]||(a[2]=g=>R("关节控制")),active:m.value&&v.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:a[3]||(a[3]=g=>R("动画仿真")),active:m.value&&v.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",ot,[e.createVNode(V.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ve}),e.createVNode(V.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:ue}),e.createVNode(V.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:fe}),e.createVNode(V.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:de})]),e.withDirectives(e.createElementVNode("div",rt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(d.value),1),e.createElementVNode("span",{class:"close",onClick:a[4]||(a[4]=g=>f.value=!1)}," X ")]),e.createElementVNode("div",st,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[d.value==="场景树"?(e.openBlock(),e.createBlock(S.UrdfTree,{key:0,model:w.value},null,8,["model"])):e.createCommentVNode("",!0),d.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",at,[e.createElementVNode("label",ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":a[5]||(a[5]=g=>e.isRef(k)?k.value=g:null),onChange:a[6]||(a[6]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[14]||(a[14]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":a[7]||(a[7]=g=>e.isRef(k)?k.value=g:null),onChange:a[8]||(a[8]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[15]||(a[15]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",dt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":a[9]||(a[9]=g=>e.isRef(k)?k.value=g:null),onChange:a[10]||(a[10]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[16]||(a[16]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":a[11]||(a[11]=g=>e.isRef(k)?k.value=g:null),onChange:a[12]||(a[12]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[17]||(a[17]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})])],512),[[e.vShow,f.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(v.value),1),e.createElementVNode("span",{class:"close",onClick:a[13]||(a[13]=g=>m.value=!1)}," X ")]),e.createElementVNode("div",pt,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(S.JointPanel,{model:w.value},null,8,["model"]),[[e.vShow,v.value==="关节控制"]]),e.withDirectives(e.createVNode(xe,{ref_key:"animationPanelRef",ref:i,cloud:e.unref(x),knife:e.unref(A),vectors:D.value},null,8,["cloud","knife","vectors"]),[[e.vShow,v.value==="动画仿真"&&z.value]])]),_:1})])],512),[[e.vShow,m.value]]),o.value?(e.openBlock(),e.createElementBlock("div",gt,[a[18]||(a[18]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(s.value),1)])):e.createCommentVNode("",!0)])}}}),yt=W._export_sfc(ht,[["__scopeId","data-v-9bc0694d"]]);exports.default=yt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("./iconfont-n9ziSjXJ.cjs"),h=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-v_tZRKeY.cjs"),ge=require("./threeViewerHost-C0peX0tH.cjs"),B=require("./index-C8qRkCgn.cjs"),S=require("./urdfTree-Bou0Ub-r.cjs"),W=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),V=require("./svgIcon-CUM54R6L.cjs"),he=require("./isString--eJE54G5.cjs");function ye(t=.5,n=4){const r=new h.Mesh(new h.ConeGeometry(t,n,32),new h.MeshStandardMaterial({color:"#919191ff",metalness:.3,roughness:.6})),l=r.geometry.parameters.height;return r.geometry.translate(0,-l/2,0),r.rotation.set(-90,0,0,"XYZ"),r}function we(t,n){t.position.copy(n)}function Ce(t,n,r=new h.Color(16711680)){const l=new h.Vector3;n.getWorldPosition(l);const c=t.geometry.attributes.position,o=t.geometry.attributes.color,s=new h.Color(55551);let i=1/0,f=-1;for(let d=0;d<c.count;d++){const v=new h.Vector3().fromBufferAttribute(c,d).distanceTo(l);v<i&&(i=v,f=d)}for(let d=0;d<o.count;d++)s.toArray(o.array,d*3);if(f!==-1){const d=r.toArray(),m=f*3+2;for(let v=0;v<m;v=v+3)o.array[v]=d[0],o.array[v+1]=d[1],o.array[v+2]=d[2]}o.needsUpdate=!0}function H(t,n,r,l=new h.Color(16711680)){we(t,n),Ce(r,t,l)}const Ve={class:"panel-content"},be={class:"animation-controls"},ke={class:"control-row"},Ne={class:"control-row"},Ee={class:"frame-info"},_e={class:"control-row"},Te=e.defineComponent({__name:"trackAnimationPanel",props:{cloud:{},knife:{},vectors:{}},emits:["getThreeData"],setup(t,{expose:n,emit:r}){const l=t,c=e.computed(()=>l.vectors),o=e.ref(!1),s=e.ref(0),i=e.ref(100);let f=!1;const d=p=>`第 ${p+1} 帧`,m=p=>{if(p<0||p>=c.value.length){console.error(`帧索引 ${p} 超出范围`);return}const y=c.value[p];s.value=p,H(l.knife,y,l.cloud)},v=async()=>{if(c.value.length===0){B.ElMessage.error("无法播放动画:无数据");return}if(!o.value){o.value=!0,f=!1,c.value.length-1===s.value&&(s.value=0);try{for(let p=s.value+1;p<c.value.length&&!f;p++)await new Promise(y=>setTimeout(y,i.value)),m(p);f||B.ElMessage.success("动画播放完成")}catch(p){console.error("动画播放出错:",p)}finally{o.value=!1}}},w=async()=>{o.value&&(f=!0,await new Promise(p=>{const y=e.watch(()=>o.value,F=>{y(),p()})}),B.ElMessage.info("动画已停止"))},N=async p=>{o.value&&await w(),m(p)},E=async()=>{o.value&&await w(),!(s.value+1>=c.value.length)&&m(s.value+1)},_=async()=>{o.value&&await w(),s.value!==0&&m(s.value-1)},C=()=>{s.value=0};return n({playAnimation:v,stopAnimation:w,forwardFrame:E,backwardFrame:_,resetAnimationFrame:C,reset:async()=>{await w(),C()}}),(p,y)=>{const F=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-form-item"),q=e.resolveComponent("el-form"),I=e.resolveComponent("el-slider");return e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",be,[e.createElementVNode("div",ke,[e.createVNode(q,{"label-width":"auto",style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(j,{label:"帧间隔 (ms):",prop:"frameDuration"},{default:e.withCtx(()=>[e.createVNode(F,{modelValue:i.value,"onUpdate:modelValue":y[0]||(y[0]=M=>i.value=M),min:0,max:5e3,step:10,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1})]),e.createElementVNode("div",Ne,[y[2]||(y[2]=e.createElementVNode("label",null,"当前帧:",-1)),e.createElementVNode("span",Ee,e.toDisplayString(s.value+1)+" / "+e.toDisplayString(c.value.length),1)]),e.createElementVNode("div",_e,[y[3]||(y[3]=e.createElementVNode("label",null,"动画进度:",-1)),e.createVNode(I,{modelValue:s.value,"onUpdate:modelValue":y[1]||(y[1]=M=>s.value=M),min:0,max:c.value.length>0?c.value.length-1:0,step:1,"format-tooltip":d,onInput:N,disabled:c.value.length===0,style:{"flex-grow":"1",margin:"0 10px"}},null,8,["modelValue","max","disabled"])])])])}}}),xe=W._export_sfc(Te,[["__scopeId","data-v-b5665bfd"]]);function ze(t){const n=[];return t.forEach(r=>{const[l,c,o]=r.trim().split(/\s+/);n.push(+l,+c,+o)}),n}function $(t,n,r){switch(t){case"X":n.x=+r||0;break;case"Y":n.y=+r||0;break;case"Z":n.z=+r||0;break}}function Ae(t){const n=[],r=["X","Y","Z"];return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f],m=r.find(v=>v===d);if(m){s&&$(s,c,i),i="",s=m;continue}i=i+d}$(s,c,i),n.push(c.x,c.y,c.z)}),n}const Pe=t=>t==null?void 0:t.filter(r=>r.includes("=")),Me=t=>t.replace(/,/g,""),De=t=>t==null?void 0:t.map(r=>Me(r)),Ue=t=>{const n=Pe(t);return De(n)};function Fe(t){const n=Ue(t),r=[];return n.forEach(l=>{var v,w,N,E,_,C;let[c,o,s,i]=l.trim().split(/\s+/);o=(v=o==null?void 0:o.trim)==null?void 0:v.call(o),s=(w=s==null?void 0:s.trim)==null?void 0:w.call(s),i=(N=i==null?void 0:i.trim)==null?void 0:N.call(i);const[,f]=(E=o==null?void 0:o.split)==null?void 0:E.call(o,"="),[,d]=(_=s==null?void 0:s.split)==null?void 0:_.call(s,"="),[,m]=(C=i==null?void 0:i.split)==null?void 0:C.call(i,"=");r.push(+f,+d,+m)}),r}const Ie=t=>t>="0"&&t<="9",Le=t=>t==="+"||t==="-",Be=t=>t===".";function $e(t){return Ie(t)||Le(t)||Be(t)}function je(t){const n=[],r=new Set(["X","Y","Z"]);return t.forEach(l=>{const c={x:0,y:0,z:0},o=l.trim();if(!o)return;let s=null,i="";for(let f=0;f<(o==null?void 0:o.length);f++){const d=o[f];if(d==="T")break;const m=r.has(d)?d:null,v=$e(d);if(m||!v){s&&$(s,c,i),s=m,i="";continue}i=i+d}s&&$(s,c,i),n.push(c.x,c.y,c.z)}),n}function qe(t){return t==null?void 0:t.includes("=")}async function Xe(t){var c,o;const n=(c=t==null?void 0:t.trim())==null?void 0:c.split(/\r?\n/);if(qe(t))return Fe(n);const r=n==null?void 0:n[0],l=(o=r==null?void 0:r.trim())==null?void 0:o.split(/\s+/);if((l==null?void 0:l.length)>=3)return ze(n);if((l==null?void 0:l.length)===1)return Ae(n)}async function Re(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ye(t){const n=t.trim().split(/\r?\n/),r=[];return n.forEach(l=>{const c=l.trim().split(/\s+/);if(c.length!=3)return;const[o,s,i]=c;r.push(+o,+s,+i)}),r}async function Ze(t){let n=t.trim().split(/\r?\n/);return n=n.filter(l=>{const c=l.startsWith("X")||l.startsWith("Y")||l.startsWith("Z"),o=l.startsWith("G")&&(l.includes("X")||l.includes("Y")||l.includes("Z")),s=l.startsWith("N")&&(l.includes("X")||l.includes("Y")||l.includes("Z"));return c||o||s}),je(n)}async function Oe(t,n){const{isCyd:r,isUv:l,isCpt:c,isNc:o}=n;return l?Xe(t):r?Ye(t):c?Re(t):o?Ze(t):[]}function Ge(t){const n=[];for(let r=0;r<t.length;r+=3)n.push(new h.Vector3(t[r],t[r+1],t[r+2]));return n}function Ke(t){const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new h.LineBasicMaterial({color:55551,linewidth:3});return new h.Line(n,r)}function Se(t,n){if(!n||n.length<3)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=Ke(n);return s.name="轨迹路径",r.add(s),s}function We(t,n,r,l=4,c=50){let o=1/0,s=-1/0,i=1/0,f=-1/0,d=1/0,m=-1/0;for(let C=0;C<t.length;C+=3){const b=t[C],p=t[C+1],y=t[C+2];o=Math.min(o,b),s=Math.max(s,b),i=Math.min(i,p),f=Math.max(f,p),d=Math.min(d,y),m=Math.max(m,y)}const w=Math.sqrt((s-o)**2+(f-i)**2+(m-d)**2)*.05,N=h.MathUtils.degToRad(n.fov),E=2*Math.tan(N/2)*c,_=w/E*r.domElement.height*(l/4);return Math.min(.4,_)}function He(t){if(t.length%3!==0)return console.error("points array length is not a multiple of 3:",t),null;const n=new h.BufferGeometry;n.setAttribute("position",new h.Float32BufferAttribute(t,3));const r=new Float32Array(t.length);for(let o=0;o<t.length;o+=3)r[o]=0,r[o+1]=.847,r[o+2]=1;n.setAttribute("color",new h.BufferAttribute(r,3));const l=new h.PointsMaterial({vertexColors:!0,size:.4,sizeAttenuation:!0}),c=new h.Points(n,l);return l.needsUpdate=!0,c}function Je(t,n){if(!n)return;const{scene:r,camera:l,renderer:c,controls:o}=t();if(!r||!l||!c||!o)return;const s=He(n);if(!s)return;s.name="轨迹路径",r.add(s);const i=We(n,l,c,.1,50);return s.material.size=i,s}const Qe={class:"obj-viewer-container"},et={class:"buttonGroup-topLeft"},tt={class:"buttonGroup-left"},nt={class:"buttonGroup-right"},ot={class:"buttonGroup-bottom"},rt={class:"left-panel"},lt={class:"panel-header"},st={class:"panel-body"},it={key:1,class:"clipping-content"},at={class:"radio-group"},ct={class:"radio-label"},ut={class:"radio-label"},dt={class:"radio-label"},ft={class:"radio-label"},vt={class:"right-panel"},mt={class:"panel-header"},pt={class:"panel-body"},gt={key:0,class:"loading-overlay"},ht=e.defineComponent({__name:"threeTrackPathView",props:{fileBlobs:{},threeData:{default:()=>""},trackFileType:{}},emits:["getAnimationData","getThreeData"],setup(t,{emit:n}){const r=n,l=t,c=e.ref(null),o=e.ref(!1),s=e.ref(""),i=e.ref(),f=e.ref(!1),d=e.ref(""),m=e.ref(!1),v=e.ref(""),w=e.shallowRef(null),N=e.shallowRef(null),{currentModels:E,initThreeJS:_,handleResize:C,getThreeJSObjects:b,cleanup:p,axesHelperVisible:y,toggleAxesVisibility:F,zoomIn:j,zoomOut:q}=P.useThreeJS(c),{isAnimating:I,toggleAnimation:M,stopAnimation:J}=P.useAnimation(b,E),{isClipping:Q,activeClippingAxis:k,toggleClipping:ee,updateClippingPlanes:T}=P.useClipping(b,E),te=()=>{F()},X=u=>{f.value=!0,d.value=u,u==="剖面视图"&&!Q.value&&ee()},R=u=>{m.value=!0,v.value=u,u==="动画仿真"&&r("getAnimationData")},Y=e.ref([]),D=e.ref([]),ne=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isUv}),oe=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCyd}),re=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isCpt}),z=e.computed(()=>{var a;return(a=l.trackFileType)==null?void 0:a.isNc}),Z=e.computed(()=>{const u=l.fileBlobs||[];return u==null?void 0:u[0]});let x=e.shallowRef(),A=e.shallowRef();const le=()=>{const{scene:u}=b();x.value&&u&&(P.disposeObj(x.value,u),x.value=null)},se=()=>{const{scene:u}=b();A.value&&u&&(P.disposeObj(A.value,u),A.value=null)},O=()=>{le(),se()},ie=async u=>{const a=URL.createObjectURL(u),U=await ge.readFileText(a);if(URL.revokeObjectURL(a),he.isString(U)){const g=await Oe(U,l.trackFileType)||[];Y.value=g;const K=Y.value;ne.value&&(x.value=Se(b,K)),(oe.value||re.value||z.value)&&(x.value=Je(b,K)),P.frameCameraToObject3D(b,x.value)}},ae=async()=>{var u,a;A.value=ye(),D.value=Ge(Y.value),D.value&&D.value.length&&(H(A.value,D.value[0],x.value,new h.Color(16711680)),(a=(u=N.value)==null?void 0:u.add)==null||a.call(u,A.value))},ce=async()=>{var u;await((u=i==null?void 0:i.value)==null?void 0:u.reset()),await G(Z.value)},G=async u=>{O(),await ie(u),z.value&&ae()};e.watch(()=>Z.value,async u=>{u&&await G(u)},{immediate:!0,deep:!0});const ue=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.playAnimation())},de=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.stopAnimation())},fe=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.forwardFrame())},ve=()=>{var u;z.value&&((u=i==null?void 0:i.value)==null||u.backwardFrame())};let L=null;const me=()=>{_(),e.nextTick(()=>{c.value&&(L=new ResizeObserver(C),L.observe(c.value))});const u=b();N.value=u.scene,N.value&&(N.value.name="CPMPIP")},pe=()=>{L&&L.disconnect(),I.value&&J(),O(),p()};return e.onMounted(async()=>{try{me()}catch(u){console.error("Three.js 初始化失败:",u),B.ElMessage.error("渲染引擎初始化失败!")}}),e.onBeforeUnmount(()=>{pe()}),(u,a)=>{const U=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createElementBlock("div",Qe,[e.createElementVNode("div",{ref_key:"threejsContainer",ref:c,class:"threejs-container"},null,512),e.createElementVNode("div",et,[e.createVNode(V.ThreeSvgIcon,{name:"viewReset",size:"24",onClick:ce,title:"重置"}),e.createVNode(V.ThreeSvgIcon,{name:"fangda",size:"24",title:"放大",onClick:e.unref(j)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"suoxiao",size:"24",title:"缩小",onClick:e.unref(q)},null,8,["onClick"]),e.createVNode(V.ThreeSvgIcon,{name:"lookAround",size:"24",onClick:e.unref(M),title:e.unref(I)?"停止动画":"动画视图"},null,8,["onClick","title"]),e.createVNode(V.ThreeSvgIcon,{name:"zuobiaoxi",size:"24",active:e.unref(y),onClick:te,title:"显隐坐标轴"},null,8,["active"])]),e.createElementVNode("div",tt,[e.renderSlot(u.$slots,"button-left",{switchRightPanel:X},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"jiegoushu",size:"24",onClick:a[0]||(a[0]=g=>X("场景树")),active:f.value&&d.value==="场景树",title:"场景树"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"clipping",size:"24",onClick:a[1]||(a[1]=g=>X("剖面视图")),active:f.value&&d.value==="剖面视图",title:"剖面视图"},null,8,["active"])]),e.createElementVNode("div",nt,[e.renderSlot(u.$slots,"button-right",{switchRightPanel:R},void 0,!0),e.createVNode(V.ThreeSvgIcon,{name:"guanjiekongzhi",size:"24",onClick:a[2]||(a[2]=g=>R("关节控制")),active:m.value&&v.value==="关节控制",title:"关节控制"},null,8,["active"]),e.createVNode(V.ThreeSvgIcon,{name:"donghuafangzhen",size:"24",title:"动画仿真",onClick:a[3]||(a[3]=g=>R("动画仿真")),active:m.value&&v.value==="动画仿真"},null,8,["active"])]),e.createElementVNode("div",ot,[e.createVNode(V.ThreeSvgIcon,{name:"kuaitui",size:"24",backgroundColor:"#ffffff",title:"快退",onClick:ve}),e.createVNode(V.ThreeSvgIcon,{name:"bofang",size:"24",backgroundColor:"#ffffff",title:"播放",onClick:ue}),e.createVNode(V.ThreeSvgIcon,{name:"kuaijin",size:"24",backgroundColor:"#ffffff",title:"快进",onClick:fe}),e.createVNode(V.ThreeSvgIcon,{name:"zanting",size:"24",backgroundColor:"#ffffff",title:"暂停",onClick:de})]),e.withDirectives(e.createElementVNode("div",rt,[e.createElementVNode("div",lt,[e.createElementVNode("span",null,e.toDisplayString(d.value),1),e.createElementVNode("span",{class:"close",onClick:a[4]||(a[4]=g=>f.value=!1)}," X ")]),e.createElementVNode("div",st,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[d.value==="场景树"?(e.openBlock(),e.createBlock(S.UrdfTree,{key:0,model:w.value},null,8,["model"])):e.createCommentVNode("",!0),d.value==="剖面视图"?(e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",at,[e.createElementVNode("label",ct,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"none","onUpdate:modelValue":a[5]||(a[5]=g=>e.isRef(k)?k.value=g:null),onChange:a[6]||(a[6]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[14]||(a[14]=e.createElementVNode("span",{class:"radio-text"},"无切割",-1))]),e.createElementVNode("label",ut,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"x","onUpdate:modelValue":a[7]||(a[7]=g=>e.isRef(k)?k.value=g:null),onChange:a[8]||(a[8]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[15]||(a[15]=e.createElementVNode("span",{class:"radio-text"},"X轴切割",-1))]),e.createElementVNode("label",dt,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"y","onUpdate:modelValue":a[9]||(a[9]=g=>e.isRef(k)?k.value=g:null),onChange:a[10]||(a[10]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[16]||(a[16]=e.createElementVNode("span",{class:"radio-text"},"Y轴切割",-1))]),e.createElementVNode("label",ft,[e.withDirectives(e.createElementVNode("input",{type:"radio",name:"clipping-axis",value:"z","onUpdate:modelValue":a[11]||(a[11]=g=>e.isRef(k)?k.value=g:null),onChange:a[12]||(a[12]=(...g)=>e.unref(T)&&e.unref(T)(...g))},null,544),[[e.vModelRadio,e.unref(k)]]),a[17]||(a[17]=e.createElementVNode("span",{class:"radio-text"},"Z轴切割",-1))])])])):e.createCommentVNode("",!0)]),_:1})])],512),[[e.vShow,f.value]]),e.withDirectives(e.createElementVNode("div",vt,[e.createElementVNode("div",mt,[e.createElementVNode("span",null,e.toDisplayString(v.value),1),e.createElementVNode("span",{class:"close",onClick:a[13]||(a[13]=g=>m.value=!1)}," X ")]),e.createElementVNode("div",pt,[e.createVNode(U,{height:"100%"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(S.JointPanel,{model:w.value},null,8,["model"]),[[e.vShow,v.value==="关节控制"]]),e.withDirectives(e.createVNode(xe,{ref_key:"animationPanelRef",ref:i,cloud:e.unref(x),knife:e.unref(A),vectors:D.value},null,8,["cloud","knife","vectors"]),[[e.vShow,v.value==="动画仿真"&&z.value]])]),_:1})])],512),[[e.vShow,m.value]]),o.value?(e.openBlock(),e.createElementBlock("div",gt,[a[18]||(a[18]=e.createElementVNode("div",{class:"loading-spinner"},null,-1)),e.createElementVNode("p",null,e.toDisplayString(s.value),1)])):e.createCommentVNode("",!0)])}}}),yt=W._export_sfc(ht,[["__scopeId","data-v-9bc0694d"]]);exports.default=yt;
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as de, computed as $, ref as _, resolveComponent as Y, createElementBlock as W, openBlock as j, createElementVNode as c, createVNode as h, withCtx as J, toDisplayString as Z, watch as ve, shallowRef as O, onMounted as Ee, onBeforeUnmount as Xe, withDirectives as M, createCommentVNode as se, unref as C, renderSlot as ce, createBlock as Ye, isRef as G, vModelRadio as q, vShow as K, nextTick as je } from "vue";
2
2
  import { u as Ze, a as Ne, b as Be, f as Ie, d as fe } from "./iconfont-Bc_1QADn.js";
3
3
  import { C as H, k as Oe, aE as Ge, v as qe, V as ae, w as me, aF as pe, ai as Ke, y as We, a5 as Re, ag as Je, ao as He, s as Qe } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-D9pbpHt3.js";
4
- import { r as Se } from "./threeViewerHost-CGRUSgAm.js";
4
+ import { r as Se } from "./threeViewerHost-DFr6IPZq.js";
5
5
  import { E as R } from "./index-BUYYl2Pc.js";
6
6
  import { U as et, J as tt } from "./urdfTree-B5ODHHDI.js";
7
7
  import { _ as ge } from "./_plugin-vue_export-helper-CHgC5LLL.js";