@tresjs/core 3.2.1 → 3.2.2
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/tres.js +77 -77
- package/dist/tres.umd.cjs +2 -2
- package/package.json +1 -1
package/dist/tres.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v3.2.
|
|
3
|
+
* version: v3.2.2
|
|
4
4
|
* (c) 2023
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
import { ref as
|
|
8
|
+
import { ref as B, computed as k, watchEffect as D, onUnmounted as N, shallowRef as F, watch as te, reactive as ue, readonly as le, provide as I, inject as ce, createRenderer as fe, defineComponent as U, useSlots as me, getCurrentInstance as J, onMounted as pe, openBlock as ve, createElementBlock as ge, normalizeStyle as de, h as K, Fragment as ye } from "vue";
|
|
9
9
|
import * as we from "three";
|
|
10
|
-
import { PerspectiveCamera as W, OrthographicCamera as Ce, Camera as _e, Clock as Pe, Vector3 as Ee, Color as R, REVISION as Me, SRGBColorSpace as Ae, ACESFilmicToneMapping as ke, PCFSoftShadowMap as be, WebGLRenderer as z, LoadingManager as De, TextureLoader as xe, Vector2 as Oe, Raycaster as
|
|
11
|
-
import { createEventHook as O, useRafFn as
|
|
10
|
+
import { PerspectiveCamera as W, OrthographicCamera as Ce, Camera as _e, Clock as Pe, Vector3 as Ee, Color as R, REVISION as Me, SRGBColorSpace as Ae, ACESFilmicToneMapping as ke, PCFSoftShadowMap as be, WebGLRenderer as z, LoadingManager as De, TextureLoader as xe, Vector2 as Oe, Raycaster as Be, BufferAttribute as Le, Scene as Te } from "three";
|
|
11
|
+
import { createEventHook as O, useRafFn as he, toValue as P, unrefElement as Se, useDevicePixelRatio as Re, usePointer as je, useElementBounding as He, useWindowSize as Fe, useElementSize as ze } from "@vueuse/core";
|
|
12
12
|
const Ge = ({ sizes: e, scene: n }) => {
|
|
13
|
-
const t =
|
|
13
|
+
const t = B([]), r = k(
|
|
14
14
|
() => t.value[0]
|
|
15
15
|
), a = (i, c = !1) => {
|
|
16
16
|
t.value.some(({ uuid: u }) => u === i.uuid) || (c ? f(i) : t.value.push(i));
|
|
@@ -38,7 +38,7 @@ const Ge = ({ sizes: e, scene: n }) => {
|
|
|
38
38
|
};
|
|
39
39
|
}, re = O(), ne = O(), V = O(), x = new Pe();
|
|
40
40
|
let j = 0, H = 0;
|
|
41
|
-
const { pause: Ie, resume: We, isActive: $e } =
|
|
41
|
+
const { pause: Ie, resume: We, isActive: $e } = he(
|
|
42
42
|
() => {
|
|
43
43
|
re.trigger({ delta: j, elapsed: H, clock: x }), ne.trigger({ delta: j, elapsed: H, clock: x }), V.trigger({ delta: j, elapsed: H, clock: x });
|
|
44
44
|
},
|
|
@@ -55,7 +55,7 @@ const ae = () => ({
|
|
|
55
55
|
resume: We,
|
|
56
56
|
isActive: $e
|
|
57
57
|
}), pt = !0, X = "[TresJS ▲ ■ ●] ";
|
|
58
|
-
function
|
|
58
|
+
function L() {
|
|
59
59
|
function e(r, a) {
|
|
60
60
|
console.error(`${X} ${r}`, a || "");
|
|
61
61
|
}
|
|
@@ -84,7 +84,7 @@ const oe = (e, n) => {
|
|
|
84
84
|
function Y(e) {
|
|
85
85
|
return e && e.nodeType === 1;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function h(e) {
|
|
88
88
|
return e.replace(/-([a-z])/g, (n, t) => t.toUpperCase());
|
|
89
89
|
}
|
|
90
90
|
function Ue(e, n) {
|
|
@@ -175,30 +175,30 @@ function Qe({
|
|
|
175
175
|
D(() => {
|
|
176
176
|
i.value.setPixelRatio(c.value);
|
|
177
177
|
});
|
|
178
|
-
const { logError: u } =
|
|
179
|
-
const
|
|
178
|
+
const { logError: u } = L(), l = (() => {
|
|
179
|
+
const g = new z(), w = {
|
|
180
180
|
shadowMap: {
|
|
181
|
-
enabled:
|
|
182
|
-
type:
|
|
181
|
+
enabled: g.shadowMap.enabled,
|
|
182
|
+
type: g.shadowMap.type
|
|
183
183
|
},
|
|
184
|
-
toneMapping:
|
|
185
|
-
toneMappingExposure:
|
|
186
|
-
outputColorSpace:
|
|
184
|
+
toneMapping: g.toneMapping,
|
|
185
|
+
toneMappingExposure: g.toneMappingExposure,
|
|
186
|
+
outputColorSpace: g.outputColorSpace
|
|
187
187
|
};
|
|
188
|
-
return
|
|
188
|
+
return g.dispose(), w;
|
|
189
189
|
})();
|
|
190
190
|
D(() => {
|
|
191
|
-
const
|
|
192
|
-
|
|
191
|
+
const g = P(t.preset);
|
|
192
|
+
g && (g in S || u(`Renderer Preset must be one of these: ${Object.keys(S).join(", ")}`), oe(i.value, S[g]));
|
|
193
193
|
const w = (_, A) => {
|
|
194
|
-
const b = P(_),
|
|
195
|
-
if (
|
|
196
|
-
return Q(S[
|
|
194
|
+
const b = P(_), T = () => {
|
|
195
|
+
if (g)
|
|
196
|
+
return Q(S[g], A);
|
|
197
197
|
};
|
|
198
198
|
if (b !== void 0)
|
|
199
199
|
return b;
|
|
200
|
-
const
|
|
201
|
-
return
|
|
200
|
+
const d = T();
|
|
201
|
+
return d !== void 0 ? d : Q(l, A);
|
|
202
202
|
}, E = (_, A) => Ke(i.value, A, w(_, A));
|
|
203
203
|
E(t.shadows, "shadowMap.enabled"), E(t.toneMapping, "toneMapping"), E(t.shadowMapType, "shadowMap.type"), Ye < 150 && E(!t.useLegacyLights, "physicallyCorrectLights"), E(t.outputColorSpace, "outputColorSpace"), E(t.toneMappingExposure, "toneMappingExposure");
|
|
204
204
|
const C = w(t.clearColor, "clearColor");
|
|
@@ -223,8 +223,8 @@ function Ze(e) {
|
|
|
223
223
|
t.name && (n.nodes[t.name] = t), t.material && !n.materials[t.material.name] && (n.materials[t.material.name] = t.material);
|
|
224
224
|
}), n;
|
|
225
225
|
}
|
|
226
|
-
async function
|
|
227
|
-
const { logError: o } =
|
|
226
|
+
async function gt(e, n, t, r, a) {
|
|
227
|
+
const { logError: o } = L(), f = new e();
|
|
228
228
|
a && a(f), t && t(f);
|
|
229
229
|
const c = (Array.isArray(n) ? n : [n]).map(
|
|
230
230
|
(u) => new Promise((m, l) => {
|
|
@@ -240,7 +240,7 @@ async function dt(e, n, t, r, a) {
|
|
|
240
240
|
);
|
|
241
241
|
return ie(n) ? await Promise.all(c) : await c[0];
|
|
242
242
|
}
|
|
243
|
-
async function
|
|
243
|
+
async function dt(e) {
|
|
244
244
|
const n = new De(), t = new xe(n), r = (a) => new Promise((o, f) => {
|
|
245
245
|
t.load(
|
|
246
246
|
a,
|
|
@@ -278,44 +278,44 @@ async function gt(e) {
|
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
const et = (e, { renderer: n, camera: t, raycaster: r }) => {
|
|
281
|
-
const a = k(() => n.value.domElement), { x: o, y: f } = je({ target: a }), { width: i, height: c, top: u, left: m } = He(a), l = ({ x:
|
|
281
|
+
const a = k(() => n.value.domElement), { x: o, y: f } = je({ target: a }), { width: i, height: c, top: u, left: m } = He(a), l = ({ x: d, y: M }) => {
|
|
282
282
|
if (a.value)
|
|
283
283
|
return {
|
|
284
|
-
x: (
|
|
284
|
+
x: (d - m.value) / i.value * 2 - 1,
|
|
285
285
|
y: -((M - u.value) / c.value) * 2 + 1
|
|
286
286
|
};
|
|
287
|
-
}, s = ({ x:
|
|
287
|
+
}, s = ({ x: d, y: M }) => {
|
|
288
288
|
if (t.value)
|
|
289
|
-
return r.value.setFromCamera(new Oe(
|
|
290
|
-
}, v = (
|
|
289
|
+
return r.value.setFromCamera(new Oe(d, M), t.value), r.value.intersectObjects(e.value, !1);
|
|
290
|
+
}, v = (d) => {
|
|
291
291
|
const M = l({
|
|
292
|
-
x: (
|
|
293
|
-
y: (
|
|
292
|
+
x: (d == null ? void 0 : d.clientX) ?? o.value,
|
|
293
|
+
y: (d == null ? void 0 : d.clientY) ?? f.value
|
|
294
294
|
});
|
|
295
295
|
return M ? s(M) || [] : [];
|
|
296
|
-
}, y = k(() => v()),
|
|
297
|
-
|
|
298
|
-
}, C = (
|
|
299
|
-
E(w,
|
|
296
|
+
}, y = k(() => v()), g = O(), w = O(), E = (d, M) => {
|
|
297
|
+
d.trigger({ event: M, intersects: v(M) });
|
|
298
|
+
}, C = (d) => {
|
|
299
|
+
E(w, d);
|
|
300
300
|
};
|
|
301
301
|
let _;
|
|
302
|
-
const A = (
|
|
302
|
+
const A = (d) => {
|
|
303
303
|
var M;
|
|
304
|
-
_ = (M = v(
|
|
305
|
-
}, b = (
|
|
304
|
+
_ = (M = v(d)[0]) == null ? void 0 : M.object;
|
|
305
|
+
}, b = (d) => {
|
|
306
306
|
var M;
|
|
307
|
-
|
|
308
|
-
},
|
|
309
|
-
return a.value.addEventListener("pointerup", b), a.value.addEventListener("pointerdown", A), a.value.addEventListener("pointermove", C), a.value.addEventListener("pointerleave",
|
|
310
|
-
a != null && a.value && (a.value.removeEventListener("pointerup", b), a.value.removeEventListener("pointerdown", A), a.value.removeEventListener("pointermove", C), a.value.removeEventListener("pointerleave",
|
|
307
|
+
d instanceof PointerEvent && _ === ((M = v(d)[0]) == null ? void 0 : M.object) && E(g, d);
|
|
308
|
+
}, T = (d) => w.trigger({ event: d, intersects: [] });
|
|
309
|
+
return a.value.addEventListener("pointerup", b), a.value.addEventListener("pointerdown", A), a.value.addEventListener("pointermove", C), a.value.addEventListener("pointerleave", T), N(() => {
|
|
310
|
+
a != null && a.value && (a.value.removeEventListener("pointerup", b), a.value.removeEventListener("pointerdown", A), a.value.removeEventListener("pointermove", C), a.value.removeEventListener("pointerleave", T));
|
|
311
311
|
}), {
|
|
312
312
|
intersects: y,
|
|
313
|
-
onClick: (
|
|
314
|
-
onPointerMove: (
|
|
313
|
+
onClick: (d) => g.on(d).off,
|
|
314
|
+
onPointerMove: (d) => w.on(d).off
|
|
315
315
|
};
|
|
316
316
|
};
|
|
317
317
|
function yt() {
|
|
318
|
-
const { logWarning: e } =
|
|
318
|
+
const { logWarning: e } = L();
|
|
319
319
|
function n(r, a, o) {
|
|
320
320
|
let f = null;
|
|
321
321
|
return r.traverse((i) => {
|
|
@@ -336,15 +336,15 @@ const tt = ({ scene: e, contextParts: n }) => {
|
|
|
336
336
|
pointerMove: /* @__PURE__ */ new Map(),
|
|
337
337
|
pointerEnter: /* @__PURE__ */ new Map(),
|
|
338
338
|
pointerLeave: /* @__PURE__ */ new Map()
|
|
339
|
-
}), r =
|
|
339
|
+
}), r = B(/* @__PURE__ */ new Set()), a = (s) => {
|
|
340
340
|
r.value.add(s);
|
|
341
341
|
}, o = (s) => {
|
|
342
342
|
r.value.delete(s);
|
|
343
343
|
}, f = (s) => {
|
|
344
344
|
Object.values(t).forEach((v) => v.delete(s)), o(s);
|
|
345
345
|
}, i = (s) => {
|
|
346
|
-
const { onClick: v, onPointerMove: y, onPointerEnter:
|
|
347
|
-
v && t.click.set(s, v), y && t.pointerMove.set(s, y),
|
|
346
|
+
const { onClick: v, onPointerMove: y, onPointerEnter: g, onPointerLeave: w } = s;
|
|
347
|
+
v && t.click.set(s, v), y && t.pointerMove.set(s, y), g && t.pointerEnter.set(s, g), w && t.pointerLeave.set(s, w);
|
|
348
348
|
};
|
|
349
349
|
e.userData.tres__registerAtPointerEventHandler = i, e.userData.tres__deregisterAtPointerEventHandler = f, e.userData.tres__registerBlockingObjectAtPointerEventHandler = a, e.userData.tres__deregisterBlockingObjectAtPointerEventHandler = o;
|
|
350
350
|
const c = k(
|
|
@@ -363,13 +363,13 @@ const tt = ({ scene: e, contextParts: n }) => {
|
|
|
363
363
|
let l;
|
|
364
364
|
return m(({ intersects: s, event: v }) => {
|
|
365
365
|
var C, _, A, b;
|
|
366
|
-
const y = (C = s == null ? void 0 : s[0]) == null ? void 0 : C.object, { pointerLeave:
|
|
367
|
-
l && l !== y && ((_ =
|
|
366
|
+
const y = (C = s == null ? void 0 : s[0]) == null ? void 0 : C.object, { pointerLeave: g, pointerEnter: w, pointerMove: E } = t;
|
|
367
|
+
l && l !== y && ((_ = g.get(l)) == null || _(l, v)), y && (l !== y && ((A = w.get(y)) == null || A(s[0], v)), (b = E.get(y)) == null || b(s[0], v)), l = y || null;
|
|
368
368
|
}), {
|
|
369
369
|
registerObject: i,
|
|
370
370
|
deregisterObject: f
|
|
371
371
|
};
|
|
372
|
-
}, $ =
|
|
372
|
+
}, $ = B({}), q = (e) => Object.assign($.value, e);
|
|
373
373
|
function rt({
|
|
374
374
|
scene: e,
|
|
375
375
|
canvas: n,
|
|
@@ -388,7 +388,7 @@ function rt({
|
|
|
388
388
|
cameras: s,
|
|
389
389
|
registerCamera: v,
|
|
390
390
|
deregisterCamera: y,
|
|
391
|
-
setCameraActive:
|
|
391
|
+
setCameraActive: g
|
|
392
392
|
} = Ge({ sizes: u, scene: e }), { renderer: w } = Qe(
|
|
393
393
|
{
|
|
394
394
|
scene: e,
|
|
@@ -403,11 +403,11 @@ function rt({
|
|
|
403
403
|
camera: l,
|
|
404
404
|
cameras: le(s),
|
|
405
405
|
renderer: w,
|
|
406
|
-
raycaster: F(new
|
|
407
|
-
controls:
|
|
406
|
+
raycaster: F(new Be()),
|
|
407
|
+
controls: B(null),
|
|
408
408
|
extend: q,
|
|
409
409
|
registerCamera: v,
|
|
410
|
-
setCameraActive:
|
|
410
|
+
setCameraActive: g,
|
|
411
411
|
deregisterCamera: y
|
|
412
412
|
};
|
|
413
413
|
return I("useTres", E), E;
|
|
@@ -420,7 +420,7 @@ function nt() {
|
|
|
420
420
|
}
|
|
421
421
|
const wt = nt;
|
|
422
422
|
let G = null, p = null;
|
|
423
|
-
const { logError: ee } =
|
|
423
|
+
const { logError: ee } = L(), at = {
|
|
424
424
|
createElement(e, n, t, r) {
|
|
425
425
|
var f, i;
|
|
426
426
|
if (r || (r = {}), r.args || (r.args = []), e === "template" || qe(e))
|
|
@@ -440,22 +440,22 @@ const { logError: ee } = B(), at = {
|
|
|
440
440
|
}, o;
|
|
441
441
|
},
|
|
442
442
|
insert(e, n) {
|
|
443
|
-
var t, r, a, o, f, i, c, u, m;
|
|
443
|
+
var t, r, a, o, f, i, c, u, m, l;
|
|
444
444
|
if (n && n.isScene && (p = n), (((t = e == null ? void 0 : e.__vnode) == null ? void 0 : t.type) === "TresGroup" || ((r = e == null ? void 0 : e.__vnode) == null ? void 0 : r.type) === "TresObject3D") && n === null && !((o = (a = e == null ? void 0 : e.__vnode) == null ? void 0 : a.ctx) != null && o.asyncResolved)) {
|
|
445
445
|
G = e;
|
|
446
446
|
return;
|
|
447
447
|
} else
|
|
448
|
-
(f = e == null ? void 0 : e.__vnode) != null && f.type.includes("Controls")
|
|
448
|
+
n === null && ((f = e == null ? void 0 : e.__vnode) != null && f.type.includes("Controls") || (i = e == null ? void 0 : e.__vnode) != null && i.type.includes("Helper")) && (G = p);
|
|
449
449
|
if (n || (n = G), e != null && e.isObject3D) {
|
|
450
450
|
if (e != null && e.isCamera) {
|
|
451
451
|
if (!(p != null && p.userData.tres__registerCamera))
|
|
452
452
|
throw "could not find tres__registerCamera on scene's userData";
|
|
453
|
-
(
|
|
453
|
+
(u = p == null ? void 0 : (c = p.userData).tres__registerCamera) == null || u.call(c, e);
|
|
454
454
|
}
|
|
455
455
|
if (e != null && e.onClick || e != null && e.onPointerMove || e != null && e.onPointerEnter || e != null && e.onPointerLeave) {
|
|
456
456
|
if (!(p != null && p.userData.tres__registerAtPointerEventHandler))
|
|
457
457
|
throw "could not find tres__registerAtPointerEventHandler on scene's userData";
|
|
458
|
-
(
|
|
458
|
+
(l = p == null ? void 0 : (m = p.userData).tres__registerAtPointerEventHandler) == null || l.call(m, e);
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
e != null && e.isObject3D && (n != null && n.isObject3D) ? (n.add(e), e.dispatchEvent({ type: "added" })) : e != null && e.isFog ? n.fog = e : typeof (e == null ? void 0 : e.attach) == "string" && (e.__previousAttach = e[n == null ? void 0 : n.attach], n && (n[e.attach] = e));
|
|
@@ -496,24 +496,24 @@ const { logError: ee } = B(), at = {
|
|
|
496
496
|
r || r === "" ? (o = p == null ? void 0 : (a = p.userData).tres__registerBlockingObjectAtPointerEventHandler) == null || o.call(a, e) : (i = p == null ? void 0 : (f = p.userData).tres__deregisterBlockingObjectAtPointerEventHandler) == null || i.call(f, e);
|
|
497
497
|
return;
|
|
498
498
|
}
|
|
499
|
-
let m =
|
|
499
|
+
let m = h(u), l = c == null ? void 0 : c[m];
|
|
500
500
|
if (u === "args") {
|
|
501
|
-
const v = e, y = t ?? [],
|
|
502
|
-
w && y.length && !Xe(y,
|
|
501
|
+
const v = e, y = t ?? [], g = r ?? [], w = e.userData.tres__name || e.type;
|
|
502
|
+
w && y.length && !Xe(y, g) && (c = Object.assign(v, new $.value[w](...r)));
|
|
503
503
|
return;
|
|
504
504
|
}
|
|
505
505
|
if (c.type === "BufferGeometry") {
|
|
506
506
|
if (u === "args")
|
|
507
507
|
return;
|
|
508
508
|
c.setAttribute(
|
|
509
|
-
|
|
510
|
-
new
|
|
509
|
+
h(u),
|
|
510
|
+
new Le(...r)
|
|
511
511
|
);
|
|
512
512
|
return;
|
|
513
513
|
}
|
|
514
514
|
if (u.includes("-") && l === void 0) {
|
|
515
515
|
const v = u.split("-");
|
|
516
|
-
l = v.reduce((y,
|
|
516
|
+
l = v.reduce((y, g) => y[h(g)], c), u = v.pop(), m = u.toLowerCase(), l != null && l.set || (c = v.reduce((y, g) => y[h(g)], c));
|
|
517
517
|
}
|
|
518
518
|
let s = r;
|
|
519
519
|
if (s === "" && (s = !0), Z(l)) {
|
|
@@ -565,7 +565,7 @@ const st = ["data-scene"], it = /* @__PURE__ */ U({
|
|
|
565
565
|
},
|
|
566
566
|
setup(e) {
|
|
567
567
|
var m;
|
|
568
|
-
const n = e, { logWarning: t } =
|
|
568
|
+
const n = e, { logWarning: t } = L(), r = B(), a = F(new Te());
|
|
569
569
|
ae();
|
|
570
570
|
const o = me(), f = (m = J()) == null ? void 0 : m.appContext.app, i = (l) => U({
|
|
571
571
|
setup() {
|
|
@@ -586,7 +586,7 @@ const st = ["data-scene"], it = /* @__PURE__ */ U({
|
|
|
586
586
|
rendererOptions: n
|
|
587
587
|
});
|
|
588
588
|
tt({ scene: a.value, contextParts: s });
|
|
589
|
-
const { registerCamera: v, camera: y, cameras:
|
|
589
|
+
const { registerCamera: v, camera: y, cameras: g, deregisterCamera: w } = s;
|
|
590
590
|
c(s);
|
|
591
591
|
const E = () => {
|
|
592
592
|
const C = new W(
|
|
@@ -597,13 +597,13 @@ const st = ["data-scene"], it = /* @__PURE__ */ U({
|
|
|
597
597
|
);
|
|
598
598
|
C.position.set(3, 3, 3), C.lookAt(0, 0, 0), v(C);
|
|
599
599
|
const _ = D(() => {
|
|
600
|
-
|
|
600
|
+
g.value.length >= 2 && (C.removeFromParent(), w(C), _ == null || _());
|
|
601
601
|
});
|
|
602
602
|
};
|
|
603
603
|
te(
|
|
604
604
|
() => n.camera,
|
|
605
605
|
(C, _) => {
|
|
606
|
-
C
|
|
606
|
+
C && v(C), _ && (_.removeFromParent(), w(_));
|
|
607
607
|
},
|
|
608
608
|
{
|
|
609
609
|
immediate: !0
|
|
@@ -611,11 +611,11 @@ const st = ["data-scene"], it = /* @__PURE__ */ U({
|
|
|
611
611
|
), y.value || (t(
|
|
612
612
|
"No camera found. Creating a default perspective camera. To have full control over a camera, please add one to the scene."
|
|
613
613
|
), E());
|
|
614
|
-
}), (l, s) => (ve(),
|
|
614
|
+
}), (l, s) => (ve(), ge("canvas", {
|
|
615
615
|
ref_key: "canvas",
|
|
616
616
|
ref: r,
|
|
617
617
|
"data-scene": a.value.uuid,
|
|
618
|
-
style:
|
|
618
|
+
style: de({
|
|
619
619
|
display: "block",
|
|
620
620
|
width: "100%",
|
|
621
621
|
height: "100%",
|
|
@@ -653,14 +653,14 @@ export {
|
|
|
653
653
|
Ct as templateCompilerOptions,
|
|
654
654
|
Ze as trasverseObjects,
|
|
655
655
|
Ge as useCamera,
|
|
656
|
-
|
|
657
|
-
|
|
656
|
+
gt as useLoader,
|
|
657
|
+
L as useLogger,
|
|
658
658
|
tt as usePointerEventHandler,
|
|
659
659
|
et as useRaycaster,
|
|
660
660
|
ae as useRenderLoop,
|
|
661
661
|
Qe as useRenderer,
|
|
662
662
|
yt as useSeek,
|
|
663
|
-
|
|
663
|
+
dt as useTexture,
|
|
664
664
|
wt as useTres,
|
|
665
665
|
nt as useTresContext,
|
|
666
666
|
rt as useTresContextProvider
|
package/dist/tres.umd.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v3.2.
|
|
3
|
+
* version: v3.2.2
|
|
4
4
|
* (c) 2023
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
(function(y,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue"),require("three"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","three","@vueuse/core"],c):(y=typeof globalThis<"u"?globalThis:y||self,c(y.tres={},y.Vue,y.Three,y.VueUseCore))})(this,function(y,c,_,w){"use strict";function se(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const ie=se(_),I=({sizes:e,scene:n})=>{const t=c.ref([]),r=c.computed(()=>t.value[0]),a=(i,f=!1)=>{t.value.some(({uuid:l})=>l===i.uuid)||(f?m(i):t.value.push(i))},o=i=>{t.value=t.value.filter(({uuid:f})=>f!==i.uuid)},m=i=>{const f=i instanceof _.Camera?i:t.value.find(d=>d.uuid===i);if(!f)return;const l=t.value.filter(({uuid:d})=>d!==f.uuid);t.value=[f,...l]};return c.watchEffect(()=>{e.aspectRatio.value&&t.value.forEach(i=>{i instanceof _.PerspectiveCamera&&(i.aspect=e.aspectRatio.value),(i instanceof _.PerspectiveCamera||i instanceof _.OrthographicCamera)&&i.updateProjectionMatrix()})}),n.userData.tres__registerCamera=a,n.userData.tres__deregisterCamera=o,c.onUnmounted(()=>{t.value=[]}),{camera:r,cameras:t,registerCamera:a,deregisterCamera:o,setCameraActive:m}},W=w.createEventHook(),N=w.createEventHook(),F=w.createEventHook(),S=new _.Clock;let B=0,x=0;const{pause:le,resume:ue,isActive:ce}=w.useRafFn(()=>{W.trigger({delta:B,elapsed:x,clock:S}),N.trigger({delta:B,elapsed:x,clock:S}),F.trigger({delta:B,elapsed:x,clock:S})},{immediate:!1});F.on(()=>{B=S.getDelta(),x=S.getElapsedTime()});const G=()=>({onBeforeLoop:W.on,onLoop:N.on,onAfterLoop:F.on,pause:le,resume:ue,isActive:ce}),fe=!0,$="[TresJS ▲ ■ ●] ";function L(){function e(r,a){console.error(`${$} ${r}`,a||"")}function n(r){console.warn(`${$} ${r}`)}function t(r,a){}return{logError:e,logWarning:n,logMessage:t}}function me(e){return typeof e=="number"?[e,e,e]:e instanceof _.Vector3?[e.x,e.y,e.z]:e}function q(e){return e instanceof _.Color?e:Array.isArray(e)?new _.Color(...e):new _.Color(e)}const U=(e,n)=>{for(const t of Object.keys(n))n[t]instanceof Object&&Object.assign(n[t],U(e[t],n[t]));return Object.assign(e||{},n),e},de=pe("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot");function H(e){return e&&e.nodeType===1}function j(e){return e.replace(/-([a-z])/g,(n,t)=>t.toUpperCase())}function pe(e,n){const t=Object.create(null),r=e.split(",");for(let a=0;a<r.length;a++)t[r[a]]=!0;return n?a=>!!t[a.toLowerCase()]:a=>!!t[a]}const ge=(e,n)=>{const t=new Set,r=[];for(const a of e){const o=n(a);t.has(o)||(t.add(o),r.push(a))}return r},J=(e,n)=>{if(!n)return;const t=Array.isArray(n)?n:n.match(/([^[.\]])+/g);return t==null?void 0:t.reduce((r,a)=>r&&r[a],e)},ve=(e,n,t)=>{const r=Array.isArray(n)?n:n.match(/([^[.\]])+/g);r&&r.reduce((a,o,m)=>(a[o]===void 0&&(a[o]={}),m===r.length-1&&(a[o]=t),a[o]),e)};function K(e,n){if(H(e)&&H(n)){const a=e.attributes,o=n.attributes;return a.length!==o.length?!1:Array.from(a).every(({name:m,value:i})=>n.getAttribute(m)===i)}if(e===n)return!0;if(e===null||typeof e!="object"||n===null||typeof n!="object")return!1;const t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(const a of t)if(!r.includes(a)||!K(e[a],n[a]))return!1;return!0}function ye(e,n){if(!Array.isArray(e)||!Array.isArray(n)||e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(!K(e[t],n[t]))return!1;return!0}const we=Number.parseInt(_.REVISION.replace("dev","")),T={realistic:{outputColorSpace:_.SRGBColorSpace,toneMapping:_.ACESFilmicToneMapping,toneMappingExposure:3,shadowMap:{enabled:!0,type:_.PCFSoftShadowMap}}};function X({scene:e,canvas:n,options:t,disableRender:r,contextParts:{sizes:a,camera:o}}){const m=c.computed(()=>({alpha:w.toValue(t.alpha),depth:w.toValue(t.depth),canvas:w.unrefElement(n),context:w.toValue(t.context),stencil:w.toValue(t.stencil),antialias:w.toValue(t.antialias)===void 0?!0:w.toValue(t.antialias),precision:w.toValue(t.precision),powerPreference:w.toValue(t.powerPreference),premultipliedAlpha:w.toValue(t.premultipliedAlpha),preserveDrawingBuffer:w.toValue(t.preserveDrawingBuffer),logarithmicDepthBuffer:w.toValue(t.logarithmicDepthBuffer),failIfMajorPerformanceCaveat:w.toValue(t.failIfMajorPerformanceCaveat)})),i=c.shallowRef(new _.WebGLRenderer(m.value));c.watch(m,()=>{i.value.dispose(),i.value=new _.WebGLRenderer(m.value)}),c.watchEffect(()=>{i.value.setSize(a.width.value,a.height.value)});const{pixelRatio:f}=w.useDevicePixelRatio();c.watchEffect(()=>{i.value.setPixelRatio(f.value)});const{logError:l}=L(),u=(()=>{const v=new _.WebGLRenderer,M={shadowMap:{enabled:v.shadowMap.enabled,type:v.shadowMap.type},toneMapping:v.toneMapping,toneMappingExposure:v.toneMappingExposure,outputColorSpace:v.outputColorSpace};return v.dispose(),M})();c.watchEffect(()=>{const v=w.toValue(t.preset);v&&(v in T||l(`Renderer Preset must be one of these: ${Object.keys(T).join(", ")}`),U(i.value,T[v]));const M=(k,O)=>{const D=w.toValue(k),z=()=>{if(v)return J(T[v],O)};if(D!==void 0)return D;const C=z();return C!==void 0?C:J(u,O)},h=(k,O)=>ve(i.value,O,M(k,O));h(t.shadows,"shadowMap.enabled"),h(t.toneMapping,"toneMapping"),h(t.shadowMapType,"shadowMap.type"),we<150&&h(!t.useLegacyLights,"physicallyCorrectLights"),h(t.outputColorSpace,"outputColorSpace"),h(t.toneMappingExposure,"toneMappingExposure");const b=M(t.clearColor,"clearColor");b&&i.value.setClearColor(b?q(b):new _.Color(0))});const{pause:s,resume:g,onLoop:P}=G();return P(()=>{o.value&&!w.toValue(r)&&i.value.render(e,o.value)}),g(),c.onUnmounted(()=>{s(),i.value.dispose(),i.value.forceContextLoss()}),{renderer:i}}const Y=e=>typeof e=="function",Q=e=>!!e&&e.constructor===Array;function Z(e){const n={nodes:{},materials:{}};return e&&e.traverse(t=>{t.name&&(n.nodes[t.name]=t),t.material&&!n.materials[t.material.name]&&(n.materials[t.material.name]=t.material)}),n}async function Ce(e,n,t,r,a){const{logError:o}=L(),m=new e;a&&a(m),t&&t(m);const f=(Array.isArray(n)?n:[n]).map(l=>new Promise((d,u)=>{m.load(l,s=>{s.scene&&Object.assign(s,Z(s.scene)),d(s)},r,s=>u(o("[useLoader] - Failed to load resource",s)))}));return Q(n)?await Promise.all(f):await f[0]}async function Pe(e){const n=new _.LoadingManager,t=new _.TextureLoader(n),r=a=>new Promise((o,m)=>{t.load(a,i=>o(i),()=>null,()=>{m(new Error("[useTextures] - Failed to load texture"))})});if(Q(e)){const a=await Promise.all(e.map(o=>r(o)));return e.length>1?a:a[0]}else{const{map:a,displacementMap:o,normalMap:m,roughnessMap:i,metalnessMap:f,aoMap:l,alphaMap:d,matcap:u}=e;return{map:a?await r(a):null,displacementMap:o?await r(o):null,normalMap:m?await r(m):null,roughnessMap:i?await r(i):null,metalnessMap:f?await r(f):null,aoMap:l?await r(l):null,alphaMap:d?await r(d):null,matcap:u?await r(u):null}}}const ee=(e,{renderer:n,camera:t,raycaster:r})=>{const a=c.computed(()=>n.value.domElement),{x:o,y:m}=w.usePointer({target:a}),{width:i,height:f,top:l,left:d}=w.useElementBounding(a),u=({x:C,y:A})=>{if(a.value)return{x:(C-d.value)/i.value*2-1,y:-((A-l.value)/f.value)*2+1}},s=({x:C,y:A})=>{if(t.value)return r.value.setFromCamera(new _.Vector2(C,A),t.value),r.value.intersectObjects(e.value,!1)},g=C=>{const A=u({x:(C==null?void 0:C.clientX)??o.value,y:(C==null?void 0:C.clientY)??m.value});return A?s(A)||[]:[]},P=c.computed(()=>g()),v=w.createEventHook(),M=w.createEventHook(),h=(C,A)=>{C.trigger({event:A,intersects:g(A)})},b=C=>{h(M,C)};let k;const O=C=>{var A;k=(A=g(C)[0])==null?void 0:A.object},D=C=>{var A;C instanceof PointerEvent&&k===((A=g(C)[0])==null?void 0:A.object)&&h(v,C)},z=C=>M.trigger({event:C,intersects:[]});return a.value.addEventListener("pointerup",D),a.value.addEventListener("pointerdown",O),a.value.addEventListener("pointermove",b),a.value.addEventListener("pointerleave",z),c.onUnmounted(()=>{a!=null&&a.value&&(a.value.removeEventListener("pointerup",D),a.value.removeEventListener("pointerdown",O),a.value.removeEventListener("pointermove",b),a.value.removeEventListener("pointerleave",z))}),{intersects:P,onClick:C=>v.on(C).off,onPointerMove:C=>M.on(C).off}};function _e(){const{logWarning:e}=L();function n(r,a,o){let m=null;return r.traverse(i=>{i[a]===o&&(m=i)}),m||e(`Child with ${a} '${o}' not found.`),m}function t(r,a){return n(r,"name",a)}return{seek:n,seekByName:t}}const te=({scene:e,contextParts:n})=>{const t=c.reactive({click:new Map,pointerMove:new Map,pointerEnter:new Map,pointerLeave:new Map}),r=c.ref(new Set),a=s=>{r.value.add(s)},o=s=>{r.value.delete(s)},m=s=>{Object.values(t).forEach(g=>g.delete(s)),o(s)},i=s=>{const{onClick:g,onPointerMove:P,onPointerEnter:v,onPointerLeave:M}=s;g&&t.click.set(s,g),P&&t.pointerMove.set(s,P),v&&t.pointerEnter.set(s,v),M&&t.pointerLeave.set(s,M)};e.userData.tres__registerAtPointerEventHandler=i,e.userData.tres__deregisterAtPointerEventHandler=m,e.userData.tres__registerBlockingObjectAtPointerEventHandler=a,e.userData.tres__deregisterBlockingObjectAtPointerEventHandler=o;const f=c.computed(()=>ge([...Array.from(r.value),...Object.values(t).map(s=>Array.from(s.keys())).flat()],({uuid:s})=>s)),{onClick:l,onPointerMove:d}=ee(f,n);l(({intersects:s,event:g})=>{var P;s.length&&((P=t.click.get(s[0].object))==null||P(s[0],g))});let u;return d(({intersects:s,event:g})=>{var b,k,O,D;const P=(b=s==null?void 0:s[0])==null?void 0:b.object,{pointerLeave:v,pointerEnter:M,pointerMove:h}=t;u&&u!==P&&((k=v.get(u))==null||k(u,g)),P&&(u!==P&&((O=M.get(P))==null||O(s[0],g)),(D=h.get(P))==null||D(s[0],g)),u=P||null}),{registerObject:i,deregisterObject:m}},E=c.ref({}),V=e=>Object.assign(E.value,e);function re({scene:e,canvas:n,windowSize:t,disableRender:r,rendererOptions:a}){const o=c.computed(()=>w.toValue(t)?w.useWindowSize():w.useElementSize(w.toValue(n).parentElement)),m=c.computed(()=>o.value.width.value),i=c.computed(()=>o.value.height.value),f=c.computed(()=>m.value/i.value),l={height:i,width:m,aspectRatio:f},d=c.shallowRef(e),{camera:u,cameras:s,registerCamera:g,deregisterCamera:P,setCameraActive:v}=I({sizes:l,scene:e}),{renderer:M}=X({scene:e,canvas:n,options:a,contextParts:{sizes:l,camera:u},disableRender:r}),h={sizes:l,scene:d,camera:u,cameras:c.readonly(s),renderer:M,raycaster:c.shallowRef(new _.Raycaster),controls:c.ref(null),extend:V,registerCamera:g,setCameraActive:v,deregisterCamera:P};return c.provide("useTres",h),h}function ne(){const e=c.inject("useTres");if(!e)throw new Error("useTresContext must be used together with useTresContextProvider");return e}const Me=ne;function Se(e){}let R=null,p=null;const{logError:ae}=L(),be={createElement(e,n,t,r){var m,i;if(r||(r={}),r.args||(r.args=[]),e==="template"||de(e))return null;let a=e.replace("Tres",""),o;if(e==="primitive"){(r==null?void 0:r.object)===void 0&&ae("Tres primitives need a prop 'object'");const f=r.object;a=f.type,o=Object.assign(f,{type:a,attach:r.attach,primitive:!0})}else{const f=E.value[a];f||ae(`${a} is not defined on the THREE namespace. Use extend to add it to the catalog.`),o=new f(...r.args)}return o.isCamera&&(r!=null&&r.position||o.position.set(3,3,3),r!=null&&r.lookAt||o.lookAt(0,0,0)),(r==null?void 0:r.attach)===void 0&&(o.isMaterial?o.attach="material":o.isBufferGeometry&&(o.attach="geometry")),o.isObject3D&&((m=r==null?void 0:r.material)!=null&&m.isMaterial&&(o.userData.tres__materialViaProp=!0),(i=r==null?void 0:r.geometry)!=null&&i.isBufferGeometry&&(o.userData.tres__geometryViaProp=!0)),o.userData={...o.userData,tres__name:a},o},insert(e,n){var t,r,a,o,m,i,f,l,d;if(n&&n.isScene&&(p=n),(((t=e==null?void 0:e.__vnode)==null?void 0:t.type)==="TresGroup"||((r=e==null?void 0:e.__vnode)==null?void 0:r.type)==="TresObject3D")&&n===null&&!((o=(a=e==null?void 0:e.__vnode)==null?void 0:a.ctx)!=null&&o.asyncResolved)){R=e;return}else(m=e==null?void 0:e.__vnode)!=null&&m.type.includes("Controls")&&n===null&&(R=p);if(n||(n=R),e!=null&&e.isObject3D){if(e!=null&&e.isCamera){if(!(p!=null&&p.userData.tres__registerCamera))throw"could not find tres__registerCamera on scene's userData";(f=p==null?void 0:(i=p.userData).tres__registerCamera)==null||f.call(i,e)}if(e!=null&&e.onClick||e!=null&&e.onPointerMove||e!=null&&e.onPointerEnter||e!=null&&e.onPointerLeave){if(!(p!=null&&p.userData.tres__registerAtPointerEventHandler))throw"could not find tres__registerAtPointerEventHandler on scene's userData";(d=p==null?void 0:(l=p.userData).tres__registerAtPointerEventHandler)==null||d.call(l,e)}}e!=null&&e.isObject3D&&(n!=null&&n.isObject3D)?(n.add(e),e.dispatchEvent({type:"added"})):e!=null&&e.isFog?n.fog=e:typeof(e==null?void 0:e.attach)=="string"&&(e.__previousAttach=e[n==null?void 0:n.attach],n&&(n[e.attach]=e))},remove(e){var n,t;if(e){if(e.isObject3D){const r=e,a=l=>{var u,s;const d=l;l.userData.tres__materialViaProp||(u=d.material)==null||u.dispose(),l.userData.tres__geometryViaProp||(s=d.geometry)==null||s.dispose()},o=p==null?void 0:p.userData.tres__deregisterAtPointerEventHandler,m=p==null?void 0:p.userData.tres__deregisterBlockingObjectAtPointerEventHandler,i=l=>{var d,u;if(!m)throw"could not find tres__deregisterBlockingObjectAtPointerEventHandler on scene's userData";if((u=p==null?void 0:(d=p.userData).tres__deregisterBlockingObjectAtPointerEventHandler)==null||u.call(d,l),!o)throw"could not find tres__deregisterAtPointerEventHandler on scene's userData";(l!=null&&l.onClick||l!=null&&l.onPointerMove||l!=null&&l.onPointerEnter||l!=null&&l.onPointerLeave)&&(o==null||o(l))},f=l=>{const d=p==null?void 0:p.userData.tres__deregisterCamera;if(!d)throw"could not find tres__deregisterCamera on scene's userData";l.isCamera&&(d==null||d(l))};r.traverse(l=>{a(l),f(l),i==null||i(l)}),a(r),f(r),i==null||i(r)}(n=e.removeFromParent)==null||n.call(e),(t=e.dispose)==null||t.call(e)}},patchProp(e,n,t,r){var a,o,m,i;if(e){let f=e,l=n;if(e.isObject3D&&l==="blocks-pointer-events"){r||r===""?(o=p==null?void 0:(a=p.userData).tres__registerBlockingObjectAtPointerEventHandler)==null||o.call(a,e):(i=p==null?void 0:(m=p.userData).tres__deregisterBlockingObjectAtPointerEventHandler)==null||i.call(m,e);return}let d=j(l),u=f==null?void 0:f[d];if(l==="args"){const g=e,P=t??[],v=r??[],M=e.userData.tres__name||e.type;M&&P.length&&!ye(P,v)&&(f=Object.assign(g,new E.value[M](...r)));return}if(f.type==="BufferGeometry"){if(l==="args")return;f.setAttribute(j(l),new _.BufferAttribute(...r));return}if(l.includes("-")&&u===void 0){const g=l.split("-");u=g.reduce((P,v)=>P[j(v)],f),l=g.pop(),d=l.toLowerCase(),u!=null&&u.set||(f=g.reduce((P,v)=>P[j(v)],f))}let s=r;if(s===""&&(s=!0),Y(u)){Array.isArray(s)?e[d](...s):e[d](s);return}!(u!=null&&u.set)&&!Y(u)?f[d]=s:u.constructor===s.constructor&&(u!=null&&u.copy)?u==null||u.copy(s):Array.isArray(s)?u.set(...s):!u.isColor&&u.setScalar?u.setScalar(s):u.set(s)}},parentNode(e){return(e==null?void 0:e.parent)||null},createText:()=>void 0,createComment:()=>void 0,setText:()=>void 0,setElementText:()=>void 0,nextSibling:()=>void 0,querySelector:()=>void 0,setScopeId:()=>void 0,cloneNode:()=>void 0,insertStaticContent:()=>void 0},{render:ke}=c.createRenderer(be);V(ie);const he=["data-scene"],oe=c.defineComponent({__name:"TresCanvas",props:{shadows:{type:Boolean,default:void 0},clearColor:{},toneMapping:{},shadowMapType:{},useLegacyLights:{type:Boolean,default:void 0},outputColorSpace:{},toneMappingExposure:{},camera:{},preset:{},windowSize:{type:Boolean,default:void 0},disableRender:{type:Boolean,default:void 0},context:{},precision:{},alpha:{type:Boolean,default:void 0},premultipliedAlpha:{type:Boolean},antialias:{type:Boolean,default:void 0},stencil:{type:Boolean,default:void 0},preserveDrawingBuffer:{type:Boolean,default:void 0},powerPreference:{},depth:{type:Boolean,default:void 0},logarithmicDepthBuffer:{type:Boolean,default:void 0},failIfMajorPerformanceCaveat:{type:Boolean,default:void 0}},setup(e){var d;const n=e,{logWarning:t}=L(),r=c.ref(),a=c.shallowRef(new _.Scene);G();const o=c.useSlots(),m=(d=c.getCurrentInstance())==null?void 0:d.appContext.app,i=u=>c.defineComponent({setup(){var g;const s=(g=c.getCurrentInstance())==null?void 0:g.appContext;return s&&(s.app=m),c.provide("useTres",u),c.provide("extend",V),()=>c.h(c.Fragment,null,o!=null&&o.default?o.default():[])}}),f=u=>{const s=i(u);ke(c.h(s),a.value)},l=c.computed(()=>n.disableRender);return c.onMounted(()=>{const u=r,s=re({scene:a.value,canvas:u,windowSize:n.windowSize,disableRender:l,rendererOptions:n});te({scene:a.value,contextParts:s});const{registerCamera:g,camera:P,cameras:v,deregisterCamera:M}=s;f(s);const h=()=>{const b=new _.PerspectiveCamera(45,window.innerWidth/window.innerHeight,.1,1e3);b.position.set(3,3,3),b.lookAt(0,0,0),g(b);const k=c.watchEffect(()=>{v.value.length>=2&&(b.removeFromParent(),M(b),k==null||k())})};c.watch(()=>n.camera,(b,k)=>{b?g(b):k&&(k.removeFromParent(),M(k))},{immediate:!0}),P.value||(t("No camera found. Creating a default perspective camera. To have full control over a camera, please add one to the scene."),h())}),(u,s)=>(c.openBlock(),c.createElementBlock("canvas",{ref_key:"canvas",ref:r,"data-scene":a.value.uuid,style:c.normalizeStyle({display:"block",width:"100%",height:"100%",position:u.windowSize?"fixed":"relative",top:0,left:0,pointerEvents:"auto",touchAction:"none"})},null,12,he))}}),Ae=["TresCanvas","TresLeches","TresScene"],Oe={template:{compilerOptions:{isCustomElement:e=>e.startsWith("Tres")&&!Ae.includes(e)||e==="primitive"}}},De={install(e){e.component("TresCanvas",oe)}};y.TresCanvas=oe,y.catalogue=E,y.default=De,y.extend=V,y.isProd=fe,y.normalizeColor=q,y.normalizeVectorFlexibleParam=me,y.templateCompilerOptions=Oe,y.trasverseObjects=Z,y.useCamera=I,y.useLoader=Ce,y.useLogger=L,y.usePointerEventHandler=te,y.useRaycaster=ee,y.useRenderLoop=G,y.useRenderer=X,y.useSeek=_e,y.useTexture=Pe,y.useTres=Me,y.useTresContext=ne,y.useTresContextProvider=re,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
8
|
+
(function(y,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("vue"),require("three"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","three","@vueuse/core"],c):(y=typeof globalThis<"u"?globalThis:y||self,c(y.tres={},y.Vue,y.Three,y.VueUseCore))})(this,function(y,c,P,w){"use strict";function se(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const ie=se(P),I=({sizes:e,scene:n})=>{const t=c.ref([]),r=c.computed(()=>t.value[0]),a=(i,f=!1)=>{t.value.some(({uuid:l})=>l===i.uuid)||(f?m(i):t.value.push(i))},o=i=>{t.value=t.value.filter(({uuid:f})=>f!==i.uuid)},m=i=>{const f=i instanceof P.Camera?i:t.value.find(d=>d.uuid===i);if(!f)return;const l=t.value.filter(({uuid:d})=>d!==f.uuid);t.value=[f,...l]};return c.watchEffect(()=>{e.aspectRatio.value&&t.value.forEach(i=>{i instanceof P.PerspectiveCamera&&(i.aspect=e.aspectRatio.value),(i instanceof P.PerspectiveCamera||i instanceof P.OrthographicCamera)&&i.updateProjectionMatrix()})}),n.userData.tres__registerCamera=a,n.userData.tres__deregisterCamera=o,c.onUnmounted(()=>{t.value=[]}),{camera:r,cameras:t,registerCamera:a,deregisterCamera:o,setCameraActive:m}},W=w.createEventHook(),N=w.createEventHook(),F=w.createEventHook(),S=new P.Clock;let B=0,x=0;const{pause:le,resume:ue,isActive:ce}=w.useRafFn(()=>{W.trigger({delta:B,elapsed:x,clock:S}),N.trigger({delta:B,elapsed:x,clock:S}),F.trigger({delta:B,elapsed:x,clock:S})},{immediate:!1});F.on(()=>{B=S.getDelta(),x=S.getElapsedTime()});const G=()=>({onBeforeLoop:W.on,onLoop:N.on,onAfterLoop:F.on,pause:le,resume:ue,isActive:ce}),fe=!0,$="[TresJS ▲ ■ ●] ";function L(){function e(r,a){console.error(`${$} ${r}`,a||"")}function n(r){console.warn(`${$} ${r}`)}function t(r,a){}return{logError:e,logWarning:n,logMessage:t}}function me(e){return typeof e=="number"?[e,e,e]:e instanceof P.Vector3?[e.x,e.y,e.z]:e}function q(e){return e instanceof P.Color?e:Array.isArray(e)?new P.Color(...e):new P.Color(e)}const U=(e,n)=>{for(const t of Object.keys(n))n[t]instanceof Object&&Object.assign(n[t],U(e[t],n[t]));return Object.assign(e||{},n),e},de=pe("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot");function H(e){return e&&e.nodeType===1}function j(e){return e.replace(/-([a-z])/g,(n,t)=>t.toUpperCase())}function pe(e,n){const t=Object.create(null),r=e.split(",");for(let a=0;a<r.length;a++)t[r[a]]=!0;return n?a=>!!t[a.toLowerCase()]:a=>!!t[a]}const ge=(e,n)=>{const t=new Set,r=[];for(const a of e){const o=n(a);t.has(o)||(t.add(o),r.push(a))}return r},J=(e,n)=>{if(!n)return;const t=Array.isArray(n)?n:n.match(/([^[.\]])+/g);return t==null?void 0:t.reduce((r,a)=>r&&r[a],e)},ve=(e,n,t)=>{const r=Array.isArray(n)?n:n.match(/([^[.\]])+/g);r&&r.reduce((a,o,m)=>(a[o]===void 0&&(a[o]={}),m===r.length-1&&(a[o]=t),a[o]),e)};function K(e,n){if(H(e)&&H(n)){const a=e.attributes,o=n.attributes;return a.length!==o.length?!1:Array.from(a).every(({name:m,value:i})=>n.getAttribute(m)===i)}if(e===n)return!0;if(e===null||typeof e!="object"||n===null||typeof n!="object")return!1;const t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(const a of t)if(!r.includes(a)||!K(e[a],n[a]))return!1;return!0}function ye(e,n){if(!Array.isArray(e)||!Array.isArray(n)||e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(!K(e[t],n[t]))return!1;return!0}const we=Number.parseInt(P.REVISION.replace("dev","")),T={realistic:{outputColorSpace:P.SRGBColorSpace,toneMapping:P.ACESFilmicToneMapping,toneMappingExposure:3,shadowMap:{enabled:!0,type:P.PCFSoftShadowMap}}};function X({scene:e,canvas:n,options:t,disableRender:r,contextParts:{sizes:a,camera:o}}){const m=c.computed(()=>({alpha:w.toValue(t.alpha),depth:w.toValue(t.depth),canvas:w.unrefElement(n),context:w.toValue(t.context),stencil:w.toValue(t.stencil),antialias:w.toValue(t.antialias)===void 0?!0:w.toValue(t.antialias),precision:w.toValue(t.precision),powerPreference:w.toValue(t.powerPreference),premultipliedAlpha:w.toValue(t.premultipliedAlpha),preserveDrawingBuffer:w.toValue(t.preserveDrawingBuffer),logarithmicDepthBuffer:w.toValue(t.logarithmicDepthBuffer),failIfMajorPerformanceCaveat:w.toValue(t.failIfMajorPerformanceCaveat)})),i=c.shallowRef(new P.WebGLRenderer(m.value));c.watch(m,()=>{i.value.dispose(),i.value=new P.WebGLRenderer(m.value)}),c.watchEffect(()=>{i.value.setSize(a.width.value,a.height.value)});const{pixelRatio:f}=w.useDevicePixelRatio();c.watchEffect(()=>{i.value.setPixelRatio(f.value)});const{logError:l}=L(),u=(()=>{const v=new P.WebGLRenderer,M={shadowMap:{enabled:v.shadowMap.enabled,type:v.shadowMap.type},toneMapping:v.toneMapping,toneMappingExposure:v.toneMappingExposure,outputColorSpace:v.outputColorSpace};return v.dispose(),M})();c.watchEffect(()=>{const v=w.toValue(t.preset);v&&(v in T||l(`Renderer Preset must be one of these: ${Object.keys(T).join(", ")}`),U(i.value,T[v]));const M=(k,h)=>{const D=w.toValue(k),z=()=>{if(v)return J(T[v],h)};if(D!==void 0)return D;const C=z();return C!==void 0?C:J(u,h)},A=(k,h)=>ve(i.value,h,M(k,h));A(t.shadows,"shadowMap.enabled"),A(t.toneMapping,"toneMapping"),A(t.shadowMapType,"shadowMap.type"),we<150&&A(!t.useLegacyLights,"physicallyCorrectLights"),A(t.outputColorSpace,"outputColorSpace"),A(t.toneMappingExposure,"toneMappingExposure");const b=M(t.clearColor,"clearColor");b&&i.value.setClearColor(b?q(b):new P.Color(0))});const{pause:s,resume:g,onLoop:_}=G();return _(()=>{o.value&&!w.toValue(r)&&i.value.render(e,o.value)}),g(),c.onUnmounted(()=>{s(),i.value.dispose(),i.value.forceContextLoss()}),{renderer:i}}const Y=e=>typeof e=="function",Q=e=>!!e&&e.constructor===Array;function Z(e){const n={nodes:{},materials:{}};return e&&e.traverse(t=>{t.name&&(n.nodes[t.name]=t),t.material&&!n.materials[t.material.name]&&(n.materials[t.material.name]=t.material)}),n}async function Ce(e,n,t,r,a){const{logError:o}=L(),m=new e;a&&a(m),t&&t(m);const f=(Array.isArray(n)?n:[n]).map(l=>new Promise((d,u)=>{m.load(l,s=>{s.scene&&Object.assign(s,Z(s.scene)),d(s)},r,s=>u(o("[useLoader] - Failed to load resource",s)))}));return Q(n)?await Promise.all(f):await f[0]}async function _e(e){const n=new P.LoadingManager,t=new P.TextureLoader(n),r=a=>new Promise((o,m)=>{t.load(a,i=>o(i),()=>null,()=>{m(new Error("[useTextures] - Failed to load texture"))})});if(Q(e)){const a=await Promise.all(e.map(o=>r(o)));return e.length>1?a:a[0]}else{const{map:a,displacementMap:o,normalMap:m,roughnessMap:i,metalnessMap:f,aoMap:l,alphaMap:d,matcap:u}=e;return{map:a?await r(a):null,displacementMap:o?await r(o):null,normalMap:m?await r(m):null,roughnessMap:i?await r(i):null,metalnessMap:f?await r(f):null,aoMap:l?await r(l):null,alphaMap:d?await r(d):null,matcap:u?await r(u):null}}}const ee=(e,{renderer:n,camera:t,raycaster:r})=>{const a=c.computed(()=>n.value.domElement),{x:o,y:m}=w.usePointer({target:a}),{width:i,height:f,top:l,left:d}=w.useElementBounding(a),u=({x:C,y:O})=>{if(a.value)return{x:(C-d.value)/i.value*2-1,y:-((O-l.value)/f.value)*2+1}},s=({x:C,y:O})=>{if(t.value)return r.value.setFromCamera(new P.Vector2(C,O),t.value),r.value.intersectObjects(e.value,!1)},g=C=>{const O=u({x:(C==null?void 0:C.clientX)??o.value,y:(C==null?void 0:C.clientY)??m.value});return O?s(O)||[]:[]},_=c.computed(()=>g()),v=w.createEventHook(),M=w.createEventHook(),A=(C,O)=>{C.trigger({event:O,intersects:g(O)})},b=C=>{A(M,C)};let k;const h=C=>{var O;k=(O=g(C)[0])==null?void 0:O.object},D=C=>{var O;C instanceof PointerEvent&&k===((O=g(C)[0])==null?void 0:O.object)&&A(v,C)},z=C=>M.trigger({event:C,intersects:[]});return a.value.addEventListener("pointerup",D),a.value.addEventListener("pointerdown",h),a.value.addEventListener("pointermove",b),a.value.addEventListener("pointerleave",z),c.onUnmounted(()=>{a!=null&&a.value&&(a.value.removeEventListener("pointerup",D),a.value.removeEventListener("pointerdown",h),a.value.removeEventListener("pointermove",b),a.value.removeEventListener("pointerleave",z))}),{intersects:_,onClick:C=>v.on(C).off,onPointerMove:C=>M.on(C).off}};function Pe(){const{logWarning:e}=L();function n(r,a,o){let m=null;return r.traverse(i=>{i[a]===o&&(m=i)}),m||e(`Child with ${a} '${o}' not found.`),m}function t(r,a){return n(r,"name",a)}return{seek:n,seekByName:t}}const te=({scene:e,contextParts:n})=>{const t=c.reactive({click:new Map,pointerMove:new Map,pointerEnter:new Map,pointerLeave:new Map}),r=c.ref(new Set),a=s=>{r.value.add(s)},o=s=>{r.value.delete(s)},m=s=>{Object.values(t).forEach(g=>g.delete(s)),o(s)},i=s=>{const{onClick:g,onPointerMove:_,onPointerEnter:v,onPointerLeave:M}=s;g&&t.click.set(s,g),_&&t.pointerMove.set(s,_),v&&t.pointerEnter.set(s,v),M&&t.pointerLeave.set(s,M)};e.userData.tres__registerAtPointerEventHandler=i,e.userData.tres__deregisterAtPointerEventHandler=m,e.userData.tres__registerBlockingObjectAtPointerEventHandler=a,e.userData.tres__deregisterBlockingObjectAtPointerEventHandler=o;const f=c.computed(()=>ge([...Array.from(r.value),...Object.values(t).map(s=>Array.from(s.keys())).flat()],({uuid:s})=>s)),{onClick:l,onPointerMove:d}=ee(f,n);l(({intersects:s,event:g})=>{var _;s.length&&((_=t.click.get(s[0].object))==null||_(s[0],g))});let u;return d(({intersects:s,event:g})=>{var b,k,h,D;const _=(b=s==null?void 0:s[0])==null?void 0:b.object,{pointerLeave:v,pointerEnter:M,pointerMove:A}=t;u&&u!==_&&((k=v.get(u))==null||k(u,g)),_&&(u!==_&&((h=M.get(_))==null||h(s[0],g)),(D=A.get(_))==null||D(s[0],g)),u=_||null}),{registerObject:i,deregisterObject:m}},E=c.ref({}),V=e=>Object.assign(E.value,e);function re({scene:e,canvas:n,windowSize:t,disableRender:r,rendererOptions:a}){const o=c.computed(()=>w.toValue(t)?w.useWindowSize():w.useElementSize(w.toValue(n).parentElement)),m=c.computed(()=>o.value.width.value),i=c.computed(()=>o.value.height.value),f=c.computed(()=>m.value/i.value),l={height:i,width:m,aspectRatio:f},d=c.shallowRef(e),{camera:u,cameras:s,registerCamera:g,deregisterCamera:_,setCameraActive:v}=I({sizes:l,scene:e}),{renderer:M}=X({scene:e,canvas:n,options:a,contextParts:{sizes:l,camera:u},disableRender:r}),A={sizes:l,scene:d,camera:u,cameras:c.readonly(s),renderer:M,raycaster:c.shallowRef(new P.Raycaster),controls:c.ref(null),extend:V,registerCamera:g,setCameraActive:v,deregisterCamera:_};return c.provide("useTres",A),A}function ne(){const e=c.inject("useTres");if(!e)throw new Error("useTresContext must be used together with useTresContextProvider");return e}const Me=ne;function Se(e){}let R=null,p=null;const{logError:ae}=L(),be={createElement(e,n,t,r){var m,i;if(r||(r={}),r.args||(r.args=[]),e==="template"||de(e))return null;let a=e.replace("Tres",""),o;if(e==="primitive"){(r==null?void 0:r.object)===void 0&&ae("Tres primitives need a prop 'object'");const f=r.object;a=f.type,o=Object.assign(f,{type:a,attach:r.attach,primitive:!0})}else{const f=E.value[a];f||ae(`${a} is not defined on the THREE namespace. Use extend to add it to the catalog.`),o=new f(...r.args)}return o.isCamera&&(r!=null&&r.position||o.position.set(3,3,3),r!=null&&r.lookAt||o.lookAt(0,0,0)),(r==null?void 0:r.attach)===void 0&&(o.isMaterial?o.attach="material":o.isBufferGeometry&&(o.attach="geometry")),o.isObject3D&&((m=r==null?void 0:r.material)!=null&&m.isMaterial&&(o.userData.tres__materialViaProp=!0),(i=r==null?void 0:r.geometry)!=null&&i.isBufferGeometry&&(o.userData.tres__geometryViaProp=!0)),o.userData={...o.userData,tres__name:a},o},insert(e,n){var t,r,a,o,m,i,f,l,d,u;if(n&&n.isScene&&(p=n),(((t=e==null?void 0:e.__vnode)==null?void 0:t.type)==="TresGroup"||((r=e==null?void 0:e.__vnode)==null?void 0:r.type)==="TresObject3D")&&n===null&&!((o=(a=e==null?void 0:e.__vnode)==null?void 0:a.ctx)!=null&&o.asyncResolved)){R=e;return}else n===null&&((m=e==null?void 0:e.__vnode)!=null&&m.type.includes("Controls")||(i=e==null?void 0:e.__vnode)!=null&&i.type.includes("Helper"))&&(R=p);if(n||(n=R),e!=null&&e.isObject3D){if(e!=null&&e.isCamera){if(!(p!=null&&p.userData.tres__registerCamera))throw"could not find tres__registerCamera on scene's userData";(l=p==null?void 0:(f=p.userData).tres__registerCamera)==null||l.call(f,e)}if(e!=null&&e.onClick||e!=null&&e.onPointerMove||e!=null&&e.onPointerEnter||e!=null&&e.onPointerLeave){if(!(p!=null&&p.userData.tres__registerAtPointerEventHandler))throw"could not find tres__registerAtPointerEventHandler on scene's userData";(u=p==null?void 0:(d=p.userData).tres__registerAtPointerEventHandler)==null||u.call(d,e)}}e!=null&&e.isObject3D&&(n!=null&&n.isObject3D)?(n.add(e),e.dispatchEvent({type:"added"})):e!=null&&e.isFog?n.fog=e:typeof(e==null?void 0:e.attach)=="string"&&(e.__previousAttach=e[n==null?void 0:n.attach],n&&(n[e.attach]=e))},remove(e){var n,t;if(e){if(e.isObject3D){const r=e,a=l=>{var u,s;const d=l;l.userData.tres__materialViaProp||(u=d.material)==null||u.dispose(),l.userData.tres__geometryViaProp||(s=d.geometry)==null||s.dispose()},o=p==null?void 0:p.userData.tres__deregisterAtPointerEventHandler,m=p==null?void 0:p.userData.tres__deregisterBlockingObjectAtPointerEventHandler,i=l=>{var d,u;if(!m)throw"could not find tres__deregisterBlockingObjectAtPointerEventHandler on scene's userData";if((u=p==null?void 0:(d=p.userData).tres__deregisterBlockingObjectAtPointerEventHandler)==null||u.call(d,l),!o)throw"could not find tres__deregisterAtPointerEventHandler on scene's userData";(l!=null&&l.onClick||l!=null&&l.onPointerMove||l!=null&&l.onPointerEnter||l!=null&&l.onPointerLeave)&&(o==null||o(l))},f=l=>{const d=p==null?void 0:p.userData.tres__deregisterCamera;if(!d)throw"could not find tres__deregisterCamera on scene's userData";l.isCamera&&(d==null||d(l))};r.traverse(l=>{a(l),f(l),i==null||i(l)}),a(r),f(r),i==null||i(r)}(n=e.removeFromParent)==null||n.call(e),(t=e.dispose)==null||t.call(e)}},patchProp(e,n,t,r){var a,o,m,i;if(e){let f=e,l=n;if(e.isObject3D&&l==="blocks-pointer-events"){r||r===""?(o=p==null?void 0:(a=p.userData).tres__registerBlockingObjectAtPointerEventHandler)==null||o.call(a,e):(i=p==null?void 0:(m=p.userData).tres__deregisterBlockingObjectAtPointerEventHandler)==null||i.call(m,e);return}let d=j(l),u=f==null?void 0:f[d];if(l==="args"){const g=e,_=t??[],v=r??[],M=e.userData.tres__name||e.type;M&&_.length&&!ye(_,v)&&(f=Object.assign(g,new E.value[M](...r)));return}if(f.type==="BufferGeometry"){if(l==="args")return;f.setAttribute(j(l),new P.BufferAttribute(...r));return}if(l.includes("-")&&u===void 0){const g=l.split("-");u=g.reduce((_,v)=>_[j(v)],f),l=g.pop(),d=l.toLowerCase(),u!=null&&u.set||(f=g.reduce((_,v)=>_[j(v)],f))}let s=r;if(s===""&&(s=!0),Y(u)){Array.isArray(s)?e[d](...s):e[d](s);return}!(u!=null&&u.set)&&!Y(u)?f[d]=s:u.constructor===s.constructor&&(u!=null&&u.copy)?u==null||u.copy(s):Array.isArray(s)?u.set(...s):!u.isColor&&u.setScalar?u.setScalar(s):u.set(s)}},parentNode(e){return(e==null?void 0:e.parent)||null},createText:()=>void 0,createComment:()=>void 0,setText:()=>void 0,setElementText:()=>void 0,nextSibling:()=>void 0,querySelector:()=>void 0,setScopeId:()=>void 0,cloneNode:()=>void 0,insertStaticContent:()=>void 0},{render:ke}=c.createRenderer(be);V(ie);const Ae=["data-scene"],oe=c.defineComponent({__name:"TresCanvas",props:{shadows:{type:Boolean,default:void 0},clearColor:{},toneMapping:{},shadowMapType:{},useLegacyLights:{type:Boolean,default:void 0},outputColorSpace:{},toneMappingExposure:{},camera:{},preset:{},windowSize:{type:Boolean,default:void 0},disableRender:{type:Boolean,default:void 0},context:{},precision:{},alpha:{type:Boolean,default:void 0},premultipliedAlpha:{type:Boolean},antialias:{type:Boolean,default:void 0},stencil:{type:Boolean,default:void 0},preserveDrawingBuffer:{type:Boolean,default:void 0},powerPreference:{},depth:{type:Boolean,default:void 0},logarithmicDepthBuffer:{type:Boolean,default:void 0},failIfMajorPerformanceCaveat:{type:Boolean,default:void 0}},setup(e){var d;const n=e,{logWarning:t}=L(),r=c.ref(),a=c.shallowRef(new P.Scene);G();const o=c.useSlots(),m=(d=c.getCurrentInstance())==null?void 0:d.appContext.app,i=u=>c.defineComponent({setup(){var g;const s=(g=c.getCurrentInstance())==null?void 0:g.appContext;return s&&(s.app=m),c.provide("useTres",u),c.provide("extend",V),()=>c.h(c.Fragment,null,o!=null&&o.default?o.default():[])}}),f=u=>{const s=i(u);ke(c.h(s),a.value)},l=c.computed(()=>n.disableRender);return c.onMounted(()=>{const u=r,s=re({scene:a.value,canvas:u,windowSize:n.windowSize,disableRender:l,rendererOptions:n});te({scene:a.value,contextParts:s});const{registerCamera:g,camera:_,cameras:v,deregisterCamera:M}=s;f(s);const A=()=>{const b=new P.PerspectiveCamera(45,window.innerWidth/window.innerHeight,.1,1e3);b.position.set(3,3,3),b.lookAt(0,0,0),g(b);const k=c.watchEffect(()=>{v.value.length>=2&&(b.removeFromParent(),M(b),k==null||k())})};c.watch(()=>n.camera,(b,k)=>{b&&g(b),k&&(k.removeFromParent(),M(k))},{immediate:!0}),_.value||(t("No camera found. Creating a default perspective camera. To have full control over a camera, please add one to the scene."),A())}),(u,s)=>(c.openBlock(),c.createElementBlock("canvas",{ref_key:"canvas",ref:r,"data-scene":a.value.uuid,style:c.normalizeStyle({display:"block",width:"100%",height:"100%",position:u.windowSize?"fixed":"relative",top:0,left:0,pointerEvents:"auto",touchAction:"none"})},null,12,Ae))}}),Oe=["TresCanvas","TresLeches","TresScene"],he={template:{compilerOptions:{isCustomElement:e=>e.startsWith("Tres")&&!Oe.includes(e)||e==="primitive"}}},De={install(e){e.component("TresCanvas",oe)}};y.TresCanvas=oe,y.catalogue=E,y.default=De,y.extend=V,y.isProd=fe,y.normalizeColor=q,y.normalizeVectorFlexibleParam=me,y.templateCompilerOptions=he,y.trasverseObjects=Z,y.useCamera=I,y.useLoader=Ce,y.useLogger=L,y.usePointerEventHandler=te,y.useRaycaster=ee,y.useRenderLoop=G,y.useRenderer=X,y.useSeek=Pe,y.useTexture=_e,y.useTres=Me,y.useTresContext=ne,y.useTresContextProvider=re,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tresjs/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.2",
|
|
5
5
|
"packageManager": "pnpm@8.3.1",
|
|
6
6
|
"description": "Declarative ThreeJS using Vue Components",
|
|
7
7
|
"author": "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)",
|