@tresjs/core 2.4.2 → 3.0.1

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 CHANGED
@@ -1,481 +1,475 @@
1
1
  /**
2
2
  * name: @tresjs/core
3
- * version: v2.4.2
3
+ * version: v3.0.1
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 G, shallowReactive as se, toRefs as ce, provide as Re, inject as Te, watchEffect as ue, toRef as Le, shallowRef as Se, computed as N, watch as D, onUnmounted as fe, reactive as Ae, createRenderer as Oe, defineComponent as le, getCurrentInstance as ke, onMounted as Be, useSlots as je, openBlock as pe, createElementBlock as De, unref as W, createElementVNode as te, normalizeStyle as Ie, createBlock as He, normalizeProps as Ve, guardReactiveProps as ze, withCtx as Ge, renderSlot as Ne } from "vue";
9
- import * as Fe from "three";
10
- import { PerspectiveCamera as I, OrthographicCamera as We, Clock as de, Vector3 as $e, Color as $, SRGBColorSpace as Ue, ACESFilmicToneMapping as Ye, PCFSoftShadowMap as qe, PCFShadowMap as Ke, LinearSRGBColorSpace as ae, NoToneMapping as ne, WebGLRenderer as Je, LoadingManager as Xe, TextureLoader as Qe, Raycaster as Ze, Vector2 as et, BufferAttribute as tt, Scene as at } from "three";
11
- import { createEventHook as A, useRafFn as nt, toValue as m, useWindowSize as ot, useElementSize as rt, useDevicePixelRatio as it, unrefElement as U, usePointer as st, useElementBounding as ct } from "@vueuse/core";
12
- const me = G({}), ve = (e) => void Object.assign(me.value, e), oe = (e) => typeof e == "function", ge = (e) => !!e && e.constructor === Array, b = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff"];
13
- function ut() {
14
- const e = Math.random() * 4294967295 | 0, a = Math.random() * 4294967295 | 0, r = Math.random() * 4294967295 | 0, t = Math.random() * 4294967295 | 0;
15
- return (b[e & 255] + b[e >> 8 & 255] + b[e >> 16 & 255] + b[e >> 24 & 255] + "-" + b[a & 255] + b[a >> 8 & 255] + "-" + b[a >> 16 & 15 | 64] + b[a >> 24 & 255] + "-" + b[r & 63 | 128] + b[r >> 8 & 255] + "-" + b[r >> 16 & 255] + b[r >> 24 & 255] + b[t & 255] + b[t >> 8 & 255] + b[t >> 16 & 255] + b[t >> 24 & 255]).toLowerCase();
16
- }
17
- const K = Symbol();
18
- function ft() {
19
- const e = se({
20
- uuid: ut(),
21
- camera: void 0,
22
- cameras: [],
23
- canvas: void 0,
24
- scene: void 0,
25
- renderer: void 0,
26
- aspectRatio: void 0,
27
- pointerEventHandler: void 0
28
- });
29
- function a(o) {
30
- return e[o];
31
- }
32
- function r(o, s) {
33
- e[o] = s;
34
- }
35
- const t = {
36
- state: e,
37
- ...ce(e),
38
- getState: a,
39
- setState: r
8
+ import { ref as H, computed as _, watchEffect as b, onUnmounted as j, shallowRef as z, watch as K, reactive as re, readonly as ne, provide as ae, inject as oe, createRenderer as se, defineComponent as ie, useSlots as ue, onMounted as le, openBlock as ce, createElementBlock as fe, normalizeStyle as me } from "vue";
9
+ import * as pe from "three";
10
+ import { PerspectiveCamera as W, OrthographicCamera as ve, Camera as de, Clock as ge, SRGBColorSpace as we, ACESFilmicToneMapping as ye, PCFSoftShadowMap as Ce, Vector3 as Pe, Color as O, WebGLRenderer as V, LoadingManager as Me, TextureLoader as _e, Vector2 as Ee, Raycaster as xe, BufferAttribute as Le, Scene as Te } from "three";
11
+ import { createEventHook as A, useRafFn as be, toValue as y, unrefElement as De, useDevicePixelRatio as Ae, usePointer as ke, useElementBounding as Se, useWindowSize as he, useElementSize as Be } from "@vueuse/core";
12
+ const X = H({}), $ = (e) => void Object.assign(X.value, e), N = (e) => typeof e == "function", Y = (e) => !!e && e.constructor === Array, Oe = ({ sizes: e, scene: a }) => {
13
+ const t = H([]), n = _(
14
+ () => t.value[0]
15
+ ), r = (o, s = !1) => {
16
+ t.value.some(({ uuid: u }) => u === o.uuid) || (s ? l(o) : t.value.push(o));
17
+ }, i = (o) => {
18
+ t.value = t.value.filter(({ uuid: s }) => s !== o.uuid);
19
+ }, l = (o) => {
20
+ const s = o instanceof de ? o : t.value.find((c) => c.uuid === o);
21
+ if (!s)
22
+ return;
23
+ const u = t.value.filter(({ uuid: c }) => c !== s.uuid);
24
+ t.value = [s, ...u];
40
25
  };
41
- return Re(K, t), t;
42
- }
43
- const O = () => Te(K, {
44
- state: se({
45
- camera: void 0,
46
- cameras: [],
47
- canvas: void 0,
48
- scene: void 0,
49
- renderer: void 0,
50
- pointerEventHandler: void 0
51
- })
52
- });
53
- var lt = /* @__PURE__ */ ((e) => (e.Perspective = "Perspective", e.Orthographic = "Orthographic", e))(lt || {});
54
- const pt = 45;
55
- let T;
56
- function dt() {
57
- const { state: e, setState: a, aspectRatio: r } = O();
58
- function t(i = "Perspective", u) {
59
- var l, p, d;
60
- if (i === "Perspective") {
61
- const { near: w, far: _, fov: E } = u || {
62
- near: 0.1,
63
- far: 1e3,
64
- fov: pt
65
- };
66
- T = new I(E, ((l = e.aspectRatio) == null ? void 0 : l.value) || window.innerWidth / window.innerHeight, w, _), (p = e.cameras) == null || p.push(T);
67
- } else {
68
- const { left: w, right: _, top: E, bottom: g, near: M, far: x } = u || {
69
- left: -100,
70
- right: 100,
71
- top: 100,
72
- bottom: -100,
73
- near: 0.1,
74
- far: 1e3
75
- };
76
- T = new We(w, _, E, g, M, x), (d = e.cameras) == null || d.push(T);
77
- }
78
- return e.camera = T, a("camera", e.camera), T;
79
- }
80
- function o() {
81
- var i;
82
- e.camera instanceof I && e.aspectRatio && (e.camera.aspect = e.aspectRatio.value), (i = e.camera) == null || i.updateProjectionMatrix();
83
- }
84
- function s(i) {
85
- var u;
86
- (u = e.cameras) == null || u.push(i), i instanceof I && e.aspectRatio && (i.aspect = e.aspectRatio.value), i.updateProjectionMatrix(), a("camera", i);
87
- }
88
- function c(i) {
89
- var u;
90
- ((u = e.cameras) == null ? void 0 : u.length) === 0 && s(i);
91
- }
92
- function n() {
93
- e.cameras = [];
94
- }
95
- return ue(() => {
96
- r != null && r.value && o();
26
+ return b(() => {
27
+ e.aspectRatio.value && t.value.forEach((o) => {
28
+ o instanceof W && (o.aspect = e.aspectRatio.value), (o instanceof W || o instanceof ve) && o.updateProjectionMatrix();
29
+ });
30
+ }), a.userData.tres__registerCamera = r, a.userData.tres__deregisterCamera = i, j(() => {
31
+ t.value = [];
97
32
  }), {
98
- activeCamera: Le(e, "camera"),
99
- createCamera: t,
100
- updateCamera: o,
101
- pushCamera: s,
102
- clearCameras: n,
103
- setFirstCamera: c
33
+ camera: n,
34
+ cameras: t,
35
+ addCamera: r,
36
+ removeCamera: i,
37
+ setCameraActive: l
104
38
  };
105
- }
106
- const ye = A(), we = A(), J = A(), S = new de();
107
- let H = 0, V = 0;
108
- const { pause: mt, resume: vt, isActive: gt } = nt(
39
+ }, Q = A(), Z = A(), I = A(), D = new ge();
40
+ let R = 0, F = 0;
41
+ const { pause: Re, resume: Fe, isActive: ze } = be(
109
42
  () => {
110
- ye.trigger({ delta: H, elapsed: V, clock: S }), we.trigger({ delta: H, elapsed: V, clock: S }), J.trigger({ delta: H, elapsed: V, clock: S });
43
+ Q.trigger({ delta: R, elapsed: F, clock: D }), Z.trigger({ delta: R, elapsed: F, clock: D }), I.trigger({ delta: R, elapsed: F, clock: D });
111
44
  },
112
45
  { immediate: !1 }
113
46
  );
114
- J.on(() => {
115
- H = S.getDelta(), V = S.getElapsedTime();
47
+ I.on(() => {
48
+ R = D.getDelta(), F = D.getElapsedTime();
116
49
  });
117
- function he() {
118
- return {
119
- onBeforeLoop: ye.on,
120
- onLoop: we.on,
121
- onAfterLoop: J.on,
122
- pause: mt,
123
- resume: vt,
124
- isActive: gt
125
- };
126
- }
127
- function Vt(e) {
128
- return typeof e == "number" ? [e, e, e] : e instanceof $e ? [e.x, e.y, e.z] : e;
129
- }
130
- function yt(e) {
131
- return e instanceof $ ? e : Array.isArray(e) ? new $(...e) : new $(e);
132
- }
133
- const Y = {
50
+ const ee = () => ({
51
+ onBeforeLoop: Q.on,
52
+ onLoop: Z.on,
53
+ onAfterLoop: I.on,
54
+ pause: Re,
55
+ resume: Fe,
56
+ isActive: ze
57
+ }), h = {
134
58
  realistic: {
135
- outputColorSpace: Ue,
136
- toneMapping: Ye,
59
+ outputColorSpace: we,
60
+ toneMapping: ye,
137
61
  toneMappingExposure: 3,
138
62
  shadowMap: {
139
63
  enabled: !0,
140
- type: qe
64
+ type: Ce
141
65
  }
142
66
  }
143
- }, be = (e, a) => {
144
- for (const r of Object.keys(a))
145
- a[r] instanceof Object && Object.assign(a[r], be(e[r], a[r]));
67
+ }, te = (e, a) => {
68
+ for (const t of Object.keys(a))
69
+ a[t] instanceof Object && Object.assign(a[t], te(e[t], a[t]));
146
70
  return Object.assign(e || {}, a), e;
147
- }, wt = "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", ht = /* @__PURE__ */ bt(wt);
148
- function j(e) {
149
- return e.replace(/-([a-z])/g, (a, r) => r.toUpperCase());
71
+ }, He = "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", Ve = /* @__PURE__ */ Ge(He);
72
+ function B(e) {
73
+ return e.replace(/-([a-z])/g, (a, t) => t.toUpperCase());
150
74
  }
151
- function bt(e, a) {
152
- const r = /* @__PURE__ */ Object.create(null), t = e.split(",");
153
- for (let o = 0; o < t.length; o++)
154
- r[t[o]] = !0;
155
- return a ? (o) => !!r[o.toLowerCase()] : (o) => !!r[o];
75
+ function Ge(e, a) {
76
+ const t = /* @__PURE__ */ Object.create(null), n = e.split(",");
77
+ for (let r = 0; r < n.length; r++)
78
+ t[n[r]] = !0;
79
+ return a ? (r) => !!t[r.toLowerCase()] : (r) => !!t[r];
156
80
  }
157
- const Et = (e, a) => {
158
- const r = /* @__PURE__ */ new Set(), t = [];
159
- for (const o of e) {
160
- const s = a(o);
161
- r.has(s) || (r.add(s), t.push(o));
81
+ const We = (e, a) => {
82
+ const t = /* @__PURE__ */ new Set(), n = [];
83
+ for (const r of e) {
84
+ const i = a(r);
85
+ t.has(i) || (t.add(i), n.push(r));
162
86
  }
163
- return t;
164
- }, zt = !0, re = "[TresJS ▲ ■ ●] ";
87
+ return n;
88
+ }, q = (e, a) => {
89
+ if (!a)
90
+ return;
91
+ const t = Array.isArray(a) ? a : a.match(/([^[.\]])+/g);
92
+ return t == null ? void 0 : t.reduce((n, r) => n && n[r], e);
93
+ }, je = (e, a, t) => {
94
+ const n = Array.isArray(a) ? a : a.match(/([^[.\]])+/g);
95
+ n && n.reduce((r, i, l) => (r[i] === void 0 && (r[i] = {}), l === n.length - 1 && (r[i] = t), r[i]), e);
96
+ }, st = !0, U = "[TresJS ▲ ■ ●] ";
165
97
  function k() {
166
- function e(t, o) {
167
- console.error(`${re} ${t}`, o || "");
98
+ function e(n, r) {
99
+ console.error(`${U} ${n}`, r || "");
168
100
  }
169
- function a(t) {
170
- console.warn(`${re} ${t}`);
101
+ function a(n) {
102
+ console.warn(`${U} ${n}`);
171
103
  }
172
- function r(t, o) {
104
+ function t(n, r) {
173
105
  }
174
106
  return {
175
107
  logError: e,
176
108
  logWarning: a,
177
- logMessage: r
109
+ logMessage: t
178
110
  };
179
111
  }
180
- function _t(e) {
181
- const a = Se(), r = G(!1), {
182
- alpha: t = !0,
183
- antialias: o = !0,
184
- depth: s,
185
- logarithmicDepthBuffer: c,
186
- failIfMajorPerformanceCaveat: n,
187
- precision: i,
188
- premultipliedAlpha: u,
189
- stencil: l,
190
- shadows: p = !1,
191
- shadowMapType: d = Ke,
192
- useLegacyLights: w = !1,
193
- outputColorSpace: _ = ae,
194
- toneMapping: E = ne,
195
- toneMappingExposure: g = 1,
196
- context: M = void 0,
197
- powerPreference: x = "default",
198
- preserveDrawingBuffer: y = !1,
199
- clearColor: h,
200
- windowSize: R = !1,
201
- preset: B = void 0
202
- } = ce(e), { state: P, setState: f } = O(), { width: v, height: X } = m(R) == !0 || m(R) === "" || m(R) === "true" ? ot() : rt(P.container), { logError: Ee, logWarning: _e } = k(), { pixelRatio: Q } = it(), { pause: Pe, resume: Ce } = he(), F = N(() => v.value / X.value);
203
- setTimeout(() => {
204
- var C;
205
- !m(R) && !((C = P.canvas) != null && C.value.offsetHeight) && _e(`Oops... Seems like your canvas height is currently 0px, it's posible that you couldn't watch your scene.
206
- You could set windowSize=true to force the canvas to be the size of the window.`);
207
- }, 1e3);
208
- const Z = () => {
209
- a.value && (a.value.setSize(v.value, X.value), a.value.setPixelRatio(Math.min(Q.value, 2)));
210
- }, ee = () => {
211
- if (!a.value)
212
- return;
213
- const C = m(B);
214
- if (C) {
215
- C in Y || Ee("Renderer Preset must be one of these: " + Object.keys(Y).join(", ")), be(a.value, Y[C]);
216
- return;
217
- }
218
- a.value.shadowMap.enabled = m(p), a.value.shadowMap.type = m(d), a.value.toneMapping = m(E) || ne, a.value.toneMappingExposure = m(g), a.value.outputColorSpace = m(_) || ae, h != null && h.value && a.value.setClearColor(yt(m(h))), a.value.useLegacyLights = m(w);
219
- }, Me = () => {
220
- const C = U(P.canvas);
221
- C && (a.value = new Je({
222
- canvas: C,
223
- alpha: m(t),
224
- antialias: m(o),
225
- context: m(M),
226
- depth: m(s),
227
- failIfMajorPerformanceCaveat: m(n),
228
- logarithmicDepthBuffer: m(c),
229
- powerPreference: m(x),
230
- precision: m(i),
231
- stencil: m(l),
232
- preserveDrawingBuffer: m(y),
233
- premultipliedAlpha: m(u)
234
- }), f("renderer", a.value), f("clock", new de()), f("aspectRatio", F), ee(), Z(), Ce(), r.value = !0);
235
- }, xe = () => {
236
- a.value && (a.value.dispose(), a.value = void 0, r.value = !1, Pe());
237
- };
238
- return D([F, Q], Z), D(
239
- [p, d, _, w, E, g, h],
240
- ee
241
- ), D(
242
- () => [P.canvas, P.container],
243
- () => {
244
- U(P.canvas) && U(P.container) && Me();
245
- },
246
- { immediate: !0, deep: !0 }
247
- ), {
248
- renderer: a,
249
- isReady: r,
250
- dispose: xe,
251
- aspectRatio: F
112
+ function it(e) {
113
+ return typeof e == "number" ? [e, e, e] : e instanceof Pe ? [e.x, e.y, e.z] : e;
114
+ }
115
+ function $e(e) {
116
+ return e instanceof O ? e : Array.isArray(e) ? new O(...e) : new O(e);
117
+ }
118
+ function Ie({
119
+ scene: e,
120
+ canvas: a,
121
+ options: t,
122
+ disableRender: n,
123
+ contextParts: { sizes: r, camera: i }
124
+ }) {
125
+ const l = _(() => ({
126
+ alpha: y(t.alpha),
127
+ depth: y(t.depth),
128
+ canvas: De(a),
129
+ context: y(t.context),
130
+ stencil: y(t.stencil),
131
+ antialias: y(t.antialias) === void 0 ? (
132
+ // an opinionated default of tres
133
+ !0
134
+ ) : y(t.antialias),
135
+ precision: y(t.precision),
136
+ powerPreference: y(t.powerPreference),
137
+ premultipliedAlpha: y(t.premultipliedAlpha),
138
+ preserveDrawingBuffer: y(t.preserveDrawingBuffer),
139
+ logarithmicDepthBuffer: y(t.logarithmicDepthBuffer),
140
+ failIfMajorPerformanceCaveat: y(t.failIfMajorPerformanceCaveat)
141
+ })), o = z(new V(l.value));
142
+ K(l, () => {
143
+ o.value.dispose(), o.value = new V(l.value);
144
+ }), b(() => {
145
+ o.value.setSize(r.width.value, r.height.value);
146
+ });
147
+ const { pixelRatio: s } = Ae();
148
+ b(() => {
149
+ o.value.setPixelRatio(s.value);
150
+ });
151
+ const { logError: u } = k(), f = (() => {
152
+ const p = new V(), d = {
153
+ shadowMap: {
154
+ enabled: p.shadowMap.enabled,
155
+ type: p.shadowMap.type
156
+ },
157
+ toneMapping: p.toneMapping,
158
+ toneMappingExposure: p.toneMappingExposure,
159
+ outputColorSpace: p.outputColorSpace,
160
+ useLegacyLights: p.useLegacyLights
161
+ };
162
+ return p.dispose(), d;
163
+ })();
164
+ b(() => {
165
+ const p = y(t.preset);
166
+ p && (p in h || u("Renderer Preset must be one of these: " + Object.keys(h).join(", ")), te(o.value, h[p]));
167
+ const d = (L, x) => {
168
+ const T = y(L), S = () => {
169
+ if (p)
170
+ return q(h[p], x);
171
+ };
172
+ if (T !== void 0)
173
+ return T;
174
+ const m = S();
175
+ return m !== void 0 ? m : q(f, x);
176
+ }, v = (L, x) => je(o.value, x, d(L, x));
177
+ v(t.shadows, "shadowMap.enabled"), v(t.toneMapping, "toneMapping"), v(t.shadowMapType, "shadowMap.type"), v(t.useLegacyLights, "useLegacyLights"), v(t.outputColorSpace, "outputColorSpace"), v(t.toneMappingExposure, "toneMappingExposure");
178
+ const E = d(t.clearColor, "clearColor");
179
+ E && o.value.setClearColor(
180
+ E ? $e(E) : new O(0)
181
+ // default clear color is not easily/efficiently retrievable from three
182
+ );
183
+ });
184
+ const { pause: w, resume: C, onLoop: M } = ee();
185
+ return M(() => {
186
+ i.value && !y(n) && o.value.render(e, i.value);
187
+ }), C(), j(() => {
188
+ w(), o.value.dispose(), o.value.forceContextLoss();
189
+ }), {
190
+ renderer: o
252
191
  };
253
192
  }
254
- function Pt(e) {
193
+ function Ne(e) {
255
194
  const a = { nodes: {}, materials: {} };
256
- return e && e.traverse((r) => {
257
- r.name && (a.nodes[r.name] = r), r.material && !a.materials[r.material.name] && (a.materials[r.material.name] = r.material);
195
+ return e && e.traverse((t) => {
196
+ t.name && (a.nodes[t.name] = t), t.material && !a.materials[t.material.name] && (a.materials[t.material.name] = t.material);
258
197
  }), a;
259
198
  }
260
- async function Gt(e, a, r, t, o) {
261
- const { logError: s } = k(), c = new e();
262
- o && o(c), r && r(c);
263
- const i = (Array.isArray(a) ? a : [a]).map(
264
- (u) => new Promise((l, p) => {
265
- c.load(
199
+ async function ut(e, a, t, n, r) {
200
+ const { logError: i } = k(), l = new e();
201
+ r && r(l), t && t(l);
202
+ const s = (Array.isArray(a) ? a : [a]).map(
203
+ (u) => new Promise((c, f) => {
204
+ l.load(
266
205
  u,
267
- (d) => {
268
- d.scene && Object.assign(d, Pt(d.scene)), l(d);
206
+ (w) => {
207
+ w.scene && Object.assign(w, Ne(w.scene)), c(w);
269
208
  },
270
- t,
271
- (d) => p(s("[useLoader] - Failed to load resource", d))
209
+ n,
210
+ (w) => f(i("[useLoader] - Failed to load resource", w))
272
211
  );
273
212
  })
274
213
  );
275
- return ge(a) ? await Promise.all(i) : await i[0];
214
+ return Y(a) ? await Promise.all(s) : await s[0];
276
215
  }
277
- async function Nt(e) {
278
- const a = new Xe(), r = new Qe(a), t = (o) => new Promise((s, c) => {
279
- r.load(
280
- o,
281
- (n) => s(n),
216
+ async function lt(e) {
217
+ const a = new Me(), t = new _e(a), n = (r) => new Promise((i, l) => {
218
+ t.load(
219
+ r,
220
+ (o) => i(o),
282
221
  () => null,
283
222
  () => {
284
- c(new Error("[useTextures] - Failed to load texture"));
223
+ l(new Error("[useTextures] - Failed to load texture"));
285
224
  }
286
225
  );
287
226
  });
288
- if (ge(e)) {
289
- const o = await Promise.all(e.map((s) => t(s)));
290
- return e.length > 1 ? o : o[0];
227
+ if (Y(e)) {
228
+ const r = await Promise.all(e.map((i) => n(i)));
229
+ return e.length > 1 ? r : r[0];
291
230
  } else {
292
231
  const {
293
- map: o,
294
- displacementMap: s,
295
- normalMap: c,
296
- roughnessMap: n,
297
- metalnessMap: i,
232
+ map: r,
233
+ displacementMap: i,
234
+ normalMap: l,
235
+ roughnessMap: o,
236
+ metalnessMap: s,
298
237
  aoMap: u,
299
- alphaMap: l,
300
- matcap: p
238
+ alphaMap: c,
239
+ matcap: f
301
240
  } = e;
302
241
  return {
303
- map: o ? await t(o) : null,
304
- displacementMap: s ? await t(s) : null,
305
- normalMap: c ? await t(c) : null,
306
- roughnessMap: n ? await t(n) : null,
307
- metalnessMap: i ? await t(i) : null,
308
- aoMap: u ? await t(u) : null,
309
- alphaMap: l ? await t(l) : null,
310
- matcap: p ? await t(p) : null
242
+ map: r ? await n(r) : null,
243
+ displacementMap: i ? await n(i) : null,
244
+ normalMap: l ? await n(l) : null,
245
+ roughnessMap: o ? await n(o) : null,
246
+ metalnessMap: s ? await n(s) : null,
247
+ aoMap: u ? await n(u) : null,
248
+ alphaMap: c ? await n(c) : null,
249
+ matcap: f ? await n(f) : null
311
250
  };
312
251
  }
313
252
  }
314
- const Ct = (e) => {
315
- const { state: a, setState: r } = O(), t = N(() => {
316
- var f;
317
- return (f = a.canvas) == null ? void 0 : f.value;
318
- }), { x: o, y: s } = st({ target: t }), { width: c, height: n, top: i, left: u } = ct(t), l = new Ze();
319
- r("raycaster", l);
320
- const p = ({ x: f, y: v }) => {
321
- if (t.value)
253
+ const qe = (e, { renderer: a, camera: t, raycaster: n }) => {
254
+ const r = _(() => a.value.domElement), { x: i, y: l } = ke({ target: r }), { width: o, height: s, top: u, left: c } = Se(r), f = ({ x: m, y: P }) => {
255
+ if (r.value)
322
256
  return {
323
- x: (f - u.value) / c.value * 2 - 1,
324
- y: -((v - i.value) / n.value) * 2 + 1
257
+ x: (m - c.value) / o.value * 2 - 1,
258
+ y: -((P - u.value) / s.value) * 2 + 1
325
259
  };
326
- }, d = ({ x: f, y: v }) => {
327
- if (a.camera)
328
- return l.setFromCamera(new et(f, v), a.camera), l.intersectObjects(e.value, !1);
329
- }, w = (f) => {
330
- const v = p({
331
- x: (f == null ? void 0 : f.clientX) ?? o.value,
332
- y: (f == null ? void 0 : f.clientY) ?? s.value
260
+ }, w = ({ x: m, y: P }) => {
261
+ if (t.value)
262
+ return n.value.setFromCamera(new Ee(m, P), t.value), n.value.intersectObjects(e.value, !1);
263
+ }, C = (m) => {
264
+ const P = f({
265
+ x: (m == null ? void 0 : m.clientX) ?? i.value,
266
+ y: (m == null ? void 0 : m.clientY) ?? l.value
333
267
  });
334
- return v ? d(v) || [] : [];
335
- }, _ = N(() => w()), E = A(), g = A(), M = (f, v) => {
336
- f.trigger({ event: v, intersects: w(v) });
337
- }, x = (f) => {
338
- M(g, f);
268
+ return P ? w(P) || [] : [];
269
+ }, M = _(() => C()), p = A(), d = A(), v = (m, P) => {
270
+ m.trigger({ event: P, intersects: C(P) });
271
+ }, E = (m) => {
272
+ v(d, m);
339
273
  };
340
- let y;
341
- const h = (f) => {
342
- var v;
343
- y = (v = w(f)[0]) == null ? void 0 : v.object;
344
- }, R = (f) => {
345
- var v;
346
- f instanceof PointerEvent && y === ((v = w(f)[0]) == null ? void 0 : v.object) && M(E, f);
347
- }, B = (f) => g.trigger({ event: f, intersects: [] }), P = ue(() => {
348
- t != null && t.value && (t.value.addEventListener("pointerup", R), t.value.addEventListener("pointerdown", h), t.value.addEventListener("pointermove", x), t.value.addEventListener("pointerleave", B), P());
349
- });
350
- return fe(() => {
351
- t != null && t.value && (t.value.removeEventListener("pointerup", R), t.value.removeEventListener("pointerdown", h), t.value.removeEventListener("pointermove", x), t.value.removeEventListener("pointerleave", B));
274
+ let L;
275
+ const x = (m) => {
276
+ var P;
277
+ L = (P = C(m)[0]) == null ? void 0 : P.object;
278
+ }, T = (m) => {
279
+ var P;
280
+ m instanceof PointerEvent && L === ((P = C(m)[0]) == null ? void 0 : P.object) && v(p, m);
281
+ }, S = (m) => d.trigger({ event: m, intersects: [] });
282
+ return r.value.addEventListener("pointerup", T), r.value.addEventListener("pointerdown", x), r.value.addEventListener("pointermove", E), r.value.addEventListener("pointerleave", S), j(() => {
283
+ r != null && r.value && (r.value.removeEventListener("pointerup", T), r.value.removeEventListener("pointerdown", x), r.value.removeEventListener("pointermove", E), r.value.removeEventListener("pointerleave", S));
352
284
  }), {
353
- intersects: _,
354
- onClick: (f) => E.on(f).off,
355
- onPointerMove: (f) => g.on(f).off
285
+ intersects: M,
286
+ onClick: (m) => p.on(m).off,
287
+ onPointerMove: (m) => d.on(m).off
356
288
  };
357
289
  };
358
- function Ft() {
290
+ function ct() {
359
291
  const { logWarning: e } = k();
360
- function a(t, o, s) {
361
- let c = null;
362
- return t.traverse((n) => {
363
- n[o] === s && (c = n);
364
- }), c || e(`Child with ${o} '${s}' not found.`), c;
292
+ function a(n, r, i) {
293
+ let l = null;
294
+ return n.traverse((o) => {
295
+ o[r] === i && (l = o);
296
+ }), l || e(`Child with ${r} '${i}' not found.`), l;
365
297
  }
366
- function r(t, o) {
367
- return a(t, "name", o);
298
+ function t(n, r) {
299
+ return a(n, "name", r);
368
300
  }
369
301
  return {
370
302
  seek: a,
371
- seekByName: r
303
+ seekByName: t
372
304
  };
373
305
  }
374
- const Mt = () => {
375
- const e = Ae({
306
+ const Ue = ({ scene: e, contextParts: a }) => {
307
+ const t = re({
376
308
  click: /* @__PURE__ */ new Map(),
377
309
  pointerMove: /* @__PURE__ */ new Map(),
378
310
  pointerEnter: /* @__PURE__ */ new Map(),
379
311
  pointerLeave: /* @__PURE__ */ new Map()
380
- }), a = (n) => {
381
- Object.values(e).forEach((i) => i.delete(n));
382
- }, r = (n) => {
383
- const { onClick: i, onPointerMove: u, onPointerEnter: l, onPointerLeave: p } = n;
384
- i && e.click.set(n, i), u && e.pointerMove.set(n, u), l && e.pointerEnter.set(n, l), p && e.pointerLeave.set(n, p), n.addEventListener("removed", () => {
385
- n.traverse((d) => {
386
- a(d);
387
- }), a(n);
388
- });
389
- }, t = N(
390
- () => Et(
391
- Object.values(e).map((n) => Array.from(n.keys())).flat(),
392
- ({ uuid: n }) => n
312
+ }), n = (u) => {
313
+ Object.values(t).forEach((c) => c.delete(u));
314
+ }, r = (u) => {
315
+ const { onClick: c, onPointerMove: f, onPointerEnter: w, onPointerLeave: C } = u;
316
+ c && t.click.set(u, c), f && t.pointerMove.set(u, f), w && t.pointerEnter.set(u, w), C && t.pointerLeave.set(u, C);
317
+ };
318
+ e.userData.tres__registerAtPointerEventHandler = r, e.userData.tres__deregisterAtPointerEventHandler = n;
319
+ const i = _(
320
+ () => We(
321
+ Object.values(t).map((u) => Array.from(u.keys())).flat(),
322
+ ({ uuid: u }) => u
393
323
  )
394
- ), { onClick: o, onPointerMove: s } = Ct(t);
395
- o(({ intersects: n, event: i }) => {
396
- var u;
397
- n.length && ((u = e.click.get(n[0].object)) == null || u(n[0], i));
324
+ ), { onClick: l, onPointerMove: o } = qe(i, a);
325
+ l(({ intersects: u, event: c }) => {
326
+ var f;
327
+ u.length && ((f = t.click.get(u[0].object)) == null || f(u[0], c));
398
328
  });
399
- let c;
400
- return s(({ intersects: n, event: i }) => {
401
- var w, _, E, g;
402
- const u = (w = n == null ? void 0 : n[0]) == null ? void 0 : w.object, { pointerLeave: l, pointerEnter: p, pointerMove: d } = e;
403
- c && c !== u && ((_ = l.get(c)) == null || _(c, i)), u && (c !== u && ((E = p.get(u)) == null || E(n[0], i)), (g = d.get(u)) == null || g(n[0], i)), c = u || null;
329
+ let s;
330
+ return o(({ intersects: u, event: c }) => {
331
+ var p, d, v, E;
332
+ const f = (p = u == null ? void 0 : u[0]) == null ? void 0 : p.object, { pointerLeave: w, pointerEnter: C, pointerMove: M } = t;
333
+ s && s !== f && ((d = w.get(s)) == null || d(s, c)), f && (s !== f && ((v = C.get(f)) == null || v(u[0], c)), (E = M.get(f)) == null || E(u[0], c)), s = f || null;
404
334
  }), {
405
335
  registerObject: r,
406
- deregisterObject: a
336
+ deregisterObject: n
407
337
  };
408
- }, z = {
409
- GEOMETRY_VIA_PROP: "tres__geometryViaProp",
410
- MATERIAL_VIA_PROP: "tres__materialViaProp",
411
- REGISTER_AT_POINTER_EVENT_HANDLER: "tres__registerAtPointerEventHandler"
412
338
  };
413
- let q = null, L = null;
414
- const { logError: ie } = k(), xt = {
415
- createElement(e, a, r, t) {
416
- var i, u;
417
- if (t || (t = {}), t.args || (t.args = []), e === "template" || ht(e))
339
+ function Je({
340
+ scene: e,
341
+ canvas: a,
342
+ windowSize: t,
343
+ disableRender: n,
344
+ rendererOptions: r
345
+ }) {
346
+ const i = _(
347
+ () => y(t) ? he() : Be(y(a).parentElement)
348
+ ), l = _(() => i.value.width.value), o = _(() => i.value.height.value), s = _(() => l.value / o.value), u = {
349
+ height: o,
350
+ width: l,
351
+ aspectRatio: s
352
+ }, c = z(e), {
353
+ camera: f,
354
+ cameras: w,
355
+ addCamera: C,
356
+ removeCamera: M,
357
+ setCameraActive: p
358
+ } = Oe({ sizes: u, scene: e }), { renderer: d } = Ie(
359
+ {
360
+ scene: e,
361
+ canvas: a,
362
+ options: r,
363
+ contextParts: { sizes: u, camera: f },
364
+ disableRender: n
365
+ }
366
+ ), v = {
367
+ sizes: u,
368
+ scene: c,
369
+ camera: f,
370
+ cameras: ne(w),
371
+ renderer: d,
372
+ raycaster: z(new xe()),
373
+ controls: H(null),
374
+ extend: $,
375
+ addCamera: C,
376
+ removeCamera: M,
377
+ setCameraActive: p
378
+ };
379
+ return ae("useTres", v), v;
380
+ }
381
+ function Ke() {
382
+ const e = oe("useTres");
383
+ if (!e)
384
+ throw new Error("useTresContext must be used together with useTresContextProvider");
385
+ return e;
386
+ }
387
+ const ft = Ke;
388
+ let G = null, g = null;
389
+ const { logError: J } = k(), Xe = {
390
+ createElement(e, a, t, n) {
391
+ var l, o;
392
+ if (n || (n = {}), n.args || (n.args = []), e === "template" || Ve(e))
418
393
  return null;
419
- let o = e.replace("Tres", ""), s;
394
+ let r = e.replace("Tres", ""), i;
420
395
  if (e === "primitive") {
421
- (t == null ? void 0 : t.object) === void 0 && ie("Tres primitives need a prop 'object'");
422
- const l = t.object;
423
- o = l.type, s = Object.assign(l, { type: o, attach: t.attach, primitive: !0 });
396
+ (n == null ? void 0 : n.object) === void 0 && J("Tres primitives need a prop 'object'");
397
+ const s = n.object;
398
+ r = s.type, i = Object.assign(s, { type: r, attach: n.attach, primitive: !0 });
424
399
  } else {
425
- const l = me.value[o];
426
- l || ie(`${o} is not defined on the THREE namespace. Use extend to add it to the catalog.`), s = new l(...t.args);
400
+ const s = X.value[r];
401
+ s || J(`${r} is not defined on the THREE namespace. Use extend to add it to the catalog.`), i = new s(...n.args);
427
402
  }
428
- s.isCamera && (t != null && t.position || s.position.set(3, 3, 3), t != null && t.lookAt || s.lookAt(0, 0, 0)), (t == null ? void 0 : t.attach) === void 0 && (s.isMaterial ? s.attach = "material" : s.isBufferGeometry && (s.attach = "geometry"));
429
- const { GEOMETRY_VIA_PROP: c, MATERIAL_VIA_PROP: n } = z;
430
- return s.isObject3D && ((i = t == null ? void 0 : t.material) != null && i.isMaterial && (s.userData[n] = !0), (u = t == null ? void 0 : t.geometry) != null && u.isBufferGeometry && (s.userData[c] = !0)), s;
403
+ return i.isCamera && (n != null && n.position || i.position.set(3, 3, 3), n != null && n.lookAt || i.lookAt(0, 0, 0)), (n == null ? void 0 : n.attach) === void 0 && (i.isMaterial ? i.attach = "material" : i.isBufferGeometry && (i.attach = "geometry")), i.isObject3D && ((l = n == null ? void 0 : n.material) != null && l.isMaterial && (i.userData.tres__materialViaProp = !0), (o = n == null ? void 0 : n.geometry) != null && o.isBufferGeometry && (i.userData.tres__geometryViaProp = !0)), i;
431
404
  },
432
405
  insert(e, a) {
433
- var r, t, o, s, c, n, i;
434
- if (a && a.isScene && (L = a), (((r = e == null ? void 0 : e.__vnode) == null ? void 0 : r.type) === "TresGroup" || ((t = e == null ? void 0 : e.__vnode) == null ? void 0 : t.type) === "TresObject3D") && a === null && !((s = (o = e == null ? void 0 : e.__vnode) == null ? void 0 : o.ctx) != null && s.asyncResolved)) {
435
- q = e;
406
+ var t, n, r, i, l, o, s, u, c;
407
+ if (a && a.isScene && (g = a), (((t = e == null ? void 0 : e.__vnode) == null ? void 0 : t.type) === "TresGroup" || ((n = e == null ? void 0 : e.__vnode) == null ? void 0 : n.type) === "TresObject3D") && a === null && !((i = (r = e == null ? void 0 : e.__vnode) == null ? void 0 : r.ctx) != null && i.asyncResolved)) {
408
+ G = e;
436
409
  return;
437
410
  } else
438
- (c = e == null ? void 0 : e.__vnode) != null && c.type.includes("Controls") && a === null && (q = L);
439
- a || (a = q), e != null && e.isObject3D && (a != null && a.isObject3D) ? (a.add(e), e.dispatchEvent({ type: "added" }), (i = (n = L == null ? void 0 : L.userData) == null ? void 0 : n[z.REGISTER_AT_POINTER_EVENT_HANDLER]) == null || i.call(n, e)) : e != null && e.isFog ? a.fog = e : typeof (e == null ? void 0 : e.attach) == "string" && (e.__previousAttach = e[a == null ? void 0 : a.attach], a && (a[e.attach] = e));
411
+ (l = e == null ? void 0 : e.__vnode) != null && l.type.includes("Controls") && a === null && (G = g);
412
+ if (a || (a = G), e != null && e.isObject3D) {
413
+ if (e != null && e.isCamera) {
414
+ if (!(g != null && g.userData.tres__registerCamera))
415
+ throw "could not find tres__registerCamera on scene's userData";
416
+ (s = g == null ? void 0 : (o = g.userData).tres__registerCamera) == null || s.call(o, e);
417
+ }
418
+ if (e != null && e.onClick || e != null && e.onPointerMove || e != null && e.onPointerEnter || e != null && e.onPointerLeave) {
419
+ if (!(g != null && g.userData.tres__registerAtPointerEventHandler))
420
+ throw "could not find tres__registerAtPointerEventHandler on scene's userData";
421
+ (c = g == null ? void 0 : (u = g.userData).tres__registerAtPointerEventHandler) == null || c.call(u, e);
422
+ }
423
+ }
424
+ e != null && e.isObject3D && (a != null && a.isObject3D) ? (a.add(e), e.dispatchEvent({ type: "added" })) : e != null && e.isFog ? a.fog = e : typeof (e == null ? void 0 : e.attach) == "string" && (e.__previousAttach = e[a == null ? void 0 : a.attach], a && (a[e.attach] = e));
440
425
  },
441
426
  remove(e) {
442
- var a, r;
427
+ var a, t;
443
428
  if (e) {
444
429
  if (e.isObject3D) {
445
- const t = e, o = (s) => {
446
- var i, u;
447
- const { GEOMETRY_VIA_PROP: c, MATERIAL_VIA_PROP: n } = z;
448
- s.userData[n] || (i = s.material) == null || i.dispose(), s.userData[c] || (u = s.geometry) == null || u.dispose();
430
+ const n = e, r = (s) => {
431
+ var c, f;
432
+ const u = s;
433
+ s.userData.tres__materialViaProp || (c = u.material) == null || c.dispose(), s.userData.tres__geometryViaProp || (f = u.geometry) == null || f.dispose();
434
+ }, i = g == null ? void 0 : g.userData.tres__deregisterAtPointerEventHandler, l = (s) => {
435
+ if (!i)
436
+ throw "could not find tres__deregisterAtPointerEventHandler on scene's userData";
437
+ (s != null && s.onClick || s != null && s.onPointerMove || s != null && s.onPointerEnter || s != null && s.onPointerLeave) && (i == null || i(s));
438
+ }, o = (s) => {
439
+ const u = g == null ? void 0 : g.userData.tres__deregisterCamera;
440
+ if (!u)
441
+ throw "could not find tres__deregisterCamera on scene's userData";
442
+ s.isCamera && (u == null || u(s));
449
443
  };
450
- t.traverse((s) => {
451
- o(s);
452
- }), o(t);
444
+ n.traverse((s) => {
445
+ r(s), o(s), l == null || l(s);
446
+ }), r(n), o(n), l == null || l(n);
453
447
  }
454
- (a = e.removeFromParent) == null || a.call(e), (r = e.dispose) == null || r.call(e);
448
+ (a = e.removeFromParent) == null || a.call(e), (t = e.dispose) == null || t.call(e);
455
449
  }
456
450
  },
457
- patchProp(e, a, r, t) {
451
+ patchProp(e, a, t, n) {
458
452
  if (e) {
459
- let o = e, s = a, c = j(s), n = o == null ? void 0 : o[c];
460
- if (o.type === "BufferGeometry") {
461
- if (s === "args")
453
+ let r = e, i = a, l = B(i), o = r == null ? void 0 : r[l];
454
+ if (r.type === "BufferGeometry") {
455
+ if (i === "args")
462
456
  return;
463
- o.setAttribute(
464
- j(s),
465
- new tt(...t)
457
+ r.setAttribute(
458
+ B(i),
459
+ new Le(...n)
466
460
  );
467
461
  return;
468
462
  }
469
- if (s.includes("-") && n === void 0) {
470
- const u = s.split("-");
471
- n = u.reduce((l, p) => l[j(p)], o), s = u.pop(), c = s.toLowerCase(), n != null && n.set || (o = u.reduce((l, p) => l[j(p)], o));
463
+ if (i.includes("-") && o === void 0) {
464
+ const u = i.split("-");
465
+ o = u.reduce((c, f) => c[B(f)], r), i = u.pop(), l = i.toLowerCase(), o != null && o.set || (r = u.reduce((c, f) => c[B(f)], r));
472
466
  }
473
- let i = t;
474
- if (i === "" && (i = !0), oe(n)) {
475
- Array.isArray(i) ? e[c](...i) : e[c](i);
467
+ let s = n;
468
+ if (s === "" && (s = !0), N(o)) {
469
+ Array.isArray(s) ? e[l](...s) : e[l](s);
476
470
  return;
477
471
  }
478
- !(n != null && n.set) && !oe(n) ? o[c] = i : n.constructor === i.constructor && (n != null && n.copy) ? n == null || n.copy(i) : Array.isArray(i) ? n.set(...i) : !n.isColor && n.setScalar ? n.setScalar(i) : n.set(i);
472
+ !(o != null && o.set) && !N(o) ? r[l] = s : o.constructor === s.constructor && (o != null && o.copy) ? o == null || o.copy(s) : Array.isArray(s) ? o.set(...s) : !o.isColor && o.setScalar ? o.setScalar(s) : o.set(s);
479
473
  }
480
474
  },
481
475
  parentNode(e) {
@@ -490,156 +484,127 @@ const { logError: ie } = k(), xt = {
490
484
  setScopeId: () => void 0,
491
485
  cloneNode: () => void 0,
492
486
  insertStaticContent: () => void 0
493
- }, { createApp: Rt } = Oe(xt), Tt = (e) => {
494
- const a = Rt(r);
495
- function r() {
487
+ }, { createApp: Ye } = se(Xe), Qe = (e) => {
488
+ const a = Ye(t);
489
+ function t() {
496
490
  return e && e.default ? e.default() : [];
497
491
  }
498
492
  return a;
499
493
  };
500
- ve(Fe);
501
- const Lt = ["data-scene"], St = { style: { width: "100%", height: "100%" } }, At = ["data-scene"], Ot = /* @__PURE__ */ le({
502
- __name: "TresScene",
494
+ $(pe);
495
+ const Ze = ["data-scene"], et = /* @__PURE__ */ ie({
496
+ __name: "TresCanvas",
503
497
  props: {
504
498
  shadows: { type: Boolean },
499
+ clearColor: {},
500
+ toneMapping: {},
505
501
  shadowMapType: {},
506
- physicallyCorrectLights: { type: Boolean, default: !1 },
507
502
  useLegacyLights: { type: Boolean },
508
503
  outputColorSpace: {},
509
- toneMapping: {},
510
504
  toneMappingExposure: {},
511
- context: {},
512
- powerPreference: {},
513
- preserveDrawingBuffer: { type: Boolean },
514
- clearColor: {},
515
505
  windowSize: { type: Boolean },
516
506
  preset: {},
517
507
  disableRender: { type: Boolean },
518
- camera: {}
519
- },
520
- setup(e, { expose: a }) {
521
- const r = e, { logWarning: t } = k();
522
- r.physicallyCorrectLights === !0 && t("physicallyCorrectLights is deprecated, useLegacyLights is now false by default");
523
- const o = G(), s = G(), c = new at(), n = Mt(), { setState: i } = O();
524
- c.userData[z.REGISTER_AT_POINTER_EVENT_HANDLER] = n.registerObject, i("scene", c), i("canvas", s), i("container", o), i("pointerEventHandler", n), i("appContext", ke());
525
- const { onLoop: u, resume: l } = he(), { activeCamera: p, pushCamera: d, clearCameras: w } = dt();
526
- Be(() => {
527
- E();
528
- }), fe(() => {
529
- i("renderer", null);
530
- });
531
- function _() {
532
- const y = c.getObjectByProperty("isCamera", !0);
533
- if (y)
534
- d(y);
535
- else {
536
- t("No camera found. Creating a default perspective camera. To have full control over a camera, please add one to the scene.");
537
- const h = new I(45, window.innerWidth / window.innerHeight, 0.1, 1e3);
538
- h.position.set(3, 3, 3), h.lookAt(0, 0, 0), d(h);
539
- }
540
- }
541
- function E() {
542
- const { renderer: y } = _t(r);
543
- r.camera && d(r.camera), u(() => {
544
- var h;
545
- p.value && r.disableRender !== !0 && ((h = y.value) == null || h.render(c, p.value));
546
- });
547
- }
548
- let g;
549
- const M = je();
550
- function x() {
551
- g = Tt(M);
552
- const y = O();
553
- g.provide("useTres", y), g.provide(K, y), g.provide("extend", ve), g.mount(c), _();
554
- }
555
- return x(), a({
556
- scene: c
557
- }), D(
558
- () => r.camera,
559
- (y) => {
560
- y && (w(), d(y));
561
- }
562
- ), (y, h) => (pe(), De("div", {
563
- ref_key: "container",
564
- ref: o,
565
- key: W(c).uuid,
566
- "data-scene": W(c).uuid,
567
- style: { position: "relative", width: "100%", height: "100%", pointerEvents: "auto", touchAction: "none" }
568
- }, [
569
- te("div", St, [
570
- te("canvas", {
571
- ref_key: "canvas",
572
- ref: s,
573
- "data-scene": W(c).uuid,
574
- style: Ie({ display: "block", width: "100%", height: "100%", position: y.windowSize ? "fixed" : "absolute", top: 0, left: 0 })
575
- }, null, 12, At)
576
- ])
577
- ], 8, Lt));
578
- }
579
- }), kt = /* @__PURE__ */ le({
580
- __name: "TresCanvas",
581
- props: {
582
- shadows: { type: Boolean },
583
- shadowMapType: {},
584
- physicallyCorrectLights: { type: Boolean },
585
- useLegacyLights: { type: Boolean },
586
- outputColorSpace: {},
587
- toneMapping: {},
588
- toneMappingExposure: {},
508
+ camera: {},
589
509
  context: {},
510
+ precision: {},
511
+ alpha: { type: Boolean, default: !1 },
512
+ premultipliedAlpha: { type: Boolean },
513
+ antialias: { type: Boolean, default: !0 },
514
+ stencil: { type: Boolean, default: !0 },
515
+ preserveDrawingBuffer: { type: Boolean, default: !1 },
590
516
  powerPreference: {},
591
- preserveDrawingBuffer: { type: Boolean },
592
- clearColor: {},
593
- windowSize: { type: Boolean },
594
- preset: {},
595
- disableRender: { type: Boolean },
596
- camera: {}
517
+ depth: { type: Boolean, default: !0 },
518
+ logarithmicDepthBuffer: { type: Boolean },
519
+ failIfMajorPerformanceCaveat: { type: Boolean }
597
520
  },
598
- setup(e, { expose: a }) {
599
- const r = e, t = ft();
600
- return a(t), (o, s) => (pe(), He(Ot, Ve(ze(r)), {
601
- default: Ge(() => [
602
- Ne(o.$slots, "default")
603
- ]),
604
- _: 3
605
- }, 16));
521
+ setup(e) {
522
+ const a = e, { logWarning: t } = k(), n = H(), r = z(new Te());
523
+ ee();
524
+ const i = ue();
525
+ let l;
526
+ const o = (u) => {
527
+ l = Qe(i), l.provide("useTres", u), l.provide("extend", $), l.mount(r.value);
528
+ }, s = _(() => a.disableRender);
529
+ return le(() => {
530
+ const u = n, c = Je({
531
+ scene: r.value,
532
+ canvas: u,
533
+ windowSize: a.windowSize,
534
+ disableRender: s,
535
+ rendererOptions: a
536
+ });
537
+ Ue({ scene: r.value, contextParts: c });
538
+ const { addCamera: f, camera: w, cameras: C, removeCamera: M } = c;
539
+ o(c);
540
+ const p = () => {
541
+ const d = new W(45, window.innerWidth / window.innerHeight, 0.1, 1e3);
542
+ d.position.set(3, 3, 3), d.lookAt(0, 0, 0), f(d);
543
+ const v = b(
544
+ () => {
545
+ C.value.length >= 2 && (d.removeFromParent(), M(d), v == null || v());
546
+ }
547
+ );
548
+ };
549
+ K(() => a.camera, (d, v) => {
550
+ d ? f(d) : v && (v.removeFromParent(), M(v));
551
+ }, {
552
+ immediate: !0
553
+ }), w.value || (t(
554
+ "No camera found. Creating a default perspective camera. To have full control over a camera, please add one to the scene."
555
+ ), p());
556
+ }), (u, c) => (ce(), fe("canvas", {
557
+ ref_key: "canvas",
558
+ ref: n,
559
+ "data-scene": r.value.uuid,
560
+ style: me({
561
+ display: "block",
562
+ width: "100%",
563
+ height: "100%",
564
+ position: u.windowSize ? "fixed" : "relative",
565
+ top: 0,
566
+ left: 0,
567
+ pointerEvents: "auto",
568
+ touchAction: "none",
569
+ zIndex: 1
570
+ })
571
+ }, null, 12, Ze));
606
572
  }
607
- }), Bt = [
573
+ }), tt = [
608
574
  "TresCanvas",
609
575
  "TresLeches",
610
576
  "TresScene"
611
- ], jt = {
577
+ ], rt = {
612
578
  template: {
613
579
  compilerOptions: {
614
- isCustomElement: (e) => e.startsWith("Tres") && !Bt.includes(e) || e === "primitive"
580
+ isCustomElement: (e) => e.startsWith("Tres") && !tt.includes(e) || e === "primitive"
615
581
  }
616
582
  }
617
- }, Wt = jt, $t = {
583
+ }, mt = rt, pt = {
618
584
  install(e) {
619
- e.component("TresCanvas", kt);
585
+ e.component("TresCanvas", et);
620
586
  }
621
587
  };
622
588
  export {
623
- lt as CameraType,
624
- K as TRES_CONTEXT_KEY,
625
- kt as TresCanvas,
626
- me as catalogue,
627
- $t as default,
628
- ve as extend,
629
- zt as isProd,
630
- yt as normalizeColor,
631
- Vt as normalizeVectorFlexibleParam,
632
- Wt as templateCompilerOptions,
633
- Pt as trasverseObjects,
634
- dt as useCamera,
635
- Gt as useLoader,
589
+ et as TresCanvas,
590
+ X as catalogue,
591
+ pt as default,
592
+ $ as extend,
593
+ st as isProd,
594
+ $e as normalizeColor,
595
+ it as normalizeVectorFlexibleParam,
596
+ mt as templateCompilerOptions,
597
+ Ne as trasverseObjects,
598
+ Oe as useCamera,
599
+ ut as useLoader,
636
600
  k as useLogger,
637
- Mt as usePointerEventHandler,
638
- Ct as useRaycaster,
639
- he as useRenderLoop,
640
- _t as useRenderer,
641
- Ft as useSeek,
642
- Nt as useTexture,
643
- O as useTres,
644
- ft as useTresProvider
601
+ Ue as usePointerEventHandler,
602
+ qe as useRaycaster,
603
+ ee as useRenderLoop,
604
+ Ie as useRenderer,
605
+ ct as useSeek,
606
+ lt as useTexture,
607
+ ft as useTres,
608
+ Ke as useTresContext,
609
+ Je as useTresContextProvider
645
610
  };