@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.
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * name: @tresjs/cientos
3
- * version: v5.9.0
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?vue&type=script&setup=true&lang.ts
21
- var Align_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = shallowRef();
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$1.value) return;
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$1.value.parent,
107
- container: ref$1.value,
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$1,
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: ref$1
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/Align.vue
159
- var Align_default = Align_vue_vue_type_script_setup_true_lang_default;
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?vue&type=script&setup=true&lang.ts
234
- var CameraShake_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1) {
596
- if (!texture$1) return null;
597
- if (texture$1.name) return texture$1.name;
598
- const userDataName = texture$1.userData?.name;
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$1.image?.src;
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) if (editingMode.value === "update") commit();
761
- else cancel();
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(-MAX_HISTORY) : next;
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
- var DecalItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1) => {
1228
- if (line$1) line$1.raycast = noRaycast;
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
- var DecalEditor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = new Vector3();
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$1 = new Matrix4();
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$1.copy(hit.face.normal).transformDirection(props.parent.matrixWorld).normalize();
1461
+ tmpNormal.copy(hit.face.normal).transformDirection(props.parent.matrixWorld).normalize();
1477
1462
  orientationDummy.position.copy(hit.point);
1478
- orientationDummy.lookAt(tmpNormal$1.add(hit.point));
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$1 = lineRef.value;
1518
- if (!line$1) return;
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$1.copy(hit.face.normal).transformDirection(props.parent.matrixWorld).normalize();
1524
- tmpWorldEnd.copy(hit.point).add(tmpNormal$1);
1525
- const lineParent = line$1.parent;
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$1.copy(lineParent.matrixWorld).invert();
1528
- tmpLocalA.copy(hit.point).applyMatrix4(tmpInverse$1);
1529
- tmpLocalB.copy(tmpWorldEnd).applyMatrix4(tmpInverse$1);
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$1.geometry.attributes.position;
1535
- if (!positions) line$1.geometry.setFromPoints([tmpLocalA.clone(), tmpLocalB.clone()]);
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$1) => {
1544
- if (line$1) line$1.geometry.setFromPoints([new Vector3(), new Vector3()]);
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?vue&type=script&setup=true&lang.ts
1697
- var Decal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = new Vector3();
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$1.copy(hit.face.normal).transformDirection(m.matrixWorld).normalize();
1931
+ tmpNormal.copy(hit.face.normal).transformDirection(m.matrixWorld).normalize();
1952
1932
  tmpDummy.position.copy(hit.point);
1953
- tmpDummy.lookAt(tmpNormal$1.add(hit.point));
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
- var Handle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- watch(computed(() => session.value?.editingEntry.value ?? null), async (entry) => {
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
- var Dock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var LayerList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
3187
- var DecalDebugUI_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Edges_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
3438
- var Fit_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
3539
- var Levioso_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var component_vue_vue_type_script_setup_true_lang_default$18 = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
3734
- var component_vue_vue_type_script_setup_true_lang_default$17 = /* @__PURE__ */ defineComponent({
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 buffer = ref(new InterleavedBuffer(new Float32Array(count * 16), 16));
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?vue&type=script&setup=true&lang.ts
3913
- var component_vue_vue_type_script_setup_true_lang_default$16 = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
3997
- var ScreenSizer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var ScreenSpace_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: camera$1 }) => {
4065
- if (!outerRef.value || !camera$1.value) return;
4066
- outerRef.value.quaternion.copy(camera$1.value.quaternion);
4067
- outerRef.value.position.copy(camera$1.value.position);
4068
- if (camera$1.value instanceof PerspectiveCamera || camera$1.value instanceof OrthographicCamera) zoom.value = camera$1.value.zoom;
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
- var Instance_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Instances_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
4459
- var Merged_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var CameraControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, controls, invalidate } = useTres();
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$1({ CameraControls });
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?vue&type=script&setup=true&lang.ts
4800
- var KeyboardControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var MapControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4895
+ //#endregion
4896
+ //#region src/core/controls/MapControls.vue
4897
+ var MapControls_default = /* @__PURE__ */ defineComponent({
4997
4898
  __name: "MapControls",
4998
- props: /* @__PURE__ */ mergeDefaults({
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: extend$1 } = useTres();
5025
+ const { camera: activeCamera, renderer, extend } = useTres();
5125
5026
  const controlsRef = shallowRef(null);
5126
- extend$1({ MapControls });
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
- var OrbitControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5091
+ //#endregion
5092
+ //#region src/core/controls/OrbitControls.vue
5093
+ var OrbitControls_default = /* @__PURE__ */ defineComponent({
5196
5094
  __name: "OrbitControls",
5197
- props: /* @__PURE__ */ mergeDefaults({
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: extend$1 } = useTres();
5221
+ const { camera: activeCamera, renderer, extend } = useTres();
5324
5222
  const controlsRef = shallowRef(null);
5325
- extend$1({ OrbitControls });
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
- var PointerLockControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, controls, invalidate } = useTres();
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$1({ PointerLockControls });
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?vue&type=script&setup=true&lang.ts
5451
- var ScrollControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var TransformControls_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
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$1({ TransformControls });
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?vue&type=script&setup=true&lang.ts
5791
- var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ defineComponent({
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/Helper/component.vue
5822
- var component_default$8 = component_vue_vue_type_script_setup_true_lang_default$15;
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$1 = this.geometry.boundsTree;
5982
- if (boundsTree$1) {
5850
+ const boundsTree = this.geometry.boundsTree;
5851
+ if (boundsTree) {
5983
5852
  if (!this.layers.test(raycaster.layers)) return;
5984
- if (!(boundsTree$1 instanceof MeshBVH)) return;
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$1.raycastFirst(raycaster.ray, side, raycaster.near, raycaster.far);
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$1) => {
6063
- if (enabled$1) {
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.lights[0].shadow.mapSize.width;
5981
+ return this._mapSize;
6112
5982
  }
6113
5983
  set mapSize(n) {
6114
- for (const light of this.lights) {
6115
- light.shadow.mapSize.set(n, n);
6116
- light.shadow.map?.setSize(n, n);
6117
- }
5984
+ this._mapSize = n;
5985
+ this.configureShadows();
6118
5986
  }
6119
5987
  get size() {
6120
- return this.lights[0].shadow.camera.right;
5988
+ return this._size;
6121
5989
  }
6122
5990
  set size(n) {
6123
- for (const light of this.lights) {
6124
- light.shadow.camera.left = -n;
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.lights[0].shadow.camera.near;
5995
+ return this._near;
6132
5996
  }
6133
5997
  set near(n) {
6134
- for (const light of this.lights) light.shadow.camera.near = n;
5998
+ this._near = n;
5999
+ this.configureShadows();
6135
6000
  }
6136
6001
  get far() {
6137
- return this.lights[0].shadow.camera.far;
6002
+ return this._far;
6138
6003
  }
6139
6004
  set far(n) {
6140
- for (const light of this.lights) light.shadow.camera.far = n;
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
- var component_vue_vue_type_script_setup_true_lang_default$14 = /* @__PURE__ */ defineComponent({
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
- var component_vue_vue_type_script_setup_true_lang_default$13 = /* @__PURE__ */ defineComponent({
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
- var CircleShadow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = new Texture(canvas);
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$1.needsUpdate = true;
6591
+ texture.needsUpdate = true;
6714
6592
  }
6715
6593
  watchEffect(createCanvas);
6716
6594
  const shadowRef = shallowRef();
6717
6595
  __expose({ instance: shadowRef });
6718
- onUnmounted(() => texture$1.dispose());
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$1)
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
- var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1) {
6810
- pool$1.blurPlane.visible = true;
6811
- pool$1.blurPlane.material = pool$1.horizontalBlurMaterial;
6812
- pool$1.horizontalBlurMaterial.uniforms.tDiffuse.value = pool$1.renderTarget.texture;
6813
- pool$1.horizontalBlurMaterial.uniforms.h.value = blur / 256;
6814
- renderer.setRenderTarget(pool$1.renderTargetBlur);
6815
- renderer.render(pool$1.blurPlane, pool$1.shadowCamera);
6816
- pool$1.blurPlane.material = pool$1.verticalBlurMaterial;
6817
- pool$1.verticalBlurMaterial.uniforms.tDiffuse.value = pool$1.renderTargetBlur.texture;
6818
- pool$1.verticalBlurMaterial.uniforms.v.value = blur / 256;
6819
- renderer.setRenderTarget(pool$1.renderTarget);
6820
- renderer.render(pool$1.blurPlane, pool$1.shadowCamera);
6821
- pool$1.blurPlane.visible = false;
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$1) {
6824
- const { renderTarget, shadowCamera, depthMaterial } = pool$1;
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$1);
6834
- if (ps.smooth) blurShadow(ps.blur * .4, renderer, pool$1);
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 plane = new Mesh(planeGeometry, new MeshBasicMaterial({
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$1) {
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$1.shadowCamera;
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$1.shadowGroup.scale.set(w, ps.far, h);
6764
+ pool.shadowGroup.scale.set(w, ps.far, h);
6889
6765
  }
6890
- function setResolution(resolution, pool$1) {
6891
- pool$1.renderTarget.dispose();
6892
- pool$1.renderTargetBlur.dispose();
6893
- pool$1.renderTarget = new WebGLRenderTarget(resolution, resolution);
6894
- pool$1.renderTarget.texture.generateMipmaps = false;
6895
- pool$1.renderTargetBlur = new WebGLRenderTarget(resolution, resolution);
6896
- pool$1.renderTargetBlur.texture.generateMipmaps = false;
6897
- pool$1.plane.material.map = pool$1.renderTarget.texture;
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$1) {
6900
- pool$1.plane.material.color = new Color(ps.color ?? "black");
6901
- pool$1.depthMaterial.dispose();
6902
- pool$1.depthMaterial = new MeshDepthMaterial();
6903
- pool$1.depthMaterial.onBeforeCompile = function(shader) {
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$1 = material2.uniforms;
7119
- uniforms$1.color.value.copy(element.color);
7120
- uniforms$1.map.value = element.texture;
7121
- uniforms$1.screenPosition.value.x = positionScreen.x + vecX * element.distance;
7122
- uniforms$1.screenPosition.value.y = positionScreen.y + vecY * element.distance;
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$1 = viewport.w / viewport.z;
7125
- uniforms$1.scale.value.set(size * invAspect$1, size);
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$1, size = 1, distance = 0, color = new Color(16777215)) {
7148
- this.texture = texture$1;
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 interleavedBuffer = new InterleavedBuffer(new Float32Array([
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
- ]), 5);
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
- front,
7370
- back
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?vue&type=script&setup=true&lang.ts
7554
- var component_vue_vue_type_script_setup_true_lang_default$12 = /* @__PURE__ */ defineComponent({
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: texture$1, size, distance, color } = elementProps;
7643
- if (typeof texture$1 === "string") {
7644
- if (threeElement.texture.name !== texture$1) {
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$1;
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$1) {
7515
+ } else if (threeElement.texture !== texture) {
7651
7516
  threeElement.texture.dispose();
7652
- threeElement.texture = texture$1;
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
- var SoftShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1, props$1) {
7691
+ function injectSoftShadowsFragment(renderer, props) {
7830
7692
  let shader = originalShadowsFragment;
7831
7693
  shader = shader.replace("#ifdef USE_SHADOWMAP", `#ifdef USE_SHADOWMAP
7832
- ${getPcss(props$1)}`);
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$1.shadowMap.enabled = true;
7698
+ renderer.shadowMap.enabled = true;
7837
7699
  }
7838
- function reset(renderer$1, scene$1, camera$1) {
7839
- if (renderer$1 instanceof WebGLRenderer) {
7840
- scene$1.traverse((object) => {
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$1.properties.remove(object.material);
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$1.info.programs) renderer$1.info.programs.length = 0;
7708
+ if (renderer.info.programs) renderer.info.programs.length = 0;
7847
7709
  }
7848
- renderer$1.compile(scene$1, camera$1);
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 result = useLoader(SVGLoader, computed(() => {
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$1 of paths) {
7916
- const style = path$1.userData?.style ?? {};
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$1)) {
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$1.subPaths) {
7948
- const points = subPath.getPoints().map((v2$1) => new Vector2(v2$1.x, -v2$1.y));
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
- var component_vue_vue_type_script_setup_true_lang_default$11 = /* @__PURE__ */ defineComponent({
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
- var component_vue_vue_type_script_setup_true_lang_default$10 = /* @__PURE__ */ defineComponent({
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
- var component_vue_vue_type_script_setup_true_lang_default$9 = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
8252
- var component_vue_vue_type_script_setup_true_lang_default$8 = /* @__PURE__ */ defineComponent({
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$1, isLoading, error } = useTexture(props.path);
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$1, (value) => {
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$1),
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$1 = new VideoTexture(video);
8375
- video.addEventListener(unsuspend, () => resolve(texture$1));
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$1;
8216
+ return texture;
8378
8217
  });
8379
8218
  }
8380
8219
  try {
8381
- const texture$1 = await loadTexture();
8382
- if (start && texture$1.image) texture$1.image.play();
8383
- return texture$1;
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
- var index_vue_vue_type_script_setup_true_lang_default$8 = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
8466
- extend$1({ CustomShaderMaterial });
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
- var index_vue_vue_type_script_setup_true_lang_default$7 = /* @__PURE__ */ defineComponent({
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: extend$1 } = useTresContext();
8740
- extend$1({ HolographicMaterial: HolographicMaterialParameters_default });
8623
+ const { extend } = useTresContext();
8624
+ extend({ HolographicMaterial });
8741
8625
  __expose({
8742
8626
  root: MeshHolographicMaterialClass,
8743
- constructor: HolographicMaterialParameters_default
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/holographicMaterial/index.vue
8772
- var holographicMaterial_default = index_vue_vue_type_script_setup_true_lang_default$7;
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: extend$1 } = useTresContext();
8781
- extend$1({ MeshDiscardMaterial });
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?vue&type=script&setup=true&lang.ts
8896
- var index_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ defineComponent({
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: extend$1 } = useTresContext();
8901
- extend$1({ MeshGlassMaterial: material_default });
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?vue&type=script&setup=true&lang.ts
8961
- var index_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
8988
- extend$1({ PortalMaterialImpl });
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
- ...useTresContext(),
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
- var index_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
9777
- extend$1({ MeshReflectionMaterial });
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
- }, props, {
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
- var index_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
10304
- extend$1({ MeshTransmissionMaterial });
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
- var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
10468
- extend$1({ MeshWobbleMaterial: WobbleMaterialImpl });
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
- var component_vue_vue_type_script_setup_true_lang_default$7 = /* @__PURE__ */ defineComponent({
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 = AnimationState.NONE;
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 !== AnimationState.NONE) {
10605
- const front$1 = new Vector3().setFromMatrixColumn(this.camera.matrix, 2);
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$1, -d);
10451
+ controls.target.copy(this.camera.position).addScaledVector(front, -d);
10610
10452
  controls.update();
10611
10453
  this._stop();
10612
10454
  }
10613
- this._animationState = AnimationState.NONE;
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$1 = arg1 ? new Vector3().fromArray(normalizeVectorFlexibleParam(arg1)) : new Vector3();
10627
- const v2$1 = arg2 ? new Vector3().fromArray(normalizeVectorFlexibleParam(arg2)) : new Vector3();
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$1];
10473
+ else if (size === 2) args = [null, v1];
10632
10474
  else if (size === 3) args = [
10633
10475
  null,
10634
- v1$1,
10635
- v2$1
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$1];
10482
+ else if (size === 2) args = [v0, v1];
10641
10483
  else if (size === 3) args = [
10642
10484
  v0,
10643
- v1$1,
10644
- v2$1
10485
+ v1,
10486
+ v2
10645
10487
  ];
10646
- } else if (arg0.isBox3) if (size === 1) args = [arg0];
10647
- else args = [arg0, arg1];
10648
- else if (arg0.isObject3D) if (size === 1) args = [arg0];
10649
- else args = [arg0, arg1];
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 = AnimationState.ACTIVE;
10566
+ this._animationState = 2;
10722
10567
  this.onStart && this.onStart(this._goal);
10723
10568
  }
10724
10569
  animate(delta) {
10725
- if (this._animationState === AnimationState.NONE) return false;
10726
- if (this._animationState === AnimationState.ACTIVE) {
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 = AnimationState.NONE;
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
- var component_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ defineComponent({
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
- watch(computed(() => camera.value?.uuid), () => {
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
- useEventListener(document.getElementById(props.playTrigger ?? "") || renderer.instance.domElement, "click", () => {
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?vue&type=script&setup=true&lang.ts
10934
- var MouseParallax_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var PositionalAudio_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = shallowRef();
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$1, () => {
11117
+ watch(ref, () => {
11286
11118
  teardown();
11287
- if (ref$1.value) teardown = setup(ref$1.value);
11119
+ if (ref.value) teardown = setup(ref.value);
11288
11120
  });
11289
11121
  return {
11290
- ref: ref$1,
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") if (name === "NUMBER") {
11333
- result.push({
11334
- startFrame: value,
11335
- endFrame: value,
11336
- duration: 1
11337
- });
11338
- transition = "START_FRAME_OUT";
11339
- } else logDefinitionSyntaxError("number", name, definitionStr, startI);
11340
- else if (transition === "START_FRAME_OUT") if (name === "COMMA") transition = "START_FRAME_IN";
11341
- else if (name === "HYPHEN") transition = "END_FRAME_IN";
11342
- else if (name === "OPEN_PAREN") transition = "DURATION_IN";
11343
- else logDefinitionSyntaxError("\",\", \"-\", \"(\"", name, definitionStr, startI);
11344
- else if (transition === "END_FRAME_IN") if (name === "NUMBER") {
11345
- result[result.length - 1].endFrame = value;
11346
- transition = "END_FRAME_OUT";
11347
- } else logDefinitionSyntaxError("number", name, definitionStr, startI);
11348
- else if (transition === "END_FRAME_OUT") if (name === "COMMA") transition = "START_FRAME_IN";
11349
- else if (name === "OPEN_PAREN") transition = "DURATION_IN";
11350
- else logDefinitionSyntaxError("',' or '('", name, definitionStr, startI);
11351
- else if (transition === "DURATION_IN") if (name === "NUMBER") {
11352
- result[result.length - 1].duration = value;
11353
- transition = "DURATION_OUT";
11354
- } else logDefinitionSyntaxError("number", name, definitionStr, startI);
11355
- else if (transition === "DURATION_OUT") if (name === "CLOSE_PAREN") transition = "NEXT_OR_DONE";
11356
- else logDefinitionSyntaxError("\"(\"", name, definitionStr, startI);
11357
- else if (transition === "NEXT_OR_DONE") if (name === "COMMA") transition = "START_FRAME_IN";
11358
- else logDefinitionSyntaxError("\",\"", name, definitionStr, startI);
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)) if (result.length && result[result.length - 1].name === "NUMBER") {
11366
- result[result.length - 1].value *= 10;
11367
- result[result.length - 1].value += Number.parseInt(c);
11368
- } else result.push({
11369
- name: "NUMBER",
11370
- value: Number.parseInt(c),
11371
- startI: ii
11372
- });
11373
- else if (c === " ") continue;
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$1, atlasish]) => {
11431
- const image = texture$1.image;
11432
- return [texture$1, getAtlas(atlasish, image.width, image.height)];
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
- ${Object.keys(atlas.animations).map((n) => `* ${n}\n`).join("")}`);
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
- var component_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ defineComponent({
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$1 = Array.isArray(textureResult) ? textureResult[0] : textureResult;
11687
- texture$1.matrixAutoUpdate = false;
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$1();
11554
+ render();
11715
11555
  }
11716
11556
  if (dirtyFlag) {
11717
11557
  dirtyFlag = false;
11718
- texture$1.offset.x = frame.offsetX + (props.flipX ? frame.repeatX : 0);
11719
- texture$1.offset.y = frame.offsetY;
11720
- texture$1.repeat.x = frame.repeatX * (props.flipX ? -1 : 1);
11721
- texture$1.repeat.y = frame.repeatY;
11722
- texture$1.updateMatrix();
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$1() {
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$1();
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$1();
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$1();
11599
+ render();
11760
11600
  }
11761
11601
  });
11762
- watch(() => props.flipX, render$1);
11602
+ watch(() => props.flipX, render);
11763
11603
  watch(() => [props.center], () => {
11764
11604
  [centerX, centerY] = normalizeVectorFlexibleParam(props.center);
11765
- render$1();
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$1();
11612
+ render();
11773
11613
  }, { immediate: true });
11774
11614
  onUnmounted(() => {
11775
- texture$1.dispose();
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$1),
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$1),
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
- var component_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
11981
- var component_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ defineComponent({
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
- var GradientTexture_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1) {
12072
- const context = canvas$1.getContext("2d");
12073
- canvas$1.width = props.width;
12074
- canvas$1.height = props.height;
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$1.width / 2;
12079
- const canvasCenterY = canvas$1.height / 2;
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 = `void main() {
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 = `#include <common>
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 = `#include <common>
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
- var HTML_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: calculatePosition$1 } = toRefs(props);
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$1.value(group, cam, {
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) if (!Array.isArray(attrs.scale)) mesh.scale.setScalar(1 / attrs.scale);
12580
- else if (attrs.scale instanceof Vector3) mesh.scale.copy(attrs.scale);
12581
- else mesh.scale.set(1 / attrs.scale[0], 1 / attrs.scale[1], 1 / attrs.scale[2]);
12582
- else if (!isOrtho && !geometry.value) {
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?vue&type=script&setup=true&lang.ts
12722
- var ImageMaterial_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var component_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ defineComponent({
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$1 = shallowRef(props.texture ?? null);
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$1.value?.image;
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$1.value = props.texture;
12610
+ if (props.texture) texture.value = props.texture;
12821
12611
  else if (!isLoading.value) {
12822
- texture$1.value = state.value;
12823
- texture$1.value.colorSpace = renderer.outputColorSpace;
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$1.value,
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?vue&type=script&setup=true&lang.ts
12879
- var MarchingCube_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var MarchingCubes_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
12979
- var MarchingPlane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Refractor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
12832
+ const { extend, invalidate } = useTres();
13060
12833
  const refractorRef = shallowRef();
13061
- extend$1({ Refractor });
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
- var Reflector_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
12901
+ const { extend, invalidate } = useTres();
13132
12902
  const reflectorRef = shallowRef();
13133
- extend$1({ Reflector });
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
- var Text3D_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, invalidate } = useTres();
13000
+ const { extend, invalidate } = useTres();
13234
13001
  watch(props, () => {
13235
13002
  invalidate();
13236
13003
  });
13237
- extend$1({ TextGeometry });
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$1) => {
13250
- resolve(font$1);
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
- var Box_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Line2_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = new Line2(lineGeometry, lineMaterial);
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$1) {
13423
- material.color = normalizeColor(props$1.color);
13424
- material.linewidth = props$1.lineWidth;
13425
- material.alphaToCoverage = props$1.alphaToCoverage;
13426
- material.worldUnits = props$1.worldUnits;
13427
- material.vertexColors = Array.isArray(props$1.vertexColors);
13428
- material.dashed = props$1.dashed;
13429
- material.dashScale = props$1.dashScale;
13430
- material.dashSize = props$1.dashSize;
13431
- material.dashOffset = props$1.dashOffset;
13432
- material.gapSize = props$1.gapSize;
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$1.computeLineDistances();
13218
+ line.computeLineDistances();
13458
13219
  }
13459
13220
  updateLineMaterial(lineMaterial, props);
13460
13221
  updateLineGeometry(lineGeometry, props.points, props.vertexColors);
13461
- line$1.computeLineDistances();
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$1)
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?vue&type=script&setup=true&lang.ts
13505
- var CatmullRomCurve3_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1, curveType, tension) {
13576
- return new CatmullRomCurve3(points.map((pt) => pt instanceof Vector3 ? pt : new Vector3(...pt)), closed$1, curveType, tension);
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$1, segments) {
13579
- return curve$1.getPoints(segments);
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
- var Circle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Cone_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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/Cone.vue
13711
- var Cone_default = Cone_vue_vue_type_script_setup_true_lang_default;
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
- return new CubicBezierCurve3(startV, props.midA instanceof Vector3 ? props.midA : new Vector3(...props.midA), props.midB instanceof Vector3 ? props.midB : new Vector3(...props.midB), endV).getPoints(props.segments);
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
- var Cylinder_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Dodecahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Grid_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- extend({ GridMaterial: shaderMaterial({
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
- const ref$1 = shallowRef(new Mesh());
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$1.value.matrixWorld);
14030
- const gridMaterial = ref$1.value.material;
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$1.value.matrixWorld);
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: ref$1,
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
- var Icosahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Octahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Plane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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?vue&type=script&setup=true&lang.ts
14193
- var QuadraticBezierLine_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- return new QuadraticBezierCurve3(startV, props.mid instanceof Vector3 ? props.mid : Array.isArray(props.mid) ? new Vector3(...props.mid) : new Vector3(endV.x, startV.y, endV.z), endV).getPoints(props.segments);
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
- var Ring_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var RoundedBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1 } = useTres();
14307
- extend$1({ RoundedBoxGeometry });
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
- var RoundedPlane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1 } = useTres();
14459
- extend$1({ RoundedPlaneGeometry });
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
- var ScreenQuad_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Sphere_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Superformula_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = new BufferGeometry();
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$1 = h * widthSegments + w;
14623
- const tr$1 = tl$1 + 1;
14624
- const bl$1 = tl$1 + widthSegments;
14625
- const br$1 = tr$1 + widthSegments;
14626
- indices.push(tl$1, bl$1, tr$1);
14627
- indices.push(bl$1, br$1, tr$1);
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$1.setIndex(indices);
14637
- geometry$1.setAttribute("position", new BufferAttribute(vertices, 3));
14638
- geometry$1.setAttribute("normal", new BufferAttribute(normals, 3));
14639
- return geometry$1;
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$1, numArmsA, expA1, expA2, expA3, numArmsB, expB1, expB2, expB3, widthSegments, heightSegments) {
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$1.getAttribute("position");
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$1.computeVertexNormals();
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
- var Tetrahedron_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Torus_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var TorusKnot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Tube_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Backdrop_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1, floor$1, planeRef$1]) => {
14918
- if (!planeRef$1 || segments$1 === null) return;
14610
+ ], ([segments, floor, planeRef]) => {
14611
+ if (!planeRef || segments === null) return;
14919
14612
  let i = 0;
14920
- const offset = segments$1 / segments$1 / 2;
14921
- const position = planeRef$1.attributes.position;
14922
- for (let x = 0; x < segments$1 + 1; x++) for (let y = 0; y < segments$1 + 1; y++) position.setXYZ(i++, x / segments$1 - offset + (x === 0 ? -floor$1 : 0), y / segments$1 - offset, easeInExpo(x / segments$1));
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$1.computeVertexNormals();
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$1 = ref(null);
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$1, path$1) => {
14730
+ const loadTexture = async (files, path) => {
15044
14731
  return new Promise((resolve, reject) => {
15045
14732
  if (isCubeMap.value) {
15046
- if (path$1) cubeTextureLoader.setPath(path$1);
15047
- cubeTextureLoader.load(files$1, (texture$2) => {
15048
- texture$2.mapping = CubeReflectionMapping;
15049
- resolve(texture$2);
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$1) rgbeLoader.setPath(path$1);
15053
- rgbeLoader.load(files$1[0], (texture$2) => {
15054
- texture$2.mapping = EquirectangularReflectionMapping;
15055
- resolve(texture$2);
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$1, path$1]) => {
15061
- if (!files$1 || files$1.length === 0 || preset?.value) return;
14747
+ watch([files, path], async ([files, path]) => {
14748
+ if (!files || files.length === 0 || preset?.value) return;
15062
14749
  try {
15063
- texture$1.value = await loadTexture(isCubeMap.value ? [...unref(files$1)] : [unref(files$1)], unref(path$1));
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$1, (value) => {
14756
+ watch(texture, (value) => {
15069
14757
  if (scene.value && value) scene.value.environment = value;
15070
14758
  }, { immediate: true });
15071
- watch([background, texture$1], ([background$1, texture$2]) => {
14759
+ watch([background, texture], ([background, texture]) => {
15072
14760
  if (scene.value) {
15073
- const bTexture = fbo?.value ? fbo.value.texture : texture$2;
15074
- if (bTexture) scene.value.background = background$1 ? bTexture : null;
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
- texture$1.value = await new Promise((resolve, reject) => {
15109
- rgbeLoader.load(_files, (texture$2) => {
15110
- texture$2.mapping = EquirectangularReflectionMapping;
15111
- resolve(texture$2);
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$1.value) texture$1.value.mapping = EquirectangularReflectionMapping;
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$1;
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?vue&type=script&setup=true&lang.ts
15162
- var component_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ defineComponent({
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$1 = ref(null);
15250
- __expose({ texture: texture$1 });
15251
- const { extend: extend$1, renderer, scene } = useTresContext();
15252
- extend$1({ EnvironmentScene: EnvironmentScene_default });
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$2, scene$1]) => {
15273
- if (texture$2 && scene$1?.virtualScene) {
15274
- const rawScene = toRaw(scene$1).virtualScene;
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$2;
14967
+ rawScene.background = texture;
15282
14968
  rawScene.backgroundBlurriness = props.blur;
15283
14969
  }
15284
14970
  }, { immediate: true });
15285
- const setTextureEnvAndBG = (fbo$1) => {
15286
- if (fbo$1 && slots?.length) {
15287
- scene.value.environment = fbo$1.texture;
15288
- if (props.background) scene.value.background = fbo$1.texture;
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$1({ EnvironmentScene: EnvironmentScene_default });
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$1.value = useEnvironmentTexture.value;
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
- var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Ocean_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: extend$1, scene } = useTresContext();
15503
- extend$1({ Water });
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
- var Precipitation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = geometryRef.value.attributes.position.array;
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$1[i * 3] += velocityX;
15719
- positionArray$1[i * 3 + 1] -= velocityY;
15720
- if (positionArray$1[i * 3] <= -area.value[0] / 2 || positionArray$1[i * 3] >= area.value[0] / 2) positionArray$1[i * 3] = positionArray$1[i * 3] * -1;
15721
- if (positionArray$1[i * 3 + 1] <= -area.value[1] / 2 || positionArray$1[i * 3 + 1] >= area.value[1] / 2) positionArray$1[i * 3 + 1] = positionArray$1[i * 3 + 1] * -1;
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
- var Sky_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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
- var Smoke_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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: texture$1, color, depthTest, opacity, speed, spreadY, spreadX, scale } = toRefs(__props);
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$1.value);
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$1 = this.build();
16082
- const textureRef = shallowRef(texture$1);
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$1);
16089
- textureRef.value = texture$1;
15753
+ this.build(texture);
15754
+ textureRef.value = texture;
16090
15755
  }, { throttle: 1e3 / 60 });
16091
15756
  return {
16092
15757
  texture: textureRef,
16093
- dispose: () => texture$1.dispose(),
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$1 = recycledTexture ?? new DataTexture(this.context.getImageData(0, 0, this.size, this.size).data, this.size, this.size, RGBAFormat, UnsignedByteType, UVMapping, ClampToEdgeWrapping, ClampToEdgeWrapping);
16109
- texture$1.needsUpdate = true;
16110
- return texture$1;
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
- var component_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = Number.parseInt(REVISION.replace(/\D+/g, ""));
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 mat = new ShaderMaterial({
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$1 >= 154 ? "colorspace_fragment" : "encodings_fragment"}>
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$1]) => watch(ref$1, () => {
16525
- uniform.value = ref$1.value;
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$1 } = useTexture(refs.map.value);
16536
- mat.uniforms.uMap.value = texture$1;
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$1(o) {
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$1(props.geometry) && "geometry" in props.geometry && isBufferGeometry(props.geometry.geometry)) sparkles.geometry.copy(props.geometry.geometry);
16558
- } else if (isObject3D$1(sparkles.parent) && "geometry" in sparkles.parent && isBufferGeometry(sparkles.parent.geometry)) sparkles.geometry.copy(sparkles.parent.geometry);
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$1 } = useTexture(props.map);
16562
- mat.uniforms.uMap.value = texture$1;
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/core/staging/Sparkles/component.vue
16578
- var component_default$16 = component_vue_vue_type_script_setup_true_lang_default;
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
- var Stage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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 height = ref(0);
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 { type: "contact" };
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 { type: "accumulative" };
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 ?? 0,
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, mergeProps({
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
- }, props), {
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
- }, 16, ["clip", "offset"]),
16497
+ }, 8, ["clip", "offset"]),
16784
16498
  createElementVNode("TresGroup", { position: [
16785
16499
  0,
16786
- -height.value / 2 - (__props.shadows?.offset ?? 0) / 2,
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), mergeProps({
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
- var Stars_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
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$1 = radius.value + depth.value;
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$2) => {
16908
- return new Vector3().setFromSpherical(new Spherical(circle$2, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI)).toArray();
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$1 -= increment.value * Math.random();
16912
- positionArray.push(...generateStars(circle$1));
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 };