@tomorrowevening/hermes 0.1.40 → 0.1.41
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/{ThreeEditor-CB5dBR7Q.js → ThreeEditor-jkqfXLb4.js} +16 -16
- package/dist/core/remote/RemoteThree.js +68 -59
- package/dist/editor/ThreeEditor.js +13 -10
- package/dist/hermes.cjs.js +7 -7
- package/dist/{index-DepTXu6T.js → index-DZmiM5y-.js} +617 -617
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/types/core/remote/RemoteThree.d.ts +10 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Color as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class A extends b {
|
|
1
|
+
import { Color as l, ColorManagement as p, WebGPURenderer as g, RenderTarget as v, WebGLRenderTarget as f } from "three/webgpu";
|
|
2
|
+
import E from "./BaseRemote.js";
|
|
3
|
+
import { clamp as S } from "../../utils/math.js";
|
|
4
|
+
import { dispose as u, hierarchyUUID as o, ExportTexture as h, resetThreeObjects as c } from "../../utils/three.js";
|
|
5
|
+
var b = /* @__PURE__ */ ((a) => (a.CUSTOM = "ToolEvents::custom", a.SELECT_DROPDOWN = "ToolEvents::selectDropdown", a.DRAG_UPDATE = "ToolEvents::dragUpdate", a.ADD_SCENE = "ToolEvents::addScene", a.REFRESH_SCENE = "ToolEvents::refreshScene", a.REMOVE_SCENE = "ToolEvents::removeScene", a.SET_SCENE = "ToolEvents::setScene", a.SET_OBJECT = "ToolEvents::setObject", a.CLEAR_OBJECT = "ToolEvents::clearObject", a.ADD_CAMERA = "ToolEvents::addCamera", a.REMOVE_CAMERA = "ToolEvents::removeCamera", a.ADD_GROUP = "ToolEvents::addGroup", a.REMOVE_GROUP = "ToolEvents::removeGroup", a.ADD_SPLINE = "ToolEvents::addSpline", a.ADD_RENDERER = "ToolEvents::addRenderer", a.UPDATE_RENDERER = "ToolEvents::updateRenderer", a))(b || {});
|
|
6
|
+
class O extends E {
|
|
8
7
|
name;
|
|
9
8
|
canvas = null;
|
|
10
9
|
// Canvas or OffscreenCanvas
|
|
@@ -18,13 +17,17 @@ class A extends b {
|
|
|
18
17
|
renderTargetsResize = /* @__PURE__ */ new Map();
|
|
19
18
|
groups = /* @__PURE__ */ new Map();
|
|
20
19
|
_listeners = {};
|
|
20
|
+
editorUtils;
|
|
21
21
|
constructor(e, t = !1, r = !1) {
|
|
22
22
|
super("RemoteThree", t, r), this.name = e;
|
|
23
23
|
}
|
|
24
|
+
setEditorUtils(e) {
|
|
25
|
+
this.editorUtils = e;
|
|
26
|
+
}
|
|
24
27
|
dispose() {
|
|
25
28
|
this.scenes.forEach((e) => {
|
|
26
|
-
|
|
27
|
-
}), this.scenes.clear(), this.scene &&
|
|
29
|
+
u(e);
|
|
30
|
+
}), this.scenes.clear(), this.scene && u(this.scene), this.renderTargets.forEach((e) => {
|
|
28
31
|
e.dispose();
|
|
29
32
|
}), this.renderTargets.clear(), this.renderer?.dispose();
|
|
30
33
|
}
|
|
@@ -53,8 +56,8 @@ class A extends b {
|
|
|
53
56
|
const r = t[e.type];
|
|
54
57
|
if (r !== void 0) {
|
|
55
58
|
const s = { ...e, target: this }, d = r.slice(0);
|
|
56
|
-
for (let
|
|
57
|
-
d[
|
|
59
|
+
for (let i = 0, n = d.length; i < n; i++)
|
|
60
|
+
d[i].call(this, s);
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
// Objects
|
|
@@ -68,22 +71,27 @@ class A extends b {
|
|
|
68
71
|
}
|
|
69
72
|
getObject(e) {
|
|
70
73
|
if (!this.debug) return;
|
|
71
|
-
this.renderer !== void 0 && (
|
|
74
|
+
this.renderer !== void 0 && (h.renderer = this.renderer);
|
|
72
75
|
const t = this.getObjectByUUID(e);
|
|
73
76
|
t && this.setObject(t);
|
|
74
77
|
}
|
|
75
78
|
setObject(e) {
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
if (!this.editorUtils) return;
|
|
80
|
+
this.renderer !== void 0 && (h.renderer = this.renderer);
|
|
81
|
+
const t = this.editorUtils.stripObject(e);
|
|
78
82
|
this.dispatchEvent({ type: "ToolEvents::setObject", value: t });
|
|
79
83
|
}
|
|
80
84
|
requestMethod(e, t, r, s) {
|
|
81
85
|
const d = this.getObjectByUUID(e);
|
|
82
86
|
if (d)
|
|
83
87
|
try {
|
|
84
|
-
s !== void 0
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
if (s !== void 0) {
|
|
89
|
+
const i = this.editorUtils?.getSubItem(d, s);
|
|
90
|
+
i !== void 0 && i[t](r);
|
|
91
|
+
} else
|
|
92
|
+
d[t](r);
|
|
93
|
+
} catch (i) {
|
|
94
|
+
console.log("Hermes - Error requesting method:", e, t, r), console.log(i);
|
|
87
95
|
}
|
|
88
96
|
}
|
|
89
97
|
updateObject(e, t, r) {
|
|
@@ -112,34 +120,35 @@ class A extends b {
|
|
|
112
120
|
}
|
|
113
121
|
onUpdateObject(e, t, r) {
|
|
114
122
|
const s = this.getObjectByUUID(e);
|
|
115
|
-
s &&
|
|
123
|
+
s && this.editorUtils?.setItemProps(s, t, r);
|
|
116
124
|
}
|
|
117
125
|
onCreateTexture(e, t, r) {
|
|
126
|
+
if (!this.editorUtils) return;
|
|
118
127
|
const s = this.getObjectByUUID(e);
|
|
119
128
|
if (s) {
|
|
120
|
-
const d = (
|
|
129
|
+
const d = (i) => {
|
|
121
130
|
const n = t.split(".");
|
|
122
131
|
switch (n.length) {
|
|
123
132
|
case 1:
|
|
124
|
-
s[n[0]] =
|
|
133
|
+
s[n[0]] = i;
|
|
125
134
|
break;
|
|
126
135
|
case 2:
|
|
127
|
-
s[n[0]][n[1]] =
|
|
136
|
+
s[n[0]][n[1]] = i;
|
|
128
137
|
break;
|
|
129
138
|
case 3:
|
|
130
|
-
s[n[0]][n[1]][n[2]] =
|
|
139
|
+
s[n[0]][n[1]][n[2]] = i;
|
|
131
140
|
break;
|
|
132
141
|
case 4:
|
|
133
|
-
s[n[0]][n[1]][n[2]][n[3]] =
|
|
142
|
+
s[n[0]][n[1]][n[2]][n[3]] = i;
|
|
134
143
|
break;
|
|
135
144
|
case 5:
|
|
136
|
-
s[n[0]][n[1]][n[2]][n[3]][n[4]] =
|
|
145
|
+
s[n[0]][n[1]][n[2]][n[3]][n[4]] = i;
|
|
137
146
|
break;
|
|
138
147
|
}
|
|
139
148
|
s.material.needsUpdate = !0;
|
|
140
149
|
};
|
|
141
|
-
r.src.length > 0 ?
|
|
142
|
-
|
|
150
|
+
r.src.length > 0 ? this.editorUtils.textureFromSrc(r.src).then((i) => {
|
|
151
|
+
i.offset.set(r.offset[0], r.offset[1]), i.repeat.set(r.repeat[0], r.repeat[1]), d(i);
|
|
143
152
|
}) : d(null);
|
|
144
153
|
}
|
|
145
154
|
}
|
|
@@ -189,7 +198,7 @@ class A extends b {
|
|
|
189
198
|
// Renderer
|
|
190
199
|
setRenderer(e, t = null) {
|
|
191
200
|
if (this.renderer = e, this.canvas = e.domElement, this.inputElement = t !== null ? t : this.canvas, !this.debug) return;
|
|
192
|
-
const r = `#${e.getClearColor(new
|
|
201
|
+
const r = `#${e.getClearColor(new l()).getHexString()}`;
|
|
193
202
|
this.send({
|
|
194
203
|
event: "addRenderer",
|
|
195
204
|
target: "editor",
|
|
@@ -198,7 +207,7 @@ class A extends b {
|
|
|
198
207
|
outputColorSpace: e.outputColorSpace,
|
|
199
208
|
clearColor: r,
|
|
200
209
|
clearAlpha: e.getClearAlpha(),
|
|
201
|
-
colorManagement:
|
|
210
|
+
colorManagement: p.enabled,
|
|
202
211
|
toneMapping: e.toneMapping,
|
|
203
212
|
toneMappingExposure: e.toneMappingExposure,
|
|
204
213
|
type: e.isWebGLRenderer ? "WebGLRenderer" : "WebGPURenderer"
|
|
@@ -214,9 +223,9 @@ class A extends b {
|
|
|
214
223
|
}
|
|
215
224
|
// Scenes
|
|
216
225
|
addScene(e) {
|
|
217
|
-
if (e === void 0 || (this.scenes.set(e.name, e), !this.debug)) return;
|
|
218
|
-
|
|
219
|
-
const t =
|
|
226
|
+
if (e === void 0 || (this.scenes.set(e.name, e), !this.debug || !this.editorUtils)) return;
|
|
227
|
+
c(), o(e);
|
|
228
|
+
const t = this.editorUtils.stripScene(e);
|
|
220
229
|
this.send({
|
|
221
230
|
event: "addScene",
|
|
222
231
|
target: "editor",
|
|
@@ -224,10 +233,10 @@ class A extends b {
|
|
|
224
233
|
});
|
|
225
234
|
}
|
|
226
235
|
refreshScene(e) {
|
|
227
|
-
if (!this.debug) return;
|
|
236
|
+
if (!this.debug || !this.editorUtils) return;
|
|
228
237
|
const t = this.scenes.get(e);
|
|
229
238
|
if (t !== void 0) {
|
|
230
|
-
const r =
|
|
239
|
+
const r = this.editorUtils.stripScene(t);
|
|
231
240
|
this.send({
|
|
232
241
|
event: "refreshScene",
|
|
233
242
|
target: "app",
|
|
@@ -236,8 +245,8 @@ class A extends b {
|
|
|
236
245
|
}
|
|
237
246
|
}
|
|
238
247
|
removeScene(e) {
|
|
239
|
-
if (e === void 0 || (this.scenes.delete(e.name), !this.debug)) return;
|
|
240
|
-
const t =
|
|
248
|
+
if (e === void 0 || (this.scenes.delete(e.name), !this.debug || !this.editorUtils)) return;
|
|
249
|
+
const t = this.editorUtils.stripScene(e);
|
|
241
250
|
this.send({
|
|
242
251
|
event: "removeScene",
|
|
243
252
|
target: "editor",
|
|
@@ -254,9 +263,9 @@ class A extends b {
|
|
|
254
263
|
}), t);
|
|
255
264
|
}
|
|
256
265
|
setScene(e) {
|
|
257
|
-
if (e === void 0 || (this.scene = e, !this.debug)) return;
|
|
258
|
-
this.renderer !== void 0 && (
|
|
259
|
-
const t =
|
|
266
|
+
if (e === void 0 || (this.scene = e, !this.debug || !this.editorUtils)) return;
|
|
267
|
+
this.renderer !== void 0 && (h.renderer = this.renderer), c(), o(e);
|
|
268
|
+
const t = this.editorUtils.stripScene(e);
|
|
260
269
|
this.send({
|
|
261
270
|
event: "setScene",
|
|
262
271
|
target: "editor",
|
|
@@ -283,8 +292,8 @@ class A extends b {
|
|
|
283
292
|
}
|
|
284
293
|
// Cameras
|
|
285
294
|
addCamera(e) {
|
|
286
|
-
if (!this.debug) return;
|
|
287
|
-
const t =
|
|
295
|
+
if (!this.debug || !this.editorUtils) return;
|
|
296
|
+
const t = this.editorUtils.stripObject(e);
|
|
288
297
|
this.send({
|
|
289
298
|
event: "addCamera",
|
|
290
299
|
target: "editor",
|
|
@@ -292,8 +301,8 @@ class A extends b {
|
|
|
292
301
|
});
|
|
293
302
|
}
|
|
294
303
|
removeCamera(e) {
|
|
295
|
-
if (!this.debug) return;
|
|
296
|
-
const t =
|
|
304
|
+
if (!this.debug || !this.editorUtils) return;
|
|
305
|
+
const t = this.editorUtils.stripObject(e);
|
|
297
306
|
this.send({
|
|
298
307
|
event: "removeCamera",
|
|
299
308
|
target: "editor",
|
|
@@ -303,18 +312,18 @@ class A extends b {
|
|
|
303
312
|
handleApp(e) {
|
|
304
313
|
switch (e.event) {
|
|
305
314
|
case "refreshScene":
|
|
306
|
-
this.send({
|
|
315
|
+
this.editorUtils && this.send({
|
|
307
316
|
event: "refreshScene",
|
|
308
317
|
target: "editor",
|
|
309
|
-
data:
|
|
318
|
+
data: this.editorUtils.stripScene(this.scenes.get(e.data.name))
|
|
310
319
|
});
|
|
311
320
|
break;
|
|
312
321
|
case "updateRenderer":
|
|
313
|
-
this.renderer && (this.renderer.autoClearColor = e.data.autoClearColor, this.renderer.outputColorSpace = e.data.outputColorSpace, this.renderer.setClearColor(e.data.clearColor, e.data.clearAlpha), this.renderer.toneMapping = e.data.toneMapping, this.renderer.toneMappingExposure = e.data.toneMappingExposure,
|
|
322
|
+
this.renderer && (this.renderer.autoClearColor = e.data.autoClearColor, this.renderer.outputColorSpace = e.data.outputColorSpace, this.renderer.setClearColor(e.data.clearColor, e.data.clearAlpha), this.renderer.toneMapping = e.data.toneMapping, this.renderer.toneMappingExposure = e.data.toneMappingExposure, p.enabled = e.data.colorManagement);
|
|
314
323
|
break;
|
|
315
324
|
case "requestRenderer":
|
|
316
325
|
if (this.renderer !== void 0) {
|
|
317
|
-
const t = `#${this.renderer.getClearColor(new
|
|
326
|
+
const t = `#${this.renderer.getClearColor(new l()).getHexString()}`;
|
|
318
327
|
this.send({
|
|
319
328
|
event: "addRenderer",
|
|
320
329
|
target: "editor",
|
|
@@ -323,7 +332,7 @@ class A extends b {
|
|
|
323
332
|
outputColorSpace: this.renderer.outputColorSpace,
|
|
324
333
|
clearColor: t,
|
|
325
334
|
clearAlpha: this.renderer.getClearAlpha(),
|
|
326
|
-
colorManagement:
|
|
335
|
+
colorManagement: p.enabled,
|
|
327
336
|
toneMapping: this.renderer.toneMapping,
|
|
328
337
|
toneMappingExposure: this.renderer.toneMappingExposure,
|
|
329
338
|
type: this.renderer.isWebGLRenderer ? "WebGLRenderer" : "WebGPURenderer"
|
|
@@ -332,17 +341,17 @@ class A extends b {
|
|
|
332
341
|
}
|
|
333
342
|
break;
|
|
334
343
|
case "requestScene":
|
|
335
|
-
this.scenes.forEach((t) => {
|
|
336
|
-
|
|
344
|
+
this.editorUtils && (this.scenes.forEach((t) => {
|
|
345
|
+
c(), o(t), this.send({
|
|
337
346
|
event: "addScene",
|
|
338
347
|
target: "editor",
|
|
339
|
-
data:
|
|
348
|
+
data: this.editorUtils.stripScene(t)
|
|
340
349
|
});
|
|
341
|
-
}), this.scene !== void 0 && (this.renderer !== void 0 && (
|
|
350
|
+
}), this.scene !== void 0 && (this.renderer !== void 0 && (h.renderer = this.renderer), c(), o(this.scene), this.send({
|
|
342
351
|
event: "setScene",
|
|
343
352
|
target: "editor",
|
|
344
|
-
data:
|
|
345
|
-
}));
|
|
353
|
+
data: this.editorUtils.stripScene(this.scene)
|
|
354
|
+
})));
|
|
346
355
|
break;
|
|
347
356
|
}
|
|
348
357
|
if (e.event === "updateGroup") {
|
|
@@ -410,21 +419,21 @@ class A extends b {
|
|
|
410
419
|
addRT(e, t = !0, r) {
|
|
411
420
|
if (!this.renderer) return;
|
|
412
421
|
let s;
|
|
413
|
-
this.renderer instanceof
|
|
422
|
+
this.renderer instanceof g ? s = new v(32, 32, r) : s = new f(32, 32, r), s.texture.name = e, this.renderTargets.set(e, s), this.renderTargetsResize.set(e, t);
|
|
414
423
|
}
|
|
415
424
|
removeRT(e) {
|
|
416
425
|
this.renderTargets.delete(e), this.renderTargetsResize.delete(e);
|
|
417
426
|
}
|
|
418
427
|
resize(e, t) {
|
|
419
428
|
const r = this.dpr;
|
|
420
|
-
this.renderTargets.forEach((d,
|
|
421
|
-
this.renderTargetsResize.get(
|
|
429
|
+
this.renderTargets.forEach((d, i) => {
|
|
430
|
+
this.renderTargetsResize.get(i) && d.setSize(e * r, t * r);
|
|
422
431
|
});
|
|
423
432
|
const s = !(this.renderer?.domElement instanceof OffscreenCanvas);
|
|
424
433
|
this.renderer?.setSize(e, t, s);
|
|
425
434
|
}
|
|
426
435
|
set dpr(e) {
|
|
427
|
-
this.renderer?.setPixelRatio(
|
|
436
|
+
this.renderer?.setPixelRatio(S(1, 2, e));
|
|
428
437
|
}
|
|
429
438
|
get dpr() {
|
|
430
439
|
return this.renderer !== void 0 ? this.renderer?.getPixelRatio() : 1;
|
|
@@ -437,6 +446,6 @@ class A extends b {
|
|
|
437
446
|
}
|
|
438
447
|
}
|
|
439
448
|
export {
|
|
440
|
-
|
|
441
|
-
|
|
449
|
+
b as ToolEvents,
|
|
450
|
+
O as default
|
|
442
451
|
};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import o from "./
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsxs as r, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect as i } from "react";
|
|
3
|
+
import n from "./Editor.js";
|
|
4
|
+
import o from "./multiView/MultiView.js";
|
|
5
|
+
import c from "./sidePanel/SidePanel.js";
|
|
6
|
+
import { textureFromSrc as m, setItemProps as d, getSubItem as s, stripScene as S, stripObject as f } from "./sidePanel/utils.js";
|
|
7
|
+
const h = { stripObject: f, stripScene: S, getSubItem: s, setItemProps: d, textureFromSrc: m };
|
|
8
|
+
function I(e) {
|
|
9
|
+
return i(() => (e.three.setEditorUtils(h), () => e.three.setEditorUtils(void 0)), [e.three]), /* @__PURE__ */ r(n, { children: [
|
|
10
|
+
/* @__PURE__ */ t(
|
|
11
|
+
o,
|
|
9
12
|
{
|
|
10
13
|
three: e.three,
|
|
11
14
|
scenes: e.scenes,
|
|
@@ -14,9 +17,9 @@ function f(e) {
|
|
|
14
17
|
onSceneUpdate: e.onSceneUpdate
|
|
15
18
|
}
|
|
16
19
|
),
|
|
17
|
-
/* @__PURE__ */
|
|
20
|
+
/* @__PURE__ */ t(c, { three: e.three })
|
|
18
21
|
] });
|
|
19
22
|
}
|
|
20
23
|
export {
|
|
21
|
-
|
|
24
|
+
I as default
|
|
22
25
|
};
|