@tresjs/cientos 5.6.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: @tresjs/cientos
3
- * version: v5.6.0
3
+ * version: v5.7.0
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/)
@@ -1703,10 +1703,12 @@ const getSeededRandomProps = (seed = 0, seedProps = defaultSeedProps) => {
1703
1703
  * The precendence in creating the final elements' props is as follows:
1704
1704
  *
1705
1705
  * 1. `elements`
1706
- * 2. `userDefaultElement` - `color`, `distance`, `size`, `texture` from component
1706
+ * 2. `userDefaultElement` - `color`, `texture` from component
1707
1707
  * 3. seeded random props - if `seed` and/or `seedProps` is not `undefined`
1708
1708
  * 4. system default
1709
1709
  *
1710
+ * Note: `scale` and `distance` are applied as multipliers at render time, not as defaults.
1711
+ *
1710
1712
  * @param elements - `undefined` or an array of (potentially) incomplete element props
1711
1713
  * @param userDefaultElement - values to "fill in" missing partial elements fields – or overwrite seeded props
1712
1714
  * @param seed - `undefined` or a number to seed random prop generation
@@ -1729,16 +1731,6 @@ const partialLensflarePropsArrayToLensflarePropsArray = (elements, userDefaultEl
1729
1731
  const _seedProps = seedProps === void 0 || seedProps.length === 0 ? defaultSeedProps : seedProps;
1730
1732
  return getSeededRandomProps(seed ?? 0, _seedProps).map((props) => Object.assign({}, props, userDefaultElement));
1731
1733
  };
1732
- function filterLensflareElementProps(props) {
1733
- return filter(props, (v, k) => k in defaultLensflareElementProps && v !== void 0);
1734
- }
1735
- function filter(obj, predicate) {
1736
- const result = {};
1737
- Object.keys(obj).forEach((name) => {
1738
- if (predicate(obj[name], name)) result[name] = obj[name];
1739
- });
1740
- return result;
1741
- }
1742
1734
 
1743
1735
  //#endregion
1744
1736
  //#region src/core/abstractions/Lensflare/component.vue?vue&type=script&setup=true&lang.ts
@@ -1750,6 +1742,11 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1750
1742
  required: false,
1751
1743
  default: 1
1752
1744
  },
1745
+ distance: {
1746
+ type: Number,
1747
+ required: false,
1748
+ default: 1
1749
+ },
1753
1750
  elements: {
1754
1751
  type: Array,
1755
1752
  required: false,
@@ -1770,16 +1767,6 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1770
1767
  required: false,
1771
1768
  default: void 0
1772
1769
  },
1773
- distance: {
1774
- type: Number,
1775
- required: false,
1776
- default: void 0
1777
- },
1778
- size: {
1779
- type: Number,
1780
- required: false,
1781
- default: void 0
1782
- },
1783
1770
  texture: {
1784
1771
  type: [Object, String],
1785
1772
  required: false,
@@ -1788,9 +1775,17 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1788
1775
  },
1789
1776
  setup(__props, { expose: __expose }) {
1790
1777
  const props = __props;
1778
+ function pickDefined(obj) {
1779
+ const result = {};
1780
+ for (const [k, v] of Object.entries(obj)) if (v !== void 0) result[k] = v;
1781
+ return result;
1782
+ }
1791
1783
  const lensflareRef = shallowRef();
1792
1784
  const lensflareElementPropsArrayRef = shallowRef([]);
1793
- const userDefaultLensflareElementPropsRef = shallowRef(filterLensflareElementProps(props));
1785
+ const userDefaultLensflareElementPropsRef = shallowRef(pickDefined({
1786
+ color: props.color,
1787
+ texture: props.texture
1788
+ }));
1794
1789
  __expose({ instance: lensflareRef });
1795
1790
  const textureLoader = new TextureLoader();
1796
1791
  const threeLensflare = new Lensflare();
@@ -1812,10 +1807,11 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1812
1807
  p.color = normalizeColor(p.color);
1813
1808
  return p;
1814
1809
  };
1815
- const scaleThreeElements = () => {
1810
+ const applyScaleAndDistance = () => {
1816
1811
  for (let i = lensflareElementPropsArrayRef.value.length - 1; i < threeElements.length; i++) threeElements[i].size = 0;
1817
1812
  lensflareElementPropsArrayRef.value.forEach((elementProps, i) => {
1818
1813
  threeElements[i].size = elementProps.size * props.scale;
1814
+ threeElements[i].distance = elementProps.distance * props.distance;
1819
1815
  });
1820
1816
  };
1821
1817
  const updateThreeElements = () => {
@@ -1842,7 +1838,7 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1842
1838
  threeElement.distance = distance;
1843
1839
  threeElement.color = normalizeColor(color);
1844
1840
  });
