@tsparticles/path-simplex-noise 3.0.0-alpha.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/LICENSE +21 -0
- package/README.md +70 -0
- package/browser/Contribution4D.js +1 -0
- package/browser/ISimplexOptions.js +1 -0
- package/browser/SimplexNoiseGenerator.js +89 -0
- package/browser/index.js +5 -0
- package/browser/simplex.js +237 -0
- package/cjs/Contribution4D.js +2 -0
- package/cjs/ISimplexOptions.js +2 -0
- package/cjs/SimplexNoiseGenerator.js +93 -0
- package/cjs/index.js +9 -0
- package/cjs/simplex.js +242 -0
- package/esm/Contribution4D.js +1 -0
- package/esm/ISimplexOptions.js +1 -0
- package/esm/SimplexNoiseGenerator.js +89 -0
- package/esm/index.js +5 -0
- package/esm/simplex.js +237 -0
- package/package.json +92 -0
- package/report.html +39 -0
- package/tsparticles.path.simplex.noise.js +310 -0
- package/tsparticles.path.simplex.noise.min.js +2 -0
- package/tsparticles.path.simplex.noise.min.js.LICENSE.txt +8 -0
- package/types/Contribution4D.d.ts +11 -0
- package/types/ISimplexOptions.d.ts +9 -0
- package/types/SimplexNoiseGenerator.d.ts +20 -0
- package/types/index.d.ts +3 -0
- package/types/simplex.d.ts +3 -0
- package/umd/Contribution4D.js +12 -0
- package/umd/ISimplexOptions.js +12 -0
- package/umd/SimplexNoiseGenerator.js +103 -0
- package/umd/index.js +19 -0
- package/umd/simplex.js +252 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Matteo Bruni
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[](https://particles.js.org)
|
|
2
|
+
|
|
3
|
+
# tsParticles Simplex Noise Path
|
|
4
|
+
|
|
5
|
+
[](https://www.jsdelivr.com/package/npm/tsparticles-path-simplex-noise)
|
|
6
|
+
[](https://www.npmjs.com/package/tsparticles-path-simplex-noise)
|
|
7
|
+
[](https://www.npmjs.com/package/tsparticles-path-simplex-noise) [](https://github.com/sponsors/matteobruni)
|
|
8
|
+
|
|
9
|
+
[tsParticles](https://github.com/matteobruni/tsparticles) path plugin for simplex noise movement.
|
|
10
|
+
|
|
11
|
+
## How to use it
|
|
12
|
+
|
|
13
|
+
### CDN / Vanilla JS / jQuery
|
|
14
|
+
|
|
15
|
+
The CDN/Vanilla version JS has one required file in vanilla configuration:
|
|
16
|
+
|
|
17
|
+
Including the `tsparticles.path.simplex.noise.min.js` file will export the function to load the path plugin:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
loadSimplexNoisePath
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Usage
|
|
24
|
+
|
|
25
|
+
Once the scripts are loaded you can set up `tsParticles` and the path plugin like this:
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
(async () => {
|
|
29
|
+
await loadSimplexNoisePath(tsParticles);
|
|
30
|
+
|
|
31
|
+
await tsParticles.load({
|
|
32
|
+
id: "tsparticles",
|
|
33
|
+
options: {
|
|
34
|
+
/* options */
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
})();
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### ESM / CommonJS
|
|
41
|
+
|
|
42
|
+
This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this:
|
|
43
|
+
|
|
44
|
+
```shell
|
|
45
|
+
$ npm install tsparticles-path-simplex-noise
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
or
|
|
49
|
+
|
|
50
|
+
```shell
|
|
51
|
+
$ yarn add tsparticles-path-simplex-noise
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then you need to import it in the app, like this:
|
|
55
|
+
|
|
56
|
+
```javascript
|
|
57
|
+
const { tsParticles } = require("tsparticles-engine");
|
|
58
|
+
const { loadSimplexNoisePath } = require("tsparticles-path-simplex-noise");
|
|
59
|
+
|
|
60
|
+
loadSimplexNoisePath(tsParticles);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
or
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
import { tsParticles } from "tsparticles-engine";
|
|
67
|
+
import { loadSimplexNoisePath } from "tsparticles-path-simplex-noise";
|
|
68
|
+
|
|
69
|
+
loadSimplexNoisePath(tsParticles);
|
|
70
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Vector } from "@tsparticles/engine";
|
|
2
|
+
import { getRandom } from "@tsparticles/engine";
|
|
3
|
+
import { makeNoise4D } from "./simplex";
|
|
4
|
+
export class SimplexNoiseGenerator {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.field = [];
|
|
7
|
+
this.noiseFunc = makeNoise4D(getRandom());
|
|
8
|
+
this.noiseW = 0;
|
|
9
|
+
this.options = {
|
|
10
|
+
size: 20,
|
|
11
|
+
increment: 0.004,
|
|
12
|
+
columns: 0,
|
|
13
|
+
rows: 0,
|
|
14
|
+
layers: 0,
|
|
15
|
+
width: 0,
|
|
16
|
+
height: 0,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
generate(particle) {
|
|
20
|
+
const pos = particle.getPosition(), point = {
|
|
21
|
+
x: Math.max(Math.floor(pos.x / this.options.size), 0),
|
|
22
|
+
y: Math.max(Math.floor(pos.y / this.options.size), 0),
|
|
23
|
+
z: Math.max(Math.floor(pos.z / this.options.size), 0),
|
|
24
|
+
}, v = Vector.origin;
|
|
25
|
+
if (!this.field ||
|
|
26
|
+
!this.field[point.x] ||
|
|
27
|
+
!this.field[point.x][point.y] ||
|
|
28
|
+
!this.field[point.x][point.y][point.z]) {
|
|
29
|
+
return v;
|
|
30
|
+
}
|
|
31
|
+
v.length = this.field[point.x][point.y][point.z][1];
|
|
32
|
+
v.angle = this.field[point.x][point.y][point.z][0];
|
|
33
|
+
return v;
|
|
34
|
+
}
|
|
35
|
+
init(container) {
|
|
36
|
+
this.container = container;
|
|
37
|
+
this.setup(this.container);
|
|
38
|
+
}
|
|
39
|
+
reset() {
|
|
40
|
+
}
|
|
41
|
+
update() {
|
|
42
|
+
if (!this.container) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.calculateField();
|
|
46
|
+
this.noiseW += this.options.increment;
|
|
47
|
+
}
|
|
48
|
+
calculateField() {
|
|
49
|
+
for (let x = 0; x < this.options.columns; x++) {
|
|
50
|
+
for (let y = 0; y < this.options.rows; y++) {
|
|
51
|
+
for (let z = 0; z < this.options.layers; z++) {
|
|
52
|
+
const angle = this.noiseFunc(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2, length = this.noiseFunc(x / 100 + 40000, y / 100 + 40000, z / 100 + 40000, this.noiseW);
|
|
53
|
+
this.field[x][y][z][0] = angle;
|
|
54
|
+
this.field[x][y][z][1] = length;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
initField() {
|
|
60
|
+
this.field = new Array(this.options.columns);
|
|
61
|
+
for (let x = 0; x < this.options.columns; x++) {
|
|
62
|
+
this.field[x] = new Array(this.options.rows);
|
|
63
|
+
for (let y = 0; y < this.options.rows; y++) {
|
|
64
|
+
this.field[x][y] = new Array(this.options.layers);
|
|
65
|
+
for (let z = 0; z < this.options.layers; z++) {
|
|
66
|
+
this.field[x][y][z] = [0, 0];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
resetField(container) {
|
|
72
|
+
var _a;
|
|
73
|
+
const sourceOptions = container.actualOptions.particles.move.path.options;
|
|
74
|
+
this.options.size = sourceOptions.size > 0 ? sourceOptions.size : 20;
|
|
75
|
+
this.options.increment = sourceOptions.increment > 0 ? sourceOptions.increment : 0.004;
|
|
76
|
+
this.options.width = container.canvas.size.width;
|
|
77
|
+
this.options.height = container.canvas.size.height;
|
|
78
|
+
this.noiseFunc = makeNoise4D((_a = sourceOptions.seed) !== null && _a !== void 0 ? _a : getRandom());
|
|
79
|
+
this.options.columns = Math.floor(this.options.width / this.options.size) + 1;
|
|
80
|
+
this.options.rows = Math.floor(this.options.height / this.options.size) + 1;
|
|
81
|
+
this.options.layers = Math.floor(container.zLayers / this.options.size) + 1;
|
|
82
|
+
this.initField();
|
|
83
|
+
}
|
|
84
|
+
setup(container) {
|
|
85
|
+
this.noiseW = 0;
|
|
86
|
+
this.resetField(container);
|
|
87
|
+
addEventListener("resize", () => this.resetField(container));
|
|
88
|
+
}
|
|
89
|
+
}
|
package/browser/index.js
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
export default function shuffleSeed(seed) {
|
|
2
|
+
const newSeed = new Uint32Array(1);
|
|
3
|
+
newSeed[0] = seed[0] * 1664525 + 1013904223;
|
|
4
|
+
return newSeed;
|
|
5
|
+
}
|
|
6
|
+
const NORM_4D = 1.0 / 30.0;
|
|
7
|
+
const SQUISH_4D = (Math.sqrt(4 + 1) - 1) / 4;
|
|
8
|
+
const STRETCH_4D = (1 / Math.sqrt(4 + 1) - 1) / 4;
|
|
9
|
+
function contribution4D(multiplier, xsb, ysb, zsb, wsb) {
|
|
10
|
+
return {
|
|
11
|
+
dx: -xsb - multiplier * SQUISH_4D,
|
|
12
|
+
dy: -ysb - multiplier * SQUISH_4D,
|
|
13
|
+
dz: -zsb - multiplier * SQUISH_4D,
|
|
14
|
+
dw: -wsb - multiplier * SQUISH_4D,
|
|
15
|
+
xsb,
|
|
16
|
+
ysb,
|
|
17
|
+
zsb,
|
|
18
|
+
wsb,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function makeNoise4D(clientSeed) {
|
|
22
|
+
const contributions = [];
|
|
23
|
+
for (let i = 0; i < p4D.length; i += 16) {
|
|
24
|
+
const baseSet = base4D[p4D[i]];
|
|
25
|
+
let previous = null;
|
|
26
|
+
let current = null;
|
|
27
|
+
for (let k = 0; k < baseSet.length; k += 5) {
|
|
28
|
+
current = contribution4D(baseSet[k], baseSet[k + 1], baseSet[k + 2], baseSet[k + 3], baseSet[k + 4]);
|
|
29
|
+
if (previous === null) {
|
|
30
|
+
contributions[i / 16] = current;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
previous.next = current;
|
|
34
|
+
}
|
|
35
|
+
previous = current;
|
|
36
|
+
}
|
|
37
|
+
if (current) {
|
|
38
|
+
current.next = contribution4D(p4D[i + 1], p4D[i + 2], p4D[i + 3], p4D[i + 4], p4D[i + 5]);
|
|
39
|
+
current.next.next = contribution4D(p4D[i + 6], p4D[i + 7], p4D[i + 8], p4D[i + 9], p4D[i + 10]);
|
|
40
|
+
current.next.next.next = contribution4D(p4D[i + 11], p4D[i + 12], p4D[i + 13], p4D[i + 14], p4D[i + 15]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const lookup = [];
|
|
44
|
+
for (let i = 0; i < lookupPairs4D.length; i += 2) {
|
|
45
|
+
lookup[lookupPairs4D[i]] = contributions[lookupPairs4D[i + 1]];
|
|
46
|
+
}
|
|
47
|
+
const perm = new Uint8Array(256);
|
|
48
|
+
const perm4D = new Uint8Array(256);
|
|
49
|
+
const source = new Uint8Array(256);
|
|
50
|
+
for (let i = 0; i < 256; i++)
|
|
51
|
+
source[i] = i;
|
|
52
|
+
let seed = new Uint32Array(1);
|
|
53
|
+
seed[0] = clientSeed;
|
|
54
|
+
seed = shuffleSeed(shuffleSeed(shuffleSeed(seed)));
|
|
55
|
+
for (let i = 255; i >= 0; i--) {
|
|
56
|
+
seed = shuffleSeed(seed);
|
|
57
|
+
const r = new Uint32Array(1);
|
|
58
|
+
r[0] = (seed[0] + 31) % (i + 1);
|
|
59
|
+
if (r[0] < 0)
|
|
60
|
+
r[0] += i + 1;
|
|
61
|
+
perm[i] = source[r[0]];
|
|
62
|
+
perm4D[i] = perm[i] & 0xfc;
|
|
63
|
+
source[r[0]] = source[i];
|
|
64
|
+
}
|
|
65
|
+
return (x, y, z, w) => {
|
|
66
|
+
const stretchOffset = (x + y + z + w) * STRETCH_4D;
|
|
67
|
+
const xs = x + stretchOffset;
|
|
68
|
+
const ys = y + stretchOffset;
|
|
69
|
+
const zs = z + stretchOffset;
|
|
70
|
+
const ws = w + stretchOffset;
|
|
71
|
+
const xsb = Math.floor(xs);
|
|
72
|
+
const ysb = Math.floor(ys);
|
|
73
|
+
const zsb = Math.floor(zs);
|
|
74
|
+
const wsb = Math.floor(ws);
|
|
75
|
+
const squishOffset = (xsb + ysb + zsb + wsb) * SQUISH_4D;
|
|
76
|
+
const dx0 = x - (xsb + squishOffset);
|
|
77
|
+
const dy0 = y - (ysb + squishOffset);
|
|
78
|
+
const dz0 = z - (zsb + squishOffset);
|
|
79
|
+
const dw0 = w - (wsb + squishOffset);
|
|
80
|
+
const xins = xs - xsb;
|
|
81
|
+
const yins = ys - ysb;
|
|
82
|
+
const zins = zs - zsb;
|
|
83
|
+
const wins = ws - wsb;
|
|
84
|
+
const inSum = xins + yins + zins + wins;
|
|
85
|
+
const hash = (zins - wins + 1) |
|
|
86
|
+
((yins - zins + 1) << 1) |
|
|
87
|
+
((yins - wins + 1) << 2) |
|
|
88
|
+
((xins - yins + 1) << 3) |
|
|
89
|
+
((xins - zins + 1) << 4) |
|
|
90
|
+
((xins - wins + 1) << 5) |
|
|
91
|
+
(inSum << 6) |
|
|
92
|
+
((inSum + wins) << 8) |
|
|
93
|
+
((inSum + zins) << 11) |
|
|
94
|
+
((inSum + yins) << 14) |
|
|
95
|
+
((inSum + xins) << 17);
|
|
96
|
+
let value = 0;
|
|
97
|
+
for (let c = lookup[hash]; c !== undefined; c = c.next) {
|
|
98
|
+
const dx = dx0 + c.dx;
|
|
99
|
+
const dy = dy0 + c.dy;
|
|
100
|
+
const dz = dz0 + c.dz;
|
|
101
|
+
const dw = dw0 + c.dw;
|
|
102
|
+
const attn = 2 - dx * dx - dy * dy - dz * dz - dw * dw;
|
|
103
|
+
if (attn > 0) {
|
|
104
|
+
const px = xsb + c.xsb;
|
|
105
|
+
const py = ysb + c.ysb;
|
|
106
|
+
const pz = zsb + c.zsb;
|
|
107
|
+
const pw = wsb + c.wsb;
|
|
108
|
+
const indexPartA = perm[px & 0xff];
|
|
109
|
+
const indexPartB = perm[(indexPartA + py) & 0xff];
|
|
110
|
+
const indexPartC = perm[(indexPartB + pz) & 0xff];
|
|
111
|
+
const index = perm4D[(indexPartC + pw) & 0xff];
|
|
112
|
+
const valuePart = gradients4D[index] * dx +
|
|
113
|
+
gradients4D[index + 1] * dy +
|
|
114
|
+
gradients4D[index + 2] * dz +
|
|
115
|
+
gradients4D[index + 3] * dw;
|
|
116
|
+
value += attn * attn * attn * attn * valuePart;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return value * NORM_4D;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const base4D = [
|
|
123
|
+
[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1],
|
|
124
|
+
[3, 1, 1, 1, 0, 3, 1, 1, 0, 1, 3, 1, 0, 1, 1, 3, 0, 1, 1, 1, 4, 1, 1, 1, 1],
|
|
125
|
+
[
|
|
126
|
+
1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 2, 1, 1, 0, 0, 2, 1, 0, 1, 0, 2, 1, 0, 0, 1, 2, 0,
|
|
127
|
+
1, 1, 0, 2, 0, 1, 0, 1, 2, 0, 0, 1, 1,
|
|
128
|
+
],
|
|
129
|
+
[
|
|
130
|
+
3, 1, 1, 1, 0, 3, 1, 1, 0, 1, 3, 1, 0, 1, 1, 3, 0, 1, 1, 1, 2, 1, 1, 0, 0, 2, 1, 0, 1, 0, 2, 1, 0, 0, 1, 2, 0,
|
|
131
|
+
1, 1, 0, 2, 0, 1, 0, 1, 2, 0, 0, 1, 1,
|
|
132
|
+
],
|
|
133
|
+
];
|
|
134
|
+
const gradients4D = [
|
|
135
|
+
3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 1, 1, 1, 1, 3, -3, 1, 1, 1, -1, 3, 1, 1, -1, 1, 3, 1, -1, 1, 1, 3, 3, -1, 1, 1, 1,
|
|
136
|
+
-3, 1, 1, 1, -1, 3, 1, 1, -1, 1, 3, -3, -1, 1, 1, -1, -3, 1, 1, -1, -1, 3, 1, -1, -1, 1, 3, 3, 1, -1, 1, 1, 3, -1,
|
|
137
|
+
1, 1, 1, -3, 1, 1, 1, -1, 3, -3, 1, -1, 1, -1, 3, -1, 1, -1, 1, -3, 1, -1, 1, -1, 3, 3, -1, -1, 1, 1, -3, -1, 1, 1,
|
|
138
|
+
-1, -3, 1, 1, -1, -1, 3, -3, -1, -1, 1, -1, -3, -1, 1, -1, -1, -3, 1, -1, -1, -1, 3, 3, 1, 1, -1, 1, 3, 1, -1, 1, 1,
|
|
139
|
+
3, -1, 1, 1, 1, -3, -3, 1, 1, -1, -1, 3, 1, -1, -1, 1, 3, -1, -1, 1, 1, -3, 3, -1, 1, -1, 1, -3, 1, -1, 1, -1, 3,
|
|
140
|
+
-1, 1, -1, 1, -3, -3, -1, 1, -1, -1, -3, 1, -1, -1, -1, 3, -1, -1, -1, 1, -3, 3, 1, -1, -1, 1, 3, -1, -1, 1, 1, -3,
|
|
141
|
+
-1, 1, 1, -1, -3, -3, 1, -1, -1, -1, 3, -1, -1, -1, 1, -3, -1, -1, 1, -1, -3, 3, -1, -1, -1, 1, -3, -1, -1, 1, -1,
|
|
142
|
+
-3, -1, 1, -1, -1, -3, -3, -1, -1, -1, -1, -3, -1, -1, -1, -1, -3, -1, -1, -1, -1, -3,
|
|
143
|
+
];
|
|
144
|
+
const lookupPairs4D = [
|
|
145
|
+
0, 3, 1, 2, 2, 3, 5, 2, 6, 1, 7, 1, 8, 3, 9, 2, 10, 3, 13, 2, 16, 3, 18, 3, 22, 1, 23, 1, 24, 3, 26, 3, 33, 2, 37,
|
|
146
|
+
2, 38, 1, 39, 1, 41, 2, 45, 2, 54, 1, 55, 1, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 62, 0, 63, 0, 256, 3, 258, 3,
|
|
147
|
+
264, 3, 266, 3, 272, 3, 274, 3, 280, 3, 282, 3, 2049, 2, 2053, 2, 2057, 2, 2061, 2, 2081, 2, 2085, 2, 2089, 2, 2093,
|
|
148
|
+
2, 2304, 9, 2305, 9, 2312, 9, 2313, 9, 16390, 1, 16391, 1, 16406, 1, 16407, 1, 16422, 1, 16423, 1, 16438, 1, 16439,
|
|
149
|
+
1, 16642, 8, 16646, 8, 16658, 8, 16662, 8, 18437, 6, 18439, 6, 18469, 6, 18471, 6, 18688, 9, 18689, 9, 18690, 8,
|
|
150
|
+
18693, 6, 18694, 8, 18695, 6, 18696, 9, 18697, 9, 18706, 8, 18710, 8, 18725, 6, 18727, 6, 131128, 0, 131129, 0,
|
|
151
|
+
131130, 0, 131131, 0, 131132, 0, 131133, 0, 131134, 0, 131135, 0, 131352, 7, 131354, 7, 131384, 7, 131386, 7,
|
|
152
|
+
133161, 5, 133165, 5, 133177, 5, 133181, 5, 133376, 9, 133377, 9, 133384, 9, 133385, 9, 133400, 7, 133402, 7,
|
|
153
|
+
133417, 5, 133421, 5, 133432, 7, 133433, 5, 133434, 7, 133437, 5, 147510, 4, 147511, 4, 147518, 4, 147519, 4,
|
|
154
|
+
147714, 8, 147718, 8, 147730, 8, 147734, 8, 147736, 7, 147738, 7, 147766, 4, 147767, 4, 147768, 7, 147770, 7,
|
|
155
|
+
147774, 4, 147775, 4, 149509, 6, 149511, 6, 149541, 6, 149543, 6, 149545, 5, 149549, 5, 149558, 4, 149559, 4,
|
|
156
|
+
149561, 5, 149565, 5, 149566, 4, 149567, 4, 149760, 9, 149761, 9, 149762, 8, 149765, 6, 149766, 8, 149767, 6,
|
|
157
|
+
149768, 9, 149769, 9, 149778, 8, 149782, 8, 149784, 7, 149786, 7, 149797, 6, 149799, 6, 149801, 5, 149805, 5,
|
|
158
|
+
149814, 4, 149815, 4, 149816, 7, 149817, 5, 149818, 7, 149821, 5, 149822, 4, 149823, 4, 149824, 37, 149825, 37,
|
|
159
|
+
149826, 36, 149829, 34, 149830, 36, 149831, 34, 149832, 37, 149833, 37, 149842, 36, 149846, 36, 149848, 35, 149850,
|
|
160
|
+
35, 149861, 34, 149863, 34, 149865, 33, 149869, 33, 149878, 32, 149879, 32, 149880, 35, 149881, 33, 149882, 35,
|
|
161
|
+
149885, 33, 149886, 32, 149887, 32, 150080, 49, 150082, 48, 150088, 49, 150098, 48, 150104, 47, 150106, 47, 151873,
|
|
162
|
+
46, 151877, 45, 151881, 46, 151909, 45, 151913, 44, 151917, 44, 152128, 49, 152129, 46, 152136, 49, 152137, 46,
|
|
163
|
+
166214, 43, 166215, 42, 166230, 43, 166247, 42, 166262, 41, 166263, 41, 166466, 48, 166470, 43, 166482, 48, 166486,
|
|
164
|
+
43, 168261, 45, 168263, 42, 168293, 45, 168295, 42, 168512, 31, 168513, 28, 168514, 31, 168517, 28, 168518, 25,
|
|
165
|
+
168519, 25, 280952, 40, 280953, 39, 280954, 40, 280957, 39, 280958, 38, 280959, 38, 281176, 47, 281178, 47, 281208,
|
|
166
|
+
40, 281210, 40, 282985, 44, 282989, 44, 283001, 39, 283005, 39, 283208, 30, 283209, 27, 283224, 30, 283241, 27,
|
|
167
|
+
283256, 22, 283257, 22, 297334, 41, 297335, 41, 297342, 38, 297343, 38, 297554, 29, 297558, 24, 297562, 29, 297590,
|
|
168
|
+
24, 297594, 21, 297598, 21, 299365, 26, 299367, 23, 299373, 26, 299383, 23, 299389, 20, 299391, 20, 299584, 31,
|
|
169
|
+
299585, 28, 299586, 31, 299589, 28, 299590, 25, 299591, 25, 299592, 30, 299593, 27, 299602, 29, 299606, 24, 299608,
|
|
170
|
+
30, 299610, 29, 299621, 26, 299623, 23, 299625, 27, 299629, 26, 299638, 24, 299639, 23, 299640, 22, 299641, 22,
|
|
171
|
+
299642, 21, 299645, 20, 299646, 21, 299647, 20, 299648, 61, 299649, 60, 299650, 61, 299653, 60, 299654, 59, 299655,
|
|
172
|
+
59, 299656, 58, 299657, 57, 299666, 55, 299670, 54, 299672, 58, 299674, 55, 299685, 52, 299687, 51, 299689, 57,
|
|
173
|
+
299693, 52, 299702, 54, 299703, 51, 299704, 56, 299705, 56, 299706, 53, 299709, 50, 299710, 53, 299711, 50, 299904,
|
|
174
|
+
61, 299906, 61, 299912, 58, 299922, 55, 299928, 58, 299930, 55, 301697, 60, 301701, 60, 301705, 57, 301733, 52,
|
|
175
|
+
301737, 57, 301741, 52, 301952, 79, 301953, 79, 301960, 76, 301961, 76, 316038, 59, 316039, 59, 316054, 54, 316071,
|
|
176
|
+
51, 316086, 54, 316087, 51, 316290, 78, 316294, 78, 316306, 73, 316310, 73, 318085, 77, 318087, 77, 318117, 70,
|
|
177
|
+
318119, 70, 318336, 79, 318337, 79, 318338, 78, 318341, 77, 318342, 78, 318343, 77, 430776, 56, 430777, 56, 430778,
|
|
178
|
+
53, 430781, 50, 430782, 53, 430783, 50, 431000, 75, 431002, 72, 431032, 75, 431034, 72, 432809, 74, 432813, 69,
|
|
179
|
+
432825, 74, 432829, 69, 433032, 76, 433033, 76, 433048, 75, 433065, 74, 433080, 75, 433081, 74, 447158, 71, 447159,
|
|
180
|
+
68, 447166, 71, 447167, 68, 447378, 73, 447382, 73, 447386, 72, 447414, 71, 447418, 72, 447422, 71, 449189, 70,
|
|
181
|
+
449191, 70, 449197, 69, 449207, 68, 449213, 69, 449215, 68, 449408, 67, 449409, 67, 449410, 66, 449413, 64, 449414,
|
|
182
|
+
66, 449415, 64, 449416, 67, 449417, 67, 449426, 66, 449430, 66, 449432, 65, 449434, 65, 449445, 64, 449447, 64,
|
|
183
|
+
449449, 63, 449453, 63, 449462, 62, 449463, 62, 449464, 65, 449465, 63, 449466, 65, 449469, 63, 449470, 62, 449471,
|
|
184
|
+
62, 449472, 19, 449473, 19, 449474, 18, 449477, 16, 449478, 18, 449479, 16, 449480, 19, 449481, 19, 449490, 18,
|
|
185
|
+
449494, 18, 449496, 17, 449498, 17, 449509, 16, 449511, 16, 449513, 15, 449517, 15, 449526, 14, 449527, 14, 449528,
|
|
186
|
+
17, 449529, 15, 449530, 17, 449533, 15, 449534, 14, 449535, 14, 449728, 19, 449729, 19, 449730, 18, 449734, 18,
|
|
187
|
+
449736, 19, 449737, 19, 449746, 18, 449750, 18, 449752, 17, 449754, 17, 449784, 17, 449786, 17, 451520, 19, 451521,
|
|
188
|
+
19, 451525, 16, 451527, 16, 451528, 19, 451529, 19, 451557, 16, 451559, 16, 451561, 15, 451565, 15, 451577, 15,
|
|
189
|
+
451581, 15, 451776, 19, 451777, 19, 451784, 19, 451785, 19, 465858, 18, 465861, 16, 465862, 18, 465863, 16, 465874,
|
|
190
|
+
18, 465878, 18, 465893, 16, 465895, 16, 465910, 14, 465911, 14, 465918, 14, 465919, 14, 466114, 18, 466118, 18,
|
|
191
|
+
466130, 18, 466134, 18, 467909, 16, 467911, 16, 467941, 16, 467943, 16, 468160, 13, 468161, 13, 468162, 13, 468163,
|
|
192
|
+
13, 468164, 13, 468165, 13, 468166, 13, 468167, 13, 580568, 17, 580570, 17, 580585, 15, 580589, 15, 580598, 14,
|
|
193
|
+
580599, 14, 580600, 17, 580601, 15, 580602, 17, 580605, 15, 580606, 14, 580607, 14, 580824, 17, 580826, 17, 580856,
|
|
194
|
+
17, 580858, 17, 582633, 15, 582637, 15, 582649, 15, 582653, 15, 582856, 12, 582857, 12, 582872, 12, 582873, 12,
|
|
195
|
+
582888, 12, 582889, 12, 582904, 12, 582905, 12, 596982, 14, 596983, 14, 596990, 14, 596991, 14, 597202, 11, 597206,
|
|
196
|
+
11, 597210, 11, 597214, 11, 597234, 11, 597238, 11, 597242, 11, 597246, 11, 599013, 10, 599015, 10, 599021, 10,
|
|
197
|
+
599023, 10, 599029, 10, 599031, 10, 599037, 10, 599039, 10, 599232, 13, 599233, 13, 599234, 13, 599235, 13, 599236,
|
|
198
|
+
13, 599237, 13, 599238, 13, 599239, 13, 599240, 12, 599241, 12, 599250, 11, 599254, 11, 599256, 12, 599257, 12,
|
|
199
|
+
599258, 11, 599262, 11, 599269, 10, 599271, 10, 599272, 12, 599273, 12, 599277, 10, 599279, 10, 599282, 11, 599285,
|
|
200
|
+
10, 599286, 11, 599287, 10, 599288, 12, 599289, 12, 599290, 11, 599293, 10, 599294, 11, 599295, 10,
|
|
201
|
+
];
|
|
202
|
+
const p4D = [
|
|
203
|
+
0, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, 0, -1, 0,
|
|
204
|
+
1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 0, -1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 2, 1, 1, 0, 0, 1, 1, 1,
|
|
205
|
+
-1, 0, 1, 1, 1, 0, -1, 0, 2, 1, 0, 1, 0, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 0, 2, 0, 1, 1, 0, 1, -1, 1, 1, 0, 1, 0, 1,
|
|
206
|
+
1, -1, 0, 2, 1, 0, 0, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 0, 2, 0, 1, 0, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 2, 0,
|
|
207
|
+
0, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 1, 4, 2, 1, 1, 0, 4, 1, 2, 1, 0, 4, 1, 1, 2, 0, 1, 4, 2, 1, 0, 1, 4, 1, 2,
|
|
208
|
+
0, 1, 4, 1, 1, 0, 2, 1, 4, 2, 0, 1, 1, 4, 1, 0, 2, 1, 4, 1, 0, 1, 2, 1, 4, 0, 2, 1, 1, 4, 0, 1, 2, 1, 4, 0, 1, 1, 2,
|
|
209
|
+
1, 2, 1, 1, 0, 0, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 1, 2, 1, 0, 1, 0, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 1, 2, 0, 1, 1, 0, 3,
|
|
210
|
+
0, 2, 1, 0, 3, 0, 1, 2, 0, 1, 2, 1, 0, 0, 1, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 1, 2, 0, 1, 0, 1, 3, 0, 2, 0, 1, 3, 0, 1,
|
|
211
|
+
0, 2, 1, 2, 0, 0, 1, 1, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 2, 3, 1, 1, 1, 0, 2, 1, 1, 1, -1, 2, 2, 0, 0, 0, 2, 3, 1, 1,
|
|
212
|
+
0, 1, 2, 1, 1, -1, 1, 2, 2, 0, 0, 0, 2, 3, 1, 0, 1, 1, 2, 1, -1, 1, 1, 2, 2, 0, 0, 0, 2, 3, 1, 1, 1, 0, 2, 1, 1, 1,
|
|
213
|
+
-1, 2, 0, 2, 0, 0, 2, 3, 1, 1, 0, 1, 2, 1, 1, -1, 1, 2, 0, 2, 0, 0, 2, 3, 0, 1, 1, 1, 2, -1, 1, 1, 1, 2, 0, 2, 0, 0,
|
|
214
|
+
2, 3, 1, 1, 1, 0, 2, 1, 1, 1, -1, 2, 0, 0, 2, 0, 2, 3, 1, 0, 1, 1, 2, 1, -1, 1, 1, 2, 0, 0, 2, 0, 2, 3, 0, 1, 1, 1,
|
|
215
|
+
2, -1, 1, 1, 1, 2, 0, 0, 2, 0, 2, 3, 1, 1, 0, 1, 2, 1, 1, -1, 1, 2, 0, 0, 0, 2, 2, 3, 1, 0, 1, 1, 2, 1, -1, 1, 1, 2,
|
|
216
|
+
0, 0, 0, 2, 2, 3, 0, 1, 1, 1, 2, -1, 1, 1, 1, 2, 0, 0, 0, 2, 2, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 0, 0, 0, 0, 0, 2, 1,
|
|
217
|
+
1, -1, 1, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, 0, 2, 1, -1, 1, 1, 0, 1, 0, 1, 1, -1, 0, 0, 0, 0, 0, 2, 1, 1, -1, 0, 1, 1,
|
|
218
|
+
1, 0, -1, 1, 0, 0, 0, 0, 0, 2, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 0, 0, 0, 0, 2, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 0,
|
|
219
|
+
0, 0, 0, 0, 2, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 2, 2, 0, 0, 0, 2, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 2, 2, 0, 0, 0, 2,
|
|
220
|
+
1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 2, 2, 0, 0, 0, 2, 1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 2, 0, 2, 0, 0, 2, 1, -1, 1, 1, 0,
|
|
221
|
+
1, 0, 1, 1, -1, 2, 0, 2, 0, 0, 2, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 2, 0, 2, 0, 0, 2, 1, 1, -1, 1, 0, 1, 1, 0, 1, -1,
|
|
222
|
+
2, 0, 0, 2, 0, 2, 1, -1, 1, 1, 0, 1, 0, 1, 1, -1, 2, 0, 0, 2, 0, 2, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 2, 0, 0, 2, 0,
|
|
223
|
+
2, 1, 1, -1, 0, 1, 1, 1, 0, -1, 1, 2, 0, 0, 0, 2, 2, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, 2, 0, 0, 0, 2, 2, 1, -1, 0, 1,
|
|
224
|
+
1, 1, 0, -1, 1, 1, 2, 0, 0, 0, 2, 3, 1, 1, 0, 0, 0, 2, 2, 0, 0, 0, 2, 1, 1, 1, -1, 3, 1, 0, 1, 0, 0, 2, 0, 2, 0, 0,
|
|
225
|
+
2, 1, 1, 1, -1, 3, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 2, 1, 1, 1, -1, 3, 1, 1, 0, 0, 0, 2, 2, 0, 0, 0, 2, 1, 1, -1, 1, 3,
|
|
226
|
+
1, 0, 1, 0, 0, 2, 0, 2, 0, 0, 2, 1, 1, -1, 1, 3, 1, 0, 0, 0, 1, 2, 0, 0, 0, 2, 2, 1, 1, -1, 1, 3, 1, 1, 0, 0, 0, 2,
|
|
227
|
+
2, 0, 0, 0, 2, 1, -1, 1, 1, 3, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 2, 1, -1, 1, 1, 3, 1, 0, 0, 0, 1, 2, 0, 0, 0, 2, 2, 1,
|
|
228
|
+
-1, 1, 1, 3, 1, 0, 1, 0, 0, 2, 0, 2, 0, 0, 2, -1, 1, 1, 1, 3, 1, 0, 0, 1, 0, 2, 0, 0, 2, 0, 2, -1, 1, 1, 1, 3, 1, 0,
|
|
229
|
+
0, 0, 1, 2, 0, 0, 0, 2, 2, -1, 1, 1, 1, 3, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 4, 1, 1, 1, 1, 3, 3, 2, 0, 1, 0, 3, 1, 0,
|
|
230
|
+
2, 0, 4, 1, 1, 1, 1, 3, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 4, 1, 1, 1, 1, 3, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 4, 1, 1, 1, 1,
|
|
231
|
+
3, 3, 0, 2, 0, 1, 3, 0, 1, 0, 2, 4, 1, 1, 1, 1, 3, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 4, 1, 1, 1, 1, 3, 3, 2, 1, 0, 0, 3,
|
|
232
|
+
1, 2, 0, 0, 2, 1, 1, 1, -1, 3, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 2, 1, 1, 1, -1, 3, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 2, 1,
|
|
233
|
+
1, 1, -1, 3, 3, 2, 1, 0, 0, 3, 1, 2, 0, 0, 2, 1, 1, -1, 1, 3, 3, 2, 0, 0, 1, 3, 1, 0, 0, 2, 2, 1, 1, -1, 1, 3, 3, 0,
|
|
234
|
+
2, 0, 1, 3, 0, 1, 0, 2, 2, 1, 1, -1, 1, 3, 3, 2, 0, 1, 0, 3, 1, 0, 2, 0, 2, 1, -1, 1, 1, 3, 3, 2, 0, 0, 1, 3, 1, 0,
|
|
235
|
+
0, 2, 2, 1, -1, 1, 1, 3, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 2, 1, -1, 1, 1, 3, 3, 0, 2, 1, 0, 3, 0, 1, 2, 0, 2, -1, 1, 1,
|
|
236
|
+
1, 3, 3, 0, 2, 0, 1, 3, 0, 1, 0, 2, 2, -1, 1, 1, 1, 3, 3, 0, 0, 2, 1, 3, 0, 0, 1, 2, 2, -1, 1, 1, 1,
|
|
237
|
+
];
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimplexNoiseGenerator = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
5
|
+
const engine_2 = require("@tsparticles/engine");
|
|
6
|
+
const simplex_1 = require("./simplex");
|
|
7
|
+
class SimplexNoiseGenerator {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.field = [];
|
|
10
|
+
this.noiseFunc = (0, simplex_1.makeNoise4D)((0, engine_2.getRandom)());
|
|
11
|
+
this.noiseW = 0;
|
|
12
|
+
this.options = {
|
|
13
|
+
size: 20,
|
|
14
|
+
increment: 0.004,
|
|
15
|
+
columns: 0,
|
|
16
|
+
rows: 0,
|
|
17
|
+
layers: 0,
|
|
18
|
+
width: 0,
|
|
19
|
+
height: 0,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
generate(particle) {
|
|
23
|
+
const pos = particle.getPosition(), point = {
|
|
24
|
+
x: Math.max(Math.floor(pos.x / this.options.size), 0),
|
|
25
|
+
y: Math.max(Math.floor(pos.y / this.options.size), 0),
|
|
26
|
+
z: Math.max(Math.floor(pos.z / this.options.size), 0),
|
|
27
|
+
}, v = engine_1.Vector.origin;
|
|
28
|
+
if (!this.field ||
|
|
29
|
+
!this.field[point.x] ||
|
|
30
|
+
!this.field[point.x][point.y] ||
|
|
31
|
+
!this.field[point.x][point.y][point.z]) {
|
|
32
|
+
return v;
|
|
33
|
+
}
|
|
34
|
+
v.length = this.field[point.x][point.y][point.z][1];
|
|
35
|
+
v.angle = this.field[point.x][point.y][point.z][0];
|
|
36
|
+
return v;
|
|
37
|
+
}
|
|
38
|
+
init(container) {
|
|
39
|
+
this.container = container;
|
|
40
|
+
this.setup(this.container);
|
|
41
|
+
}
|
|
42
|
+
reset() {
|
|
43
|
+
}
|
|
44
|
+
update() {
|
|
45
|
+
if (!this.container) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.calculateField();
|
|
49
|
+
this.noiseW += this.options.increment;
|
|
50
|
+
}
|
|
51
|
+
calculateField() {
|
|
52
|
+
for (let x = 0; x < this.options.columns; x++) {
|
|
53
|
+
for (let y = 0; y < this.options.rows; y++) {
|
|
54
|
+
for (let z = 0; z < this.options.layers; z++) {
|
|
55
|
+
const angle = this.noiseFunc(x / 50, y / 50, z / 50, this.noiseW) * Math.PI * 2, length = this.noiseFunc(x / 100 + 40000, y / 100 + 40000, z / 100 + 40000, this.noiseW);
|
|
56
|
+
this.field[x][y][z][0] = angle;
|
|
57
|
+
this.field[x][y][z][1] = length;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
initField() {
|
|
63
|
+
this.field = new Array(this.options.columns);
|
|
64
|
+
for (let x = 0; x < this.options.columns; x++) {
|
|
65
|
+
this.field[x] = new Array(this.options.rows);
|
|
66
|
+
for (let y = 0; y < this.options.rows; y++) {
|
|
67
|
+
this.field[x][y] = new Array(this.options.layers);
|
|
68
|
+
for (let z = 0; z < this.options.layers; z++) {
|
|
69
|
+
this.field[x][y][z] = [0, 0];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
resetField(container) {
|
|
75
|
+
var _a;
|
|
76
|
+
const sourceOptions = container.actualOptions.particles.move.path.options;
|
|
77
|
+
this.options.size = sourceOptions.size > 0 ? sourceOptions.size : 20;
|
|
78
|
+
this.options.increment = sourceOptions.increment > 0 ? sourceOptions.increment : 0.004;
|
|
79
|
+
this.options.width = container.canvas.size.width;
|
|
80
|
+
this.options.height = container.canvas.size.height;
|
|
81
|
+
this.noiseFunc = (0, simplex_1.makeNoise4D)((_a = sourceOptions.seed) !== null && _a !== void 0 ? _a : (0, engine_2.getRandom)());
|
|
82
|
+
this.options.columns = Math.floor(this.options.width / this.options.size) + 1;
|
|
83
|
+
this.options.rows = Math.floor(this.options.height / this.options.size) + 1;
|
|
84
|
+
this.options.layers = Math.floor(container.zLayers / this.options.size) + 1;
|
|
85
|
+
this.initField();
|
|
86
|
+
}
|
|
87
|
+
setup(container) {
|
|
88
|
+
this.noiseW = 0;
|
|
89
|
+
this.resetField(container);
|
|
90
|
+
addEventListener("resize", () => this.resetField(container));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.SimplexNoiseGenerator = SimplexNoiseGenerator;
|
package/cjs/index.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadSimplexNoisePath = exports.simplexNoisePathName = void 0;
|
|
4
|
+
const SimplexNoiseGenerator_1 = require("./SimplexNoiseGenerator");
|
|
5
|
+
exports.simplexNoisePathName = "simplexNoise";
|
|
6
|
+
function loadSimplexNoisePath(engine) {
|
|
7
|
+
engine.addPathGenerator(exports.simplexNoisePathName, new SimplexNoiseGenerator_1.SimplexNoiseGenerator());
|
|
8
|
+
}
|
|
9
|
+
exports.loadSimplexNoisePath = loadSimplexNoisePath;
|