@tresjs/core 4.1.0-next.0 → 4.2.0
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/README.md +5 -1
- package/dist/src/components/TresCanvas.vue.d.ts +11 -6
- package/dist/src/composables/index.d.ts +1 -1
- package/dist/src/composables/useCamera/index.d.ts +654 -617
- package/dist/src/composables/useRaycaster/index.d.ts +5 -5
- package/dist/src/composables/useRenderer/index.d.ts +5 -0
- package/dist/src/composables/useTresContextProvider/index.d.ts +3 -4
- package/dist/src/composables/useTresEventManager/index.d.ts +9 -5
- package/dist/src/composables/useTresReady/createReadyEventHook/index.d.ts +5 -0
- package/dist/src/composables/useTresReady/index.d.ts +8 -0
- package/dist/src/core/loop.d.ts +1 -0
- package/dist/src/core/nodeOps.d.ts +2 -2
- package/dist/src/types/index.d.ts +21 -13
- package/dist/src/utils/index.d.ts +26 -1
- package/dist/src/utils/is.d.ts +18 -0
- package/dist/src/utils/primitive/createRetargetingProxy.d.ts +1 -0
- package/dist/tres.js +1157 -944
- package/dist/tres.umd.cjs +2 -2
- package/package.json +21 -20
- package/dist/src/composables/usePointerEventHandler/index.d.ts +0 -19
package/dist/tres.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/core
|
|
3
|
-
* version: v4.
|
|
3
|
+
* version: v4.2.0
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* description: Declarative ThreeJS using Vue Components
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
import { ref as
|
|
12
|
-
import * as
|
|
13
|
-
import { PerspectiveCamera as
|
|
14
|
-
import { createEventHook as
|
|
15
|
-
const
|
|
8
|
+
var bt = Object.defineProperty;
|
|
9
|
+
var Pt = (e, t, n) => t in e ? bt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
10
|
+
var me = (e, t, n) => Pt(e, typeof t != "symbol" ? t + "" : t, n);
|
|
11
|
+
import { ref as I, computed as Y, watchEffect as Te, onUnmounted as Q, shallowRef as H, watch as le, readonly as ye, unref as K, provide as _e, inject as Mt, isRef as Ct, reactive as Et, defineComponent as Be, useSlots as Tt, getCurrentInstance as Ie, onMounted as St, openBlock as At, createElementBlock as kt, normalizeClass as xt, normalizeStyle as Lt, createRenderer as Rt, h as He, Fragment as Ot } from "vue";
|
|
12
|
+
import * as et from "three";
|
|
13
|
+
import { PerspectiveCamera as we, Camera as Dt, Clock as tt, Vector3 as Se, Color as ce, Scene as nt, MathUtils as rt, MeshBasicMaterial as ot, DoubleSide as jt, REVISION as Bt, SRGBColorSpace as It, ACESFilmicToneMapping as st, PCFSoftShadowMap as Ht, NoToneMapping as $t, WebGLRenderer as he, TextureLoader as Ut, Vector2 as ge, Raycaster as Ft, BufferAttribute as Wt, Object3D as Nt, Line as zt, BufferGeometry as $e, Float32BufferAttribute as Ue, LineBasicMaterial as Gt, Mesh as Vt, BackSide as Yt, DirectionalLightHelper as qt, PointLightHelper as Jt, SpotLightHelper as Kt, HemisphereLightHelper as Qt, ArrowHelper as Xt } from "three";
|
|
14
|
+
import { createEventHook as j, useRafFn as it, toValue as k, unrefElement as Zt, useDevicePixelRatio as en, usePointer as tn, useElementBounding as nn, useWindowSize as rn, useElementSize as on, refDebounced as Fe, tryOnScopeDispose as sn, useFps as an, useMemory as ln } from "@vueuse/core";
|
|
15
|
+
const cn = "@tresjs/core", un = "module", fn = "4.2.0", dn = "pnpm@9.1.4", pn = "Declarative ThreeJS using Vue Components", mn = "Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)", hn = "MIT", gn = [
|
|
16
16
|
"vue",
|
|
17
17
|
"3d",
|
|
18
18
|
"threejs",
|
|
19
19
|
"three",
|
|
20
20
|
"threejs-vue"
|
|
21
|
-
],
|
|
21
|
+
], vn = !1, yn = {
|
|
22
22
|
".": {
|
|
23
23
|
types: "./dist/index.d.ts",
|
|
24
24
|
import: "./dist/tres.js",
|
|
@@ -37,12 +37,12 @@ const qt = "@tresjs/core", Yt = "module", Jt = "4.1.0-next.0", Qt = "pnpm@9.1.4"
|
|
|
37
37
|
types: "./dist/src/utils/index.d.ts"
|
|
38
38
|
},
|
|
39
39
|
"./*": "./*"
|
|
40
|
-
},
|
|
40
|
+
}, _n = "./dist/tres.js", wn = "./dist/tres.js", bn = "./dist/index.d.ts", Pn = [
|
|
41
41
|
"*.d.ts",
|
|
42
42
|
"dist"
|
|
43
|
-
],
|
|
43
|
+
], Mn = {
|
|
44
44
|
access: "public"
|
|
45
|
-
},
|
|
45
|
+
}, Cn = {
|
|
46
46
|
dev: "cd playground && npm run dev",
|
|
47
47
|
build: "vite build",
|
|
48
48
|
playground: "cd playground && npm run dev",
|
|
@@ -59,28 +59,28 @@ const qt = "@tresjs/core", Yt = "module", Jt = "4.1.0-next.0", Qt = "pnpm@9.1.4"
|
|
|
59
59
|
"docs:preview": "vitepress preview docs",
|
|
60
60
|
"docs:contributors": "esno scripts/update-contributors.ts",
|
|
61
61
|
prepare: "node .husky/install.mjs"
|
|
62
|
-
},
|
|
62
|
+
}, En = {
|
|
63
63
|
three: ">=0.133",
|
|
64
64
|
vue: ">=3.4"
|
|
65
|
-
},
|
|
65
|
+
}, Tn = {
|
|
66
66
|
"@alvarosabu/utils": "^3.2.0",
|
|
67
|
-
"@vue/devtools-api": "^6.6.
|
|
68
|
-
"@vueuse/core": "^10.
|
|
69
|
-
},
|
|
67
|
+
"@vue/devtools-api": "^6.6.3",
|
|
68
|
+
"@vueuse/core": "^10.11.0"
|
|
69
|
+
}, Sn = {
|
|
70
70
|
"@release-it/conventional-changelog": "^8.0.1",
|
|
71
|
-
"@stackblitz/sdk": "^1.
|
|
71
|
+
"@stackblitz/sdk": "^1.11.0",
|
|
72
72
|
"@tresjs/cientos": "3.9.0",
|
|
73
73
|
"@tresjs/eslint-config": "^1.1.0",
|
|
74
|
-
"@types/three": "^0.
|
|
75
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
76
|
-
"@typescript-eslint/parser": "^7.
|
|
74
|
+
"@types/three": "^0.166.0",
|
|
75
|
+
"@typescript-eslint/eslint-plugin": "^7.16.0",
|
|
76
|
+
"@typescript-eslint/parser": "^7.16.0",
|
|
77
77
|
"@vitejs/plugin-vue": "^5.0.5",
|
|
78
78
|
"@vitest/coverage-c8": "^0.33.0",
|
|
79
|
-
"@vitest/coverage-v8": "^
|
|
80
|
-
"@vitest/ui": "^
|
|
79
|
+
"@vitest/coverage-v8": "^2.0.2",
|
|
80
|
+
"@vitest/ui": "^2.0.2",
|
|
81
81
|
"@vue/test-utils": "^2.4.6",
|
|
82
|
-
eslint: "^9.
|
|
83
|
-
"eslint-plugin-vue": "^9.
|
|
82
|
+
eslint: "^9.6.0",
|
|
83
|
+
"eslint-plugin-vue": "^9.27.0",
|
|
84
84
|
esno: "^4.7.0",
|
|
85
85
|
gsap: "^3.12.5",
|
|
86
86
|
husky: "^9.0.11",
|
|
@@ -88,299 +88,447 @@ const qt = "@tresjs/core", Yt = "module", Jt = "4.1.0-next.0", Qt = "pnpm@9.1.4"
|
|
|
88
88
|
kolorist: "^1.8.0",
|
|
89
89
|
ohmyfetch: "^0.4.21",
|
|
90
90
|
pathe: "^1.1.2",
|
|
91
|
-
"release-it": "^17.
|
|
91
|
+
"release-it": "^17.5.0",
|
|
92
92
|
"rollup-plugin-analyzer": "^4.0.0",
|
|
93
93
|
"rollup-plugin-copy": "^3.5.0",
|
|
94
94
|
"rollup-plugin-visualizer": "^5.12.0",
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
sponsorkit: "^0.14.6",
|
|
96
|
+
three: "^0.166.1",
|
|
97
|
+
unocss: "^0.61.3",
|
|
98
|
+
unplugin: "^1.11.0",
|
|
99
|
+
"unplugin-vue-components": "^0.27.2",
|
|
100
|
+
vite: "^5.3.3",
|
|
100
101
|
"vite-plugin-banner": "^0.7.1",
|
|
101
102
|
"vite-plugin-dts": "3.9.1",
|
|
102
103
|
"vite-plugin-inspect": "^0.8.4",
|
|
103
104
|
"vite-plugin-require-transform": "^1.0.21",
|
|
104
105
|
"vite-svg-loader": "^5.1.0",
|
|
105
|
-
vitepress: "1.
|
|
106
|
-
vitest: "^
|
|
107
|
-
vue: "^3.4.
|
|
106
|
+
vitepress: "1.3.0",
|
|
107
|
+
vitest: "^2.0.2",
|
|
108
|
+
vue: "^3.4.31",
|
|
108
109
|
"vue-demi": "^0.14.8"
|
|
109
|
-
},
|
|
110
|
-
name:
|
|
111
|
-
type:
|
|
112
|
-
version:
|
|
113
|
-
packageManager:
|
|
114
|
-
description:
|
|
115
|
-
author:
|
|
116
|
-
license:
|
|
117
|
-
keywords:
|
|
118
|
-
sideEffects:
|
|
119
|
-
exports:
|
|
120
|
-
main:
|
|
121
|
-
module:
|
|
122
|
-
types:
|
|
123
|
-
files:
|
|
124
|
-
publishConfig:
|
|
125
|
-
scripts:
|
|
126
|
-
peerDependencies:
|
|
127
|
-
dependencies:
|
|
128
|
-
devDependencies:
|
|
129
|
-
}
|
|
130
|
-
|
|
110
|
+
}, An = {
|
|
111
|
+
name: cn,
|
|
112
|
+
type: un,
|
|
113
|
+
version: fn,
|
|
114
|
+
packageManager: dn,
|
|
115
|
+
description: pn,
|
|
116
|
+
author: mn,
|
|
117
|
+
license: hn,
|
|
118
|
+
keywords: gn,
|
|
119
|
+
sideEffects: vn,
|
|
120
|
+
exports: yn,
|
|
121
|
+
main: _n,
|
|
122
|
+
module: wn,
|
|
123
|
+
types: bn,
|
|
124
|
+
files: Pn,
|
|
125
|
+
publishConfig: Mn,
|
|
126
|
+
scripts: Cn,
|
|
127
|
+
peerDependencies: En,
|
|
128
|
+
dependencies: Tn,
|
|
129
|
+
devDependencies: Sn
|
|
130
|
+
};
|
|
131
|
+
function be(e) {
|
|
132
|
+
return typeof e > "u";
|
|
133
|
+
}
|
|
134
|
+
function de(e) {
|
|
135
|
+
return Array.isArray(e);
|
|
136
|
+
}
|
|
137
|
+
function kn(e) {
|
|
138
|
+
return typeof e == "number";
|
|
139
|
+
}
|
|
140
|
+
function at(e) {
|
|
141
|
+
return typeof e == "string";
|
|
142
|
+
}
|
|
143
|
+
function V(e) {
|
|
144
|
+
return typeof e == "function";
|
|
145
|
+
}
|
|
146
|
+
function N(e) {
|
|
147
|
+
return e === Object(e) && !de(e) && !V(e);
|
|
148
|
+
}
|
|
149
|
+
function W(e) {
|
|
150
|
+
return N(e) && "isObject3D" in e && !!e.isObject3D;
|
|
151
|
+
}
|
|
152
|
+
function We(e) {
|
|
153
|
+
return N(e) && "isCamera" in e && !!e.isCamera;
|
|
154
|
+
}
|
|
155
|
+
function xn(e) {
|
|
156
|
+
return N(e) && "isBufferGeometry" in e && !!e.isBufferGeometry;
|
|
157
|
+
}
|
|
158
|
+
function Ln(e) {
|
|
159
|
+
return N(e) && "isMaterial" in e && !!e.isMaterial;
|
|
160
|
+
}
|
|
161
|
+
function Rn(e) {
|
|
162
|
+
return N(e) && "isFog" in e && !!e.isFog;
|
|
163
|
+
}
|
|
164
|
+
function On(e) {
|
|
165
|
+
return N(e) && "isScene" in e && !!e.isScene;
|
|
166
|
+
}
|
|
167
|
+
function re(e) {
|
|
168
|
+
return W(e) || xn(e) || Ln(e) || Rn(e);
|
|
169
|
+
}
|
|
170
|
+
function Dn(e) {
|
|
171
|
+
return N(e) && !!e.isPrimitive;
|
|
172
|
+
}
|
|
173
|
+
const jn = ({ sizes: e }) => {
|
|
174
|
+
const t = I([]), n = Y(
|
|
131
175
|
() => t.value[0]
|
|
132
|
-
),
|
|
133
|
-
const
|
|
134
|
-
if (!
|
|
176
|
+
), r = (i) => {
|
|
177
|
+
const l = i instanceof Dt ? i : t.value.find((o) => o.uuid === i);
|
|
178
|
+
if (!l)
|
|
135
179
|
return;
|
|
136
|
-
const
|
|
137
|
-
t.value = [
|
|
138
|
-
}, s = (i,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
180
|
+
const c = t.value.filter(({ uuid: o }) => o !== l.uuid);
|
|
181
|
+
t.value = [l, ...c];
|
|
182
|
+
}, s = (i, l = !1) => {
|
|
183
|
+
if (We(i)) {
|
|
184
|
+
const c = i;
|
|
185
|
+
if (t.value.some(({ uuid: o }) => o === c.uuid))
|
|
186
|
+
return;
|
|
187
|
+
l ? r(c) : t.value.push(c);
|
|
188
|
+
}
|
|
189
|
+
}, a = (i) => {
|
|
190
|
+
if (We(i)) {
|
|
191
|
+
const l = i;
|
|
192
|
+
t.value = t.value.filter(({ uuid: c }) => c !== l.uuid);
|
|
193
|
+
}
|
|
142
194
|
};
|
|
143
|
-
return
|
|
195
|
+
return Te(() => {
|
|
144
196
|
e.aspectRatio.value && t.value.forEach((i) => {
|
|
145
|
-
!i.manual && (i instanceof
|
|
197
|
+
!i.manual && (i instanceof we || Bn(i)) && (i instanceof we ? i.aspect = e.aspectRatio.value : (i.left = e.width.value * -0.5, i.right = e.width.value * 0.5, i.top = e.height.value * 0.5, i.bottom = e.height.value * -0.5), i.updateProjectionMatrix());
|
|
146
198
|
});
|
|
147
|
-
}),
|
|
199
|
+
}), Q(() => {
|
|
148
200
|
t.value = [];
|
|
149
201
|
}), {
|
|
150
|
-
camera:
|
|
202
|
+
camera: n,
|
|
151
203
|
cameras: t,
|
|
152
204
|
registerCamera: s,
|
|
153
|
-
deregisterCamera:
|
|
154
|
-
setCameraActive:
|
|
205
|
+
deregisterCamera: a,
|
|
206
|
+
setCameraActive: r
|
|
155
207
|
};
|
|
156
208
|
};
|
|
157
|
-
function
|
|
209
|
+
function Bn(e) {
|
|
158
210
|
return e.hasOwnProperty("isOrthographicCamera") && e.isOrthographicCamera;
|
|
159
211
|
}
|
|
160
|
-
const
|
|
161
|
-
let
|
|
162
|
-
const { pause:
|
|
212
|
+
const lt = j(), ct = j(), Ae = j(), ee = new tt();
|
|
213
|
+
let ue = 0, fe = 0;
|
|
214
|
+
const { pause: In, resume: Ne, isActive: Hn } = it(
|
|
163
215
|
() => {
|
|
164
|
-
|
|
216
|
+
lt.trigger({ delta: ue, elapsed: fe, clock: ee }), ct.trigger({ delta: ue, elapsed: fe, clock: ee }), Ae.trigger({ delta: ue, elapsed: fe, clock: ee });
|
|
165
217
|
},
|
|
166
218
|
{ immediate: !1 }
|
|
167
219
|
);
|
|
168
|
-
|
|
169
|
-
|
|
220
|
+
Ae.on(() => {
|
|
221
|
+
ue = ee.getDelta(), fe = ee.getElapsedTime();
|
|
170
222
|
});
|
|
171
|
-
let
|
|
172
|
-
const
|
|
173
|
-
onBeforeLoop:
|
|
174
|
-
onLoop:
|
|
175
|
-
onAfterLoop:
|
|
176
|
-
pause:
|
|
177
|
-
resume:
|
|
178
|
-
isActive:
|
|
179
|
-
}),
|
|
180
|
-
function
|
|
181
|
-
function e(...
|
|
182
|
-
typeof
|
|
223
|
+
let ze = !1;
|
|
224
|
+
const $r = () => (ze || (ze = !0, Ne()), {
|
|
225
|
+
onBeforeLoop: lt.on,
|
|
226
|
+
onLoop: ct.on,
|
|
227
|
+
onAfterLoop: Ae.on,
|
|
228
|
+
pause: In,
|
|
229
|
+
resume: Ne,
|
|
230
|
+
isActive: Hn
|
|
231
|
+
}), Ur = !0, oe = "[TresJS ▲ ■ ●] ";
|
|
232
|
+
function z() {
|
|
233
|
+
function e(...r) {
|
|
234
|
+
typeof r[0] == "string" ? r[0] = oe + r[0] : r.unshift(oe), console.error(...r);
|
|
183
235
|
}
|
|
184
|
-
function t(...
|
|
185
|
-
typeof
|
|
236
|
+
function t(...r) {
|
|
237
|
+
typeof r[0] == "string" ? r[0] = oe + r[0] : r.unshift(oe), console.warn(...r);
|
|
186
238
|
}
|
|
187
|
-
function r
|
|
239
|
+
function n(r, s) {
|
|
188
240
|
}
|
|
189
241
|
return {
|
|
190
242
|
logError: e,
|
|
191
243
|
logWarning: t,
|
|
192
|
-
logMessage:
|
|
244
|
+
logMessage: n
|
|
193
245
|
};
|
|
194
246
|
}
|
|
195
|
-
function
|
|
196
|
-
return typeof e == "number" ? [e, e, e] : e instanceof
|
|
247
|
+
function Fr(e) {
|
|
248
|
+
return typeof e == "number" ? [e, e, e] : e instanceof Se ? [e.x, e.y, e.z] : e;
|
|
197
249
|
}
|
|
198
|
-
function
|
|
199
|
-
return e instanceof
|
|
250
|
+
function $n(e) {
|
|
251
|
+
return e instanceof ce ? e : Array.isArray(e) ? new ce(...e) : new ce(e);
|
|
200
252
|
}
|
|
201
|
-
class
|
|
202
|
-
constructor(...
|
|
203
|
-
super(...
|
|
204
|
-
|
|
205
|
-
|
|
253
|
+
class Un extends et.Mesh {
|
|
254
|
+
constructor(...n) {
|
|
255
|
+
super(...n);
|
|
256
|
+
me(this, "type", "HightlightMesh");
|
|
257
|
+
me(this, "createTime");
|
|
206
258
|
this.createTime = Date.now();
|
|
207
259
|
}
|
|
208
260
|
onBeforeRender() {
|
|
209
|
-
const
|
|
261
|
+
const r = (Date.now() - this.createTime) / 1e3, i = 1 + 0.07 * Math.sin(2.5 * r);
|
|
210
262
|
this.scale.set(i, i, i);
|
|
211
263
|
}
|
|
212
264
|
}
|
|
213
|
-
const
|
|
214
|
-
for (const
|
|
215
|
-
t[
|
|
265
|
+
const ut = (e, t) => {
|
|
266
|
+
for (const n of Object.keys(t))
|
|
267
|
+
t[n] instanceof Object && Object.assign(t[n], ut(e[n], t[n]));
|
|
216
268
|
return Object.assign(e || {}, t), e;
|
|
217
|
-
},
|
|
218
|
-
function
|
|
269
|
+
}, Fn = "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", Wn = /* @__PURE__ */ Gn(Fn);
|
|
270
|
+
function Ge(e) {
|
|
219
271
|
return e && e.nodeType === 1;
|
|
220
272
|
}
|
|
221
|
-
function
|
|
222
|
-
return e.replace(/-([a-z])/g, (t,
|
|
223
|
-
}
|
|
224
|
-
const
|
|
225
|
-
function
|
|
226
|
-
return e.replace(
|
|
227
|
-
}
|
|
228
|
-
function
|
|
229
|
-
const
|
|
230
|
-
for (let s = 0; s <
|
|
231
|
-
r[
|
|
232
|
-
return (s) => !!
|
|
233
|
-
}
|
|
234
|
-
const
|
|
235
|
-
const r = /* @__PURE__ */ new Set(), o = [];
|
|
236
|
-
for (const s of e) {
|
|
237
|
-
const c = t(s);
|
|
238
|
-
r.has(c) || (r.add(c), o.push(s));
|
|
239
|
-
}
|
|
240
|
-
return o;
|
|
241
|
-
}, Ie = (e, t) => {
|
|
273
|
+
function se(e) {
|
|
274
|
+
return e.replace(/-([a-z])/g, (t, n) => n.toUpperCase());
|
|
275
|
+
}
|
|
276
|
+
const Nn = /\B([A-Z])/g;
|
|
277
|
+
function zn(e) {
|
|
278
|
+
return e.replace(Nn, "-$1").toLowerCase();
|
|
279
|
+
}
|
|
280
|
+
function Gn(e, t) {
|
|
281
|
+
const n = /* @__PURE__ */ Object.create(null), r = e.split(",");
|
|
282
|
+
for (let s = 0; s < r.length; s++)
|
|
283
|
+
n[r[s]] = !0;
|
|
284
|
+
return (s) => !!n[s];
|
|
285
|
+
}
|
|
286
|
+
const Ve = (e, t) => {
|
|
242
287
|
if (!t)
|
|
243
288
|
return;
|
|
289
|
+
const n = Array.isArray(t) ? t : t.match(/([^[.\]])+/g);
|
|
290
|
+
return n == null ? void 0 : n.reduce((r, s) => r && r[s], e);
|
|
291
|
+
}, Vn = (e, t, n) => {
|
|
244
292
|
const r = Array.isArray(t) ? t : t.match(/([^[.\]])+/g);
|
|
245
|
-
|
|
246
|
-
}, Er = (e, t, r) => {
|
|
247
|
-
const o = Array.isArray(t) ? t : t.match(/([^[.\]])+/g);
|
|
248
|
-
o && o.reduce((s, c, i) => (s[c] === void 0 && (s[c] = {}), i === o.length - 1 && (s[c] = r), s[c]), e);
|
|
293
|
+
r && r.reduce((s, a, i) => (s[a] === void 0 && (s[a] = {}), i === r.length - 1 && (s[a] = n), s[a]), e);
|
|
249
294
|
};
|
|
250
|
-
function
|
|
251
|
-
if (
|
|
252
|
-
const s = e.attributes,
|
|
253
|
-
return s.length !==
|
|
295
|
+
function ft(e, t) {
|
|
296
|
+
if (Ge(e) && Ge(t)) {
|
|
297
|
+
const s = e.attributes, a = t.attributes;
|
|
298
|
+
return s.length !== a.length ? !1 : Array.from(s).every(({ name: i, value: l }) => t.getAttribute(i) === l);
|
|
254
299
|
}
|
|
255
300
|
if (e === t)
|
|
256
301
|
return !0;
|
|
257
302
|
if (e === null || typeof e != "object" || t === null || typeof t != "object")
|
|
258
303
|
return !1;
|
|
259
|
-
const
|
|
260
|
-
if (
|
|
304
|
+
const n = Object.keys(e), r = Object.keys(t);
|
|
305
|
+
if (n.length !== r.length)
|
|
261
306
|
return !1;
|
|
262
|
-
for (const s of
|
|
263
|
-
if (!
|
|
307
|
+
for (const s of n)
|
|
308
|
+
if (!r.includes(s) || !ft(e[s], t[s]))
|
|
264
309
|
return !1;
|
|
265
310
|
return !0;
|
|
266
311
|
}
|
|
267
|
-
function
|
|
312
|
+
function Yn(e, t) {
|
|
268
313
|
if (!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length)
|
|
269
314
|
return !1;
|
|
270
|
-
for (let
|
|
271
|
-
if (!
|
|
315
|
+
for (let n = 0; n < e.length; n++)
|
|
316
|
+
if (!ft(e[n], t[n]))
|
|
272
317
|
return !1;
|
|
273
318
|
return !0;
|
|
274
319
|
}
|
|
275
|
-
const
|
|
276
|
-
function
|
|
277
|
-
const s = (
|
|
278
|
-
if (
|
|
279
|
-
return
|
|
280
|
-
for (const
|
|
281
|
-
const
|
|
282
|
-
if (
|
|
283
|
-
return
|
|
320
|
+
const qn = Array.isArray;
|
|
321
|
+
function Jn(e, t, n, r) {
|
|
322
|
+
const s = (c) => {
|
|
323
|
+
if (c.uuid === t)
|
|
324
|
+
return c;
|
|
325
|
+
for (const o of c.children) {
|
|
326
|
+
const f = s(o);
|
|
327
|
+
if (f)
|
|
328
|
+
return f;
|
|
284
329
|
}
|
|
285
|
-
},
|
|
286
|
-
if (!
|
|
330
|
+
}, a = s(e);
|
|
331
|
+
if (!a) {
|
|
287
332
|
console.warn("Object with UUID not found in the scene.");
|
|
288
333
|
return;
|
|
289
334
|
}
|
|
290
|
-
let i =
|
|
291
|
-
for (let
|
|
292
|
-
if (i[
|
|
293
|
-
i = i[
|
|
335
|
+
let i = a;
|
|
336
|
+
for (let c = 0; c < n.length - 1; c++)
|
|
337
|
+
if (i[n[c]] !== void 0)
|
|
338
|
+
i = i[n[c]];
|
|
294
339
|
else {
|
|
295
|
-
console.warn(`Property path is not valid: ${
|
|
340
|
+
console.warn(`Property path is not valid: ${n.join(".")}`);
|
|
296
341
|
return;
|
|
297
342
|
}
|
|
298
|
-
const
|
|
299
|
-
i[
|
|
343
|
+
const l = n[n.length - 1];
|
|
344
|
+
i[l] !== void 0 ? i[l] = r : console.warn(`Property path is not valid: ${n.join(".")}`);
|
|
300
345
|
}
|
|
301
|
-
function
|
|
302
|
-
const t = new
|
|
346
|
+
function Kn(e) {
|
|
347
|
+
const t = new ot({
|
|
303
348
|
color: 11003607,
|
|
304
349
|
// Highlight color, e.g., yellow
|
|
305
350
|
transparent: !0,
|
|
306
351
|
opacity: 0.2,
|
|
307
352
|
depthTest: !1,
|
|
308
353
|
// So the highlight is always visible
|
|
309
|
-
side:
|
|
354
|
+
side: jt
|
|
310
355
|
// To e
|
|
311
356
|
});
|
|
312
|
-
return new
|
|
357
|
+
return new Un(e.geometry.clone(), t);
|
|
313
358
|
}
|
|
314
|
-
function
|
|
315
|
-
var
|
|
359
|
+
function Qn(e) {
|
|
360
|
+
var n;
|
|
316
361
|
let t = e.value;
|
|
317
|
-
return e.value && ((
|
|
362
|
+
return e.value && ((n = e.value) != null && n.isMesh) && (t = e.value.position), Array.isArray(e.value) && (t = new Se(...t)), t;
|
|
318
363
|
}
|
|
319
|
-
function
|
|
364
|
+
function Xn(e) {
|
|
320
365
|
return "map" in e;
|
|
321
366
|
}
|
|
322
|
-
function
|
|
323
|
-
|
|
367
|
+
function Ye(e) {
|
|
368
|
+
Xn(e) && e.map && e.map.dispose(), e.dispose();
|
|
324
369
|
}
|
|
325
|
-
function
|
|
326
|
-
var
|
|
327
|
-
if (e.parent && ((
|
|
370
|
+
function dt(e) {
|
|
371
|
+
var n, r;
|
|
372
|
+
if (e.parent && ((n = e.removeFromParent) == null || n.call(e)), delete e.__tres, [...e.children].forEach((s) => dt(s)), !(e instanceof nt)) {
|
|
328
373
|
const s = e;
|
|
329
|
-
e && ((
|
|
374
|
+
e && ((r = e.dispose) == null || r.call(e)), s.geometry && (s.geometry.dispose(), delete s.geometry), Array.isArray(s.material) ? (s.material.forEach((a) => Ye(a)), delete s.material) : s.material && (Ye(s.material), delete s.material);
|
|
330
375
|
}
|
|
331
376
|
}
|
|
332
|
-
|
|
377
|
+
function Zn(e, t) {
|
|
378
|
+
let n = 0;
|
|
379
|
+
for (let r = 0; r < e.length; r++)
|
|
380
|
+
t(e[r], r) && (e[n] = e[r], n++);
|
|
381
|
+
return e.length = n, e;
|
|
382
|
+
}
|
|
383
|
+
function Pe(e, t) {
|
|
384
|
+
let n = e;
|
|
385
|
+
if (t.includes("-")) {
|
|
386
|
+
const r = t.split("-");
|
|
387
|
+
let s = r.shift();
|
|
388
|
+
for (; n && r.length; )
|
|
389
|
+
s in n ? (n = n[s], s = r.shift()) : s = qe(s, r.shift());
|
|
390
|
+
return { target: n, key: qe(s, ...r) };
|
|
391
|
+
} else
|
|
392
|
+
return { target: n, key: t };
|
|
393
|
+
}
|
|
394
|
+
function qe(...e) {
|
|
395
|
+
return e.map((t, n) => n === 0 ? t : t.charAt(0).toUpperCase() + t.slice(1)).join("");
|
|
396
|
+
}
|
|
397
|
+
const Je = /-\d+$/;
|
|
398
|
+
function er(e, t, n) {
|
|
399
|
+
if (at(n)) {
|
|
400
|
+
if (Je.test(n)) {
|
|
401
|
+
const a = n.replace(Je, ""), { target: i, key: l } = Pe(e, a);
|
|
402
|
+
if (!Array.isArray(i[l])) {
|
|
403
|
+
const c = i[l], o = [];
|
|
404
|
+
o.__tresDetach = () => {
|
|
405
|
+
o.every((f) => be(f)) && (i[l] = c);
|
|
406
|
+
}, i[l] = o;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
const { target: r, key: s } = Pe(e, n);
|
|
410
|
+
t.__tres.previousAttach = r[s], r[s] = X(t);
|
|
411
|
+
} else
|
|
412
|
+
t.__tres.previousAttach = n(e, t);
|
|
413
|
+
}
|
|
414
|
+
function tr(e, t, n) {
|
|
415
|
+
var r, s, a;
|
|
416
|
+
if (at(n)) {
|
|
417
|
+
const { target: i, key: l } = Pe(e, n), c = t.__tres.previousAttach;
|
|
418
|
+
c === void 0 ? delete i[l] : i[l] = c, "__tresDetach" in i && i.__tresDetach();
|
|
419
|
+
} else
|
|
420
|
+
(s = (r = t.__tres) == null ? void 0 : r.previousAttach) == null || s.call(r, e, t);
|
|
421
|
+
(a = t.__tres) == null || delete a.previousAttach;
|
|
422
|
+
}
|
|
423
|
+
function G(e, t, n) {
|
|
424
|
+
const r = e;
|
|
425
|
+
return r.__tres = {
|
|
426
|
+
type: "unknown",
|
|
427
|
+
eventCount: 0,
|
|
428
|
+
root: n,
|
|
429
|
+
handlers: {},
|
|
430
|
+
memoizedProps: {},
|
|
431
|
+
objects: [],
|
|
432
|
+
parent: null,
|
|
433
|
+
previousAttach: null,
|
|
434
|
+
...t
|
|
435
|
+
}, r.__tres.attach || (r.isMaterial ? r.__tres.attach = "material" : r.isBufferGeometry ? r.__tres.attach = "geometry" : r.isFog && (r.__tres.attach = "fog")), r;
|
|
436
|
+
}
|
|
437
|
+
function pt(e) {
|
|
438
|
+
var n;
|
|
439
|
+
const t = (n = e == null ? void 0 : e.__tres) == null ? void 0 : n.root;
|
|
440
|
+
t && t.render && t.render.canBeInvalidated.value && t.invalidate();
|
|
441
|
+
}
|
|
442
|
+
function nr(e, t, n) {
|
|
443
|
+
var s;
|
|
444
|
+
if (!V(e.setPixelRatio))
|
|
445
|
+
return;
|
|
446
|
+
let r = 0;
|
|
447
|
+
if (de(n) && n.length >= 2) {
|
|
448
|
+
const [a, i] = n;
|
|
449
|
+
r = rt.clamp(t, a, i);
|
|
450
|
+
} else kn(n) ? r = n : r = t;
|
|
451
|
+
r !== ((s = e.getPixelRatio) == null ? void 0 : s.call(e)) && e.setPixelRatio(r);
|
|
452
|
+
}
|
|
453
|
+
function rr(e, t, n, r, s) {
|
|
454
|
+
const a = [...t.__tres.objects], i = X(t);
|
|
455
|
+
if (e = X(e), i === e)
|
|
456
|
+
return !0;
|
|
457
|
+
const l = G(e, t.__tres ?? {}, s), c = t.parent ?? t.__tres.parent ?? null, o = { ...t.__tres.memoizedProps };
|
|
458
|
+
delete o.object;
|
|
459
|
+
for (const f of a)
|
|
460
|
+
mt(f, s), ht(f, s);
|
|
461
|
+
i.__tres.objects = [], r.remove(t);
|
|
462
|
+
for (const [f, v] of Object.entries(o))
|
|
463
|
+
r.patchProp(l, f, l[f], v);
|
|
464
|
+
n(e), r.insert(t, c);
|
|
465
|
+
for (const f of a)
|
|
466
|
+
r.insert(f, t);
|
|
467
|
+
return !0;
|
|
468
|
+
}
|
|
469
|
+
function X(e) {
|
|
470
|
+
return Dn(e) ? (e.object.__tres = e.__tres, e.object) : e;
|
|
471
|
+
}
|
|
472
|
+
function mt(e, t) {
|
|
473
|
+
var r, s, a, i;
|
|
474
|
+
const n = ((r = e.__tres) == null ? void 0 : r.parent) || t.scene.value;
|
|
475
|
+
e.__tres && (e.__tres.parent = null), n && n.__tres && "objects" in n.__tres && Zn(n.__tres.objects, (l) => l !== e), (s = e.__tres) != null && s.attach ? tr(n, e, e.__tres.attach) : ((i = (a = e.parent) == null ? void 0 : a.remove) == null || i.call(a, X(e)), e.parent = null);
|
|
476
|
+
}
|
|
477
|
+
function ht(e, t) {
|
|
478
|
+
var n;
|
|
479
|
+
(n = e.traverse) == null || n.call(e, (r) => {
|
|
480
|
+
var s;
|
|
481
|
+
t.deregisterCamera(r), (s = t.eventManager) == null || s.deregisterPointerMissedObject(r);
|
|
482
|
+
}), t.deregisterCamera(e), pt(e);
|
|
483
|
+
}
|
|
484
|
+
const or = Number.parseInt(Bt.replace("dev", "")), ie = {
|
|
333
485
|
realistic: {
|
|
334
486
|
shadows: !0,
|
|
335
487
|
physicallyCorrectLights: !0,
|
|
336
|
-
outputColorSpace:
|
|
337
|
-
toneMapping:
|
|
488
|
+
outputColorSpace: It,
|
|
489
|
+
toneMapping: st,
|
|
338
490
|
toneMappingExposure: 3,
|
|
339
491
|
shadowMap: {
|
|
340
492
|
enabled: !0,
|
|
341
|
-
type:
|
|
493
|
+
type: Ht
|
|
342
494
|
}
|
|
343
495
|
},
|
|
344
496
|
flat: {
|
|
345
|
-
toneMapping:
|
|
497
|
+
toneMapping: $t,
|
|
346
498
|
toneMappingExposure: 1
|
|
347
499
|
}
|
|
348
500
|
};
|
|
349
|
-
function
|
|
501
|
+
function sr({
|
|
350
502
|
canvas: e,
|
|
351
503
|
options: t,
|
|
352
|
-
contextParts: { sizes:
|
|
504
|
+
contextParts: { sizes: n, render: r, invalidate: s, advance: a }
|
|
353
505
|
}) {
|
|
354
|
-
const i =
|
|
355
|
-
alpha:
|
|
356
|
-
depth:
|
|
357
|
-
canvas:
|
|
358
|
-
context:
|
|
359
|
-
stencil:
|
|
360
|
-
antialias:
|
|
361
|
-
precision:
|
|
362
|
-
powerPreference:
|
|
363
|
-
premultipliedAlpha:
|
|
364
|
-
preserveDrawingBuffer:
|
|
365
|
-
logarithmicDepthBuffer:
|
|
366
|
-
failIfMajorPerformanceCaveat:
|
|
367
|
-
})),
|
|
368
|
-
function
|
|
506
|
+
const i = Y(() => ({
|
|
507
|
+
alpha: k(t.alpha) ?? !0,
|
|
508
|
+
depth: k(t.depth),
|
|
509
|
+
canvas: Zt(e),
|
|
510
|
+
context: k(t.context),
|
|
511
|
+
stencil: k(t.stencil),
|
|
512
|
+
antialias: k(t.antialias) ?? !0,
|
|
513
|
+
precision: k(t.precision),
|
|
514
|
+
powerPreference: k(t.powerPreference),
|
|
515
|
+
premultipliedAlpha: k(t.premultipliedAlpha),
|
|
516
|
+
preserveDrawingBuffer: k(t.preserveDrawingBuffer),
|
|
517
|
+
logarithmicDepthBuffer: k(t.logarithmicDepthBuffer),
|
|
518
|
+
failIfMajorPerformanceCaveat: k(t.failIfMajorPerformanceCaveat)
|
|
519
|
+
})), l = H(new he(i.value));
|
|
520
|
+
function c() {
|
|
369
521
|
t.renderMode === "on-demand" && s();
|
|
370
522
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
}),
|
|
374
|
-
|
|
523
|
+
le(i, () => {
|
|
524
|
+
l.value.dispose(), l.value = new he(i.value), c();
|
|
525
|
+
}), le([n.width, n.height], () => {
|
|
526
|
+
l.value.setSize(n.width.value, n.height.value), c();
|
|
375
527
|
}, {
|
|
376
528
|
immediate: !0
|
|
377
|
-
}),
|
|
378
|
-
const { pixelRatio: f } =
|
|
379
|
-
|
|
380
|
-
a.value.setPixelRatio(f.value);
|
|
381
|
-
});
|
|
382
|
-
const { logError: h } = $(), w = (() => {
|
|
383
|
-
const p = new ae(), P = {
|
|
529
|
+
}), le(() => t.clearColor, c);
|
|
530
|
+
const { pixelRatio: o } = en(), { logError: f } = z(), u = (() => {
|
|
531
|
+
const p = new he(), P = {
|
|
384
532
|
shadowMap: {
|
|
385
533
|
enabled: p.shadowMap.enabled,
|
|
386
534
|
type: p.shadowMap.type
|
|
@@ -390,402 +538,509 @@ function Dr({
|
|
|
390
538
|
outputColorSpace: p.outputColorSpace
|
|
391
539
|
};
|
|
392
540
|
return p.dispose(), P;
|
|
393
|
-
})(),
|
|
394
|
-
return
|
|
395
|
-
|
|
396
|
-
}, 100),
|
|
397
|
-
const p =
|
|
398
|
-
p && (p in
|
|
399
|
-
const P = (
|
|
400
|
-
const
|
|
541
|
+
})(), _ = k(t.renderMode);
|
|
542
|
+
return _ === "on-demand" && s(), _ === "manual" && setTimeout(() => {
|
|
543
|
+
a();
|
|
544
|
+
}, 100), Te(() => {
|
|
545
|
+
const p = k(t.preset);
|
|
546
|
+
p && (p in ie || f(`Renderer Preset must be one of these: ${Object.keys(ie).join(", ")}`), ut(l.value, ie[p])), nr(l.value, o.value, k(t.dpr)), _ === "always" && (r.frames.value = Math.max(1, r.frames.value));
|
|
547
|
+
const P = (g, E) => {
|
|
548
|
+
const C = k(g), T = () => {
|
|
401
549
|
if (p)
|
|
402
|
-
return
|
|
550
|
+
return Ve(ie[p], E);
|
|
403
551
|
};
|
|
404
|
-
if (
|
|
405
|
-
return
|
|
406
|
-
const
|
|
407
|
-
return
|
|
408
|
-
},
|
|
409
|
-
|
|
410
|
-
const
|
|
411
|
-
|
|
412
|
-
|
|
552
|
+
if (C !== void 0)
|
|
553
|
+
return C;
|
|
554
|
+
const M = T();
|
|
555
|
+
return M !== void 0 ? M : Ve(u, E);
|
|
556
|
+
}, m = (g, E) => Vn(l.value, E, P(g, E));
|
|
557
|
+
m(t.shadows, "shadowMap.enabled"), m(t.toneMapping ?? st, "toneMapping"), m(t.shadowMapType, "shadowMap.type"), or < 150 && m(!t.useLegacyLights, "physicallyCorrectLights"), m(t.outputColorSpace, "outputColorSpace"), m(t.toneMappingExposure, "toneMappingExposure");
|
|
558
|
+
const y = P(t.clearColor, "clearColor");
|
|
559
|
+
y && l.value.setClearColor(
|
|
560
|
+
y ? $n(y) : new ce(0)
|
|
413
561
|
// default clear color is not easily/efficiently retrievable from three
|
|
414
562
|
);
|
|
415
|
-
}),
|
|
416
|
-
|
|
563
|
+
}), Q(() => {
|
|
564
|
+
l.value.dispose(), l.value.forceContextLoss();
|
|
417
565
|
}), {
|
|
418
|
-
renderer:
|
|
566
|
+
renderer: l
|
|
419
567
|
};
|
|
420
568
|
}
|
|
421
|
-
const
|
|
422
|
-
function
|
|
569
|
+
const ir = (e) => !!e && e.constructor === Array;
|
|
570
|
+
function ar(e) {
|
|
423
571
|
const t = { nodes: {}, materials: {} };
|
|
424
|
-
return e && e.traverse((
|
|
425
|
-
|
|
572
|
+
return e && e.traverse((n) => {
|
|
573
|
+
n.name && (t.nodes[n.name] = n), n.material && !t.materials[n.material.name] && (t.materials[n.material.name] = n.material);
|
|
426
574
|
}), t;
|
|
427
575
|
}
|
|
428
|
-
async function
|
|
429
|
-
const { logError:
|
|
430
|
-
s && s(i),
|
|
431
|
-
const
|
|
432
|
-
(
|
|
576
|
+
async function Wr(e, t, n, r, s) {
|
|
577
|
+
const { logError: a } = z(), i = new e();
|
|
578
|
+
s && s(i), n && n(i);
|
|
579
|
+
const c = (Array.isArray(t) ? t : [t]).map(
|
|
580
|
+
(o) => new Promise((f, v) => {
|
|
433
581
|
i.load(
|
|
434
|
-
f,
|
|
435
|
-
(w) => {
|
|
436
|
-
w.scene && Object.assign(w, jr(w.scene)), h(w);
|
|
437
|
-
},
|
|
438
582
|
o,
|
|
439
|
-
(
|
|
583
|
+
(u) => {
|
|
584
|
+
u.scene && Object.assign(u, ar(u.scene)), f(u);
|
|
585
|
+
},
|
|
586
|
+
r,
|
|
587
|
+
(u) => v(a("[useLoader] - Failed to load resource", u))
|
|
440
588
|
);
|
|
441
589
|
})
|
|
442
590
|
);
|
|
443
|
-
return
|
|
591
|
+
return ir(t) ? await Promise.all(c) : await c[0];
|
|
444
592
|
}
|
|
445
|
-
async function
|
|
446
|
-
const
|
|
447
|
-
|
|
593
|
+
async function Nr(e, t) {
|
|
594
|
+
const n = new Ut(t), r = (s) => new Promise((a, i) => {
|
|
595
|
+
n.load(
|
|
448
596
|
s,
|
|
449
|
-
(
|
|
597
|
+
(l) => a(l),
|
|
450
598
|
() => null,
|
|
451
599
|
() => {
|
|
452
600
|
i(new Error("[useTextures] - Failed to load texture"));
|
|
453
601
|
}
|
|
454
602
|
);
|
|
455
603
|
});
|
|
456
|
-
if (
|
|
457
|
-
const s = await Promise.all(e.map((
|
|
604
|
+
if (qn(e)) {
|
|
605
|
+
const s = await Promise.all(e.map((a) => r(a)));
|
|
458
606
|
return e.length > 1 ? s : s[0];
|
|
459
607
|
} else {
|
|
460
608
|
const {
|
|
461
609
|
map: s,
|
|
462
|
-
displacementMap:
|
|
610
|
+
displacementMap: a,
|
|
463
611
|
normalMap: i,
|
|
464
|
-
roughnessMap:
|
|
465
|
-
metalnessMap:
|
|
466
|
-
aoMap:
|
|
467
|
-
alphaMap:
|
|
468
|
-
matcap:
|
|
612
|
+
roughnessMap: l,
|
|
613
|
+
metalnessMap: c,
|
|
614
|
+
aoMap: o,
|
|
615
|
+
alphaMap: f,
|
|
616
|
+
matcap: v
|
|
469
617
|
} = e;
|
|
470
618
|
return {
|
|
471
|
-
map: s ? await
|
|
472
|
-
displacementMap:
|
|
473
|
-
normalMap: i ? await
|
|
474
|
-
roughnessMap:
|
|
475
|
-
metalnessMap:
|
|
476
|
-
aoMap:
|
|
477
|
-
alphaMap:
|
|
478
|
-
matcap:
|
|
619
|
+
map: s ? await r(s) : null,
|
|
620
|
+
displacementMap: a ? await r(a) : null,
|
|
621
|
+
normalMap: i ? await r(i) : null,
|
|
622
|
+
roughnessMap: l ? await r(l) : null,
|
|
623
|
+
metalnessMap: c ? await r(c) : null,
|
|
624
|
+
aoMap: o ? await r(o) : null,
|
|
625
|
+
alphaMap: f ? await r(f) : null,
|
|
626
|
+
matcap: v ? await r(v) : null
|
|
479
627
|
};
|
|
480
628
|
}
|
|
481
629
|
}
|
|
482
|
-
const
|
|
483
|
-
const
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
let a = 0;
|
|
488
|
-
const { width: n, height: f, top: h, left: l } = Ut(r), w = ({ x: m, y: C }) => {
|
|
489
|
-
if (r.value)
|
|
630
|
+
const lr = (e, t) => {
|
|
631
|
+
const n = Y(() => t.renderer.value.domElement), r = H([]), { x: s, y: a } = tn({ target: n });
|
|
632
|
+
let i = 0;
|
|
633
|
+
const { width: l, height: c, top: o, left: f } = nn(n), v = ({ x: h, y: S }) => {
|
|
634
|
+
if (n.value)
|
|
490
635
|
return {
|
|
491
|
-
x: (
|
|
492
|
-
y: -((
|
|
636
|
+
x: (h - f.value) / l.value * 2 - 1,
|
|
637
|
+
y: -((S - o.value) / c.value) * 2 + 1
|
|
493
638
|
};
|
|
494
|
-
},
|
|
639
|
+
}, u = ({ x: h, y: S }) => {
|
|
495
640
|
if (t.camera.value)
|
|
496
|
-
return t.raycaster.value.setFromCamera(new
|
|
497
|
-
},
|
|
498
|
-
const
|
|
499
|
-
x: (
|
|
500
|
-
y: (
|
|
641
|
+
return t.raycaster.value.setFromCamera(new ge(h, S), t.camera.value), r.value = t.raycaster.value.intersectObjects(e.value, !0), r.value;
|
|
642
|
+
}, _ = (h) => {
|
|
643
|
+
const S = v({
|
|
644
|
+
x: (h == null ? void 0 : h.clientX) ?? s.value,
|
|
645
|
+
y: (h == null ? void 0 : h.clientY) ?? a.value
|
|
501
646
|
});
|
|
502
|
-
return
|
|
503
|
-
},
|
|
504
|
-
function
|
|
505
|
-
const
|
|
506
|
-
for (const
|
|
507
|
-
typeof
|
|
508
|
-
return
|
|
647
|
+
return S ? u(S) || [] : [];
|
|
648
|
+
}, p = j(), P = j(), m = j(), y = j(), g = j(), E = j(), C = j(), T = j();
|
|
649
|
+
function M(h) {
|
|
650
|
+
const S = {};
|
|
651
|
+
for (const U in h)
|
|
652
|
+
typeof U != "function" && (S[U] = h[U]);
|
|
653
|
+
return S;
|
|
509
654
|
}
|
|
510
|
-
const
|
|
511
|
-
var
|
|
512
|
-
const
|
|
513
|
-
|
|
514
|
-
...
|
|
515
|
-
intersections:
|
|
655
|
+
const w = (h, S) => {
|
|
656
|
+
var Oe, De, je;
|
|
657
|
+
const U = M(S), ne = new Se(S == null ? void 0 : S.clientX, S == null ? void 0 : S.clientY, 0).unproject((Oe = t.camera) == null ? void 0 : Oe.value);
|
|
658
|
+
h.trigger({
|
|
659
|
+
...U,
|
|
660
|
+
intersections: r.value,
|
|
516
661
|
// The unprojectedPoint is wrong, math needs to be fixed
|
|
517
|
-
unprojectedPoint:
|
|
518
|
-
ray: (
|
|
519
|
-
camera: (
|
|
520
|
-
sourceEvent:
|
|
521
|
-
delta:
|
|
662
|
+
unprojectedPoint: ne,
|
|
663
|
+
ray: (De = t.raycaster) == null ? void 0 : De.value.ray,
|
|
664
|
+
camera: (je = t.camera) == null ? void 0 : je.value,
|
|
665
|
+
sourceEvent: S,
|
|
666
|
+
delta: i,
|
|
522
667
|
stopPropagating: !1
|
|
523
668
|
});
|
|
524
669
|
};
|
|
525
|
-
let
|
|
526
|
-
const x = (
|
|
527
|
-
|
|
528
|
-
},
|
|
529
|
-
|
|
670
|
+
let L;
|
|
671
|
+
const x = (h) => {
|
|
672
|
+
_(h), w(m, h), L = h;
|
|
673
|
+
}, d = () => {
|
|
674
|
+
L && x(L);
|
|
530
675
|
};
|
|
531
|
-
let
|
|
532
|
-
const
|
|
533
|
-
var
|
|
534
|
-
|
|
535
|
-
(
|
|
536
|
-
(
|
|
537
|
-
),
|
|
676
|
+
let b, A, D;
|
|
677
|
+
const $ = (h) => {
|
|
678
|
+
var S;
|
|
679
|
+
b = (S = r.value[0]) == null ? void 0 : S.object, i = 0, A = new ge(
|
|
680
|
+
(h == null ? void 0 : h.clientX) ?? s.value,
|
|
681
|
+
(h == null ? void 0 : h.clientY) ?? a.value
|
|
682
|
+
), w(g, h);
|
|
538
683
|
};
|
|
539
|
-
let
|
|
540
|
-
const
|
|
541
|
-
var
|
|
542
|
-
|
|
543
|
-
(
|
|
544
|
-
(
|
|
545
|
-
),
|
|
546
|
-
},
|
|
547
|
-
|
|
548
|
-
},
|
|
549
|
-
return
|
|
550
|
-
|
|
684
|
+
let R, O = !1;
|
|
685
|
+
const q = (h) => {
|
|
686
|
+
var S, U, ne;
|
|
687
|
+
h instanceof PointerEvent && (r.value.length === 0 && w(E, h), b === ((S = r.value[0]) == null ? void 0 : S.object) && (D = new ge(
|
|
688
|
+
(h == null ? void 0 : h.clientX) ?? s.value,
|
|
689
|
+
(h == null ? void 0 : h.clientY) ?? a.value
|
|
690
|
+
), i = A == null ? void 0 : A.distanceTo(D), h.button === 0 ? (w(p, h), R === ((U = r.value[0]) == null ? void 0 : U.object) ? O = !0 : (R = (ne = r.value[0]) == null ? void 0 : ne.object, O = !1)) : h.button === 2 && w(C, h)), w(y, h));
|
|
691
|
+
}, xe = (h) => {
|
|
692
|
+
O && (w(P, h), R = void 0, O = !1);
|
|
693
|
+
}, Le = (h) => w(m, h), Re = (h) => w(T, h);
|
|
694
|
+
return n.value.addEventListener("pointerup", q), n.value.addEventListener("pointerdown", $), n.value.addEventListener("pointermove", x), n.value.addEventListener("pointerleave", Le), n.value.addEventListener("dblclick", xe), n.value.addEventListener("wheel", Re), Q(() => {
|
|
695
|
+
n != null && n.value && (n.value.removeEventListener("pointerup", q), n.value.removeEventListener("pointerdown", $), n.value.removeEventListener("pointermove", x), n.value.removeEventListener("pointerleave", Le), n.value.removeEventListener("dblclick", xe), n.value.removeEventListener("wheel", Re));
|
|
551
696
|
}), {
|
|
552
|
-
intersects:
|
|
553
|
-
onClick: (
|
|
554
|
-
onDblClick: (
|
|
555
|
-
onContextMenu: (
|
|
556
|
-
onPointerMove: (
|
|
557
|
-
onPointerUp: (
|
|
558
|
-
onPointerDown: (
|
|
559
|
-
onPointerMissed: (
|
|
560
|
-
onWheel: (
|
|
561
|
-
forceUpdate:
|
|
697
|
+
intersects: r,
|
|
698
|
+
onClick: (h) => p.on(h).off,
|
|
699
|
+
onDblClick: (h) => P.on(h).off,
|
|
700
|
+
onContextMenu: (h) => C.on(h).off,
|
|
701
|
+
onPointerMove: (h) => m.on(h).off,
|
|
702
|
+
onPointerUp: (h) => y.on(h).off,
|
|
703
|
+
onPointerDown: (h) => g.on(h).off,
|
|
704
|
+
onPointerMissed: (h) => E.on(h).off,
|
|
705
|
+
onWheel: (h) => T.on(h).off,
|
|
706
|
+
forceUpdate: d
|
|
562
707
|
};
|
|
563
708
|
};
|
|
564
|
-
function
|
|
565
|
-
const { logWarning: e } =
|
|
566
|
-
function t(
|
|
567
|
-
let
|
|
568
|
-
return
|
|
569
|
-
|
|
570
|
-
}),
|
|
709
|
+
function zr() {
|
|
710
|
+
const { logWarning: e } = z();
|
|
711
|
+
function t(a, i, l) {
|
|
712
|
+
let c = null;
|
|
713
|
+
return a.traverse((o) => {
|
|
714
|
+
o[i] === l && (c = o);
|
|
715
|
+
}), c || e(`Child with ${i} '${l}' not found.`), c;
|
|
571
716
|
}
|
|
572
|
-
function
|
|
573
|
-
const
|
|
574
|
-
return
|
|
575
|
-
|
|
576
|
-
}),
|
|
717
|
+
function n(a, i, l) {
|
|
718
|
+
const c = [];
|
|
719
|
+
return a.traverse((o) => {
|
|
720
|
+
o[i].includes(l) && c.push(o);
|
|
721
|
+
}), c.length || e(`Children with ${i} '${l}' not found.`), c;
|
|
577
722
|
}
|
|
578
|
-
function
|
|
579
|
-
return t(
|
|
723
|
+
function r(a, i) {
|
|
724
|
+
return t(a, "name", i);
|
|
580
725
|
}
|
|
581
|
-
function s(
|
|
582
|
-
return
|
|
726
|
+
function s(a, i) {
|
|
727
|
+
return n(a, "name", i);
|
|
583
728
|
}
|
|
584
729
|
return {
|
|
585
730
|
seek: t,
|
|
586
|
-
seekByName:
|
|
587
|
-
seekAll:
|
|
731
|
+
seekByName: r,
|
|
732
|
+
seekAll: n,
|
|
588
733
|
seekAllByName: s
|
|
589
734
|
};
|
|
590
735
|
}
|
|
591
|
-
|
|
592
|
-
const t = ze({
|
|
593
|
-
click: /* @__PURE__ */ new Map(),
|
|
594
|
-
pointerMove: /* @__PURE__ */ new Map(),
|
|
595
|
-
pointerEnter: /* @__PURE__ */ new Map(),
|
|
596
|
-
pointerLeave: /* @__PURE__ */ new Map()
|
|
597
|
-
}), r = L(/* @__PURE__ */ new Set()), o = (l) => {
|
|
598
|
-
r.value.add(l);
|
|
599
|
-
}, s = (l) => {
|
|
600
|
-
r.value.delete(l);
|
|
601
|
-
}, c = (l) => {
|
|
602
|
-
Object.values(t).forEach((w) => w.delete(l)), s(l);
|
|
603
|
-
}, i = (l) => {
|
|
604
|
-
const { onClick: w, onPointerMove: b, onPointerEnter: p, onPointerLeave: P } = l;
|
|
605
|
-
w && t.click.set(l, w), b && t.pointerMove.set(l, b), p && t.pointerEnter.set(l, p), P && t.pointerLeave.set(l, P);
|
|
606
|
-
}, a = D(
|
|
607
|
-
() => Cr(
|
|
608
|
-
[
|
|
609
|
-
...Array.from(r.value),
|
|
610
|
-
...Object.values(t).map((l) => Array.from(l.keys())).flat()
|
|
611
|
-
],
|
|
612
|
-
({ uuid: l }) => l
|
|
613
|
-
)
|
|
614
|
-
);
|
|
615
|
-
e.registerObjectAtPointerEventHandler = i, e.deregisterObjectAtPointerEventHandler = c, e.registerBlockingObjectAtPointerEventHandler = o, e.deregisterBlockingObjectAtPointerEventHandler = s;
|
|
616
|
-
const { onClick: n, onPointerMove: f } = tt(a, e);
|
|
617
|
-
n(({ intersects: l, event: w }) => {
|
|
618
|
-
var b;
|
|
619
|
-
l.length && ((b = t.click.get(l[0].object)) == null || b(l[0], w));
|
|
620
|
-
});
|
|
621
|
-
let h;
|
|
622
|
-
return f(({ intersects: l, event: w }) => {
|
|
623
|
-
var g, d, M, _;
|
|
624
|
-
const b = (g = l == null ? void 0 : l[0]) == null ? void 0 : g.object, { pointerLeave: p, pointerEnter: P, pointerMove: y } = t;
|
|
625
|
-
h && h !== b && ((d = p.get(h)) == null || d(h, w)), b && (h !== b && ((M = P.get(b)) == null || M(l[0], w)), (_ = y.get(b)) == null || _(l[0], w)), h = b || null;
|
|
626
|
-
}), {
|
|
627
|
-
registerObject: i,
|
|
628
|
-
deregisterObject: c,
|
|
629
|
-
registerBlockingObject: o,
|
|
630
|
-
deregisterBlockingObject: s
|
|
631
|
-
};
|
|
632
|
-
};
|
|
633
|
-
function be(e) {
|
|
736
|
+
function ke(e) {
|
|
634
737
|
let t = 0;
|
|
635
|
-
return e.traverse((
|
|
636
|
-
if (
|
|
637
|
-
const
|
|
638
|
-
t +=
|
|
738
|
+
return e.traverse((n) => {
|
|
739
|
+
if (n.isMesh && n.geometry) {
|
|
740
|
+
const r = n.geometry, s = r.attributes.position.count * 3 * Float32Array.BYTES_PER_ELEMENT, a = r.index ? r.index.count * Uint32Array.BYTES_PER_ELEMENT : 0, i = r.attributes.normal ? r.attributes.normal.count * 3 * Float32Array.BYTES_PER_ELEMENT : 0, l = r.attributes.uv ? r.attributes.uv.count * 2 * Float32Array.BYTES_PER_ELEMENT : 0, c = s + a + i + l;
|
|
741
|
+
t += c;
|
|
639
742
|
}
|
|
640
743
|
}), t;
|
|
641
744
|
}
|
|
642
|
-
function
|
|
745
|
+
function cr(e) {
|
|
643
746
|
return (e / 1024).toFixed(2);
|
|
644
747
|
}
|
|
645
|
-
const
|
|
646
|
-
function
|
|
647
|
-
|
|
748
|
+
const Me = I({}), Ce = (e) => Object.assign(Me.value, e);
|
|
749
|
+
function ur(e, t, n) {
|
|
750
|
+
var x;
|
|
751
|
+
const r = H(), s = H();
|
|
752
|
+
e && (r.value = e), t && (s.value = t);
|
|
753
|
+
const a = (d) => {
|
|
754
|
+
var b;
|
|
755
|
+
return ((b = d.__tres) == null ? void 0 : b.eventCount) > 0;
|
|
756
|
+
}, i = (d) => {
|
|
757
|
+
var b;
|
|
758
|
+
return ((b = d.children) == null ? void 0 : b.some((A) => i(A))) || a(d);
|
|
759
|
+
}, l = H(((x = r.value) == null ? void 0 : x.children).filter(i) || []);
|
|
760
|
+
function c(d, b) {
|
|
761
|
+
if (Array.isArray(d))
|
|
762
|
+
for (const A of d)
|
|
763
|
+
A(b);
|
|
764
|
+
typeof d == "function" && d(b);
|
|
765
|
+
}
|
|
766
|
+
function o(d, b) {
|
|
767
|
+
const A = [], D = () => b.stopPropagating = !0;
|
|
768
|
+
b.stopPropagation = D;
|
|
769
|
+
for (const $ of b == null ? void 0 : b.intersections) {
|
|
770
|
+
if (b.stopPropagating)
|
|
771
|
+
return;
|
|
772
|
+
b = { ...b, ...$ };
|
|
773
|
+
const { object: R } = $;
|
|
774
|
+
b.eventObject = R, c(R[d], b), A.push(R);
|
|
775
|
+
let O = R.parent;
|
|
776
|
+
for (; O !== null && !b.stopPropagating && !A.includes(O); )
|
|
777
|
+
b.eventObject = O, c(O[d], b), A.push(O), O = O.parent;
|
|
778
|
+
const q = zn(d.slice(2));
|
|
779
|
+
n(q, { intersection: $, event: b });
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
const {
|
|
783
|
+
onClick: f,
|
|
784
|
+
onDblClick: v,
|
|
785
|
+
onContextMenu: u,
|
|
786
|
+
onPointerMove: _,
|
|
787
|
+
onPointerDown: p,
|
|
788
|
+
onPointerUp: P,
|
|
789
|
+
onPointerMissed: m,
|
|
790
|
+
onWheel: y,
|
|
791
|
+
forceUpdate: g
|
|
792
|
+
} = lr(l, t);
|
|
793
|
+
P((d) => o("onPointerUp", d)), p((d) => o("onPointerDown", d)), f((d) => o("onClick", d)), v((d) => o("onDoubleClick", d)), u((d) => o("onContextMenu", d)), y((d) => o("onWheel", d));
|
|
794
|
+
let E = [];
|
|
795
|
+
_((d) => {
|
|
796
|
+
const b = d.intersections.map(({ object: D }) => D), A = d.intersections;
|
|
797
|
+
E.forEach(({ object: D }) => {
|
|
798
|
+
b.includes(D) || (d.intersections = E, o("onPointerLeave", d), o("onPointerOut", d));
|
|
799
|
+
}), d.intersections = A, d.intersections.forEach(({ object: D }) => {
|
|
800
|
+
E.includes(D) || (o("onPointerEnter", d), o("onPointerOver", d));
|
|
801
|
+
}), o("onPointerMove", d), E = d.intersections;
|
|
802
|
+
});
|
|
803
|
+
const C = [];
|
|
804
|
+
m((d) => {
|
|
805
|
+
const b = () => d.stopPropagating = !0;
|
|
806
|
+
d.stopPropagation = b, C.forEach((A) => {
|
|
807
|
+
d.stopPropagating || (d.eventObject = A, c(A.onPointerMissed, d));
|
|
808
|
+
}), n("pointer-missed", { event: d });
|
|
809
|
+
});
|
|
810
|
+
function T(d) {
|
|
811
|
+
re(d) && W(d) && l.value.push(d);
|
|
812
|
+
}
|
|
813
|
+
function M(d) {
|
|
814
|
+
if (re(d) && W(d)) {
|
|
815
|
+
const b = l.value.indexOf(d);
|
|
816
|
+
b > -1 && l.value.splice(b, 1);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
function w(d) {
|
|
820
|
+
re(d) && W(d) && d.onPointerMissed && C.push(d);
|
|
821
|
+
}
|
|
822
|
+
function L(d) {
|
|
823
|
+
if (re(d) && W(d)) {
|
|
824
|
+
const b = C.indexOf(d);
|
|
825
|
+
b > -1 && C.splice(b, 1);
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
return t.eventManager = {
|
|
829
|
+
forceUpdate: g,
|
|
830
|
+
registerObject: T,
|
|
831
|
+
deregisterObject: M,
|
|
832
|
+
registerPointerMissedObject: w,
|
|
833
|
+
deregisterPointerMissedObject: L
|
|
834
|
+
}, {
|
|
835
|
+
forceUpdate: g,
|
|
836
|
+
registerObject: T,
|
|
837
|
+
deregisterObject: M,
|
|
838
|
+
registerPointerMissedObject: w,
|
|
839
|
+
deregisterPointerMissedObject: L
|
|
840
|
+
};
|
|
841
|
+
}
|
|
842
|
+
function fr(e, t, n = 10) {
|
|
843
|
+
const r = k(e) ? rn() : on(Y(() => k(t).parentElement)), s = ye(Fe(r.width, n)), a = ye(Fe(r.height, n)), i = Y(() => s.value / a.value);
|
|
648
844
|
return {
|
|
649
|
-
height:
|
|
845
|
+
height: a,
|
|
650
846
|
width: s,
|
|
651
847
|
aspectRatio: i
|
|
652
848
|
};
|
|
653
849
|
}
|
|
654
|
-
function
|
|
850
|
+
function ve() {
|
|
655
851
|
const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Set();
|
|
656
|
-
let
|
|
852
|
+
let n = 0, r = !1;
|
|
657
853
|
const s = () => {
|
|
658
|
-
const
|
|
659
|
-
const
|
|
660
|
-
return
|
|
854
|
+
const o = Array.from(e.entries()).sort((f, v) => {
|
|
855
|
+
const u = f[1].priority - v[1].priority;
|
|
856
|
+
return u === 0 ? f[1].addI - v[1].addI : u;
|
|
661
857
|
});
|
|
662
|
-
t.clear(),
|
|
663
|
-
},
|
|
664
|
-
e.delete(
|
|
858
|
+
t.clear(), o.forEach((f) => t.add(f[0]));
|
|
859
|
+
}, a = (o) => {
|
|
860
|
+
e.delete(o), t.delete(o);
|
|
665
861
|
};
|
|
666
|
-
return { on: (
|
|
667
|
-
e.set(
|
|
668
|
-
const
|
|
669
|
-
return
|
|
670
|
-
off:
|
|
862
|
+
return { on: (o, f = 0) => {
|
|
863
|
+
e.set(o, { priority: f, addI: n++ });
|
|
864
|
+
const v = () => a(o);
|
|
865
|
+
return sn(v), r = !0, {
|
|
866
|
+
off: v
|
|
671
867
|
};
|
|
672
|
-
}, off:
|
|
673
|
-
|
|
868
|
+
}, off: a, trigger: (...o) => {
|
|
869
|
+
r && (s(), r = !1), t.forEach((f) => f(...o));
|
|
674
870
|
}, dispose: () => {
|
|
675
871
|
e.clear(), t.clear();
|
|
676
872
|
}, get count() {
|
|
677
873
|
return e.size;
|
|
678
874
|
} };
|
|
679
875
|
}
|
|
680
|
-
function
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
876
|
+
function dr() {
|
|
877
|
+
let e = !0, t = !0, n = !1;
|
|
878
|
+
const r = new tt(!1), s = I(r.running), a = I(!1);
|
|
879
|
+
let i;
|
|
880
|
+
const l = rt.generateUUID();
|
|
684
881
|
let c = null;
|
|
685
|
-
const
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
882
|
+
const o = ve(), f = ve(), v = ve();
|
|
883
|
+
M();
|
|
884
|
+
let u = {};
|
|
885
|
+
function _(w) {
|
|
886
|
+
u = w;
|
|
689
887
|
}
|
|
690
|
-
function
|
|
691
|
-
switch (
|
|
888
|
+
function p(w, L, x = 0) {
|
|
889
|
+
switch (L) {
|
|
692
890
|
case "before":
|
|
693
|
-
return
|
|
891
|
+
return o.on(w, x);
|
|
694
892
|
case "render":
|
|
695
|
-
return c || (c =
|
|
893
|
+
return c || (c = w), f.dispose(), f.on(w);
|
|
696
894
|
case "after":
|
|
697
|
-
return
|
|
895
|
+
return v.on(w, x);
|
|
698
896
|
}
|
|
699
897
|
}
|
|
700
|
-
function w() {
|
|
701
|
-
t.value || (e.start(), t.value = !0, d());
|
|
702
|
-
}
|
|
703
|
-
function b() {
|
|
704
|
-
t.value && (e.stop(), cancelAnimationFrame(o), t.value = !1);
|
|
705
|
-
}
|
|
706
|
-
function p() {
|
|
707
|
-
e.stop(), t.value = !1;
|
|
708
|
-
}
|
|
709
898
|
function P() {
|
|
710
|
-
|
|
899
|
+
t && (t = !1, M(), T());
|
|
900
|
+
}
|
|
901
|
+
function m() {
|
|
902
|
+
t = !0, M(), cancelAnimationFrame(i);
|
|
711
903
|
}
|
|
712
904
|
function y() {
|
|
713
|
-
|
|
905
|
+
n = !1, M();
|
|
714
906
|
}
|
|
715
907
|
function g() {
|
|
716
|
-
|
|
908
|
+
n = !0, M();
|
|
909
|
+
}
|
|
910
|
+
function E() {
|
|
911
|
+
a.value = !0;
|
|
912
|
+
}
|
|
913
|
+
function C() {
|
|
914
|
+
a.value = !1;
|
|
915
|
+
}
|
|
916
|
+
function T() {
|
|
917
|
+
if (!e) {
|
|
918
|
+
i = requestAnimationFrame(T);
|
|
919
|
+
return;
|
|
920
|
+
}
|
|
921
|
+
const w = r.getDelta(), L = r.getElapsedTime(), x = {
|
|
922
|
+
camera: K(u.camera),
|
|
923
|
+
scene: K(u.scene),
|
|
924
|
+
renderer: K(u.renderer),
|
|
925
|
+
raycaster: K(u.raycaster),
|
|
926
|
+
controls: K(u.controls),
|
|
927
|
+
invalidate: u.invalidate,
|
|
928
|
+
advance: u.advance
|
|
929
|
+
}, d = { delta: w, elapsed: L, clock: r, ...x };
|
|
930
|
+
s.value && o.trigger(d), a.value || (f.count ? f.trigger(d) : c && c(d)), s.value && v.trigger(d), i = requestAnimationFrame(T);
|
|
931
|
+
}
|
|
932
|
+
function M() {
|
|
933
|
+
const w = !t && !n;
|
|
934
|
+
r.running !== w && (r.running ? r.stop() : r.start()), s.value = r.running;
|
|
935
|
+
}
|
|
936
|
+
return {
|
|
937
|
+
loopId: l,
|
|
938
|
+
register: (w, L, x) => p(w, L, x),
|
|
939
|
+
start: P,
|
|
940
|
+
stop: m,
|
|
941
|
+
pause: g,
|
|
942
|
+
resume: y,
|
|
943
|
+
pauseRender: E,
|
|
944
|
+
resumeRender: C,
|
|
945
|
+
isRenderPaused: a,
|
|
946
|
+
isActive: s,
|
|
947
|
+
setContext: _,
|
|
948
|
+
setReady: (w) => e = w
|
|
949
|
+
};
|
|
950
|
+
}
|
|
951
|
+
function pr(e, t, n = 100) {
|
|
952
|
+
n = n <= 0 ? 100 : n;
|
|
953
|
+
const r = j(), s = /* @__PURE__ */ new Set();
|
|
954
|
+
let a = !1, i = !1, l = null;
|
|
955
|
+
function c() {
|
|
956
|
+
l && clearTimeout(l), !i && !a && e() ? (r.trigger(t), s.forEach((u) => u()), s.clear(), a = !0) : !i && !a && (l = setTimeout(c, n));
|
|
717
957
|
}
|
|
718
|
-
function
|
|
719
|
-
|
|
720
|
-
camera: W(f.camera),
|
|
721
|
-
scene: W(f.scene),
|
|
722
|
-
renderer: W(f.renderer),
|
|
723
|
-
raycaster: W(f.raycaster),
|
|
724
|
-
controls: W(f.controls),
|
|
725
|
-
invalidate: f.invalidate,
|
|
726
|
-
advance: f.advance
|
|
727
|
-
}, v = { delta: M, elapsed: _, clock: e, ...u };
|
|
728
|
-
t.value && i.trigger(v), r.value || (a.count ? a.trigger(v) : c && c(v)), t.value && n.trigger(v), o = requestAnimationFrame(d);
|
|
958
|
+
function o() {
|
|
959
|
+
i = !0, l && clearTimeout(l);
|
|
729
960
|
}
|
|
961
|
+
c();
|
|
962
|
+
const f = (u, ..._) => {
|
|
963
|
+
u(..._);
|
|
964
|
+
};
|
|
730
965
|
return {
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
966
|
+
on: (u) => {
|
|
967
|
+
if (a)
|
|
968
|
+
return f(u, t), { off: () => {
|
|
969
|
+
} };
|
|
970
|
+
{
|
|
971
|
+
const _ = r.on(u);
|
|
972
|
+
return s.add(_.off), r.on(u);
|
|
973
|
+
}
|
|
974
|
+
},
|
|
975
|
+
off: r.off,
|
|
976
|
+
trigger: r.trigger,
|
|
977
|
+
cancel: o
|
|
742
978
|
};
|
|
743
979
|
}
|
|
744
|
-
|
|
980
|
+
const te = /* @__PURE__ */ new WeakMap();
|
|
981
|
+
function gt(e) {
|
|
982
|
+
if (e = e || pe(), te.has(e))
|
|
983
|
+
return te.get(e);
|
|
984
|
+
const t = 100, n = Date.now(), a = pr(() => {
|
|
985
|
+
if (Date.now() - n >= t)
|
|
986
|
+
return !0;
|
|
987
|
+
{
|
|
988
|
+
const i = e.renderer.value, l = (i == null ? void 0 : i.domElement) || { width: 0, height: 0 };
|
|
989
|
+
return !!(i && l.width > 0 && l.height > 0);
|
|
990
|
+
}
|
|
991
|
+
}, e);
|
|
992
|
+
return te.set(e, a), a;
|
|
993
|
+
}
|
|
994
|
+
function Gr(e) {
|
|
995
|
+
const t = pe();
|
|
996
|
+
if (t)
|
|
997
|
+
return te.has(t) ? te.get(t).on(e) : gt(t).on(e);
|
|
998
|
+
}
|
|
999
|
+
function mr({
|
|
745
1000
|
scene: e,
|
|
746
1001
|
canvas: t,
|
|
747
|
-
windowSize:
|
|
748
|
-
disableRender:
|
|
1002
|
+
windowSize: n,
|
|
1003
|
+
disableRender: r,
|
|
749
1004
|
rendererOptions: s,
|
|
750
|
-
emit:
|
|
1005
|
+
emit: a
|
|
751
1006
|
}) {
|
|
752
|
-
const { logWarning: i } =
|
|
753
|
-
camera:
|
|
754
|
-
cameras:
|
|
755
|
-
registerCamera:
|
|
756
|
-
deregisterCamera:
|
|
757
|
-
setCameraActive:
|
|
758
|
-
} =
|
|
759
|
-
mode:
|
|
760
|
-
priority:
|
|
761
|
-
frames:
|
|
1007
|
+
const { logWarning: i } = z(), l = H(e), c = fr(n, t), {
|
|
1008
|
+
camera: o,
|
|
1009
|
+
cameras: f,
|
|
1010
|
+
registerCamera: v,
|
|
1011
|
+
deregisterCamera: u,
|
|
1012
|
+
setCameraActive: _
|
|
1013
|
+
} = jn({ sizes: c, scene: e }), p = {
|
|
1014
|
+
mode: I(s.renderMode || "always"),
|
|
1015
|
+
priority: I(0),
|
|
1016
|
+
frames: I(0),
|
|
762
1017
|
maxFrames: 60,
|
|
763
|
-
canBeInvalidated:
|
|
1018
|
+
canBeInvalidated: Y(() => p.mode.value === "on-demand" && p.frames.value === 0)
|
|
764
1019
|
};
|
|
765
|
-
function P(
|
|
766
|
-
s.renderMode === "on-demand" ? p.frames.value = Math.min(p.maxFrames, p.frames.value +
|
|
1020
|
+
function P(R = 1) {
|
|
1021
|
+
s.renderMode === "on-demand" ? p.frames.value = Math.min(p.maxFrames, p.frames.value + R) : i("`invalidate` can only be used when `renderMode` is set to `on-demand`");
|
|
767
1022
|
}
|
|
768
|
-
function
|
|
1023
|
+
function m() {
|
|
769
1024
|
s.renderMode === "manual" ? p.frames.value = 1 : i("`advance` can only be used when `renderMode` is set to `manual`");
|
|
770
1025
|
}
|
|
771
|
-
const { renderer:
|
|
1026
|
+
const { renderer: y } = sr(
|
|
772
1027
|
{
|
|
773
1028
|
scene: e,
|
|
774
1029
|
canvas: t,
|
|
775
1030
|
options: s,
|
|
776
|
-
emit:
|
|
1031
|
+
emit: a,
|
|
777
1032
|
// TODO: replace contextParts with full ctx at https://github.com/Tresjs/tres/issues/516
|
|
778
|
-
contextParts: { sizes:
|
|
779
|
-
disableRender:
|
|
1033
|
+
contextParts: { sizes: c, camera: o, render: p, invalidate: P, advance: m },
|
|
1034
|
+
disableRender: r
|
|
780
1035
|
}
|
|
781
|
-
),
|
|
782
|
-
sizes:
|
|
783
|
-
scene:
|
|
784
|
-
camera:
|
|
785
|
-
cameras:
|
|
786
|
-
renderer:
|
|
787
|
-
raycaster: H(new
|
|
788
|
-
controls:
|
|
1036
|
+
), g = {
|
|
1037
|
+
sizes: c,
|
|
1038
|
+
scene: l,
|
|
1039
|
+
camera: o,
|
|
1040
|
+
cameras: ye(f),
|
|
1041
|
+
renderer: y,
|
|
1042
|
+
raycaster: H(new Ft()),
|
|
1043
|
+
controls: I(null),
|
|
789
1044
|
perf: {
|
|
790
1045
|
maxFrames: 160,
|
|
791
1046
|
fps: {
|
|
@@ -799,151 +1054,105 @@ function $r({
|
|
|
799
1054
|
}
|
|
800
1055
|
},
|
|
801
1056
|
render: p,
|
|
802
|
-
advance:
|
|
803
|
-
extend:
|
|
1057
|
+
advance: m,
|
|
1058
|
+
extend: Ce,
|
|
804
1059
|
invalidate: P,
|
|
805
|
-
registerCamera:
|
|
806
|
-
setCameraActive:
|
|
807
|
-
deregisterCamera:
|
|
808
|
-
loop:
|
|
1060
|
+
registerCamera: v,
|
|
1061
|
+
setCameraActive: _,
|
|
1062
|
+
deregisterCamera: u,
|
|
1063
|
+
loop: dr()
|
|
809
1064
|
};
|
|
810
|
-
|
|
811
|
-
root:
|
|
812
|
-
},
|
|
813
|
-
|
|
814
|
-
}, "render")
|
|
815
|
-
|
|
1065
|
+
_e("useTres", g), g.scene.value.__tres = {
|
|
1066
|
+
root: g
|
|
1067
|
+
}, g.loop.register(() => {
|
|
1068
|
+
o.value && p.frames.value > 0 && (y.value.render(e, o.value), a("render", g.renderer.value)), p.priority.value = 0, p.mode.value === "always" ? p.frames.value = 1 : p.frames.value = Math.max(0, p.frames.value - 1);
|
|
1069
|
+
}, "render");
|
|
1070
|
+
const { on: E, cancel: C } = gt(g);
|
|
1071
|
+
g.loop.setReady(!1), g.loop.start(), E(() => {
|
|
1072
|
+
a("ready", g), g.loop.setReady(!0), ur(e, g, a);
|
|
1073
|
+
}), Q(() => {
|
|
1074
|
+
C(), g.loop.stop();
|
|
816
1075
|
});
|
|
817
|
-
const
|
|
818
|
-
let
|
|
819
|
-
const
|
|
820
|
-
|
|
1076
|
+
const T = 100, M = an({ every: T }), { isSupported: w, memory: L } = ln({ interval: T }), x = 160;
|
|
1077
|
+
let d = performance.now();
|
|
1078
|
+
const b = ({ timestamp: R }) => {
|
|
1079
|
+
g.scene.value && (g.perf.memory.allocatedMem = ke(g.scene.value)), R - d >= T && (d = R, g.perf.fps.accumulator.push(M.value), g.perf.fps.accumulator.length > x && g.perf.fps.accumulator.shift(), g.perf.fps.value = M.value, w.value && L.value && (g.perf.memory.accumulator.push(L.value.usedJSHeapSize / 1024 / 1024), g.perf.memory.accumulator.length > x && g.perf.memory.accumulator.shift(), g.perf.memory.currentMem = g.perf.memory.accumulator.reduce((O, q) => O + q, 0) / g.perf.memory.accumulator.length));
|
|
821
1080
|
};
|
|
822
|
-
let
|
|
823
|
-
const
|
|
824
|
-
window.__TRES__DEVTOOLS__ && (
|
|
1081
|
+
let A = 0;
|
|
1082
|
+
const D = 1, { pause: $ } = it(({ delta: R }) => {
|
|
1083
|
+
window.__TRES__DEVTOOLS__ && (b({ timestamp: performance.now() }), A += R, A >= D && (window.__TRES__DEVTOOLS__.cb(g), A = 0));
|
|
825
1084
|
}, { immediate: !0 });
|
|
826
|
-
return
|
|
827
|
-
|
|
828
|
-
}),
|
|
1085
|
+
return Q(() => {
|
|
1086
|
+
$();
|
|
1087
|
+
}), g;
|
|
829
1088
|
}
|
|
830
|
-
function
|
|
831
|
-
const e =
|
|
1089
|
+
function pe() {
|
|
1090
|
+
const e = Mt("useTres");
|
|
832
1091
|
if (!e)
|
|
833
1092
|
throw new Error("useTresContext must be used together with useTresContextProvider");
|
|
834
1093
|
return e;
|
|
835
1094
|
}
|
|
836
|
-
const
|
|
837
|
-
function
|
|
1095
|
+
const Vr = pe;
|
|
1096
|
+
function Yr() {
|
|
838
1097
|
const {
|
|
839
1098
|
camera: e,
|
|
840
1099
|
scene: t,
|
|
841
|
-
renderer:
|
|
842
|
-
loop:
|
|
1100
|
+
renderer: n,
|
|
1101
|
+
loop: r,
|
|
843
1102
|
raycaster: s,
|
|
844
|
-
controls:
|
|
1103
|
+
controls: a,
|
|
845
1104
|
invalidate: i,
|
|
846
|
-
advance:
|
|
847
|
-
} =
|
|
848
|
-
|
|
1105
|
+
advance: l
|
|
1106
|
+
} = pe();
|
|
1107
|
+
r.setContext({
|
|
849
1108
|
camera: e,
|
|
850
1109
|
scene: t,
|
|
851
|
-
renderer:
|
|
1110
|
+
renderer: n,
|
|
852
1111
|
raycaster: s,
|
|
853
|
-
controls:
|
|
1112
|
+
controls: a,
|
|
854
1113
|
invalidate: i,
|
|
855
|
-
advance:
|
|
1114
|
+
advance: l
|
|
856
1115
|
});
|
|
857
|
-
function
|
|
858
|
-
return
|
|
1116
|
+
function c(v, u = 0) {
|
|
1117
|
+
return r.register(v, "before", u);
|
|
859
1118
|
}
|
|
860
|
-
function
|
|
861
|
-
return
|
|
1119
|
+
function o(v) {
|
|
1120
|
+
return r.register(v, "render");
|
|
862
1121
|
}
|
|
863
|
-
function
|
|
864
|
-
return
|
|
1122
|
+
function f(v, u = 0) {
|
|
1123
|
+
return r.register(v, "after", u);
|
|
865
1124
|
}
|
|
866
1125
|
return {
|
|
867
|
-
pause:
|
|
868
|
-
resume:
|
|
869
|
-
pauseRender:
|
|
870
|
-
resumeRender:
|
|
871
|
-
isActive:
|
|
872
|
-
onBeforeRender:
|
|
873
|
-
render:
|
|
874
|
-
onAfterRender:
|
|
1126
|
+
pause: r.pause,
|
|
1127
|
+
resume: r.resume,
|
|
1128
|
+
pauseRender: r.pauseRender,
|
|
1129
|
+
resumeRender: r.resumeRender,
|
|
1130
|
+
isActive: r.isActive,
|
|
1131
|
+
onBeforeRender: c,
|
|
1132
|
+
render: o,
|
|
1133
|
+
onAfterRender: f
|
|
875
1134
|
};
|
|
876
1135
|
}
|
|
877
|
-
function
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
);
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
for (const B of v == null ? void 0 : v.intersections) {
|
|
893
|
-
if (v.stopPropagating)
|
|
894
|
-
return;
|
|
895
|
-
v = { ...v, ...B };
|
|
896
|
-
const { object: x } = B;
|
|
897
|
-
v.eventObject = x, i(x[u], v), E.push(x);
|
|
898
|
-
let k = x.parent;
|
|
899
|
-
for (; k !== null && !v.stopPropagating && !E.includes(k); )
|
|
900
|
-
v.eventObject = k, i(k[u], v), E.push(k), k = k.parent;
|
|
901
|
-
const F = Pr(u.slice(2));
|
|
902
|
-
r(F, { intersection: B, event: v });
|
|
1136
|
+
function hr(e, t = {}, n = {}) {
|
|
1137
|
+
let r = e;
|
|
1138
|
+
const s = (l) => {
|
|
1139
|
+
r = l;
|
|
1140
|
+
};
|
|
1141
|
+
let a = new Proxy({}, {});
|
|
1142
|
+
const i = {
|
|
1143
|
+
has(l, c) {
|
|
1144
|
+
return c in t || c in r;
|
|
1145
|
+
},
|
|
1146
|
+
get(l, c, o) {
|
|
1147
|
+
return c in t ? t[c](r) : r[c];
|
|
1148
|
+
},
|
|
1149
|
+
set(l, c, o) {
|
|
1150
|
+
return n[c] ? n[c](o, r, a, s) : r[c] = o, !0;
|
|
903
1151
|
}
|
|
904
|
-
}
|
|
905
|
-
|
|
906
|
-
onClick: n,
|
|
907
|
-
onDblClick: f,
|
|
908
|
-
onContextMenu: h,
|
|
909
|
-
onPointerMove: l,
|
|
910
|
-
onPointerDown: w,
|
|
911
|
-
onPointerUp: b,
|
|
912
|
-
onPointerMissed: p,
|
|
913
|
-
onWheel: P,
|
|
914
|
-
forceUpdate: y
|
|
915
|
-
} = tt(c, t);
|
|
916
|
-
b((u) => a("onPointerUp", u)), w((u) => a("onPointerDown", u)), n((u) => a("onClick", u)), f((u) => a("onDoubleClick", u)), h((u) => a("onContextMenu", u)), P((u) => a("onWheel", u));
|
|
917
|
-
let g = [];
|
|
918
|
-
l((u) => {
|
|
919
|
-
const v = u.intersections.map(({ object: S }) => S), E = u.intersections;
|
|
920
|
-
g.forEach(({ object: S }) => {
|
|
921
|
-
v.includes(S) || (u.intersections = g, a("onPointerLeave", u), a("onPointerOut", u));
|
|
922
|
-
}), u.intersections = E, u.intersections.forEach(({ object: S }) => {
|
|
923
|
-
g.includes(S) || (a("onPointerEnter", u), a("onPointerOver", u));
|
|
924
|
-
}), a("onPointerMove", u), g = u.intersections;
|
|
925
|
-
});
|
|
926
|
-
const d = [];
|
|
927
|
-
p((u) => {
|
|
928
|
-
const v = () => u.stopPropagating = !0;
|
|
929
|
-
u.stopPropagation = v, d.forEach((E) => {
|
|
930
|
-
u.stopPropagating || (u.eventObject = E, i(E.onPointerMissed, u));
|
|
931
|
-
}), r("pointer-missed", { event: u });
|
|
932
|
-
});
|
|
933
|
-
function M(u) {
|
|
934
|
-
d.push(u);
|
|
935
|
-
}
|
|
936
|
-
function _(u) {
|
|
937
|
-
const v = d.indexOf(u);
|
|
938
|
-
v > -1 && d.splice(v, 1);
|
|
939
|
-
}
|
|
940
|
-
return t.eventManager = {
|
|
941
|
-
forceUpdate: y,
|
|
942
|
-
registerPointerMissedObject: M,
|
|
943
|
-
deregisterPointerMissedObject: _
|
|
944
|
-
}, { forceUpdate: y, registerPointerMissedObject: M, deregisterPointerMissedObject: _ };
|
|
1152
|
+
};
|
|
1153
|
+
return a = new Proxy({}, i), a;
|
|
945
1154
|
}
|
|
946
|
-
const { logError:
|
|
1155
|
+
const { logError: Ke } = z(), Qe = [
|
|
947
1156
|
"onClick",
|
|
948
1157
|
"onContextMenu",
|
|
949
1158
|
"onPointerMove",
|
|
@@ -958,245 +1167,251 @@ const { logError: $e } = $(), Fe = [
|
|
|
958
1167
|
"onPointerMissed",
|
|
959
1168
|
"onLostPointerCapture",
|
|
960
1169
|
"onWheel"
|
|
961
|
-
]
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
t && t.render && t.render.canBeInvalidated.value && t.invalidate();
|
|
966
|
-
}
|
|
967
|
-
const Ur = () => {
|
|
968
|
-
let e = null;
|
|
969
|
-
function t(n, f, h, l) {
|
|
970
|
-
if (l || (l = {}), l.args || (l.args = []), n === "template" || br(n))
|
|
1170
|
+
], gr = (e) => {
|
|
1171
|
+
const t = e.scene.value;
|
|
1172
|
+
function n(o, f, v, u) {
|
|
1173
|
+
if (u || (u = {}), u.args || (u.args = []), o === "template" || Wn(o))
|
|
971
1174
|
return null;
|
|
972
|
-
let
|
|
973
|
-
if (
|
|
974
|
-
(
|
|
975
|
-
|
|
976
|
-
|
|
1175
|
+
let _ = o.replace("Tres", ""), p;
|
|
1176
|
+
if (o === "primitive") {
|
|
1177
|
+
(!N(u.object) || Ct(u.object)) && Ke(
|
|
1178
|
+
"Tres primitives need an 'object' prop, whose value is an object or shallowRef<object>"
|
|
1179
|
+
), _ = u.object.type;
|
|
1180
|
+
const P = {};
|
|
1181
|
+
p = hr(
|
|
1182
|
+
u.object,
|
|
1183
|
+
{
|
|
1184
|
+
object: (y) => y,
|
|
1185
|
+
isPrimitive: () => !0,
|
|
1186
|
+
__tres: () => P
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
object: (y, g, E, C) => {
|
|
1190
|
+
rr(y, E, C, { patchProp: a, remove: s, insert: r }, e);
|
|
1191
|
+
},
|
|
1192
|
+
__tres: (y) => {
|
|
1193
|
+
Object.assign(P, y);
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
);
|
|
977
1197
|
} else {
|
|
978
|
-
const
|
|
979
|
-
|
|
980
|
-
`${
|
|
981
|
-
),
|
|
1198
|
+
const P = Me.value[_];
|
|
1199
|
+
P || Ke(
|
|
1200
|
+
`${_} is not defined on the THREE namespace. Use extend to add it to the catalog.`
|
|
1201
|
+
), p = new P(...u.args);
|
|
982
1202
|
}
|
|
983
|
-
return
|
|
984
|
-
...
|
|
985
|
-
type:
|
|
986
|
-
memoizedProps:
|
|
1203
|
+
return p ? (p.isCamera && (u != null && u.position || p.position.set(3, 3, 3), u != null && u.lookAt || p.lookAt(0, 0, 0)), p = G(p, {
|
|
1204
|
+
...p.__tres,
|
|
1205
|
+
type: _,
|
|
1206
|
+
memoizedProps: u,
|
|
987
1207
|
eventCount: 0,
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
},
|
|
1208
|
+
primitive: o === "primitive",
|
|
1209
|
+
attach: u.attach
|
|
1210
|
+
}, e), p) : null;
|
|
991
1211
|
}
|
|
992
|
-
function r(
|
|
993
|
-
var
|
|
994
|
-
if (!
|
|
1212
|
+
function r(o, f) {
|
|
1213
|
+
var _, p, P;
|
|
1214
|
+
if (!o)
|
|
995
1215
|
return;
|
|
996
|
-
f
|
|
997
|
-
const
|
|
998
|
-
|
|
999
|
-
const { registerCamera: y } = (l = n == null ? void 0 : n.__tres) == null ? void 0 : l.root;
|
|
1000
|
-
n != null && n.isCamera && y(n), n.onPointerMissed && ((w = n == null ? void 0 : n.__tres) != null && w.root) && ((P = (p = (b = n == null ? void 0 : n.__tres) == null ? void 0 : b.root) == null ? void 0 : p.eventManager) == null || P.registerPointerMissedObject(n));
|
|
1001
|
-
}
|
|
1002
|
-
n != null && n.isObject3D && (h != null && h.isObject3D) ? (h.add(n), n.dispatchEvent({ type: "added" })) : n != null && n.isFog ? h.fog = n : typeof (n == null ? void 0 : n.attach) == "string" && (n.__previousAttach = n[h == null ? void 0 : h.attach], h && (h[n.attach] = n));
|
|
1216
|
+
f = f || t;
|
|
1217
|
+
const v = o.__tres ? o : G(o, {}, e), u = f.__tres ? f : G(f, {}, e);
|
|
1218
|
+
o = X(v), f = X(u), o.__tres && ((_ = o.__tres) == null ? void 0 : _.eventCount) > 0 && ((p = e.eventManager) == null || p.registerObject(o)), e.registerCamera(o), (P = e.eventManager) == null || P.registerPointerMissedObject(o), v.__tres.attach ? er(u, v, v.__tres.attach) : W(o) && W(u) && (u.add(o), o.dispatchEvent({ type: "added" })), v.__tres.parent = u, u.__tres.objects && !u.__tres.objects.includes(v) && u.__tres.objects.push(v);
|
|
1003
1219
|
}
|
|
1004
|
-
function o
|
|
1005
|
-
var
|
|
1006
|
-
if (!
|
|
1220
|
+
function s(o, f) {
|
|
1221
|
+
var p, P, m, y;
|
|
1222
|
+
if (!o)
|
|
1007
1223
|
return;
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1224
|
+
o != null && o.__tres && ((p = o.__tres) == null ? void 0 : p.eventCount) > 0 && ((P = e.eventManager) == null || P.deregisterObject(o)), f = be(f) ? "default" : f;
|
|
1225
|
+
const v = (m = o.__tres) == null ? void 0 : m.dispose;
|
|
1226
|
+
be(v) || (v === null ? f = !1 : f = v);
|
|
1227
|
+
const u = (y = o.__tres) == null ? void 0 : y.primitive, _ = f === "default" ? !u : !!f;
|
|
1228
|
+
if (o.__tres && "objects" in o.__tres && [...o.__tres.objects].forEach((g) => s(g, f)), _ && o.children && [...o.children].forEach((g) => s(g, f)), mt(o, e), ht(o, e), _ && !On(o)) {
|
|
1229
|
+
if (V(f))
|
|
1230
|
+
f(o);
|
|
1231
|
+
else if (V(o.dispose))
|
|
1232
|
+
try {
|
|
1233
|
+
o.dispose();
|
|
1234
|
+
} catch {
|
|
1235
|
+
}
|
|
1019
1236
|
}
|
|
1237
|
+
"__tres" in o && delete o.__tres;
|
|
1020
1238
|
}
|
|
1021
|
-
function
|
|
1022
|
-
var
|
|
1023
|
-
if (
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
if (p.type === "BufferGeometry") {
|
|
1052
|
-
if (P === "args")
|
|
1053
|
-
return;
|
|
1054
|
-
p.setAttribute(
|
|
1055
|
-
X(P),
|
|
1056
|
-
new Tt(...l)
|
|
1057
|
-
);
|
|
1058
|
-
return;
|
|
1059
|
-
}
|
|
1060
|
-
if (P.includes("-") && g === void 0) {
|
|
1061
|
-
const M = P.split("-");
|
|
1062
|
-
g = M.reduce((_, u) => _[X(u)], p), P = M.pop(), y = P, g != null && g.set || (p = M.reduce((_, u) => _[X(u)], p));
|
|
1063
|
-
}
|
|
1064
|
-
let d = l;
|
|
1065
|
-
if (d === "" && (d = !0), ee(g)) {
|
|
1066
|
-
Fe.includes(f) || (Array.isArray(d) ? n[y](...d) : n[y](d)), y.startsWith("on") && ee(d) && (p[y] = d);
|
|
1239
|
+
function a(o, f, v, u) {
|
|
1240
|
+
var g, E;
|
|
1241
|
+
if (!o)
|
|
1242
|
+
return;
|
|
1243
|
+
let _ = o, p = f;
|
|
1244
|
+
if (o.__tres && (o.__tres.memoizedProps[f] = u), f === "attach") {
|
|
1245
|
+
const C = ((g = o.__tres) == null ? void 0 : g.parent) || o.parent;
|
|
1246
|
+
s(o), G(o, { attach: u }, e), C && r(o, C);
|
|
1247
|
+
return;
|
|
1248
|
+
}
|
|
1249
|
+
if (f === "dispose") {
|
|
1250
|
+
o.__tres || (o = G(o, {}, e)), o.__tres.dispose = u;
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1253
|
+
if (W(o) && p === "blocks-pointer-events") {
|
|
1254
|
+
u || u === "" ? o[p] = u : delete o[p];
|
|
1255
|
+
return;
|
|
1256
|
+
}
|
|
1257
|
+
Qe.includes(f) && o.__tres && (o.__tres.eventCount += 1);
|
|
1258
|
+
let P = se(p), m = _ == null ? void 0 : _[P];
|
|
1259
|
+
if (p === "args") {
|
|
1260
|
+
const C = o, T = v ?? [], M = u ?? [], w = ((E = o.__tres) == null ? void 0 : E.type) || o.type;
|
|
1261
|
+
w && T.length && !Yn(T, M) && (_ = Object.assign(
|
|
1262
|
+
C,
|
|
1263
|
+
new Me.value[w](...u)
|
|
1264
|
+
));
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1267
|
+
if (_.type === "BufferGeometry") {
|
|
1268
|
+
if (p === "args")
|
|
1067
1269
|
return;
|
|
1068
|
-
|
|
1069
|
-
|
|
1270
|
+
_.setAttribute(
|
|
1271
|
+
se(p),
|
|
1272
|
+
new Wt(...u)
|
|
1273
|
+
);
|
|
1274
|
+
return;
|
|
1070
1275
|
}
|
|
1276
|
+
if (p.includes("-") && m === void 0) {
|
|
1277
|
+
const C = p.split("-");
|
|
1278
|
+
m = C.reduce((T, M) => T[se(M)], _), p = C.pop(), P = p, m != null && m.set || (_ = C.reduce((T, M) => T[se(M)], _));
|
|
1279
|
+
}
|
|
1280
|
+
let y = u;
|
|
1281
|
+
if (y === "" && (y = !0), V(m)) {
|
|
1282
|
+
Qe.includes(f) || (de(y) ? o[P](...y) : o[P](y)), P.startsWith("on") && V(y) && (_[P] = y);
|
|
1283
|
+
return;
|
|
1284
|
+
}
|
|
1285
|
+
!(m != null && m.set) && !V(m) ? _[P] = y : m.constructor === y.constructor && (m != null && m.copy) ? m == null || m.copy(y) : de(y) ? m.set(...y) : !m.isColor && m.setScalar ? m.setScalar(y) : m.set(y), pt(o);
|
|
1071
1286
|
}
|
|
1072
|
-
function
|
|
1073
|
-
|
|
1287
|
+
function i(o) {
|
|
1288
|
+
var f;
|
|
1289
|
+
return ((f = o == null ? void 0 : o.__tres) == null ? void 0 : f.parent) || null;
|
|
1074
1290
|
}
|
|
1075
|
-
function
|
|
1076
|
-
const f = new
|
|
1077
|
-
return f.name =
|
|
1291
|
+
function l(o) {
|
|
1292
|
+
const f = G(new Nt(), { type: "Comment" }, e);
|
|
1293
|
+
return f.name = o, f;
|
|
1078
1294
|
}
|
|
1079
|
-
function
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
return f.children[h + 1] || null;
|
|
1295
|
+
function c(o) {
|
|
1296
|
+
var _;
|
|
1297
|
+
const f = i(o), v = ((_ = f == null ? void 0 : f.__tres) == null ? void 0 : _.objects) || [], u = v.indexOf(o);
|
|
1298
|
+
return u < 0 || u >= v.length - 1 ? null : v[u + 1];
|
|
1084
1299
|
}
|
|
1085
1300
|
return {
|
|
1086
1301
|
insert: r,
|
|
1087
|
-
remove:
|
|
1088
|
-
createElement:
|
|
1089
|
-
patchProp:
|
|
1090
|
-
parentNode:
|
|
1302
|
+
remove: s,
|
|
1303
|
+
createElement: n,
|
|
1304
|
+
patchProp: a,
|
|
1305
|
+
parentNode: i,
|
|
1091
1306
|
createText: () => void 0,
|
|
1092
|
-
createComment:
|
|
1307
|
+
createComment: l,
|
|
1093
1308
|
setText: () => void 0,
|
|
1094
1309
|
setElementText: () => void 0,
|
|
1095
|
-
nextSibling:
|
|
1310
|
+
nextSibling: c,
|
|
1096
1311
|
querySelector: () => void 0,
|
|
1097
1312
|
setScopeId: () => void 0,
|
|
1098
1313
|
cloneNode: () => void 0,
|
|
1099
1314
|
insertStaticContent: () => void 0
|
|
1100
1315
|
};
|
|
1101
1316
|
};
|
|
1102
|
-
function
|
|
1103
|
-
return
|
|
1317
|
+
function vr() {
|
|
1318
|
+
return vt().__VUE_DEVTOOLS_GLOBAL_HOOK__;
|
|
1104
1319
|
}
|
|
1105
|
-
function
|
|
1320
|
+
function vt() {
|
|
1106
1321
|
return typeof navigator < "u" && typeof window < "u" ? window : typeof globalThis < "u" ? globalThis : {};
|
|
1107
1322
|
}
|
|
1108
|
-
const
|
|
1109
|
-
let
|
|
1110
|
-
function
|
|
1323
|
+
const yr = typeof Proxy == "function", _r = "devtools-plugin:setup", wr = "plugin:settings:set";
|
|
1324
|
+
let J, Ee;
|
|
1325
|
+
function br() {
|
|
1111
1326
|
var e;
|
|
1112
|
-
return
|
|
1327
|
+
return J !== void 0 || (typeof window < "u" && window.performance ? (J = !0, Ee = window.performance) : typeof globalThis < "u" && (!((e = globalThis.perf_hooks) === null || e === void 0) && e.performance) ? (J = !0, Ee = globalThis.perf_hooks.performance) : J = !1), J;
|
|
1113
1328
|
}
|
|
1114
|
-
function
|
|
1115
|
-
return
|
|
1329
|
+
function Pr() {
|
|
1330
|
+
return br() ? Ee.now() : Date.now();
|
|
1116
1331
|
}
|
|
1117
|
-
class
|
|
1118
|
-
constructor(t,
|
|
1119
|
-
this.target = null, this.targetQueue = [], this.onQueue = [], this.plugin = t, this.hook =
|
|
1120
|
-
const
|
|
1332
|
+
class Mr {
|
|
1333
|
+
constructor(t, n) {
|
|
1334
|
+
this.target = null, this.targetQueue = [], this.onQueue = [], this.plugin = t, this.hook = n;
|
|
1335
|
+
const r = {};
|
|
1121
1336
|
if (t.settings)
|
|
1122
1337
|
for (const i in t.settings) {
|
|
1123
|
-
const
|
|
1124
|
-
|
|
1338
|
+
const l = t.settings[i];
|
|
1339
|
+
r[i] = l.defaultValue;
|
|
1125
1340
|
}
|
|
1126
1341
|
const s = `__vue-devtools-plugin-settings__${t.id}`;
|
|
1127
|
-
let
|
|
1342
|
+
let a = Object.assign({}, r);
|
|
1128
1343
|
try {
|
|
1129
|
-
const i = localStorage.getItem(s),
|
|
1130
|
-
Object.assign(
|
|
1344
|
+
const i = localStorage.getItem(s), l = JSON.parse(i);
|
|
1345
|
+
Object.assign(a, l);
|
|
1131
1346
|
} catch {
|
|
1132
1347
|
}
|
|
1133
1348
|
this.fallbacks = {
|
|
1134
1349
|
getSettings() {
|
|
1135
|
-
return
|
|
1350
|
+
return a;
|
|
1136
1351
|
},
|
|
1137
1352
|
setSettings(i) {
|
|
1138
1353
|
try {
|
|
1139
1354
|
localStorage.setItem(s, JSON.stringify(i));
|
|
1140
1355
|
} catch {
|
|
1141
1356
|
}
|
|
1142
|
-
|
|
1357
|
+
a = i;
|
|
1143
1358
|
},
|
|
1144
1359
|
now() {
|
|
1145
|
-
return
|
|
1360
|
+
return Pr();
|
|
1146
1361
|
}
|
|
1147
|
-
},
|
|
1148
|
-
i === this.plugin.id && this.fallbacks.setSettings(
|
|
1362
|
+
}, n && n.on(wr, (i, l) => {
|
|
1363
|
+
i === this.plugin.id && this.fallbacks.setSettings(l);
|
|
1149
1364
|
}), this.proxiedOn = new Proxy({}, {
|
|
1150
|
-
get: (i,
|
|
1365
|
+
get: (i, l) => this.target ? this.target.on[l] : (...c) => {
|
|
1151
1366
|
this.onQueue.push({
|
|
1152
|
-
method:
|
|
1153
|
-
args:
|
|
1367
|
+
method: l,
|
|
1368
|
+
args: c
|
|
1154
1369
|
});
|
|
1155
1370
|
}
|
|
1156
1371
|
}), this.proxiedTarget = new Proxy({}, {
|
|
1157
|
-
get: (i,
|
|
1158
|
-
method:
|
|
1159
|
-
args:
|
|
1372
|
+
get: (i, l) => this.target ? this.target[l] : l === "on" ? this.proxiedOn : Object.keys(this.fallbacks).includes(l) ? (...c) => (this.targetQueue.push({
|
|
1373
|
+
method: l,
|
|
1374
|
+
args: c,
|
|
1160
1375
|
resolve: () => {
|
|
1161
1376
|
}
|
|
1162
|
-
}), this.fallbacks[
|
|
1377
|
+
}), this.fallbacks[l](...c)) : (...c) => new Promise((o) => {
|
|
1163
1378
|
this.targetQueue.push({
|
|
1164
|
-
method:
|
|
1165
|
-
args:
|
|
1166
|
-
resolve:
|
|
1379
|
+
method: l,
|
|
1380
|
+
args: c,
|
|
1381
|
+
resolve: o
|
|
1167
1382
|
});
|
|
1168
1383
|
})
|
|
1169
1384
|
});
|
|
1170
1385
|
}
|
|
1171
1386
|
async setRealTarget(t) {
|
|
1172
1387
|
this.target = t;
|
|
1173
|
-
for (const
|
|
1174
|
-
this.target.on[
|
|
1175
|
-
for (const
|
|
1176
|
-
|
|
1388
|
+
for (const n of this.onQueue)
|
|
1389
|
+
this.target.on[n.method](...n.args);
|
|
1390
|
+
for (const n of this.targetQueue)
|
|
1391
|
+
n.resolve(await this.target[n.method](...n.args));
|
|
1177
1392
|
}
|
|
1178
1393
|
}
|
|
1179
|
-
function
|
|
1180
|
-
const
|
|
1181
|
-
if (s && (
|
|
1182
|
-
s.emit(
|
|
1394
|
+
function Cr(e, t) {
|
|
1395
|
+
const n = e, r = vt(), s = vr(), a = yr && n.enableEarlyProxy;
|
|
1396
|
+
if (s && (r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !a))
|
|
1397
|
+
s.emit(_r, e, t);
|
|
1183
1398
|
else {
|
|
1184
|
-
const i =
|
|
1185
|
-
(
|
|
1186
|
-
pluginDescriptor:
|
|
1399
|
+
const i = a ? new Mr(n, s) : null;
|
|
1400
|
+
(r.__VUE_DEVTOOLS_PLUGINS__ = r.__VUE_DEVTOOLS_PLUGINS__ || []).push({
|
|
1401
|
+
pluginDescriptor: n,
|
|
1187
1402
|
setupFn: t,
|
|
1188
1403
|
proxy: i
|
|
1189
1404
|
}), i && t(i.proxiedTarget);
|
|
1190
1405
|
}
|
|
1191
1406
|
}
|
|
1192
|
-
function
|
|
1193
|
-
const
|
|
1194
|
-
typeof
|
|
1407
|
+
function Er(e, t) {
|
|
1408
|
+
const n = `▲ ■ ●${e}`;
|
|
1409
|
+
typeof Xe == "function" ? Xe(n, t) : console.log(n);
|
|
1195
1410
|
}
|
|
1196
|
-
function
|
|
1411
|
+
function Xe(e, t) {
|
|
1197
1412
|
throw new Error(e + t);
|
|
1198
1413
|
}
|
|
1199
|
-
const
|
|
1414
|
+
const yt = (e) => {
|
|
1200
1415
|
const t = {
|
|
1201
1416
|
id: e.uuid,
|
|
1202
1417
|
label: e.type,
|
|
@@ -1208,9 +1423,9 @@ const ot = (e) => {
|
|
|
1208
1423
|
textColor: 5750629,
|
|
1209
1424
|
backgroundColor: 15793395
|
|
1210
1425
|
});
|
|
1211
|
-
const
|
|
1212
|
-
return
|
|
1213
|
-
label: `${
|
|
1426
|
+
const n = ke(e);
|
|
1427
|
+
return n > 0 && t.tags.push({
|
|
1428
|
+
label: `${cr(n)} KB`,
|
|
1214
1429
|
textColor: 15707189,
|
|
1215
1430
|
backgroundColor: 16775644,
|
|
1216
1431
|
tooltip: "Memory usage"
|
|
@@ -1236,87 +1451,83 @@ const ot = (e) => {
|
|
|
1236
1451
|
tooltip: "Position"
|
|
1237
1452
|
})), t;
|
|
1238
1453
|
};
|
|
1239
|
-
function
|
|
1240
|
-
e.children.forEach((
|
|
1241
|
-
if (
|
|
1454
|
+
function _t(e, t, n = "") {
|
|
1455
|
+
e.children.forEach((r) => {
|
|
1456
|
+
if (r.type === "HightlightMesh" || n && !r.type.includes(n) && !r.name.includes(n))
|
|
1242
1457
|
return;
|
|
1243
|
-
const s =
|
|
1244
|
-
t.children.push(s),
|
|
1458
|
+
const s = yt(r);
|
|
1459
|
+
t.children.push(s), _t(r, s, n);
|
|
1245
1460
|
});
|
|
1246
1461
|
}
|
|
1247
|
-
const
|
|
1462
|
+
const Tr = [], Z = "tres:inspector", Sr = Et({
|
|
1248
1463
|
sceneGraph: null
|
|
1249
1464
|
});
|
|
1250
|
-
function
|
|
1251
|
-
|
|
1465
|
+
function Ar(e, t) {
|
|
1466
|
+
Cr(
|
|
1252
1467
|
{
|
|
1253
1468
|
id: "dev.esm.tres",
|
|
1254
1469
|
label: "TresJS 🪐",
|
|
1255
1470
|
logo: "https://raw.githubusercontent.com/Tresjs/tres/main/public/favicon.svg",
|
|
1256
1471
|
packageName: "tresjs",
|
|
1257
1472
|
homepage: "https://tresjs.org",
|
|
1258
|
-
componentStateTypes:
|
|
1473
|
+
componentStateTypes: Tr,
|
|
1259
1474
|
app: e
|
|
1260
1475
|
},
|
|
1261
|
-
(
|
|
1262
|
-
typeof
|
|
1476
|
+
(n) => {
|
|
1477
|
+
typeof n.now != "function" && Er(
|
|
1263
1478
|
"You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."
|
|
1264
|
-
),
|
|
1265
|
-
id:
|
|
1479
|
+
), n.addInspector({
|
|
1480
|
+
id: Z,
|
|
1266
1481
|
label: "TresJS 🪐",
|
|
1267
1482
|
icon: "account_tree",
|
|
1268
1483
|
treeFilterPlaceholder: "Search instances"
|
|
1269
1484
|
}), setInterval(() => {
|
|
1270
|
-
|
|
1485
|
+
n.sendInspectorTree(Z);
|
|
1271
1486
|
}, 1e3), setInterval(() => {
|
|
1272
|
-
|
|
1273
|
-
}, 5e3),
|
|
1274
|
-
if (
|
|
1275
|
-
const i =
|
|
1276
|
-
|
|
1487
|
+
n.notifyComponentUpdate();
|
|
1488
|
+
}, 5e3), n.on.getInspectorTree((a) => {
|
|
1489
|
+
if (a.inspectorId === Z) {
|
|
1490
|
+
const i = yt(t.scene.value);
|
|
1491
|
+
_t(t.scene.value, i, a.filter), Sr.sceneGraph = i, a.rootNodes = [i];
|
|
1277
1492
|
}
|
|
1278
1493
|
});
|
|
1279
|
-
let
|
|
1280
|
-
|
|
1494
|
+
let r = null, s = null;
|
|
1495
|
+
n.on.getInspectorState((a) => {
|
|
1281
1496
|
var i;
|
|
1282
|
-
if (
|
|
1283
|
-
const [
|
|
1284
|
-
if (!
|
|
1497
|
+
if (a.inspectorId === Z) {
|
|
1498
|
+
const [l] = t.scene.value.getObjectsByProperty("uuid", a.nodeId);
|
|
1499
|
+
if (!l)
|
|
1285
1500
|
return;
|
|
1286
|
-
if (s &&
|
|
1287
|
-
const
|
|
1288
|
-
|
|
1501
|
+
if (s && r && r.parent && s.remove(r), l.isMesh) {
|
|
1502
|
+
const c = Kn(l);
|
|
1503
|
+
l.add(c), r = c, s = l;
|
|
1289
1504
|
}
|
|
1290
|
-
|
|
1291
|
-
object: Object.entries(
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
})).filter(({ key: n }) => n !== "parent")
|
|
1296
|
-
}, a.isScene && (c.state.info = {
|
|
1297
|
-
memory: be(a),
|
|
1298
|
-
objects: a.children.length,
|
|
1505
|
+
a.state = {
|
|
1506
|
+
object: Object.entries(l).map(([c, o]) => ({ key: c, value: o, editable: !0 })).filter(({ key: c }) => c !== "parent")
|
|
1507
|
+
}, l.isScene && (a.state.info = {
|
|
1508
|
+
memory: ke(l),
|
|
1509
|
+
objects: l.children.length,
|
|
1299
1510
|
calls: t.renderer.value.info.render.calls,
|
|
1300
1511
|
triangles: t.renderer.value.info.render.triangles,
|
|
1301
1512
|
points: t.renderer.value.info.render.points,
|
|
1302
1513
|
lines: t.renderer.value.info.render.lines
|
|
1303
|
-
},
|
|
1304
|
-
key:
|
|
1514
|
+
}, a.state.programs = ((i = t.renderer.value.info.programs) == null ? void 0 : i.map((c) => ({
|
|
1515
|
+
key: c.name,
|
|
1305
1516
|
value: {
|
|
1306
|
-
...
|
|
1307
|
-
vertexShader:
|
|
1308
|
-
attributes:
|
|
1309
|
-
uniforms:
|
|
1517
|
+
...c,
|
|
1518
|
+
vertexShader: c.vertexShader,
|
|
1519
|
+
attributes: c.getAttributes(),
|
|
1520
|
+
uniforms: c.getUniforms()
|
|
1310
1521
|
}
|
|
1311
1522
|
}))) || []);
|
|
1312
1523
|
}
|
|
1313
|
-
}),
|
|
1314
|
-
|
|
1524
|
+
}), n.on.editInspectorState((a) => {
|
|
1525
|
+
a.inspectorId === Z && Jn(t.scene.value, a.nodeId, a.path, a.state.value);
|
|
1315
1526
|
});
|
|
1316
1527
|
}
|
|
1317
1528
|
);
|
|
1318
1529
|
}
|
|
1319
|
-
const
|
|
1530
|
+
const kr = ["data-scene", "data-tres"], xr = /* @__PURE__ */ Be({
|
|
1320
1531
|
__name: "TresCanvas",
|
|
1321
1532
|
props: {
|
|
1322
1533
|
shadows: { type: Boolean, default: void 0 },
|
|
@@ -1327,6 +1538,7 @@ const en = ["data-scene", "data-tres"], tn = /* @__PURE__ */ xe({
|
|
|
1327
1538
|
outputColorSpace: {},
|
|
1328
1539
|
toneMappingExposure: {},
|
|
1329
1540
|
renderMode: { default: "always" },
|
|
1541
|
+
dpr: {},
|
|
1330
1542
|
camera: {},
|
|
1331
1543
|
preset: {},
|
|
1332
1544
|
windowSize: { type: Boolean, default: void 0 },
|
|
@@ -1356,93 +1568,94 @@ const en = ["data-scene", "data-tres"], tn = /* @__PURE__ */ xe({
|
|
|
1356
1568
|
"pointer-over",
|
|
1357
1569
|
"pointer-out",
|
|
1358
1570
|
"pointer-missed",
|
|
1359
|
-
"wheel"
|
|
1571
|
+
"wheel",
|
|
1572
|
+
"ready"
|
|
1360
1573
|
],
|
|
1361
|
-
setup(e, { expose: t, emit:
|
|
1574
|
+
setup(e, { expose: t, emit: n }) {
|
|
1362
1575
|
var P;
|
|
1363
|
-
const
|
|
1364
|
-
|
|
1365
|
-
const
|
|
1576
|
+
const r = e, s = n, a = Tt(), { logWarning: i } = z(), l = I(), c = H(new nt()), o = (P = Ie()) == null ? void 0 : P.appContext.app;
|
|
1577
|
+
Ce(et);
|
|
1578
|
+
const f = (m) => Be({
|
|
1366
1579
|
setup() {
|
|
1367
|
-
var
|
|
1368
|
-
const
|
|
1369
|
-
return
|
|
1580
|
+
var g;
|
|
1581
|
+
const y = (g = Ie()) == null ? void 0 : g.appContext;
|
|
1582
|
+
return y && (y.app = o), _e("useTres", m), _e("extend", Ce), typeof window < "u" && Ar(y == null ? void 0 : y.app, m), () => He(Ot, null, a != null && a.default ? a.default() : []);
|
|
1370
1583
|
}
|
|
1371
|
-
}),
|
|
1372
|
-
const
|
|
1373
|
-
|
|
1374
|
-
},
|
|
1375
|
-
|
|
1376
|
-
root:
|
|
1377
|
-
},
|
|
1378
|
-
},
|
|
1379
|
-
return t({ context: p, dispose: () =>
|
|
1380
|
-
const
|
|
1381
|
-
p.value =
|
|
1382
|
-
scene:
|
|
1383
|
-
canvas:
|
|
1384
|
-
windowSize:
|
|
1385
|
-
disableRender:
|
|
1386
|
-
rendererOptions:
|
|
1584
|
+
}), v = (m) => {
|
|
1585
|
+
const y = f(m), { render: g } = Rt(gr(m));
|
|
1586
|
+
g(He(y), c.value);
|
|
1587
|
+
}, u = (m, y = !1) => {
|
|
1588
|
+
dt(m.scene.value), y && (m.renderer.value.dispose(), m.renderer.value.renderLists.dispose(), m.renderer.value.forceContextLoss()), c.value.__tres = {
|
|
1589
|
+
root: m
|
|
1590
|
+
}, v(m);
|
|
1591
|
+
}, _ = Y(() => r.disableRender), p = H(null);
|
|
1592
|
+
return t({ context: p, dispose: () => u(p.value, !0) }), St(() => {
|
|
1593
|
+
const m = l;
|
|
1594
|
+
p.value = mr({
|
|
1595
|
+
scene: c.value,
|
|
1596
|
+
canvas: m,
|
|
1597
|
+
windowSize: r.windowSize ?? !1,
|
|
1598
|
+
disableRender: _.value ?? !1,
|
|
1599
|
+
rendererOptions: r,
|
|
1387
1600
|
emit: s
|
|
1388
|
-
})
|
|
1389
|
-
const { registerCamera:
|
|
1390
|
-
|
|
1391
|
-
const
|
|
1392
|
-
const
|
|
1601
|
+
});
|
|
1602
|
+
const { registerCamera: y, camera: g, cameras: E, deregisterCamera: C } = p.value;
|
|
1603
|
+
v(p.value);
|
|
1604
|
+
const T = () => {
|
|
1605
|
+
const M = new we(
|
|
1393
1606
|
45,
|
|
1394
1607
|
window.innerWidth / window.innerHeight,
|
|
1395
1608
|
0.1,
|
|
1396
1609
|
1e3
|
|
1397
1610
|
);
|
|
1398
|
-
|
|
1399
|
-
const
|
|
1400
|
-
|
|
1611
|
+
M.position.set(3, 3, 3), M.lookAt(0, 0, 0), y(M);
|
|
1612
|
+
const w = Te(() => {
|
|
1613
|
+
E.value.length >= 2 && (M.removeFromParent(), C(M), w == null || w());
|
|
1401
1614
|
});
|
|
1402
1615
|
};
|
|
1403
|
-
|
|
1404
|
-
() =>
|
|
1405
|
-
(
|
|
1406
|
-
|
|
1616
|
+
le(
|
|
1617
|
+
() => r.camera,
|
|
1618
|
+
(M, w) => {
|
|
1619
|
+
M && y(M), w && (w.removeFromParent(), C(w));
|
|
1407
1620
|
},
|
|
1408
1621
|
{
|
|
1409
1622
|
immediate: !0
|
|
1410
1623
|
}
|
|
1411
|
-
),
|
|
1624
|
+
), g.value || (i(
|
|
1412
1625
|
"No camera found. Creating a default perspective camera. To have full control over a camera, please add one to the scene."
|
|
1413
|
-
),
|
|
1414
|
-
}),
|
|
1415
|
-
|
|
1416
|
-
}), (
|
|
1626
|
+
), T());
|
|
1627
|
+
}), Q(() => {
|
|
1628
|
+
u(p.value);
|
|
1629
|
+
}), (m, y) => (At(), kt("canvas", {
|
|
1417
1630
|
ref_key: "canvas",
|
|
1418
|
-
ref:
|
|
1419
|
-
"data-scene":
|
|
1420
|
-
class:
|
|
1421
|
-
"data-tres": `tresjs ${
|
|
1422
|
-
style:
|
|
1631
|
+
ref: l,
|
|
1632
|
+
"data-scene": c.value.uuid,
|
|
1633
|
+
class: xt(m.$attrs.class),
|
|
1634
|
+
"data-tres": `tresjs ${K(An).version}`,
|
|
1635
|
+
style: Lt({
|
|
1423
1636
|
display: "block",
|
|
1424
1637
|
width: "100%",
|
|
1425
1638
|
height: "100%",
|
|
1426
|
-
position:
|
|
1639
|
+
position: m.windowSize ? "fixed" : "relative",
|
|
1427
1640
|
top: 0,
|
|
1428
1641
|
left: 0,
|
|
1429
1642
|
pointerEvents: "auto",
|
|
1430
1643
|
touchAction: "none",
|
|
1431
|
-
...
|
|
1644
|
+
...m.$attrs.style
|
|
1432
1645
|
})
|
|
1433
|
-
}, null, 14,
|
|
1646
|
+
}, null, 14, kr));
|
|
1434
1647
|
}
|
|
1435
|
-
}),
|
|
1648
|
+
}), Lr = [
|
|
1436
1649
|
"TresCanvas",
|
|
1437
1650
|
"TresLeches",
|
|
1438
1651
|
"TresScene"
|
|
1439
|
-
],
|
|
1652
|
+
], Rr = {
|
|
1440
1653
|
template: {
|
|
1441
1654
|
compilerOptions: {
|
|
1442
|
-
isCustomElement: (e) => e.startsWith("Tres") && !
|
|
1655
|
+
isCustomElement: (e) => e.startsWith("Tres") && !Lr.includes(e) || e === "primitive"
|
|
1443
1656
|
}
|
|
1444
1657
|
}
|
|
1445
|
-
},
|
|
1658
|
+
}, qr = Rr, Jr = {
|
|
1446
1659
|
mounted: (e, t) => {
|
|
1447
1660
|
if (t.arg) {
|
|
1448
1661
|
console.log(`v-log:${t.arg}`, e[t.arg]);
|
|
@@ -1451,22 +1664,22 @@ const en = ["data-scene", "data-tres"], tn = /* @__PURE__ */ xe({
|
|
|
1451
1664
|
console.log("v-log", e);
|
|
1452
1665
|
}
|
|
1453
1666
|
};
|
|
1454
|
-
class
|
|
1455
|
-
constructor(t,
|
|
1456
|
-
const
|
|
1457
|
-
s.setAttribute("position", new
|
|
1458
|
-
const
|
|
1459
|
-
super(s,
|
|
1460
|
-
const i = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],
|
|
1461
|
-
|
|
1667
|
+
class wt extends zt {
|
|
1668
|
+
constructor(t, n) {
|
|
1669
|
+
const r = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0], s = new $e();
|
|
1670
|
+
s.setAttribute("position", new Ue(r, 3)), s.computeBoundingSphere();
|
|
1671
|
+
const a = new Gt({ fog: !1 });
|
|
1672
|
+
super(s, a), this.light = t, this.color = n, this.type = "RectAreaLightHelper";
|
|
1673
|
+
const i = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0], l = new $e();
|
|
1674
|
+
l.setAttribute("position", new Ue(i, 3)), l.computeBoundingSphere(), this.add(new Vt(l, new ot({ side: Yt, fog: !1 })));
|
|
1462
1675
|
}
|
|
1463
1676
|
updateMatrixWorld() {
|
|
1464
1677
|
if (this.scale.set(0.5 * this.light.width, 0.5 * this.light.height, 1), this.color !== void 0)
|
|
1465
1678
|
this.material.color.set(this.color), this.children[0].material.color.set(this.color);
|
|
1466
1679
|
else {
|
|
1467
1680
|
this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);
|
|
1468
|
-
const t = this.material.color,
|
|
1469
|
-
|
|
1681
|
+
const t = this.material.color, n = Math.max(t.r, t.g, t.b);
|
|
1682
|
+
n > 1 && t.multiplyScalar(1 / n), this.children[0].material.color.copy(this.material.color);
|
|
1470
1683
|
}
|
|
1471
1684
|
this.matrixWorld.extractRotation(this.light.matrixWorld).scale(this.scale).copyPosition(this.light.matrixWorld), this.children[0].matrixWorld.copy(this.matrixWorld);
|
|
1472
1685
|
}
|
|
@@ -1474,87 +1687,87 @@ class it extends kt {
|
|
|
1474
1687
|
this.geometry.dispose(), this.material.dispose(), this.children[0].geometry.dispose(), this.children[0].material.dispose();
|
|
1475
1688
|
}
|
|
1476
1689
|
}
|
|
1477
|
-
const { logWarning:
|
|
1478
|
-
let
|
|
1479
|
-
const
|
|
1480
|
-
DirectionalLight:
|
|
1481
|
-
PointLight:
|
|
1482
|
-
SpotLight:
|
|
1483
|
-
HemisphereLight:
|
|
1484
|
-
RectAreaLight:
|
|
1485
|
-
},
|
|
1690
|
+
const { logWarning: Ze } = z();
|
|
1691
|
+
let ae, F;
|
|
1692
|
+
const Or = {
|
|
1693
|
+
DirectionalLight: qt,
|
|
1694
|
+
PointLight: Jt,
|
|
1695
|
+
SpotLight: Kt,
|
|
1696
|
+
HemisphereLight: Qt,
|
|
1697
|
+
RectAreaLight: wt
|
|
1698
|
+
}, Kr = {
|
|
1486
1699
|
mounted: (e) => {
|
|
1487
1700
|
if (!e.isLight) {
|
|
1488
|
-
|
|
1701
|
+
Ze(`${e.type} is not a light`);
|
|
1489
1702
|
return;
|
|
1490
1703
|
}
|
|
1491
|
-
|
|
1704
|
+
ae = Or[e.type], e.parent.add(new ae(e, 1, e.color.getHex()));
|
|
1492
1705
|
},
|
|
1493
1706
|
updated: (e) => {
|
|
1494
|
-
|
|
1707
|
+
F = e.parent.children.find((t) => t instanceof ae), !(F instanceof wt) && F.update();
|
|
1495
1708
|
},
|
|
1496
1709
|
unmounted: (e) => {
|
|
1497
1710
|
if (!e.isLight) {
|
|
1498
|
-
|
|
1711
|
+
Ze(`${e.type} is not a light`);
|
|
1499
1712
|
return;
|
|
1500
1713
|
}
|
|
1501
|
-
|
|
1714
|
+
F = e.parent.children.find((t) => t instanceof ae), F && F.dispose && F.dispose(), e.parent.remove(F);
|
|
1502
1715
|
}
|
|
1503
|
-
}, { logWarning:
|
|
1504
|
-
let
|
|
1505
|
-
const
|
|
1716
|
+
}, { logWarning: Dr } = z();
|
|
1717
|
+
let B = null;
|
|
1718
|
+
const Qr = {
|
|
1506
1719
|
updated: (e, t) => {
|
|
1507
1720
|
var s;
|
|
1508
|
-
const
|
|
1509
|
-
if (!
|
|
1510
|
-
|
|
1721
|
+
const n = Qn(t);
|
|
1722
|
+
if (!n) {
|
|
1723
|
+
Dr(`v-distance-to: problem with binding value: ${t.value}`);
|
|
1511
1724
|
return;
|
|
1512
1725
|
}
|
|
1513
|
-
|
|
1514
|
-
const
|
|
1515
|
-
|
|
1726
|
+
B && (B.dispose(), e.parent.remove(B));
|
|
1727
|
+
const r = n.clone().sub(e.position);
|
|
1728
|
+
r.normalize(), B = new Xt(r, e.position, e.position.distanceTo(n), 16776960), e.parent.add(B), console.table(
|
|
1516
1729
|
[
|
|
1517
|
-
["Distance:", e.position.distanceTo(
|
|
1730
|
+
["Distance:", e.position.distanceTo(n)],
|
|
1518
1731
|
[`origin: ${e.name || e.type}`, `x:${e.position.x}, y:${e.position.y}, z:${(s = e.position) == null ? void 0 : s.z}`],
|
|
1519
|
-
[`Destiny: ${e.name || e.type}`, `x:${
|
|
1732
|
+
[`Destiny: ${e.name || e.type}`, `x:${n.x}, y:${n.y}, z:${n == null ? void 0 : n.z}`]
|
|
1520
1733
|
]
|
|
1521
1734
|
);
|
|
1522
1735
|
},
|
|
1523
1736
|
unmounted: (e) => {
|
|
1524
|
-
|
|
1737
|
+
B == null || B.dispose(), e.parent.remove(B);
|
|
1525
1738
|
}
|
|
1526
|
-
},
|
|
1739
|
+
}, Xr = {
|
|
1527
1740
|
install(e) {
|
|
1528
|
-
e.component("TresCanvas",
|
|
1741
|
+
e.component("TresCanvas", xr);
|
|
1529
1742
|
}
|
|
1530
1743
|
};
|
|
1531
1744
|
export {
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1745
|
+
xr as TresCanvas,
|
|
1746
|
+
Me as catalogue,
|
|
1747
|
+
dr as createRenderLoop,
|
|
1748
|
+
Xr as default,
|
|
1749
|
+
dt as dispose,
|
|
1750
|
+
Ce as extend,
|
|
1751
|
+
Ur as isProd,
|
|
1752
|
+
$n as normalizeColor,
|
|
1753
|
+
Fr as normalizeVectorFlexibleParam,
|
|
1754
|
+
Gr as onTresReady,
|
|
1755
|
+
qr as templateCompilerOptions,
|
|
1756
|
+
ar as trasverseObjects,
|
|
1757
|
+
jn as useCamera,
|
|
1758
|
+
Wr as useLoader,
|
|
1759
|
+
z as useLogger,
|
|
1760
|
+
Yr as useLoop,
|
|
1761
|
+
lr as useRaycaster,
|
|
1762
|
+
$r as useRenderLoop,
|
|
1763
|
+
sr as useRenderer,
|
|
1764
|
+
zr as useSeek,
|
|
1765
|
+
Nr as useTexture,
|
|
1766
|
+
Vr as useTres,
|
|
1767
|
+
pe as useTresContext,
|
|
1768
|
+
mr as useTresContextProvider,
|
|
1769
|
+
ur as useTresEventManager,
|
|
1770
|
+
Qr as vDistanceTo,
|
|
1771
|
+
Kr as vLightHelper,
|
|
1772
|
+
Jr as vLog
|
|
1560
1773
|
};
|