1845
- scaleThreeElements();
1841
+ applyScaleAndDistance();
1846
1842
  };
1847
1843
  onUnmounted(() => {
1848
1844
  dispose();
@@ -1851,18 +1847,11 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1851
1847
  lensflareRef.value?.add(threeLensflare);
1852
1848
  lensflareElementPropsArrayRef.value = partialLensflarePropsArrayToLensflarePropsArray(props.elements, userDefaultLensflareElementPropsRef.value, props.seed, props.seedProps);
1853
1849
  });
1854
- watch(() => [
1855
- props.color,
1856
- props.distance,
1857
- props.size,
1858
- props.texture
1859
- ], () => {
1860
- userDefaultLensflareElementPropsRef.value = {
1850
+ watch(() => [props.color, props.texture], () => {
1851
+ userDefaultLensflareElementPropsRef.value = pickDefined({
1861
1852
  color: props.color,
1862
- distance: props.distance,
1863
- size: props.size,
1864
1853
  texture: props.texture
1865
- };
1854
+ });
1866
1855
  });
1867
1856
  watch(() => [
1868
1857
  userDefaultLensflareElementPropsRef.value,
@@ -1872,8 +1861,8 @@ var component_vue_vue_type_script_setup_true_lang_default$15 = /* @__PURE__ */ d
1872
1861
  ], () => {
1873
1862
  lensflareElementPropsArrayRef.value = partialLensflarePropsArrayToLensflarePropsArray(props.elements, userDefaultLensflareElementPropsRef.value, props.seed, props.seedProps);
1874
1863
  });
1875
- watch(() => props.scale, () => {
1876
- scaleThreeElements();
1864
+ watch(() => [props.scale, props.distance], () => {
1865
+ applyScaleAndDistance();
1877
1866
  });
1878
1867
  watch(() => lensflareElementPropsArrayRef.value, () => {
1879
1868
  updateThreeElements();
@@ -9987,14 +9976,15 @@ var ContactShadows_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
9987
9976
  };
9988
9977
  }
9989
9978
  function setSize(ps, pool$1) {
9990
- const shadowCamera = pool$1.shadowCamera;
9991
- shadowCamera.left = -ps.width / 2;
9992
- shadowCamera.right = ps.width / 2;
9993
- shadowCamera.top = ps.height / 2;
9994
- shadowCamera.bottom = -ps.height / 2;
9995
- shadowCamera.far = ps.far;
9996
9979
  const w = ps.width * (Array.isArray(ps.scale) ? ps.scale[0] : ps.scale || 1);
9997
9980
  const h = ps.height * (Array.isArray(ps.scale) ? ps.scale[1] : ps.scale || 1);
9981
+ const shadowCamera = pool$1.shadowCamera;
9982
+ shadowCamera.left = -w / 2;
9983
+ shadowCamera.right = w / 2;
9984
+ shadowCamera.top = h / 2;
9985
+ shadowCamera.bottom = -h / 2;
9986
+ shadowCamera.far = ps.far;
9987
+ shadowCamera.updateProjectionMatrix();
9998
9988
  pool$1.shadowGroup.scale.set(w, ps.far, h);
9999
9989
  }
10000
9990
  function setResolution(resolution, pool$1) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tresjs/cientos",
3
3
  "type": "module",
4
- "version": "5.6.0",
4
+ "version": "5.7.0",
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
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  "access": "public"
39
39
  },
40
40
  "peerDependencies": {
41
- "@tresjs/core": "5.7.0",
41
+ "@tresjs/core": "5.8.0",
42
42
  "three": ">=0.133",
43
43
  "vue": ">=3.5.17"
44
44
  },
@@ -72,8 +72,8 @@
72
72
  "vite-plugin-glsl": "^1.5.1",
73
73
  "vite-svg-loader": "^5.1.0",
74
74
  "vue-tsc": "^3.2.1",
75
- "@tresjs/core": "5.7.0",
76
- "@tresjs/eslint-config": "1.5.1"
75
+ "@tresjs/eslint-config": "1.5.1",
76
+ "@tresjs/core": "5.8.0"
77
77
  },
78
78
  "nx": {
79
79
  "implicitDependencies": [