@tsparticles/path-simplex-noise 3.0.3 → 3.1.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.
@@ -28,15 +28,10 @@ export class SimplexNoiseGenerator {
28
28
  y: Math.max(Math.floor(pos.y / this.options.size), 0),
29
29
  z: Math.max(Math.floor(pos.z / this.options.size), 0),
30
30
  }, v = Vector.origin;
31
- if (!this.field ||
32
- !this.field[point.x] ||
33
- !this.field[point.x][point.y] ||
34
- !this.field[point.x][point.y][point.z]) {
31
+ if (!this.field?.[point.x]?.[point.y]?.[point.z]) {
35
32
  return v;
36
33
  }
37
- const cell = this.field[point.x][point.y][point.z];
38
- v.length = cell[1];
39
- v.angle = cell[0];
34
+ v.setTo(this.field[point.x][point.y][point.z]);
40
35
  return v;
41
36
  }
42
37
  init(container) {
@@ -57,8 +52,8 @@ export class SimplexNoiseGenerator {
57
52
  for (let x = 0; x < options.columns; x++) {
58
53
  for (let y = 0; y < options.rows; y++) {
59
54
  for (let z = 0; z < options.layers; z++) {
60
- this.field[x][y][z][0] = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
61
- this.field[x][y][z][1] = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
55
+ this.field[x][y][z].angle = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
56
+ this.field[x][y][z].length = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
62
57
  }
63
58
  }
64
59
  }
@@ -70,7 +65,7 @@ export class SimplexNoiseGenerator {
70
65
  for (let y = 0; y < this.options.rows; y++) {
71
66
  this.field[x][y] = new Array(this.options.layers);
72
67
  for (let z = 0; z < this.options.layers; z++) {
73
- this.field[x][y][z] = [0, 0];
68
+ this.field[x][y][z] = Vector.origin;
74
69
  }
75
70
  }
76
71
  }
@@ -31,15 +31,10 @@ class SimplexNoiseGenerator {
31
31
  y: Math.max(Math.floor(pos.y / this.options.size), 0),
32
32
  z: Math.max(Math.floor(pos.z / this.options.size), 0),
33
33
  }, v = engine_1.Vector.origin;
34
- if (!this.field ||
35
- !this.field[point.x] ||
36
- !this.field[point.x][point.y] ||
37
- !this.field[point.x][point.y][point.z]) {
34
+ if (!this.field?.[point.x]?.[point.y]?.[point.z]) {
38
35
  return v;
39
36
  }
40
- const cell = this.field[point.x][point.y][point.z];
41
- v.length = cell[1];
42
- v.angle = cell[0];
37
+ v.setTo(this.field[point.x][point.y][point.z]);
43
38
  return v;
44
39
  }
45
40
  init(container) {
@@ -60,8 +55,8 @@ class SimplexNoiseGenerator {
60
55
  for (let x = 0; x < options.columns; x++) {
61
56
  for (let y = 0; y < options.rows; y++) {
62
57
  for (let z = 0; z < options.layers; z++) {
63
- this.field[x][y][z][0] = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
64
- this.field[x][y][z][1] = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
58
+ this.field[x][y][z].angle = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
59
+ this.field[x][y][z].length = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
65
60
  }
66
61
  }
67
62
  }
@@ -73,7 +68,7 @@ class SimplexNoiseGenerator {
73
68
  for (let y = 0; y < this.options.rows; y++) {
74
69
  this.field[x][y] = new Array(this.options.layers);
75
70
  for (let z = 0; z < this.options.layers; z++) {
76
- this.field[x][y][z] = [0, 0];
71
+ this.field[x][y][z] = engine_1.Vector.origin;
77
72
  }
78
73
  }
79
74
  }
@@ -28,15 +28,10 @@ export class SimplexNoiseGenerator {
28
28
  y: Math.max(Math.floor(pos.y / this.options.size), 0),
29
29
  z: Math.max(Math.floor(pos.z / this.options.size), 0),
30
30
  }, v = Vector.origin;
31
- if (!this.field ||
32
- !this.field[point.x] ||
33
- !this.field[point.x][point.y] ||
34
- !this.field[point.x][point.y][point.z]) {
31
+ if (!this.field?.[point.x]?.[point.y]?.[point.z]) {
35
32
  return v;
36
33
  }
37
- const cell = this.field[point.x][point.y][point.z];
38
- v.length = cell[1];
39
- v.angle = cell[0];
34
+ v.setTo(this.field[point.x][point.y][point.z]);
40
35
  return v;
41
36
  }
42
37
  init(container) {
@@ -57,8 +52,8 @@ export class SimplexNoiseGenerator {
57
52
  for (let x = 0; x < options.columns; x++) {
58
53
  for (let y = 0; y < options.rows; y++) {
59
54
  for (let z = 0; z < options.layers; z++) {
60
- this.field[x][y][z][0] = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
61
- this.field[x][y][z][1] = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
55
+ this.field[x][y][z].angle = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
56
+ this.field[x][y][z].length = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
62
57
  }
63
58
  }
64
59
  }
@@ -70,7 +65,7 @@ export class SimplexNoiseGenerator {
70
65
  for (let y = 0; y < this.options.rows; y++) {
71
66
  this.field[x][y] = new Array(this.options.layers);
72
67
  for (let z = 0; z < this.options.layers; z++) {
73
- this.field[x][y][z] = [0, 0];
68
+ this.field[x][y][z] = Vector.origin;
74
69
  }
75
70
  }
76
71
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/path-simplex-noise",
3
- "version": "3.0.3",
3
+ "version": "3.1.0",
4
4
  "description": "tsParticles simplex noise path",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -104,7 +104,7 @@
104
104
  "./package.json": "./package.json"
105
105
  },
106
106
  "dependencies": {
107
- "@tsparticles/engine": "^3.0.3",
108
- "@tsparticles/simplex-noise": "^3.0.3"
107
+ "@tsparticles/engine": "^3.1.0",
108
+ "@tsparticles/simplex-noise": "^3.1.0"
109
109
  }
110
110
  }
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/path-simplex-noise [26 Dec 2023 at 19:33]</title>
6
+ <title>@tsparticles/path-simplex-noise [13 Jan 2024 at 23:09]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -31,7 +31,7 @@
31
31
  <body>
32
32
  <div id="app"></div>
33
33
  <script>
34
- window.chartData = [{"label":"tsparticles.path.simplex.noise.js","isAsset":true,"statSize":3836,"parsedSize":8126,"gzipSize":2377,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":3752,"groups":[{"id":265,"label":"index.js + 1 modules (concatenated)","path":"./dist/browser/index.js + 1 modules (concatenated)","statSize":3752,"parsedSize":8126,"gzipSize":2377,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser","statSize":3752,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/index.js","statSize":283,"parsedSize":612,"gzipSize":179,"inaccurateSizes":true},{"id":null,"label":"SimplexNoiseGenerator.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/SimplexNoiseGenerator.js","statSize":3469,"parsedSize":7513,"gzipSize":2197,"inaccurateSizes":true}],"parsedSize":8126,"gzipSize":2377,"inaccurateSizes":true}]}],"parsedSize":8126,"gzipSize":2377},{"label":"engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":533,"label":"engine\",\"root\":\"window\"}","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles/engine\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0},{"label":"simplex-noise\",\"commonjs2\":\"@tsparticles/simplex-noise\",\"amd\":\"@tsparticles","path":"./simplex-noise\",\"commonjs2\":\"@tsparticles/simplex-noise\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":245,"label":"simplex-noise\",\"root\":\"window\"}","path":"./simplex-noise\",\"commonjs2\":\"@tsparticles/simplex-noise\",\"amd\":\"@tsparticles/simplex-noise\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0}],"isInitialByEntrypoint":{"tsparticles.path.simplex.noise":true}}];
34
+ window.chartData = [{"label":"tsparticles.path.simplex.noise.js","isAsset":true,"statSize":3733,"parsedSize":8043,"gzipSize":2355,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":3649,"groups":[{"id":991,"label":"index.js + 1 modules (concatenated)","path":"./dist/browser/index.js + 1 modules (concatenated)","statSize":3649,"parsedSize":8043,"gzipSize":2355,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser","statSize":3649,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/index.js","statSize":283,"parsedSize":623,"gzipSize":182,"inaccurateSizes":true},{"id":null,"label":"SimplexNoiseGenerator.js","path":"./dist/browser/index.js + 1 modules (concatenated)/dist/browser/SimplexNoiseGenerator.js","statSize":3366,"parsedSize":7419,"gzipSize":2172,"inaccurateSizes":true}],"parsedSize":8043,"gzipSize":2355,"inaccurateSizes":true}]}],"parsedSize":8043,"gzipSize":2355},{"label":"engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":533,"label":"engine\",\"root\":\"window\"}","path":"./engine\",\"commonjs2\":\"@tsparticles/engine\",\"amd\":\"@tsparticles/engine\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0},{"label":"simplex-noise\",\"commonjs2\":\"@tsparticles/simplex-noise\",\"amd\":\"@tsparticles","path":"./simplex-noise\",\"commonjs2\":\"@tsparticles/simplex-noise\",\"amd\":\"@tsparticles","statSize":42,"groups":[{"id":245,"label":"simplex-noise\",\"root\":\"window\"}","path":"./simplex-noise\",\"commonjs2\":\"@tsparticles/simplex-noise\",\"amd\":\"@tsparticles/simplex-noise\",\"root\":\"window\"}","statSize":42}],"parsedSize":0,"gzipSize":0}],"isInitialByEntrypoint":{"tsparticles.path.simplex.noise":true}}];
35
35
  window.entrypoints = ["tsparticles.path.simplex.noise","tsparticles.path.simplex.noise.min"];
36
36
  window.defaultSizes = "parsed";
37
37
  </script>
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.0.3
7
+ * v3.1.0
8
8
  */
9
9
  (function webpackUniversalModuleDefinition(root, factory) {
10
10
  if(typeof exports === 'object' && typeof module === 'object')
@@ -139,12 +139,10 @@ class SimplexNoiseGenerator {
139
139
  z: Math.max(Math.floor(pos.z / this.options.size), 0)
140
140
  },
141
141
  v = engine_root_window_.Vector.origin;
142
- if (!this.field || !this.field[point.x] || !this.field[point.x][point.y] || !this.field[point.x][point.y][point.z]) {
142
+ if (!this.field?.[point.x]?.[point.y]?.[point.z]) {
143
143
  return v;
144
144
  }
145
- const cell = this.field[point.x][point.y][point.z];
146
- v.length = cell[1];
147
- v.angle = cell[0];
145
+ v.setTo(this.field[point.x][point.y][point.z]);
148
146
  return v;
149
147
  }
150
148
  init(container) {
@@ -164,8 +162,8 @@ class SimplexNoiseGenerator {
164
162
  for (let x = 0; x < options.columns; x++) {
165
163
  for (let y = 0; y < options.rows; y++) {
166
164
  for (let z = 0; z < options.layers; z++) {
167
- this.field[x][y][z][0] = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
168
- this.field[x][y][z][1] = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
165
+ this.field[x][y][z].angle = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
166
+ this.field[x][y][z].length = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
169
167
  }
170
168
  }
171
169
  }
@@ -177,7 +175,7 @@ class SimplexNoiseGenerator {
177
175
  for (let y = 0; y < this.options.rows; y++) {
178
176
  this.field[x][y] = new Array(this.options.layers);
179
177
  for (let z = 0; z < this.options.layers; z++) {
180
- this.field[x][y][z] = [0, 0];
178
+ this.field[x][y][z] = engine_root_window_.Vector.origin;
181
179
  }
182
180
  }
183
181
  }
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see tsparticles.path.simplex.noise.min.js.LICENSE.txt */
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"),require("@tsparticles/simplex-noise"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine","@tsparticles/simplex-noise"],t);else{var i="object"==typeof exports?t(require("@tsparticles/engine"),require("@tsparticles/simplex-noise")):t(e.window,e.window);for(var s in i)("object"==typeof exports?exports:e)[s]=i[s]}}(this,((e,t)=>(()=>{"use strict";var i={533:t=>{t.exports=e},245:e=>{e.exports=t}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return i[e](n,n.exports,o),n.exports}o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{o.r(n),o.d(n,{loadSimplexNoisePath:()=>h,simplexNoisePathName:()=>r});var e=o(533),t=o(245);const i={size:20,increment:.004,columns:0,rows:0,layers:0,width:0,height:0,offset:{x:4e4,y:4e4,z:4e4}};class s{constructor(){const s=new t.SimplexNoise;this._simplex=s.noise4d,this.field=[],this.noiseW=0,this.options=(0,e.deepExtend)({},i)}generate(t){const i=t.getPosition(),s=Math.max(Math.floor(i.x/this.options.size),0),o=Math.max(Math.floor(i.y/this.options.size),0),n=Math.max(Math.floor(i.z/this.options.size),0),r=e.Vector.origin;if(!(this.field&&this.field[s]&&this.field[s][o]&&this.field[s][o][n]))return r;const h=this.field[s][o][n];return r.length=h[1],r.angle=h[0],r}init(e){this.container=e,this._setup()}reset(){}update(){this.container&&(this._calculateField(),this.noiseW+=this.options.increment)}_calculateField(){const e=this.options;for(let t=0;t<e.columns;t++)for(let i=0;i<e.rows;i++)for(let s=0;s<e.layers;s++)this.field[t][i][s][0]=this._simplex.noise(t/50,i/50,s/50,this.noiseW)*Math.PI*2,this.field[t][i][s][1]=this._simplex.noise(t/100+e.offset.x,i/100+e.offset.y,s/100+e.offset.z,this.noiseW)}_initField(){this.field=new Array(this.options.columns);for(let e=0;e<this.options.columns;e++){this.field[e]=new Array(this.options.rows);for(let t=0;t<this.options.rows;t++){this.field[e][t]=new Array(this.options.layers);for(let i=0;i<this.options.layers;i++)this.field[e][t][i]=[0,0]}}}_resetField(){const t=this.container;if(!t)return;const s=t.actualOptions.particles.move.path.options;this.options.size=s.size>0?s.size:i.size,this.options.increment=s.increment>0?s.increment:i.increment,this.options.width=t.canvas.size.width,this.options.height=t.canvas.size.height;const o=s.offset;this.options.offset.x=o?.x??i.offset.x,this.options.offset.y=o?.y??i.offset.y,this.options.offset.z=o?.z??i.offset.z,this.options.seed=s.seed??i.seed,this._simplex.seed(this.options.seed??(0,e.getRandom)()),this.options.columns=Math.floor(this.options.width/this.options.size)+1,this.options.rows=Math.floor(this.options.height/this.options.size)+1,this.options.layers=Math.floor(t.zLayers/this.options.size)+1,this._initField()}_setup(){this.noiseW=0,this._resetField(),addEventListener("resize",(()=>this._resetField()))}}const r="simplexNoise";async function h(e,t=!0){await e.addPathGenerator(r,new s,t)}})(),n})()));
2
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"),require("@tsparticles/simplex-noise"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine","@tsparticles/simplex-noise"],t);else{var i="object"==typeof exports?t(require("@tsparticles/engine"),require("@tsparticles/simplex-noise")):t(e.window,e.window);for(var s in i)("object"==typeof exports?exports:e)[s]=i[s]}}(this,((e,t)=>(()=>{"use strict";var i={533:t=>{t.exports=e},245:e=>{e.exports=t}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return i[e](n,n.exports,o),n.exports}o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{o.r(n),o.d(n,{loadSimplexNoisePath:()=>h,simplexNoisePathName:()=>r});var e=o(533),t=o(245);const i={size:20,increment:.004,columns:0,rows:0,layers:0,width:0,height:0,offset:{x:4e4,y:4e4,z:4e4}};class s{constructor(){const s=new t.SimplexNoise;this._simplex=s.noise4d,this.field=[],this.noiseW=0,this.options=(0,e.deepExtend)({},i)}generate(t){const i=t.getPosition(),s=Math.max(Math.floor(i.x/this.options.size),0),o=Math.max(Math.floor(i.y/this.options.size),0),n=Math.max(Math.floor(i.z/this.options.size),0),r=e.Vector.origin;return this.field?.[s]?.[o]?.[n]?(r.setTo(this.field[s][o][n]),r):r}init(e){this.container=e,this._setup()}reset(){}update(){this.container&&(this._calculateField(),this.noiseW+=this.options.increment)}_calculateField(){const e=this.options;for(let t=0;t<e.columns;t++)for(let i=0;i<e.rows;i++)for(let s=0;s<e.layers;s++)this.field[t][i][s].angle=this._simplex.noise(t/50,i/50,s/50,this.noiseW)*Math.PI*2,this.field[t][i][s].length=this._simplex.noise(t/100+e.offset.x,i/100+e.offset.y,s/100+e.offset.z,this.noiseW)}_initField(){this.field=new Array(this.options.columns);for(let t=0;t<this.options.columns;t++){this.field[t]=new Array(this.options.rows);for(let i=0;i<this.options.rows;i++){this.field[t][i]=new Array(this.options.layers);for(let s=0;s<this.options.layers;s++)this.field[t][i][s]=e.Vector.origin}}}_resetField(){const t=this.container;if(!t)return;const s=t.actualOptions.particles.move.path.options;this.options.size=s.size>0?s.size:i.size,this.options.increment=s.increment>0?s.increment:i.increment,this.options.width=t.canvas.size.width,this.options.height=t.canvas.size.height;const o=s.offset;this.options.offset.x=o?.x??i.offset.x,this.options.offset.y=o?.y??i.offset.y,this.options.offset.z=o?.z??i.offset.z,this.options.seed=s.seed??i.seed,this._simplex.seed(this.options.seed??(0,e.getRandom)()),this.options.columns=Math.floor(this.options.width/this.options.size)+1,this.options.rows=Math.floor(this.options.height/this.options.size)+1,this.options.layers=Math.floor(t.zLayers/this.options.size)+1,this._initField()}_setup(){this.noiseW=0,this._resetField(),addEventListener("resize",(()=>this._resetField()))}}const r="simplexNoise";async function h(e,t=!0){await e.addPathGenerator(r,new s,t)}})(),n})()));
@@ -1 +1 @@
1
- /*! tsParticles Simplex Noise Path v3.0.3 by Matteo Bruni */
1
+ /*! tsParticles Simplex Noise Path v3.1.0 by Matteo Bruni */
@@ -2,7 +2,7 @@ import { type Container, type IMovePathGenerator, type Particle, Vector } from "
2
2
  import type { ISimplexOptions } from "./ISimplexOptions.js";
3
3
  export declare class SimplexNoiseGenerator implements IMovePathGenerator {
4
4
  container?: Container;
5
- field: number[][][][];
5
+ field: Vector[][][];
6
6
  noiseW: number;
7
7
  readonly options: ISimplexOptions;
8
8
  private readonly _simplex;
@@ -40,15 +40,10 @@
40
40
  y: Math.max(Math.floor(pos.y / this.options.size), 0),
41
41
  z: Math.max(Math.floor(pos.z / this.options.size), 0),
42
42
  }, v = engine_1.Vector.origin;
43
- if (!this.field ||
44
- !this.field[point.x] ||
45
- !this.field[point.x][point.y] ||
46
- !this.field[point.x][point.y][point.z]) {
43
+ if (!this.field?.[point.x]?.[point.y]?.[point.z]) {
47
44
  return v;
48
45
  }
49
- const cell = this.field[point.x][point.y][point.z];
50
- v.length = cell[1];
51
- v.angle = cell[0];
46
+ v.setTo(this.field[point.x][point.y][point.z]);
52
47
  return v;
53
48
  }
54
49
  init(container) {
@@ -69,8 +64,8 @@
69
64
  for (let x = 0; x < options.columns; x++) {
70
65
  for (let y = 0; y < options.rows; y++) {
71
66
  for (let z = 0; z < options.layers; z++) {
72
- this.field[x][y][z][0] = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
73
- this.field[x][y][z][1] = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
67
+ this.field[x][y][z].angle = this._simplex.noise(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2;
68
+ this.field[x][y][z].length = this._simplex.noise(x / 100 + options.offset.x, y / 100 + options.offset.y, z / 100 + options.offset.z, this.noiseW);
74
69
  }
75
70
  }
76
71
  }
@@ -82,7 +77,7 @@
82
77
  for (let y = 0; y < this.options.rows; y++) {
83
78
  this.field[x][y] = new Array(this.options.layers);
84
79
  for (let z = 0; z < this.options.layers; z++) {
85
- this.field[x][y][z] = [0, 0];
80
+ this.field[x][y][z] = engine_1.Vector.origin;
86
81
  }
87
82
  }
88
83
  }