@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.
- package/browser/SimplexNoiseGenerator.js +5 -10
- package/cjs/SimplexNoiseGenerator.js +5 -10
- package/esm/SimplexNoiseGenerator.js +5 -10
- package/package.json +3 -3
- package/report.html +2 -2
- package/tsparticles.path.simplex.noise.js +6 -8
- package/tsparticles.path.simplex.noise.min.js +1 -1
- package/tsparticles.path.simplex.noise.min.js.LICENSE.txt +1 -1
- package/types/SimplexNoiseGenerator.d.ts +1 -1
- package/umd/SimplexNoiseGenerator.js +5 -10
|
@@ -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
|
-
|
|
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]
|
|
61
|
-
this.field[x][y][z]
|
|
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] =
|
|
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
|
-
|
|
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]
|
|
64
|
-
this.field[x][y][z]
|
|
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] =
|
|
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
|
-
|
|
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]
|
|
61
|
-
this.field[x][y][z]
|
|
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] =
|
|
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
|
+
"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
|
|
108
|
-
"@tsparticles/simplex-noise": "^3.0
|
|
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 [
|
|
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":
|
|
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
|
|
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
|
|
142
|
+
if (!this.field?.[point.x]?.[point.y]?.[point.z]) {
|
|
143
143
|
return v;
|
|
144
144
|
}
|
|
145
|
-
|
|
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]
|
|
168
|
-
this.field[x][y][z]
|
|
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] =
|
|
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;
|
|
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
|
|
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:
|
|
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
|
-
|
|
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]
|
|
73
|
-
this.field[x][y][z]
|
|
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] =
|
|
80
|
+
this.field[x][y][z] = engine_1.Vector.origin;
|
|
86
81
|
}
|
|
87
82
|
}
|
|
88
83
|
}
|