@tsparticles/simplex-noise 4.0.0-alpha.2 → 4.0.0-alpha.20
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/Classes/SimplexNoise2D.js +12 -4
- package/browser/Classes/SimplexNoise3D.js +10 -0
- package/browser/Classes/SimplexNoise4D.js +12 -4
- package/browser/SimplexNoise.js +3 -0
- package/cjs/Classes/SimplexNoise2D.js +12 -4
- package/cjs/Classes/SimplexNoise3D.js +10 -0
- package/cjs/Classes/SimplexNoise4D.js +12 -4
- package/cjs/SimplexNoise.js +3 -0
- package/esm/Classes/SimplexNoise2D.js +12 -4
- package/esm/Classes/SimplexNoise3D.js +10 -0
- package/esm/Classes/SimplexNoise4D.js +12 -4
- package/esm/SimplexNoise.js +3 -0
- package/package.json +1 -1
- package/report.html +3 -3
- package/tsparticles.simplex.noise.js +7 -7
- package/tsparticles.simplex.noise.min.js +1 -2
- package/umd/Classes/SimplexNoise2D.js +12 -4
- package/umd/Classes/SimplexNoise3D.js +10 -0
- package/umd/Classes/SimplexNoise4D.js +12 -4
- package/umd/SimplexNoise.js +3 -0
- package/tsparticles.simplex.noise.min.js.LICENSE.txt +0 -1
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise2D {
|
|
3
|
+
_NORM_2D;
|
|
4
|
+
_SQUISH_2D;
|
|
5
|
+
_STRETCH_2D;
|
|
6
|
+
_base2D;
|
|
7
|
+
_gradients2D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs2D;
|
|
10
|
+
_p2D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm2D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_2D = 1.0 / 47.0;
|
|
5
15
|
this._SQUISH_2D = (Math.sqrt(2 + 1) - 1) / 2;
|
|
@@ -83,8 +93,7 @@ export class SimplexNoise2D {
|
|
|
83
93
|
this._perm2D = new Uint8Array(256);
|
|
84
94
|
}
|
|
85
95
|
noise(x, y) {
|
|
86
|
-
const { _gradients2D, _NORM_2D, _SQUISH_2D, _STRETCH_2D, _lookup, _perm, _perm2D } = this;
|
|
87
|
-
const stretchOffset = (x + y) * _STRETCH_2D, xs = x + stretchOffset, ys = y + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), squishOffset = (xsb + ysb) * _SQUISH_2D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), xins = xs - xsb, yins = ys - ysb, inSum = xins + yins, hash = (xins - yins + 1) | (inSum << 1) | ((inSum + yins) << 2) | ((inSum + xins) << 4);
|
|
96
|
+
const { _gradients2D, _NORM_2D, _SQUISH_2D, _STRETCH_2D, _lookup, _perm, _perm2D } = this, stretchOffset = (x + y) * _STRETCH_2D, xs = x + stretchOffset, ys = y + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), squishOffset = (xsb + ysb) * _SQUISH_2D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), xins = xs - xsb, yins = ys - ysb, inSum = xins + yins, hash = (xins - yins + 1) | (inSum << 1) | ((inSum + yins) << 2) | ((inSum + xins) << 4);
|
|
88
97
|
let value = 0;
|
|
89
98
|
for (let c = _lookup[hash]; c !== undefined; c = c.next) {
|
|
90
99
|
const dx = dx0 + c.dx, dy = dy0 + c.dy, attn = 2 - dx * dx - dy * dy;
|
|
@@ -96,8 +105,7 @@ export class SimplexNoise2D {
|
|
|
96
105
|
return value * _NORM_2D;
|
|
97
106
|
}
|
|
98
107
|
seed(clientSeed) {
|
|
99
|
-
const { _p2D, _base2D, _lookupPairs2D } = this;
|
|
100
|
-
const contributions = [];
|
|
108
|
+
const { _p2D, _base2D, _lookupPairs2D } = this, contributions = [];
|
|
101
109
|
for (let i = 0; i < _p2D.length; i += 4) {
|
|
102
110
|
const baseSet = _base2D[_p2D[i]];
|
|
103
111
|
let previous = null, current = null;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise3D {
|
|
3
|
+
_NORM_3D;
|
|
4
|
+
_SQUISH_3D;
|
|
5
|
+
_STRETCH_3D;
|
|
6
|
+
_base3D;
|
|
7
|
+
_gradients3D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs3D;
|
|
10
|
+
_p3D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm3D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_3D = 1.0 / 103.0;
|
|
5
15
|
this._SQUISH_3D = (Math.sqrt(3 + 1) - 1) / 3;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise4D {
|
|
3
|
+
_NORM_4D;
|
|
4
|
+
_SQUISH_4D;
|
|
5
|
+
_STRETCH_4D;
|
|
6
|
+
_base4D;
|
|
7
|
+
_gradients4D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs4D;
|
|
10
|
+
_p4D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm4D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_4D = 1.0 / 30.0;
|
|
5
15
|
this._SQUISH_4D = (Math.sqrt(4 + 1) - 1) * 0.25;
|
|
@@ -2779,8 +2789,7 @@ export class SimplexNoise4D {
|
|
|
2779
2789
|
];
|
|
2780
2790
|
}
|
|
2781
2791
|
noise(x, y, z, w) {
|
|
2782
|
-
const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this
|
|
2783
|
-
const stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
|
|
2792
|
+
const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this, stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
|
|
2784
2793
|
((yins - zins + 1) << 1) |
|
|
2785
2794
|
((yins - wins + 1) << 2) |
|
|
2786
2795
|
((xins - yins + 1) << 3) |
|
|
@@ -2805,8 +2814,7 @@ export class SimplexNoise4D {
|
|
|
2805
2814
|
return value * _NORM_4D;
|
|
2806
2815
|
}
|
|
2807
2816
|
seed(clientSeed) {
|
|
2808
|
-
const { _p4D, _base4D, _lookupPairs4D } = this;
|
|
2809
|
-
const contributions = [];
|
|
2817
|
+
const { _p4D, _base4D, _lookupPairs4D } = this, contributions = [];
|
|
2810
2818
|
for (let i = 0; i < _p4D.length; i += 16) {
|
|
2811
2819
|
const baseSet = _base4D[_p4D[i]];
|
|
2812
2820
|
let previous = null, current = null;
|
package/browser/SimplexNoise.js
CHANGED
|
@@ -2,6 +2,9 @@ import { SimplexNoise2D } from "./Classes/SimplexNoise2D.js";
|
|
|
2
2
|
import { SimplexNoise3D } from "./Classes/SimplexNoise3D.js";
|
|
3
3
|
import { SimplexNoise4D } from "./Classes/SimplexNoise4D.js";
|
|
4
4
|
export class SimplexNoise {
|
|
5
|
+
noise2d;
|
|
6
|
+
noise3d;
|
|
7
|
+
noise4d;
|
|
5
8
|
constructor() {
|
|
6
9
|
this.noise2d = new SimplexNoise2D();
|
|
7
10
|
this.noise3d = new SimplexNoise3D();
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise2D {
|
|
3
|
+
_NORM_2D;
|
|
4
|
+
_SQUISH_2D;
|
|
5
|
+
_STRETCH_2D;
|
|
6
|
+
_base2D;
|
|
7
|
+
_gradients2D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs2D;
|
|
10
|
+
_p2D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm2D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_2D = 1.0 / 47.0;
|
|
5
15
|
this._SQUISH_2D = (Math.sqrt(2 + 1) - 1) / 2;
|
|
@@ -83,8 +93,7 @@ export class SimplexNoise2D {
|
|
|
83
93
|
this._perm2D = new Uint8Array(256);
|
|
84
94
|
}
|
|
85
95
|
noise(x, y) {
|
|
86
|
-
const { _gradients2D, _NORM_2D, _SQUISH_2D, _STRETCH_2D, _lookup, _perm, _perm2D } = this;
|
|
87
|
-
const stretchOffset = (x + y) * _STRETCH_2D, xs = x + stretchOffset, ys = y + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), squishOffset = (xsb + ysb) * _SQUISH_2D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), xins = xs - xsb, yins = ys - ysb, inSum = xins + yins, hash = (xins - yins + 1) | (inSum << 1) | ((inSum + yins) << 2) | ((inSum + xins) << 4);
|
|
96
|
+
const { _gradients2D, _NORM_2D, _SQUISH_2D, _STRETCH_2D, _lookup, _perm, _perm2D } = this, stretchOffset = (x + y) * _STRETCH_2D, xs = x + stretchOffset, ys = y + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), squishOffset = (xsb + ysb) * _SQUISH_2D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), xins = xs - xsb, yins = ys - ysb, inSum = xins + yins, hash = (xins - yins + 1) | (inSum << 1) | ((inSum + yins) << 2) | ((inSum + xins) << 4);
|
|
88
97
|
let value = 0;
|
|
89
98
|
for (let c = _lookup[hash]; c !== undefined; c = c.next) {
|
|
90
99
|
const dx = dx0 + c.dx, dy = dy0 + c.dy, attn = 2 - dx * dx - dy * dy;
|
|
@@ -96,8 +105,7 @@ export class SimplexNoise2D {
|
|
|
96
105
|
return value * _NORM_2D;
|
|
97
106
|
}
|
|
98
107
|
seed(clientSeed) {
|
|
99
|
-
const { _p2D, _base2D, _lookupPairs2D } = this;
|
|
100
|
-
const contributions = [];
|
|
108
|
+
const { _p2D, _base2D, _lookupPairs2D } = this, contributions = [];
|
|
101
109
|
for (let i = 0; i < _p2D.length; i += 4) {
|
|
102
110
|
const baseSet = _base2D[_p2D[i]];
|
|
103
111
|
let previous = null, current = null;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise3D {
|
|
3
|
+
_NORM_3D;
|
|
4
|
+
_SQUISH_3D;
|
|
5
|
+
_STRETCH_3D;
|
|
6
|
+
_base3D;
|
|
7
|
+
_gradients3D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs3D;
|
|
10
|
+
_p3D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm3D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_3D = 1.0 / 103.0;
|
|
5
15
|
this._SQUISH_3D = (Math.sqrt(3 + 1) - 1) / 3;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise4D {
|
|
3
|
+
_NORM_4D;
|
|
4
|
+
_SQUISH_4D;
|
|
5
|
+
_STRETCH_4D;
|
|
6
|
+
_base4D;
|
|
7
|
+
_gradients4D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs4D;
|
|
10
|
+
_p4D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm4D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_4D = 1.0 / 30.0;
|
|
5
15
|
this._SQUISH_4D = (Math.sqrt(4 + 1) - 1) * 0.25;
|
|
@@ -2779,8 +2789,7 @@ export class SimplexNoise4D {
|
|
|
2779
2789
|
];
|
|
2780
2790
|
}
|
|
2781
2791
|
noise(x, y, z, w) {
|
|
2782
|
-
const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this
|
|
2783
|
-
const stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
|
|
2792
|
+
const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this, stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
|
|
2784
2793
|
((yins - zins + 1) << 1) |
|
|
2785
2794
|
((yins - wins + 1) << 2) |
|
|
2786
2795
|
((xins - yins + 1) << 3) |
|
|
@@ -2805,8 +2814,7 @@ export class SimplexNoise4D {
|
|
|
2805
2814
|
return value * _NORM_4D;
|
|
2806
2815
|
}
|
|
2807
2816
|
seed(clientSeed) {
|
|
2808
|
-
const { _p4D, _base4D, _lookupPairs4D } = this;
|
|
2809
|
-
const contributions = [];
|
|
2817
|
+
const { _p4D, _base4D, _lookupPairs4D } = this, contributions = [];
|
|
2810
2818
|
for (let i = 0; i < _p4D.length; i += 16) {
|
|
2811
2819
|
const baseSet = _base4D[_p4D[i]];
|
|
2812
2820
|
let previous = null, current = null;
|
package/cjs/SimplexNoise.js
CHANGED
|
@@ -2,6 +2,9 @@ import { SimplexNoise2D } from "./Classes/SimplexNoise2D.js";
|
|
|
2
2
|
import { SimplexNoise3D } from "./Classes/SimplexNoise3D.js";
|
|
3
3
|
import { SimplexNoise4D } from "./Classes/SimplexNoise4D.js";
|
|
4
4
|
export class SimplexNoise {
|
|
5
|
+
noise2d;
|
|
6
|
+
noise3d;
|
|
7
|
+
noise4d;
|
|
5
8
|
constructor() {
|
|
6
9
|
this.noise2d = new SimplexNoise2D();
|
|
7
10
|
this.noise3d = new SimplexNoise3D();
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise2D {
|
|
3
|
+
_NORM_2D;
|
|
4
|
+
_SQUISH_2D;
|
|
5
|
+
_STRETCH_2D;
|
|
6
|
+
_base2D;
|
|
7
|
+
_gradients2D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs2D;
|
|
10
|
+
_p2D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm2D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_2D = 1.0 / 47.0;
|
|
5
15
|
this._SQUISH_2D = (Math.sqrt(2 + 1) - 1) / 2;
|
|
@@ -83,8 +93,7 @@ export class SimplexNoise2D {
|
|
|
83
93
|
this._perm2D = new Uint8Array(256);
|
|
84
94
|
}
|
|
85
95
|
noise(x, y) {
|
|
86
|
-
const { _gradients2D, _NORM_2D, _SQUISH_2D, _STRETCH_2D, _lookup, _perm, _perm2D } = this;
|
|
87
|
-
const stretchOffset = (x + y) * _STRETCH_2D, xs = x + stretchOffset, ys = y + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), squishOffset = (xsb + ysb) * _SQUISH_2D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), xins = xs - xsb, yins = ys - ysb, inSum = xins + yins, hash = (xins - yins + 1) | (inSum << 1) | ((inSum + yins) << 2) | ((inSum + xins) << 4);
|
|
96
|
+
const { _gradients2D, _NORM_2D, _SQUISH_2D, _STRETCH_2D, _lookup, _perm, _perm2D } = this, stretchOffset = (x + y) * _STRETCH_2D, xs = x + stretchOffset, ys = y + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), squishOffset = (xsb + ysb) * _SQUISH_2D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), xins = xs - xsb, yins = ys - ysb, inSum = xins + yins, hash = (xins - yins + 1) | (inSum << 1) | ((inSum + yins) << 2) | ((inSum + xins) << 4);
|
|
88
97
|
let value = 0;
|
|
89
98
|
for (let c = _lookup[hash]; c !== undefined; c = c.next) {
|
|
90
99
|
const dx = dx0 + c.dx, dy = dy0 + c.dy, attn = 2 - dx * dx - dy * dy;
|
|
@@ -96,8 +105,7 @@ export class SimplexNoise2D {
|
|
|
96
105
|
return value * _NORM_2D;
|
|
97
106
|
}
|
|
98
107
|
seed(clientSeed) {
|
|
99
|
-
const { _p2D, _base2D, _lookupPairs2D } = this;
|
|
100
|
-
const contributions = [];
|
|
108
|
+
const { _p2D, _base2D, _lookupPairs2D } = this, contributions = [];
|
|
101
109
|
for (let i = 0; i < _p2D.length; i += 4) {
|
|
102
110
|
const baseSet = _base2D[_p2D[i]];
|
|
103
111
|
let previous = null, current = null;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise3D {
|
|
3
|
+
_NORM_3D;
|
|
4
|
+
_SQUISH_3D;
|
|
5
|
+
_STRETCH_3D;
|
|
6
|
+
_base3D;
|
|
7
|
+
_gradients3D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs3D;
|
|
10
|
+
_p3D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm3D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_3D = 1.0 / 103.0;
|
|
5
15
|
this._SQUISH_3D = (Math.sqrt(3 + 1) - 1) / 3;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { shuffleSeed } from "../utils.js";
|
|
2
2
|
export class SimplexNoise4D {
|
|
3
|
+
_NORM_4D;
|
|
4
|
+
_SQUISH_4D;
|
|
5
|
+
_STRETCH_4D;
|
|
6
|
+
_base4D;
|
|
7
|
+
_gradients4D;
|
|
8
|
+
_lookup;
|
|
9
|
+
_lookupPairs4D;
|
|
10
|
+
_p4D;
|
|
11
|
+
_perm;
|
|
12
|
+
_perm4D;
|
|
3
13
|
constructor() {
|
|
4
14
|
this._NORM_4D = 1.0 / 30.0;
|
|
5
15
|
this._SQUISH_4D = (Math.sqrt(4 + 1) - 1) * 0.25;
|
|
@@ -2779,8 +2789,7 @@ export class SimplexNoise4D {
|
|
|
2779
2789
|
];
|
|
2780
2790
|
}
|
|
2781
2791
|
noise(x, y, z, w) {
|
|
2782
|
-
const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this
|
|
2783
|
-
const stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
|
|
2792
|
+
const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this, stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
|
|
2784
2793
|
((yins - zins + 1) << 1) |
|
|
2785
2794
|
((yins - wins + 1) << 2) |
|
|
2786
2795
|
((xins - yins + 1) << 3) |
|
|
@@ -2805,8 +2814,7 @@ export class SimplexNoise4D {
|
|
|
2805
2814
|
return value * _NORM_4D;
|
|
2806
2815
|
}
|
|
2807
2816
|
seed(clientSeed) {
|
|
2808
|
-
const { _p4D, _base4D, _lookupPairs4D } = this;
|
|
2809
|
-
const contributions = [];
|
|
2817
|
+
const { _p4D, _base4D, _lookupPairs4D } = this, contributions = [];
|
|
2810
2818
|
for (let i = 0; i < _p4D.length; i += 16) {
|
|
2811
2819
|
const baseSet = _base4D[_p4D[i]];
|
|
2812
2820
|
let previous = null, current = null;
|
package/esm/SimplexNoise.js
CHANGED
|
@@ -2,6 +2,9 @@ import { SimplexNoise2D } from "./Classes/SimplexNoise2D.js";
|
|
|
2
2
|
import { SimplexNoise3D } from "./Classes/SimplexNoise3D.js";
|
|
3
3
|
import { SimplexNoise4D } from "./Classes/SimplexNoise4D.js";
|
|
4
4
|
export class SimplexNoise {
|
|
5
|
+
noise2d;
|
|
6
|
+
noise3d;
|
|
7
|
+
noise4d;
|
|
5
8
|
constructor() {
|
|
6
9
|
this.noise2d = new SimplexNoise2D();
|
|
7
10
|
this.noise3d = new SimplexNoise3D();
|