ss-component-new 1.3.13 → 1.3.14
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.
- package/dist/{MTLLoader-C_XCtjSi.cjs → MTLLoader-B3diP_CH.cjs} +1 -1
- package/dist/{MTLLoader-YR-bfx1D.js → MTLLoader-D0AtmWHn.js} +37 -37
- package/dist/{OrbitControls-CktvE4iE.cjs → OrbitControls-BEMjDphC.cjs} +1 -1
- package/dist/{OrbitControls-BGsXD_A7.js → OrbitControls-C2bjXeWs.js} +1 -1
- package/dist/{URDFLoader-10oVp_KW.cjs → URDFLoader-GlKgq4QK.cjs} +1 -1
- package/dist/{URDFLoader-m1gMdnSQ.js → URDFLoader-qmyg9fYK.js} +189 -189
- package/dist/{animationData-CpK8d_Vm.js → animationData-Bi3_TyWE.js} +26 -26
- package/dist/{animationData-Cr2ra7rm.cjs → animationData-IwjfXQMn.cjs} +1 -1
- package/dist/{array-DSgiHp_j.cjs → array-DUQ3K_U3.cjs} +1 -1
- package/dist/{array-Bg-M1dRR.js → array-UVmZuEFZ.js} +46 -46
- package/dist/{iconfont-DsF7kuG5.cjs → iconfont-CAsy8t6b.cjs} +1 -1
- package/dist/{iconfont-0yJB130V.js → iconfont-DSIYZm9L.js} +29 -29
- package/dist/{index-i0GbQYT8.js → index-34N9MmAJ.js} +3 -3
- package/dist/{index-D8HD14bz.js → index-B2ktP1tY.js} +1 -1
- package/dist/{index-Ez8Heyym.js → index-B8Plk6_G.js} +915 -924
- package/dist/{index-BJPBBWWH.cjs → index-BLxE_tkf.cjs} +1 -1
- package/dist/{index-gfdgTjvQ.js → index-BNjvOnNL.js} +3 -3
- package/dist/{index-Ddoq7kRQ.js → index-BT6DSXQW.js} +9 -9
- package/dist/{index-CVXrjDFh.cjs → index-BWaSs-dx.cjs} +1 -1
- package/dist/{index-DIo9kT8l.cjs → index-BYJp0q3a.cjs} +1 -1
- package/dist/{index-DaoKeyl8.cjs → index-BaZ8Dz9C.cjs} +12 -12
- package/dist/{index-DHZOXdHe.js → index-BbZzjjV4.js} +7 -7
- package/dist/{index-BXUByyre.js → index-BfJ9-vQE.js} +2 -2
- package/dist/{index-DNmw0pc6.js → index-BoPqoH3C.js} +41 -41
- package/dist/index-BteE57Nz.js +103 -0
- package/dist/{index-dQFlJRrM.js → index-C-1cJ11C.js} +7 -7
- package/dist/{index-h_-N0ZtQ.js → index-C00SsoBw.js} +7 -7
- package/dist/{index-BcipoSQA.js → index-C5Q1KlY_.js} +2 -2
- package/dist/{index-Cwt7s25B.cjs → index-C7G7qNVy.cjs} +1 -1
- package/dist/index-C8FzkPpO.cjs +1 -0
- package/dist/{index-DRTxe12U.cjs → index-C8fMwErX.cjs} +13 -13
- package/dist/{index-N6U5R7pz.cjs → index-CD3-vCG-.cjs} +1 -1
- package/dist/{index-nr6V1FzX.js → index-CEq2QX9L.js} +7 -7
- package/dist/{index-CXiOVgoz.js → index-CEzEaG0d.js} +1 -1
- package/dist/{index-AgxmhjXT.js → index-CFZzQ_84.js} +8 -8
- package/dist/{index-Cjqg29ul.cjs → index-CIrXKpNl.cjs} +1 -1
- package/dist/{index-CBJCu7IU.cjs → index-Cd1xYGsa.cjs} +1 -1
- package/dist/{index-D_Yhv_HV.cjs → index-CdV2vSOK.cjs} +1 -1
- package/dist/index-CnuuKF1t.js +12544 -0
- package/dist/{index-C9SfnCpQ.js → index-CvqHcSC4.js} +2 -2
- package/dist/{index-DU9e5EhS.cjs → index-Cw4Pm2PQ.cjs} +1 -1
- package/dist/{index-bwtexcx2.cjs → index-D1X1OeUR.cjs} +1 -1
- package/dist/{index-gzS894Xb.cjs → index-DGIfO1LO.cjs} +1 -1
- package/dist/{index-Va8AOLWi.js → index-DGRL8SEt.js} +1 -1
- package/dist/{index-D3ixok8t.cjs → index-DJjHIf5F.cjs} +1 -1
- package/dist/{index-Bi76KPTH.js → index-DLF_1ATs.js} +5 -5
- package/dist/{index-DaIE9uY1.cjs → index-DMHNlcTB.cjs} +1 -1
- package/dist/{index-BfpxkTBr.cjs → index-DnMehixw.cjs} +1 -1
- package/dist/index-DowlDm_R.cjs +11 -0
- package/dist/{index-BTVKWZt_.js → index-DppPsJwa.js} +2 -2
- package/dist/{index-BPwYtuzg.cjs → index-Dy5qQAC3.cjs} +1 -1
- package/dist/{index-DS-YTop9.cjs → index-Jytyg12u.cjs} +1 -1
- package/dist/{index-CJJzXv2E.cjs → index-L_qyO2xf.cjs} +1 -1
- package/dist/{index-DhEfvV0x.js → index-US_KTUv7.js} +5 -5
- package/dist/{index-CtiuIHrN.cjs → index-bmTqenMO.cjs} +1 -1
- package/dist/{index-D7054IS6.cjs → index-dSga-Sqb.cjs} +1 -1
- package/dist/{index-NaWMtdUV.js → index-fuCgJzzm.js} +2 -2
- package/dist/{index-DVNEBZvu.js → index-fuVLvPhz.js} +3 -3
- package/dist/index-hh3Ozhvs.cjs +1 -0
- package/dist/{index-DBh5Z73C.js → index-i7Q6x7Zz.js} +1 -1
- package/dist/{index-B-SYbelE.js → index-jDCU1Wp9.js} +2 -2
- package/dist/{index-COQpDVsv.js → index-sMsCzNtW.js} +1535 -1570
- package/dist/{index-BWCv7zxy.cjs → index-vCTVD7cV.cjs} +1 -1
- package/dist/{index-Bo9X-gZk.cjs → index-wIeZl5t7.cjs} +1 -1
- package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-1pEFQ04s.js → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BRc8dG0E.js} +31601 -32166
- package/dist/{index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-ZMwIbmlN.cjs → index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CbFQ2oZH.cjs} +394 -404
- package/dist/{index.vue_vue_type_style_index_1_lang-CNh42_ZH.js → index.vue_vue_type_style_index_1_lang-Cqe1NPUQ.js} +78 -78
- package/dist/{index.vue_vue_type_style_index_1_lang--4T7j9qz.cjs → index.vue_vue_type_style_index_1_lang-D5dZrna1.cjs} +1 -1
- package/dist/{main-CwhQ7pet.cjs → main-DMEkPrPQ.cjs} +1 -1
- package/dist/{main-DQ4rxh2x.js → main-JQX3whvo.js} +4 -4
- package/dist/{menuIndex-D52EAwtb.cjs → menuIndex-8RF_0N_y.cjs} +1 -1
- package/dist/{menuIndex-DYaogp2R.js → menuIndex-BwWrdu20.js} +1 -1
- package/dist/ss-component.cjs +1 -1
- package/dist/ss-component.css +1 -1
- package/dist/ss-component.js +10 -10
- package/dist/ss-component2.cjs +1 -1
- package/dist/ss-component2.js +11 -11
- package/dist/{threeModel-B28hvnHw.js → threeModel-BYeWWze5.js} +45 -45
- package/dist/{threeModel-DnKfIIgn.cjs → threeModel-cUS9-ww3.cjs} +1 -1
- package/dist/{threePreview-DOD9HOZn.cjs → threePreview-BtspqluS.cjs} +1 -1
- package/dist/{threePreview-CkKl3frr.js → threePreview-CZI4Z6PT.js} +103 -103
- package/dist/{threeSceneView-DZvOLWv6.cjs → threeSceneView-B5L-Drf9.cjs} +1 -1
- package/dist/{threeSceneView-DlL9pZlj.js → threeSceneView-Cr_KXNx5.js} +38 -38
- package/dist/{threeSceneViewForCPMPIP-DB0Eczbs.js → threeSceneViewForCPMPIP-BuuDHRI4.js} +8 -8
- package/dist/{threeSceneViewForCPMPIP-CZvKvfDx.cjs → threeSceneViewForCPMPIP-Dp8auXh3.cjs} +1 -1
- package/dist/{threeTrackPathView-DgyAEYfV.cjs → threeTrackPathView-78ve4cJ3.cjs} +1 -1
- package/dist/{threeTrackPathView-Eb1bvUXJ.js → threeTrackPathView-DWMtEQZW.js} +66 -66
- package/dist/{threeViewerHost-BMU1tg9c.cjs → threeViewerHost-Mm-Ez-7E.cjs} +1 -1
- package/dist/{threeViewerHost-Bdzv9iPb.js → threeViewerHost-Yx0xoLgc.js} +20 -20
- package/dist/{urdfTree-hLtm0aFY.js → urdfTree-DMMvqDhp.js} +10 -10
- package/dist/{urdfTree-CoK2r17Y.cjs → urdfTree-npoVarfp.cjs} +1 -1
- package/dist/{workpieceTreePanel-mWvCQyyw.cjs → workpieceTreePanel-B2ICcFLW.cjs} +1 -1
- package/dist/{workpieceTreePanel-Ne_ACq86.js → workpieceTreePanel-C6ceilqa.js} +56 -56
- package/package.json +1 -1
- package/dist/index-Bb1M3ASi.cjs +0 -1
- package/dist/index-CpbBe_mV.cjs +0 -1
- package/dist/index-DIWralYr.js +0 -67
- package/dist/index-DbnDlzwg.cjs +0 -1
- package/dist/index-Dw4-rPvA.js +0 -11883
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent as ce, computed as
|
|
2
|
-
import { u as De, a as Ne, b as Ze, C as
|
|
3
|
-
import {
|
|
4
|
-
import "./index-
|
|
5
|
-
import { U as et, J as tt } from "./urdfTree-
|
|
6
|
-
import { E as
|
|
1
|
+
import { defineComponent as ce, computed as U, ref as k, resolveComponent as E, createElementBlock as ee, openBlock as X, createElementVNode as d, createVNode as p, withCtx as I, toDisplayString as Y, shallowRef as D, watch as Ee, onMounted as Xe, onBeforeUnmount as Ye, withDirectives as N, createCommentVNode as S, unref as A, renderSlot as ie, createBlock as le, vShow as Z, nextTick as je } from "vue";
|
|
2
|
+
import { u as De, a as Ne, b as Ze, C as Be, f as Ie, d as re } from "./iconfont-DSIYZm9L.js";
|
|
3
|
+
import { L as O, Y as Oe, bC as Ge, ay as qe, V as te, aA as ue, aN as fe, aT as Ke, aC as We, aS as Je, aP as Re, aQ as He, a6 as Qe, bD as Se } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BRc8dG0E.js";
|
|
4
|
+
import "./index-sMsCzNtW.js";
|
|
5
|
+
import { U as et, J as tt } from "./urdfTree-DMMvqDhp.js";
|
|
6
|
+
import { E as B } from "./index-B8HqIYd5.js";
|
|
7
7
|
import { _ as ve } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
8
8
|
import { T as w } from "./svgIcon-4u4PW7Is.js";
|
|
9
9
|
import { i as nt } from "./isString-FfOeP713.js";
|
|
@@ -52,7 +52,7 @@ const it = { class: "panel-content" }, lt = { class: "animation-controls" }, rt
|
|
|
52
52
|
},
|
|
53
53
|
emits: ["getThreeData"],
|
|
54
54
|
setup(e, { expose: n, emit: o }) {
|
|
55
|
-
const a = e, l =
|
|
55
|
+
const a = e, l = U(() => a.vectors), t = k(!1), s = k(0), r = k(100);
|
|
56
56
|
let f = !1;
|
|
57
57
|
const c = (g) => `第 ${g + 1} 帧`, m = (g) => {
|
|
58
58
|
if (g < 0 || g >= l.value.length) {
|
|
@@ -63,7 +63,7 @@ const it = { class: "panel-content" }, lt = { class: "animation-controls" }, rt
|
|
|
63
63
|
s.value = g, de(a.knife, y, a.cloud);
|
|
64
64
|
}, v = async () => {
|
|
65
65
|
if (l.value.length === 0) {
|
|
66
|
-
|
|
66
|
+
B.error("无法播放动画:无数据");
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
69
|
if (!t.value) {
|
|
@@ -71,7 +71,7 @@ const it = { class: "panel-content" }, lt = { class: "animation-controls" }, rt
|
|
|
71
71
|
try {
|
|
72
72
|
for (let g = s.value + 1; g < l.value.length && !f; g++)
|
|
73
73
|
await new Promise((y) => setTimeout(y, r.value)), m(g);
|
|
74
|
-
f ||
|
|
74
|
+
f || B.success("动画播放完成");
|
|
75
75
|
} catch (g) {
|
|
76
76
|
console.error("动画播放出错:", g);
|
|
77
77
|
} finally {
|
|
@@ -79,7 +79,7 @@ const it = { class: "panel-content" }, lt = { class: "animation-controls" }, rt
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
}, C = () => {
|
|
82
|
-
f = !0, t.value = !1,
|
|
82
|
+
f = !0, t.value = !1, B.info("动画已停止");
|
|
83
83
|
}, P = (g) => {
|
|
84
84
|
t.value && C(), m(g);
|
|
85
85
|
}, _ = () => {
|
|
@@ -92,23 +92,23 @@ const it = { class: "panel-content" }, lt = { class: "animation-controls" }, rt
|
|
|
92
92
|
return n({ playAnimation: v, stopAnimation: C, forwardFrame: _, backwardFrame: T, resetAnimationFrame: h, reset: async () => {
|
|
93
93
|
await C(), h();
|
|
94
94
|
} }), (g, y) => {
|
|
95
|
-
const q =
|
|
96
|
-
return
|
|
95
|
+
const q = E("el-input-number"), K = E("el-form-item"), W = E("el-form"), J = E("el-slider");
|
|
96
|
+
return X(), ee("div", it, [
|
|
97
97
|
d("div", lt, [
|
|
98
98
|
d("div", rt, [
|
|
99
99
|
p(W, {
|
|
100
100
|
"label-width": "auto",
|
|
101
101
|
style: { width: "100%" }
|
|
102
102
|
}, {
|
|
103
|
-
default:
|
|
103
|
+
default: I(() => [
|
|
104
104
|
p(K, {
|
|
105
105
|
label: "帧间隔 (ms):",
|
|
106
106
|
prop: "frameDuration"
|
|
107
107
|
}, {
|
|
108
|
-
default:
|
|
108
|
+
default: I(() => [
|
|
109
109
|
p(q, {
|
|
110
110
|
modelValue: r.value,
|
|
111
|
-
"onUpdate:modelValue": y[0] || (y[0] = (
|
|
111
|
+
"onUpdate:modelValue": y[0] || (y[0] = (M) => r.value = M),
|
|
112
112
|
min: 0,
|
|
113
113
|
max: 5e3,
|
|
114
114
|
step: 10,
|
|
@@ -127,9 +127,9 @@ const it = { class: "panel-content" }, lt = { class: "animation-controls" }, rt
|
|
|
127
127
|
]),
|
|
128
128
|
d("div", ft, [
|
|
129
129
|
y[3] || (y[3] = d("label", null, "动画进度:", -1)),
|
|
130
|
-
p(
|
|
130
|
+
p(J, {
|
|
131
131
|
modelValue: s.value,
|
|
132
|
-
"onUpdate:modelValue": y[1] || (y[1] = (
|
|
132
|
+
"onUpdate:modelValue": y[1] || (y[1] = (M) => s.value = M),
|
|
133
133
|
min: 0,
|
|
134
134
|
max: l.value.length > 0 ? l.value.length - 1 : 0,
|
|
135
135
|
step: 1,
|
|
@@ -263,16 +263,16 @@ async function Ft(e) {
|
|
|
263
263
|
o.push(+t, +s, +r);
|
|
264
264
|
}), o;
|
|
265
265
|
}
|
|
266
|
-
async function
|
|
266
|
+
async function Mt(e) {
|
|
267
267
|
let n = e.trim().split(/\r?\n/);
|
|
268
268
|
return n = n.filter((a) => {
|
|
269
269
|
const l = a.startsWith("X") || a.startsWith("Y") || a.startsWith("Z"), t = a.startsWith("G") && (a.includes("X") || a.includes("Y") || a.includes("Z")), s = a.startsWith("N") && (a.includes("X") || a.includes("Y") || a.includes("Z"));
|
|
270
270
|
return l || t || s;
|
|
271
271
|
}), zt(n);
|
|
272
272
|
}
|
|
273
|
-
async function
|
|
273
|
+
async function Ut(e, n) {
|
|
274
274
|
const { isCyd: o, isUv: a, isCpt: l, isNc: t } = n;
|
|
275
|
-
return a ? Pt(e) : o ? Ft(e) : l ? xt(e) : t ?
|
|
275
|
+
return a ? Pt(e) : o ? Ft(e) : l ? xt(e) : t ? Mt(e) : [];
|
|
276
276
|
}
|
|
277
277
|
function Lt(e) {
|
|
278
278
|
const n = [];
|
|
@@ -298,7 +298,7 @@ function $t(e, n) {
|
|
|
298
298
|
const s = Vt(n);
|
|
299
299
|
return s.name = "轨迹路径", o.add(s), s;
|
|
300
300
|
}
|
|
301
|
-
function
|
|
301
|
+
function Et(e, n, o, a = 4, l = 50) {
|
|
302
302
|
let t = 1 / 0, s = -1 / 0, r = 1 / 0, f = -1 / 0, c = 1 / 0, m = -1 / 0;
|
|
303
303
|
for (let h = 0; h < e.length; h += 3) {
|
|
304
304
|
const L = e[h], g = e[h + 1], y = e[h + 2];
|
|
@@ -307,7 +307,7 @@ function Xt(e, n, o, a = 4, l = 50) {
|
|
|
307
307
|
const C = Math.sqrt((s - t) ** 2 + (f - r) ** 2 + (m - c) ** 2) * 0.05, P = Qe.degToRad(n.fov), _ = 2 * Math.tan(P / 2) * l, T = C / _ * o.domElement.height * (a / 4);
|
|
308
308
|
return Math.min(0.4, T);
|
|
309
309
|
}
|
|
310
|
-
function
|
|
310
|
+
function Xt(e) {
|
|
311
311
|
if (e.length % 3 !== 0)
|
|
312
312
|
return console.error("points array length is not a multiple of 3:", e), null;
|
|
313
313
|
const n = new ue();
|
|
@@ -315,13 +315,13 @@ function Et(e) {
|
|
|
315
315
|
const o = new Float32Array(e.length);
|
|
316
316
|
for (let t = 0; t < e.length; t += 3)
|
|
317
317
|
o[t] = 0, o[t + 1] = 0.847, o[t + 2] = 1;
|
|
318
|
-
n.setAttribute("color", new
|
|
319
|
-
const a = new
|
|
318
|
+
n.setAttribute("color", new Je(o, 3));
|
|
319
|
+
const a = new Re({
|
|
320
320
|
vertexColors: !0,
|
|
321
321
|
size: 0.4,
|
|
322
322
|
// 像素世界单位
|
|
323
323
|
sizeAttenuation: !0
|
|
324
|
-
}), l = new
|
|
324
|
+
}), l = new He(n, a);
|
|
325
325
|
return a.needsUpdate = !0, l;
|
|
326
326
|
}
|
|
327
327
|
function Yt(e, n) {
|
|
@@ -330,17 +330,17 @@ function Yt(e, n) {
|
|
|
330
330
|
const { scene: o, camera: a, renderer: l, controls: t } = e();
|
|
331
331
|
if (!o || !a || !l || !t)
|
|
332
332
|
return;
|
|
333
|
-
const s =
|
|
333
|
+
const s = Xt(n);
|
|
334
334
|
if (!s)
|
|
335
335
|
return;
|
|
336
336
|
s.name = "轨迹路径", o.add(s);
|
|
337
|
-
const r =
|
|
337
|
+
const r = Et(n, a, l, 0.1, 50);
|
|
338
338
|
return s.material.size = r, s;
|
|
339
339
|
}
|
|
340
|
-
const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft" }, Nt = { class: "buttonGroup-left" }, Zt = { class: "buttonGroup-right" },
|
|
340
|
+
const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft" }, Nt = { class: "buttonGroup-left" }, Zt = { class: "buttonGroup-right" }, Bt = { class: "buttonGroup-bottom" }, It = { class: "left-panel" }, Ot = { class: "panel-header" }, Gt = { class: "panel-body" }, qt = { class: "right-panel" }, Kt = { class: "panel-header" }, Wt = { class: "panel-body" }, Jt = {
|
|
341
341
|
key: 0,
|
|
342
342
|
class: "loading-overlay"
|
|
343
|
-
},
|
|
343
|
+
}, Rt = /* @__PURE__ */ ce({
|
|
344
344
|
__name: "threeTrackPathView",
|
|
345
345
|
props: {
|
|
346
346
|
fileBlobs: {},
|
|
@@ -360,28 +360,28 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
360
360
|
axesHelperVisible: q,
|
|
361
361
|
toggleAxesVisibility: K,
|
|
362
362
|
zoomIn: W,
|
|
363
|
-
zoomOut:
|
|
364
|
-
} = De(o), { isAnimating:
|
|
363
|
+
zoomOut: J
|
|
364
|
+
} = De(o), { isAnimating: M, toggleAnimation: me, startAnimation: Ht, stopAnimation: pe } = Ne(h, C), { isClipping: he, activeClippingAxis: ne, toggleClipping: ge, updateClippingPlanes: ye } = Ze(h, C), Ce = () => {
|
|
365
365
|
K();
|
|
366
366
|
}, we = (i) => {
|
|
367
367
|
ne.value = i, ye();
|
|
368
|
-
}, J = (i) => {
|
|
369
|
-
s.value = !0, r.value = i, i === "剖面视图" && !he.value && ge();
|
|
370
368
|
}, R = (i) => {
|
|
369
|
+
s.value = !0, r.value = i, i === "剖面视图" && !he.value && ge();
|
|
370
|
+
}, H = (i) => {
|
|
371
371
|
f.value = !0, c.value = i;
|
|
372
|
-
}, Q = k([]), V = k([]), ke =
|
|
372
|
+
}, Q = k([]), V = k([]), ke = U(() => {
|
|
373
373
|
var u;
|
|
374
374
|
return (u = n.trackFileType) == null ? void 0 : u.isUv;
|
|
375
|
-
}), be =
|
|
375
|
+
}), be = U(() => {
|
|
376
376
|
var u;
|
|
377
377
|
return (u = n.trackFileType) == null ? void 0 : u.isCyd;
|
|
378
|
-
}), _e =
|
|
378
|
+
}), _e = U(() => {
|
|
379
379
|
var u;
|
|
380
380
|
return (u = n.trackFileType) == null ? void 0 : u.isCpt;
|
|
381
|
-
}), x =
|
|
381
|
+
}), x = U(() => {
|
|
382
382
|
var u;
|
|
383
383
|
return (u = n.trackFileType) == null ? void 0 : u.isNc;
|
|
384
|
-
}), oe =
|
|
384
|
+
}), oe = U(() => {
|
|
385
385
|
const i = n.fileBlobs || [];
|
|
386
386
|
return i == null ? void 0 : i[0];
|
|
387
387
|
});
|
|
@@ -397,7 +397,7 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
397
397
|
}, Ae = async (i) => {
|
|
398
398
|
const u = URL.createObjectURL(i), $ = await Se(u);
|
|
399
399
|
if (URL.revokeObjectURL(u), nt($)) {
|
|
400
|
-
Q.value = await
|
|
400
|
+
Q.value = await Ut($, n.trackFileType) || [];
|
|
401
401
|
const z = Q.value;
|
|
402
402
|
ke.value && (b.value = $t(h, z)), (be.value || _e.value || x.value) && (b.value = Yt(h, z));
|
|
403
403
|
}
|
|
@@ -405,9 +405,9 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
405
405
|
var i, u;
|
|
406
406
|
F.value = ot(), V.value = Lt(Q.value), V.value && V.value.length && (de(F.value, V.value[0], b.value, new O(16711680)), (u = (i = v.value) == null ? void 0 : i.add) == null || u.call(i, F.value));
|
|
407
407
|
}, ae = async (i) => {
|
|
408
|
-
se(), await Ae(i), b.value &&
|
|
408
|
+
se(), await Ae(i), b.value && Ie(h, b.value), x.value && Pe();
|
|
409
409
|
};
|
|
410
|
-
|
|
410
|
+
Ee(() => oe.value, async (i) => {
|
|
411
411
|
i && await ae(i);
|
|
412
412
|
}, {
|
|
413
413
|
immediate: !0,
|
|
@@ -419,10 +419,10 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
419
419
|
}, Fe = () => {
|
|
420
420
|
var i;
|
|
421
421
|
x.value && ((i = t == null ? void 0 : t.value) == null || i.playAnimation());
|
|
422
|
-
},
|
|
422
|
+
}, Me = () => {
|
|
423
423
|
var i;
|
|
424
424
|
x.value && ((i = t == null ? void 0 : t.value) == null || i.stopAnimation());
|
|
425
|
-
},
|
|
425
|
+
}, Ue = () => {
|
|
426
426
|
var i;
|
|
427
427
|
x.value && ((i = t == null ? void 0 : t.value) == null || i.forwardFrame());
|
|
428
428
|
}, Le = () => {
|
|
@@ -435,20 +435,20 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
435
435
|
const i = h();
|
|
436
436
|
v.value = i.scene, v.value && (v.value.name = "CPMPIP");
|
|
437
437
|
}, $e = () => {
|
|
438
|
-
j && j.disconnect(),
|
|
438
|
+
j && j.disconnect(), M.value && pe(), se(), L();
|
|
439
439
|
};
|
|
440
440
|
let j = null;
|
|
441
|
-
return
|
|
441
|
+
return Xe(async () => {
|
|
442
442
|
try {
|
|
443
443
|
Ve();
|
|
444
444
|
} catch (i) {
|
|
445
|
-
console.error("Three.js 初始化失败:", i),
|
|
445
|
+
console.error("Three.js 初始化失败:", i), B.error("渲染引擎初始化失败!");
|
|
446
446
|
}
|
|
447
447
|
}), Ye(() => {
|
|
448
448
|
$e();
|
|
449
449
|
}), (i, u) => {
|
|
450
|
-
const $ =
|
|
451
|
-
return
|
|
450
|
+
const $ = E("el-scrollbar");
|
|
451
|
+
return X(), ee("div", jt, [
|
|
452
452
|
d("div", {
|
|
453
453
|
ref_key: "threejsContainer",
|
|
454
454
|
ref: o,
|
|
@@ -471,13 +471,13 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
471
471
|
name: "suoxiao",
|
|
472
472
|
size: "24",
|
|
473
473
|
title: "缩小",
|
|
474
|
-
onClick: A(
|
|
474
|
+
onClick: A(J)
|
|
475
475
|
}, null, 8, ["onClick"]),
|
|
476
476
|
p(w, {
|
|
477
477
|
name: "lookAround",
|
|
478
478
|
size: "24",
|
|
479
479
|
onClick: A(me),
|
|
480
|
-
title: A(
|
|
480
|
+
title: A(M) ? "停止动画" : "动画视图"
|
|
481
481
|
}, null, 8, ["onClick", "title"]),
|
|
482
482
|
p(w, {
|
|
483
483
|
name: "zuobiaoxi",
|
|
@@ -488,28 +488,28 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
488
488
|
}, null, 8, ["active"])
|
|
489
489
|
]),
|
|
490
490
|
d("div", Nt, [
|
|
491
|
-
ie(i.$slots, "button-left", { switchRightPanel:
|
|
491
|
+
ie(i.$slots, "button-left", { switchRightPanel: R }, void 0, !0),
|
|
492
492
|
p(w, {
|
|
493
493
|
name: "jiegoushu",
|
|
494
494
|
size: "24",
|
|
495
|
-
onClick: u[0] || (u[0] = (z) =>
|
|
495
|
+
onClick: u[0] || (u[0] = (z) => R("场景树")),
|
|
496
496
|
active: s.value && r.value === "场景树",
|
|
497
497
|
title: "场景树"
|
|
498
498
|
}, null, 8, ["active"]),
|
|
499
499
|
p(w, {
|
|
500
500
|
name: "clipping",
|
|
501
501
|
size: "24",
|
|
502
|
-
onClick: u[1] || (u[1] = (z) =>
|
|
502
|
+
onClick: u[1] || (u[1] = (z) => R("剖面视图")),
|
|
503
503
|
active: s.value && r.value === "剖面视图",
|
|
504
504
|
title: "剖面视图"
|
|
505
505
|
}, null, 8, ["active"])
|
|
506
506
|
]),
|
|
507
507
|
d("div", Zt, [
|
|
508
|
-
ie(i.$slots, "button-right", { switchRightPanel:
|
|
508
|
+
ie(i.$slots, "button-right", { switchRightPanel: H }, void 0, !0),
|
|
509
509
|
p(w, {
|
|
510
510
|
name: "guanjiekongzhi",
|
|
511
511
|
size: "24",
|
|
512
|
-
onClick: u[2] || (u[2] = (z) =>
|
|
512
|
+
onClick: u[2] || (u[2] = (z) => H("关节控制")),
|
|
513
513
|
active: f.value && c.value === "关节控制",
|
|
514
514
|
title: "关节控制"
|
|
515
515
|
}, null, 8, ["active"]),
|
|
@@ -517,11 +517,11 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
517
517
|
name: "donghuafangzhen",
|
|
518
518
|
size: "24",
|
|
519
519
|
title: "动画仿真",
|
|
520
|
-
onClick: u[3] || (u[3] = (z) =>
|
|
520
|
+
onClick: u[3] || (u[3] = (z) => H("动画仿真")),
|
|
521
521
|
active: f.value && c.value === "动画仿真"
|
|
522
522
|
}, null, 8, ["active"])
|
|
523
523
|
]),
|
|
524
|
-
d("div",
|
|
524
|
+
d("div", Bt, [
|
|
525
525
|
p(w, {
|
|
526
526
|
name: "kuaitui",
|
|
527
527
|
size: "24",
|
|
@@ -541,17 +541,17 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
541
541
|
size: "24",
|
|
542
542
|
backgroundColor: "#ffffff",
|
|
543
543
|
title: "快进",
|
|
544
|
-
onClick:
|
|
544
|
+
onClick: Ue
|
|
545
545
|
}),
|
|
546
546
|
p(w, {
|
|
547
547
|
name: "zanting",
|
|
548
548
|
size: "24",
|
|
549
549
|
backgroundColor: "#ffffff",
|
|
550
550
|
title: "暂停",
|
|
551
|
-
onClick:
|
|
551
|
+
onClick: Me
|
|
552
552
|
})
|
|
553
553
|
]),
|
|
554
|
-
N(d("div",
|
|
554
|
+
N(d("div", It, [
|
|
555
555
|
d("div", Ot, [
|
|
556
556
|
d("span", null, Y(r.value), 1),
|
|
557
557
|
d("span", {
|
|
@@ -561,12 +561,12 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
561
561
|
]),
|
|
562
562
|
d("div", Gt, [
|
|
563
563
|
p($, { height: "100%" }, {
|
|
564
|
-
default:
|
|
565
|
-
r.value === "场景树" ? (
|
|
564
|
+
default: I(() => [
|
|
565
|
+
r.value === "场景树" ? (X(), le(et, {
|
|
566
566
|
key: 0,
|
|
567
567
|
model: m.value
|
|
568
568
|
}, null, 8, ["model"])) : S("", !0),
|
|
569
|
-
r.value === "剖面视图" ? (
|
|
569
|
+
r.value === "剖面视图" ? (X(), le(Be, {
|
|
570
570
|
key: 1,
|
|
571
571
|
value: A(ne),
|
|
572
572
|
onChange: we
|
|
@@ -588,7 +588,7 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
588
588
|
]),
|
|
589
589
|
d("div", Wt, [
|
|
590
590
|
p($, { height: "100%" }, {
|
|
591
|
-
default:
|
|
591
|
+
default: I(() => [
|
|
592
592
|
N(p(tt, { model: m.value }, null, 8, ["model"]), [
|
|
593
593
|
[Z, c.value === "关节控制"]
|
|
594
594
|
]),
|
|
@@ -608,14 +608,14 @@ const jt = { class: "obj-viewer-container" }, Dt = { class: "buttonGroup-topLeft
|
|
|
608
608
|
], 512), [
|
|
609
609
|
[Z, f.value]
|
|
610
610
|
]),
|
|
611
|
-
a.value ? (
|
|
611
|
+
a.value ? (X(), ee("div", Jt, [
|
|
612
612
|
u[6] || (u[6] = d("div", { class: "loading-spinner" }, null, -1)),
|
|
613
613
|
d("p", null, Y(l.value), 1)
|
|
614
614
|
])) : S("", !0)
|
|
615
615
|
]);
|
|
616
616
|
};
|
|
617
617
|
}
|
|
618
|
-
}), rn = /* @__PURE__ */ ve(
|
|
618
|
+
}), rn = /* @__PURE__ */ ve(Rt, [["__scopeId", "data-v-7178b621"]]);
|
|
619
619
|
export {
|
|
620
620
|
rn as default
|
|
621
621
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),d=require("./index-
|
|
1
|
+
"use strict";const e=require("vue"),d=require("./index-C8fMwErX.cjs"),S=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CbFQ2oZH.cjs"),D=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),F={SINGLE:"单机",DOUBLE:"双机"},R={ROBOT:1,PIPECOMPARSION:2},i={ROBOT_SCENE:"robot",TRACK_PATH:"trackPath",CPMPIP_SCENE:"cpmpip",PREVIEW:"preview"},b=d.defineStore("threeState",{state:()=>({data:{files:[],data:{}}}),actions:{setData(v){this.data=v},getData(){return this.data}}});function I(){const v=d.useMenuState(d.pinia),{platform:g}=d.storeToRefs(v),P=b(d.pinia),c=["uv","cyd","nc"],m=["urdf"],r=["obj","stl"],T=[...c,...m,...r],f=t=>{if(!C())throw new Error("不是三维系统");P.setData(t)},y=()=>P.getData(),C=()=>g.value==="three",l=t=>S.getFileExtension(t),p=t=>{if(!t)return!1;const o=l(t);return T==null?void 0:T.includes(o)},E=t=>{if(!t)return!1;const o=l(t);return r==null?void 0:r.includes(o)},h=t=>{if(!t)return!1;const o=l(t);return c==null?void 0:c.includes(o)},u=t=>{if(!t)return{isCpt:!1,isCyd:!1,isUv:!1,isNc:!1};const o=l(t),a=c==null?void 0:c.find(k=>k===o);return{isCpt:a==="cpt",isCyd:a==="cyd",isUv:a==="uv",isNc:a==="nc"}},_=t=>{if(!t)return!1;const o=l(t);return m==null?void 0:m.includes(o)},B=t=>C()&&p(t),n=t=>({url:t,extension:l(t)});return{getData:y,setData:f,isThreeSystem:C,isUrdf:_,isGeneralFile:E,isTrackPathFile:h,isThreeFile:p,isUseBackdrop:B,initTrackFileType:u,getFileExtension:l,getFileInfo:n,getFilesInfo:t=>{const o=[];for(let a=0;a<t.length;a++){const w=t[a],k=n(w);o.push(k)}return o}}}const N={class:"three-platform mv-inline"},V={class:"top-menu"},A={key:4,class:"loading"},M=e.defineComponent({__name:"threeViewerHost",props:{files:{default:()=>[]},threeData:{},componentType:{},width:{default:"100%"},height:{default:"100%"}},setup(v){const g=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./threeSceneView-B5L-Drf9.cjs"))),P=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./threePreview-BtspqluS.cjs"))),c=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./threeTrackPathView-78ve4cJ3.cjs"))),m=e.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./threeSceneViewForCPMPIP-Dp8auXh3.cjs"))),r=v,T=d.useMenuState(d.pinia),{platName:f}=d.storeToRefs(T),{isUrdf:y,isTrackPathFile:C}=I(),l=e.computed(()=>{var n;return(n=r==null?void 0:r.files)==null?void 0:n.map(s=>{const{url:t}=s;return t})}),p=e.computed(()=>{var t;const n=(t=r==null?void 0:r.files)==null?void 0:t[0];return(n==null?void 0:n.extension)||""}),E=e.computed(()=>{var n,s;return(s=(n=r==null?void 0:r.threeData)==null?void 0:n.data)==null?void 0:s.trackFileType}),h=e.computed(()=>{if(r.componentType)switch(r.componentType){case"robot":return i.ROBOT_SCENE;case"track":return i.TRACK_PATH;case"cpmpip":return i.CPMPIP_SCENE;case"preview":return i.PREVIEW}return(f==null?void 0:f.value)===S.platNameConstants.CPMPIP&&y(p.value)?i.CPMPIP_SCENE:(f==null?void 0:f.value)===S.platNameConstants.ROBOT&&y(p.value)?i.ROBOT_SCENE:C(p.value)&&E.value?i.TRACK_PATH:i.PREVIEW}),u=e.ref([]),_=e.ref(!1);async function B(n){if(!n||!n.length){u.value=[];return}_.value=!0;try{const s=await Promise.all(n.map(t=>S.downloadFile(t)));u.value=s}catch(s){console.error("文件下载时发生错误:",s),u.value=[]}finally{_.value=!1}}return e.watch(()=>l.value,async n=>{await B(n||[])},{immediate:!0,deep:!0}),(n,s)=>(e.openBlock(),e.createElementBlock("div",N,[e.createElementVNode("div",V,[e.renderSlot(n.$slots,"top-menu",{},void 0,!0)]),h.value===e.unref(i).ROBOT_SCENE?(e.openBlock(),e.createBlock(e.unref(g),{key:0,fileBlobs:u.value,threeData:r.threeData},{"button-left":e.withCtx(()=>[e.renderSlot(n.$slots,"management-menu",{},void 0,!0)]),"button-right":e.withCtx(()=>[e.renderSlot(n.$slots,"management-page",{},void 0,!0)]),_:3},8,["fileBlobs","threeData"])):h.value===e.unref(i).TRACK_PATH?(e.openBlock(),e.createBlock(e.unref(c),{key:1,fileBlobs:u.value,threeData:r.threeData,trackFileType:E.value},{"button-left":e.withCtx(()=>[e.renderSlot(n.$slots,"management-menu",{},void 0,!0)]),"button-right":e.withCtx(()=>[e.renderSlot(n.$slots,"management-page",{},void 0,!0)]),_:3},8,["fileBlobs","threeData","trackFileType"])):h.value===e.unref(i).CPMPIP_SCENE?(e.openBlock(),e.createBlock(e.unref(m),{key:2,fileBlobs:u.value,threeData:r.threeData},{"button-left":e.withCtx(()=>[e.renderSlot(n.$slots,"management-menu",{},void 0,!0)]),"button-right":e.withCtx(()=>[e.renderSlot(n.$slots,"management-page",{},void 0,!0)]),_:3},8,["fileBlobs","threeData"])):h.value===e.unref(i).PREVIEW?(e.openBlock(),e.createBlock(e.unref(P),{key:3,fileBlobs:u.value},{"button-left":e.withCtx(()=>[e.renderSlot(n.$slots,"management-menu",{},void 0,!0)]),"button-right":e.withCtx(()=>[e.renderSlot(n.$slots,"management-page",{},void 0,!0)]),_:3},8,["fileBlobs"])):e.createCommentVNode("",!0),_.value?(e.openBlock(),e.createElementBlock("div",A," 文件下载中,请稍候... ")):e.createCommentVNode("",!0)]))}}),O=D._export_sfc(M,[["__scopeId","data-v-9798f55b"]]),H=Object.freeze(Object.defineProperty({__proto__:null,default:O},Symbol.toStringTag,{value:"Module"}));exports.ThreeViewerHost=O;exports.robotMode=F;exports.sceneType=R;exports.threeViewerHost=H;exports.useThreeState=b;exports.useThreeSystem=I;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as U, defineAsyncComponent as b, computed as
|
|
2
|
-
import {
|
|
3
|
-
import { e as j,
|
|
1
|
+
import { defineComponent as U, defineAsyncComponent as b, computed as I, ref as R, watch as H, createElementBlock as N, openBlock as T, createElementVNode as K, createBlock as w, createCommentVNode as V, renderSlot as u, unref as m, withCtx as d } from "vue";
|
|
2
|
+
import { e as W, u as A, p as D, s as $ } from "./index-sMsCzNtW.js";
|
|
3
|
+
import { e as j, aw as M, a9 as L } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BRc8dG0E.js";
|
|
4
4
|
import { _ as G } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
5
|
const re = {
|
|
6
6
|
SINGLE: "单机",
|
|
@@ -34,11 +34,11 @@ const re = {
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
function Y() {
|
|
37
|
-
const E = A(D), { platform:
|
|
37
|
+
const E = A(D), { platform: B } = $(E), y = z(D), i = ["uv", "cyd", "nc"], p = ["urdf"], n = ["obj", "stl"], P = [...i, ...p, ...n], f = (e) => {
|
|
38
38
|
if (!g())
|
|
39
39
|
throw new Error("不是三维系统");
|
|
40
40
|
y.setData(e);
|
|
41
|
-
}, _ = () => y.getData(), g = () =>
|
|
41
|
+
}, _ = () => y.getData(), g = () => B.value === "three", c = (e) => j(e), h = (e) => {
|
|
42
42
|
if (!e)
|
|
43
43
|
return !1;
|
|
44
44
|
const r = c(e);
|
|
@@ -61,7 +61,7 @@ function Y() {
|
|
|
61
61
|
isUv: !1,
|
|
62
62
|
isNc: !1
|
|
63
63
|
};
|
|
64
|
-
const r = c(e), o = i == null ? void 0 : i.find((
|
|
64
|
+
const r = c(e), o = i == null ? void 0 : i.find((k) => k === r);
|
|
65
65
|
return {
|
|
66
66
|
isCpt: o === "cpt",
|
|
67
67
|
isCyd: o === "cyd",
|
|
@@ -73,7 +73,7 @@ function Y() {
|
|
|
73
73
|
return !1;
|
|
74
74
|
const r = c(e);
|
|
75
75
|
return p == null ? void 0 : p.includes(r);
|
|
76
|
-
},
|
|
76
|
+
}, O = (e) => g() && h(e), t = (e) => ({
|
|
77
77
|
url: e,
|
|
78
78
|
extension: c(e)
|
|
79
79
|
});
|
|
@@ -85,15 +85,15 @@ function Y() {
|
|
|
85
85
|
isGeneralFile: S,
|
|
86
86
|
isTrackPathFile: v,
|
|
87
87
|
isThreeFile: h,
|
|
88
|
-
isUseBackdrop:
|
|
88
|
+
isUseBackdrop: O,
|
|
89
89
|
initTrackFileType: l,
|
|
90
90
|
getFileExtension: c,
|
|
91
91
|
getFileInfo: t,
|
|
92
92
|
getFilesInfo: (e) => {
|
|
93
93
|
const r = [];
|
|
94
94
|
for (let o = 0; o < e.length; o++) {
|
|
95
|
-
const F = e[o],
|
|
96
|
-
r.push(
|
|
95
|
+
const F = e[o], k = t(F);
|
|
96
|
+
r.push(k);
|
|
97
97
|
}
|
|
98
98
|
return r;
|
|
99
99
|
}
|
|
@@ -112,20 +112,20 @@ const q = { class: "three-platform mv-inline" }, J = { class: "top-menu" }, Q =
|
|
|
112
112
|
height: { default: "100%" }
|
|
113
113
|
},
|
|
114
114
|
setup(E) {
|
|
115
|
-
const
|
|
115
|
+
const B = b(() => import("./threeSceneView-Cr_KXNx5.js")), y = b(() => import("./threePreview-CZI4Z6PT.js")), i = b(() => import("./threeTrackPathView-DWMtEQZW.js")), p = b(() => import("./threeSceneViewForCPMPIP-BuuDHRI4.js")), n = E, P = A(D), { platName: f } = $(P), { isUrdf: _, isTrackPathFile: g } = Y(), c = I(() => {
|
|
116
116
|
var t;
|
|
117
117
|
return (t = n == null ? void 0 : n.files) == null ? void 0 : t.map((s) => {
|
|
118
118
|
const { url: e } = s;
|
|
119
119
|
return e;
|
|
120
120
|
});
|
|
121
|
-
}), h =
|
|
121
|
+
}), h = I(() => {
|
|
122
122
|
var e;
|
|
123
123
|
const t = (e = n == null ? void 0 : n.files) == null ? void 0 : e[0];
|
|
124
124
|
return (t == null ? void 0 : t.extension) || "";
|
|
125
|
-
}), S =
|
|
125
|
+
}), S = I(() => {
|
|
126
126
|
var t, s;
|
|
127
127
|
return (s = (t = n == null ? void 0 : n.threeData) == null ? void 0 : t.data) == null ? void 0 : s.trackFileType;
|
|
128
|
-
}), v =
|
|
128
|
+
}), v = I(() => {
|
|
129
129
|
if (n.componentType)
|
|
130
130
|
switch (n.componentType) {
|
|
131
131
|
case "robot":
|
|
@@ -139,7 +139,7 @@ const q = { class: "three-platform mv-inline" }, J = { class: "top-menu" }, Q =
|
|
|
139
139
|
}
|
|
140
140
|
return (f == null ? void 0 : f.value) === M.CPMPIP && _(h.value) ? a.CPMPIP_SCENE : (f == null ? void 0 : f.value) === M.ROBOT && _(h.value) ? a.ROBOT_SCENE : g(h.value) && S.value ? a.TRACK_PATH : a.PREVIEW;
|
|
141
141
|
}), l = R([]), C = R(!1);
|
|
142
|
-
async function
|
|
142
|
+
async function O(t) {
|
|
143
143
|
if (!t || !t.length) {
|
|
144
144
|
l.value = [];
|
|
145
145
|
return;
|
|
@@ -157,14 +157,14 @@ const q = { class: "three-platform mv-inline" }, J = { class: "top-menu" }, Q =
|
|
|
157
157
|
return H(
|
|
158
158
|
() => c.value,
|
|
159
159
|
async (t) => {
|
|
160
|
-
await
|
|
160
|
+
await O(t || []);
|
|
161
161
|
},
|
|
162
162
|
{ immediate: !0, deep: !0 }
|
|
163
163
|
), (t, s) => (T(), N("div", q, [
|
|
164
164
|
K("div", J, [
|
|
165
165
|
u(t.$slots, "top-menu", {}, void 0, !0)
|
|
166
166
|
]),
|
|
167
|
-
v.value === m(a).ROBOT_SCENE ? (T(),
|
|
167
|
+
v.value === m(a).ROBOT_SCENE ? (T(), w(m(B), {
|
|
168
168
|
key: 0,
|
|
169
169
|
fileBlobs: l.value,
|
|
170
170
|
threeData: n.threeData
|
|
@@ -176,7 +176,7 @@ const q = { class: "three-platform mv-inline" }, J = { class: "top-menu" }, Q =
|
|
|
176
176
|
u(t.$slots, "management-page", {}, void 0, !0)
|
|
177
177
|
]),
|
|
178
178
|
_: 3
|
|
179
|
-
}, 8, ["fileBlobs", "threeData"])) : v.value === m(a).TRACK_PATH ? (T(),
|
|
179
|
+
}, 8, ["fileBlobs", "threeData"])) : v.value === m(a).TRACK_PATH ? (T(), w(m(i), {
|
|
180
180
|
key: 1,
|
|
181
181
|
fileBlobs: l.value,
|
|
182
182
|
threeData: n.threeData,
|
|
@@ -189,7 +189,7 @@ const q = { class: "three-platform mv-inline" }, J = { class: "top-menu" }, Q =
|
|
|
189
189
|
u(t.$slots, "management-page", {}, void 0, !0)
|
|
190
190
|
]),
|
|
191
191
|
_: 3
|
|
192
|
-
}, 8, ["fileBlobs", "threeData", "trackFileType"])) : v.value === m(a).CPMPIP_SCENE ? (T(),
|
|
192
|
+
}, 8, ["fileBlobs", "threeData", "trackFileType"])) : v.value === m(a).CPMPIP_SCENE ? (T(), w(m(p), {
|
|
193
193
|
key: 2,
|
|
194
194
|
fileBlobs: l.value,
|
|
195
195
|
threeData: n.threeData
|
|
@@ -201,7 +201,7 @@ const q = { class: "three-platform mv-inline" }, J = { class: "top-menu" }, Q =
|
|
|
201
201
|
u(t.$slots, "management-page", {}, void 0, !0)
|
|
202
202
|
]),
|
|
203
203
|
_: 3
|
|
204
|
-
}, 8, ["fileBlobs", "threeData"])) : v.value === m(a).PREVIEW ? (T(),
|
|
204
|
+
}, 8, ["fileBlobs", "threeData"])) : v.value === m(a).PREVIEW ? (T(), w(m(y), {
|
|
205
205
|
key: 3,
|
|
206
206
|
fileBlobs: l.value
|
|
207
207
|
}, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as I, ref as F, watch as M, onMounted as C, onUnmounted as E, createElementBlock as m, openBlock as f, Fragment as P, renderList as T, createElementVNode as c, createCommentVNode as U, toDisplayString as h, computed as L, resolveComponent as S, createVNode as A } from "vue";
|
|
2
|
-
import {
|
|
2
|
+
import { Y as V } from "./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-BRc8dG0E.js";
|
|
3
3
|
import { _ as b } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
const D = (i, a) => {
|
|
5
5
|
if (!a)
|
|
@@ -40,10 +40,10 @@ const D = (i, a) => {
|
|
|
40
40
|
}, R = { class: "panel-content" }, O = {
|
|
41
41
|
key: 0,
|
|
42
42
|
class: "joints-list"
|
|
43
|
-
}, K = { class: "joint-info-row" }, B = { class: "joint-left" }, q = { class: "joint-name" }, $ = { class: "joint-range" },
|
|
43
|
+
}, K = { class: "joint-info-row" }, B = { class: "joint-left" }, q = { class: "joint-name" }, $ = { class: "joint-range" }, Y = { class: "joint-type" }, z = {
|
|
44
44
|
key: 0,
|
|
45
45
|
class: "joint-control-row"
|
|
46
|
-
},
|
|
46
|
+
}, G = { class: "slider-container" }, H = ["min", "max", "value", "onInput"], Q = { class: "value-display" }, W = { class: "joint-value" }, X = { class: "unit" }, Z = {
|
|
47
47
|
key: 1,
|
|
48
48
|
class: "empty-state"
|
|
49
49
|
}, j = /* @__PURE__ */ I({
|
|
@@ -120,10 +120,10 @@ const D = (i, a) => {
|
|
|
120
120
|
c("span", q, h(s.name), 1),
|
|
121
121
|
c("span", $, " [" + h(s.limit.lower.toFixed(2)) + ", " + h(s.limit.upper.toFixed(2)) + "] ", 1)
|
|
122
122
|
]),
|
|
123
|
-
c("span",
|
|
123
|
+
c("span", Y, h(s.type), 1)
|
|
124
124
|
]),
|
|
125
|
-
s.type === "revolute" || s.type === "prismatic" || s.type === "continuous" ? (f(), m("div",
|
|
126
|
-
c("div",
|
|
125
|
+
s.type === "revolute" || s.type === "prismatic" || s.type === "continuous" ? (f(), m("div", z, [
|
|
126
|
+
c("div", G, [
|
|
127
127
|
c("input", {
|
|
128
128
|
type: "range",
|
|
129
129
|
min: s.limit.lower,
|
|
@@ -132,11 +132,11 @@ const D = (i, a) => {
|
|
|
132
132
|
value: s.currentValue,
|
|
133
133
|
onInput: (r) => v(s.name, r.target.value),
|
|
134
134
|
class: "joint-slider"
|
|
135
|
-
}, null, 40,
|
|
135
|
+
}, null, 40, H)
|
|
136
136
|
]),
|
|
137
|
-
c("div",
|
|
138
|
-
c("span",
|
|
139
|
-
c("span",
|
|
137
|
+
c("div", Q, [
|
|
138
|
+
c("span", W, h(s.currentValue ? Number(s.currentValue).toFixed(3) : "0.000"), 1),
|
|
139
|
+
c("span", X, h(s.type === "prismatic" ? "m" : "rad"), 1)
|
|
140
140
|
])
|
|
141
141
|
])) : U("", !0)
|
|
142
142
|
]))), 128))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const n=require("vue"),k=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-
|
|
1
|
+
"use strict";const n=require("vue"),k=require("./index.vue_vue_type_style_index_0_scoped_0f027c8c_lang-CbFQ2oZH.cjs"),x=require("./_plugin-vue_export-helper-BHFhmbuH.cjs"),J=(o,a)=>{if(!a)return null;const i=o.joints[a];return i||null},V=(o,a)=>{if(!a)return null;const i=J(o,a);if(!i)return null;let u=null;return i.traverse(c=>{c instanceof k.Mesh&&!u&&(u=c)}),u},F=(o,a)=>{if(!a)return null;const i=o.links[a];return i||null},L=(o,a)=>{if(!a)return null;const i=F(o,a);if(!i)return null;let u=null;return i.traverse(c=>{c instanceof k.Mesh&&!u&&(u=c)}),u},E=o=>{const a=o.joints;return Object.values(a)},M=o=>E(o).filter(u=>u.jointType!=="fixed"),N=o=>{const a=o.links;return Object.keys(a)},w={class:"panel-content"},B={key:0,class:"joints-list"},b={class:"joint-info-row"},I={class:"joint-left"},S={class:"joint-name"},C={class:"joint-range"},D={class:"joint-type"},P={key:0,class:"joint-control-row"},T={class:"slider-container"},U=["min","max","value","onInput"],A={class:"value-display"},R={class:"joint-value"},q={class:"unit"},O={key:1,class:"empty-state"},K=n.defineComponent({__name:"urdfJointPanel",props:{model:{}},setup(o,{expose:a}){const i=o,u=n.ref([]),c=n.ref(null),f=(r,e=!1)=>r==="revolute"?e?Math.PI:-Math.PI:r==="prismatic"?e?1:-1:0,h=r=>{if(!r||!r.joints)return console.warn("URDF模型无效或不包含关节信息"),[];const e=[];return E(r).forEach(l=>{var d,p;if(l.jointType==="fixed")return;let t={lower:((d=l.limit)==null?void 0:d.lower)??f(l.jointType,!1),upper:((p=l.limit)==null?void 0:p.upper)??f(l.jointType,!0)};l.jointType==="continuous"&&(t={lower:-10*Math.PI,upper:10*Math.PI}),e.push({name:l.name,type:l.jointType||"unknown",limit:t,currentValue:l.angle||0,urdfJoint:l})}),e},m=(r,e)=>{var d;const s=u.value.find(p=>p.name===r);if(!s)return;const l=parseFloat(e),t=Math.max(s.limit.lower,Math.min(s.limit.upper,l));s.currentValue=t,(d=i.model)!=null&&d.setJointValue?i.model.setJointValue(r,t):s.urdfJoint.setJointValue(t)},_=()=>{u.value.forEach(r=>{(r.type==="revolute"||r.type==="continuous"||r.type==="prismatic")&&m(r.name,0)})},g=()=>{i.model&&u.value.forEach(r=>{r.urdfJoint.angle!==void 0&&r.currentValue!==r.urdfJoint.angle&&(r.currentValue=r.urdfJoint.angle)})},v=()=>{const r=()=>{g(),c.value=requestAnimationFrame(r)};r()},y=()=>{c.value&&(cancelAnimationFrame(c.value),c.value=null)};return n.watch(()=>i.model,r=>{r?u.value=h(r):u.value=[]},{immediate:!0}),n.onMounted(()=>{v()}),n.onUnmounted(()=>{y()}),a({resetAllJoints:_}),(r,e)=>(n.openBlock(),n.createElementBlock("div",w,[u.value.length>0?(n.openBlock(),n.createElementBlock("div",B,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(u.value,s=>(n.openBlock(),n.createElementBlock("div",{key:s.name,class:"joint-item"},[n.createElementVNode("div",b,[n.createElementVNode("div",I,[n.createElementVNode("span",S,n.toDisplayString(s.name),1),n.createElementVNode("span",C," ["+n.toDisplayString(s.limit.lower.toFixed(2))+", "+n.toDisplayString(s.limit.upper.toFixed(2))+"] ",1)]),n.createElementVNode("span",D,n.toDisplayString(s.type),1)]),s.type==="revolute"||s.type==="prismatic"||s.type==="continuous"?(n.openBlock(),n.createElementBlock("div",P,[n.createElementVNode("div",T,[n.createElementVNode("input",{type:"range",min:s.limit.lower,max:s.limit.upper,step:"0.001",value:s.currentValue,onInput:l=>m(s.name,l.target.value),class:"joint-slider"},null,40,U)]),n.createElementVNode("div",A,[n.createElementVNode("span",R,n.toDisplayString(s.currentValue?Number(s.currentValue).toFixed(3):"0.000"),1),n.createElementVNode("span",q,n.toDisplayString(s.type==="prismatic"?"m":"rad"),1)])])):n.createCommentVNode("",!0)]))),128))])):(n.openBlock(),n.createElementBlock("div",O,e[0]||(e[0]=[n.createElementVNode("p",null,"未检测到可控制的关节",-1)])))]))}}),$=x._export_sfc(K,[["__scopeId","data-v-750b831d"]]),H={class:"panel-content"},z="id",G={__name:"urdfTree",props:{model:Object,maxExpandCount:{type:Number,default:10},expandStrategy:{type:String,default:"breadth",validator:o=>["breadth","firstLevel"].includes(o)}},emits:["nodeClick"],setup(o,{emit:a}){const i=o,u=a,c=n.ref([]),f={children:"children",label:"label"},h=e=>{u("nodeClick",e)},m=(e,s=0)=>{const l=[];return Array.isArray(e)&&(e==null?void 0:e.length)>0&&e.forEach(t=>{if(!(t!=null&&t.isMesh)&&((t==null?void 0:t.type)==="URDFJoint"||(t==null?void 0:t.type)==="URDFLink")){const d={name:t==null?void 0:t.name,label:t==null?void 0:t.name,show:!0,level:s+1,isPenultimate:!1,type:t==null?void 0:t.type,id:t==null?void 0:t.id,limit:(t==null?void 0:t.limit)??"",children:m(t==null?void 0:t.children,s+1),path:t==null?void 0:t.name};l.push(d)}}),l},_=e=>e?[{name:e==null?void 0:e.name,label:e==null?void 0:e.name,show:!0,level:1,isPenultimate:!1,type:e==null?void 0:e.type,id:e==null?void 0:e.id,limit:(e==null?void 0:e.limit)??"",children:m(e==null?void 0:e.children,1)||[],path:e==null?void 0:e.name}]:[],g=(e,s)=>{const l=[],t=[...e];for(;t.length>0&&l.length<s;){const d=t.shift();d.children&&d.children.length>0&&(l.push(d.id),t.push(...d.children))}return l},v=(e,s)=>{const l=[];return e.forEach(t=>{if(t.children&&t.children.length>0){l.push(t.id);const d=t.children.filter(p=>p.children&&p.children.length>0).slice(0,s).map(p=>p.id);l.push(...d)}}),l.slice(0,s+1)},y=n.computed(()=>!c.value||c.value.length===0?[]:i.expandStrategy==="firstLevel"?v(c.value,i.maxExpandCount):g(c.value,i.maxExpandCount)),r=n.computed(()=>[{name:"场景",label:"场景",show:!0,level:1,isPenultimate:!1,type:"场景",id:"场景",children:i!=null&&i.model?_(i.model):[],path:"场景"}]);return n.watch(r,e=>{c.value=JSON.parse(JSON.stringify(e))},{immediate:!0}),(e,s)=>{const l=n.resolveComponent("el-tree");return n.openBlock(),n.createElementBlock("div",H,[n.createVNode(l,{data:c.value,props:f,"default-expanded-keys":y.value,"node-key":z,onNodeClick:h},null,8,["data","default-expanded-keys"])])}}},Q=x._export_sfc(G,[["__scopeId","data-v-cfde50c3"]]);exports.JointPanel=$;exports.UrdfTree=Q;exports.getAllLinkName=N;exports.getMeshFromJoint=V;exports.getMeshFromLink=L;exports.getNonFixedJoints=M;exports.getTargetJoint=J;
|