@tresjs/cientos 5.9.0 → 5.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/trescientos.css +454 -434
- package/dist/trescientos.d.ts +473 -11298
- package/dist/trescientos.js +896 -1243
- package/package.json +24 -23
package/dist/trescientos.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* name: @tresjs/cientos
|
|
3
|
-
* version: v5.9.
|
|
3
|
+
* version: v5.9.2
|
|
4
4
|
* (c) 2026
|
|
5
5
|
* description: Collection of useful helpers and fully functional, ready-made abstractions for Tres
|
|
6
6
|
* author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
|
|
7
7
|
*/
|
|
8
|
-
import { Fragment, Suspense, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, inject, isReactive, isRef, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, ref, render, renderList, renderSlot, shallowReactive, shallowRef, toDisplayString, toRaw, toRefs, toValue, triggerRef, unref, useAttrs, useSlots, useTemplateRef, vShow, watch, watchEffect, withAsyncContext, withCtx, withDirectives, withModifiers } from "vue";
|
|
8
|
+
import { Fragment, Suspense, Transition, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, inject, isReactive, isRef, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, ref, render, renderList, renderSlot, shallowReactive, shallowRef, toDisplayString, toRaw, toRefs, toValue, triggerRef, unref, useAttrs, useSlots, useTemplateRef, vShow, watch, watchEffect, withAsyncContext, withCtx, withDirectives, withModifiers } from "vue";
|
|
9
9
|
import { INJECTION_KEY, TresPortal, buildGraph, createTimer, extend, isObject3D, logError, logWarning, normalizeColor, normalizeVectorFlexibleParam, useLoader, useLoop, useTres, useTresContext } from "@tresjs/core";
|
|
10
10
|
import * as THREE from "three";
|
|
11
11
|
import { AdditiveBlending, AlwaysStencilFunc, AnimationMixer, Audio, AudioListener, AudioLoader, BackSide, Box2, Box3, BoxGeometry, BufferAttribute, BufferGeometry, Camera, CatmullRomCurve3, ClampToEdgeWrapping, Color, CubeCamera, CubeReflectionMapping, CubeTextureLoader, CubicBezierCurve3, DataTexture, DefaultLoadingManager, DepthTexture, DirectionalLight, DoubleSide, DynamicDrawUsage, EdgesGeometry, EqualStencilFunc, EquirectangularReflectionMapping, Euler, FloatType, FramebufferTexture, FrontSide, Group, HalfFloatType, IcosahedronGeometry, InstancedBufferAttribute, InstancedMesh, InterleavedBuffer, InterleavedBufferAttribute, KeepStencilOp, LOD, LinearFilter, MOUSE, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshLambertMaterial, MeshPhysicalMaterial, MeshStandardMaterial, NearestFilter, NoBlending, NoToneMapping, NotEqualStencilFunc, Object3D, OrthographicCamera, PerspectiveCamera, Plane, PlaneGeometry, Points, PointsMaterial, QuadraticBezierCurve3, Quaternion, REVISION, RGBAFormat, RawShaderMaterial, Raycaster, RepeatWrapping, ReplaceStencilOp, Scene, ShaderChunk, ShaderMaterial, ShapeGeometry, SkinnedMesh, Sphere, Spherical, TOUCH, TangentSpaceNormalMap, Texture, TextureLoader, UVMapping, Uniform, UniformsUtils, UnsignedByteType, Vector2, Vector3, Vector4, VideoTexture, WebGLCubeRenderTarget, WebGLRenderTarget, WebGLRenderer } from "three";
|
|
@@ -16,9 +16,9 @@ import StatsImpl from "stats.js";
|
|
|
16
16
|
import StatsGlImpl from "stats-gl";
|
|
17
17
|
import { BVHHelper, MeshBVH, acceleratedRaycast } from "three-mesh-bvh";
|
|
18
18
|
import CustomShaderMaterial from "three-custom-shader-material/vanilla";
|
|
19
|
-
|
|
20
|
-
//#region src/core/abstractions/Align.vue
|
|
21
|
-
var
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/core/abstractions/Align.vue
|
|
21
|
+
var Align_default = /* @__PURE__ */ defineComponent({
|
|
22
22
|
__name: "Align",
|
|
23
23
|
props: {
|
|
24
24
|
top: {
|
|
@@ -76,7 +76,7 @@ var Align_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
76
76
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
77
77
|
const props = __props;
|
|
78
78
|
const emit = __emit;
|
|
79
|
-
const ref
|
|
79
|
+
const ref = shallowRef();
|
|
80
80
|
const outer = shallowRef();
|
|
81
81
|
const inner = shallowRef();
|
|
82
82
|
const box3 = new Box3();
|
|
@@ -89,9 +89,10 @@ var Align_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
89
89
|
position: new Vector3()
|
|
90
90
|
};
|
|
91
91
|
function update() {
|
|
92
|
-
if (!outer.value || !inner.value || !ref
|
|
92
|
+
if (!outer.value || !inner.value || !ref.value) return;
|
|
93
93
|
outer.value.matrixWorld.identity();
|
|
94
94
|
box3.setFromObject(inner.value, props.precise);
|
|
95
|
+
if (box3.isEmpty()) return;
|
|
95
96
|
const width = box3.max.x - box3.min.x;
|
|
96
97
|
const height = box3.max.y - box3.min.y;
|
|
97
98
|
const depth = box3.max.z - box3.min.z;
|
|
@@ -103,8 +104,8 @@ var Align_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
103
104
|
outer.value.position.set(props.disable || props.disableX ? 0 : -center.x + xAlign, props.disable || props.disableY ? 0 : -center.y + yAlign, props.disable || props.disableZ ? 0 : -center.z + zAlign);
|
|
104
105
|
if (previous.width !== width || previous.height !== height || previous.depth !== depth || !outer.value.position.equals(previous.position)) {
|
|
105
106
|
emit("change", {
|
|
106
|
-
parent: ref
|
|
107
|
-
container: ref
|
|
107
|
+
parent: ref.value.parent,
|
|
108
|
+
container: ref.value,
|
|
108
109
|
width,
|
|
109
110
|
height,
|
|
110
111
|
depth,
|
|
@@ -136,13 +137,13 @@ var Align_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
136
137
|
else update();
|
|
137
138
|
});
|
|
138
139
|
__expose({
|
|
139
|
-
instance: ref
|
|
140
|
+
instance: ref,
|
|
140
141
|
update
|
|
141
142
|
});
|
|
142
143
|
return (_ctx, _cache) => {
|
|
143
144
|
return openBlock(), createElementBlock("TresGroup", {
|
|
144
145
|
ref_key: "ref",
|
|
145
|
-
ref
|
|
146
|
+
ref
|
|
146
147
|
}, [createElementVNode("TresGroup", {
|
|
147
148
|
ref_key: "outer",
|
|
148
149
|
ref: outer
|
|
@@ -153,14 +154,9 @@ var Align_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
153
154
|
};
|
|
154
155
|
}
|
|
155
156
|
});
|
|
156
|
-
|
|
157
157
|
//#endregion
|
|
158
|
-
//#region src/core/abstractions/
|
|
159
|
-
var
|
|
160
|
-
|
|
161
|
-
//#endregion
|
|
162
|
-
//#region src/core/abstractions/Billboard.vue?vue&type=script&setup=true&lang.ts
|
|
163
|
-
var Billboard_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
158
|
+
//#region src/core/abstractions/Billboard.vue
|
|
159
|
+
var Billboard_default = /* @__PURE__ */ defineComponent({
|
|
164
160
|
__name: "Billboard",
|
|
165
161
|
props: {
|
|
166
162
|
autoUpdate: {
|
|
@@ -224,14 +220,9 @@ var Billboard_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
224
220
|
};
|
|
225
221
|
}
|
|
226
222
|
});
|
|
227
|
-
|
|
228
|
-
//#endregion
|
|
229
|
-
//#region src/core/abstractions/Billboard.vue
|
|
230
|
-
var Billboard_default = Billboard_vue_vue_type_script_setup_true_lang_default;
|
|
231
|
-
|
|
232
223
|
//#endregion
|
|
233
|
-
//#region src/core/abstractions/CameraShake.vue
|
|
234
|
-
var
|
|
224
|
+
//#region src/core/abstractions/CameraShake.vue
|
|
225
|
+
var CameraShake_default = /* @__PURE__ */ defineComponent({
|
|
235
226
|
__name: "CameraShake",
|
|
236
227
|
props: {
|
|
237
228
|
intensity: {
|
|
@@ -329,11 +320,6 @@ var CameraShake_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
329
320
|
};
|
|
330
321
|
}
|
|
331
322
|
});
|
|
332
|
-
|
|
333
|
-
//#endregion
|
|
334
|
-
//#region src/core/abstractions/CameraShake.vue
|
|
335
|
-
var CameraShake_default = CameraShake_vue_vue_type_script_setup_true_lang_default;
|
|
336
|
-
|
|
337
323
|
//#endregion
|
|
338
324
|
//#region src/core/abstractions/Decal/DecalGeometry.ts
|
|
339
325
|
/**
|
|
@@ -592,12 +578,12 @@ function getTextureAspect(tex) {
|
|
|
592
578
|
};
|
|
593
579
|
}
|
|
594
580
|
/** Resolve a stable, serializable name for a texture. */
|
|
595
|
-
function getTextureName(texture
|
|
596
|
-
if (!texture
|
|
597
|
-
if (texture
|
|
598
|
-
const userDataName = texture
|
|
581
|
+
function getTextureName(texture) {
|
|
582
|
+
if (!texture) return null;
|
|
583
|
+
if (texture.name) return texture.name;
|
|
584
|
+
const userDataName = texture.userData?.name;
|
|
599
585
|
if (userDataName) return userDataName;
|
|
600
|
-
const src = texture
|
|
586
|
+
const src = texture.image?.src;
|
|
601
587
|
if (!src) return null;
|
|
602
588
|
try {
|
|
603
589
|
const filename = src.split("/").pop()?.split("?")[0];
|
|
@@ -614,7 +600,6 @@ function ensureTextureNames(textures) {
|
|
|
614
600
|
if (inferred) tex.name = inferred;
|
|
615
601
|
}
|
|
616
602
|
}
|
|
617
|
-
|
|
618
603
|
//#endregion
|
|
619
604
|
//#region src/core/abstractions/Decal/useDecalEditor.ts
|
|
620
605
|
/** Maximum number of recorded operations kept on the undo stack. */
|
|
@@ -757,8 +742,10 @@ function createSession() {
|
|
|
757
742
|
}
|
|
758
743
|
function beginEdit(meshUuid, entry) {
|
|
759
744
|
if (editingEntry.value === entry) return;
|
|
760
|
-
if (editingEntry.value)
|
|
761
|
-
|
|
745
|
+
if (editingEntry.value) {
|
|
746
|
+
if (editingMode.value === "update") commit();
|
|
747
|
+
else cancel();
|
|
748
|
+
}
|
|
762
749
|
if (!canActOn(meshUuid)) return;
|
|
763
750
|
lockedMeshUuid.value = meshUuid;
|
|
764
751
|
editingMode.value = "update";
|
|
@@ -1037,7 +1024,7 @@ function createSession() {
|
|
|
1037
1024
|
before,
|
|
1038
1025
|
after
|
|
1039
1026
|
});
|
|
1040
|
-
undoStack.value = next.length > MAX_HISTORY ? next.slice(-
|
|
1027
|
+
undoStack.value = next.length > MAX_HISTORY ? next.slice(-100) : next;
|
|
1041
1028
|
redoStack.value = [];
|
|
1042
1029
|
}
|
|
1043
1030
|
function undo() {
|
|
@@ -1159,7 +1146,6 @@ function useDecalEditor() {
|
|
|
1159
1146
|
if (!session) throw new Error("[cientos] useDecalEditor() must be called inside a <TresCanvas> after a <Decal> has been mounted.");
|
|
1160
1147
|
return session;
|
|
1161
1148
|
}
|
|
1162
|
-
|
|
1163
1149
|
//#endregion
|
|
1164
1150
|
//#region src/core/abstractions/Decal/DecalItem.vue?vue&type=script&setup=true&lang.ts
|
|
1165
1151
|
const _hoisted_1$67 = [
|
|
@@ -1173,7 +1159,9 @@ const _hoisted_2$32 = [
|
|
|
1173
1159
|
"name"
|
|
1174
1160
|
];
|
|
1175
1161
|
const _hoisted_3$9 = ["color"];
|
|
1176
|
-
|
|
1162
|
+
//#endregion
|
|
1163
|
+
//#region src/core/abstractions/Decal/DecalItem.vue
|
|
1164
|
+
var DecalItem_default = /* @__PURE__ */ defineComponent({
|
|
1177
1165
|
__name: "DecalItem",
|
|
1178
1166
|
props: {
|
|
1179
1167
|
parent: {
|
|
@@ -1224,8 +1212,8 @@ var DecalItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
1224
1212
|
const isEditingThis = computed(() => session.editingEntry.value === props.entry);
|
|
1225
1213
|
const showEdges = computed(() => isHovered.value && !isEditingThis.value);
|
|
1226
1214
|
const noRaycast = () => {};
|
|
1227
|
-
watch(edgesRef, (line
|
|
1228
|
-
if (line
|
|
1215
|
+
watch(edgesRef, (line) => {
|
|
1216
|
+
if (line) line.raycast = noRaycast;
|
|
1229
1217
|
}, { immediate: true });
|
|
1230
1218
|
function rebuildEdges(source) {
|
|
1231
1219
|
const geometry = source ?? meshRef.value?.geometry;
|
|
@@ -1393,16 +1381,13 @@ var DecalItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
1393
1381
|
};
|
|
1394
1382
|
}
|
|
1395
1383
|
});
|
|
1396
|
-
|
|
1397
|
-
//#endregion
|
|
1398
|
-
//#region src/core/abstractions/Decal/DecalItem.vue
|
|
1399
|
-
var DecalItem_default = DecalItem_vue_vue_type_script_setup_true_lang_default;
|
|
1400
|
-
|
|
1401
1384
|
//#endregion
|
|
1402
1385
|
//#region src/core/abstractions/Decal/DecalEditor.vue?vue&type=script&setup=true&lang.ts
|
|
1403
1386
|
const _hoisted_1$66 = ["visible"];
|
|
1404
1387
|
const DRAG_THRESHOLD_SQ = 25;
|
|
1405
|
-
|
|
1388
|
+
//#endregion
|
|
1389
|
+
//#region src/core/abstractions/Decal/DecalEditor.vue
|
|
1390
|
+
var DecalEditor_default = /* @__PURE__ */ defineComponent({
|
|
1406
1391
|
__name: "DecalEditor",
|
|
1407
1392
|
props: {
|
|
1408
1393
|
parent: {
|
|
@@ -1434,12 +1419,12 @@ var DecalEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
1434
1419
|
const raycaster = new Raycaster();
|
|
1435
1420
|
const cursorVec = new Vector2();
|
|
1436
1421
|
const dragStart = new Vector2();
|
|
1437
|
-
const tmpNormal
|
|
1422
|
+
const tmpNormal = new Vector3();
|
|
1438
1423
|
const tmpProject = new Vector3();
|
|
1439
1424
|
const tmpWorldEnd = new Vector3();
|
|
1440
1425
|
const tmpLocalA = new Vector3();
|
|
1441
1426
|
const tmpLocalB = new Vector3();
|
|
1442
|
-
const tmpInverse
|
|
1427
|
+
const tmpInverse = new Matrix4();
|
|
1443
1428
|
const orientationDummy = new Object3D();
|
|
1444
1429
|
const lineRef = shallowRef(null);
|
|
1445
1430
|
const showHoverLine = ref(false);
|
|
@@ -1473,9 +1458,9 @@ var DecalEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
1473
1458
|
}
|
|
1474
1459
|
function updateBaseOrientation(hit) {
|
|
1475
1460
|
if (!hit.face) return;
|
|
1476
|
-
tmpNormal
|
|
1461
|
+
tmpNormal.copy(hit.face.normal).transformDirection(props.parent.matrixWorld).normalize();
|
|
1477
1462
|
orientationDummy.position.copy(hit.point);
|
|
1478
|
-
orientationDummy.lookAt(tmpNormal
|
|
1463
|
+
orientationDummy.lookAt(tmpNormal.add(hit.point));
|
|
1479
1464
|
session.baseOrientation.copy(orientationDummy.rotation);
|
|
1480
1465
|
}
|
|
1481
1466
|
function applyOrientation(entry) {
|
|
@@ -1514,25 +1499,25 @@ var DecalEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
1514
1499
|
return session.lockedMeshUuid.value === meshUuid.value;
|
|
1515
1500
|
}
|
|
1516
1501
|
function updateHoverLine(hit) {
|
|
1517
|
-
const line
|
|
1518
|
-
if (!line
|
|
1502
|
+
const line = lineRef.value;
|
|
1503
|
+
if (!line) return;
|
|
1519
1504
|
if (!hit?.point || !hit.face) {
|
|
1520
1505
|
showHoverLine.value = false;
|
|
1521
1506
|
return;
|
|
1522
1507
|
}
|
|
1523
|
-
tmpNormal
|
|
1524
|
-
tmpWorldEnd.copy(hit.point).add(tmpNormal
|
|
1525
|
-
const lineParent = line
|
|
1508
|
+
tmpNormal.copy(hit.face.normal).transformDirection(props.parent.matrixWorld).normalize();
|
|
1509
|
+
tmpWorldEnd.copy(hit.point).add(tmpNormal);
|
|
1510
|
+
const lineParent = line.parent;
|
|
1526
1511
|
if (lineParent) {
|
|
1527
|
-
tmpInverse
|
|
1528
|
-
tmpLocalA.copy(hit.point).applyMatrix4(tmpInverse
|
|
1529
|
-
tmpLocalB.copy(tmpWorldEnd).applyMatrix4(tmpInverse
|
|
1512
|
+
tmpInverse.copy(lineParent.matrixWorld).invert();
|
|
1513
|
+
tmpLocalA.copy(hit.point).applyMatrix4(tmpInverse);
|
|
1514
|
+
tmpLocalB.copy(tmpWorldEnd).applyMatrix4(tmpInverse);
|
|
1530
1515
|
} else {
|
|
1531
1516
|
tmpLocalA.copy(hit.point);
|
|
1532
1517
|
tmpLocalB.copy(tmpWorldEnd);
|
|
1533
1518
|
}
|
|
1534
|
-
const positions = line
|
|
1535
|
-
if (!positions) line
|
|
1519
|
+
const positions = line.geometry.attributes.position;
|
|
1520
|
+
if (!positions) line.geometry.setFromPoints([tmpLocalA.clone(), tmpLocalB.clone()]);
|
|
1536
1521
|
else {
|
|
1537
1522
|
positions.setXYZ(0, tmpLocalA.x, tmpLocalA.y, tmpLocalA.z);
|
|
1538
1523
|
positions.setXYZ(1, tmpLocalB.x, tmpLocalB.y, tmpLocalB.z);
|
|
@@ -1540,8 +1525,8 @@ var DecalEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
1540
1525
|
}
|
|
1541
1526
|
showHoverLine.value = true;
|
|
1542
1527
|
}
|
|
1543
|
-
watch(lineRef, (line
|
|
1544
|
-
if (line
|
|
1528
|
+
watch(lineRef, (line) => {
|
|
1529
|
+
if (line) line.geometry.setFromPoints([new Vector3(), new Vector3()]);
|
|
1545
1530
|
}, { immediate: true });
|
|
1546
1531
|
watch(() => session.hoveredMeshUuid.value, () => {
|
|
1547
1532
|
if (session.hoveredMeshUuid.value === meshUuid.value) updateHoverLine(session.hoveredIntersection.value);
|
|
@@ -1687,14 +1672,9 @@ var DecalEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
1687
1672
|
};
|
|
1688
1673
|
}
|
|
1689
1674
|
});
|
|
1690
|
-
|
|
1691
|
-
//#endregion
|
|
1692
|
-
//#region src/core/abstractions/Decal/DecalEditor.vue
|
|
1693
|
-
var DecalEditor_default = DecalEditor_vue_vue_type_script_setup_true_lang_default;
|
|
1694
|
-
|
|
1695
1675
|
//#endregion
|
|
1696
|
-
//#region src/core/abstractions/Decal/Decal.vue
|
|
1697
|
-
var
|
|
1676
|
+
//#region src/core/abstractions/Decal/Decal.vue
|
|
1677
|
+
var Decal_default = /* @__PURE__ */ defineComponent({
|
|
1698
1678
|
__name: "Decal",
|
|
1699
1679
|
props: {
|
|
1700
1680
|
data: {
|
|
@@ -1924,7 +1904,7 @@ var Decal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
1924
1904
|
const tmpProj = new Vector3();
|
|
1925
1905
|
const tmpRay = new Raycaster();
|
|
1926
1906
|
const tmpCursor = new Vector2();
|
|
1927
|
-
const tmpNormal
|
|
1907
|
+
const tmpNormal = new Vector3();
|
|
1928
1908
|
const tmpDummy = new Object3D();
|
|
1929
1909
|
function projectWorldToScreen(world) {
|
|
1930
1910
|
const cam = camera.value;
|
|
@@ -1948,9 +1928,9 @@ var Decal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
1948
1928
|
tmpRay.setFromCamera(tmpCursor, cam);
|
|
1949
1929
|
const hit = tmpRay.intersectObject(m, false)[0];
|
|
1950
1930
|
if (!hit?.face) return;
|
|
1951
|
-
tmpNormal
|
|
1931
|
+
tmpNormal.copy(hit.face.normal).transformDirection(m.matrixWorld).normalize();
|
|
1952
1932
|
tmpDummy.position.copy(hit.point);
|
|
1953
|
-
tmpDummy.lookAt(tmpNormal
|
|
1933
|
+
tmpDummy.lookAt(tmpNormal.add(hit.point));
|
|
1954
1934
|
session.baseOrientation.copy(tmpDummy.rotation);
|
|
1955
1935
|
session.setAngle(entry.orientation.z - tmpDummy.rotation.z);
|
|
1956
1936
|
}
|
|
@@ -2101,11 +2081,6 @@ var Decal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
2101
2081
|
};
|
|
2102
2082
|
}
|
|
2103
2083
|
});
|
|
2104
|
-
|
|
2105
|
-
//#endregion
|
|
2106
|
-
//#region src/core/abstractions/Decal/Decal.vue
|
|
2107
|
-
var Decal_default = Decal_vue_vue_type_script_setup_true_lang_default;
|
|
2108
|
-
|
|
2109
2084
|
//#endregion
|
|
2110
2085
|
//#region src/core/abstractions/Decal/DebugUI/context.ts
|
|
2111
2086
|
/** Internal — triggers a browser download for a `DecalLayout` JSON. */
|
|
@@ -2138,7 +2113,6 @@ function getTextureSrc(tex) {
|
|
|
2138
2113
|
function getTextureLabel(tex) {
|
|
2139
2114
|
return tex?.name || "texture";
|
|
2140
2115
|
}
|
|
2141
|
-
|
|
2142
2116
|
//#endregion
|
|
2143
2117
|
//#region src/core/abstractions/Decal/DebugUI/Handle.vue?vue&type=script&setup=true&lang.ts
|
|
2144
2118
|
const _hoisted_1$65 = {
|
|
@@ -2161,7 +2135,9 @@ const _hoisted_7$2 = { class: "live-badge__layer" };
|
|
|
2161
2135
|
const MIN_SCALE = .25;
|
|
2162
2136
|
const MAX_SCALE = 3.5;
|
|
2163
2137
|
const FADE_OUT_MS = 220;
|
|
2164
|
-
|
|
2138
|
+
//#endregion
|
|
2139
|
+
//#region src/core/abstractions/Decal/DebugUI/Handle.vue
|
|
2140
|
+
var Handle_default = /* @__PURE__ */ defineComponent({
|
|
2165
2141
|
__name: "Handle",
|
|
2166
2142
|
setup(__props) {
|
|
2167
2143
|
/**
|
|
@@ -2304,7 +2280,8 @@ var Handle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
2304
2280
|
resetHandle = null;
|
|
2305
2281
|
}
|
|
2306
2282
|
}
|
|
2307
|
-
|
|
2283
|
+
const editingEntryRef = computed(() => session.value?.editingEntry.value ?? null);
|
|
2284
|
+
watch(editingEntryRef, async (entry) => {
|
|
2308
2285
|
if (!session.value) return;
|
|
2309
2286
|
if (!entry) {
|
|
2310
2287
|
clearResetTimer();
|
|
@@ -2371,11 +2348,6 @@ var Handle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
2371
2348
|
};
|
|
2372
2349
|
}
|
|
2373
2350
|
});
|
|
2374
|
-
|
|
2375
|
-
//#endregion
|
|
2376
|
-
//#region src/core/abstractions/Decal/DebugUI/Handle.vue
|
|
2377
|
-
var Handle_default = Handle_vue_vue_type_script_setup_true_lang_default;
|
|
2378
|
-
|
|
2379
2351
|
//#endregion
|
|
2380
2352
|
//#region src/core/abstractions/Decal/DebugUI/Dock.vue?vue&type=script&setup=true&lang.ts
|
|
2381
2353
|
const _hoisted_1$64 = {
|
|
@@ -2421,7 +2393,9 @@ const _hoisted_18 = { class: "export-slot" };
|
|
|
2421
2393
|
const _hoisted_19 = ["disabled"];
|
|
2422
2394
|
const _hoisted_20 = ["disabled"];
|
|
2423
2395
|
const _hoisted_21 = ["disabled"];
|
|
2424
|
-
|
|
2396
|
+
//#endregion
|
|
2397
|
+
//#region src/core/abstractions/Decal/DebugUI/Dock.vue
|
|
2398
|
+
var Dock_default = /* @__PURE__ */ defineComponent({
|
|
2425
2399
|
__name: "Dock",
|
|
2426
2400
|
setup(__props) {
|
|
2427
2401
|
/**
|
|
@@ -2918,11 +2892,6 @@ var Dock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
2918
2892
|
};
|
|
2919
2893
|
}
|
|
2920
2894
|
});
|
|
2921
|
-
|
|
2922
|
-
//#endregion
|
|
2923
|
-
//#region src/core/abstractions/Decal/DebugUI/Dock.vue
|
|
2924
|
-
var Dock_default = Dock_vue_vue_type_script_setup_true_lang_default;
|
|
2925
|
-
|
|
2926
2895
|
//#endregion
|
|
2927
2896
|
//#region src/core/abstractions/Decal/DebugUI/LayerList.vue?vue&type=script&setup=true&lang.ts
|
|
2928
2897
|
const _hoisted_1$63 = { class: "dock decal-list" };
|
|
@@ -2966,7 +2935,9 @@ const _hoisted_13 = { class: "list-item__thumb" };
|
|
|
2966
2935
|
const _hoisted_14 = ["src", "alt"];
|
|
2967
2936
|
const _hoisted_15 = { class: "list-item__layer" };
|
|
2968
2937
|
const _hoisted_16 = ["onClick"];
|
|
2969
|
-
|
|
2938
|
+
//#endregion
|
|
2939
|
+
//#region src/core/abstractions/Decal/DebugUI/LayerList.vue
|
|
2940
|
+
var LayerList_default = /* @__PURE__ */ defineComponent({
|
|
2970
2941
|
__name: "LayerList",
|
|
2971
2942
|
setup(__props) {
|
|
2972
2943
|
/**
|
|
@@ -3177,14 +3148,9 @@ var LayerList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
3177
3148
|
};
|
|
3178
3149
|
}
|
|
3179
3150
|
});
|
|
3180
|
-
|
|
3181
|
-
//#endregion
|
|
3182
|
-
//#region src/core/abstractions/Decal/DebugUI/LayerList.vue
|
|
3183
|
-
var LayerList_default = LayerList_vue_vue_type_script_setup_true_lang_default;
|
|
3184
|
-
|
|
3185
3151
|
//#endregion
|
|
3186
|
-
//#region src/core/abstractions/Decal/DebugUI/DecalDebugUI.vue
|
|
3187
|
-
var
|
|
3152
|
+
//#region src/core/abstractions/Decal/DebugUI/DecalDebugUI.vue
|
|
3153
|
+
var DecalDebugUI_default = /* @__PURE__ */ defineComponent({
|
|
3188
3154
|
__name: "DecalDebugUI",
|
|
3189
3155
|
props: {
|
|
3190
3156
|
session: {
|
|
@@ -3379,15 +3345,12 @@ var DecalDebugUI_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
3379
3345
|
};
|
|
3380
3346
|
}
|
|
3381
3347
|
});
|
|
3382
|
-
|
|
3383
|
-
//#endregion
|
|
3384
|
-
//#region src/core/abstractions/Decal/DebugUI/DecalDebugUI.vue
|
|
3385
|
-
var DecalDebugUI_default = DecalDebugUI_vue_vue_type_script_setup_true_lang_default;
|
|
3386
|
-
|
|
3387
3348
|
//#endregion
|
|
3388
3349
|
//#region src/core/abstractions/Edges.vue?vue&type=script&setup=true&lang.ts
|
|
3389
3350
|
const _hoisted_1$62 = ["color"];
|
|
3390
|
-
|
|
3351
|
+
//#endregion
|
|
3352
|
+
//#region src/core/abstractions/Edges.vue
|
|
3353
|
+
var Edges_default = /* @__PURE__ */ defineComponent({
|
|
3391
3354
|
__name: "Edges",
|
|
3392
3355
|
props: {
|
|
3393
3356
|
color: {
|
|
@@ -3428,14 +3391,9 @@ var Edges_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
3428
3391
|
};
|
|
3429
3392
|
}
|
|
3430
3393
|
});
|
|
3431
|
-
|
|
3432
|
-
//#endregion
|
|
3433
|
-
//#region src/core/abstractions/Edges.vue
|
|
3434
|
-
var Edges_default = Edges_vue_vue_type_script_setup_true_lang_default;
|
|
3435
|
-
|
|
3436
3394
|
//#endregion
|
|
3437
|
-
//#region src/core/abstractions/Fit.vue
|
|
3438
|
-
var
|
|
3395
|
+
//#region src/core/abstractions/Fit.vue
|
|
3396
|
+
var Fit_default = /* @__PURE__ */ defineComponent({
|
|
3439
3397
|
__name: "Fit",
|
|
3440
3398
|
props: {
|
|
3441
3399
|
into: {
|
|
@@ -3529,14 +3487,9 @@ var Fit_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComp
|
|
|
3529
3487
|
};
|
|
3530
3488
|
}
|
|
3531
3489
|
});
|
|
3532
|
-
|
|
3533
|
-
//#endregion
|
|
3534
|
-
//#region src/core/abstractions/Fit.vue
|
|
3535
|
-
var Fit_default = Fit_vue_vue_type_script_setup_true_lang_default;
|
|
3536
|
-
|
|
3537
3490
|
//#endregion
|
|
3538
|
-
//#region src/core/abstractions/Levioso.vue
|
|
3539
|
-
var
|
|
3491
|
+
//#region src/core/abstractions/Levioso.vue
|
|
3492
|
+
var Levioso_default = /* @__PURE__ */ defineComponent({
|
|
3540
3493
|
__name: "Levioso",
|
|
3541
3494
|
props: {
|
|
3542
3495
|
speed: {
|
|
@@ -3591,15 +3544,12 @@ var Levioso_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
3591
3544
|
};
|
|
3592
3545
|
}
|
|
3593
3546
|
});
|
|
3594
|
-
|
|
3595
|
-
//#endregion
|
|
3596
|
-
//#region src/core/abstractions/Levioso.vue
|
|
3597
|
-
var Levioso_default = Levioso_vue_vue_type_script_setup_true_lang_default;
|
|
3598
|
-
|
|
3599
3547
|
//#endregion
|
|
3600
3548
|
//#region src/core/abstractions/Mask/component.vue?vue&type=script&setup=true&lang.ts
|
|
3601
3549
|
const _hoisted_1$61 = ["render-order"];
|
|
3602
|
-
|
|
3550
|
+
//#endregion
|
|
3551
|
+
//#region src/core/abstractions/Mask/component.vue
|
|
3552
|
+
var component_default$11 = /* @__PURE__ */ defineComponent({
|
|
3603
3553
|
__name: "component",
|
|
3604
3554
|
props: {
|
|
3605
3555
|
id: {
|
|
@@ -3644,11 +3594,6 @@ var component_vue_vue_type_script_setup_true_lang_default$18 = /* @__PURE__ */ d
|
|
|
3644
3594
|
};
|
|
3645
3595
|
}
|
|
3646
3596
|
});
|
|
3647
|
-
|
|
3648
|
-
//#endregion
|
|
3649
|
-
//#region src/core/abstractions/Mask/component.vue
|
|
3650
|
-
var component_default$11 = component_vue_vue_type_script_setup_true_lang_default$18;
|
|
3651
|
-
|
|
3652
3597
|
//#endregion
|
|
3653
3598
|
//#region src/utils/shaderMaterial.ts
|
|
3654
3599
|
function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
@@ -3678,7 +3623,6 @@ function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
|
|
|
3678
3623
|
material.key = MathUtils.generateUUID();
|
|
3679
3624
|
return material;
|
|
3680
3625
|
}
|
|
3681
|
-
|
|
3682
3626
|
//#endregion
|
|
3683
3627
|
//#region src/core/abstractions/Outline/OutlineMaterialImpl.ts
|
|
3684
3628
|
const OutlineMaterialImpl = /* @__PURE__ */ shaderMaterial({
|
|
@@ -3728,10 +3672,9 @@ const OutlineMaterialImpl = /* @__PURE__ */ shaderMaterial({
|
|
|
3728
3672
|
#include <tonemapping_fragment>
|
|
3729
3673
|
#include <colorspace_fragment>
|
|
3730
3674
|
}`);
|
|
3731
|
-
|
|
3732
3675
|
//#endregion
|
|
3733
|
-
//#region src/core/abstractions/Outline/component.vue
|
|
3734
|
-
var
|
|
3676
|
+
//#region src/core/abstractions/Outline/component.vue
|
|
3677
|
+
var component_default$12 = /* @__PURE__ */ defineComponent({
|
|
3735
3678
|
__name: "component",
|
|
3736
3679
|
props: {
|
|
3737
3680
|
color: {
|
|
@@ -3868,15 +3811,11 @@ var component_vue_vue_type_script_setup_true_lang_default$17 = /* @__PURE__ */ d
|
|
|
3868
3811
|
};
|
|
3869
3812
|
}
|
|
3870
3813
|
});
|
|
3871
|
-
|
|
3872
|
-
//#endregion
|
|
3873
|
-
//#region src/core/abstractions/Outline/component.vue
|
|
3874
|
-
var component_default$12 = component_vue_vue_type_script_setup_true_lang_default$17;
|
|
3875
|
-
|
|
3876
3814
|
//#endregion
|
|
3877
3815
|
//#region src/core/abstractions/useSurfaceSampler/index.ts
|
|
3878
3816
|
const useSurfaceSampler = (mesh, count = 16, instanceMesh, weight, transform) => {
|
|
3879
|
-
const
|
|
3817
|
+
const arr = new Float32Array(count * 16);
|
|
3818
|
+
const buffer = ref(new InterleavedBuffer(arr, 16));
|
|
3880
3819
|
const updateBuffer = () => {
|
|
3881
3820
|
if (!mesh) return;
|
|
3882
3821
|
const sampler = new MeshSurfaceSampler(mesh);
|
|
@@ -3907,10 +3846,9 @@ const useSurfaceSampler = (mesh, count = 16, instanceMesh, weight, transform) =>
|
|
|
3907
3846
|
updateBuffer();
|
|
3908
3847
|
return { buffer };
|
|
3909
3848
|
};
|
|
3910
|
-
|
|
3911
3849
|
//#endregion
|
|
3912
|
-
//#region src/core/abstractions/useSurfaceSampler/component.vue
|
|
3913
|
-
var
|
|
3850
|
+
//#region src/core/abstractions/useSurfaceSampler/component.vue
|
|
3851
|
+
var component_default$15 = /* @__PURE__ */ defineComponent({
|
|
3914
3852
|
__name: "component",
|
|
3915
3853
|
props: {
|
|
3916
3854
|
transform: {
|
|
@@ -3957,11 +3895,6 @@ var component_vue_vue_type_script_setup_true_lang_default$16 = /* @__PURE__ */ d
|
|
|
3957
3895
|
};
|
|
3958
3896
|
}
|
|
3959
3897
|
});
|
|
3960
|
-
|
|
3961
|
-
//#endregion
|
|
3962
|
-
//#region src/core/abstractions/useSurfaceSampler/component.vue
|
|
3963
|
-
var component_default$15 = component_vue_vue_type_script_setup_true_lang_default$16;
|
|
3964
|
-
|
|
3965
3898
|
//#endregion
|
|
3966
3899
|
//#region src/utils/calculateScaleFactor.ts
|
|
3967
3900
|
const tV0 = new THREE.Vector3();
|
|
@@ -3991,10 +3924,9 @@ const calculateScaleFactor = (point3, radiusPx, camera, size) => {
|
|
|
3991
3924
|
}
|
|
3992
3925
|
return scale;
|
|
3993
3926
|
};
|
|
3994
|
-
|
|
3995
3927
|
//#endregion
|
|
3996
|
-
//#region src/core/abstractions/ScreenSizer.vue
|
|
3997
|
-
var
|
|
3928
|
+
//#region src/core/abstractions/ScreenSizer.vue
|
|
3929
|
+
var ScreenSizer_default = /* @__PURE__ */ defineComponent({
|
|
3998
3930
|
__name: "ScreenSizer",
|
|
3999
3931
|
setup(__props, { expose: __expose }) {
|
|
4000
3932
|
const worldPos = new Vector3();
|
|
@@ -4023,15 +3955,12 @@ var ScreenSizer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
4023
3955
|
};
|
|
4024
3956
|
}
|
|
4025
3957
|
});
|
|
4026
|
-
|
|
4027
|
-
//#endregion
|
|
4028
|
-
//#region src/core/abstractions/ScreenSizer.vue
|
|
4029
|
-
var ScreenSizer_default = ScreenSizer_vue_vue_type_script_setup_true_lang_default;
|
|
4030
|
-
|
|
4031
3958
|
//#endregion
|
|
4032
3959
|
//#region src/core/abstractions/ScreenSpace.vue?vue&type=script&setup=true&lang.ts
|
|
4033
3960
|
const _hoisted_1$60 = ["position"];
|
|
4034
|
-
|
|
3961
|
+
//#endregion
|
|
3962
|
+
//#region src/core/abstractions/ScreenSpace.vue
|
|
3963
|
+
var ScreenSpace_default = /* @__PURE__ */ defineComponent({
|
|
4035
3964
|
__name: "ScreenSpace",
|
|
4036
3965
|
props: {
|
|
4037
3966
|
depth: {
|
|
@@ -4061,11 +3990,11 @@ var ScreenSpace_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
4061
3990
|
const outerRef = shallowRef();
|
|
4062
3991
|
const { camera, sizes } = useTresContext();
|
|
4063
3992
|
const zoom = ref(1);
|
|
4064
|
-
useLoop().onBeforeRender(({ camera
|
|
4065
|
-
if (!outerRef.value || !camera
|
|
4066
|
-
outerRef.value.quaternion.copy(camera
|
|
4067
|
-
outerRef.value.position.copy(camera
|
|
4068
|
-
if (camera
|
|
3993
|
+
useLoop().onBeforeRender(({ camera }) => {
|
|
3994
|
+
if (!outerRef.value || !camera.value) return;
|
|
3995
|
+
outerRef.value.quaternion.copy(camera.value.quaternion);
|
|
3996
|
+
outerRef.value.position.copy(camera.value.position);
|
|
3997
|
+
if (camera.value instanceof PerspectiveCamera || camera.value instanceof OrthographicCamera) zoom.value = camera.value.zoom;
|
|
4069
3998
|
});
|
|
4070
3999
|
const viewPlaneDimensions = computed(() => {
|
|
4071
4000
|
let height = 0;
|
|
@@ -4101,11 +4030,6 @@ var ScreenSpace_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
4101
4030
|
};
|
|
4102
4031
|
}
|
|
4103
4032
|
});
|
|
4104
|
-
|
|
4105
|
-
//#endregion
|
|
4106
|
-
//#region src/core/abstractions/ScreenSpace.vue
|
|
4107
|
-
var ScreenSpace_default = ScreenSpace_vue_vue_type_script_setup_true_lang_default;
|
|
4108
|
-
|
|
4109
4033
|
//#endregion
|
|
4110
4034
|
//#region src/core/abstractions/Mask/useMask.ts
|
|
4111
4035
|
function useMask(id, inverse = false) {
|
|
@@ -4123,12 +4047,10 @@ function useMask(id, inverse = false) {
|
|
|
4123
4047
|
});
|
|
4124
4048
|
return result;
|
|
4125
4049
|
}
|
|
4126
|
-
|
|
4127
4050
|
//#endregion
|
|
4128
4051
|
//#region src/core/abstractions/Instances/const.ts
|
|
4129
4052
|
const INSTANCES_INJECTION_KEY = Symbol("tresInstances");
|
|
4130
4053
|
const MERGED_INJECTION_KEY = Symbol("tresMergedInstances");
|
|
4131
|
-
|
|
4132
4054
|
//#endregion
|
|
4133
4055
|
//#region src/core/abstractions/Instances/PositionMesh.ts
|
|
4134
4056
|
const scratchMesh = new Mesh();
|
|
@@ -4158,11 +4080,12 @@ var PositionMesh = class extends Object3D {
|
|
|
4158
4080
|
scratchIntersects.length = 0;
|
|
4159
4081
|
}
|
|
4160
4082
|
};
|
|
4161
|
-
|
|
4162
4083
|
//#endregion
|
|
4163
4084
|
//#region src/core/abstractions/Instances/Instance.vue?vue&type=script&setup=true&lang.ts
|
|
4164
4085
|
const _hoisted_1$59 = ["object"];
|
|
4165
|
-
|
|
4086
|
+
//#endregion
|
|
4087
|
+
//#region src/core/abstractions/Instances/Instance.vue
|
|
4088
|
+
var Instance_default = /* @__PURE__ */ defineComponent({
|
|
4166
4089
|
__name: "Instance",
|
|
4167
4090
|
props: {
|
|
4168
4091
|
batch: {
|
|
@@ -4230,11 +4153,6 @@ var Instance_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
4230
4153
|
};
|
|
4231
4154
|
}
|
|
4232
4155
|
});
|
|
4233
|
-
|
|
4234
|
-
//#endregion
|
|
4235
|
-
//#region src/core/abstractions/Instances/Instance.vue
|
|
4236
|
-
var Instance_default = Instance_vue_vue_type_script_setup_true_lang_default;
|
|
4237
|
-
|
|
4238
4156
|
//#endregion
|
|
4239
4157
|
//#region src/core/abstractions/Instances/useInstancesBatch.ts
|
|
4240
4158
|
function createMatrixAttribute(capacity) {
|
|
@@ -4373,7 +4291,6 @@ function useInstancesBatch(source) {
|
|
|
4373
4291
|
update
|
|
4374
4292
|
};
|
|
4375
4293
|
}
|
|
4376
|
-
|
|
4377
4294
|
//#endregion
|
|
4378
4295
|
//#region src/core/abstractions/Instances/Instances.vue?vue&type=script&setup=true&lang.ts
|
|
4379
4296
|
const _hoisted_1$58 = [
|
|
@@ -4381,7 +4298,9 @@ const _hoisted_1$58 = [
|
|
|
4381
4298
|
"cast-shadow",
|
|
4382
4299
|
"receive-shadow"
|
|
4383
4300
|
];
|
|
4384
|
-
|
|
4301
|
+
//#endregion
|
|
4302
|
+
//#region src/core/abstractions/Instances/Instances.vue
|
|
4303
|
+
var Instances_default = /* @__PURE__ */ defineComponent({
|
|
4385
4304
|
__name: "Instances",
|
|
4386
4305
|
props: {
|
|
4387
4306
|
geometry: {
|
|
@@ -4449,14 +4368,9 @@ var Instances_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
4449
4368
|
};
|
|
4450
4369
|
}
|
|
4451
4370
|
});
|
|
4452
|
-
|
|
4453
|
-
//#endregion
|
|
4454
|
-
//#region src/core/abstractions/Instances/Instances.vue
|
|
4455
|
-
var Instances_default = Instances_vue_vue_type_script_setup_true_lang_default;
|
|
4456
|
-
|
|
4457
4371
|
//#endregion
|
|
4458
|
-
//#region src/core/abstractions/Instances/Merged.vue
|
|
4459
|
-
var
|
|
4372
|
+
//#region src/core/abstractions/Instances/Merged.vue
|
|
4373
|
+
var Merged_default = /* @__PURE__ */ defineComponent({
|
|
4460
4374
|
__name: "Merged",
|
|
4461
4375
|
props: {
|
|
4462
4376
|
meshes: {
|
|
@@ -4505,16 +4419,10 @@ var Merged_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
4505
4419
|
};
|
|
4506
4420
|
}
|
|
4507
4421
|
});
|
|
4508
|
-
|
|
4509
|
-
//#endregion
|
|
4510
|
-
//#region src/core/abstractions/Instances/Merged.vue
|
|
4511
|
-
var Merged_default = Merged_vue_vue_type_script_setup_true_lang_default;
|
|
4512
|
-
|
|
4513
4422
|
//#endregion
|
|
4514
4423
|
//#region src/utils/types.ts
|
|
4515
4424
|
const isPerspectiveCamera$1 = (camera) => Boolean(camera && camera.isPerspectiveCamera);
|
|
4516
4425
|
const isOrthographicCamera$1 = (camera) => Boolean(camera && camera.isOrthographicCamera);
|
|
4517
|
-
|
|
4518
4426
|
//#endregion
|
|
4519
4427
|
//#region src/core/controls/CameraControls.vue?vue&type=script&setup=true&lang.ts
|
|
4520
4428
|
const _hoisted_1$57 = [
|
|
@@ -4559,7 +4467,9 @@ const getTouches = (camera, touches) => ({
|
|
|
4559
4467
|
three: CameraControls.ACTION.TOUCH_TRUCK,
|
|
4560
4468
|
...touches
|
|
4561
4469
|
});
|
|
4562
|
-
|
|
4470
|
+
//#endregion
|
|
4471
|
+
//#region src/core/controls/CameraControls.vue
|
|
4472
|
+
var CameraControls_default = /* @__PURE__ */ defineComponent({
|
|
4563
4473
|
__name: "CameraControls",
|
|
4564
4474
|
props: {
|
|
4565
4475
|
makeDefault: {
|
|
@@ -4728,14 +4638,14 @@ var CameraControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
4728
4638
|
Vector4
|
|
4729
4639
|
};
|
|
4730
4640
|
CameraControls.install({ THREE: subsetOfTHREE });
|
|
4731
|
-
const { camera: activeCamera, renderer, extend
|
|
4641
|
+
const { camera: activeCamera, renderer, extend, controls, invalidate } = useTres();
|
|
4732
4642
|
watch(props, () => {
|
|
4733
4643
|
invalidate();
|
|
4734
4644
|
});
|
|
4735
4645
|
const mouseButtons = computed(() => getMouseButtons(props.camera || activeCamera.value, props.mouseButtons));
|
|
4736
4646
|
const touches = computed(() => getTouches(props.camera || activeCamera.value, props.touches));
|
|
4737
4647
|
const controlsRef = shallowRef(null);
|
|
4738
|
-
extend
|
|
4648
|
+
extend({ CameraControls });
|
|
4739
4649
|
whenever(controlsRef, (value) => {
|
|
4740
4650
|
value.addEventListener("update", () => {
|
|
4741
4651
|
controlsRef.value && emit("change", controlsRef.value);
|
|
@@ -4790,14 +4700,9 @@ var CameraControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
4790
4700
|
};
|
|
4791
4701
|
}
|
|
4792
4702
|
});
|
|
4793
|
-
|
|
4794
|
-
//#endregion
|
|
4795
|
-
//#region src/core/controls/CameraControls.vue
|
|
4796
|
-
var CameraControls_default = CameraControls_vue_vue_type_script_setup_true_lang_default;
|
|
4797
|
-
|
|
4798
4703
|
//#endregion
|
|
4799
|
-
//#region src/core/controls/KeyboardControls.vue
|
|
4800
|
-
var
|
|
4704
|
+
//#region src/core/controls/KeyboardControls.vue
|
|
4705
|
+
var KeyboardControls_default = /* @__PURE__ */ defineComponent({
|
|
4801
4706
|
__name: "KeyboardControls",
|
|
4802
4707
|
props: {
|
|
4803
4708
|
makeDefault: {
|
|
@@ -4903,11 +4808,6 @@ var KeyboardControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
4903
4808
|
};
|
|
4904
4809
|
}
|
|
4905
4810
|
});
|
|
4906
|
-
|
|
4907
|
-
//#endregion
|
|
4908
|
-
//#region src/core/controls/KeyboardControls.vue
|
|
4909
|
-
var KeyboardControls_default = KeyboardControls_vue_vue_type_script_setup_true_lang_default;
|
|
4910
|
-
|
|
4911
4811
|
//#endregion
|
|
4912
4812
|
//#region src/core/controls/useOrbitLikeControls.ts
|
|
4913
4813
|
/** Shared default values for orbit-like controls (excludes touches, mouseButtons, screenSpacePanning). */
|
|
@@ -4964,7 +4864,6 @@ function useOrbitLikeControls(controlsRef, props, emit) {
|
|
|
4964
4864
|
if (controlsRef.value) controlsRef.value.dispose();
|
|
4965
4865
|
});
|
|
4966
4866
|
}
|
|
4967
|
-
|
|
4968
4867
|
//#endregion
|
|
4969
4868
|
//#region src/core/controls/MapControls.vue?vue&type=script&setup=true&lang.ts
|
|
4970
4869
|
const _hoisted_1$56 = [
|
|
@@ -4993,9 +4892,11 @@ const _hoisted_1$56 = [
|
|
|
4993
4892
|
"mouse-buttons",
|
|
4994
4893
|
"screen-space-panning"
|
|
4995
4894
|
];
|
|
4996
|
-
|
|
4895
|
+
//#endregion
|
|
4896
|
+
//#region src/core/controls/MapControls.vue
|
|
4897
|
+
var MapControls_default = /* @__PURE__ */ defineComponent({
|
|
4997
4898
|
__name: "MapControls",
|
|
4998
|
-
props:
|
|
4899
|
+
props: /*@__PURE__*/ mergeDefaults({
|
|
4999
4900
|
makeDefault: {
|
|
5000
4901
|
type: Boolean,
|
|
5001
4902
|
required: false
|
|
@@ -5121,9 +5022,9 @@ var MapControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
5121
5022
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
5122
5023
|
const props = __props;
|
|
5123
5024
|
const emit = __emit;
|
|
5124
|
-
const { camera: activeCamera, renderer, extend
|
|
5025
|
+
const { camera: activeCamera, renderer, extend } = useTres();
|
|
5125
5026
|
const controlsRef = shallowRef(null);
|
|
5126
|
-
extend
|
|
5027
|
+
extend({ MapControls });
|
|
5127
5028
|
useOrbitLikeControls(controlsRef, props, emit);
|
|
5128
5029
|
__expose({ instance: controlsRef });
|
|
5129
5030
|
return (_ctx, _cache) => {
|
|
@@ -5159,11 +5060,6 @@ var MapControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
5159
5060
|
};
|
|
5160
5061
|
}
|
|
5161
5062
|
});
|
|
5162
|
-
|
|
5163
|
-
//#endregion
|
|
5164
|
-
//#region src/core/controls/MapControls.vue
|
|
5165
|
-
var MapControls_default = MapControls_vue_vue_type_script_setup_true_lang_default;
|
|
5166
|
-
|
|
5167
5063
|
//#endregion
|
|
5168
5064
|
//#region src/core/controls/OrbitControls.vue?vue&type=script&setup=true&lang.ts
|
|
5169
5065
|
const _hoisted_1$55 = [
|
|
@@ -5192,9 +5088,11 @@ const _hoisted_1$55 = [
|
|
|
5192
5088
|
"mouse-buttons",
|
|
5193
5089
|
"screen-space-panning"
|
|
5194
5090
|
];
|
|
5195
|
-
|
|
5091
|
+
//#endregion
|
|
5092
|
+
//#region src/core/controls/OrbitControls.vue
|
|
5093
|
+
var OrbitControls_default = /* @__PURE__ */ defineComponent({
|
|
5196
5094
|
__name: "OrbitControls",
|
|
5197
|
-
props:
|
|
5095
|
+
props: /*@__PURE__*/ mergeDefaults({
|
|
5198
5096
|
mouseButtons: {
|
|
5199
5097
|
type: Object,
|
|
5200
5098
|
required: false
|
|
@@ -5320,9 +5218,9 @@ var OrbitControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
5320
5218
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
5321
5219
|
const props = __props;
|
|
5322
5220
|
const emit = __emit;
|
|
5323
|
-
const { camera: activeCamera, renderer, extend
|
|
5221
|
+
const { camera: activeCamera, renderer, extend } = useTres();
|
|
5324
5222
|
const controlsRef = shallowRef(null);
|
|
5325
|
-
extend
|
|
5223
|
+
extend({ OrbitControls });
|
|
5326
5224
|
useOrbitLikeControls(controlsRef, props, emit);
|
|
5327
5225
|
__expose({ instance: controlsRef });
|
|
5328
5226
|
return (_ctx, _cache) => {
|
|
@@ -5358,15 +5256,12 @@ var OrbitControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
5358
5256
|
};
|
|
5359
5257
|
}
|
|
5360
5258
|
});
|
|
5361
|
-
|
|
5362
|
-
//#endregion
|
|
5363
|
-
//#region src/core/controls/OrbitControls.vue
|
|
5364
|
-
var OrbitControls_default = OrbitControls_vue_vue_type_script_setup_true_lang_default;
|
|
5365
|
-
|
|
5366
5259
|
//#endregion
|
|
5367
5260
|
//#region src/core/controls/PointerLockControls.vue?vue&type=script&setup=true&lang.ts
|
|
5368
5261
|
const _hoisted_1$54 = ["args"];
|
|
5369
|
-
|
|
5262
|
+
//#endregion
|
|
5263
|
+
//#region src/core/controls/PointerLockControls.vue
|
|
5264
|
+
var PointerLockControls_default = /* @__PURE__ */ defineComponent({
|
|
5370
5265
|
__name: "PointerLockControls",
|
|
5371
5266
|
props: {
|
|
5372
5267
|
makeDefault: {
|
|
@@ -5391,13 +5286,13 @@ var PointerLockControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE
|
|
|
5391
5286
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
5392
5287
|
const props = __props;
|
|
5393
5288
|
const emit = __emit;
|
|
5394
|
-
const { camera: activeCamera, renderer, extend
|
|
5289
|
+
const { camera: activeCamera, renderer, extend, controls, invalidate } = useTres();
|
|
5395
5290
|
watch(props, () => {
|
|
5396
5291
|
invalidate();
|
|
5397
5292
|
});
|
|
5398
5293
|
const controlsRef = shallowRef(null);
|
|
5399
5294
|
let triggerSelector;
|
|
5400
|
-
extend
|
|
5295
|
+
extend({ PointerLockControls });
|
|
5401
5296
|
const onLock = () => emit("isLock", true);
|
|
5402
5297
|
const onUnlock = () => emit("isLock", false);
|
|
5403
5298
|
const onChange = () => invalidate();
|
|
@@ -5441,14 +5336,9 @@ var PointerLockControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE
|
|
|
5441
5336
|
};
|
|
5442
5337
|
}
|
|
5443
5338
|
});
|
|
5444
|
-
|
|
5445
|
-
//#endregion
|
|
5446
|
-
//#region src/core/controls/PointerLockControls.vue
|
|
5447
|
-
var PointerLockControls_default = PointerLockControls_vue_vue_type_script_setup_true_lang_default;
|
|
5448
|
-
|
|
5449
5339
|
//#endregion
|
|
5450
|
-
//#region src/core/controls/ScrollControls.vue
|
|
5451
|
-
var
|
|
5340
|
+
//#region src/core/controls/ScrollControls.vue
|
|
5341
|
+
var ScrollControls_default = /* @__PURE__ */ defineComponent({
|
|
5452
5342
|
__name: "ScrollControls",
|
|
5453
5343
|
props: {
|
|
5454
5344
|
pages: {
|
|
@@ -5583,11 +5473,6 @@ var ScrollControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
5583
5473
|
};
|
|
5584
5474
|
}
|
|
5585
5475
|
});
|
|
5586
|
-
|
|
5587
|
-
//#endregion
|
|
5588
|
-
//#region src/core/controls/ScrollControls.vue
|
|
5589
|
-
var ScrollControls_default = ScrollControls_vue_vue_type_script_setup_true_lang_default;
|
|
5590
|
-
|
|
5591
5476
|
//#endregion
|
|
5592
5477
|
//#region src/core/controls/TransformControls.vue?vue&type=script&setup=true&lang.ts
|
|
5593
5478
|
const _hoisted_1$53 = [
|
|
@@ -5605,7 +5490,9 @@ const _hoisted_1$53 = [
|
|
|
5605
5490
|
"show-y",
|
|
5606
5491
|
"show-z"
|
|
5607
5492
|
];
|
|
5608
|
-
|
|
5493
|
+
//#endregion
|
|
5494
|
+
//#region src/core/controls/TransformControls.vue
|
|
5495
|
+
var TransformControls_default = /* @__PURE__ */ defineComponent({
|
|
5609
5496
|
__name: "TransformControls",
|
|
5610
5497
|
props: {
|
|
5611
5498
|
object: {
|
|
@@ -5681,7 +5568,7 @@ var TransformControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
5681
5568
|
const emit = __emit;
|
|
5682
5569
|
const { object, mode, enabled, axis, translationSnap, rotationSnap, scaleSnap, space, size, showX, showY, showZ } = toRefs(props);
|
|
5683
5570
|
const controlsRef = shallowRef(null);
|
|
5684
|
-
const { controls, camera: activeCamera, renderer, extend
|
|
5571
|
+
const { controls, camera: activeCamera, renderer, extend, invalidate } = useTres();
|
|
5685
5572
|
watch([
|
|
5686
5573
|
object,
|
|
5687
5574
|
mode,
|
|
@@ -5698,7 +5585,7 @@ var TransformControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
5698
5585
|
], () => {
|
|
5699
5586
|
invalidate();
|
|
5700
5587
|
});
|
|
5701
|
-
extend
|
|
5588
|
+
extend({ TransformControls });
|
|
5702
5589
|
const onChange = () => {
|
|
5703
5590
|
invalidate();
|
|
5704
5591
|
emit("change");
|
|
@@ -5757,11 +5644,6 @@ var TransformControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
5757
5644
|
};
|
|
5758
5645
|
}
|
|
5759
5646
|
});
|
|
5760
|
-
|
|
5761
|
-
//#endregion
|
|
5762
|
-
//#region src/core/controls/TransformControls.vue
|
|
5763
|
-
var TransformControls_default = TransformControls_vue_vue_type_script_setup_true_lang_default;
|
|
5764
|
-
|
|
5765
5647
|
//#endregion
|
|
5766
5648
|
//#region src/core/debug-performance/Helper/useHelper.ts
|
|
5767
5649
|
function useHelper(object3D, helperConstructor, ...args) {
|
|
@@ -5785,10 +5667,9 @@ function useHelper(object3D, helperConstructor, ...args) {
|
|
|
5785
5667
|
});
|
|
5786
5668
|
return helper;
|
|
5787
5669
|
}
|
|
5788
|
-
|
|
5789
5670
|
//#endregion
|
|
5790
|
-
//#region src/core/debug-performance/Helper/component.vue
|
|
5791
|
-
var
|
|
5671
|
+
//#region src/core/debug-performance/Helper/component.vue
|
|
5672
|
+
var component_default$8 = /* @__PURE__ */ defineComponent({
|
|
5792
5673
|
__name: "component",
|
|
5793
5674
|
props: {
|
|
5794
5675
|
type: {
|
|
@@ -5816,14 +5697,9 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
|
|
|
5816
5697
|
};
|
|
5817
5698
|
}
|
|
5818
5699
|
});
|
|
5819
|
-
|
|
5820
5700
|
//#endregion
|
|
5821
|
-
//#region src/core/debug-performance/
|
|
5822
|
-
var
|
|
5823
|
-
|
|
5824
|
-
//#endregion
|
|
5825
|
-
//#region src/core/debug-performance/LOD.vue?vue&type=script&setup=true&lang.ts
|
|
5826
|
-
var LOD_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5701
|
+
//#region src/core/debug-performance/LOD.vue
|
|
5702
|
+
var LOD_default = /* @__PURE__ */ defineComponent({
|
|
5827
5703
|
__name: "LOD",
|
|
5828
5704
|
props: {
|
|
5829
5705
|
levels: {
|
|
@@ -5869,11 +5745,6 @@ var LOD_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComp
|
|
|
5869
5745
|
};
|
|
5870
5746
|
}
|
|
5871
5747
|
});
|
|
5872
|
-
|
|
5873
|
-
//#endregion
|
|
5874
|
-
//#region src/core/debug-performance/LOD.vue
|
|
5875
|
-
var LOD_default = LOD_vue_vue_type_script_setup_true_lang_default;
|
|
5876
|
-
|
|
5877
5748
|
//#endregion
|
|
5878
5749
|
//#region src/core/debug-performance/Stats.ts
|
|
5879
5750
|
const Stats = defineComponent({
|
|
@@ -5896,7 +5767,6 @@ const Stats = defineComponent({
|
|
|
5896
5767
|
});
|
|
5897
5768
|
}
|
|
5898
5769
|
});
|
|
5899
|
-
|
|
5900
5770
|
//#endregion
|
|
5901
5771
|
//#region src/core/debug-performance/StatsGl.ts
|
|
5902
5772
|
const StatsGl = defineComponent({
|
|
@@ -5933,7 +5803,6 @@ const StatsGl = defineComponent({
|
|
|
5933
5803
|
});
|
|
5934
5804
|
}
|
|
5935
5805
|
});
|
|
5936
|
-
|
|
5937
5806
|
//#endregion
|
|
5938
5807
|
//#region src/core/debug-performance/useBVH.ts
|
|
5939
5808
|
/**
|
|
@@ -5978,12 +5847,12 @@ const useBVH = (target, { enabled = true, firstHitOnly = false, splitStrategy =
|
|
|
5978
5847
|
const boundsTree = new MeshBVH(mesh.geometry, bvhOptions);
|
|
5979
5848
|
mesh.geometry.boundsTree = boundsTree;
|
|
5980
5849
|
if (firstHitOnly) mesh.raycast = function(raycaster, intersects) {
|
|
5981
|
-
const boundsTree
|
|
5982
|
-
if (boundsTree
|
|
5850
|
+
const boundsTree = this.geometry.boundsTree;
|
|
5851
|
+
if (boundsTree) {
|
|
5983
5852
|
if (!this.layers.test(raycaster.layers)) return;
|
|
5984
|
-
if (!(boundsTree
|
|
5853
|
+
if (!(boundsTree instanceof MeshBVH)) return;
|
|
5985
5854
|
const side = (Array.isArray(this.material) ? this.material[0] : this.material)?.side ?? raycaster.params.Mesh?.side;
|
|
5986
|
-
const hit = boundsTree
|
|
5855
|
+
const hit = boundsTree.raycastFirst(raycaster.ray, side, raycaster.near, raycaster.far);
|
|
5987
5856
|
if (hit) {
|
|
5988
5857
|
hit.object = this;
|
|
5989
5858
|
intersects.push(hit);
|
|
@@ -6059,8 +5928,8 @@ const useBVH = (target, { enabled = true, firstHitOnly = false, splitStrategy =
|
|
|
6059
5928
|
const objectValue = toValue(target);
|
|
6060
5929
|
if (objectValue && toValue(enabled)) applyBVH(objectValue);
|
|
6061
5930
|
}, { immediate: true });
|
|
6062
|
-
watch(() => toValue(enabled), (enabled
|
|
6063
|
-
if (enabled
|
|
5931
|
+
watch(() => toValue(enabled), (enabled) => {
|
|
5932
|
+
if (enabled) {
|
|
6064
5933
|
const objectValue = toValue(target);
|
|
6065
5934
|
if (objectValue) applyBVH(objectValue);
|
|
6066
5935
|
} else removeBVH();
|
|
@@ -6072,7 +5941,6 @@ const useBVH = (target, { enabled = true, firstHitOnly = false, splitStrategy =
|
|
|
6072
5941
|
removeBVH();
|
|
6073
5942
|
});
|
|
6074
5943
|
};
|
|
6075
|
-
|
|
6076
5944
|
//#endregion
|
|
6077
5945
|
//#region src/core/light-shadow/RandomizedLights/RandomizedLights.ts
|
|
6078
5946
|
var RandomizedLights = class extends Group {
|
|
@@ -6088,60 +5956,71 @@ var RandomizedLights = class extends Group {
|
|
|
6088
5956
|
castShadow = true;
|
|
6089
5957
|
/** Default shadow bias */
|
|
6090
5958
|
bias = 0;
|
|
5959
|
+
_mapSize = 512;
|
|
5960
|
+
_size = 10;
|
|
5961
|
+
_near = .5;
|
|
5962
|
+
_far = 500;
|
|
6091
5963
|
constructor(config = {}) {
|
|
6092
5964
|
super();
|
|
6093
5965
|
Object.assign(this, config);
|
|
6094
5966
|
if (this.count === 0) this.count = 8;
|
|
6095
|
-
if (!config.mapSize) this.mapSize = 512;
|
|
6096
|
-
if (!config.size) this.size = 10;
|
|
6097
|
-
if (!config.near) this.near = .5;
|
|
6098
|
-
if (!config.far) this.far = 500;
|
|
6099
5967
|
}
|
|
6100
5968
|
get length() {
|
|
6101
5969
|
return this.position.length();
|
|
6102
5970
|
}
|
|
6103
5971
|
set count(n) {
|
|
5972
|
+
for (const light of this.lights) light.dispose();
|
|
6104
5973
|
this.clear();
|
|
6105
5974
|
for (let i = 0; i < n; i++) this.add(new DirectionalLight("white", this.intensity));
|
|
5975
|
+
this.configureShadows();
|
|
6106
5976
|
}
|
|
6107
5977
|
get count() {
|
|
6108
5978
|
return this.children.filter((c) => "isDirectionalLight" in c).length;
|
|
6109
5979
|
}
|
|
6110
5980
|
get mapSize() {
|
|
6111
|
-
return this.
|
|
5981
|
+
return this._mapSize;
|
|
6112
5982
|
}
|
|
6113
5983
|
set mapSize(n) {
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
light.shadow.map?.setSize(n, n);
|
|
6117
|
-
}
|
|
5984
|
+
this._mapSize = n;
|
|
5985
|
+
this.configureShadows();
|
|
6118
5986
|
}
|
|
6119
5987
|
get size() {
|
|
6120
|
-
return this.
|
|
5988
|
+
return this._size;
|
|
6121
5989
|
}
|
|
6122
5990
|
set size(n) {
|
|
6123
|
-
|
|
6124
|
-
|
|
6125
|
-
light.shadow.camera.right = n;
|
|
6126
|
-
light.shadow.camera.top = n;
|
|
6127
|
-
light.shadow.camera.bottom = -n;
|
|
6128
|
-
}
|
|
5991
|
+
this._size = n;
|
|
5992
|
+
this.configureShadows();
|
|
6129
5993
|
}
|
|
6130
5994
|
get near() {
|
|
6131
|
-
return this.
|
|
5995
|
+
return this._near;
|
|
6132
5996
|
}
|
|
6133
5997
|
set near(n) {
|
|
6134
|
-
|
|
5998
|
+
this._near = n;
|
|
5999
|
+
this.configureShadows();
|
|
6135
6000
|
}
|
|
6136
6001
|
get far() {
|
|
6137
|
-
return this.
|
|
6002
|
+
return this._far;
|
|
6138
6003
|
}
|
|
6139
6004
|
set far(n) {
|
|
6140
|
-
|
|
6005
|
+
this._far = n;
|
|
6006
|
+
this.configureShadows();
|
|
6141
6007
|
}
|
|
6142
6008
|
get lights() {
|
|
6143
6009
|
return this.children.filter((c) => "isDirectionalLight" in c);
|
|
6144
6010
|
}
|
|
6011
|
+
configureShadows() {
|
|
6012
|
+
for (const light of this.lights) {
|
|
6013
|
+
light.shadow.mapSize.set(this._mapSize, this._mapSize);
|
|
6014
|
+
light.shadow.map?.setSize(this._mapSize, this._mapSize);
|
|
6015
|
+
light.shadow.camera.left = -this._size;
|
|
6016
|
+
light.shadow.camera.right = this._size;
|
|
6017
|
+
light.shadow.camera.top = this._size;
|
|
6018
|
+
light.shadow.camera.bottom = -this._size;
|
|
6019
|
+
light.shadow.camera.near = this._near;
|
|
6020
|
+
light.shadow.camera.far = this._far;
|
|
6021
|
+
light.shadow.camera.updateProjectionMatrix();
|
|
6022
|
+
}
|
|
6023
|
+
}
|
|
6145
6024
|
update() {
|
|
6146
6025
|
const lights = this.lights;
|
|
6147
6026
|
const lightIntensity = this.intensity / lights.length;
|
|
@@ -6158,7 +6037,6 @@ var RandomizedLights = class extends Group {
|
|
|
6158
6037
|
}
|
|
6159
6038
|
}
|
|
6160
6039
|
};
|
|
6161
|
-
|
|
6162
6040
|
//#endregion
|
|
6163
6041
|
//#region src/core/light-shadow/RandomizedLights/component.vue?vue&type=script&setup=true&lang.ts
|
|
6164
6042
|
const _hoisted_1$52 = [
|
|
@@ -6174,7 +6052,9 @@ const _hoisted_1$52 = [
|
|
|
6174
6052
|
"far",
|
|
6175
6053
|
"position"
|
|
6176
6054
|
];
|
|
6177
|
-
|
|
6055
|
+
//#endregion
|
|
6056
|
+
//#region src/core/light-shadow/RandomizedLights/component.vue
|
|
6057
|
+
var component_default$14 = /* @__PURE__ */ defineComponent({
|
|
6178
6058
|
__name: "component",
|
|
6179
6059
|
props: {
|
|
6180
6060
|
count: {
|
|
@@ -6266,11 +6146,6 @@ var component_vue_vue_type_script_setup_true_lang_default$14 = /* @__PURE__ */ d
|
|
|
6266
6146
|
};
|
|
6267
6147
|
}
|
|
6268
6148
|
});
|
|
6269
|
-
|
|
6270
|
-
//#endregion
|
|
6271
|
-
//#region src/core/light-shadow/RandomizedLights/component.vue
|
|
6272
|
-
var component_default$14 = component_vue_vue_type_script_setup_true_lang_default$14;
|
|
6273
|
-
|
|
6274
6149
|
//#endregion
|
|
6275
6150
|
//#region src/core/materials/meshDiscardMaterial/material.ts
|
|
6276
6151
|
var MeshDiscardMaterial = class extends ShaderMaterial {
|
|
@@ -6280,7 +6155,6 @@ var MeshDiscardMaterial = class extends ShaderMaterial {
|
|
|
6280
6155
|
this.fragmentShader = "void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); discard;}";
|
|
6281
6156
|
}
|
|
6282
6157
|
};
|
|
6283
|
-
|
|
6284
6158
|
//#endregion
|
|
6285
6159
|
//#region src/core/light-shadow/AccumulativeShadows/ProgressiveLightMap.ts
|
|
6286
6160
|
function isLight(object) {
|
|
@@ -6400,8 +6274,13 @@ var ProgressiveLightMap = class {
|
|
|
6400
6274
|
this.scene.background = oldBg;
|
|
6401
6275
|
this.scene.environment = oldEnv;
|
|
6402
6276
|
}
|
|
6277
|
+
dispose() {
|
|
6278
|
+
this.progressiveLightMap1.dispose();
|
|
6279
|
+
this.progressiveLightMap2.dispose();
|
|
6280
|
+
this.discardMat.dispose();
|
|
6281
|
+
this.targetMat.dispose();
|
|
6282
|
+
}
|
|
6403
6283
|
};
|
|
6404
|
-
|
|
6405
6284
|
//#endregion
|
|
6406
6285
|
//#region src/core/light-shadow/AccumulativeShadows/SoftShadowMaterial.ts
|
|
6407
6286
|
const SoftShadowMaterial = /* @__PURE__ */ shaderMaterial({
|
|
@@ -6426,7 +6305,6 @@ const SoftShadowMaterial = /* @__PURE__ */ shaderMaterial({
|
|
|
6426
6305
|
#include <tonemapping_fragment>
|
|
6427
6306
|
#include <colorspace_fragment>
|
|
6428
6307
|
}`);
|
|
6429
|
-
|
|
6430
6308
|
//#endregion
|
|
6431
6309
|
//#region src/core/light-shadow/AccumulativeShadows/component.vue?vue&type=script&setup=true&lang.ts
|
|
6432
6310
|
const _hoisted_1$51 = ["scale", "rotation"];
|
|
@@ -6438,7 +6316,9 @@ const _hoisted_2$28 = [
|
|
|
6438
6316
|
"opacity",
|
|
6439
6317
|
"tone-mapped"
|
|
6440
6318
|
];
|
|
6441
|
-
|
|
6319
|
+
//#endregion
|
|
6320
|
+
//#region src/core/light-shadow/AccumulativeShadows/component.vue
|
|
6321
|
+
var component_default = /* @__PURE__ */ defineComponent({
|
|
6442
6322
|
__name: "component",
|
|
6443
6323
|
props: {
|
|
6444
6324
|
once: {
|
|
@@ -6515,6 +6395,8 @@ var component_vue_vue_type_script_setup_true_lang_default$13 = /* @__PURE__ */ d
|
|
|
6515
6395
|
const gLights = shallowRef(new Group());
|
|
6516
6396
|
const progressiveLightMap = computed(() => new ProgressiveLightMap(renderer, scene.value, props.resolution));
|
|
6517
6397
|
const shadowMapTexture = shallowRef();
|
|
6398
|
+
watch(progressiveLightMap, (_, previous) => previous.dispose());
|
|
6399
|
+
onUnmounted(() => progressiveLightMap.value.dispose());
|
|
6518
6400
|
let frameCount = 0;
|
|
6519
6401
|
let frameLimitRemaining = props.limit;
|
|
6520
6402
|
function reset() {
|
|
@@ -6632,11 +6514,6 @@ var component_vue_vue_type_script_setup_true_lang_default$13 = /* @__PURE__ */ d
|
|
|
6632
6514
|
};
|
|
6633
6515
|
}
|
|
6634
6516
|
});
|
|
6635
|
-
|
|
6636
|
-
//#endregion
|
|
6637
|
-
//#region src/core/light-shadow/AccumulativeShadows/component.vue
|
|
6638
|
-
var component_default = component_vue_vue_type_script_setup_true_lang_default$13;
|
|
6639
|
-
|
|
6640
6517
|
//#endregion
|
|
6641
6518
|
//#region src/core/light-shadow/BakeShadows.ts
|
|
6642
6519
|
const BakeShadows = defineComponent({
|
|
@@ -6651,7 +6528,6 @@ const BakeShadows = defineComponent({
|
|
|
6651
6528
|
});
|
|
6652
6529
|
}
|
|
6653
6530
|
});
|
|
6654
|
-
|
|
6655
6531
|
//#endregion
|
|
6656
6532
|
//#region src/core/light-shadow/CircleShadow.vue?vue&type=script&setup=true&lang.ts
|
|
6657
6533
|
const _hoisted_1$50 = ["rotation-x"];
|
|
@@ -6663,7 +6539,9 @@ const _hoisted_2$27 = [
|
|
|
6663
6539
|
"map"
|
|
6664
6540
|
];
|
|
6665
6541
|
const SIZE = 128;
|
|
6666
|
-
|
|
6542
|
+
//#endregion
|
|
6543
|
+
//#region src/core/light-shadow/CircleShadow.vue
|
|
6544
|
+
var CircleShadow_default = /* @__PURE__ */ defineComponent({
|
|
6667
6545
|
__name: "CircleShadow",
|
|
6668
6546
|
props: {
|
|
6669
6547
|
color: {
|
|
@@ -6702,7 +6580,7 @@ var CircleShadow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
6702
6580
|
canvas.width = SIZE;
|
|
6703
6581
|
canvas.height = SIZE;
|
|
6704
6582
|
const context = canvas.getContext("2d");
|
|
6705
|
-
const texture
|
|
6583
|
+
const texture = new Texture(canvas);
|
|
6706
6584
|
function createCanvas() {
|
|
6707
6585
|
const gradient = context.createRadialGradient(canvas.width / 2, canvas.height / 2, 0, canvas.width / 2, canvas.height / 2, canvas.width / 2);
|
|
6708
6586
|
gradient.addColorStop(props.offset, new Color(props.color).getStyle());
|
|
@@ -6710,12 +6588,12 @@ var CircleShadow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
6710
6588
|
context.clearRect(0, 0, SIZE, SIZE);
|
|
6711
6589
|
context.fillStyle = gradient;
|
|
6712
6590
|
context.fillRect(0, 0, canvas.width, canvas.height);
|
|
6713
|
-
texture
|
|
6591
|
+
texture.needsUpdate = true;
|
|
6714
6592
|
}
|
|
6715
6593
|
watchEffect(createCanvas);
|
|
6716
6594
|
const shadowRef = shallowRef();
|
|
6717
6595
|
__expose({ instance: shadowRef });
|
|
6718
|
-
onUnmounted(() => texture
|
|
6596
|
+
onUnmounted(() => texture.dispose());
|
|
6719
6597
|
return (_ctx, _cache) => {
|
|
6720
6598
|
return openBlock(), createElementBlock("TresMesh", {
|
|
6721
6599
|
ref_key: "shadowRef",
|
|
@@ -6727,20 +6605,17 @@ var CircleShadow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
6727
6605
|
fog: props.fog,
|
|
6728
6606
|
"depth-write": __props.depthWrite,
|
|
6729
6607
|
side: unref(DoubleSide),
|
|
6730
|
-
map: unref(texture
|
|
6608
|
+
map: unref(texture)
|
|
6731
6609
|
}, null, 8, _hoisted_2$27)], 8, _hoisted_1$50);
|
|
6732
6610
|
};
|
|
6733
6611
|
}
|
|
6734
6612
|
});
|
|
6735
|
-
|
|
6736
|
-
//#endregion
|
|
6737
|
-
//#region src/core/light-shadow/CircleShadow.vue
|
|
6738
|
-
var CircleShadow_default = CircleShadow_vue_vue_type_script_setup_true_lang_default;
|
|
6739
|
-
|
|
6740
6613
|
//#endregion
|
|
6741
6614
|
//#region src/core/light-shadow/ContactShadows.vue?vue&type=script&setup=true&lang.ts
|
|
6742
6615
|
const _hoisted_1$49 = ["object"];
|
|
6743
|
-
|
|
6616
|
+
//#endregion
|
|
6617
|
+
//#region src/core/light-shadow/ContactShadows.vue
|
|
6618
|
+
var ContactShadows_default = /* @__PURE__ */ defineComponent({
|
|
6744
6619
|
__name: "ContactShadows",
|
|
6745
6620
|
props: {
|
|
6746
6621
|
opacity: {
|
|
@@ -6806,22 +6681,22 @@ var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
6806
6681
|
},
|
|
6807
6682
|
setup(__props, { expose: __expose }) {
|
|
6808
6683
|
const props = __props;
|
|
6809
|
-
function blurShadow(blur, renderer, pool
|
|
6810
|
-
pool
|
|
6811
|
-
pool
|
|
6812
|
-
pool
|
|
6813
|
-
pool
|
|
6814
|
-
renderer.setRenderTarget(pool
|
|
6815
|
-
renderer.render(pool
|
|
6816
|
-
pool
|
|
6817
|
-
pool
|
|
6818
|
-
pool
|
|
6819
|
-
renderer.setRenderTarget(pool
|
|
6820
|
-
renderer.render(pool
|
|
6821
|
-
pool
|
|
6684
|
+
function blurShadow(blur, renderer, pool) {
|
|
6685
|
+
pool.blurPlane.visible = true;
|
|
6686
|
+
pool.blurPlane.material = pool.horizontalBlurMaterial;
|
|
6687
|
+
pool.horizontalBlurMaterial.uniforms.tDiffuse.value = pool.renderTarget.texture;
|
|
6688
|
+
pool.horizontalBlurMaterial.uniforms.h.value = blur / 256;
|
|
6689
|
+
renderer.setRenderTarget(pool.renderTargetBlur);
|
|
6690
|
+
renderer.render(pool.blurPlane, pool.shadowCamera);
|
|
6691
|
+
pool.blurPlane.material = pool.verticalBlurMaterial;
|
|
6692
|
+
pool.verticalBlurMaterial.uniforms.tDiffuse.value = pool.renderTargetBlur.texture;
|
|
6693
|
+
pool.verticalBlurMaterial.uniforms.v.value = blur / 256;
|
|
6694
|
+
renderer.setRenderTarget(pool.renderTarget);
|
|
6695
|
+
renderer.render(pool.blurPlane, pool.shadowCamera);
|
|
6696
|
+
pool.blurPlane.visible = false;
|
|
6822
6697
|
}
|
|
6823
|
-
function update(ps, scene, renderer, pool
|
|
6824
|
-
const { renderTarget, shadowCamera, depthMaterial } = pool
|
|
6698
|
+
function update(ps, scene, renderer, pool) {
|
|
6699
|
+
const { renderTarget, shadowCamera, depthMaterial } = pool;
|
|
6825
6700
|
const initialBackground = scene.background;
|
|
6826
6701
|
scene.background = null;
|
|
6827
6702
|
scene.overrideMaterial = depthMaterial;
|
|
@@ -6830,8 +6705,8 @@ var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
6830
6705
|
renderer.setRenderTarget(renderTarget);
|
|
6831
6706
|
renderer.render(scene, shadowCamera);
|
|
6832
6707
|
scene.overrideMaterial = null;
|
|
6833
|
-
blurShadow(ps.blur, renderer, pool
|
|
6834
|
-
if (ps.smooth) blurShadow(ps.blur * .4, renderer, pool
|
|
6708
|
+
blurShadow(ps.blur, renderer, pool);
|
|
6709
|
+
if (ps.smooth) blurShadow(ps.blur * .4, renderer, pool);
|
|
6835
6710
|
renderer.setRenderTarget(null);
|
|
6836
6711
|
renderer.setClearAlpha(initialClearAlpha);
|
|
6837
6712
|
scene.background = initialBackground;
|
|
@@ -6843,13 +6718,14 @@ var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
6843
6718
|
const renderTargetBlur = new WebGLRenderTarget(p.resolution, p.resolution);
|
|
6844
6719
|
renderTargetBlur.texture.generateMipmaps = false;
|
|
6845
6720
|
const planeGeometry = new PlaneGeometry(p.width, p.height).rotateX(Math.PI / 2);
|
|
6846
|
-
const
|
|
6721
|
+
const planeMaterial = new MeshBasicMaterial({
|
|
6847
6722
|
map: renderTarget.texture,
|
|
6848
6723
|
opacity: p.opacity,
|
|
6849
6724
|
transparent: true,
|
|
6850
6725
|
depthWrite: p.depthWrite,
|
|
6851
6726
|
color: new Color(p.color ?? "black")
|
|
6852
|
-
})
|
|
6727
|
+
});
|
|
6728
|
+
const plane = new Mesh(planeGeometry, planeMaterial);
|
|
6853
6729
|
shadowGroup.add(plane);
|
|
6854
6730
|
plane.scale.y = -1;
|
|
6855
6731
|
const blurPlane = new Mesh(planeGeometry);
|
|
@@ -6875,32 +6751,32 @@ var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
6875
6751
|
blurPlane
|
|
6876
6752
|
};
|
|
6877
6753
|
}
|
|
6878
|
-
function setSize(ps, pool
|
|
6754
|
+
function setSize(ps, pool) {
|
|
6879
6755
|
const w = ps.width * (Array.isArray(ps.scale) ? ps.scale[0] : ps.scale || 1);
|
|
6880
6756
|
const h = ps.height * (Array.isArray(ps.scale) ? ps.scale[1] : ps.scale || 1);
|
|
6881
|
-
const shadowCamera = pool
|
|
6757
|
+
const shadowCamera = pool.shadowCamera;
|
|
6882
6758
|
shadowCamera.left = -w / 2;
|
|
6883
6759
|
shadowCamera.right = w / 2;
|
|
6884
6760
|
shadowCamera.top = h / 2;
|
|
6885
6761
|
shadowCamera.bottom = -h / 2;
|
|
6886
6762
|
shadowCamera.far = ps.far;
|
|
6887
6763
|
shadowCamera.updateProjectionMatrix();
|
|
6888
|
-
pool
|
|
6764
|
+
pool.shadowGroup.scale.set(w, ps.far, h);
|
|
6889
6765
|
}
|
|
6890
|
-
function setResolution(resolution, pool
|
|
6891
|
-
pool
|
|
6892
|
-
pool
|
|
6893
|
-
pool
|
|
6894
|
-
pool
|
|
6895
|
-
pool
|
|
6896
|
-
pool
|
|
6897
|
-
pool
|
|
6766
|
+
function setResolution(resolution, pool) {
|
|
6767
|
+
pool.renderTarget.dispose();
|
|
6768
|
+
pool.renderTargetBlur.dispose();
|
|
6769
|
+
pool.renderTarget = new WebGLRenderTarget(resolution, resolution);
|
|
6770
|
+
pool.renderTarget.texture.generateMipmaps = false;
|
|
6771
|
+
pool.renderTargetBlur = new WebGLRenderTarget(resolution, resolution);
|
|
6772
|
+
pool.renderTargetBlur.texture.generateMipmaps = false;
|
|
6773
|
+
pool.plane.material.map = pool.renderTarget.texture;
|
|
6898
6774
|
}
|
|
6899
|
-
function setColors(ps, pool
|
|
6900
|
-
pool
|
|
6901
|
-
pool
|
|
6902
|
-
pool
|
|
6903
|
-
pool
|
|
6775
|
+
function setColors(ps, pool) {
|
|
6776
|
+
pool.plane.material.color = new Color(ps.color ?? "black");
|
|
6777
|
+
pool.depthMaterial.dispose();
|
|
6778
|
+
pool.depthMaterial = new MeshDepthMaterial();
|
|
6779
|
+
pool.depthMaterial.onBeforeCompile = function(shader) {
|
|
6904
6780
|
const { r, g, b } = ps.tint ? new Color(ps.tint) : new Color("white");
|
|
6905
6781
|
shader.fragmentShader = shader.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );", `gl_FragColor = vec4( ${r}, ${g}, ${b}, ( 1.0 - fragCoordZ ) * opacity);`);
|
|
6906
6782
|
};
|
|
@@ -6951,11 +6827,6 @@ var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
6951
6827
|
};
|
|
6952
6828
|
}
|
|
6953
6829
|
});
|
|
6954
|
-
|
|
6955
|
-
//#endregion
|
|
6956
|
-
//#region src/core/light-shadow/ContactShadows.vue
|
|
6957
|
-
var ContactShadows_default = ContactShadows_vue_vue_type_script_setup_true_lang_default;
|
|
6958
|
-
|
|
6959
6830
|
//#endregion
|
|
6960
6831
|
//#region src/core/light-shadow/Lensflare/LensflareImpl.ts
|
|
6961
6832
|
var Lensflare = class Lensflare extends Mesh {
|
|
@@ -7115,14 +6986,14 @@ var Lensflare = class Lensflare extends Mesh {
|
|
|
7115
6986
|
const vecY = -positionScreen.y * 2;
|
|
7116
6987
|
for (let i = 0, l = elements.length; i < l; i++) {
|
|
7117
6988
|
const element = elements[i];
|
|
7118
|
-
const uniforms
|
|
7119
|
-
uniforms
|
|
7120
|
-
uniforms
|
|
7121
|
-
uniforms
|
|
7122
|
-
uniforms
|
|
6989
|
+
const uniforms = material2.uniforms;
|
|
6990
|
+
uniforms.color.value.copy(element.color);
|
|
6991
|
+
uniforms.map.value = element.texture;
|
|
6992
|
+
uniforms.screenPosition.value.x = positionScreen.x + vecX * element.distance;
|
|
6993
|
+
uniforms.screenPosition.value.y = positionScreen.y + vecY * element.distance;
|
|
7123
6994
|
size = element.size / viewport.w;
|
|
7124
|
-
const invAspect
|
|
7125
|
-
uniforms
|
|
6995
|
+
const invAspect = viewport.w / viewport.z;
|
|
6996
|
+
uniforms.scale.value.set(size * invAspect, size);
|
|
7126
6997
|
material2.uniformsNeedUpdate = true;
|
|
7127
6998
|
renderer.renderBufferDirect(camera, null, geometry, material2, mesh2, null);
|
|
7128
6999
|
}
|
|
@@ -7144,8 +7015,8 @@ var LensflareElement = class {
|
|
|
7144
7015
|
distance;
|
|
7145
7016
|
color;
|
|
7146
7017
|
static Shader;
|
|
7147
|
-
constructor(texture
|
|
7148
|
-
this.texture = texture
|
|
7018
|
+
constructor(texture, size = 1, distance = 0, color = new Color(16777215)) {
|
|
7019
|
+
this.texture = texture;
|
|
7149
7020
|
this.size = size;
|
|
7150
7021
|
this.distance = distance;
|
|
7151
7022
|
this.color = color;
|
|
@@ -7219,7 +7090,7 @@ LensflareElement.Shader = {
|
|
|
7219
7090
|
};
|
|
7220
7091
|
Lensflare.Geometry = (function() {
|
|
7221
7092
|
const geometry = new BufferGeometry();
|
|
7222
|
-
const
|
|
7093
|
+
const float32Array = new Float32Array([
|
|
7223
7094
|
-1,
|
|
7224
7095
|
-1,
|
|
7225
7096
|
0,
|
|
@@ -7240,7 +7111,8 @@ Lensflare.Geometry = (function() {
|
|
|
7240
7111
|
0,
|
|
7241
7112
|
0,
|
|
7242
7113
|
1
|
|
7243
|
-
])
|
|
7114
|
+
]);
|
|
7115
|
+
const interleavedBuffer = new InterleavedBuffer(float32Array, 5);
|
|
7244
7116
|
geometry.setIndex([
|
|
7245
7117
|
0,
|
|
7246
7118
|
1,
|
|
@@ -7253,7 +7125,6 @@ Lensflare.Geometry = (function() {
|
|
|
7253
7125
|
geometry.setAttribute("uv", new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));
|
|
7254
7126
|
return geometry;
|
|
7255
7127
|
})();
|
|
7256
|
-
|
|
7257
7128
|
//#endregion
|
|
7258
7129
|
//#region src/utils/easing.ts
|
|
7259
7130
|
function linear(x) {
|
|
@@ -7276,7 +7147,6 @@ function easeOutBounce(x) {
|
|
|
7276
7147
|
else if (x < 2.5 / d1) return n1 * (x -= 2.25 / d1) * x + .9375;
|
|
7277
7148
|
else return n1 * (x -= 2.625 / d1) * x + .984375;
|
|
7278
7149
|
}
|
|
7279
|
-
|
|
7280
7150
|
//#endregion
|
|
7281
7151
|
//#region src/core/light-shadow/Lensflare/constants.ts
|
|
7282
7152
|
const TEXTURE_PATH = "https://raw.githubusercontent.com/Tresjs/assets/93976c7d63ac83d4a254a41a10b2362bc17e90c9/textures/lensflare/";
|
|
@@ -7323,51 +7193,49 @@ const bodyOptional = {
|
|
|
7323
7193
|
length: [2, 3]
|
|
7324
7194
|
};
|
|
7325
7195
|
const [darkPurple, darkBlue] = [3679071, 132442];
|
|
7326
|
-
const front = {
|
|
7327
|
-
texture: [
|
|
7328
|
-
circleBlur,
|
|
7329
|
-
circle,
|
|
7330
|
-
ring,
|
|
7331
|
-
poly6,
|
|
7332
|
-
polyStroke6
|
|
7333
|
-
],
|
|
7334
|
-
color: [
|
|
7335
|
-
"dimgray",
|
|
7336
|
-
"gray",
|
|
7337
|
-
"darkgray",
|
|
7338
|
-
darkPurple,
|
|
7339
|
-
darkBlue
|
|
7340
|
-
],
|
|
7341
|
-
distance: [.5, 2.5],
|
|
7342
|
-
size: [20, 180],
|
|
7343
|
-
length: [5, 21]
|
|
7344
|
-
};
|
|
7345
|
-
const back = {
|
|
7346
|
-
texture: [
|
|
7347
|
-
circleBlur,
|
|
7348
|
-
circle,
|
|
7349
|
-
ring,
|
|
7350
|
-
poly6,
|
|
7351
|
-
polyStroke6
|
|
7352
|
-
],
|
|
7353
|
-
color: [
|
|
7354
|
-
"dimgray",
|
|
7355
|
-
"gray",
|
|
7356
|
-
"darkgray",
|
|
7357
|
-
darkPurple,
|
|
7358
|
-
darkBlue
|
|
7359
|
-
],
|
|
7360
|
-
distance: [-.6, -.1],
|
|
7361
|
-
size: [180, 360],
|
|
7362
|
-
length: [0, 5]
|
|
7363
|
-
};
|
|
7364
7196
|
const defaultSeedProps = [
|
|
7365
7197
|
oversize,
|
|
7366
7198
|
bodyRequired0,
|
|
7367
7199
|
bodyRequired1,
|
|
7368
7200
|
bodyOptional,
|
|
7369
|
-
|
|
7370
|
-
|
|
7201
|
+
{
|
|
7202
|
+
texture: [
|
|
7203
|
+
circleBlur,
|
|
7204
|
+
circle,
|
|
7205
|
+
ring,
|
|
7206
|
+
poly6,
|
|
7207
|
+
polyStroke6
|
|
7208
|
+
],
|
|
7209
|
+
color: [
|
|
7210
|
+
"dimgray",
|
|
7211
|
+
"gray",
|
|
7212
|
+
"darkgray",
|
|
7213
|
+
darkPurple,
|
|
7214
|
+
darkBlue
|
|
7215
|
+
],
|
|
7216
|
+
distance: [.5, 2.5],
|
|
7217
|
+
size: [20, 180],
|
|
7218
|
+
length: [5, 21]
|
|
7219
|
+
},
|
|
7220
|
+
{
|
|
7221
|
+
texture: [
|
|
7222
|
+
circleBlur,
|
|
7223
|
+
circle,
|
|
7224
|
+
ring,
|
|
7225
|
+
poly6,
|
|
7226
|
+
polyStroke6
|
|
7227
|
+
],
|
|
7228
|
+
color: [
|
|
7229
|
+
"dimgray",
|
|
7230
|
+
"gray",
|
|
7231
|
+
"darkgray",
|
|
7232
|
+
darkPurple,
|
|
7233
|
+
darkBlue
|
|
7234
|
+
],
|
|
7235
|
+
distance: [-.6, -.1],
|
|
7236
|
+
size: [180, 360],
|
|
7237
|
+
length: [0, 5]
|
|
7238
|
+
}
|
|
7371
7239
|
];
|
|
7372
7240
|
const defaultLensflareElementProps = {
|
|
7373
7241
|
color: "white",
|
|
@@ -7375,7 +7243,6 @@ const defaultLensflareElementProps = {
|
|
|
7375
7243
|
size: 512,
|
|
7376
7244
|
texture: circleBlur
|
|
7377
7245
|
};
|
|
7378
|
-
|
|
7379
7246
|
//#endregion
|
|
7380
7247
|
//#region src/core/light-shadow/Lensflare/RandUtils.ts
|
|
7381
7248
|
const clamp = MathUtils.clamp;
|
|
@@ -7488,7 +7355,6 @@ var RandUtils = class {
|
|
|
7488
7355
|
};
|
|
7489
7356
|
}
|
|
7490
7357
|
};
|
|
7491
|
-
|
|
7492
7358
|
//#endregion
|
|
7493
7359
|
//#region src/core/light-shadow/Lensflare/index.ts
|
|
7494
7360
|
const easingFunctions = [
|
|
@@ -7548,10 +7414,9 @@ const partialLensflarePropsArrayToLensflarePropsArray = (elements, userDefaultEl
|
|
|
7548
7414
|
const _seedProps = seedProps === void 0 || seedProps.length === 0 ? defaultSeedProps : seedProps;
|
|
7549
7415
|
return getSeededRandomProps(seed ?? 0, _seedProps).map((props) => Object.assign({}, props, userDefaultElement));
|
|
7550
7416
|
};
|
|
7551
|
-
|
|
7552
7417
|
//#endregion
|
|
7553
|
-
//#region src/core/light-shadow/Lensflare/component.vue
|
|
7554
|
-
var
|
|
7418
|
+
//#region src/core/light-shadow/Lensflare/component.vue
|
|
7419
|
+
var component_default$10 = /* @__PURE__ */ defineComponent({
|
|
7555
7420
|
__name: "component",
|
|
7556
7421
|
props: {
|
|
7557
7422
|
scale: {
|
|
@@ -7639,17 +7504,17 @@ var component_vue_vue_type_script_setup_true_lang_default$12 = /* @__PURE__ */ d
|
|
|
7639
7504
|
}
|
|
7640
7505
|
lensflareElementPropsArrayRef.value.forEach((elementProps, i) => {
|
|
7641
7506
|
const threeElement = threeElements[i];
|
|
7642
|
-
const { texture
|
|
7643
|
-
if (typeof texture
|
|
7644
|
-
if (threeElement.texture.name !== texture
|
|
7507
|
+
const { texture, size, distance, color } = elementProps;
|
|
7508
|
+
if (typeof texture === "string") {
|
|
7509
|
+
if (threeElement.texture.name !== texture) {
|
|
7645
7510
|
threeElement.texture.dispose();
|
|
7646
|
-
const name = texture
|
|
7511
|
+
const name = texture;
|
|
7647
7512
|
threeElement.texture = textureLoader.load(name);
|
|
7648
7513
|
threeElement.texture.name = name;
|
|
7649
7514
|
}
|
|
7650
|
-
} else if (threeElement.texture !== texture
|
|
7515
|
+
} else if (threeElement.texture !== texture) {
|
|
7651
7516
|
threeElement.texture.dispose();
|
|
7652
|
-
threeElement.texture = texture
|
|
7517
|
+
threeElement.texture = texture;
|
|
7653
7518
|
}
|
|
7654
7519
|
threeElement.size = size;
|
|
7655
7520
|
threeElement.distance = distance;
|
|
@@ -7692,17 +7557,14 @@ var component_vue_vue_type_script_setup_true_lang_default$12 = /* @__PURE__ */ d
|
|
|
7692
7557
|
};
|
|
7693
7558
|
}
|
|
7694
7559
|
});
|
|
7695
|
-
|
|
7696
|
-
//#endregion
|
|
7697
|
-
//#region src/core/light-shadow/Lensflare/component.vue
|
|
7698
|
-
var component_default$10 = component_vue_vue_type_script_setup_true_lang_default$12;
|
|
7699
|
-
|
|
7700
7560
|
//#endregion
|
|
7701
7561
|
//#region src/core/light-shadow/SoftShadows.vue?vue&type=script&setup=true&lang.ts
|
|
7702
7562
|
const PCSSGetShadow = `
|
|
7703
7563
|
return PCSS( shadowMap, shadowCoord );
|
|
7704
7564
|
`;
|
|
7705
|
-
|
|
7565
|
+
//#endregion
|
|
7566
|
+
//#region src/core/light-shadow/SoftShadows.vue
|
|
7567
|
+
var SoftShadows_default = /* @__PURE__ */ defineComponent({
|
|
7706
7568
|
__name: "SoftShadows",
|
|
7707
7569
|
props: {
|
|
7708
7570
|
size: {
|
|
@@ -7826,26 +7688,26 @@ float PCSS (sampler2D shadowMap, vec4 coords) {
|
|
|
7826
7688
|
}`;
|
|
7827
7689
|
const originalShadowsFragment = ShaderChunk.shadowmap_pars_fragment;
|
|
7828
7690
|
const { renderer, scene, camera } = useTres();
|
|
7829
|
-
function injectSoftShadowsFragment(renderer
|
|
7691
|
+
function injectSoftShadowsFragment(renderer, props) {
|
|
7830
7692
|
let shader = originalShadowsFragment;
|
|
7831
7693
|
shader = shader.replace("#ifdef USE_SHADOWMAP", `#ifdef USE_SHADOWMAP
|
|
7832
|
-
${getPcss(props
|
|
7694
|
+
${getPcss(props)}`);
|
|
7833
7695
|
shader = shader.replace("#if defined( SHADOWMAP_TYPE_PCF )", `${PCSSGetShadow}
|
|
7834
7696
|
#if defined( SHADOWMAP_TYPE_PCF )`);
|
|
7835
7697
|
ShaderChunk.shadowmap_pars_fragment = shader;
|
|
7836
|
-
renderer
|
|
7698
|
+
renderer.shadowMap.enabled = true;
|
|
7837
7699
|
}
|
|
7838
|
-
function reset(renderer
|
|
7839
|
-
if (renderer
|
|
7840
|
-
scene
|
|
7700
|
+
function reset(renderer, scene, camera) {
|
|
7701
|
+
if (renderer instanceof WebGLRenderer) {
|
|
7702
|
+
scene.traverse((object) => {
|
|
7841
7703
|
if ("material" in object && object.material) {
|
|
7842
|
-
renderer
|
|
7704
|
+
renderer.properties.remove(object.material);
|
|
7843
7705
|
if (typeof object.material === "object" && "dispose" in object.material && typeof object.material.dispose === "function") object.material.dispose?.();
|
|
7844
7706
|
}
|
|
7845
7707
|
});
|
|
7846
|
-
if (renderer
|
|
7708
|
+
if (renderer.info.programs) renderer.info.programs.length = 0;
|
|
7847
7709
|
}
|
|
7848
|
-
renderer
|
|
7710
|
+
renderer.compile(scene, camera);
|
|
7849
7711
|
}
|
|
7850
7712
|
onUnmounted(() => {
|
|
7851
7713
|
if (camera.value) {
|
|
@@ -7864,11 +7726,6 @@ float PCSS (sampler2D shadowMap, vec4 coords) {
|
|
|
7864
7726
|
};
|
|
7865
7727
|
}
|
|
7866
7728
|
});
|
|
7867
|
-
|
|
7868
|
-
//#endregion
|
|
7869
|
-
//#region src/core/light-shadow/SoftShadows.vue
|
|
7870
|
-
var SoftShadows_default = SoftShadows_vue_vue_type_script_setup_true_lang_default;
|
|
7871
|
-
|
|
7872
7729
|
//#endregion
|
|
7873
7730
|
//#region src/core/loaders/useSVG/index.ts
|
|
7874
7731
|
/**
|
|
@@ -7889,10 +7746,11 @@ var SoftShadows_default = SoftShadows_vue_vue_type_script_setup_true_lang_defaul
|
|
|
7889
7746
|
*/
|
|
7890
7747
|
function useSVG(path, options = {}) {
|
|
7891
7748
|
const { skipStrokes = false, skipFills = false, fillMaterial = {}, strokeMaterial = {}, depth = "renderOrder" } = options;
|
|
7892
|
-
const
|
|
7749
|
+
const processedPath = computed(() => {
|
|
7893
7750
|
const pathValue = typeof path === "string" ? path : path.value;
|
|
7894
7751
|
return !pathValue.startsWith("<svg") ? pathValue : encodeURI(`data:image/svg+xml;utf8,${pathValue}`);
|
|
7895
|
-
})
|
|
7752
|
+
});
|
|
7753
|
+
const result = useLoader(SVGLoader, processedPath, {});
|
|
7896
7754
|
/**
|
|
7897
7755
|
* Process SVG paths into renderable layers
|
|
7898
7756
|
*/
|
|
@@ -7912,8 +7770,8 @@ function useSVG(path, options = {}) {
|
|
|
7912
7770
|
}[depth]];
|
|
7913
7771
|
})();
|
|
7914
7772
|
let layerIndex = 0;
|
|
7915
|
-
for (const path
|
|
7916
|
-
const style = path
|
|
7773
|
+
for (const path of paths) {
|
|
7774
|
+
const style = path.userData?.style ?? {};
|
|
7917
7775
|
if (!skipFills && style.fill !== void 0 && style.fill !== "none") {
|
|
7918
7776
|
const fillMat = {
|
|
7919
7777
|
color: style.fill,
|
|
@@ -7923,7 +7781,7 @@ function useSVG(path, options = {}) {
|
|
|
7923
7781
|
depthWrite,
|
|
7924
7782
|
...fillMaterial
|
|
7925
7783
|
};
|
|
7926
|
-
for (const shape of SVGLoader.createShapes(path
|
|
7784
|
+
for (const shape of SVGLoader.createShapes(path)) {
|
|
7927
7785
|
const geometry = new ShapeGeometry(shape);
|
|
7928
7786
|
geometry.scale(1, -1, 1);
|
|
7929
7787
|
if (offsetZ) geometry.translate(0, 0, layerIndex * offsetZ);
|
|
@@ -7944,8 +7802,8 @@ function useSVG(path, options = {}) {
|
|
|
7944
7802
|
depthWrite,
|
|
7945
7803
|
...strokeMaterial
|
|
7946
7804
|
};
|
|
7947
|
-
for (const subPath of path
|
|
7948
|
-
const points = subPath.getPoints().map((v2
|
|
7805
|
+
for (const subPath of path.subPaths) {
|
|
7806
|
+
const points = subPath.getPoints().map((v2) => new Vector2(v2.x, -v2.y));
|
|
7949
7807
|
const geometry = SVGLoader.pointsToStroke(points, style);
|
|
7950
7808
|
if (offsetZ) geometry.translate(0, 0, layerIndex * offsetZ);
|
|
7951
7809
|
_layers.push({
|
|
@@ -7971,12 +7829,13 @@ function useSVG(path, options = {}) {
|
|
|
7971
7829
|
dispose
|
|
7972
7830
|
};
|
|
7973
7831
|
}
|
|
7974
|
-
|
|
7975
7832
|
//#endregion
|
|
7976
7833
|
//#region src/core/loaders/useSVG/component.vue?vue&type=script&setup=true&lang.ts
|
|
7977
7834
|
const _hoisted_1$48 = { key: 0 };
|
|
7978
7835
|
const _hoisted_2$26 = ["geometry", "render-order"];
|
|
7979
|
-
|
|
7836
|
+
//#endregion
|
|
7837
|
+
//#region src/core/loaders/useSVG/component.vue
|
|
7838
|
+
var component_default$17 = /* @__PURE__ */ defineComponent({
|
|
7980
7839
|
__name: "component",
|
|
7981
7840
|
props: {
|
|
7982
7841
|
src: {
|
|
@@ -8041,11 +7900,6 @@ var component_vue_vue_type_script_setup_true_lang_default$11 = /* @__PURE__ */ d
|
|
|
8041
7900
|
};
|
|
8042
7901
|
}
|
|
8043
7902
|
});
|
|
8044
|
-
|
|
8045
|
-
//#endregion
|
|
8046
|
-
//#region src/core/loaders/useSVG/component.vue
|
|
8047
|
-
var component_default$17 = component_vue_vue_type_script_setup_true_lang_default$11;
|
|
8048
|
-
|
|
8049
7903
|
//#endregion
|
|
8050
7904
|
//#region src/core/loaders/useFBX/index.ts
|
|
8051
7905
|
/**
|
|
@@ -8080,11 +7934,12 @@ function useFBX(path, options) {
|
|
|
8080
7934
|
materials
|
|
8081
7935
|
};
|
|
8082
7936
|
}
|
|
8083
|
-
|
|
8084
7937
|
//#endregion
|
|
8085
7938
|
//#region src/core/loaders/useFBX/component.vue?vue&type=script&setup=true&lang.ts
|
|
8086
7939
|
const _hoisted_1$47 = ["object"];
|
|
8087
|
-
|
|
7940
|
+
//#endregion
|
|
7941
|
+
//#region src/core/loaders/useFBX/component.vue
|
|
7942
|
+
var component_default$5 = /* @__PURE__ */ defineComponent({
|
|
8088
7943
|
__name: "component",
|
|
8089
7944
|
props: {
|
|
8090
7945
|
path: {
|
|
@@ -8122,11 +7977,6 @@ var component_vue_vue_type_script_setup_true_lang_default$10 = /* @__PURE__ */ d
|
|
|
8122
7977
|
};
|
|
8123
7978
|
}
|
|
8124
7979
|
});
|
|
8125
|
-
|
|
8126
|
-
//#endregion
|
|
8127
|
-
//#region src/core/loaders/useFBX/component.vue
|
|
8128
|
-
var component_default$5 = component_vue_vue_type_script_setup_true_lang_default$10;
|
|
8129
|
-
|
|
8130
7980
|
//#endregion
|
|
8131
7981
|
//#region src/core/loaders/useGLTF/index.ts
|
|
8132
7982
|
/**
|
|
@@ -8181,11 +8031,12 @@ function useGLTF(path, options) {
|
|
|
8181
8031
|
materials
|
|
8182
8032
|
};
|
|
8183
8033
|
}
|
|
8184
|
-
|
|
8185
8034
|
//#endregion
|
|
8186
8035
|
//#region src/core/loaders/useGLTF/component.vue?vue&type=script&setup=true&lang.ts
|
|
8187
8036
|
const _hoisted_1$46 = ["object"];
|
|
8188
|
-
|
|
8037
|
+
//#endregion
|
|
8038
|
+
//#region src/core/loaders/useGLTF/component.vue
|
|
8039
|
+
var component_default$7 = /* @__PURE__ */ defineComponent({
|
|
8189
8040
|
__name: "component",
|
|
8190
8041
|
props: {
|
|
8191
8042
|
path: {
|
|
@@ -8236,20 +8087,14 @@ var component_vue_vue_type_script_setup_true_lang_default$9 = /* @__PURE__ */ de
|
|
|
8236
8087
|
};
|
|
8237
8088
|
}
|
|
8238
8089
|
});
|
|
8239
|
-
|
|
8240
|
-
//#endregion
|
|
8241
|
-
//#region src/core/loaders/useGLTF/component.vue
|
|
8242
|
-
var component_default$7 = component_vue_vue_type_script_setup_true_lang_default$9;
|
|
8243
|
-
|
|
8244
8090
|
//#endregion
|
|
8245
8091
|
//#region src/core/loaders/useTexture/index.ts
|
|
8246
8092
|
function useTexture(path) {
|
|
8247
8093
|
return useLoader(TextureLoader, path, { initialValue: new Texture() });
|
|
8248
8094
|
}
|
|
8249
|
-
|
|
8250
8095
|
//#endregion
|
|
8251
|
-
//#region src/core/loaders/useTexture/component.vue
|
|
8252
|
-
var
|
|
8096
|
+
//#region src/core/loaders/useTexture/component.vue
|
|
8097
|
+
var component_default$18 = /* @__PURE__ */ defineComponent({
|
|
8253
8098
|
__name: "component",
|
|
8254
8099
|
props: {
|
|
8255
8100
|
path: {
|
|
@@ -8265,27 +8110,22 @@ var component_vue_vue_type_script_setup_true_lang_default$8 = /* @__PURE__ */ de
|
|
|
8265
8110
|
setup(__props, { emit: __emit }) {
|
|
8266
8111
|
const props = __props;
|
|
8267
8112
|
const emit = __emit;
|
|
8268
|
-
const { state: texture
|
|
8113
|
+
const { state: texture, isLoading, error } = useTexture(props.path);
|
|
8269
8114
|
whenever(error, (err) => {
|
|
8270
8115
|
if (err) emit("error", err);
|
|
8271
8116
|
});
|
|
8272
|
-
whenever(texture
|
|
8117
|
+
whenever(texture, (value) => {
|
|
8273
8118
|
if (value) emit("loaded", value);
|
|
8274
8119
|
});
|
|
8275
8120
|
return (_ctx, _cache) => {
|
|
8276
8121
|
return renderSlot(_ctx.$slots, "default", {
|
|
8277
|
-
state: unref(texture
|
|
8122
|
+
state: unref(texture),
|
|
8278
8123
|
isLoading: unref(isLoading),
|
|
8279
8124
|
error: unref(error)
|
|
8280
8125
|
});
|
|
8281
8126
|
};
|
|
8282
8127
|
}
|
|
8283
8128
|
});
|
|
8284
|
-
|
|
8285
|
-
//#endregion
|
|
8286
|
-
//#region src/core/loaders/useTexture/component.vue
|
|
8287
|
-
var component_default$18 = component_vue_vue_type_script_setup_true_lang_default$8;
|
|
8288
|
-
|
|
8289
8129
|
//#endregion
|
|
8290
8130
|
//#region src/core/loaders/useProgress.ts
|
|
8291
8131
|
let saveLastTotalLoaded = 0;
|
|
@@ -8320,7 +8160,6 @@ function useProgress() {
|
|
|
8320
8160
|
});
|
|
8321
8161
|
});
|
|
8322
8162
|
}
|
|
8323
|
-
|
|
8324
8163
|
//#endregion
|
|
8325
8164
|
//#region src/core/loaders/useVideoTexture.ts
|
|
8326
8165
|
/**
|
|
@@ -8371,21 +8210,20 @@ async function useVideoTexture(src, options) {
|
|
|
8371
8210
|
autoplay: true,
|
|
8372
8211
|
...rest
|
|
8373
8212
|
});
|
|
8374
|
-
const texture
|
|
8375
|
-
video.addEventListener(unsuspend, () => resolve(texture
|
|
8213
|
+
const texture = new VideoTexture(video);
|
|
8214
|
+
video.addEventListener(unsuspend, () => resolve(texture));
|
|
8376
8215
|
video.addEventListener("error", () => reject(/* @__PURE__ */ new Error("Error loading video")));
|
|
8377
|
-
return texture
|
|
8216
|
+
return texture;
|
|
8378
8217
|
});
|
|
8379
8218
|
}
|
|
8380
8219
|
try {
|
|
8381
|
-
const texture
|
|
8382
|
-
if (start && texture
|
|
8383
|
-
return texture
|
|
8220
|
+
const texture = await loadTexture();
|
|
8221
|
+
if (start && texture.image) texture.image.play();
|
|
8222
|
+
return texture;
|
|
8384
8223
|
} catch {
|
|
8385
8224
|
logError("Error loading resource");
|
|
8386
8225
|
}
|
|
8387
8226
|
}
|
|
8388
|
-
|
|
8389
8227
|
//#endregion
|
|
8390
8228
|
//#region src/core/loaders/useTextures/index.ts
|
|
8391
8229
|
/**
|
|
@@ -8431,11 +8269,12 @@ function useTextures(paths) {
|
|
|
8431
8269
|
})
|
|
8432
8270
|
};
|
|
8433
8271
|
}
|
|
8434
|
-
|
|
8435
8272
|
//#endregion
|
|
8436
8273
|
//#region src/core/materials/customShaderMaterial/index.vue?vue&type=script&setup=true&lang.ts
|
|
8437
8274
|
const _hoisted_1$45 = ["args"];
|
|
8438
|
-
|
|
8275
|
+
//#endregion
|
|
8276
|
+
//#region src/core/materials/customShaderMaterial/index.vue
|
|
8277
|
+
var customShaderMaterial_default = /* @__PURE__ */ defineComponent({
|
|
8439
8278
|
__name: "index",
|
|
8440
8279
|
props: {
|
|
8441
8280
|
baseMaterial: {
|
|
@@ -8462,8 +8301,8 @@ var index_vue_vue_type_script_setup_true_lang_default$8 = /* @__PURE__ */ define
|
|
|
8462
8301
|
setup(__props, { expose: __expose }) {
|
|
8463
8302
|
const props = __props;
|
|
8464
8303
|
const customShaderMaterialClass = shallowRef(null);
|
|
8465
|
-
const { extend
|
|
8466
|
-
extend
|
|
8304
|
+
const { extend, invalidate } = useTres();
|
|
8305
|
+
extend({ CustomShaderMaterial });
|
|
8467
8306
|
watch(props, () => {
|
|
8468
8307
|
invalidate();
|
|
8469
8308
|
});
|
|
@@ -8477,11 +8316,6 @@ var index_vue_vue_type_script_setup_true_lang_default$8 = /* @__PURE__ */ define
|
|
|
8477
8316
|
};
|
|
8478
8317
|
}
|
|
8479
8318
|
});
|
|
8480
|
-
|
|
8481
|
-
//#endregion
|
|
8482
|
-
//#region src/core/materials/customShaderMaterial/index.vue
|
|
8483
|
-
var customShaderMaterial_default = index_vue_vue_type_script_setup_true_lang_default$8;
|
|
8484
|
-
|
|
8485
8319
|
//#endregion
|
|
8486
8320
|
//#region src/core/materials/holographicMaterial/HolographicMaterialParameters.ts
|
|
8487
8321
|
var HolographicMaterial = class extends ShaderMaterial {
|
|
@@ -8633,15 +8467,65 @@ var HolographicMaterial = class extends ShaderMaterial {
|
|
|
8633
8467
|
|
|
8634
8468
|
}`;
|
|
8635
8469
|
this.uniforms = {
|
|
8470
|
+
/**
|
|
8471
|
+
* The time uniform representing animation time.
|
|
8472
|
+
* @type {Uniform<number>}
|
|
8473
|
+
* @default 0.0
|
|
8474
|
+
*/
|
|
8636
8475
|
time: new Uniform(0),
|
|
8476
|
+
/**
|
|
8477
|
+
* The opacity for the fresnel effect.
|
|
8478
|
+
* @type {Uniform<number>}
|
|
8479
|
+
* @default 1.0
|
|
8480
|
+
*/
|
|
8637
8481
|
fresnelOpacity: new Uniform(parameters.fresnelOpacity !== void 0 ? parameters.fresnelOpacity : 1),
|
|
8482
|
+
/**
|
|
8483
|
+
* The strength of the fresnel effect.
|
|
8484
|
+
* @type {Uniform<number>}
|
|
8485
|
+
* @default 1.0
|
|
8486
|
+
*/
|
|
8638
8487
|
fresnelAmount: new Uniform(parameters.fresnelAmount !== void 0 ? parameters.fresnelAmount : .45),
|
|
8488
|
+
/**
|
|
8489
|
+
* The size of the scanline effect.
|
|
8490
|
+
* @type {Uniform<number>}
|
|
8491
|
+
* @default 1.0
|
|
8492
|
+
*/
|
|
8639
8493
|
scanlineSize: new Uniform(parameters.scanlineSize !== void 0 ? parameters.scanlineSize : 8),
|
|
8494
|
+
/**
|
|
8495
|
+
* The brightness of the hologram.
|
|
8496
|
+
* @type {Uniform<number>}
|
|
8497
|
+
* @default 1.0
|
|
8498
|
+
*/
|
|
8640
8499
|
hologramBrightness: new Uniform(parameters.hologramBrightness !== void 0 ? parameters.hologramBrightness : 1),
|
|
8500
|
+
/**
|
|
8501
|
+
* The speed of the signal effect.
|
|
8502
|
+
* @type {Uniform<number>}
|
|
8503
|
+
* @default 1.0
|
|
8504
|
+
*/
|
|
8641
8505
|
signalSpeed: new Uniform(parameters.signalSpeed !== void 0 ? parameters.signalSpeed : 1),
|
|
8506
|
+
/**
|
|
8507
|
+
* The color of the hologram.
|
|
8508
|
+
* @type {Uniform<Color>}
|
|
8509
|
+
* @default new Color(0xFFFFFF)
|
|
8510
|
+
*/
|
|
8642
8511
|
hologramColor: new Uniform(parameters.hologramColor !== void 0 ? new Color(parameters.hologramColor) : new Color("#00d5ff")),
|
|
8512
|
+
/**
|
|
8513
|
+
* Enable/disable blinking effect.
|
|
8514
|
+
* @type {Uniform<boolean>}
|
|
8515
|
+
* @default true
|
|
8516
|
+
*/
|
|
8643
8517
|
enableBlinking: new Uniform(parameters.enableBlinking !== void 0 ? parameters.enableBlinking : true),
|
|
8518
|
+
/**
|
|
8519
|
+
* Enable blinking only on the fresnel effect.
|
|
8520
|
+
* @type {Uniform<boolean>}
|
|
8521
|
+
* @default false
|
|
8522
|
+
*/
|
|
8644
8523
|
blinkFresnelOnly: new Uniform(parameters.blinkFresnelOnly !== void 0 ? parameters.blinkFresnelOnly : true),
|
|
8524
|
+
/**
|
|
8525
|
+
* The opacity of the hologram.
|
|
8526
|
+
* @type {Uniform<number>}
|
|
8527
|
+
* @default 1.0
|
|
8528
|
+
*/
|
|
8645
8529
|
hologramOpacity: new Uniform(parameters.hologramOpacity !== void 0 ? parameters.hologramOpacity : 1)
|
|
8646
8530
|
};
|
|
8647
8531
|
this.clock = createTimer();
|
|
@@ -8657,8 +8541,6 @@ var HolographicMaterial = class extends ShaderMaterial {
|
|
|
8657
8541
|
this.uniforms.time.value = this.clock.getElapsed();
|
|
8658
8542
|
}
|
|
8659
8543
|
};
|
|
8660
|
-
var HolographicMaterialParameters_default = HolographicMaterial;
|
|
8661
|
-
|
|
8662
8544
|
//#endregion
|
|
8663
8545
|
//#region src/core/materials/holographicMaterial/index.vue?vue&type=script&setup=true&lang.ts
|
|
8664
8546
|
const _hoisted_1$44 = [
|
|
@@ -8674,7 +8556,9 @@ const _hoisted_1$44 = [
|
|
|
8674
8556
|
"enableAdditive",
|
|
8675
8557
|
"side"
|
|
8676
8558
|
];
|
|
8677
|
-
|
|
8559
|
+
//#endregion
|
|
8560
|
+
//#region src/core/materials/holographicMaterial/index.vue
|
|
8561
|
+
var holographicMaterial_default = /* @__PURE__ */ defineComponent({
|
|
8678
8562
|
__name: "index",
|
|
8679
8563
|
props: {
|
|
8680
8564
|
fresnelAmount: {
|
|
@@ -8736,11 +8620,11 @@ var index_vue_vue_type_script_setup_true_lang_default$7 = /* @__PURE__ */ define
|
|
|
8736
8620
|
setup(__props, { expose: __expose }) {
|
|
8737
8621
|
const props = __props;
|
|
8738
8622
|
const MeshHolographicMaterialClass = shallowRef();
|
|
8739
|
-
const { extend
|
|
8740
|
-
extend
|
|
8623
|
+
const { extend } = useTresContext();
|
|
8624
|
+
extend({ HolographicMaterial });
|
|
8741
8625
|
__expose({
|
|
8742
8626
|
root: MeshHolographicMaterialClass,
|
|
8743
|
-
constructor:
|
|
8627
|
+
constructor: HolographicMaterial
|
|
8744
8628
|
});
|
|
8745
8629
|
const colorValue = computed(() => new Color(props.hologramColor));
|
|
8746
8630
|
const { onBeforeRender } = useLoop();
|
|
@@ -8766,19 +8650,14 @@ var index_vue_vue_type_script_setup_true_lang_default$7 = /* @__PURE__ */ define
|
|
|
8766
8650
|
};
|
|
8767
8651
|
}
|
|
8768
8652
|
});
|
|
8769
|
-
|
|
8770
8653
|
//#endregion
|
|
8771
|
-
//#region src/core/materials/
|
|
8772
|
-
var
|
|
8773
|
-
|
|
8774
|
-
//#endregion
|
|
8775
|
-
//#region src/core/materials/meshDiscardMaterial/index.vue?vue&type=script&setup=true&lang.ts
|
|
8776
|
-
var index_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ defineComponent({
|
|
8654
|
+
//#region src/core/materials/meshDiscardMaterial/index.vue
|
|
8655
|
+
var meshDiscardMaterial_default = /* @__PURE__ */ defineComponent({
|
|
8777
8656
|
__name: "index",
|
|
8778
8657
|
setup(__props, { expose: __expose }) {
|
|
8779
8658
|
const meshDiscardMaterialRef = shallowRef();
|
|
8780
|
-
const { extend
|
|
8781
|
-
extend
|
|
8659
|
+
const { extend } = useTresContext();
|
|
8660
|
+
extend({ MeshDiscardMaterial });
|
|
8782
8661
|
__expose({ instance: meshDiscardMaterialRef });
|
|
8783
8662
|
return (_ctx, _cache) => {
|
|
8784
8663
|
return openBlock(), createElementBlock("TresMeshDiscardMaterial", {
|
|
@@ -8788,11 +8667,6 @@ var index_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ define
|
|
|
8788
8667
|
};
|
|
8789
8668
|
}
|
|
8790
8669
|
});
|
|
8791
|
-
|
|
8792
|
-
//#endregion
|
|
8793
|
-
//#region src/core/materials/meshDiscardMaterial/index.vue
|
|
8794
|
-
var meshDiscardMaterial_default = index_vue_vue_type_script_setup_true_lang_default$6;
|
|
8795
|
-
|
|
8796
8670
|
//#endregion
|
|
8797
8671
|
//#region src/core/materials/meshGlassMaterial/material.ts
|
|
8798
8672
|
var MeshGlassMaterial = class extends MeshStandardMaterial {
|
|
@@ -8889,16 +8763,14 @@ var MeshGlassMaterial = class extends MeshStandardMaterial {
|
|
|
8889
8763
|
return this;
|
|
8890
8764
|
}
|
|
8891
8765
|
};
|
|
8892
|
-
var material_default = MeshGlassMaterial;
|
|
8893
|
-
|
|
8894
8766
|
//#endregion
|
|
8895
|
-
//#region src/core/materials/meshGlassMaterial/index.vue
|
|
8896
|
-
var
|
|
8767
|
+
//#region src/core/materials/meshGlassMaterial/index.vue
|
|
8768
|
+
var meshGlassMaterial_default = /* @__PURE__ */ defineComponent({
|
|
8897
8769
|
__name: "index",
|
|
8898
8770
|
setup(__props, { expose: __expose }) {
|
|
8899
8771
|
const MeshGlassMaterialClass = shallowRef();
|
|
8900
|
-
const { extend
|
|
8901
|
-
extend
|
|
8772
|
+
const { extend } = useTresContext();
|
|
8773
|
+
extend({ MeshGlassMaterial });
|
|
8902
8774
|
__expose({ instance: MeshGlassMaterialClass });
|
|
8903
8775
|
return (_ctx, _cache) => {
|
|
8904
8776
|
return openBlock(), createElementBlock("TresMeshGlassMaterial", {
|
|
@@ -8908,11 +8780,6 @@ var index_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ define
|
|
|
8908
8780
|
};
|
|
8909
8781
|
}
|
|
8910
8782
|
});
|
|
8911
|
-
|
|
8912
|
-
//#endregion
|
|
8913
|
-
//#region src/core/materials/meshGlassMaterial/index.vue
|
|
8914
|
-
var meshGlassMaterial_default = index_vue_vue_type_script_setup_true_lang_default$5;
|
|
8915
|
-
|
|
8916
8783
|
//#endregion
|
|
8917
8784
|
//#region src/core/materials/meshPortalMaterial/PortalMaterialImpl.ts
|
|
8918
8785
|
/**
|
|
@@ -8955,10 +8822,9 @@ var PortalMaterialImpl = class extends ShaderMaterial {
|
|
|
8955
8822
|
this.uniforms.map.value = v;
|
|
8956
8823
|
}
|
|
8957
8824
|
};
|
|
8958
|
-
|
|
8959
8825
|
//#endregion
|
|
8960
|
-
//#region src/core/materials/meshPortalMaterial/index.vue
|
|
8961
|
-
var
|
|
8826
|
+
//#region src/core/materials/meshPortalMaterial/index.vue
|
|
8827
|
+
var meshPortalMaterial_default = /* @__PURE__ */ defineComponent({
|
|
8962
8828
|
__name: "index",
|
|
8963
8829
|
props: {
|
|
8964
8830
|
blend: {
|
|
@@ -8984,13 +8850,14 @@ var index_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ define
|
|
|
8984
8850
|
},
|
|
8985
8851
|
setup(__props, { expose: __expose }) {
|
|
8986
8852
|
const props = __props;
|
|
8987
|
-
const { extend
|
|
8988
|
-
extend
|
|
8853
|
+
const { extend, invalidate } = useTres();
|
|
8854
|
+
extend({ PortalMaterialImpl });
|
|
8989
8855
|
const materialRef = shallowRef();
|
|
8990
8856
|
const portalScene = new Scene();
|
|
8991
8857
|
portalScene.matrixAutoUpdate = false;
|
|
8858
|
+
const ctx = useTresContext();
|
|
8992
8859
|
provide(INJECTION_KEY, {
|
|
8993
|
-
...
|
|
8860
|
+
...ctx,
|
|
8994
8861
|
scene: shallowRef(portalScene)
|
|
8995
8862
|
});
|
|
8996
8863
|
const rtOptions = {
|
|
@@ -9107,16 +8974,10 @@ var index_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ define
|
|
|
9107
8974
|
};
|
|
9108
8975
|
}
|
|
9109
8976
|
});
|
|
9110
|
-
|
|
9111
|
-
//#endregion
|
|
9112
|
-
//#region src/core/materials/meshPortalMaterial/index.vue
|
|
9113
|
-
var meshPortalMaterial_default = index_vue_vue_type_script_setup_true_lang_default$4;
|
|
9114
|
-
|
|
9115
8977
|
//#endregion
|
|
9116
8978
|
//#region src/utils/constants.ts
|
|
9117
8979
|
const getVersion = () => Number.parseInt(REVISION.replace(/\D+/g, ""));
|
|
9118
8980
|
const version = /* @__PURE__ */ getVersion();
|
|
9119
|
-
|
|
9120
8981
|
//#endregion
|
|
9121
8982
|
//#region src/core/materials/meshReflectionMaterial/ConvolutionMaterial.ts
|
|
9122
8983
|
var ConvolutionMaterial = class extends ShaderMaterial {
|
|
@@ -9221,7 +9082,6 @@ var ConvolutionMaterial = class extends ShaderMaterial {
|
|
|
9221
9082
|
this.uniforms.resolution.value.copy(resolution);
|
|
9222
9083
|
}
|
|
9223
9084
|
};
|
|
9224
|
-
|
|
9225
9085
|
//#endregion
|
|
9226
9086
|
//#region src/core/materials/meshReflectionMaterial/BlurPass.ts
|
|
9227
9087
|
var BlurPass = class {
|
|
@@ -9310,7 +9170,6 @@ var BlurPass = class {
|
|
|
9310
9170
|
this.convolutionMaterial.dispose();
|
|
9311
9171
|
}
|
|
9312
9172
|
};
|
|
9313
|
-
|
|
9314
9173
|
//#endregion
|
|
9315
9174
|
//#region src/core/materials/meshReflectionMaterial/material.ts
|
|
9316
9175
|
var MeshReflectionMaterial = class extends MeshStandardMaterial {
|
|
@@ -9526,7 +9385,6 @@ var MeshReflectionMaterial = class extends MeshStandardMaterial {
|
|
|
9526
9385
|
this._distortion.value = v;
|
|
9527
9386
|
}
|
|
9528
9387
|
};
|
|
9529
|
-
|
|
9530
9388
|
//#endregion
|
|
9531
9389
|
//#region src/core/materials/meshReflectionMaterial/index.vue?vue&type=script&setup=true&lang.ts
|
|
9532
9390
|
const _hoisted_1$43 = [
|
|
@@ -9538,7 +9396,9 @@ const _hoisted_1$43 = [
|
|
|
9538
9396
|
"defines-USE_DEPTH",
|
|
9539
9397
|
"defines-USE_DISTORTION"
|
|
9540
9398
|
];
|
|
9541
|
-
|
|
9399
|
+
//#endregion
|
|
9400
|
+
//#region src/core/materials/meshReflectionMaterial/index.vue
|
|
9401
|
+
var meshReflectionMaterial_default = /* @__PURE__ */ defineComponent({
|
|
9542
9402
|
__name: "index",
|
|
9543
9403
|
props: {
|
|
9544
9404
|
resolution: {
|
|
@@ -9773,14 +9633,18 @@ var index_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ define
|
|
|
9773
9633
|
},
|
|
9774
9634
|
setup(__props, { expose: __expose }) {
|
|
9775
9635
|
const props = __props;
|
|
9776
|
-
const { extend
|
|
9777
|
-
extend
|
|
9636
|
+
const { extend, invalidate } = useTres();
|
|
9637
|
+
extend({ MeshReflectionMaterial });
|
|
9778
9638
|
const blurWidth = computed(() => 500 - (Array.isArray(props.blurSize) ? props.blurSize[0] : props.blurSize));
|
|
9779
9639
|
const blurHeight = computed(() => 500 - (Array.isArray(props.blurSize) ? props.blurSize[1] : props.blurSize));
|
|
9780
9640
|
const hasBlur = computed(() => blurWidth.value > 0 || blurHeight.value > 0);
|
|
9781
9641
|
const hasDepth = computed(() => props.sharpDepthScale > 0 || props.blurDepthScale > 0);
|
|
9782
9642
|
const hasDistortion = computed(() => !!props.distortionMap);
|
|
9783
9643
|
const hasRoughness = computed(() => !!props.roughnessMap);
|
|
9644
|
+
const tresProps = computed(() => {
|
|
9645
|
+
const { resolution: _r, blurSize: _bs, blurDepthEdgeMin: _bdemin, blurDepthEdgeMax: _bdemax, blurDepthScale: _bds, blurDepthBias: _bdb, reflectorOffset: _ro, ...rest } = props;
|
|
9646
|
+
return rest;
|
|
9647
|
+
});
|
|
9784
9648
|
const materialRef = shallowRef();
|
|
9785
9649
|
let blurpass;
|
|
9786
9650
|
const state = {
|
|
@@ -9927,7 +9791,7 @@ var index_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ define
|
|
|
9927
9791
|
key: `key${hasBlur.value ? "0" : "1"}${hasDepth.value ? "0" : "1"}${hasDistortion.value ? "0" : "1"}${hasRoughness.value ? "0" : "1"}`,
|
|
9928
9792
|
ref_key: "materialRef",
|
|
9929
9793
|
ref: materialRef
|
|
9930
|
-
},
|
|
9794
|
+
}, tresProps.value, {
|
|
9931
9795
|
"texture-matrix": state.textureMatrix,
|
|
9932
9796
|
"t-sharp": unref(fboSharp)?.texture,
|
|
9933
9797
|
"t-depth": unref(fboSharp)?.depthTexture,
|
|
@@ -9939,11 +9803,6 @@ var index_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ define
|
|
|
9939
9803
|
};
|
|
9940
9804
|
}
|
|
9941
9805
|
});
|
|
9942
|
-
|
|
9943
|
-
//#endregion
|
|
9944
|
-
//#region src/core/materials/meshReflectionMaterial/index.vue
|
|
9945
|
-
var meshReflectionMaterial_default = index_vue_vue_type_script_setup_true_lang_default$3;
|
|
9946
|
-
|
|
9947
9806
|
//#endregion
|
|
9948
9807
|
//#region src/core/materials/meshTransmissionMaterial/material.ts
|
|
9949
9808
|
var MeshTransmissionMaterial = class extends MeshPhysicalMaterial {
|
|
@@ -10188,11 +10047,12 @@ var MeshTransmissionMaterial = class extends MeshPhysicalMaterial {
|
|
|
10188
10047
|
});
|
|
10189
10048
|
}
|
|
10190
10049
|
};
|
|
10191
|
-
|
|
10192
10050
|
//#endregion
|
|
10193
10051
|
//#region src/core/materials/meshTransmissionMaterial/index.vue?vue&type=script&setup=true&lang.ts
|
|
10194
10052
|
const _hoisted_1$42 = ["args"];
|
|
10195
|
-
|
|
10053
|
+
//#endregion
|
|
10054
|
+
//#region src/core/materials/meshTransmissionMaterial/index.vue
|
|
10055
|
+
var meshTransmissionMaterial_default = /* @__PURE__ */ defineComponent({
|
|
10196
10056
|
__name: "index",
|
|
10197
10057
|
props: {
|
|
10198
10058
|
samples: {
|
|
@@ -10300,8 +10160,8 @@ var index_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ define
|
|
|
10300
10160
|
},
|
|
10301
10161
|
setup(__props, { expose: __expose }) {
|
|
10302
10162
|
const props = __props;
|
|
10303
|
-
const { extend
|
|
10304
|
-
extend
|
|
10163
|
+
const { extend, invalidate } = useTres();
|
|
10164
|
+
extend({ MeshTransmissionMaterial });
|
|
10305
10165
|
const materialRef = shallowRef();
|
|
10306
10166
|
watch(() => [props.samples, props.transmissionSampler], () => {
|
|
10307
10167
|
logWarning("MeshTransmissionMaterial: samples and transmissionSampler are baked into the shader at compile time. Changes require remounting the component.");
|
|
@@ -10398,11 +10258,6 @@ var index_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ define
|
|
|
10398
10258
|
};
|
|
10399
10259
|
}
|
|
10400
10260
|
});
|
|
10401
|
-
|
|
10402
|
-
//#endregion
|
|
10403
|
-
//#region src/core/materials/meshTransmissionMaterial/index.vue
|
|
10404
|
-
var meshTransmissionMaterial_default = index_vue_vue_type_script_setup_true_lang_default$2;
|
|
10405
|
-
|
|
10406
10261
|
//#endregion
|
|
10407
10262
|
//#region src/core/materials/meshWobbleMaterial/material.ts
|
|
10408
10263
|
var WobbleMaterialImpl = class extends MeshStandardMaterial {
|
|
@@ -10443,11 +10298,12 @@ var WobbleMaterialImpl = class extends MeshStandardMaterial {
|
|
|
10443
10298
|
this._factor.value = v;
|
|
10444
10299
|
}
|
|
10445
10300
|
};
|
|
10446
|
-
|
|
10447
10301
|
//#endregion
|
|
10448
10302
|
//#region src/core/materials/meshWobbleMaterial/index.vue?vue&type=script&setup=true&lang.ts
|
|
10449
10303
|
const _hoisted_1$41 = ["factor"];
|
|
10450
|
-
|
|
10304
|
+
//#endregion
|
|
10305
|
+
//#region src/core/materials/meshWobbleMaterial/index.vue
|
|
10306
|
+
var meshWobbleMaterial_default = /* @__PURE__ */ defineComponent({
|
|
10451
10307
|
__name: "index",
|
|
10452
10308
|
props: {
|
|
10453
10309
|
speed: {
|
|
@@ -10464,8 +10320,8 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
|
|
|
10464
10320
|
setup(__props, { expose: __expose }) {
|
|
10465
10321
|
const props = __props;
|
|
10466
10322
|
const materialRef = shallowRef();
|
|
10467
|
-
const { extend
|
|
10468
|
-
extend
|
|
10323
|
+
const { extend, invalidate } = useTres();
|
|
10324
|
+
extend({ MeshWobbleMaterial: WobbleMaterialImpl });
|
|
10469
10325
|
watch(props, () => {
|
|
10470
10326
|
invalidate();
|
|
10471
10327
|
});
|
|
@@ -10486,11 +10342,6 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
|
|
|
10486
10342
|
};
|
|
10487
10343
|
}
|
|
10488
10344
|
});
|
|
10489
|
-
|
|
10490
|
-
//#endregion
|
|
10491
|
-
//#region src/core/materials/meshWobbleMaterial/index.vue
|
|
10492
|
-
var meshWobbleMaterial_default = index_vue_vue_type_script_setup_true_lang_default$1;
|
|
10493
|
-
|
|
10494
10345
|
//#endregion
|
|
10495
10346
|
//#region src/core/materials/pointMaterial/material.ts
|
|
10496
10347
|
const opaque_fragment = "opaque_fragment";
|
|
@@ -10512,11 +10363,12 @@ var PointMaterial = class extends PointsMaterial {
|
|
|
10512
10363
|
};
|
|
10513
10364
|
}
|
|
10514
10365
|
};
|
|
10515
|
-
|
|
10516
10366
|
//#endregion
|
|
10517
10367
|
//#region src/core/materials/pointMaterial/component.vue?vue&type=script&setup=true&lang.ts
|
|
10518
10368
|
const _hoisted_1$40 = ["object"];
|
|
10519
|
-
|
|
10369
|
+
//#endregion
|
|
10370
|
+
//#region src/core/materials/pointMaterial/component.vue
|
|
10371
|
+
var component_default$13 = /* @__PURE__ */ defineComponent({
|
|
10520
10372
|
__name: "component",
|
|
10521
10373
|
props: { sizeAttenuation: {
|
|
10522
10374
|
type: Boolean,
|
|
@@ -10539,18 +10391,8 @@ var component_vue_vue_type_script_setup_true_lang_default$7 = /* @__PURE__ */ de
|
|
|
10539
10391
|
};
|
|
10540
10392
|
}
|
|
10541
10393
|
});
|
|
10542
|
-
|
|
10543
|
-
//#endregion
|
|
10544
|
-
//#region src/core/materials/pointMaterial/component.vue
|
|
10545
|
-
var component_default$13 = component_vue_vue_type_script_setup_true_lang_default$7;
|
|
10546
|
-
|
|
10547
10394
|
//#endregion
|
|
10548
10395
|
//#region src/core/miscellaneous/Bounds/Bounds.ts
|
|
10549
|
-
var AnimationState = /* @__PURE__ */ function(AnimationState$1) {
|
|
10550
|
-
AnimationState$1[AnimationState$1["NONE"] = 0] = "NONE";
|
|
10551
|
-
AnimationState$1[AnimationState$1["ACTIVE"] = 2] = "ACTIVE";
|
|
10552
|
-
return AnimationState$1;
|
|
10553
|
-
}(AnimationState || {});
|
|
10554
10396
|
const isOrthographicCamera = (def) => def && def.isOrthographicCamera;
|
|
10555
10397
|
const isPerspectiveCamera = (def) => def && def.isPerspectiveCamera;
|
|
10556
10398
|
const isBox3 = (def) => def && def.isBox3;
|
|
@@ -10576,7 +10418,7 @@ var Bounds = class extends Object3D {
|
|
|
10576
10418
|
box: void 0,
|
|
10577
10419
|
object: void 0
|
|
10578
10420
|
};
|
|
10579
|
-
_animationState =
|
|
10421
|
+
_animationState = 0;
|
|
10580
10422
|
_t = 0;
|
|
10581
10423
|
_controls = null;
|
|
10582
10424
|
_controlsRemoveEventListener = () => {};
|
|
@@ -10601,16 +10443,16 @@ var Bounds = class extends Object3D {
|
|
|
10601
10443
|
if (controls) {
|
|
10602
10444
|
this._controls = controls;
|
|
10603
10445
|
const callback = () => {
|
|
10604
|
-
if (controls && this._goal.lookAt && this._animationState !==
|
|
10605
|
-
const front
|
|
10446
|
+
if (controls && this._goal.lookAt && this._animationState !== 0) {
|
|
10447
|
+
const front = new Vector3().setFromMatrixColumn(this.camera.matrix, 2);
|
|
10606
10448
|
const d0 = this._start.position.distanceTo(controls.target);
|
|
10607
10449
|
const d1 = (this._goal.position || this._start.position).distanceTo(this._goal.lookAt);
|
|
10608
10450
|
const d = (1 - this._t) * d0 + this._t * d1;
|
|
10609
|
-
controls.target.copy(this.camera.position).addScaledVector(front
|
|
10451
|
+
controls.target.copy(this.camera.position).addScaledVector(front, -d);
|
|
10610
10452
|
controls.update();
|
|
10611
10453
|
this._stop();
|
|
10612
10454
|
}
|
|
10613
|
-
this._animationState =
|
|
10455
|
+
this._animationState = 0;
|
|
10614
10456
|
};
|
|
10615
10457
|
controls.addEventListener("start", callback);
|
|
10616
10458
|
this._controlsRemoveEventListener = () => controls.removeEventListener("start", callback);
|
|
@@ -10623,30 +10465,33 @@ var Bounds = class extends Object3D {
|
|
|
10623
10465
|
lookAt(arg0, arg1, arg2) {
|
|
10624
10466
|
const size = arguments.length;
|
|
10625
10467
|
let args = this._cachedFitArgs;
|
|
10626
|
-
const v1
|
|
10627
|
-
const v2
|
|
10468
|
+
const v1 = arg1 ? new Vector3().fromArray(normalizeVectorFlexibleParam(arg1)) : new Vector3();
|
|
10469
|
+
const v2 = arg2 ? new Vector3().fromArray(normalizeVectorFlexibleParam(arg2)) : new Vector3();
|
|
10628
10470
|
if (size === 0) args = this._cachedFitArgs;
|
|
10629
10471
|
else if (!arg0 && arg0 !== 0) {
|
|
10630
10472
|
if (size === 1) args = [null];
|
|
10631
|
-
else if (size === 2) args = [null, v1
|
|
10473
|
+
else if (size === 2) args = [null, v1];
|
|
10632
10474
|
else if (size === 3) args = [
|
|
10633
10475
|
null,
|
|
10634
|
-
v1
|
|
10635
|
-
v2
|
|
10476
|
+
v1,
|
|
10477
|
+
v2
|
|
10636
10478
|
];
|
|
10637
10479
|
} else if (typeof arg0 === "number" || arg0.isVector3 || Array.isArray(arg0)) {
|
|
10638
10480
|
const v0 = new Vector3().fromArray(normalizeVectorFlexibleParam(arg0));
|
|
10639
10481
|
if (size === 1) args = [v0];
|
|
10640
|
-
else if (size === 2) args = [v0, v1
|
|
10482
|
+
else if (size === 2) args = [v0, v1];
|
|
10641
10483
|
else if (size === 3) args = [
|
|
10642
10484
|
v0,
|
|
10643
|
-
v1
|
|
10644
|
-
v2
|
|
10485
|
+
v1,
|
|
10486
|
+
v2
|
|
10645
10487
|
];
|
|
10646
|
-
} else if (arg0.isBox3)
|
|
10647
|
-
|
|
10648
|
-
|
|
10649
|
-
else
|
|
10488
|
+
} else if (arg0.isBox3) {
|
|
10489
|
+
if (size === 1) args = [arg0];
|
|
10490
|
+
else args = [arg0, arg1];
|
|
10491
|
+
} else if (arg0.isObject3D) {
|
|
10492
|
+
if (size === 1) args = [arg0];
|
|
10493
|
+
else args = [arg0, arg1];
|
|
10494
|
+
}
|
|
10650
10495
|
this._cachedFitArgs = args;
|
|
10651
10496
|
this._stop();
|
|
10652
10497
|
_resetGoal(this._goal);
|
|
@@ -10718,12 +10563,12 @@ var Bounds = class extends Object3D {
|
|
|
10718
10563
|
}
|
|
10719
10564
|
}
|
|
10720
10565
|
this._t = 0;
|
|
10721
|
-
this._animationState =
|
|
10566
|
+
this._animationState = 2;
|
|
10722
10567
|
this.onStart && this.onStart(this._goal);
|
|
10723
10568
|
}
|
|
10724
10569
|
animate(delta) {
|
|
10725
|
-
if (this._animationState ===
|
|
10726
|
-
if (this._animationState ===
|
|
10570
|
+
if (this._animationState === 0) return false;
|
|
10571
|
+
if (this._animationState === 2) {
|
|
10727
10572
|
this._t += delta / this.duration;
|
|
10728
10573
|
this._t = MathUtils.clamp(this._t, 0, 1);
|
|
10729
10574
|
if (this._t >= 1) {
|
|
@@ -10737,7 +10582,7 @@ var Bounds = class extends Object3D {
|
|
|
10737
10582
|
this._controls.target.copy(this._goal.lookAt);
|
|
10738
10583
|
this._controls.update();
|
|
10739
10584
|
}
|
|
10740
|
-
this._animationState =
|
|
10585
|
+
this._animationState = 0;
|
|
10741
10586
|
this.onEnd && this.onEnd(this._goal);
|
|
10742
10587
|
_resetGoal(this._goal);
|
|
10743
10588
|
} else {
|
|
@@ -10785,7 +10630,6 @@ function _resetGoal(goal) {
|
|
|
10785
10630
|
goal.box = void 0;
|
|
10786
10631
|
goal.object = void 0;
|
|
10787
10632
|
}
|
|
10788
|
-
|
|
10789
10633
|
//#endregion
|
|
10790
10634
|
//#region src/core/miscellaneous/Bounds/component.vue?vue&type=script&setup=true&lang.ts
|
|
10791
10635
|
const _hoisted_1$39 = [
|
|
@@ -10793,7 +10637,9 @@ const _hoisted_1$39 = [
|
|
|
10793
10637
|
"duration",
|
|
10794
10638
|
"offset"
|
|
10795
10639
|
];
|
|
10796
|
-
|
|
10640
|
+
//#endregion
|
|
10641
|
+
//#region src/core/miscellaneous/Bounds/component.vue
|
|
10642
|
+
var component_default$2 = /* @__PURE__ */ defineComponent({
|
|
10797
10643
|
__name: "component",
|
|
10798
10644
|
props: {
|
|
10799
10645
|
duration: {
|
|
@@ -10854,7 +10700,8 @@ var component_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ de
|
|
|
10854
10700
|
watchEffect(() => {
|
|
10855
10701
|
if (controls.value) bounds.controls = controls.value;
|
|
10856
10702
|
});
|
|
10857
|
-
|
|
10703
|
+
const shallowCam = computed(() => camera.value?.uuid);
|
|
10704
|
+
watch(shallowCam, () => {
|
|
10858
10705
|
if (camera.value) bounds.camera = camera.value;
|
|
10859
10706
|
}, {
|
|
10860
10707
|
immediate: true,
|
|
@@ -10881,11 +10728,6 @@ var component_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ de
|
|
|
10881
10728
|
};
|
|
10882
10729
|
}
|
|
10883
10730
|
});
|
|
10884
|
-
|
|
10885
|
-
//#endregion
|
|
10886
|
-
//#region src/core/miscellaneous/Bounds/component.vue
|
|
10887
|
-
var component_default$2 = component_vue_vue_type_script_setup_true_lang_default$6;
|
|
10888
|
-
|
|
10889
10731
|
//#endregion
|
|
10890
10732
|
//#region src/core/miscellaneous/GlobalAudio.ts
|
|
10891
10733
|
const GlobalAudio = defineComponent({
|
|
@@ -10915,7 +10757,8 @@ const GlobalAudio = defineComponent({
|
|
|
10915
10757
|
const buffer = await audioLoader.loadAsync(props.src);
|
|
10916
10758
|
sound.setBuffer(buffer);
|
|
10917
10759
|
}, { immediate: true });
|
|
10918
|
-
|
|
10760
|
+
const btnPlay = document.getElementById(props.playTrigger ?? "") || renderer.instance.domElement;
|
|
10761
|
+
useEventListener(btnPlay, "click", () => {
|
|
10919
10762
|
if (sound.isPlaying) sound.pause();
|
|
10920
10763
|
else sound.play();
|
|
10921
10764
|
emit("isPlaying", sound.isPlaying);
|
|
@@ -10928,10 +10771,9 @@ const GlobalAudio = defineComponent({
|
|
|
10928
10771
|
return null;
|
|
10929
10772
|
}
|
|
10930
10773
|
});
|
|
10931
|
-
|
|
10932
10774
|
//#endregion
|
|
10933
|
-
//#region src/core/miscellaneous/MouseParallax.vue
|
|
10934
|
-
var
|
|
10775
|
+
//#region src/core/miscellaneous/MouseParallax.vue
|
|
10776
|
+
var MouseParallax_default = /* @__PURE__ */ defineComponent({
|
|
10935
10777
|
__name: "MouseParallax",
|
|
10936
10778
|
props: {
|
|
10937
10779
|
disabled: {
|
|
@@ -10990,15 +10832,12 @@ var MouseParallax_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
10990
10832
|
};
|
|
10991
10833
|
}
|
|
10992
10834
|
});
|
|
10993
|
-
|
|
10994
|
-
//#endregion
|
|
10995
|
-
//#region src/core/miscellaneous/MouseParallax.vue
|
|
10996
|
-
var MouseParallax_default = MouseParallax_vue_vue_type_script_setup_true_lang_default;
|
|
10997
|
-
|
|
10998
10835
|
//#endregion
|
|
10999
10836
|
//#region src/core/miscellaneous/PositionalAudio.vue?vue&type=script&setup=true&lang.ts
|
|
11000
10837
|
const _hoisted_1$38 = ["args"];
|
|
11001
|
-
|
|
10838
|
+
//#endregion
|
|
10839
|
+
//#region src/core/miscellaneous/PositionalAudio.vue
|
|
10840
|
+
var PositionalAudio_default = /* @__PURE__ */ defineComponent({
|
|
11002
10841
|
__name: "PositionalAudio",
|
|
11003
10842
|
props: {
|
|
11004
10843
|
ready: {
|
|
@@ -11156,11 +10995,6 @@ var PositionalAudio_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
11156
10995
|
};
|
|
11157
10996
|
}
|
|
11158
10997
|
});
|
|
11159
|
-
|
|
11160
|
-
//#endregion
|
|
11161
|
-
//#region src/core/miscellaneous/PositionalAudio.vue
|
|
11162
|
-
var PositionalAudio_default = PositionalAudio_vue_vue_type_script_setup_true_lang_default;
|
|
11163
|
-
|
|
11164
10998
|
//#endregion
|
|
11165
10999
|
//#region src/core/miscellaneous/useAnimations.ts
|
|
11166
11000
|
/**
|
|
@@ -11219,7 +11053,6 @@ function useAnimations(animations, modelRef, options) {
|
|
|
11219
11053
|
mixer
|
|
11220
11054
|
};
|
|
11221
11055
|
}
|
|
11222
|
-
|
|
11223
11056
|
//#endregion
|
|
11224
11057
|
//#region src/core/miscellaneous/useGLTFExporter.ts
|
|
11225
11058
|
async function useGLTFExporter(object3D, options) {
|
|
@@ -11247,7 +11080,6 @@ function save(blob, filename) {
|
|
|
11247
11080
|
link.click();
|
|
11248
11081
|
link.remove();
|
|
11249
11082
|
}
|
|
11250
|
-
|
|
11251
11083
|
//#endregion
|
|
11252
11084
|
//#region src/core/miscellaneous/useIntersect.ts
|
|
11253
11085
|
function normalizeCientosInstance(obj) {
|
|
@@ -11255,7 +11087,7 @@ function normalizeCientosInstance(obj) {
|
|
|
11255
11087
|
return obj.instance;
|
|
11256
11088
|
}
|
|
11257
11089
|
function useIntersect(onChange = () => {}) {
|
|
11258
|
-
const ref
|
|
11090
|
+
const ref = shallowRef();
|
|
11259
11091
|
const intersect = shallowRef(false);
|
|
11260
11092
|
let _isIntersected = false;
|
|
11261
11093
|
let _oldIsIntersected = false;
|
|
@@ -11282,17 +11114,16 @@ function useIntersect(onChange = () => {}) {
|
|
|
11282
11114
|
};
|
|
11283
11115
|
}
|
|
11284
11116
|
let teardown = () => {};
|
|
11285
|
-
watch(ref
|
|
11117
|
+
watch(ref, () => {
|
|
11286
11118
|
teardown();
|
|
11287
|
-
if (ref
|
|
11119
|
+
if (ref.value) teardown = setup(ref.value);
|
|
11288
11120
|
});
|
|
11289
11121
|
return {
|
|
11290
|
-
ref
|
|
11122
|
+
ref,
|
|
11291
11123
|
intersect,
|
|
11292
11124
|
off: () => teardown()
|
|
11293
11125
|
};
|
|
11294
11126
|
}
|
|
11295
|
-
|
|
11296
11127
|
//#endregion
|
|
11297
11128
|
//#region src/core/objects/AnimatedSprite/AtlasAnimationDefinitionParser.ts
|
|
11298
11129
|
/**
|
|
@@ -11329,48 +11160,57 @@ function expand(definitionStr) {
|
|
|
11329
11160
|
function parse(definitionStr) {
|
|
11330
11161
|
let transition = "START_FRAME_IN";
|
|
11331
11162
|
const result = [];
|
|
11332
|
-
for (const { name, value, startI } of tokenize(definitionStr)) if (transition === "START_FRAME_IN")
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
|
|
11337
|
-
|
|
11338
|
-
|
|
11339
|
-
|
|
11340
|
-
|
|
11341
|
-
else if (
|
|
11342
|
-
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
|
|
11347
|
-
|
|
11348
|
-
|
|
11349
|
-
|
|
11350
|
-
|
|
11351
|
-
else if (transition === "
|
|
11352
|
-
|
|
11353
|
-
transition = "
|
|
11354
|
-
|
|
11355
|
-
else if (transition === "
|
|
11356
|
-
|
|
11357
|
-
|
|
11358
|
-
|
|
11163
|
+
for (const { name, value, startI } of tokenize(definitionStr)) if (transition === "START_FRAME_IN") {
|
|
11164
|
+
if (name === "NUMBER") {
|
|
11165
|
+
result.push({
|
|
11166
|
+
startFrame: value,
|
|
11167
|
+
endFrame: value,
|
|
11168
|
+
duration: 1
|
|
11169
|
+
});
|
|
11170
|
+
transition = "START_FRAME_OUT";
|
|
11171
|
+
} else logDefinitionSyntaxError("number", name, definitionStr, startI);
|
|
11172
|
+
} else if (transition === "START_FRAME_OUT") {
|
|
11173
|
+
if (name === "COMMA") transition = "START_FRAME_IN";
|
|
11174
|
+
else if (name === "HYPHEN") transition = "END_FRAME_IN";
|
|
11175
|
+
else if (name === "OPEN_PAREN") transition = "DURATION_IN";
|
|
11176
|
+
else logDefinitionSyntaxError("\",\", \"-\", \"(\"", name, definitionStr, startI);
|
|
11177
|
+
} else if (transition === "END_FRAME_IN") {
|
|
11178
|
+
if (name === "NUMBER") {
|
|
11179
|
+
result[result.length - 1].endFrame = value;
|
|
11180
|
+
transition = "END_FRAME_OUT";
|
|
11181
|
+
} else logDefinitionSyntaxError("number", name, definitionStr, startI);
|
|
11182
|
+
} else if (transition === "END_FRAME_OUT") {
|
|
11183
|
+
if (name === "COMMA") transition = "START_FRAME_IN";
|
|
11184
|
+
else if (name === "OPEN_PAREN") transition = "DURATION_IN";
|
|
11185
|
+
else logDefinitionSyntaxError("',' or '('", name, definitionStr, startI);
|
|
11186
|
+
} else if (transition === "DURATION_IN") {
|
|
11187
|
+
if (name === "NUMBER") {
|
|
11188
|
+
result[result.length - 1].duration = value;
|
|
11189
|
+
transition = "DURATION_OUT";
|
|
11190
|
+
} else logDefinitionSyntaxError("number", name, definitionStr, startI);
|
|
11191
|
+
} else if (transition === "DURATION_OUT") {
|
|
11192
|
+
if (name === "CLOSE_PAREN") transition = "NEXT_OR_DONE";
|
|
11193
|
+
else logDefinitionSyntaxError("\"(\"", name, definitionStr, startI);
|
|
11194
|
+
} else if (transition === "NEXT_OR_DONE") {
|
|
11195
|
+
if (name === "COMMA") transition = "START_FRAME_IN";
|
|
11196
|
+
else logDefinitionSyntaxError("\",\"", name, definitionStr, startI);
|
|
11197
|
+
}
|
|
11359
11198
|
return result;
|
|
11360
11199
|
}
|
|
11361
11200
|
function tokenize(definition) {
|
|
11362
11201
|
const result = [];
|
|
11363
11202
|
for (let ii = 0; ii < definition.length; ii++) {
|
|
11364
11203
|
const c = definition[ii];
|
|
11365
|
-
if ("0123456789".includes(c))
|
|
11366
|
-
result[result.length - 1].
|
|
11367
|
-
|
|
11368
|
-
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
|
|
11372
|
-
|
|
11373
|
-
|
|
11204
|
+
if ("0123456789".includes(c)) {
|
|
11205
|
+
if (result.length && result[result.length - 1].name === "NUMBER") {
|
|
11206
|
+
result[result.length - 1].value *= 10;
|
|
11207
|
+
result[result.length - 1].value += Number.parseInt(c);
|
|
11208
|
+
} else result.push({
|
|
11209
|
+
name: "NUMBER",
|
|
11210
|
+
value: Number.parseInt(c),
|
|
11211
|
+
startI: ii
|
|
11212
|
+
});
|
|
11213
|
+
} else if (c === " ") continue;
|
|
11374
11214
|
else if (c === ",") result.push({
|
|
11375
11215
|
name: "COMMA",
|
|
11376
11216
|
value: -1,
|
|
@@ -11405,7 +11245,6 @@ function logDefinitionSyntaxError(expected, found, definition, index) {
|
|
|
11405
11245
|
${definition}
|
|
11406
11246
|
${Array.from({ length: index + 1 }).join(" ")}^`);
|
|
11407
11247
|
}
|
|
11408
|
-
|
|
11409
11248
|
//#endregion
|
|
11410
11249
|
//#region src/core/objects/AnimatedSprite/StringOps.ts
|
|
11411
11250
|
const numbersAtEnd = /\d*$/;
|
|
@@ -11418,7 +11257,6 @@ function getNumbersFromEnd(str) {
|
|
|
11418
11257
|
if (matches) return Number.parseInt(matches[matches.length - 1]);
|
|
11419
11258
|
return null;
|
|
11420
11259
|
}
|
|
11421
|
-
|
|
11422
11260
|
//#endregion
|
|
11423
11261
|
//#region src/core/objects/AnimatedSprite/Atlas.ts
|
|
11424
11262
|
async function getTextureAndAtlasAsync(imagePathOrImageData, atlasPathOrAtlasish) {
|
|
@@ -11427,9 +11265,9 @@ async function getTextureAndAtlasAsync(imagePathOrImageData, atlasPathOrAtlasish
|
|
|
11427
11265
|
loader.load(imagePathOrImageData, resolve, void 0, reject);
|
|
11428
11266
|
});
|
|
11429
11267
|
const atlasishPromise = typeof atlasPathOrAtlasish !== "string" ? new Promise((resolve) => resolve(atlasPathOrAtlasish)) : fetch(atlasPathOrAtlasish).then((response) => response.json()).catch((e) => logError(`Cientos Atlas - ${e}`));
|
|
11430
|
-
return Promise.all([texturePromise, atlasishPromise]).then(([texture
|
|
11431
|
-
const image = texture
|
|
11432
|
-
return [texture
|
|
11268
|
+
return Promise.all([texturePromise, atlasishPromise]).then(([texture, atlasish]) => {
|
|
11269
|
+
const image = texture.image;
|
|
11270
|
+
return [texture, getAtlas(atlasish, image.width, image.height)];
|
|
11433
11271
|
});
|
|
11434
11272
|
}
|
|
11435
11273
|
function getAtlas(atlasish, textureWidth, textureHeight) {
|
|
@@ -11521,10 +11359,11 @@ function setAtlasDefinitions(atlas, definitions = {}) {
|
|
|
11521
11359
|
}
|
|
11522
11360
|
function getAtlasFramesByAnimationName(atlas, name) {
|
|
11523
11361
|
if (!(name in atlas.animations)) {
|
|
11362
|
+
const animationsMsg = Object.keys(atlas.animations).map((n) => `* ${n}\n`).join("");
|
|
11524
11363
|
logError(`Cientos Atlas: getAtlasFramesByAnimationName
|
|
11525
11364
|
The animation name "${name}" does not exist in this atlas.
|
|
11526
11365
|
Available names:
|
|
11527
|
-
${
|
|
11366
|
+
${animationsMsg}`);
|
|
11528
11367
|
return [getNullAtlasFrame()];
|
|
11529
11368
|
}
|
|
11530
11369
|
return atlas.animations[name];
|
|
@@ -11564,7 +11403,6 @@ function groupAtlasFramesByKey(frames) {
|
|
|
11564
11403
|
for (const entry of Object.values(result)) entry.sort((a, b) => a.name.localeCompare(b.name));
|
|
11565
11404
|
return result;
|
|
11566
11405
|
}
|
|
11567
|
-
|
|
11568
11406
|
//#endregion
|
|
11569
11407
|
//#region src/core/objects/AnimatedSprite/component.vue?vue&type=script&setup=true&lang.ts
|
|
11570
11408
|
const _hoisted_1$37 = ["scale", "position"];
|
|
@@ -11578,7 +11416,9 @@ const _hoisted_4$3 = [
|
|
|
11578
11416
|
"depthTest"
|
|
11579
11417
|
];
|
|
11580
11418
|
const TEXTURE_PX_TO_WORLD_UNITS = .01;
|
|
11581
|
-
|
|
11419
|
+
//#endregion
|
|
11420
|
+
//#region src/core/objects/AnimatedSprite/component.vue
|
|
11421
|
+
var component_default$1 = /* @__PURE__ */ defineComponent({
|
|
11582
11422
|
__name: "component",
|
|
11583
11423
|
props: {
|
|
11584
11424
|
image: {
|
|
@@ -11683,8 +11523,8 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11683
11523
|
const groupRef = shallowRef();
|
|
11684
11524
|
__expose({ instance: groupRef });
|
|
11685
11525
|
const [textureResult, atlas] = ([__temp, __restore] = withAsyncContext(() => getTextureAndAtlasAsync(props.image, props.atlas)), __temp = await __temp, __restore(), __temp);
|
|
11686
|
-
const texture
|
|
11687
|
-
texture
|
|
11526
|
+
const texture = Array.isArray(textureResult) ? textureResult[0] : textureResult;
|
|
11527
|
+
texture.matrixAutoUpdate = false;
|
|
11688
11528
|
let animation = getAtlasFrames(atlas, props.animation, props.reversed);
|
|
11689
11529
|
let centerX = .5;
|
|
11690
11530
|
let centerY = .5;
|
|
@@ -11711,15 +11551,15 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11711
11551
|
if (animation[frameNum] !== frame) {
|
|
11712
11552
|
frame = animation[frameNum];
|
|
11713
11553
|
frameNameToEmit = frame.name;
|
|
11714
|
-
render
|
|
11554
|
+
render();
|
|
11715
11555
|
}
|
|
11716
11556
|
if (dirtyFlag) {
|
|
11717
11557
|
dirtyFlag = false;
|
|
11718
|
-
texture
|
|
11719
|
-
texture
|
|
11720
|
-
texture
|
|
11721
|
-
texture
|
|
11722
|
-
texture
|
|
11558
|
+
texture.offset.x = frame.offsetX + (props.flipX ? frame.repeatX : 0);
|
|
11559
|
+
texture.offset.y = frame.offsetY;
|
|
11560
|
+
texture.repeat.x = frame.repeatX * (props.flipX ? -1 : 1);
|
|
11561
|
+
texture.repeat.y = frame.repeatY;
|
|
11562
|
+
texture.updateMatrix();
|
|
11723
11563
|
scaleX.value = frame.width * TEXTURE_PX_TO_WORLD_UNITS;
|
|
11724
11564
|
scaleY.value = frame.height * TEXTURE_PX_TO_WORLD_UNITS;
|
|
11725
11565
|
positionX.value = (.5 - centerX) * frame.width * TEXTURE_PX_TO_WORLD_UNITS;
|
|
@@ -11730,7 +11570,7 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11730
11570
|
frameNameToEmit = null;
|
|
11731
11571
|
}
|
|
11732
11572
|
});
|
|
11733
|
-
function render
|
|
11573
|
+
function render() {
|
|
11734
11574
|
dirtyFlag = true;
|
|
11735
11575
|
}
|
|
11736
11576
|
watch(() => props.animation, (newValue, oldValue) => {
|
|
@@ -11739,13 +11579,13 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11739
11579
|
frameNum = 0;
|
|
11740
11580
|
cooldown = 1;
|
|
11741
11581
|
frameHeldOnLoopEnd = false;
|
|
11742
|
-
render
|
|
11582
|
+
render();
|
|
11743
11583
|
}, { immediate: true });
|
|
11744
11584
|
watch(() => props.reversed, () => {
|
|
11745
11585
|
frameNum = (animation.length - frameNum - 1) % animation.length;
|
|
11746
11586
|
animation = getAtlasFrames(atlas, props.animation, props.reversed);
|
|
11747
11587
|
if (frameHeldOnLoopEnd) frameNum = props.resetOnEnd ? 0 : animation.length - 1;
|
|
11748
|
-
render
|
|
11588
|
+
render();
|
|
11749
11589
|
});
|
|
11750
11590
|
watch(() => props.paused, () => {
|
|
11751
11591
|
frameHeldOnLoopEnd = false;
|
|
@@ -11756,23 +11596,23 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11756
11596
|
watch(() => props.resetOnEnd, () => {
|
|
11757
11597
|
if (frameHeldOnLoopEnd) {
|
|
11758
11598
|
frameNum = props.resetOnEnd ? 0 : animation.length - 1;
|
|
11759
|
-
render
|
|
11599
|
+
render();
|
|
11760
11600
|
}
|
|
11761
11601
|
});
|
|
11762
|
-
watch(() => props.flipX, render
|
|
11602
|
+
watch(() => props.flipX, render);
|
|
11763
11603
|
watch(() => [props.center], () => {
|
|
11764
11604
|
[centerX, centerY] = normalizeVectorFlexibleParam(props.center);
|
|
11765
|
-
render
|
|
11605
|
+
render();
|
|
11766
11606
|
}, { immediate: true });
|
|
11767
11607
|
watch(() => [props.definitions], () => {
|
|
11768
11608
|
setAtlasDefinitions(atlas, props.definitions);
|
|
11769
11609
|
animation = getAtlasFrames(atlas, props.animation, props.reversed);
|
|
11770
11610
|
cooldown = 1;
|
|
11771
11611
|
frameNum = 0;
|
|
11772
|
-
render
|
|
11612
|
+
render();
|
|
11773
11613
|
}, { immediate: true });
|
|
11774
11614
|
onUnmounted(() => {
|
|
11775
|
-
texture
|
|
11615
|
+
texture.dispose();
|
|
11776
11616
|
});
|
|
11777
11617
|
return (_ctx, _cache) => {
|
|
11778
11618
|
return openBlock(), createElementBlock("TresGroup", {
|
|
@@ -11792,7 +11632,7 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11792
11632
|
]
|
|
11793
11633
|
}, [createElementVNode("TresSpriteMaterial", {
|
|
11794
11634
|
toneMapped: false,
|
|
11795
|
-
map: unref(texture
|
|
11635
|
+
map: unref(texture),
|
|
11796
11636
|
transparent: true,
|
|
11797
11637
|
alphaTest: props.alphaTest
|
|
11798
11638
|
}, null, 8, _hoisted_2$25)], 8, _hoisted_1$37)) : (openBlock(), createElementBlock("TresMesh", {
|
|
@@ -11810,7 +11650,7 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11810
11650
|
}, [_cache[0] || (_cache[0] = createElementVNode("TresPlaneGeometry", { args: [1, 1] }, null, -1)), createElementVNode("TresMeshBasicMaterial", {
|
|
11811
11651
|
toneMapped: false,
|
|
11812
11652
|
side: unref(DoubleSide),
|
|
11813
|
-
map: unref(texture
|
|
11653
|
+
map: unref(texture),
|
|
11814
11654
|
transparent: true,
|
|
11815
11655
|
alphaTest: props.alphaTest,
|
|
11816
11656
|
depthWrite: props.depthWrite,
|
|
@@ -11819,11 +11659,6 @@ var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ de
|
|
|
11819
11659
|
};
|
|
11820
11660
|
}
|
|
11821
11661
|
});
|
|
11822
|
-
|
|
11823
|
-
//#endregion
|
|
11824
|
-
//#region src/core/objects/AnimatedSprite/component.vue
|
|
11825
|
-
var component_default$1 = component_vue_vue_type_script_setup_true_lang_default$5;
|
|
11826
|
-
|
|
11827
11662
|
//#endregion
|
|
11828
11663
|
//#region src/core/objects/CubeCamera/useCubeCamera.ts
|
|
11829
11664
|
function useCubeCamera(props) {
|
|
@@ -11863,11 +11698,12 @@ function useCubeCamera(props) {
|
|
|
11863
11698
|
update
|
|
11864
11699
|
};
|
|
11865
11700
|
}
|
|
11866
|
-
|
|
11867
11701
|
//#endregion
|
|
11868
11702
|
//#region src/core/objects/CubeCamera/component.vue?vue&type=script&setup=true&lang.ts
|
|
11869
11703
|
const _hoisted_1$36 = ["object"];
|
|
11870
|
-
|
|
11704
|
+
//#endregion
|
|
11705
|
+
//#region src/core/objects/CubeCamera/component.vue
|
|
11706
|
+
var component_default$3 = /* @__PURE__ */ defineComponent({
|
|
11871
11707
|
__name: "component",
|
|
11872
11708
|
props: {
|
|
11873
11709
|
frames: {
|
|
@@ -11934,11 +11770,6 @@ var component_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ de
|
|
|
11934
11770
|
};
|
|
11935
11771
|
}
|
|
11936
11772
|
});
|
|
11937
|
-
|
|
11938
|
-
//#endregion
|
|
11939
|
-
//#region src/core/objects/CubeCamera/component.vue
|
|
11940
|
-
var component_default$3 = component_vue_vue_type_script_setup_true_lang_default$4;
|
|
11941
|
-
|
|
11942
11773
|
//#endregion
|
|
11943
11774
|
//#region src/core/objects/useFBO/index.ts
|
|
11944
11775
|
function useFBO(options) {
|
|
@@ -11975,10 +11806,9 @@ function useFBO(options) {
|
|
|
11975
11806
|
});
|
|
11976
11807
|
return target;
|
|
11977
11808
|
}
|
|
11978
|
-
|
|
11979
11809
|
//#endregion
|
|
11980
|
-
//#region src/core/objects/useFBO/component.vue
|
|
11981
|
-
var
|
|
11810
|
+
//#region src/core/objects/useFBO/component.vue
|
|
11811
|
+
var component_default$6 = /* @__PURE__ */ defineComponent({
|
|
11982
11812
|
__name: "component",
|
|
11983
11813
|
props: {
|
|
11984
11814
|
width: {
|
|
@@ -12010,11 +11840,6 @@ var component_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ de
|
|
|
12010
11840
|
return () => {};
|
|
12011
11841
|
}
|
|
12012
11842
|
});
|
|
12013
|
-
|
|
12014
|
-
//#endregion
|
|
12015
|
-
//#region src/core/objects/useFBO/component.vue
|
|
12016
|
-
var component_default$6 = component_vue_vue_type_script_setup_true_lang_default$3;
|
|
12017
|
-
|
|
12018
11843
|
//#endregion
|
|
12019
11844
|
//#region src/core/objects/GradientTexture.vue?vue&type=script&setup=true&lang.ts
|
|
12020
11845
|
const _hoisted_1$35 = [
|
|
@@ -12022,7 +11847,9 @@ const _hoisted_1$35 = [
|
|
|
12022
11847
|
"args",
|
|
12023
11848
|
"attach"
|
|
12024
11849
|
];
|
|
12025
|
-
|
|
11850
|
+
//#endregion
|
|
11851
|
+
//#region src/core/objects/GradientTexture.vue
|
|
11852
|
+
var GradientTexture_default = /* @__PURE__ */ defineComponent({
|
|
12026
11853
|
__name: "GradientTexture",
|
|
12027
11854
|
props: {
|
|
12028
11855
|
stops: {
|
|
@@ -12068,15 +11895,15 @@ var GradientTexture_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
12068
11895
|
const props = __props;
|
|
12069
11896
|
const textureRef = shallowRef();
|
|
12070
11897
|
const canvas = document.createElement("canvas");
|
|
12071
|
-
function update(canvas
|
|
12072
|
-
const context = canvas
|
|
12073
|
-
canvas
|
|
12074
|
-
canvas
|
|
11898
|
+
function update(canvas) {
|
|
11899
|
+
const context = canvas.getContext("2d");
|
|
11900
|
+
canvas.width = props.width;
|
|
11901
|
+
canvas.height = props.height;
|
|
12075
11902
|
let gradient;
|
|
12076
11903
|
if (props.type === "linear") gradient = context.createLinearGradient(0, 0, 0, props.height);
|
|
12077
11904
|
else {
|
|
12078
|
-
const canvasCenterX = canvas
|
|
12079
|
-
const canvasCenterY = canvas
|
|
11905
|
+
const canvasCenterX = canvas.width / 2;
|
|
11906
|
+
const canvasCenterY = canvas.height / 2;
|
|
12080
11907
|
const radius = props.outerCircleRadius !== "auto" ? Math.abs(Number(props.outerCircleRadius)) : Math.sqrt(canvasCenterX ** 2 + canvasCenterY ** 2);
|
|
12081
11908
|
gradient = context.createRadialGradient(canvasCenterX, canvasCenterY, Math.abs(props.innerCircleRadius), canvasCenterX, canvasCenterY, radius);
|
|
12082
11909
|
}
|
|
@@ -12115,45 +11942,15 @@ var GradientTexture_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
12115
11942
|
};
|
|
12116
11943
|
}
|
|
12117
11944
|
});
|
|
12118
|
-
|
|
12119
|
-
//#endregion
|
|
12120
|
-
//#region src/core/objects/GradientTexture.vue
|
|
12121
|
-
var GradientTexture_default = GradientTexture_vue_vue_type_script_setup_true_lang_default;
|
|
12122
|
-
|
|
12123
11945
|
//#endregion
|
|
12124
11946
|
//#region src/core/objects/html/shaders/fragment.glsl
|
|
12125
|
-
var fragment_default =
|
|
12126
|
-
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
|
|
12127
|
-
}`;
|
|
12128
|
-
|
|
11947
|
+
var fragment_default = "void main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n}";
|
|
12129
11948
|
//#endregion
|
|
12130
11949
|
//#region src/core/objects/html/shaders/vertex.glsl
|
|
12131
|
-
var vertex_default =
|
|
12132
|
-
|
|
12133
|
-
uniform float uWidth;
|
|
12134
|
-
uniform float uHeight;
|
|
12135
|
-
|
|
12136
|
-
void main() {
|
|
12137
|
-
|
|
12138
|
-
vec4 mvPosition = modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0);
|
|
12139
|
-
|
|
12140
|
-
vec2 quad = position.xy;
|
|
12141
|
-
|
|
12142
|
-
vec2 alignedPosition = quad * vec2(uWidth, uHeight);
|
|
12143
|
-
|
|
12144
|
-
mvPosition.xy += alignedPosition;
|
|
12145
|
-
|
|
12146
|
-
gl_Position = projectionMatrix * mvPosition;
|
|
12147
|
-
}`;
|
|
12148
|
-
|
|
11950
|
+
var vertex_default = "#include <common>\n\nuniform float uWidth;\nuniform float uHeight;\n\nvoid main() {\n\n vec4 mvPosition = modelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0);\n\n vec2 quad = position.xy;\n\n vec2 alignedPosition = quad * vec2(uWidth, uHeight);\n\n mvPosition.xy += alignedPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n}";
|
|
12149
11951
|
//#endregion
|
|
12150
11952
|
//#region src/core/objects/html/shaders/passthrough-vertex.glsl
|
|
12151
|
-
var passthrough_vertex_default =
|
|
12152
|
-
|
|
12153
|
-
void main() {
|
|
12154
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
12155
|
-
}`;
|
|
12156
|
-
|
|
11953
|
+
var passthrough_vertex_default = "#include <common>\n\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}";
|
|
12157
11954
|
//#endregion
|
|
12158
11955
|
//#region src/core/objects/html/utils.ts
|
|
12159
11956
|
const v1 = new Vector3(0, 0, 0);
|
|
@@ -12264,7 +12061,6 @@ const getObjectCSSMatrix = (matrix, factor) => {
|
|
|
12264
12061
|
1
|
|
12265
12062
|
], "translate(-50%,-50%)");
|
|
12266
12063
|
};
|
|
12267
|
-
|
|
12268
12064
|
//#endregion
|
|
12269
12065
|
//#region src/core/objects/html/HTML.vue?vue&type=script&setup=true&lang.ts
|
|
12270
12066
|
const _hoisted_1$34 = [
|
|
@@ -12273,7 +12069,9 @@ const _hoisted_1$34 = [
|
|
|
12273
12069
|
"receive-shadow",
|
|
12274
12070
|
"geometry"
|
|
12275
12071
|
];
|
|
12276
|
-
|
|
12072
|
+
//#endregion
|
|
12073
|
+
//#region src/core/objects/html/HTML.vue
|
|
12074
|
+
var HTML_default = /* @__PURE__ */ defineComponent({
|
|
12277
12075
|
__name: "HTML",
|
|
12278
12076
|
props: {
|
|
12279
12077
|
geometry: {
|
|
@@ -12375,7 +12173,7 @@ var HTML_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
12375
12173
|
const props = __props;
|
|
12376
12174
|
const emits = __emit;
|
|
12377
12175
|
const slots = useSlots();
|
|
12378
|
-
const { geometry, material, as, transform, portal, wrapperClass, eps, distanceFactor, fullscreen, center, pointerEvents, sprite, prepend, occlude, zIndexRange, castShadow, receiveShadow, transparentMaterial, calculatePosition
|
|
12176
|
+
const { geometry, material, as, transform, portal, wrapperClass, eps, distanceFactor, fullscreen, center, pointerEvents, sprite, prepend, occlude, zIndexRange, castShadow, receiveShadow, transparentMaterial, calculatePosition } = toRefs(props);
|
|
12379
12177
|
const attrs = useAttrs();
|
|
12380
12178
|
const groupRef = shallowRef(null);
|
|
12381
12179
|
const occlusionMeshRef = shallowRef(null);
|
|
@@ -12507,7 +12305,7 @@ var HTML_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
12507
12305
|
const height = sizes.height.value;
|
|
12508
12306
|
const widthHalf = width * .5;
|
|
12509
12307
|
const heightHalf = height * .5;
|
|
12510
|
-
const newPos = transform.value ? previousPosition.value : calculatePosition
|
|
12308
|
+
const newPos = transform.value ? previousPosition.value : calculatePosition.value(group, cam, {
|
|
12511
12309
|
width,
|
|
12512
12310
|
height
|
|
12513
12311
|
});
|
|
@@ -12576,10 +12374,11 @@ var HTML_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
12576
12374
|
const element = children[0]?.el;
|
|
12577
12375
|
if (element) {
|
|
12578
12376
|
const isOrtho = cam instanceof OrthographicCamera;
|
|
12579
|
-
if (isOrtho && geometry.value && attrs.scale)
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
|
|
12377
|
+
if (isOrtho && geometry.value && attrs.scale) {
|
|
12378
|
+
if (!Array.isArray(attrs.scale)) mesh.scale.setScalar(1 / attrs.scale);
|
|
12379
|
+
else if (attrs.scale instanceof Vector3) mesh.scale.copy(attrs.scale);
|
|
12380
|
+
else mesh.scale.set(1 / attrs.scale[0], 1 / attrs.scale[1], 1 / attrs.scale[2]);
|
|
12381
|
+
} else if (!isOrtho && !geometry.value) {
|
|
12583
12382
|
const ratio = (distanceFactor.value || 10) / 400;
|
|
12584
12383
|
if (sprite.value) {
|
|
12585
12384
|
effectiveMaterial.value.uniforms.uWidth.value = element.clientWidth * ratio;
|
|
@@ -12639,11 +12438,6 @@ var HTML_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
12639
12438
|
};
|
|
12640
12439
|
}
|
|
12641
12440
|
});
|
|
12642
|
-
|
|
12643
|
-
//#endregion
|
|
12644
|
-
//#region src/core/objects/html/HTML.vue
|
|
12645
|
-
var HTML_default = HTML_vue_vue_type_script_setup_true_lang_default;
|
|
12646
|
-
|
|
12647
12441
|
//#endregion
|
|
12648
12442
|
//#region src/core/objects/Image/ImageMaterialImpl.ts
|
|
12649
12443
|
/**
|
|
@@ -12716,10 +12510,9 @@ const ImageMaterialImpl = /* @__PURE__ */ shaderMaterial({
|
|
|
12716
12510
|
#include <colorspace_fragment>
|
|
12717
12511
|
}
|
|
12718
12512
|
`);
|
|
12719
|
-
|
|
12720
12513
|
//#endregion
|
|
12721
|
-
//#region src/core/objects/Image/ImageMaterial.vue
|
|
12722
|
-
var
|
|
12514
|
+
//#region src/core/objects/Image/ImageMaterial.vue
|
|
12515
|
+
var ImageMaterial_default = /* @__PURE__ */ defineComponent({
|
|
12723
12516
|
__name: "ImageMaterial",
|
|
12724
12517
|
setup(__props, { expose: __expose }) {
|
|
12725
12518
|
extend({ ImageMaterial: ImageMaterialImpl });
|
|
@@ -12733,16 +12526,13 @@ var ImageMaterial_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
12733
12526
|
};
|
|
12734
12527
|
}
|
|
12735
12528
|
});
|
|
12736
|
-
|
|
12737
|
-
//#endregion
|
|
12738
|
-
//#region src/core/objects/Image/ImageMaterial.vue
|
|
12739
|
-
var ImageMaterial_default = ImageMaterial_vue_vue_type_script_setup_true_lang_default;
|
|
12740
|
-
|
|
12741
12529
|
//#endregion
|
|
12742
12530
|
//#region src/core/objects/Image/component.vue?vue&type=script&setup=true&lang.ts
|
|
12743
12531
|
const _hoisted_1$33 = ["scale"];
|
|
12744
12532
|
const _hoisted_2$24 = ["args"];
|
|
12745
|
-
|
|
12533
|
+
//#endregion
|
|
12534
|
+
//#region src/core/objects/Image/component.vue
|
|
12535
|
+
var component_default$9 = /* @__PURE__ */ defineComponent({
|
|
12746
12536
|
__name: "component",
|
|
12747
12537
|
props: {
|
|
12748
12538
|
segments: {
|
|
@@ -12807,20 +12597,20 @@ var component_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ de
|
|
|
12807
12597
|
setup(__props, { expose: __expose }) {
|
|
12808
12598
|
const props = __props;
|
|
12809
12599
|
const imageRef = shallowRef();
|
|
12810
|
-
const texture
|
|
12600
|
+
const texture = shallowRef(props.texture ?? null);
|
|
12811
12601
|
const { sizes: size, renderer } = useTres();
|
|
12812
12602
|
const planeBounds = computed(() => Array.isArray(props.scale) ? [props.scale[0], props.scale[1]] : [props.scale, props.scale]);
|
|
12813
12603
|
const imageBounds = computed(() => {
|
|
12814
|
-
const image = texture
|
|
12604
|
+
const image = texture.value?.image;
|
|
12815
12605
|
return [image?.width ?? 1, image?.height ?? 1];
|
|
12816
12606
|
});
|
|
12817
12607
|
const resolution = computed(() => Math.max(size.width.value, size.height.value));
|
|
12818
12608
|
const { state, isLoading } = useTexture(computed(() => props.url));
|
|
12819
12609
|
watchEffect(() => {
|
|
12820
|
-
if (props.texture) texture
|
|
12610
|
+
if (props.texture) texture.value = props.texture;
|
|
12821
12611
|
else if (!isLoading.value) {
|
|
12822
|
-
texture
|
|
12823
|
-
texture
|
|
12612
|
+
texture.value = state.value;
|
|
12613
|
+
texture.value.colorSpace = renderer.outputColorSpace;
|
|
12824
12614
|
}
|
|
12825
12615
|
});
|
|
12826
12616
|
const scale = computed(() => Array.isArray(props.scale) ? [...props.scale, 1] : props.scale);
|
|
@@ -12837,7 +12627,7 @@ var component_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ de
|
|
|
12837
12627
|
props.segments
|
|
12838
12628
|
] }, null, 8, _hoisted_2$24)]), createVNode(ImageMaterial_default, {
|
|
12839
12629
|
color: props.color,
|
|
12840
|
-
map: texture
|
|
12630
|
+
map: texture.value,
|
|
12841
12631
|
zoom: props.zoom,
|
|
12842
12632
|
grayscale: props.grayscale,
|
|
12843
12633
|
opacity: props.opacity,
|
|
@@ -12865,18 +12655,12 @@ var component_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ de
|
|
|
12865
12655
|
};
|
|
12866
12656
|
}
|
|
12867
12657
|
});
|
|
12868
|
-
|
|
12869
|
-
//#endregion
|
|
12870
|
-
//#region src/core/objects/Image/component.vue
|
|
12871
|
-
var component_default$9 = component_vue_vue_type_script_setup_true_lang_default$2;
|
|
12872
|
-
|
|
12873
12658
|
//#endregion
|
|
12874
12659
|
//#region src/core/objects/MarchingCubes/const.ts
|
|
12875
12660
|
const MARCHING_CUBES_PROVIDE_KEY = Symbol("marchingCubes");
|
|
12876
|
-
|
|
12877
12661
|
//#endregion
|
|
12878
|
-
//#region src/core/objects/MarchingCubes/MarchingCube.vue
|
|
12879
|
-
var
|
|
12662
|
+
//#region src/core/objects/MarchingCubes/MarchingCube.vue
|
|
12663
|
+
var MarchingCube_default = /* @__PURE__ */ defineComponent({
|
|
12880
12664
|
__name: "MarchingCube",
|
|
12881
12665
|
props: {
|
|
12882
12666
|
strength: {
|
|
@@ -12918,15 +12702,12 @@ var MarchingCube_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
12918
12702
|
};
|
|
12919
12703
|
}
|
|
12920
12704
|
});
|
|
12921
|
-
|
|
12922
|
-
//#endregion
|
|
12923
|
-
//#region src/core/objects/MarchingCubes/MarchingCube.vue
|
|
12924
|
-
var MarchingCube_default = MarchingCube_vue_vue_type_script_setup_true_lang_default;
|
|
12925
|
-
|
|
12926
12705
|
//#endregion
|
|
12927
12706
|
//#region src/core/objects/MarchingCubes/MarchingCubes.vue?vue&type=script&setup=true&lang.ts
|
|
12928
12707
|
const _hoisted_1$32 = ["object"];
|
|
12929
|
-
|
|
12708
|
+
//#endregion
|
|
12709
|
+
//#region src/core/objects/MarchingCubes/MarchingCubes.vue
|
|
12710
|
+
var MarchingCubes_default = /* @__PURE__ */ defineComponent({
|
|
12930
12711
|
__name: "MarchingCubes",
|
|
12931
12712
|
props: {
|
|
12932
12713
|
resolution: {
|
|
@@ -12969,14 +12750,9 @@ var MarchingCubes_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
12969
12750
|
};
|
|
12970
12751
|
}
|
|
12971
12752
|
});
|
|
12972
|
-
|
|
12973
|
-
//#endregion
|
|
12974
|
-
//#region src/core/objects/MarchingCubes/MarchingCubes.vue
|
|
12975
|
-
var MarchingCubes_default = MarchingCubes_vue_vue_type_script_setup_true_lang_default;
|
|
12976
|
-
|
|
12977
12753
|
//#endregion
|
|
12978
|
-
//#region src/core/objects/MarchingCubes/MarchingPlane.vue
|
|
12979
|
-
var
|
|
12754
|
+
//#region src/core/objects/MarchingCubes/MarchingPlane.vue
|
|
12755
|
+
var MarchingPlane_default = /* @__PURE__ */ defineComponent({
|
|
12980
12756
|
__name: "MarchingPlane",
|
|
12981
12757
|
props: {
|
|
12982
12758
|
planeType: {
|
|
@@ -13012,15 +12788,12 @@ var MarchingPlane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
13012
12788
|
};
|
|
13013
12789
|
}
|
|
13014
12790
|
});
|
|
13015
|
-
|
|
13016
|
-
//#endregion
|
|
13017
|
-
//#region src/core/objects/MarchingCubes/MarchingPlane.vue
|
|
13018
|
-
var MarchingPlane_default = MarchingPlane_vue_vue_type_script_setup_true_lang_default;
|
|
13019
|
-
|
|
13020
12791
|
//#endregion
|
|
13021
12792
|
//#region src/core/objects/Refractor.vue?vue&type=script&setup=true&lang.ts
|
|
13022
12793
|
const _hoisted_1$31 = ["args", "material-uniforms-color-value"];
|
|
13023
|
-
|
|
12794
|
+
//#endregion
|
|
12795
|
+
//#region src/core/objects/Refractor.vue
|
|
12796
|
+
var Refractor_default = /* @__PURE__ */ defineComponent({
|
|
13024
12797
|
__name: "Refractor",
|
|
13025
12798
|
props: {
|
|
13026
12799
|
color: {
|
|
@@ -13056,9 +12829,9 @@ var Refractor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
13056
12829
|
},
|
|
13057
12830
|
setup(__props, { expose: __expose }) {
|
|
13058
12831
|
const props = __props;
|
|
13059
|
-
const { extend
|
|
12832
|
+
const { extend, invalidate } = useTres();
|
|
13060
12833
|
const refractorRef = shallowRef();
|
|
13061
|
-
extend
|
|
12834
|
+
extend({ Refractor });
|
|
13062
12835
|
const { color, textureWidth, textureHeight, clipBias, multisample, shader } = toRefs(props);
|
|
13063
12836
|
const colorValue = computed(() => new Color(color.value));
|
|
13064
12837
|
watch(props, () => {
|
|
@@ -13084,15 +12857,12 @@ var Refractor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
13084
12857
|
};
|
|
13085
12858
|
}
|
|
13086
12859
|
});
|
|
13087
|
-
|
|
13088
|
-
//#endregion
|
|
13089
|
-
//#region src/core/objects/Refractor.vue
|
|
13090
|
-
var Refractor_default = Refractor_vue_vue_type_script_setup_true_lang_default;
|
|
13091
|
-
|
|
13092
12860
|
//#endregion
|
|
13093
12861
|
//#region src/core/objects/Reflector.vue?vue&type=script&setup=true&lang.ts
|
|
13094
12862
|
const _hoisted_1$30 = ["args", "material-uniforms-color-value"];
|
|
13095
|
-
|
|
12863
|
+
//#endregion
|
|
12864
|
+
//#region src/core/objects/Reflector.vue
|
|
12865
|
+
var Reflector_default = /* @__PURE__ */ defineComponent({
|
|
13096
12866
|
__name: "Reflector",
|
|
13097
12867
|
props: {
|
|
13098
12868
|
color: {
|
|
@@ -13128,9 +12898,9 @@ var Reflector_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
13128
12898
|
},
|
|
13129
12899
|
setup(__props, { expose: __expose }) {
|
|
13130
12900
|
const props = __props;
|
|
13131
|
-
const { extend
|
|
12901
|
+
const { extend, invalidate } = useTres();
|
|
13132
12902
|
const reflectorRef = shallowRef();
|
|
13133
|
-
extend
|
|
12903
|
+
extend({ Reflector });
|
|
13134
12904
|
const { color, textureWidth, textureHeight, clipBias, multisample, shader } = toRefs(props);
|
|
13135
12905
|
const colorValue = computed(() => new Color(color.value));
|
|
13136
12906
|
watch(props, () => {
|
|
@@ -13156,15 +12926,12 @@ var Reflector_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
13156
12926
|
};
|
|
13157
12927
|
}
|
|
13158
12928
|
});
|
|
13159
|
-
|
|
13160
|
-
//#endregion
|
|
13161
|
-
//#region src/core/objects/Reflector.vue
|
|
13162
|
-
var Reflector_default = Reflector_vue_vue_type_script_setup_true_lang_default;
|
|
13163
|
-
|
|
13164
12929
|
//#endregion
|
|
13165
12930
|
//#region src/core/objects/Text3D.vue?vue&type=script&setup=true&lang.ts
|
|
13166
12931
|
const _hoisted_1$29 = ["args", "center"];
|
|
13167
|
-
|
|
12932
|
+
//#endregion
|
|
12933
|
+
//#region src/core/objects/Text3D.vue
|
|
12934
|
+
var Text3D_default = /* @__PURE__ */ defineComponent({
|
|
13168
12935
|
__name: "Text3D",
|
|
13169
12936
|
props: {
|
|
13170
12937
|
font: {
|
|
@@ -13230,11 +12997,11 @@ var Text3D_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
13230
12997
|
let __temp, __restore;
|
|
13231
12998
|
const props = __props;
|
|
13232
12999
|
const { center, font, text, needUpdates, size, height, curveSegments, bevelEnabled, bevelThickness, bevelSize, bevelOffset, bevelSegments } = toRefs(props);
|
|
13233
|
-
const { extend
|
|
13000
|
+
const { extend, invalidate } = useTres();
|
|
13234
13001
|
watch(props, () => {
|
|
13235
13002
|
invalidate();
|
|
13236
13003
|
});
|
|
13237
|
-
extend
|
|
13004
|
+
extend({ TextGeometry });
|
|
13238
13005
|
const loader = new FontLoader();
|
|
13239
13006
|
const slots = useSlots();
|
|
13240
13007
|
const localText = computed(() => {
|
|
@@ -13246,8 +13013,8 @@ var Text3D_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
13246
13013
|
__expose({ instance: text3DRef });
|
|
13247
13014
|
const localFont = ([__temp, __restore] = withAsyncContext(() => new Promise((resolve, reject) => {
|
|
13248
13015
|
try {
|
|
13249
|
-
if (typeof font.value === "string") loader.load(font.value, (font
|
|
13250
|
-
resolve(font
|
|
13016
|
+
if (typeof font.value === "string") loader.load(font.value, (font) => {
|
|
13017
|
+
resolve(font);
|
|
13251
13018
|
});
|
|
13252
13019
|
else resolve(font.value);
|
|
13253
13020
|
} catch (error) {
|
|
@@ -13285,16 +13052,13 @@ var Text3D_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
13285
13052
|
};
|
|
13286
13053
|
}
|
|
13287
13054
|
});
|
|
13288
|
-
|
|
13289
|
-
//#endregion
|
|
13290
|
-
//#region src/core/objects/Text3D.vue
|
|
13291
|
-
var Text3D_default = Text3D_vue_vue_type_script_setup_true_lang_default;
|
|
13292
|
-
|
|
13293
13055
|
//#endregion
|
|
13294
13056
|
//#region src/core/shapes/Box.vue?vue&type=script&setup=true&lang.ts
|
|
13295
13057
|
const _hoisted_1$28 = ["args"];
|
|
13296
13058
|
const _hoisted_2$23 = ["color"];
|
|
13297
|
-
|
|
13059
|
+
//#endregion
|
|
13060
|
+
//#region src/core/shapes/Box.vue
|
|
13061
|
+
var Box_default = /* @__PURE__ */ defineComponent({
|
|
13298
13062
|
__name: "Box",
|
|
13299
13063
|
props: {
|
|
13300
13064
|
args: {
|
|
@@ -13329,15 +13093,12 @@ var Box_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComp
|
|
|
13329
13093
|
};
|
|
13330
13094
|
}
|
|
13331
13095
|
});
|
|
13332
|
-
|
|
13333
|
-
//#endregion
|
|
13334
|
-
//#region src/core/shapes/Box.vue
|
|
13335
|
-
var Box_default = Box_vue_vue_type_script_setup_true_lang_default;
|
|
13336
|
-
|
|
13337
13096
|
//#endregion
|
|
13338
13097
|
//#region src/core/shapes/Line2.vue?vue&type=script&setup=true&lang.ts
|
|
13339
13098
|
const _hoisted_1$27 = ["object"];
|
|
13340
|
-
|
|
13099
|
+
//#endregion
|
|
13100
|
+
//#region src/core/shapes/Line2.vue
|
|
13101
|
+
var Line2_default = /* @__PURE__ */ defineComponent({
|
|
13341
13102
|
__name: "Line2",
|
|
13342
13103
|
props: {
|
|
13343
13104
|
points: {
|
|
@@ -13416,20 +13177,20 @@ var Line2_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
13416
13177
|
}
|
|
13417
13178
|
const lineMaterial = new LineMaterial();
|
|
13418
13179
|
const lineGeometry = new LineGeometry();
|
|
13419
|
-
const line
|
|
13180
|
+
const line = new Line2(lineGeometry, lineMaterial);
|
|
13420
13181
|
const { sizes, invalidate } = useTres();
|
|
13421
13182
|
const hasVertexColors = computed(() => Array.isArray(props.vertexColors));
|
|
13422
|
-
function updateLineMaterial(material, props
|
|
13423
|
-
material.color = normalizeColor(props
|
|
13424
|
-
material.linewidth = props
|
|
13425
|
-
material.alphaToCoverage = props
|
|
13426
|
-
material.worldUnits = props
|
|
13427
|
-
material.vertexColors = Array.isArray(props
|
|
13428
|
-
material.dashed = props
|
|
13429
|
-
material.dashScale = props
|
|
13430
|
-
material.dashSize = props
|
|
13431
|
-
material.dashOffset = props
|
|
13432
|
-
material.gapSize = props
|
|
13183
|
+
function updateLineMaterial(material, props) {
|
|
13184
|
+
material.color = normalizeColor(props.color);
|
|
13185
|
+
material.linewidth = props.lineWidth;
|
|
13186
|
+
material.alphaToCoverage = props.alphaToCoverage;
|
|
13187
|
+
material.worldUnits = props.worldUnits;
|
|
13188
|
+
material.vertexColors = Array.isArray(props.vertexColors);
|
|
13189
|
+
material.dashed = props.dashed;
|
|
13190
|
+
material.dashScale = props.dashScale;
|
|
13191
|
+
material.dashSize = props.dashSize;
|
|
13192
|
+
material.dashOffset = props.dashOffset;
|
|
13193
|
+
material.gapSize = props.gapSize;
|
|
13433
13194
|
material.needsUpdate = true;
|
|
13434
13195
|
}
|
|
13435
13196
|
function updateLineGeometry(geometry, points, vertexColors) {
|
|
@@ -13454,11 +13215,11 @@ var Line2_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
13454
13215
|
geometry.setPositions(pValues.flat());
|
|
13455
13216
|
const colors = getInterpolatedVertexColors(vertexColors, points.length).map((c) => c.toArray()).flat();
|
|
13456
13217
|
geometry.setColors(colors);
|
|
13457
|
-
line
|
|
13218
|
+
line.computeLineDistances();
|
|
13458
13219
|
}
|
|
13459
13220
|
updateLineMaterial(lineMaterial, props);
|
|
13460
13221
|
updateLineGeometry(lineGeometry, props.points, props.vertexColors);
|
|
13461
|
-
line
|
|
13222
|
+
line.computeLineDistances();
|
|
13462
13223
|
watch(() => [
|
|
13463
13224
|
props.color,
|
|
13464
13225
|
props.lineWidth,
|
|
@@ -13490,19 +13251,14 @@ var Line2_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
13490
13251
|
return (_ctx, _cache) => {
|
|
13491
13252
|
return openBlock(), createElementBlock("primitive", {
|
|
13492
13253
|
ref: lineRef.value,
|
|
13493
|
-
object: unref(line
|
|
13254
|
+
object: unref(line)
|
|
13494
13255
|
}, null, 8, _hoisted_1$27);
|
|
13495
13256
|
};
|
|
13496
13257
|
}
|
|
13497
13258
|
});
|
|
13498
|
-
|
|
13499
|
-
//#endregion
|
|
13500
|
-
//#region src/core/shapes/Line2.vue
|
|
13501
|
-
var Line2_default = Line2_vue_vue_type_script_setup_true_lang_default;
|
|
13502
|
-
|
|
13503
13259
|
//#endregion
|
|
13504
|
-
//#region src/core/shapes/CatmullRomCurve3.vue
|
|
13505
|
-
var
|
|
13260
|
+
//#region src/core/shapes/CatmullRomCurve3.vue
|
|
13261
|
+
var CatmullRomCurve3_default = /* @__PURE__ */ defineComponent({
|
|
13506
13262
|
__name: "CatmullRomCurve3",
|
|
13507
13263
|
props: {
|
|
13508
13264
|
segments: {
|
|
@@ -13572,11 +13328,12 @@ var CatmullRomCurve3_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
13572
13328
|
},
|
|
13573
13329
|
setup(__props, { expose: __expose }) {
|
|
13574
13330
|
const props = __props;
|
|
13575
|
-
function getCatmullRomCurve(points, closed
|
|
13576
|
-
|
|
13331
|
+
function getCatmullRomCurve(points, closed, curveType, tension) {
|
|
13332
|
+
const mappedPoints = points.map((pt) => pt instanceof Vector3 ? pt : new Vector3(...pt));
|
|
13333
|
+
return new CatmullRomCurve3(mappedPoints, closed, curveType, tension);
|
|
13577
13334
|
}
|
|
13578
|
-
function getSegmentedPoints(curve
|
|
13579
|
-
return curve
|
|
13335
|
+
function getSegmentedPoints(curve, segments) {
|
|
13336
|
+
return curve.getPoints(segments);
|
|
13580
13337
|
}
|
|
13581
13338
|
const curve = computed(() => getCatmullRomCurve(props.points, props.closed, props.curveType, props.tension));
|
|
13582
13339
|
const segmentedPoints = computed(() => getSegmentedPoints(curve.value, props.segments));
|
|
@@ -13612,16 +13369,13 @@ var CatmullRomCurve3_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
13612
13369
|
};
|
|
13613
13370
|
}
|
|
13614
13371
|
});
|
|
13615
|
-
|
|
13616
|
-
//#endregion
|
|
13617
|
-
//#region src/core/shapes/CatmullRomCurve3.vue
|
|
13618
|
-
var CatmullRomCurve3_default = CatmullRomCurve3_vue_vue_type_script_setup_true_lang_default;
|
|
13619
|
-
|
|
13620
13372
|
//#endregion
|
|
13621
13373
|
//#region src/core/shapes/Circle.vue?vue&type=script&setup=true&lang.ts
|
|
13622
13374
|
const _hoisted_1$26 = ["args"];
|
|
13623
13375
|
const _hoisted_2$22 = ["color"];
|
|
13624
|
-
|
|
13376
|
+
//#endregion
|
|
13377
|
+
//#region src/core/shapes/Circle.vue
|
|
13378
|
+
var Circle_default = /* @__PURE__ */ defineComponent({
|
|
13625
13379
|
__name: "Circle",
|
|
13626
13380
|
props: {
|
|
13627
13381
|
args: {
|
|
@@ -13657,16 +13411,13 @@ var Circle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
13657
13411
|
};
|
|
13658
13412
|
}
|
|
13659
13413
|
});
|
|
13660
|
-
|
|
13661
|
-
//#endregion
|
|
13662
|
-
//#region src/core/shapes/Circle.vue
|
|
13663
|
-
var Circle_default = Circle_vue_vue_type_script_setup_true_lang_default;
|
|
13664
|
-
|
|
13665
13414
|
//#endregion
|
|
13666
13415
|
//#region src/core/shapes/Cone.vue?vue&type=script&setup=true&lang.ts
|
|
13667
13416
|
const _hoisted_1$25 = ["args"];
|
|
13668
13417
|
const _hoisted_2$21 = ["color"];
|
|
13669
|
-
|
|
13418
|
+
//#endregion
|
|
13419
|
+
//#region src/core/shapes/Cone.vue
|
|
13420
|
+
var Cone_default = /* @__PURE__ */ defineComponent({
|
|
13670
13421
|
__name: "Cone",
|
|
13671
13422
|
props: {
|
|
13672
13423
|
args: {
|
|
@@ -13705,14 +13456,9 @@ var Cone_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
13705
13456
|
};
|
|
13706
13457
|
}
|
|
13707
13458
|
});
|
|
13708
|
-
|
|
13709
13459
|
//#endregion
|
|
13710
|
-
//#region src/core/shapes/
|
|
13711
|
-
var
|
|
13712
|
-
|
|
13713
|
-
//#endregion
|
|
13714
|
-
//#region src/core/shapes/CubicBezierLine.vue?vue&type=script&setup=true&lang.ts
|
|
13715
|
-
var CubicBezierLine_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13460
|
+
//#region src/core/shapes/CubicBezierLine.vue
|
|
13461
|
+
var CubicBezierLine_default = /* @__PURE__ */ defineComponent({
|
|
13716
13462
|
__name: "CubicBezierLine",
|
|
13717
13463
|
props: {
|
|
13718
13464
|
start: {
|
|
@@ -13742,7 +13488,9 @@ var CubicBezierLine_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
13742
13488
|
const points = computed(() => {
|
|
13743
13489
|
const startV = props.start instanceof Vector3 ? props.start : new Vector3(...props.start);
|
|
13744
13490
|
const endV = props.end instanceof Vector3 ? props.end : new Vector3(...props.end);
|
|
13745
|
-
|
|
13491
|
+
const midAV = props.midA instanceof Vector3 ? props.midA : new Vector3(...props.midA);
|
|
13492
|
+
const midBV = props.midB instanceof Vector3 ? props.midB : new Vector3(...props.midB);
|
|
13493
|
+
return new CubicBezierCurve3(startV, midAV, midBV, endV).getPoints(props.segments);
|
|
13746
13494
|
});
|
|
13747
13495
|
const lineRef = shallowRef();
|
|
13748
13496
|
__expose({ instance: lineRef });
|
|
@@ -13755,16 +13503,13 @@ var CubicBezierLine_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
13755
13503
|
};
|
|
13756
13504
|
}
|
|
13757
13505
|
});
|
|
13758
|
-
|
|
13759
|
-
//#endregion
|
|
13760
|
-
//#region src/core/shapes/CubicBezierLine.vue
|
|
13761
|
-
var CubicBezierLine_default = CubicBezierLine_vue_vue_type_script_setup_true_lang_default;
|
|
13762
|
-
|
|
13763
13506
|
//#endregion
|
|
13764
13507
|
//#region src/core/shapes/Cylinder.vue?vue&type=script&setup=true&lang.ts
|
|
13765
13508
|
const _hoisted_1$24 = ["args"];
|
|
13766
13509
|
const _hoisted_2$20 = ["color"];
|
|
13767
|
-
|
|
13510
|
+
//#endregion
|
|
13511
|
+
//#region src/core/shapes/Cylinder.vue
|
|
13512
|
+
var Cylinder_default = /* @__PURE__ */ defineComponent({
|
|
13768
13513
|
__name: "Cylinder",
|
|
13769
13514
|
props: {
|
|
13770
13515
|
args: {
|
|
@@ -13804,16 +13549,13 @@ var Cylinder_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
13804
13549
|
};
|
|
13805
13550
|
}
|
|
13806
13551
|
});
|
|
13807
|
-
|
|
13808
|
-
//#endregion
|
|
13809
|
-
//#region src/core/shapes/Cylinder.vue
|
|
13810
|
-
var Cylinder_default = Cylinder_vue_vue_type_script_setup_true_lang_default;
|
|
13811
|
-
|
|
13812
13552
|
//#endregion
|
|
13813
13553
|
//#region src/core/shapes/Dodecahedron.vue?vue&type=script&setup=true&lang.ts
|
|
13814
13554
|
const _hoisted_1$23 = ["args"];
|
|
13815
13555
|
const _hoisted_2$19 = ["color"];
|
|
13816
|
-
|
|
13556
|
+
//#endregion
|
|
13557
|
+
//#region src/core/shapes/Dodecahedron.vue
|
|
13558
|
+
var Dodecahedron_default = /* @__PURE__ */ defineComponent({
|
|
13817
13559
|
__name: "Dodecahedron",
|
|
13818
13560
|
props: {
|
|
13819
13561
|
args: {
|
|
@@ -13844,11 +13586,6 @@ var Dodecahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
13844
13586
|
};
|
|
13845
13587
|
}
|
|
13846
13588
|
});
|
|
13847
|
-
|
|
13848
|
-
//#endregion
|
|
13849
|
-
//#region src/core/shapes/Dodecahedron.vue
|
|
13850
|
-
var Dodecahedron_default = Dodecahedron_vue_vue_type_script_setup_true_lang_default;
|
|
13851
|
-
|
|
13852
13589
|
//#endregion
|
|
13853
13590
|
//#region src/core/shapes/Grid.vue?vue&type=script&setup=true&lang.ts
|
|
13854
13591
|
const _hoisted_1$22 = [
|
|
@@ -13866,7 +13603,9 @@ const _hoisted_1$22 = [
|
|
|
13866
13603
|
"follow-camera"
|
|
13867
13604
|
];
|
|
13868
13605
|
const _hoisted_2$18 = ["args"];
|
|
13869
|
-
|
|
13606
|
+
//#endregion
|
|
13607
|
+
//#region src/core/shapes/Grid.vue
|
|
13608
|
+
var Grid_default = /* @__PURE__ */ defineComponent({
|
|
13870
13609
|
__name: "Grid",
|
|
13871
13610
|
props: {
|
|
13872
13611
|
cellSize: {
|
|
@@ -13944,7 +13683,7 @@ var Grid_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
13944
13683
|
},
|
|
13945
13684
|
setup(__props) {
|
|
13946
13685
|
const props = __props;
|
|
13947
|
-
|
|
13686
|
+
const GridMaterial = shaderMaterial({
|
|
13948
13687
|
cellSize: .5,
|
|
13949
13688
|
sectionSize: 1,
|
|
13950
13689
|
fadeDistance: 100,
|
|
@@ -14018,25 +13757,26 @@ var Grid_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
14018
13757
|
#include <tonemapping_fragment>
|
|
14019
13758
|
#include <colorspace_fragment>
|
|
14020
13759
|
}
|
|
14021
|
-
`)
|
|
14022
|
-
|
|
13760
|
+
`);
|
|
13761
|
+
extend({ GridMaterial });
|
|
13762
|
+
const ref = shallowRef(new Mesh());
|
|
14023
13763
|
const plane = new Plane();
|
|
14024
13764
|
const upVector = new Vector3(0, 1, 0);
|
|
14025
13765
|
const zeroVector = new Vector3(0, 0, 0);
|
|
14026
13766
|
const { onBeforeRender } = useLoop();
|
|
14027
13767
|
onBeforeRender((state) => {
|
|
14028
13768
|
if (!state.camera) return;
|
|
14029
|
-
plane.setFromNormalAndCoplanarPoint(upVector, zeroVector).applyMatrix4(ref
|
|
14030
|
-
const gridMaterial = ref
|
|
13769
|
+
plane.setFromNormalAndCoplanarPoint(upVector, zeroVector).applyMatrix4(ref.value.matrixWorld);
|
|
13770
|
+
const gridMaterial = ref.value.material;
|
|
14031
13771
|
const worldCamProjPosition = gridMaterial.uniforms.worldCamProjPosition;
|
|
14032
13772
|
const worldPlanePosition = gridMaterial.uniforms.worldPlanePosition;
|
|
14033
13773
|
plane.projectPoint(state.camera.value.position, worldCamProjPosition.value);
|
|
14034
|
-
worldPlanePosition.value.set(0, 0, 0).applyMatrix4(ref
|
|
13774
|
+
worldPlanePosition.value.set(0, 0, 0).applyMatrix4(ref.value.matrixWorld);
|
|
14035
13775
|
});
|
|
14036
13776
|
return (_ctx, _cache) => {
|
|
14037
13777
|
return openBlock(), createElementBlock("TresMesh", {
|
|
14038
13778
|
ref_key: "ref",
|
|
14039
|
-
ref
|
|
13779
|
+
ref,
|
|
14040
13780
|
"frustum-culled": false
|
|
14041
13781
|
}, [createElementVNode("TresGridMaterial", {
|
|
14042
13782
|
transparent: true,
|
|
@@ -14057,16 +13797,13 @@ var Grid_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
14057
13797
|
};
|
|
14058
13798
|
}
|
|
14059
13799
|
});
|
|
14060
|
-
|
|
14061
|
-
//#endregion
|
|
14062
|
-
//#region src/core/shapes/Grid.vue
|
|
14063
|
-
var Grid_default = Grid_vue_vue_type_script_setup_true_lang_default;
|
|
14064
|
-
|
|
14065
13800
|
//#endregion
|
|
14066
13801
|
//#region src/core/shapes/Icosahedron.vue?vue&type=script&setup=true&lang.ts
|
|
14067
13802
|
const _hoisted_1$21 = ["args"];
|
|
14068
13803
|
const _hoisted_2$17 = ["color"];
|
|
14069
|
-
|
|
13804
|
+
//#endregion
|
|
13805
|
+
//#region src/core/shapes/Icosahedron.vue
|
|
13806
|
+
var Icosahedron_default = /* @__PURE__ */ defineComponent({
|
|
14070
13807
|
__name: "Icosahedron",
|
|
14071
13808
|
props: {
|
|
14072
13809
|
args: {
|
|
@@ -14097,16 +13834,13 @@ var Icosahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
14097
13834
|
};
|
|
14098
13835
|
}
|
|
14099
13836
|
});
|
|
14100
|
-
|
|
14101
|
-
//#endregion
|
|
14102
|
-
//#region src/core/shapes/Icosahedron.vue
|
|
14103
|
-
var Icosahedron_default = Icosahedron_vue_vue_type_script_setup_true_lang_default;
|
|
14104
|
-
|
|
14105
13837
|
//#endregion
|
|
14106
13838
|
//#region src/core/shapes/Octahedron.vue?vue&type=script&setup=true&lang.ts
|
|
14107
13839
|
const _hoisted_1$20 = ["args"];
|
|
14108
13840
|
const _hoisted_2$16 = ["color"];
|
|
14109
|
-
|
|
13841
|
+
//#endregion
|
|
13842
|
+
//#region src/core/shapes/Octahedron.vue
|
|
13843
|
+
var Octahedron_default = /* @__PURE__ */ defineComponent({
|
|
14110
13844
|
__name: "Octahedron",
|
|
14111
13845
|
props: {
|
|
14112
13846
|
args: {
|
|
@@ -14137,17 +13871,14 @@ var Octahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
14137
13871
|
};
|
|
14138
13872
|
}
|
|
14139
13873
|
});
|
|
14140
|
-
|
|
14141
|
-
//#endregion
|
|
14142
|
-
//#region src/core/shapes/Octahedron.vue
|
|
14143
|
-
var Octahedron_default = Octahedron_vue_vue_type_script_setup_true_lang_default;
|
|
14144
|
-
|
|
14145
13874
|
//#endregion
|
|
14146
13875
|
//#region src/core/shapes/Plane.vue?vue&type=script&setup=true&lang.ts
|
|
14147
13876
|
const _hoisted_1$19 = ["rotation"];
|
|
14148
13877
|
const _hoisted_2$15 = ["args"];
|
|
14149
13878
|
const _hoisted_3$4 = ["color"];
|
|
14150
|
-
|
|
13879
|
+
//#endregion
|
|
13880
|
+
//#region src/core/shapes/Plane.vue
|
|
13881
|
+
var Plane_default = /* @__PURE__ */ defineComponent({
|
|
14151
13882
|
__name: "Plane",
|
|
14152
13883
|
props: {
|
|
14153
13884
|
args: {
|
|
@@ -14183,14 +13914,9 @@ var Plane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
14183
13914
|
};
|
|
14184
13915
|
}
|
|
14185
13916
|
});
|
|
14186
|
-
|
|
14187
|
-
//#endregion
|
|
14188
|
-
//#region src/core/shapes/Plane.vue
|
|
14189
|
-
var Plane_default = Plane_vue_vue_type_script_setup_true_lang_default;
|
|
14190
|
-
|
|
14191
13917
|
//#endregion
|
|
14192
|
-
//#region src/core/shapes/QuadraticBezierLine.vue
|
|
14193
|
-
var
|
|
13918
|
+
//#region src/core/shapes/QuadraticBezierLine.vue
|
|
13919
|
+
var QuadraticBezierLine_default = /* @__PURE__ */ defineComponent({
|
|
14194
13920
|
__name: "QuadraticBezierLine",
|
|
14195
13921
|
props: {
|
|
14196
13922
|
start: {
|
|
@@ -14216,7 +13942,8 @@ var QuadraticBezierLine_vue_vue_type_script_setup_true_lang_default = /* @__PURE
|
|
|
14216
13942
|
const points = computed(() => {
|
|
14217
13943
|
const startV = props.start instanceof Vector3 ? props.start : new Vector3(...props.start);
|
|
14218
13944
|
const endV = props.end instanceof Vector3 ? props.end : new Vector3(...props.end);
|
|
14219
|
-
|
|
13945
|
+
const mid = props.mid instanceof Vector3 ? props.mid : Array.isArray(props.mid) ? new Vector3(...props.mid) : new Vector3(endV.x, startV.y, endV.z);
|
|
13946
|
+
return new QuadraticBezierCurve3(startV, mid, endV).getPoints(props.segments);
|
|
14220
13947
|
});
|
|
14221
13948
|
const lineRef = shallowRef();
|
|
14222
13949
|
__expose({ instance: lineRef });
|
|
@@ -14229,16 +13956,13 @@ var QuadraticBezierLine_vue_vue_type_script_setup_true_lang_default = /* @__PURE
|
|
|
14229
13956
|
};
|
|
14230
13957
|
}
|
|
14231
13958
|
});
|
|
14232
|
-
|
|
14233
|
-
//#endregion
|
|
14234
|
-
//#region src/core/shapes/QuadraticBezierLine.vue
|
|
14235
|
-
var QuadraticBezierLine_default = QuadraticBezierLine_vue_vue_type_script_setup_true_lang_default;
|
|
14236
|
-
|
|
14237
13959
|
//#endregion
|
|
14238
13960
|
//#region src/core/shapes/Ring.vue?vue&type=script&setup=true&lang.ts
|
|
14239
13961
|
const _hoisted_1$18 = ["args"];
|
|
14240
13962
|
const _hoisted_2$14 = ["color"];
|
|
14241
|
-
|
|
13963
|
+
//#endregion
|
|
13964
|
+
//#region src/core/shapes/Ring.vue
|
|
13965
|
+
var Ring_default = /* @__PURE__ */ defineComponent({
|
|
14242
13966
|
__name: "Ring",
|
|
14243
13967
|
props: {
|
|
14244
13968
|
args: {
|
|
@@ -14272,16 +13996,13 @@ var Ring_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
14272
13996
|
};
|
|
14273
13997
|
}
|
|
14274
13998
|
});
|
|
14275
|
-
|
|
14276
|
-
//#endregion
|
|
14277
|
-
//#region src/core/shapes/Ring.vue
|
|
14278
|
-
var Ring_default = Ring_vue_vue_type_script_setup_true_lang_default;
|
|
14279
|
-
|
|
14280
13999
|
//#endregion
|
|
14281
14000
|
//#region src/core/shapes/RoundedBox.vue?vue&type=script&setup=true&lang.ts
|
|
14282
14001
|
const _hoisted_1$17 = ["args"];
|
|
14283
14002
|
const _hoisted_2$13 = ["color"];
|
|
14284
|
-
|
|
14003
|
+
//#endregion
|
|
14004
|
+
//#region src/core/shapes/RoundedBox.vue
|
|
14005
|
+
var RoundedBox_default = /* @__PURE__ */ defineComponent({
|
|
14285
14006
|
__name: "RoundedBox",
|
|
14286
14007
|
props: {
|
|
14287
14008
|
args: {
|
|
@@ -14303,8 +14024,8 @@ var RoundedBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
14303
14024
|
},
|
|
14304
14025
|
setup(__props, { expose: __expose }) {
|
|
14305
14026
|
const { args, color } = toRefs(__props);
|
|
14306
|
-
const { invalidate, extend
|
|
14307
|
-
extend
|
|
14027
|
+
const { invalidate, extend } = useTres();
|
|
14028
|
+
extend({ RoundedBoxGeometry });
|
|
14308
14029
|
watch(args, () => {
|
|
14309
14030
|
invalidate();
|
|
14310
14031
|
});
|
|
@@ -14318,11 +14039,6 @@ var RoundedBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
14318
14039
|
};
|
|
14319
14040
|
}
|
|
14320
14041
|
});
|
|
14321
|
-
|
|
14322
|
-
//#endregion
|
|
14323
|
-
//#region src/core/shapes/RoundedBox.vue
|
|
14324
|
-
var RoundedBox_default = RoundedBox_vue_vue_type_script_setup_true_lang_default;
|
|
14325
|
-
|
|
14326
14042
|
//#endregion
|
|
14327
14043
|
//#region src/core/shapes/RoundedPlaneGeometry.ts
|
|
14328
14044
|
/**
|
|
@@ -14429,12 +14145,13 @@ var RoundedPlaneGeometry = class extends BufferGeometry {
|
|
|
14429
14145
|
this.setAttribute("uv", new BufferAttribute(new Float32Array(uvs), 2));
|
|
14430
14146
|
}
|
|
14431
14147
|
};
|
|
14432
|
-
|
|
14433
14148
|
//#endregion
|
|
14434
14149
|
//#region src/core/shapes/RoundedPlane.vue?vue&type=script&setup=true&lang.ts
|
|
14435
14150
|
const _hoisted_1$16 = ["args"];
|
|
14436
14151
|
const _hoisted_2$12 = ["color"];
|
|
14437
|
-
|
|
14152
|
+
//#endregion
|
|
14153
|
+
//#region src/core/shapes/RoundedPlane.vue
|
|
14154
|
+
var RoundedPlane_default = /* @__PURE__ */ defineComponent({
|
|
14438
14155
|
__name: "RoundedPlane",
|
|
14439
14156
|
props: {
|
|
14440
14157
|
args: {
|
|
@@ -14455,8 +14172,8 @@ var RoundedPlane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
14455
14172
|
},
|
|
14456
14173
|
setup(__props, { expose: __expose }) {
|
|
14457
14174
|
const { args, color } = toRefs(__props);
|
|
14458
|
-
const { invalidate, extend
|
|
14459
|
-
extend
|
|
14175
|
+
const { invalidate, extend } = useTres();
|
|
14176
|
+
extend({ RoundedPlaneGeometry });
|
|
14460
14177
|
watch(args, () => {
|
|
14461
14178
|
invalidate();
|
|
14462
14179
|
});
|
|
@@ -14470,15 +14187,12 @@ var RoundedPlane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
14470
14187
|
};
|
|
14471
14188
|
}
|
|
14472
14189
|
});
|
|
14473
|
-
|
|
14474
|
-
//#endregion
|
|
14475
|
-
//#region src/core/shapes/RoundedPlane.vue
|
|
14476
|
-
var RoundedPlane_default = RoundedPlane_vue_vue_type_script_setup_true_lang_default;
|
|
14477
|
-
|
|
14478
14190
|
//#endregion
|
|
14479
14191
|
//#region src/core/shapes/ScreenQuad.vue?vue&type=script&setup=true&lang.ts
|
|
14480
14192
|
const _hoisted_1$15 = ["geometry"];
|
|
14481
|
-
|
|
14193
|
+
//#endregion
|
|
14194
|
+
//#region src/core/shapes/ScreenQuad.vue
|
|
14195
|
+
var ScreenQuad_default = /* @__PURE__ */ defineComponent({
|
|
14482
14196
|
__name: "ScreenQuad",
|
|
14483
14197
|
setup(__props, { expose: __expose }) {
|
|
14484
14198
|
const geometry = new THREE.BufferGeometry();
|
|
@@ -14505,16 +14219,13 @@ var ScreenQuad_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
|
|
|
14505
14219
|
};
|
|
14506
14220
|
}
|
|
14507
14221
|
});
|
|
14508
|
-
|
|
14509
|
-
//#endregion
|
|
14510
|
-
//#region src/core/shapes/ScreenQuad.vue
|
|
14511
|
-
var ScreenQuad_default = ScreenQuad_vue_vue_type_script_setup_true_lang_default;
|
|
14512
|
-
|
|
14513
14222
|
//#endregion
|
|
14514
14223
|
//#region src/core/shapes/Sphere.vue?vue&type=script&setup=true&lang.ts
|
|
14515
14224
|
const _hoisted_1$14 = ["args"];
|
|
14516
14225
|
const _hoisted_2$11 = ["color"];
|
|
14517
|
-
|
|
14226
|
+
//#endregion
|
|
14227
|
+
//#region src/core/shapes/Sphere.vue
|
|
14228
|
+
var Sphere_default = /* @__PURE__ */ defineComponent({
|
|
14518
14229
|
__name: "Sphere",
|
|
14519
14230
|
props: {
|
|
14520
14231
|
args: {
|
|
@@ -14549,16 +14260,13 @@ var Sphere_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
14549
14260
|
};
|
|
14550
14261
|
}
|
|
14551
14262
|
});
|
|
14552
|
-
|
|
14553
|
-
//#endregion
|
|
14554
|
-
//#region src/core/shapes/Sphere.vue
|
|
14555
|
-
var Sphere_default = Sphere_vue_vue_type_script_setup_true_lang_default;
|
|
14556
|
-
|
|
14557
14263
|
//#endregion
|
|
14558
14264
|
//#region src/core/shapes/Superformula.vue?vue&type=script&setup=true&lang.ts
|
|
14559
14265
|
const _hoisted_1$13 = ["geometry"];
|
|
14560
14266
|
const _hoisted_2$10 = ["color"];
|
|
14561
|
-
|
|
14267
|
+
//#endregion
|
|
14268
|
+
//#region src/core/shapes/Superformula.vue
|
|
14269
|
+
var Superformula_default = /* @__PURE__ */ defineComponent({
|
|
14562
14270
|
__name: "Superformula",
|
|
14563
14271
|
props: {
|
|
14564
14272
|
widthSegments: {
|
|
@@ -14612,19 +14320,19 @@ var Superformula_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
14612
14320
|
const geometry = shallowRef();
|
|
14613
14321
|
const color = shallowRef(props.color);
|
|
14614
14322
|
function makeGeometry(widthSegments, heightSegments) {
|
|
14615
|
-
const geometry
|
|
14323
|
+
const geometry = new BufferGeometry();
|
|
14616
14324
|
const numPoints = widthSegments * heightSegments;
|
|
14617
14325
|
const vertices = new Float32Array(Array.from({ length: 3 * numPoints }).fill(0));
|
|
14618
14326
|
const normals = new Float32Array(Array.from({ length: 3 * numPoints }).fill(0));
|
|
14619
14327
|
const indices = [];
|
|
14620
14328
|
for (let h = 0; h < heightSegments - 1; h++) {
|
|
14621
14329
|
for (let w = 0; w < widthSegments - 1; w++) {
|
|
14622
|
-
const tl
|
|
14623
|
-
const tr
|
|
14624
|
-
const bl
|
|
14625
|
-
const br
|
|
14626
|
-
indices.push(tl
|
|
14627
|
-
indices.push(bl
|
|
14330
|
+
const tl = h * widthSegments + w;
|
|
14331
|
+
const tr = tl + 1;
|
|
14332
|
+
const bl = tl + widthSegments;
|
|
14333
|
+
const br = tr + widthSegments;
|
|
14334
|
+
indices.push(tl, bl, tr);
|
|
14335
|
+
indices.push(bl, br, tr);
|
|
14628
14336
|
}
|
|
14629
14337
|
const tl = h * widthSegments + widthSegments - 1;
|
|
14630
14338
|
const tr = h * widthSegments;
|
|
@@ -14633,20 +14341,20 @@ var Superformula_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
14633
14341
|
indices.push(tl, bl, tr);
|
|
14634
14342
|
indices.push(bl, br, tr);
|
|
14635
14343
|
}
|
|
14636
|
-
geometry
|
|
14637
|
-
geometry
|
|
14638
|
-
geometry
|
|
14639
|
-
return geometry
|
|
14344
|
+
geometry.setIndex(indices);
|
|
14345
|
+
geometry.setAttribute("position", new BufferAttribute(vertices, 3));
|
|
14346
|
+
geometry.setAttribute("normal", new BufferAttribute(normals, 3));
|
|
14347
|
+
return geometry;
|
|
14640
14348
|
}
|
|
14641
14349
|
function r(theta, numArms, exp1, exp2, exp3) {
|
|
14642
14350
|
return (abs(cos(numArms * theta * .25)) ** exp2 + abs(sin(numArms * theta * .25)) ** exp3) ** (-1 / exp1);
|
|
14643
14351
|
}
|
|
14644
|
-
function updateGeometry(geometry
|
|
14352
|
+
function updateGeometry(geometry, numArmsA, expA1, expA2, expA3, numArmsB, expB1, expB2, expB3, widthSegments, heightSegments) {
|
|
14645
14353
|
const thetaStep = 2 * Math.PI / widthSegments;
|
|
14646
14354
|
const thetaStart = -Math.PI;
|
|
14647
14355
|
const phiStep = Math.PI / (heightSegments - 1);
|
|
14648
14356
|
const phiStart = -.5 * Math.PI;
|
|
14649
|
-
const positionAttribute = geometry
|
|
14357
|
+
const positionAttribute = geometry.getAttribute("position");
|
|
14650
14358
|
let i = 0;
|
|
14651
14359
|
let theta = 0;
|
|
14652
14360
|
let phi = phiStart;
|
|
@@ -14662,7 +14370,7 @@ var Superformula_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
14662
14370
|
phi += phiStep;
|
|
14663
14371
|
}
|
|
14664
14372
|
positionAttribute.needsUpdate = true;
|
|
14665
|
-
geometry
|
|
14373
|
+
geometry.computeVertexNormals();
|
|
14666
14374
|
}
|
|
14667
14375
|
watch(() => props.color, () => color.value = props.color);
|
|
14668
14376
|
watch(() => [props.widthSegments, props.heightSegments], () => {
|
|
@@ -14697,17 +14405,14 @@ var Superformula_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
14697
14405
|
};
|
|
14698
14406
|
}
|
|
14699
14407
|
});
|
|
14700
|
-
|
|
14701
|
-
//#endregion
|
|
14702
|
-
//#region src/core/shapes/Superformula.vue
|
|
14703
|
-
var Superformula_default = Superformula_vue_vue_type_script_setup_true_lang_default;
|
|
14704
|
-
|
|
14705
14408
|
//#endregion
|
|
14706
14409
|
//#region src/core/shapes/Tetrahedron.vue?vue&type=script&setup=true&lang.ts
|
|
14707
14410
|
const _hoisted_1$12 = ["rotation"];
|
|
14708
14411
|
const _hoisted_2$9 = ["args"];
|
|
14709
14412
|
const _hoisted_3$3 = ["color"];
|
|
14710
|
-
|
|
14413
|
+
//#endregion
|
|
14414
|
+
//#region src/core/shapes/Tetrahedron.vue
|
|
14415
|
+
var Tetrahedron_default = /* @__PURE__ */ defineComponent({
|
|
14711
14416
|
__name: "Tetrahedron",
|
|
14712
14417
|
props: {
|
|
14713
14418
|
args: {
|
|
@@ -14743,16 +14448,13 @@ var Tetrahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
|
|
|
14743
14448
|
};
|
|
14744
14449
|
}
|
|
14745
14450
|
});
|
|
14746
|
-
|
|
14747
|
-
//#endregion
|
|
14748
|
-
//#region src/core/shapes/Tetrahedron.vue
|
|
14749
|
-
var Tetrahedron_default = Tetrahedron_vue_vue_type_script_setup_true_lang_default;
|
|
14750
|
-
|
|
14751
14451
|
//#endregion
|
|
14752
14452
|
//#region src/core/shapes/Torus.vue?vue&type=script&setup=true&lang.ts
|
|
14753
14453
|
const _hoisted_1$11 = ["args"];
|
|
14754
14454
|
const _hoisted_2$8 = ["color"];
|
|
14755
|
-
|
|
14455
|
+
//#endregion
|
|
14456
|
+
//#region src/core/shapes/Torus.vue
|
|
14457
|
+
var Torus_default = /* @__PURE__ */ defineComponent({
|
|
14756
14458
|
__name: "Torus",
|
|
14757
14459
|
props: {
|
|
14758
14460
|
args: {
|
|
@@ -14787,16 +14489,13 @@ var Torus_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
14787
14489
|
};
|
|
14788
14490
|
}
|
|
14789
14491
|
});
|
|
14790
|
-
|
|
14791
|
-
//#endregion
|
|
14792
|
-
//#region src/core/shapes/Torus.vue
|
|
14793
|
-
var Torus_default = Torus_vue_vue_type_script_setup_true_lang_default;
|
|
14794
|
-
|
|
14795
14492
|
//#endregion
|
|
14796
14493
|
//#region src/core/shapes/TorusKnot.vue?vue&type=script&setup=true&lang.ts
|
|
14797
14494
|
const _hoisted_1$10 = ["args"];
|
|
14798
14495
|
const _hoisted_2$7 = ["color"];
|
|
14799
|
-
|
|
14496
|
+
//#endregion
|
|
14497
|
+
//#region src/core/shapes/TorusKnot.vue
|
|
14498
|
+
var TorusKnot_default = /* @__PURE__ */ defineComponent({
|
|
14800
14499
|
__name: "TorusKnot",
|
|
14801
14500
|
props: {
|
|
14802
14501
|
args: {
|
|
@@ -14831,16 +14530,13 @@ var TorusKnot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
14831
14530
|
};
|
|
14832
14531
|
}
|
|
14833
14532
|
});
|
|
14834
|
-
|
|
14835
|
-
//#endregion
|
|
14836
|
-
//#region src/core/shapes/TorusKnot.vue
|
|
14837
|
-
var TorusKnot_default = TorusKnot_vue_vue_type_script_setup_true_lang_default;
|
|
14838
|
-
|
|
14839
14533
|
//#endregion
|
|
14840
14534
|
//#region src/core/shapes/Tube.vue?vue&type=script&setup=true&lang.ts
|
|
14841
14535
|
const _hoisted_1$9 = ["args"];
|
|
14842
14536
|
const _hoisted_2$6 = ["color"];
|
|
14843
|
-
|
|
14537
|
+
//#endregion
|
|
14538
|
+
//#region src/core/shapes/Tube.vue
|
|
14539
|
+
var Tube_default = /* @__PURE__ */ defineComponent({
|
|
14844
14540
|
__name: "Tube",
|
|
14845
14541
|
props: {
|
|
14846
14542
|
args: {
|
|
@@ -14877,16 +14573,13 @@ var Tube_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCom
|
|
|
14877
14573
|
};
|
|
14878
14574
|
}
|
|
14879
14575
|
});
|
|
14880
|
-
|
|
14881
|
-
//#endregion
|
|
14882
|
-
//#region src/core/shapes/Tube.vue
|
|
14883
|
-
var Tube_default = Tube_vue_vue_type_script_setup_true_lang_default;
|
|
14884
|
-
|
|
14885
14576
|
//#endregion
|
|
14886
14577
|
//#region src/core/staging/Backdrop.vue?vue&type=script&setup=true&lang.ts
|
|
14887
14578
|
const _hoisted_1$8 = ["receive-shadow", "rotation"];
|
|
14888
14579
|
const _hoisted_2$5 = ["args"];
|
|
14889
|
-
|
|
14580
|
+
//#endregion
|
|
14581
|
+
//#region src/core/staging/Backdrop.vue
|
|
14582
|
+
var Backdrop_default = /* @__PURE__ */ defineComponent({
|
|
14890
14583
|
__name: "Backdrop",
|
|
14891
14584
|
props: {
|
|
14892
14585
|
floor: {
|
|
@@ -14914,14 +14607,14 @@ var Backdrop_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
14914
14607
|
segments,
|
|
14915
14608
|
floor,
|
|
14916
14609
|
planeRef
|
|
14917
|
-
], ([segments
|
|
14918
|
-
if (!planeRef
|
|
14610
|
+
], ([segments, floor, planeRef]) => {
|
|
14611
|
+
if (!planeRef || segments === null) return;
|
|
14919
14612
|
let i = 0;
|
|
14920
|
-
const offset = segments
|
|
14921
|
-
const position = planeRef
|
|
14922
|
-
for (let x = 0; x < segments
|
|
14613
|
+
const offset = segments / segments / 2;
|
|
14614
|
+
const position = planeRef.attributes.position;
|
|
14615
|
+
for (let x = 0; x < segments + 1; x++) for (let y = 0; y < segments + 1; y++) position.setXYZ(i++, x / segments - offset + (x === 0 ? -floor : 0), y / segments - offset, easeInExpo(x / segments));
|
|
14923
14616
|
position.needsUpdate = true;
|
|
14924
|
-
planeRef
|
|
14617
|
+
planeRef.computeVertexNormals();
|
|
14925
14618
|
});
|
|
14926
14619
|
const backdropRef = shallowRef();
|
|
14927
14620
|
__expose({ instance: backdropRef });
|
|
@@ -14952,11 +14645,6 @@ var Backdrop_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
|
|
|
14952
14645
|
};
|
|
14953
14646
|
}
|
|
14954
14647
|
});
|
|
14955
|
-
|
|
14956
|
-
//#endregion
|
|
14957
|
-
//#region src/core/staging/Backdrop.vue
|
|
14958
|
-
var Backdrop_default = Backdrop_vue_vue_type_script_setup_true_lang_default;
|
|
14959
|
-
|
|
14960
14648
|
//#endregion
|
|
14961
14649
|
//#region src/core/staging/useEnvironment/const.ts
|
|
14962
14650
|
/**
|
|
@@ -14977,7 +14665,6 @@ const environmentPresets = {
|
|
|
14977
14665
|
modern: "city/modern_buildings_2",
|
|
14978
14666
|
shangai: "city/shanghai_bund"
|
|
14979
14667
|
};
|
|
14980
|
-
|
|
14981
14668
|
//#endregion
|
|
14982
14669
|
//#region src/core/staging/useEnvironment/index.ts
|
|
14983
14670
|
const PRESET_ROOT = "https://raw.githubusercontent.com/Tresjs/assets/main/textures/hdr/";
|
|
@@ -15036,42 +14723,43 @@ async function useEnvironment(options, fbo) {
|
|
|
15036
14723
|
watch(options, () => {
|
|
15037
14724
|
invalidate();
|
|
15038
14725
|
});
|
|
15039
|
-
const texture
|
|
14726
|
+
const texture = ref(null);
|
|
15040
14727
|
const isCubeMap = computed(() => Array.isArray(files.value));
|
|
15041
14728
|
const cubeTextureLoader = new CubeTextureLoader();
|
|
15042
14729
|
const rgbeLoader = new RGBELoader();
|
|
15043
|
-
const loadTexture = async (files
|
|
14730
|
+
const loadTexture = async (files, path) => {
|
|
15044
14731
|
return new Promise((resolve, reject) => {
|
|
15045
14732
|
if (isCubeMap.value) {
|
|
15046
|
-
if (path
|
|
15047
|
-
cubeTextureLoader.load(files
|
|
15048
|
-
texture
|
|
15049
|
-
resolve(texture
|
|
14733
|
+
if (path) cubeTextureLoader.setPath(path);
|
|
14734
|
+
cubeTextureLoader.load(files, (texture) => {
|
|
14735
|
+
texture.mapping = CubeReflectionMapping;
|
|
14736
|
+
resolve(texture);
|
|
15050
14737
|
}, void 0, (error) => reject(error));
|
|
15051
14738
|
} else {
|
|
15052
|
-
if (path
|
|
15053
|
-
rgbeLoader.load(files
|
|
15054
|
-
texture
|
|
15055
|
-
resolve(texture
|
|
14739
|
+
if (path) rgbeLoader.setPath(path);
|
|
14740
|
+
rgbeLoader.load(files[0], (texture) => {
|
|
14741
|
+
texture.mapping = EquirectangularReflectionMapping;
|
|
14742
|
+
resolve(texture);
|
|
15056
14743
|
}, void 0, (error) => reject(error));
|
|
15057
14744
|
}
|
|
15058
14745
|
});
|
|
15059
14746
|
};
|
|
15060
|
-
watch([files, path], async ([files
|
|
15061
|
-
if (!files
|
|
14747
|
+
watch([files, path], async ([files, path]) => {
|
|
14748
|
+
if (!files || files.length === 0 || preset?.value) return;
|
|
15062
14749
|
try {
|
|
15063
|
-
|
|
14750
|
+
const loadedTexture = await loadTexture(isCubeMap.value ? [...unref(files)] : [unref(files)], unref(path));
|
|
14751
|
+
texture.value = loadedTexture;
|
|
15064
14752
|
} catch (error) {
|
|
15065
14753
|
throw new Error(`Failed to load environment map: ${error}`);
|
|
15066
14754
|
}
|
|
15067
14755
|
}, { immediate: true });
|
|
15068
|
-
watch(texture
|
|
14756
|
+
watch(texture, (value) => {
|
|
15069
14757
|
if (scene.value && value) scene.value.environment = value;
|
|
15070
14758
|
}, { immediate: true });
|
|
15071
|
-
watch([background, texture
|
|
14759
|
+
watch([background, texture], ([background, texture]) => {
|
|
15072
14760
|
if (scene.value) {
|
|
15073
|
-
const bTexture = fbo?.value ? fbo.value.texture : texture
|
|
15074
|
-
if (bTexture) scene.value.background = background
|
|
14761
|
+
const bTexture = fbo?.value ? fbo.value.texture : texture;
|
|
14762
|
+
if (bTexture) scene.value.background = background ? bTexture : null;
|
|
15075
14763
|
}
|
|
15076
14764
|
}, { immediate: true });
|
|
15077
14765
|
watch(() => blur?.value, (value) => {
|
|
@@ -15105,17 +14793,18 @@ async function useEnvironment(options, fbo) {
|
|
|
15105
14793
|
const _files = `${environmentPresets[value]}_${_quality}.hdr`;
|
|
15106
14794
|
try {
|
|
15107
14795
|
rgbeLoader.setPath(_path);
|
|
15108
|
-
|
|
15109
|
-
rgbeLoader.load(_files, (texture
|
|
15110
|
-
texture
|
|
15111
|
-
resolve(texture
|
|
14796
|
+
const loadedTexture = await new Promise((resolve, reject) => {
|
|
14797
|
+
rgbeLoader.load(_files, (texture) => {
|
|
14798
|
+
texture.mapping = EquirectangularReflectionMapping;
|
|
14799
|
+
resolve(texture);
|
|
15112
14800
|
}, void 0, (error) => reject(error));
|
|
15113
14801
|
});
|
|
14802
|
+
texture.value = loadedTexture;
|
|
15114
14803
|
invalidate();
|
|
15115
14804
|
} catch (error) {
|
|
15116
14805
|
throw new Error(`Failed to load environment map: ${error}`);
|
|
15117
14806
|
}
|
|
15118
|
-
if (texture
|
|
14807
|
+
if (texture.value) texture.value.mapping = EquirectangularReflectionMapping;
|
|
15119
14808
|
invalidate();
|
|
15120
14809
|
} else if (value && !(value in environmentPresets)) throw new Error(`Preset must be one of: ${Object.keys(environmentPresets).join(", ")}`);
|
|
15121
14810
|
}, { immediate: true });
|
|
@@ -15128,9 +14817,8 @@ async function useEnvironment(options, fbo) {
|
|
|
15128
14817
|
}
|
|
15129
14818
|
}
|
|
15130
14819
|
}, { immediate: true });
|
|
15131
|
-
return texture
|
|
14820
|
+
return texture;
|
|
15132
14821
|
}
|
|
15133
|
-
|
|
15134
14822
|
//#endregion
|
|
15135
14823
|
//#region src/core/staging/useEnvironment/EnvironmentScene.ts
|
|
15136
14824
|
var EnvironmentScene = class extends Object3D {
|
|
@@ -15155,11 +14843,9 @@ var EnvironmentScene = class extends Object3D {
|
|
|
15155
14843
|
this.virtualScene = null;
|
|
15156
14844
|
}
|
|
15157
14845
|
};
|
|
15158
|
-
var EnvironmentScene_default = EnvironmentScene;
|
|
15159
|
-
|
|
15160
14846
|
//#endregion
|
|
15161
|
-
//#region src/core/staging/useEnvironment/component.vue
|
|
15162
|
-
var
|
|
14847
|
+
//#region src/core/staging/useEnvironment/component.vue
|
|
14848
|
+
var component_default$4 = /* @__PURE__ */ defineComponent({
|
|
15163
14849
|
__name: "component",
|
|
15164
14850
|
props: {
|
|
15165
14851
|
background: {
|
|
@@ -15246,10 +14932,10 @@ var component_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ de
|
|
|
15246
14932
|
async setup(__props, { expose: __expose }) {
|
|
15247
14933
|
let __temp, __restore;
|
|
15248
14934
|
const props = __props;
|
|
15249
|
-
const texture
|
|
15250
|
-
__expose({ texture
|
|
15251
|
-
const { extend
|
|
15252
|
-
extend
|
|
14935
|
+
const texture = ref(null);
|
|
14936
|
+
__expose({ texture });
|
|
14937
|
+
const { extend, renderer, scene } = useTresContext();
|
|
14938
|
+
extend({ EnvironmentScene });
|
|
15253
14939
|
let slots = null;
|
|
15254
14940
|
const fbo = ref(null);
|
|
15255
14941
|
let cubeCamera = null;
|
|
@@ -15269,23 +14955,23 @@ var component_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ de
|
|
|
15269
14955
|
}
|
|
15270
14956
|
}
|
|
15271
14957
|
}, -1);
|
|
15272
|
-
watch([useEnvironmentTexture, environmentScene], ([texture
|
|
15273
|
-
if (texture
|
|
15274
|
-
const rawScene = toRaw(scene
|
|
14958
|
+
watch([useEnvironmentTexture, environmentScene], ([texture, scene]) => {
|
|
14959
|
+
if (texture && scene?.virtualScene) {
|
|
14960
|
+
const rawScene = toRaw(scene).virtualScene;
|
|
15275
14961
|
let envMesh = rawScene.children.find((child) => child instanceof Mesh && child.userData.isEnvironment);
|
|
15276
14962
|
if (!envMesh) {
|
|
15277
14963
|
envMesh = new Mesh(new BoxGeometry(1, 1, 1), new MeshBasicMaterial({ side: BackSide }));
|
|
15278
14964
|
envMesh.userData.isEnvironment = true;
|
|
15279
14965
|
rawScene.add(envMesh);
|
|
15280
14966
|
}
|
|
15281
|
-
rawScene.background = texture
|
|
14967
|
+
rawScene.background = texture;
|
|
15282
14968
|
rawScene.backgroundBlurriness = props.blur;
|
|
15283
14969
|
}
|
|
15284
14970
|
}, { immediate: true });
|
|
15285
|
-
const setTextureEnvAndBG = (fbo
|
|
15286
|
-
if (fbo
|
|
15287
|
-
scene.value.environment = fbo
|
|
15288
|
-
if (props.background) scene.value.background = fbo
|
|
14971
|
+
const setTextureEnvAndBG = (fbo) => {
|
|
14972
|
+
if (fbo && slots?.length) {
|
|
14973
|
+
scene.value.environment = fbo.texture;
|
|
14974
|
+
if (props.background) scene.value.background = fbo.texture;
|
|
15289
14975
|
} else if (useEnvironmentTexture.value) {
|
|
15290
14976
|
scene.value.environment = useEnvironmentTexture.value;
|
|
15291
14977
|
if (props.background) scene.value.background = useEnvironmentTexture.value;
|
|
@@ -15301,7 +14987,7 @@ var component_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ de
|
|
|
15301
14987
|
if (value) {
|
|
15302
14988
|
slots = value();
|
|
15303
14989
|
if (Array.isArray(slots) && slots.length > 0) {
|
|
15304
|
-
extend
|
|
14990
|
+
extend({ EnvironmentScene });
|
|
15305
14991
|
fbo.value = new WebGLCubeRenderTarget(props.resolution);
|
|
15306
14992
|
fbo.value.texture.type = HalfFloatType;
|
|
15307
14993
|
cubeCamera = new CubeCamera(props.near, props.far, fbo.value);
|
|
@@ -15316,7 +15002,7 @@ var component_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ de
|
|
|
15316
15002
|
immediate: true,
|
|
15317
15003
|
deep: true
|
|
15318
15004
|
});
|
|
15319
|
-
texture
|
|
15005
|
+
texture.value = useEnvironmentTexture.value;
|
|
15320
15006
|
onUnmounted(() => {
|
|
15321
15007
|
environmentScene.value?.dispose();
|
|
15322
15008
|
fbo.value?.dispose();
|
|
@@ -15330,11 +15016,6 @@ var component_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ de
|
|
|
15330
15016
|
};
|
|
15331
15017
|
}
|
|
15332
15018
|
});
|
|
15333
|
-
|
|
15334
|
-
//#endregion
|
|
15335
|
-
//#region src/core/staging/useEnvironment/component.vue
|
|
15336
|
-
var component_default$4 = component_vue_vue_type_script_setup_true_lang_default$1;
|
|
15337
|
-
|
|
15338
15019
|
//#endregion
|
|
15339
15020
|
//#region src/core/staging/useEnvironment/lightformer/index.vue?vue&type=script&setup=true&lang.ts
|
|
15340
15021
|
const _hoisted_1$7 = {
|
|
@@ -15360,7 +15041,9 @@ const _hoisted_4$2 = [
|
|
|
15360
15041
|
"side",
|
|
15361
15042
|
"color"
|
|
15362
15043
|
];
|
|
15363
|
-
|
|
15044
|
+
//#endregion
|
|
15045
|
+
//#region src/core/staging/useEnvironment/lightformer/index.vue
|
|
15046
|
+
var lightformer_default = /* @__PURE__ */ defineComponent({
|
|
15364
15047
|
__name: "index",
|
|
15365
15048
|
props: {
|
|
15366
15049
|
args: {
|
|
@@ -15424,15 +15107,12 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
15424
15107
|
};
|
|
15425
15108
|
}
|
|
15426
15109
|
});
|
|
15427
|
-
|
|
15428
|
-
//#endregion
|
|
15429
|
-
//#region src/core/staging/useEnvironment/lightformer/index.vue
|
|
15430
|
-
var lightformer_default = index_vue_vue_type_script_setup_true_lang_default;
|
|
15431
|
-
|
|
15432
15110
|
//#endregion
|
|
15433
15111
|
//#region src/core/staging/Ocean.vue?vue&type=script&setup=true&lang.ts
|
|
15434
15112
|
const _hoisted_1$6 = ["rotation-x", "args"];
|
|
15435
|
-
|
|
15113
|
+
//#endregion
|
|
15114
|
+
//#region src/core/staging/Ocean.vue
|
|
15115
|
+
var Ocean_default = /* @__PURE__ */ defineComponent({
|
|
15436
15116
|
__name: "Ocean",
|
|
15437
15117
|
props: {
|
|
15438
15118
|
textureWidth: {
|
|
@@ -15499,8 +15179,8 @@ var Ocean_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
15499
15179
|
setup(__props, { expose: __expose }) {
|
|
15500
15180
|
const props = __props;
|
|
15501
15181
|
const { waterNormals, sunColor, waterColor, distortionScale, size, alpha, speed } = toRefs(props);
|
|
15502
|
-
const { extend
|
|
15503
|
-
extend
|
|
15182
|
+
const { extend, scene } = useTresContext();
|
|
15183
|
+
extend({ Water });
|
|
15504
15184
|
const waterRef = shallowRef();
|
|
15505
15185
|
const sunRef = shallowRef();
|
|
15506
15186
|
const _fog = scene.value.fog !== void 0;
|
|
@@ -15565,11 +15245,6 @@ var Ocean_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
15565
15245
|
};
|
|
15566
15246
|
}
|
|
15567
15247
|
});
|
|
15568
|
-
|
|
15569
|
-
//#endregion
|
|
15570
|
-
//#region src/core/staging/Ocean.vue
|
|
15571
|
-
var Ocean_default = Ocean_vue_vue_type_script_setup_true_lang_default;
|
|
15572
|
-
|
|
15573
15248
|
//#endregion
|
|
15574
15249
|
//#region src/core/staging/Precipitation.vue?vue&type=script&setup=true&lang.ts
|
|
15575
15250
|
const _hoisted_1$5 = [
|
|
@@ -15584,7 +15259,9 @@ const _hoisted_1$5 = [
|
|
|
15584
15259
|
"size-attenuation"
|
|
15585
15260
|
];
|
|
15586
15261
|
const _hoisted_2$3 = ["position"];
|
|
15587
|
-
|
|
15262
|
+
//#endregion
|
|
15263
|
+
//#region src/core/staging/Precipitation.vue
|
|
15264
|
+
var Precipitation_default = /* @__PURE__ */ defineComponent({
|
|
15588
15265
|
__name: "Precipitation",
|
|
15589
15266
|
props: {
|
|
15590
15267
|
size: {
|
|
@@ -15666,8 +15343,8 @@ var Precipitation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
15666
15343
|
setup(__props, { expose: __expose }) {
|
|
15667
15344
|
const { size, area, color, alphaMap: alphaMapUrl, map: mapUrl, opacity, alphaTest, depthWrite, transparent, sizeAttenuation, count, speed, randomness } = toRefs(__props);
|
|
15668
15345
|
const geometryRef = shallowRef();
|
|
15669
|
-
const positionArray = shallowRef(new Float32Array());
|
|
15670
|
-
let velocityArray = new Float32Array();
|
|
15346
|
+
const positionArray = shallowRef(/* @__PURE__ */ new Float32Array());
|
|
15347
|
+
let velocityArray = /* @__PURE__ */ new Float32Array();
|
|
15671
15348
|
const setPosition = () => {
|
|
15672
15349
|
positionArray.value = new Float32Array(count.value * 3);
|
|
15673
15350
|
for (let i = 0; i < count.value; i++) {
|
|
@@ -15711,14 +15388,14 @@ var Precipitation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
15711
15388
|
const { onBeforeRender } = useLoop();
|
|
15712
15389
|
onBeforeRender(() => {
|
|
15713
15390
|
if (geometryRef.value?.attributes.position.array && geometryRef.value?.attributes.position.count) {
|
|
15714
|
-
const positionArray
|
|
15391
|
+
const positionArray = geometryRef.value.attributes.position.array;
|
|
15715
15392
|
for (let i = 0; i < geometryRef.value.attributes.position.count; i++) {
|
|
15716
15393
|
const velocityX = velocityArray[i * 2];
|
|
15717
15394
|
const velocityY = velocityArray[i * 2 + 1];
|
|
15718
|
-
positionArray
|
|
15719
|
-
positionArray
|
|
15720
|
-
if (positionArray
|
|
15721
|
-
if (positionArray
|
|
15395
|
+
positionArray[i * 3] += velocityX;
|
|
15396
|
+
positionArray[i * 3 + 1] -= velocityY;
|
|
15397
|
+
if (positionArray[i * 3] <= -area.value[0] / 2 || positionArray[i * 3] >= area.value[0] / 2) positionArray[i * 3] = positionArray[i * 3] * -1;
|
|
15398
|
+
if (positionArray[i * 3 + 1] <= -area.value[1] / 2 || positionArray[i * 3 + 1] >= area.value[1] / 2) positionArray[i * 3 + 1] = positionArray[i * 3 + 1] * -1;
|
|
15722
15399
|
}
|
|
15723
15400
|
geometryRef.value.attributes.position.needsUpdate = true;
|
|
15724
15401
|
}
|
|
@@ -15747,11 +15424,6 @@ var Precipitation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
|
|
|
15747
15424
|
};
|
|
15748
15425
|
}
|
|
15749
15426
|
});
|
|
15750
|
-
|
|
15751
|
-
//#endregion
|
|
15752
|
-
//#region src/core/staging/Precipitation.vue
|
|
15753
|
-
var Precipitation_default = Precipitation_vue_vue_type_script_setup_true_lang_default;
|
|
15754
|
-
|
|
15755
15427
|
//#endregion
|
|
15756
15428
|
//#region src/core/staging/Sky.vue?vue&type=script&setup=true&lang.ts
|
|
15757
15429
|
const _hoisted_1$4 = [
|
|
@@ -15763,7 +15435,9 @@ const _hoisted_1$4 = [
|
|
|
15763
15435
|
"material-uniforms-sunPosition-value",
|
|
15764
15436
|
"scale"
|
|
15765
15437
|
];
|
|
15766
|
-
|
|
15438
|
+
//#endregion
|
|
15439
|
+
//#region src/core/staging/Sky.vue
|
|
15440
|
+
var Sky_default = /* @__PURE__ */ defineComponent({
|
|
15767
15441
|
__name: "Sky",
|
|
15768
15442
|
props: {
|
|
15769
15443
|
turbidity: {
|
|
@@ -15832,11 +15506,6 @@ var Sky_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComp
|
|
|
15832
15506
|
};
|
|
15833
15507
|
}
|
|
15834
15508
|
});
|
|
15835
|
-
|
|
15836
|
-
//#endregion
|
|
15837
|
-
//#region src/core/staging/Sky.vue
|
|
15838
|
-
var Sky_default = Sky_vue_vue_type_script_setup_true_lang_default;
|
|
15839
|
-
|
|
15840
15509
|
//#endregion
|
|
15841
15510
|
//#region src/core/staging/Smoke.vue?vue&type=script&setup=true&lang.ts
|
|
15842
15511
|
const _hoisted_1$3 = ["scale"];
|
|
@@ -15849,7 +15518,9 @@ const _hoisted_4$1 = [
|
|
|
15849
15518
|
"color",
|
|
15850
15519
|
"opacity"
|
|
15851
15520
|
];
|
|
15852
|
-
|
|
15521
|
+
//#endregion
|
|
15522
|
+
//#region src/core/staging/Smoke.vue
|
|
15523
|
+
var Smoke_default = /* @__PURE__ */ defineComponent({
|
|
15853
15524
|
__name: "Smoke",
|
|
15854
15525
|
props: {
|
|
15855
15526
|
color: {
|
|
@@ -15904,7 +15575,7 @@ var Smoke_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
15904
15575
|
}
|
|
15905
15576
|
},
|
|
15906
15577
|
setup(__props, { expose: __expose }) {
|
|
15907
|
-
const { depth, segments, texture
|
|
15578
|
+
const { depth, segments, texture, color, depthTest, opacity, speed, spreadY, spreadX, scale } = toRefs(__props);
|
|
15908
15579
|
const smokeRef = shallowRef();
|
|
15909
15580
|
const groupRef = shallowRef();
|
|
15910
15581
|
__expose({ instance: smokeRef });
|
|
@@ -15913,7 +15584,7 @@ var Smoke_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
15913
15584
|
y: (Math.random() - .5) * spreadY.value,
|
|
15914
15585
|
scale: Math.sin((index + 1) / segments.value) * scale.value
|
|
15915
15586
|
})));
|
|
15916
|
-
const { state: map } = useTexture(texture
|
|
15587
|
+
const { state: map } = useTexture(texture.value);
|
|
15917
15588
|
const { renderer, camera } = useTresContext();
|
|
15918
15589
|
const colorSpace = computed(() => renderer.instance?.outputColorSpace);
|
|
15919
15590
|
const { onBeforeRender } = useLoop();
|
|
@@ -15960,11 +15631,6 @@ var Smoke_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
15960
15631
|
};
|
|
15961
15632
|
}
|
|
15962
15633
|
});
|
|
15963
|
-
|
|
15964
|
-
//#endregion
|
|
15965
|
-
//#region src/core/staging/Smoke.vue
|
|
15966
|
-
var Smoke_default = Smoke_vue_vue_type_script_setup_true_lang_default;
|
|
15967
|
-
|
|
15968
15634
|
//#endregion
|
|
15969
15635
|
//#region src/utils/Gradient.ts
|
|
15970
15636
|
function normalizeColorGradient(gradient) {
|
|
@@ -16017,7 +15683,6 @@ function normalizeGradient(gradient, config) {
|
|
|
16017
15683
|
} else if (isMultipleValuesWithStops(gradient)) return gradient.map(([u, v], _) => [u, normalizeValue(v)]);
|
|
16018
15684
|
return [[0, getDefaultValue()]];
|
|
16019
15685
|
}
|
|
16020
|
-
|
|
16021
15686
|
//#endregion
|
|
16022
15687
|
//#region src/core/staging/Sparkles/ShaderData.ts
|
|
16023
15688
|
var ShaderData = class {
|
|
@@ -16078,19 +15743,19 @@ var ShaderDataTexture = class {
|
|
|
16078
15743
|
this.context = canvas.getContext("2d");
|
|
16079
15744
|
}
|
|
16080
15745
|
use() {
|
|
16081
|
-
const texture
|
|
16082
|
-
const textureRef = shallowRef(texture
|
|
15746
|
+
const texture = this.build();
|
|
15747
|
+
const textureRef = shallowRef(texture);
|
|
16083
15748
|
for (const entry of this.entries) if (entry.ref) watch(entry.ref, () => {
|
|
16084
15749
|
entry.data = entry.ref?.value;
|
|
16085
15750
|
triggerRef(this.dirty);
|
|
16086
15751
|
});
|
|
16087
15752
|
watchThrottled(this.dirty, () => {
|
|
16088
|
-
this.build(texture
|
|
16089
|
-
textureRef.value = texture
|
|
15753
|
+
this.build(texture);
|
|
15754
|
+
textureRef.value = texture;
|
|
16090
15755
|
}, { throttle: 1e3 / 60 });
|
|
16091
15756
|
return {
|
|
16092
15757
|
texture: textureRef,
|
|
16093
|
-
dispose: () => texture
|
|
15758
|
+
dispose: () => texture.dispose(),
|
|
16094
15759
|
yFor: this.entries.reduce((obj, entry, i) => {
|
|
16095
15760
|
obj[entry.name] = (i + .5) / this.size;
|
|
16096
15761
|
return obj;
|
|
@@ -16105,9 +15770,9 @@ var ShaderDataTexture = class {
|
|
|
16105
15770
|
this.context.fillRect(0, i, this.size, 1);
|
|
16106
15771
|
});
|
|
16107
15772
|
if (recycledTexture) recycledTexture.source.data = this.context.getImageData(0, 0, this.size, this.size);
|
|
16108
|
-
const texture
|
|
16109
|
-
texture
|
|
16110
|
-
return texture
|
|
15773
|
+
const texture = recycledTexture ?? new DataTexture(this.context.getImageData(0, 0, this.size, this.size).data, this.size, this.size, RGBAFormat, UnsignedByteType, UVMapping, ClampToEdgeWrapping, ClampToEdgeWrapping);
|
|
15774
|
+
texture.needsUpdate = true;
|
|
15775
|
+
return texture;
|
|
16111
15776
|
}
|
|
16112
15777
|
};
|
|
16113
15778
|
function clampedMapLinear(v, minIn, maxIn, minOut, maxOut) {
|
|
@@ -16124,7 +15789,6 @@ function GradientScalarRenderToCanvasGradient(g, entry) {
|
|
|
16124
15789
|
function GradientXyzRenderToCanvasGradient(g, entry) {
|
|
16125
15790
|
return normalizeFlexibleVector3Gradient(entry.data).forEach(([offset, xyz]) => g.addColorStop(offset, `rgb(${xyz.map((v) => clampedMapLinear(v, entry.valueMin, entry.valueMax, 0, 255))})`));
|
|
16126
15791
|
}
|
|
16127
|
-
|
|
16128
15792
|
//#endregion
|
|
16129
15793
|
//#region src/core/staging/Sparkles/ShaderDataBuilder.ts
|
|
16130
15794
|
var ShaderDataBuilder = class {
|
|
@@ -16205,7 +15869,6 @@ var ShaderDataBuilderAdd = class {
|
|
|
16205
15869
|
return this.onAdd(new ShaderDataEntryXyzGradient(data, "position", min, max));
|
|
16206
15870
|
}
|
|
16207
15871
|
};
|
|
16208
|
-
|
|
16209
15872
|
//#endregion
|
|
16210
15873
|
//#region src/core/staging/Sparkles/useEmptyDataTexture.ts
|
|
16211
15874
|
let texture = null;
|
|
@@ -16218,11 +15881,12 @@ function useEmptyDataTexture() {
|
|
|
16218
15881
|
]), 1, 1);
|
|
16219
15882
|
return texture;
|
|
16220
15883
|
}
|
|
16221
|
-
|
|
16222
15884
|
//#endregion
|
|
16223
15885
|
//#region src/core/staging/Sparkles/component.vue?vue&type=script&setup=true&lang.ts
|
|
16224
15886
|
const _hoisted_1$2 = ["object"];
|
|
16225
|
-
|
|
15887
|
+
//#endregion
|
|
15888
|
+
//#region src/core/staging/Sparkles/component.vue
|
|
15889
|
+
var component_default$16 = /* @__PURE__ */ defineComponent({
|
|
16226
15890
|
__name: "component",
|
|
16227
15891
|
props: {
|
|
16228
15892
|
map: {
|
|
@@ -16398,11 +16062,11 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16398
16062
|
},
|
|
16399
16063
|
setup(__props, { expose: __expose }) {
|
|
16400
16064
|
const props = __props;
|
|
16401
|
-
const version
|
|
16065
|
+
const version = Number.parseInt(REVISION.replace(/\D+/g, ""));
|
|
16402
16066
|
const refs = toRefs(props);
|
|
16403
16067
|
const map = typeof props.map === "string" ? useEmptyDataTexture() : props.map;
|
|
16404
16068
|
const { texture: infoTexture, yFor } = new ShaderDataBuilder(256).add.GradientTresColor(refs.sequenceColor).id("sequenceColor").add.Gradient01(refs.sequenceAlpha).id("sequenceAlpha").add.Gradient01(refs.sequenceSurfaceDistance).id("sequenceSurfaceDistance").add.Gradient01(refs.sequenceSize).id("sequenceSize").add.GradientXyz(refs.sequenceOffset, -1, 1).id("sequenceOffset").add.GradientXyz(refs.sequenceNoise, 0, 1).id("sequenceNoise").build().useTexture();
|
|
16405
|
-
const
|
|
16069
|
+
const shaderMaterialParameters = {
|
|
16406
16070
|
blending: props.blending,
|
|
16407
16071
|
transparent: props.transparent,
|
|
16408
16072
|
depthWrite: props.depthWrite,
|
|
@@ -16500,9 +16164,10 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16500
16164
|
void main() {
|
|
16501
16165
|
gl_FragColor = vColor * texture2D(uMap, gl_PointCoord);
|
|
16502
16166
|
#include <tonemapping_fragment>
|
|
16503
|
-
#include <${version
|
|
16167
|
+
#include <${version >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
|
|
16504
16168
|
}`
|
|
16505
|
-
}
|
|
16169
|
+
};
|
|
16170
|
+
const mat = new ShaderMaterial(shaderMaterialParameters);
|
|
16506
16171
|
const sparkles = new Points(void 0, mat);
|
|
16507
16172
|
__expose({ instance: sparkles });
|
|
16508
16173
|
const u = mat.uniforms;
|
|
@@ -16521,8 +16186,8 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16521
16186
|
[u.uMixSurfaceDistance, refs.mixSurfaceDistance],
|
|
16522
16187
|
[u.uMixNoise, refs.mixNoise],
|
|
16523
16188
|
[u.uInfoTexture, infoTexture]
|
|
16524
|
-
].forEach(([uniform, ref
|
|
16525
|
-
uniform.value = ref
|
|
16189
|
+
].forEach(([uniform, ref]) => watch(ref, () => {
|
|
16190
|
+
uniform.value = ref.value;
|
|
16526
16191
|
}, NOW));
|
|
16527
16192
|
watch([refs.noiseScale, refs.lifetimeSec], () => {
|
|
16528
16193
|
u.uNoiseScale.value = refs.noiseScale.value * refs.lifetimeSec.value;
|
|
@@ -16532,8 +16197,8 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16532
16197
|
}, NOW);
|
|
16533
16198
|
watch(refs.map, () => {
|
|
16534
16199
|
if (typeof refs.map.value === "string") {
|
|
16535
|
-
const { state: texture
|
|
16536
|
-
mat.uniforms.uMap.value = texture
|
|
16200
|
+
const { state: texture } = useTexture(refs.map.value);
|
|
16201
|
+
mat.uniforms.uMap.value = texture;
|
|
16537
16202
|
} else mat.uniforms.uMap.value = refs.map.value;
|
|
16538
16203
|
});
|
|
16539
16204
|
const rotation = new Quaternion();
|
|
@@ -16545,7 +16210,7 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16545
16210
|
mat.uniforms.uNormal.value = normal;
|
|
16546
16211
|
mat.uniforms.uTime.value = elapsed / (props.cooldownSec + props.lifetimeSec);
|
|
16547
16212
|
});
|
|
16548
|
-
function isObject3D
|
|
16213
|
+
function isObject3D(o) {
|
|
16549
16214
|
return o && "isObject3D" in o;
|
|
16550
16215
|
}
|
|
16551
16216
|
function isBufferGeometry(o) {
|
|
@@ -16554,12 +16219,12 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16554
16219
|
onMounted(() => {
|
|
16555
16220
|
if (props.geometry) {
|
|
16556
16221
|
if (isBufferGeometry(props.geometry)) sparkles.geometry.copy(props.geometry);
|
|
16557
|
-
else if (isObject3D
|
|
16558
|
-
} else if (isObject3D
|
|
16222
|
+
else if (isObject3D(props.geometry) && "geometry" in props.geometry && isBufferGeometry(props.geometry.geometry)) sparkles.geometry.copy(props.geometry.geometry);
|
|
16223
|
+
} else if (isObject3D(sparkles.parent) && "geometry" in sparkles.parent && isBufferGeometry(sparkles.parent.geometry)) sparkles.geometry.copy(sparkles.parent.geometry);
|
|
16559
16224
|
else sparkles.geometry = new IcosahedronGeometry(1, 16);
|
|
16560
16225
|
if (typeof props.map === "string") {
|
|
16561
|
-
const { state: texture
|
|
16562
|
-
mat.uniforms.uMap.value = texture
|
|
16226
|
+
const { state: texture } = useTexture(props.map);
|
|
16227
|
+
mat.uniforms.uMap.value = texture;
|
|
16563
16228
|
}
|
|
16564
16229
|
});
|
|
16565
16230
|
onUnmounted(() => {
|
|
@@ -16572,11 +16237,40 @@ var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
|
|
|
16572
16237
|
};
|
|
16573
16238
|
}
|
|
16574
16239
|
});
|
|
16575
|
-
|
|
16576
16240
|
//#endregion
|
|
16577
|
-
//#region src/
|
|
16578
|
-
|
|
16579
|
-
|
|
16241
|
+
//#region src/utils/index.ts
|
|
16242
|
+
/**
|
|
16243
|
+
* Update the function signature to explicitly specify the type of the props parameter
|
|
16244
|
+
*
|
|
16245
|
+
* @export
|
|
16246
|
+
* @template T
|
|
16247
|
+
* @template K
|
|
16248
|
+
* @param {T} obj
|
|
16249
|
+
* @param {K[]} props
|
|
16250
|
+
* @return {*} {Pick<T, K>}
|
|
16251
|
+
*/
|
|
16252
|
+
function pick(obj, props) {
|
|
16253
|
+
const pickedProperties = {};
|
|
16254
|
+
for (const prop of props) if (Object.hasOwn(obj, prop)) pickedProperties[prop] = obj[prop];
|
|
16255
|
+
return pickedProperties;
|
|
16256
|
+
}
|
|
16257
|
+
/**
|
|
16258
|
+
* Check if the object has a setter for the given property
|
|
16259
|
+
*
|
|
16260
|
+
* @export
|
|
16261
|
+
* @param {*} obj
|
|
16262
|
+
* @param {string} prop
|
|
16263
|
+
* @return {*} {boolean}
|
|
16264
|
+
*/
|
|
16265
|
+
function hasSetter(obj, prop) {
|
|
16266
|
+
return obj[`set${prop[0].toUpperCase()}${prop.slice(1)}`] !== void 0;
|
|
16267
|
+
}
|
|
16268
|
+
function extractBindingPosition(binding) {
|
|
16269
|
+
let observer = binding.value;
|
|
16270
|
+
if (binding.value && binding.value?.value?.isMesh) observer = binding.value.value.position;
|
|
16271
|
+
if (Array.isArray(binding.value)) observer = new Vector3(...observer);
|
|
16272
|
+
return observer;
|
|
16273
|
+
}
|
|
16580
16274
|
//#endregion
|
|
16581
16275
|
//#region src/core/staging/Stage.vue?vue&type=script&setup=true&lang.ts
|
|
16582
16276
|
const _hoisted_1$1 = { key: 0 };
|
|
@@ -16592,7 +16286,9 @@ const _hoisted_3 = [
|
|
|
16592
16286
|
];
|
|
16593
16287
|
const _hoisted_4 = ["position", "intensity"];
|
|
16594
16288
|
const _hoisted_5 = ["position"];
|
|
16595
|
-
|
|
16289
|
+
//#endregion
|
|
16290
|
+
//#region src/core/staging/Stage.vue
|
|
16291
|
+
var Stage_default = /* @__PURE__ */ defineComponent({
|
|
16596
16292
|
__name: "Stage",
|
|
16597
16293
|
props: {
|
|
16598
16294
|
lighting: {
|
|
@@ -16610,7 +16306,8 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16610
16306
|
type: [
|
|
16611
16307
|
Boolean,
|
|
16612
16308
|
String,
|
|
16613
|
-
Object
|
|
16309
|
+
Object,
|
|
16310
|
+
null
|
|
16614
16311
|
],
|
|
16615
16312
|
required: false,
|
|
16616
16313
|
default: "contact"
|
|
@@ -16688,7 +16385,7 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16688
16385
|
}
|
|
16689
16386
|
};
|
|
16690
16387
|
const radius = ref(2);
|
|
16691
|
-
const
|
|
16388
|
+
const floor = ref(0);
|
|
16692
16389
|
const stageRef = shallowRef();
|
|
16693
16390
|
const boundsRef = shallowRef();
|
|
16694
16391
|
const alignRef = shallowRef();
|
|
@@ -16719,15 +16416,31 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16719
16416
|
return lightingPresetComputed.value.fill.map((v) => v * radius.value);
|
|
16720
16417
|
});
|
|
16721
16418
|
const contactShadowsComputed = computed(() => {
|
|
16722
|
-
if (props.shadows === true || props.shadows === "contact") return {
|
|
16723
|
-
else if (typeof props.shadows === "object" && props.shadows.type === "contact") return props.shadows;
|
|
16419
|
+
if (props.shadows === true || props.shadows === "contact") return {};
|
|
16420
|
+
else if (props.shadows && typeof props.shadows === "object" && props.shadows.type === "contact") return pick(props.shadows, Object.keys(ContactShadows_default.props));
|
|
16724
16421
|
else return null;
|
|
16725
16422
|
});
|
|
16726
16423
|
const accumulativeShadowsComputed = computed(() => {
|
|
16727
|
-
if (props.shadows === "accumulative") return {
|
|
16728
|
-
else if (typeof props.shadows === "object" && props.shadows.type === "accumulative") return props.shadows;
|
|
16424
|
+
if (props.shadows === "accumulative") return {};
|
|
16425
|
+
else if (props.shadows && typeof props.shadows === "object" && props.shadows.type === "accumulative") return pick(props.shadows, Object.keys(component_default.props));
|
|
16729
16426
|
else return null;
|
|
16730
16427
|
});
|
|
16428
|
+
const randomizedLightsComputed = computed(() => {
|
|
16429
|
+
const shadows = props.shadows && typeof props.shadows === "object" ? props.shadows : {};
|
|
16430
|
+
return {
|
|
16431
|
+
count: shadows.count ?? 8,
|
|
16432
|
+
radius: shadows.radius ?? radius.value,
|
|
16433
|
+
intensity: shadows.intensity ?? 1.5,
|
|
16434
|
+
ambient: shadows.ambient ?? .5,
|
|
16435
|
+
castShadow: shadows.castShadow,
|
|
16436
|
+
near: shadows.near,
|
|
16437
|
+
far: shadows.far,
|
|
16438
|
+
bias: -(shadows.bias ?? -1e-4),
|
|
16439
|
+
mapSize: shadows.mapSize ?? shadows.size ?? 1024,
|
|
16440
|
+
size: radius.value * 4,
|
|
16441
|
+
position: shadows.position ?? lightingMainComputed.value
|
|
16442
|
+
};
|
|
16443
|
+
});
|
|
16731
16444
|
const environmentComputed = computed(() => {
|
|
16732
16445
|
if (props.environment === null) return null;
|
|
16733
16446
|
else if (!props.environment) return { preset: "city" };
|
|
@@ -16736,6 +16449,7 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16736
16449
|
});
|
|
16737
16450
|
const onAlignChange = (alignProps) => {
|
|
16738
16451
|
radius.value = alignProps.boundingSphere.radius;
|
|
16452
|
+
floor.value = props.align?.disable || props.align?.disableY ? alignProps.boundingBox.min.y : alignProps.verticalAlignment - alignProps.height / 2;
|
|
16739
16453
|
if (props.adjustCamera !== false) debouncedLookAt();
|
|
16740
16454
|
};
|
|
16741
16455
|
__expose({
|
|
@@ -16754,7 +16468,7 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16754
16468
|
position: lightingMainComputed.value,
|
|
16755
16469
|
intensity: __props.intensity * 2,
|
|
16756
16470
|
castShadow: !!__props.shadows,
|
|
16757
|
-
"shadow-bias": __props.shadows?.bias ??
|
|
16471
|
+
"shadow-bias": __props.shadows?.bias ?? -1e-4,
|
|
16758
16472
|
"shadow-normalBias": __props.shadows?.normalBias ?? 0,
|
|
16759
16473
|
"shadow-mapSize-x": __props.shadows?.size ?? 1024,
|
|
16760
16474
|
"shadow-mapSize-y": __props.shadows?.size ?? 1024
|
|
@@ -16764,14 +16478,14 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16764
16478
|
intensity: __props.intensity
|
|
16765
16479
|
}, null, 8, _hoisted_4)
|
|
16766
16480
|
])) : createCommentVNode("v-if", true),
|
|
16767
|
-
createVNode(component_default$2,
|
|
16481
|
+
createVNode(component_default$2, {
|
|
16768
16482
|
ref_key: "boundsRef",
|
|
16769
16483
|
ref: boundsRef,
|
|
16770
16484
|
clip: !!__props.adjustCamera,
|
|
16771
16485
|
offset: typeof props.adjustCamera === "boolean" ? .3 : props.adjustCamera,
|
|
16772
16486
|
"use-mounted": "",
|
|
16773
16487
|
"use-resize": ""
|
|
16774
|
-
},
|
|
16488
|
+
}, {
|
|
16775
16489
|
default: withCtx(() => [createVNode(Align_default, mergeProps({
|
|
16776
16490
|
ref_key: "alignRef",
|
|
16777
16491
|
ref: alignRef
|
|
@@ -16780,10 +16494,10 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16780
16494
|
_: 3
|
|
16781
16495
|
}, 16)]),
|
|
16782
16496
|
_: 3
|
|
16783
|
-
},
|
|
16497
|
+
}, 8, ["clip", "offset"]),
|
|
16784
16498
|
createElementVNode("TresGroup", { position: [
|
|
16785
16499
|
0,
|
|
16786
|
-
|
|
16500
|
+
floor.value - (__props.shadows?.offset ?? 0),
|
|
16787
16501
|
0
|
|
16788
16502
|
] }, [
|
|
16789
16503
|
contactShadowsComputed.value ? (openBlock(), createBlock(unref(ContactShadows_default), mergeProps({
|
|
@@ -16801,25 +16515,7 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16801
16515
|
"tone-mapped": true,
|
|
16802
16516
|
scale: radius.value * 4
|
|
16803
16517
|
}, accumulativeShadowsComputed.value), {
|
|
16804
|
-
default: withCtx(() => [createVNode(unref(component_default$14),
|
|
16805
|
-
position: lightingMainComputed.value,
|
|
16806
|
-
count: accumulativeShadowsComputed.value.count ?? 8,
|
|
16807
|
-
radius: accumulativeShadowsComputed.value.radius ?? radius.value,
|
|
16808
|
-
intensity: accumulativeShadowsComputed.value.intensity ?? 1.5,
|
|
16809
|
-
ambient: accumulativeShadowsComputed.value.ambient ?? .5,
|
|
16810
|
-
size: radius.value * 4,
|
|
16811
|
-
bias: accumulativeShadowsComputed.value.bias ?? 0,
|
|
16812
|
-
"map-size": accumulativeShadowsComputed.value.size ?? 1024
|
|
16813
|
-
}, accumulativeShadowsComputed.value), null, 16, [
|
|
16814
|
-
"position",
|
|
16815
|
-
"count",
|
|
16816
|
-
"radius",
|
|
16817
|
-
"intensity",
|
|
16818
|
-
"ambient",
|
|
16819
|
-
"size",
|
|
16820
|
-
"bias",
|
|
16821
|
-
"map-size"
|
|
16822
|
-
])]),
|
|
16518
|
+
default: withCtx(() => [createVNode(unref(component_default$14), normalizeProps(guardReactiveProps(randomizedLightsComputed.value)), null, 16)]),
|
|
16823
16519
|
_: 1
|
|
16824
16520
|
}, 16, ["scale"])) : createCommentVNode("v-if", true),
|
|
16825
16521
|
(openBlock(), createBlock(Suspense, null, {
|
|
@@ -16831,11 +16527,6 @@ var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16831
16527
|
};
|
|
16832
16528
|
}
|
|
16833
16529
|
});
|
|
16834
|
-
|
|
16835
|
-
//#endregion
|
|
16836
|
-
//#region src/core/staging/Stage.vue
|
|
16837
|
-
var Stage_default = Stage_vue_vue_type_script_setup_true_lang_default;
|
|
16838
|
-
|
|
16839
16530
|
//#endregion
|
|
16840
16531
|
//#region src/core/staging/Stars.vue?vue&type=script&setup=true&lang.ts
|
|
16841
16532
|
const _hoisted_1 = ["position", "a-scale"];
|
|
@@ -16846,7 +16537,9 @@ const _hoisted_2 = [
|
|
|
16846
16537
|
"alpha-test",
|
|
16847
16538
|
"alpha-map"
|
|
16848
16539
|
];
|
|
16849
|
-
|
|
16540
|
+
//#endregion
|
|
16541
|
+
//#region src/core/staging/Stars.vue
|
|
16542
|
+
var Stars_default = /* @__PURE__ */ defineComponent({
|
|
16850
16543
|
__name: "Stars",
|
|
16851
16544
|
props: {
|
|
16852
16545
|
size: {
|
|
@@ -16900,16 +16593,16 @@ var Stars_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16900
16593
|
invalidate();
|
|
16901
16594
|
});
|
|
16902
16595
|
const setStars = () => {
|
|
16903
|
-
let circle
|
|
16596
|
+
let circle = radius.value + depth.value;
|
|
16904
16597
|
const increment = computed(() => depth.value / count.value);
|
|
16905
16598
|
const positionArray = [];
|
|
16906
16599
|
const scaleArray = Array.from({ length: count.value }, () => (.5 + .5 * Math.random()) * 4);
|
|
16907
|
-
const generateStars = (circle
|
|
16908
|
-
return new Vector3().setFromSpherical(new Spherical(circle
|
|
16600
|
+
const generateStars = (circle) => {
|
|
16601
|
+
return new Vector3().setFromSpherical(new Spherical(circle, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI)).toArray();
|
|
16909
16602
|
};
|
|
16910
16603
|
for (let i = 0; i < count.value; i++) {
|
|
16911
|
-
circle
|
|
16912
|
-
positionArray.push(...generateStars(circle
|
|
16604
|
+
circle -= increment.value * Math.random();
|
|
16605
|
+
positionArray.push(...generateStars(circle));
|
|
16913
16606
|
}
|
|
16914
16607
|
position.value = new Float32Array(positionArray);
|
|
16915
16608
|
scale.value = new Float32Array(scaleArray);
|
|
@@ -16936,45 +16629,5 @@ var Stars_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
16936
16629
|
};
|
|
16937
16630
|
}
|
|
16938
16631
|
});
|
|
16939
|
-
|
|
16940
|
-
//#endregion
|
|
16941
|
-
//#region src/core/staging/Stars.vue
|
|
16942
|
-
var Stars_default = Stars_vue_vue_type_script_setup_true_lang_default;
|
|
16943
|
-
|
|
16944
|
-
//#endregion
|
|
16945
|
-
//#region src/utils/index.ts
|
|
16946
|
-
/**
|
|
16947
|
-
* Update the function signature to explicitly specify the type of the props parameter
|
|
16948
|
-
*
|
|
16949
|
-
* @export
|
|
16950
|
-
* @template T
|
|
16951
|
-
* @template K
|
|
16952
|
-
* @param {T} obj
|
|
16953
|
-
* @param {K[]} props
|
|
16954
|
-
* @return {*} {Pick<T, K>}
|
|
16955
|
-
*/
|
|
16956
|
-
function pick(obj, props) {
|
|
16957
|
-
const pickedProperties = {};
|
|
16958
|
-
for (const prop of props) if (Object.hasOwn(obj, prop)) pickedProperties[prop] = obj[prop];
|
|
16959
|
-
return pickedProperties;
|
|
16960
|
-
}
|
|
16961
|
-
/**
|
|
16962
|
-
* Check if the object has a setter for the given property
|
|
16963
|
-
*
|
|
16964
|
-
* @export
|
|
16965
|
-
* @param {*} obj
|
|
16966
|
-
* @param {string} prop
|
|
16967
|
-
* @return {*} {boolean}
|
|
16968
|
-
*/
|
|
16969
|
-
function hasSetter(obj, prop) {
|
|
16970
|
-
return obj[`set${prop[0].toUpperCase()}${prop.slice(1)}`] !== void 0;
|
|
16971
|
-
}
|
|
16972
|
-
function extractBindingPosition(binding) {
|
|
16973
|
-
let observer = binding.value;
|
|
16974
|
-
if (binding.value && binding.value?.value?.isMesh) observer = binding.value.value.position;
|
|
16975
|
-
if (Array.isArray(binding.value)) observer = new Vector3(...observer);
|
|
16976
|
-
return observer;
|
|
16977
|
-
}
|
|
16978
|
-
|
|
16979
16632
|
//#endregion
|
|
16980
|
-
export { component_default as AccumulativeShadows, Align_default as Align, component_default$1 as AnimatedSprite, Backdrop_default as Backdrop, BakeShadows, BaseCameraControls, Billboard_default as Billboard, component_default$2 as Bounds, Box_default as Box, CameraControls_default as CameraControls, CameraShake_default as CameraShake, CatmullRomCurve3_default as CatmullRomCurve3, Circle_default as Circle, CircleShadow_default as CircleShadow, Cone_default as Cone, ContactShadows_default as ContactShadows, component_default$3 as CubeCamera, CubicBezierLine_default as CubicBezierLine, customShaderMaterial_default as CustomShaderMaterial, Cylinder_default as Cylinder, Decal_default as Decal, DecalDebugUI_default as DecalDebugUI, Dodecahedron_default as Dodecahedron, Edges_default as Edges, component_default$4 as Environment, component_default$5 as FBXModel, component_default$6 as Fbo, Fit_default as Fit, component_default$7 as GLTFModel, GlobalAudio, GradientTexture_default as GradientTexture, Grid_default as Grid, component_default$8 as Helper, holographicMaterial_default as HolographicMaterial, HTML_default as Html, INSTANCES_INJECTION_KEY, Icosahedron_default as Icosahedron, component_default$9 as Image, Instance_default as Instance, Instances_default as Instances, KeyboardControls_default as KeyboardControls, LOD_default as LOD, component_default$10 as Lensflare, Levioso_default as Levioso, lightformer_default as Lightformer, Line2_default as Line2, MERGED_INJECTION_KEY, MapControls_default as MapControls, MarchingCube_default as MarchingCube, MarchingCubes_default as MarchingCubes, MarchingPlane_default as MarchingPlane, component_default$11 as Mask, Merged_default as Merged, meshDiscardMaterial_default as MeshDiscardMaterial, meshGlassMaterial_default as MeshGlassMaterial, meshPortalMaterial_default as MeshPortalMaterial, meshReflectionMaterial_default as MeshReflectionMaterial, meshTransmissionMaterial_default as MeshTransmissionMaterial, meshWobbleMaterial_default as MeshWobbleMaterial, MouseParallax_default as MouseParallax, Ocean_default as Ocean, Octahedron_default as Octahedron, OrbitControls_default as OrbitControls, component_default$12 as Outline, Plane_default as Plane, component_default$13 as PointMaterial, PointerLockControls_default as PointerLockControls, PositionMesh, PositionalAudio_default as PositionalAudio, Precipitation_default as Precipitation, QuadraticBezierLine_default as QuadraticBezierLine, component_default$14 as RandomizedLights, Reflector_default as Reflector, Refractor_default as Refractor, Ring_default as Ring, RoundedBox_default as RoundedBox, RoundedPlane_default as RoundedPlane, component_default$15 as Sampler, ScreenQuad_default as ScreenQuad, ScreenSizer_default as ScreenSizer, ScreenSpace_default as ScreenSpace, ScrollControls_default as ScrollControls, Sky_default as Sky, Smoke_default as Smoke, SoftShadows_default as SoftShadows, component_default$16 as Sparkles, Sphere_default as Sphere, Stage_default as Stage, Stars_default as Stars, Stats, StatsGl, Superformula_default as Superformula, Tetrahedron_default as Tetrahedron, Text3D_default as Text3D, Torus_default as Torus, TorusKnot_default as TorusKnot, TransformControls_default as TransformControls, Tube_default as Tube, component_default$17 as UseSVG, component_default$18 as UseTexture, ensureTextureNames, extractBindingPosition, getTextureAspect, getTextureName, hasSetter, invalidateDecalGeometry, pick, useAnimations, useBVH, useDecalEditor, useEnvironment, useFBO, useFBX, useGLTF, useGLTFExporter, useHelper, useIntersect, useMask, useProgress, useSVG, useSurfaceSampler, useTexture, useTextures, useVideoTexture };
|
|
16633
|
+
export { component_default as AccumulativeShadows, Align_default as Align, component_default$1 as AnimatedSprite, Backdrop_default as Backdrop, BakeShadows, BaseCameraControls, Billboard_default as Billboard, component_default$2 as Bounds, Box_default as Box, CameraControls_default as CameraControls, CameraShake_default as CameraShake, CatmullRomCurve3_default as CatmullRomCurve3, Circle_default as Circle, CircleShadow_default as CircleShadow, Cone_default as Cone, ContactShadows_default as ContactShadows, component_default$3 as CubeCamera, CubicBezierLine_default as CubicBezierLine, customShaderMaterial_default as CustomShaderMaterial, Cylinder_default as Cylinder, Decal_default as Decal, DecalDebugUI_default as DecalDebugUI, Dodecahedron_default as Dodecahedron, Edges_default as Edges, component_default$4 as Environment, component_default$5 as FBXModel, component_default$6 as Fbo, Fit_default as Fit, component_default$7 as GLTFModel, GlobalAudio, GradientTexture_default as GradientTexture, Grid_default as Grid, component_default$8 as Helper, holographicMaterial_default as HolographicMaterial, HTML_default as Html, INSTANCES_INJECTION_KEY, Icosahedron_default as Icosahedron, component_default$9 as Image, Instance_default as Instance, Instances_default as Instances, KeyboardControls_default as KeyboardControls, LOD_default as LOD, component_default$10 as Lensflare, Levioso_default as Levioso, lightformer_default as Lightformer, Line2_default as Line2, MERGED_INJECTION_KEY, MapControls_default as MapControls, MarchingCube_default as MarchingCube, MarchingCubes_default as MarchingCubes, MarchingPlane_default as MarchingPlane, component_default$11 as Mask, Merged_default as Merged, meshDiscardMaterial_default as MeshDiscardMaterial, meshGlassMaterial_default as MeshGlassMaterial, meshPortalMaterial_default as MeshPortalMaterial, meshReflectionMaterial_default as MeshReflectionMaterial, meshTransmissionMaterial_default as MeshTransmissionMaterial, meshWobbleMaterial_default as MeshWobbleMaterial, MouseParallax_default as MouseParallax, Ocean_default as Ocean, Octahedron_default as Octahedron, OrbitControls_default as OrbitControls, component_default$12 as Outline, Plane_default as Plane, component_default$13 as PointMaterial, PointerLockControls_default as PointerLockControls, PositionMesh, PositionalAudio_default as PositionalAudio, Precipitation_default as Precipitation, QuadraticBezierLine_default as QuadraticBezierLine, component_default$14 as RandomizedLights, Reflector_default as Reflector, Refractor_default as Refractor, Ring_default as Ring, RoundedBox_default as RoundedBox, RoundedPlane_default as RoundedPlane, component_default$15 as Sampler, ScreenQuad_default as ScreenQuad, ScreenSizer_default as ScreenSizer, ScreenSpace_default as ScreenSpace, ScrollControls_default as ScrollControls, Sky_default as Sky, Smoke_default as Smoke, SoftShadows_default as SoftShadows, component_default$16 as Sparkles, Sphere_default as Sphere, Stage_default as Stage, Stars_default as Stars, Stats, StatsGl, Superformula_default as Superformula, Tetrahedron_default as Tetrahedron, Text3D_default as Text3D, Torus_default as Torus, TorusKnot_default as TorusKnot, TransformControls_default as TransformControls, Tube_default as Tube, component_default$17 as UseSVG, component_default$18 as UseTexture, ensureTextureNames, extractBindingPosition, getTextureAspect, getTextureName, hasSetter, invalidateDecalGeometry, pick, useAnimations, useBVH, useDecalEditor, useEnvironment, useFBO, useFBX, useGLTF, useGLTFExporter, useHelper, useIntersect, useMask, useProgress, useSVG, useSurfaceSampler, useTexture, useTextures, useVideoTexture };
|