@tresjs/core 2.4.0-next.2 → 2.4.0-next.4

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