@tsparticles/simplex-noise 4.0.0-beta.0 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,552 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../utils.js"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SimplexNoise3D = void 0;
13
- const utils_js_1 = require("../utils.js");
14
- class SimplexNoise3D {
15
- _NORM_3D;
16
- _SQUISH_3D;
17
- _STRETCH_3D;
18
- _base3D;
19
- _gradients3D;
20
- _lookup;
21
- _lookupPairs3D;
22
- _p3D;
23
- _perm;
24
- _perm3D;
25
- constructor() {
26
- this._NORM_3D = 1.0 / 103.0;
27
- this._SQUISH_3D = (Math.sqrt(3 + 1) - 1) / 3;
28
- this._STRETCH_3D = (1 / Math.sqrt(3 + 1) - 1) / 3;
29
- this._base3D = [
30
- [0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1],
31
- [2, 1, 1, 0, 2, 1, 0, 1, 2, 0, 1, 1, 3, 1, 1, 1],
32
- [1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 0, 2, 1, 0, 1, 2, 0, 1, 1],
33
- ];
34
- this._gradients3D = [
35
- -11,
36
- 4,
37
- 4,
38
- -4,
39
- 11,
40
- 4,
41
- -4,
42
- 4,
43
- 11,
44
- 11,
45
- 4,
46
- 4,
47
- 4,
48
- 11,
49
- 4,
50
- 4,
51
- 4,
52
- 11,
53
- -11,
54
- -4,
55
- 4,
56
- -4,
57
- -11,
58
- 4,
59
- -4,
60
- -4,
61
- 11,
62
- 11,
63
- -4,
64
- 4,
65
- 4,
66
- -11,
67
- 4,
68
- 4,
69
- -4,
70
- 11,
71
- -11,
72
- 4,
73
- -4,
74
- -4,
75
- 11,
76
- -4,
77
- -4,
78
- 4,
79
- -11,
80
- 11,
81
- 4,
82
- -4,
83
- 4,
84
- 11,
85
- -4,
86
- 4,
87
- 4,
88
- -11,
89
- -11,
90
- -4,
91
- -4,
92
- -4,
93
- -11,
94
- -4,
95
- -4,
96
- -4,
97
- -11,
98
- 11,
99
- -4,
100
- -4,
101
- 4,
102
- -11,
103
- -4,
104
- 4,
105
- -4,
106
- -11,
107
- ];
108
- this._lookup = [];
109
- this._lookupPairs3D = [
110
- 0,
111
- 2,
112
- 1,
113
- 1,
114
- 2,
115
- 2,
116
- 5,
117
- 1,
118
- 6,
119
- 0,
120
- 7,
121
- 0,
122
- 32,
123
- 2,
124
- 34,
125
- 2,
126
- 129,
127
- 1,
128
- 133,
129
- 1,
130
- 160,
131
- 5,
132
- 161,
133
- 5,
134
- 518,
135
- 0,
136
- 519,
137
- 0,
138
- 546,
139
- 4,
140
- 550,
141
- 4,
142
- 645,
143
- 3,
144
- 647,
145
- 3,
146
- 672,
147
- 5,
148
- 673,
149
- 5,
150
- 674,
151
- 4,
152
- 677,
153
- 3,
154
- 678,
155
- 4,
156
- 679,
157
- 3,
158
- 680,
159
- 13,
160
- 681,
161
- 13,
162
- 682,
163
- 12,
164
- 685,
165
- 14,
166
- 686,
167
- 12,
168
- 687,
169
- 14,
170
- 712,
171
- 20,
172
- 714,
173
- 18,
174
- 809,
175
- 21,
176
- 813,
177
- 23,
178
- 840,
179
- 20,
180
- 841,
181
- 21,
182
- 1198,
183
- 19,
184
- 1199,
185
- 22,
186
- 1226,
187
- 18,
188
- 1230,
189
- 19,
190
- 1325,
191
- 23,
192
- 1327,
193
- 22,
194
- 1352,
195
- 15,
196
- 1353,
197
- 17,
198
- 1354,
199
- 15,
200
- 1357,
201
- 17,
202
- 1358,
203
- 16,
204
- 1359,
205
- 16,
206
- 1360,
207
- 11,
208
- 1361,
209
- 10,
210
- 1362,
211
- 11,
212
- 1365,
213
- 10,
214
- 1366,
215
- 9,
216
- 1367,
217
- 9,
218
- 1392,
219
- 11,
220
- 1394,
221
- 11,
222
- 1489,
223
- 10,
224
- 1493,
225
- 10,
226
- 1520,
227
- 8,
228
- 1521,
229
- 8,
230
- 1878,
231
- 9,
232
- 1879,
233
- 9,
234
- 1906,
235
- 7,
236
- 1910,
237
- 7,
238
- 2005,
239
- 6,
240
- 2007,
241
- 6,
242
- 2032,
243
- 8,
244
- 2033,
245
- 8,
246
- 2034,
247
- 7,
248
- 2037,
249
- 6,
250
- 2038,
251
- 7,
252
- 2039,
253
- 6,
254
- ];
255
- this._p3D = [
256
- 0,
257
- 0,
258
- 1,
259
- -1,
260
- 0,
261
- 0,
262
- 1,
263
- 0,
264
- -1,
265
- 0,
266
- 0,
267
- -1,
268
- 1,
269
- 0,
270
- 0,
271
- 0,
272
- 1,
273
- -1,
274
- 0,
275
- 0,
276
- -1,
277
- 0,
278
- 1,
279
- 0,
280
- 0,
281
- -1,
282
- 1,
283
- 0,
284
- 2,
285
- 1,
286
- 1,
287
- 0,
288
- 1,
289
- 1,
290
- 1,
291
- -1,
292
- 0,
293
- 2,
294
- 1,
295
- 0,
296
- 1,
297
- 1,
298
- 1,
299
- -1,
300
- 1,
301
- 0,
302
- 2,
303
- 0,
304
- 1,
305
- 1,
306
- 1,
307
- -1,
308
- 1,
309
- 1,
310
- 1,
311
- 3,
312
- 2,
313
- 1,
314
- 0,
315
- 3,
316
- 1,
317
- 2,
318
- 0,
319
- 1,
320
- 3,
321
- 2,
322
- 0,
323
- 1,
324
- 3,
325
- 1,
326
- 0,
327
- 2,
328
- 1,
329
- 3,
330
- 0,
331
- 2,
332
- 1,
333
- 3,
334
- 0,
335
- 1,
336
- 2,
337
- 1,
338
- 1,
339
- 1,
340
- 0,
341
- 0,
342
- 2,
343
- 2,
344
- 0,
345
- 0,
346
- 1,
347
- 1,
348
- 0,
349
- 1,
350
- 0,
351
- 2,
352
- 0,
353
- 2,
354
- 0,
355
- 1,
356
- 1,
357
- 0,
358
- 0,
359
- 1,
360
- 2,
361
- 0,
362
- 0,
363
- 2,
364
- 2,
365
- 0,
366
- 0,
367
- 0,
368
- 0,
369
- 1,
370
- 1,
371
- -1,
372
- 1,
373
- 2,
374
- 0,
375
- 0,
376
- 0,
377
- 0,
378
- 1,
379
- -1,
380
- 1,
381
- 1,
382
- 2,
383
- 0,
384
- 0,
385
- 0,
386
- 0,
387
- 1,
388
- 1,
389
- 1,
390
- -1,
391
- 2,
392
- 3,
393
- 1,
394
- 1,
395
- 1,
396
- 2,
397
- 0,
398
- 0,
399
- 2,
400
- 2,
401
- 3,
402
- 1,
403
- 1,
404
- 1,
405
- 2,
406
- 2,
407
- 0,
408
- 0,
409
- 2,
410
- 3,
411
- 1,
412
- 1,
413
- 1,
414
- 2,
415
- 0,
416
- 2,
417
- 0,
418
- 2,
419
- 1,
420
- 1,
421
- -1,
422
- 1,
423
- 2,
424
- 0,
425
- 0,
426
- 2,
427
- 2,
428
- 1,
429
- 1,
430
- -1,
431
- 1,
432
- 2,
433
- 2,
434
- 0,
435
- 0,
436
- 2,
437
- 1,
438
- -1,
439
- 1,
440
- 1,
441
- 2,
442
- 0,
443
- 0,
444
- 2,
445
- 2,
446
- 1,
447
- -1,
448
- 1,
449
- 1,
450
- 2,
451
- 0,
452
- 2,
453
- 0,
454
- 2,
455
- 1,
456
- 1,
457
- 1,
458
- -1,
459
- 2,
460
- 2,
461
- 0,
462
- 0,
463
- 2,
464
- 1,
465
- 1,
466
- 1,
467
- -1,
468
- 2,
469
- 0,
470
- 2,
471
- 0,
472
- ];
473
- this._perm = new Uint8Array(256);
474
- this._perm3D = new Uint8Array(256);
475
- }
476
- noise(x, y, z) {
477
- const { _STRETCH_3D, _NORM_3D, _SQUISH_3D, _lookup, _perm, _perm3D, _gradients3D } = this, stretchOffset = (x + y + z) * _STRETCH_3D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), squishOffset = (xsb + ysb + zsb) * _SQUISH_3D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, inSum = xins + yins + zins, hash = (yins - zins + 1) |
478
- ((xins - yins + 1) << 1) |
479
- ((xins - zins + 1) << 2) |
480
- (inSum << 3) |
481
- ((inSum + zins) << 5) |
482
- ((inSum + yins) << 7) |
483
- ((inSum + xins) << 9);
484
- let value = 0;
485
- for (let c = _lookup[hash]; c !== undefined; c = c.next) {
486
- const dx = dx0 + c.dx, dy = dy0 + c.dy, dz = dz0 + c.dz, attn = 2 - dx * dx - dy * dy - dz * dz;
487
- if (attn > 0) {
488
- const px = xsb + c.xsb, py = ysb + c.ysb, pz = zsb + c.zsb, indexPartA = _perm[px & 0xff], indexPartB = _perm[(indexPartA + py) & 0xff], index = _perm3D[(indexPartB + pz) & 0xff], valuePart = _gradients3D[index] * dx + _gradients3D[index + 1] * dy + _gradients3D[index + 2] * dz;
489
- value += attn * attn * attn * attn * valuePart;
490
- }
491
- }
492
- return value * _NORM_3D;
493
- }
494
- seed(clientSeed) {
495
- const { _base3D, _lookupPairs3D, _p3D } = this, contributions = [];
496
- for (let i = 0; i < _p3D.length; i += 9) {
497
- const baseSet = _base3D[_p3D[i]];
498
- let previous = null, current = null;
499
- for (let k = 0; k < baseSet.length; k += 4) {
500
- current = this._contribution3D(baseSet[k], baseSet[k + 1], baseSet[k + 2], baseSet[k + 3]);
501
- if (previous === null) {
502
- contributions[i / 9] = current;
503
- }
504
- else {
505
- previous.next = current;
506
- }
507
- previous = current;
508
- }
509
- if (current) {
510
- current.next = this._contribution3D(_p3D[i + 1], _p3D[i + 2], _p3D[i + 3], _p3D[i + 4]);
511
- current.next.next = this._contribution3D(_p3D[i + 5], _p3D[i + 6], _p3D[i + 7], _p3D[i + 8]);
512
- }
513
- }
514
- this._lookup = [];
515
- for (let i = 0; i < _lookupPairs3D.length; i += 2) {
516
- this._lookup[_lookupPairs3D[i]] = contributions[_lookupPairs3D[i + 1]];
517
- }
518
- this._perm = new Uint8Array(256);
519
- this._perm3D = new Uint8Array(256);
520
- const source = new Uint8Array(256);
521
- for (let i = 0; i < 256; i++) {
522
- source[i] = i;
523
- }
524
- let seed = new Uint32Array(1);
525
- seed[0] = clientSeed;
526
- seed = (0, utils_js_1.shuffleSeed)((0, utils_js_1.shuffleSeed)((0, utils_js_1.shuffleSeed)(seed)));
527
- for (let i = 255; i >= 0; i--) {
528
- seed = (0, utils_js_1.shuffleSeed)(seed);
529
- const r = new Uint32Array(1);
530
- r[0] = (seed[0] + 31) % (i + 1);
531
- if (r[0] < 0) {
532
- r[0] += i + 1;
533
- }
534
- this._perm[i] = source[r[0]];
535
- this._perm3D[i] = (this._perm[i] % 24) * 3;
536
- source[r[0]] = source[i];
537
- }
538
- }
539
- _contribution3D(multiplier, xsb, ysb, zsb) {
540
- const { _SQUISH_3D } = this;
541
- return {
542
- dx: -xsb - multiplier * _SQUISH_3D,
543
- dy: -ysb - multiplier * _SQUISH_3D,
544
- dz: -zsb - multiplier * _SQUISH_3D,
545
- xsb,
546
- ysb,
547
- zsb,
548
- };
549
- }
550
- }
551
- exports.SimplexNoise3D = SimplexNoise3D;
552
- });