@ansh-ui/core 0.2.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/dist/behaviours.cjs +64 -0
- package/dist/behaviours.cjs.map +1 -0
- package/dist/behaviours.d.cts +3 -0
- package/dist/behaviours.d.ts +3 -0
- package/dist/behaviours.js +7 -0
- package/dist/behaviours.js.map +1 -0
- package/dist/chunk-23GSSIMK.cjs +439 -0
- package/dist/chunk-23GSSIMK.cjs.map +1 -0
- package/dist/chunk-56NNBIAO.js +2446 -0
- package/dist/chunk-56NNBIAO.js.map +1 -0
- package/dist/chunk-6PFYGJWD.cjs +136 -0
- package/dist/chunk-6PFYGJWD.cjs.map +1 -0
- package/dist/chunk-7MEIXWPH.js +313 -0
- package/dist/chunk-7MEIXWPH.js.map +1 -0
- package/dist/chunk-7MYTSAPR.js +83 -0
- package/dist/chunk-7MYTSAPR.js.map +1 -0
- package/dist/chunk-BOQQHICI.js +1036 -0
- package/dist/chunk-BOQQHICI.js.map +1 -0
- package/dist/chunk-C6XPQO2O.js +1170 -0
- package/dist/chunk-C6XPQO2O.js.map +1 -0
- package/dist/chunk-DXJ63QAR.cjs +723 -0
- package/dist/chunk-DXJ63QAR.cjs.map +1 -0
- package/dist/chunk-FAVIEION.js +705 -0
- package/dist/chunk-FAVIEION.js.map +1 -0
- package/dist/chunk-FNR35HTL.cjs +107 -0
- package/dist/chunk-FNR35HTL.cjs.map +1 -0
- package/dist/chunk-GHBRGMSO.cjs +91 -0
- package/dist/chunk-GHBRGMSO.cjs.map +1 -0
- package/dist/chunk-GJRIHN76.cjs +359 -0
- package/dist/chunk-GJRIHN76.cjs.map +1 -0
- package/dist/chunk-ILKUL7GD.cjs +115 -0
- package/dist/chunk-ILKUL7GD.cjs.map +1 -0
- package/dist/chunk-KTUBCQC3.js +409 -0
- package/dist/chunk-KTUBCQC3.js.map +1 -0
- package/dist/chunk-KU2C6GEA.js +90 -0
- package/dist/chunk-KU2C6GEA.js.map +1 -0
- package/dist/chunk-LGA3N3YJ.cjs +413 -0
- package/dist/chunk-LGA3N3YJ.cjs.map +1 -0
- package/dist/chunk-MMO7KO53.cjs +1060 -0
- package/dist/chunk-MMO7KO53.cjs.map +1 -0
- package/dist/chunk-NSXKCJJ7.js +109 -0
- package/dist/chunk-NSXKCJJ7.js.map +1 -0
- package/dist/chunk-QALZKHWH.js +387 -0
- package/dist/chunk-QALZKHWH.js.map +1 -0
- package/dist/chunk-R7UJ7MWP.cjs +2479 -0
- package/dist/chunk-R7UJ7MWP.cjs.map +1 -0
- package/dist/chunk-UJBXY6QC.cjs +1186 -0
- package/dist/chunk-UJBXY6QC.cjs.map +1 -0
- package/dist/chunk-YFQXRC5R.js +99 -0
- package/dist/chunk-YFQXRC5R.js.map +1 -0
- package/dist/color.cjs +257 -0
- package/dist/color.cjs.map +1 -0
- package/dist/color.d.cts +303 -0
- package/dist/color.d.ts +303 -0
- package/dist/color.js +8 -0
- package/dist/color.js.map +1 -0
- package/dist/easing.cjs +189 -0
- package/dist/easing.cjs.map +1 -0
- package/dist/easing.d.cts +134 -0
- package/dist/easing.d.ts +134 -0
- package/dist/easing.js +4 -0
- package/dist/easing.js.map +1 -0
- package/dist/effects.cjs +99 -0
- package/dist/effects.cjs.map +1 -0
- package/dist/effects.d.cts +5 -0
- package/dist/effects.d.ts +5 -0
- package/dist/effects.js +10 -0
- package/dist/effects.js.map +1 -0
- package/dist/index-CCdpefMp.d.ts +967 -0
- package/dist/index-CQEEPu-D.d.ts +435 -0
- package/dist/index-DHOfsEIn.d.cts +967 -0
- package/dist/index-Dl8GCsya.d.cts +435 -0
- package/dist/index.cjs +2206 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1122 -0
- package/dist/index.d.ts +1122 -0
- package/dist/index.js +1182 -0
- package/dist/index.js.map +1 -0
- package/dist/math.cjs +238 -0
- package/dist/math.cjs.map +1 -0
- package/dist/math.d.cts +120 -0
- package/dist/math.d.ts +120 -0
- package/dist/math.js +5 -0
- package/dist/math.js.map +1 -0
- package/dist/noise.cjs +78 -0
- package/dist/noise.cjs.map +1 -0
- package/dist/noise.d.cts +190 -0
- package/dist/noise.d.ts +190 -0
- package/dist/noise.js +5 -0
- package/dist/noise.js.map +1 -0
- package/dist/palette-6HkVltYU.d.cts +219 -0
- package/dist/palette-6HkVltYU.d.ts +219 -0
- package/dist/random--4mSc5Lp.d.cts +75 -0
- package/dist/random--4mSc5Lp.d.ts +75 -0
- package/dist/reduced-motion-D0LUgZle.d.cts +120 -0
- package/dist/reduced-motion-D0LUgZle.d.ts +120 -0
- package/dist/types-B1FLLf3-.d.cts +21 -0
- package/dist/types-B1FLLf3-.d.ts +21 -0
- package/package.json +78 -0
|
@@ -0,0 +1,723 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkFNR35HTL_cjs = require('./chunk-FNR35HTL.cjs');
|
|
4
|
+
var chunkILKUL7GD_cjs = require('./chunk-ILKUL7GD.cjs');
|
|
5
|
+
|
|
6
|
+
// src/noise/tables.ts
|
|
7
|
+
var GRAD3 = new Float32Array([
|
|
8
|
+
1,
|
|
9
|
+
1,
|
|
10
|
+
0,
|
|
11
|
+
-1,
|
|
12
|
+
1,
|
|
13
|
+
0,
|
|
14
|
+
1,
|
|
15
|
+
-1,
|
|
16
|
+
0,
|
|
17
|
+
-1,
|
|
18
|
+
-1,
|
|
19
|
+
0,
|
|
20
|
+
1,
|
|
21
|
+
0,
|
|
22
|
+
1,
|
|
23
|
+
-1,
|
|
24
|
+
0,
|
|
25
|
+
1,
|
|
26
|
+
1,
|
|
27
|
+
0,
|
|
28
|
+
-1,
|
|
29
|
+
-1,
|
|
30
|
+
0,
|
|
31
|
+
-1,
|
|
32
|
+
0,
|
|
33
|
+
1,
|
|
34
|
+
1,
|
|
35
|
+
0,
|
|
36
|
+
-1,
|
|
37
|
+
1,
|
|
38
|
+
0,
|
|
39
|
+
1,
|
|
40
|
+
-1,
|
|
41
|
+
0,
|
|
42
|
+
-1,
|
|
43
|
+
-1
|
|
44
|
+
]);
|
|
45
|
+
var GRAD4 = new Float32Array([
|
|
46
|
+
0,
|
|
47
|
+
1,
|
|
48
|
+
1,
|
|
49
|
+
1,
|
|
50
|
+
0,
|
|
51
|
+
1,
|
|
52
|
+
1,
|
|
53
|
+
-1,
|
|
54
|
+
0,
|
|
55
|
+
1,
|
|
56
|
+
-1,
|
|
57
|
+
1,
|
|
58
|
+
0,
|
|
59
|
+
1,
|
|
60
|
+
-1,
|
|
61
|
+
-1,
|
|
62
|
+
0,
|
|
63
|
+
-1,
|
|
64
|
+
1,
|
|
65
|
+
1,
|
|
66
|
+
0,
|
|
67
|
+
-1,
|
|
68
|
+
1,
|
|
69
|
+
-1,
|
|
70
|
+
0,
|
|
71
|
+
-1,
|
|
72
|
+
-1,
|
|
73
|
+
1,
|
|
74
|
+
0,
|
|
75
|
+
-1,
|
|
76
|
+
-1,
|
|
77
|
+
-1,
|
|
78
|
+
1,
|
|
79
|
+
0,
|
|
80
|
+
1,
|
|
81
|
+
1,
|
|
82
|
+
1,
|
|
83
|
+
0,
|
|
84
|
+
1,
|
|
85
|
+
-1,
|
|
86
|
+
1,
|
|
87
|
+
0,
|
|
88
|
+
-1,
|
|
89
|
+
1,
|
|
90
|
+
1,
|
|
91
|
+
0,
|
|
92
|
+
-1,
|
|
93
|
+
-1,
|
|
94
|
+
-1,
|
|
95
|
+
0,
|
|
96
|
+
1,
|
|
97
|
+
1,
|
|
98
|
+
-1,
|
|
99
|
+
0,
|
|
100
|
+
1,
|
|
101
|
+
-1,
|
|
102
|
+
-1,
|
|
103
|
+
0,
|
|
104
|
+
-1,
|
|
105
|
+
1,
|
|
106
|
+
-1,
|
|
107
|
+
0,
|
|
108
|
+
-1,
|
|
109
|
+
-1,
|
|
110
|
+
1,
|
|
111
|
+
1,
|
|
112
|
+
0,
|
|
113
|
+
1,
|
|
114
|
+
1,
|
|
115
|
+
1,
|
|
116
|
+
0,
|
|
117
|
+
-1,
|
|
118
|
+
1,
|
|
119
|
+
-1,
|
|
120
|
+
0,
|
|
121
|
+
1,
|
|
122
|
+
1,
|
|
123
|
+
-1,
|
|
124
|
+
0,
|
|
125
|
+
-1,
|
|
126
|
+
-1,
|
|
127
|
+
1,
|
|
128
|
+
0,
|
|
129
|
+
1,
|
|
130
|
+
-1,
|
|
131
|
+
1,
|
|
132
|
+
0,
|
|
133
|
+
-1,
|
|
134
|
+
-1,
|
|
135
|
+
-1,
|
|
136
|
+
0,
|
|
137
|
+
1,
|
|
138
|
+
-1,
|
|
139
|
+
-1,
|
|
140
|
+
0,
|
|
141
|
+
-1,
|
|
142
|
+
1,
|
|
143
|
+
1,
|
|
144
|
+
1,
|
|
145
|
+
0,
|
|
146
|
+
1,
|
|
147
|
+
1,
|
|
148
|
+
-1,
|
|
149
|
+
0,
|
|
150
|
+
1,
|
|
151
|
+
-1,
|
|
152
|
+
1,
|
|
153
|
+
0,
|
|
154
|
+
1,
|
|
155
|
+
-1,
|
|
156
|
+
-1,
|
|
157
|
+
0,
|
|
158
|
+
-1,
|
|
159
|
+
1,
|
|
160
|
+
1,
|
|
161
|
+
0,
|
|
162
|
+
-1,
|
|
163
|
+
1,
|
|
164
|
+
-1,
|
|
165
|
+
0,
|
|
166
|
+
-1,
|
|
167
|
+
-1,
|
|
168
|
+
1,
|
|
169
|
+
0,
|
|
170
|
+
-1,
|
|
171
|
+
-1,
|
|
172
|
+
-1,
|
|
173
|
+
0
|
|
174
|
+
]);
|
|
175
|
+
var tableCache = /* @__PURE__ */ new Map();
|
|
176
|
+
var MAX_CACHED_TABLES = 32;
|
|
177
|
+
function createNoiseTables(seed = 0) {
|
|
178
|
+
const key = seed >>> 0;
|
|
179
|
+
const cached = tableCache.get(key);
|
|
180
|
+
if (cached) return cached;
|
|
181
|
+
const rng = chunkFNR35HTL_cjs.createRng(key);
|
|
182
|
+
const source = new Uint8Array(256);
|
|
183
|
+
for (let i = 0; i < 256; i++) source[i] = i;
|
|
184
|
+
for (let i = 255; i > 0; i--) {
|
|
185
|
+
const j = Math.floor(rng.next() * (i + 1));
|
|
186
|
+
const tmp = source[i];
|
|
187
|
+
source[i] = source[j];
|
|
188
|
+
source[j] = tmp;
|
|
189
|
+
}
|
|
190
|
+
const perm = new Uint8Array(512);
|
|
191
|
+
const permMod12 = new Uint8Array(512);
|
|
192
|
+
const permMod32 = new Uint8Array(512);
|
|
193
|
+
for (let i = 0; i < 512; i++) {
|
|
194
|
+
const value = source[i & 255];
|
|
195
|
+
perm[i] = value;
|
|
196
|
+
permMod12[i] = value % 12;
|
|
197
|
+
permMod32[i] = value % 32;
|
|
198
|
+
}
|
|
199
|
+
const tables = { perm, permMod12, permMod32 };
|
|
200
|
+
if (tableCache.size >= MAX_CACHED_TABLES) {
|
|
201
|
+
const oldest = tableCache.keys().next();
|
|
202
|
+
if (!oldest.done) tableCache.delete(oldest.value);
|
|
203
|
+
}
|
|
204
|
+
tableCache.set(key, tables);
|
|
205
|
+
return tables;
|
|
206
|
+
}
|
|
207
|
+
function clearNoiseTableCache() {
|
|
208
|
+
tableCache.clear();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// src/noise/perlin.ts
|
|
212
|
+
function fade(t) {
|
|
213
|
+
return t * t * t * (t * (t * 6 - 15) + 10);
|
|
214
|
+
}
|
|
215
|
+
function lerp(a, b, t) {
|
|
216
|
+
return a + t * (b - a);
|
|
217
|
+
}
|
|
218
|
+
function grad2(hash, x, y) {
|
|
219
|
+
switch (hash & 7) {
|
|
220
|
+
case 0:
|
|
221
|
+
return x + y;
|
|
222
|
+
case 1:
|
|
223
|
+
return -x + y;
|
|
224
|
+
case 2:
|
|
225
|
+
return x - y;
|
|
226
|
+
case 3:
|
|
227
|
+
return -x - y;
|
|
228
|
+
case 4:
|
|
229
|
+
return x;
|
|
230
|
+
case 5:
|
|
231
|
+
return -x;
|
|
232
|
+
case 6:
|
|
233
|
+
return y;
|
|
234
|
+
default:
|
|
235
|
+
return -y;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
function grad3(hash, x, y, z) {
|
|
239
|
+
const h = hash & 15;
|
|
240
|
+
const u = h < 8 ? x : y;
|
|
241
|
+
const v = h < 4 ? y : h === 12 || h === 14 ? x : z;
|
|
242
|
+
return (h & 1 ? -u : u) + (h & 2 ? -v : v);
|
|
243
|
+
}
|
|
244
|
+
function createPerlinNoise(seed = 0) {
|
|
245
|
+
const { perm } = createNoiseTables(seed);
|
|
246
|
+
function noise2D(x, y) {
|
|
247
|
+
const xi = Math.floor(x) & 255;
|
|
248
|
+
const yi = Math.floor(y) & 255;
|
|
249
|
+
const xf = x - Math.floor(x);
|
|
250
|
+
const yf = y - Math.floor(y);
|
|
251
|
+
const u = fade(xf);
|
|
252
|
+
const v = fade(yf);
|
|
253
|
+
const aa = perm[perm[xi] + yi];
|
|
254
|
+
const ab = perm[perm[xi] + yi + 1];
|
|
255
|
+
const ba = perm[perm[xi + 1] + yi];
|
|
256
|
+
const bb = perm[perm[xi + 1] + yi + 1];
|
|
257
|
+
const x1 = lerp(grad2(aa, xf, yf), grad2(ba, xf - 1, yf), u);
|
|
258
|
+
const x2 = lerp(grad2(ab, xf, yf - 1), grad2(bb, xf - 1, yf - 1), u);
|
|
259
|
+
return lerp(x1, x2, v) * 0.7071067811865475;
|
|
260
|
+
}
|
|
261
|
+
function noise3D(x, y, z) {
|
|
262
|
+
const xi = Math.floor(x) & 255;
|
|
263
|
+
const yi = Math.floor(y) & 255;
|
|
264
|
+
const zi = Math.floor(z) & 255;
|
|
265
|
+
const xf = x - Math.floor(x);
|
|
266
|
+
const yf = y - Math.floor(y);
|
|
267
|
+
const zf = z - Math.floor(z);
|
|
268
|
+
const u = fade(xf);
|
|
269
|
+
const v = fade(yf);
|
|
270
|
+
const w = fade(zf);
|
|
271
|
+
const a = perm[xi] + yi;
|
|
272
|
+
const aa = perm[a] + zi;
|
|
273
|
+
const ab = perm[a + 1] + zi;
|
|
274
|
+
const b = perm[xi + 1] + yi;
|
|
275
|
+
const ba = perm[b] + zi;
|
|
276
|
+
const bb = perm[b + 1] + zi;
|
|
277
|
+
const x1 = lerp(grad3(perm[aa], xf, yf, zf), grad3(perm[ba], xf - 1, yf, zf), u);
|
|
278
|
+
const x2 = lerp(grad3(perm[ab], xf, yf - 1, zf), grad3(perm[bb], xf - 1, yf - 1, zf), u);
|
|
279
|
+
const y1 = lerp(x1, x2, v);
|
|
280
|
+
const x3 = lerp(grad3(perm[aa + 1], xf, yf, zf - 1), grad3(perm[ba + 1], xf - 1, yf, zf - 1), u);
|
|
281
|
+
const x4 = lerp(
|
|
282
|
+
grad3(perm[ab + 1], xf, yf - 1, zf - 1),
|
|
283
|
+
grad3(perm[bb + 1], xf - 1, yf - 1, zf - 1),
|
|
284
|
+
u
|
|
285
|
+
);
|
|
286
|
+
const y2 = lerp(x3, x4, v);
|
|
287
|
+
return lerp(y1, y2, w);
|
|
288
|
+
}
|
|
289
|
+
return { noise2D, noise3D };
|
|
290
|
+
}
|
|
291
|
+
function createValueNoise(seed = 0) {
|
|
292
|
+
const { perm } = createNoiseTables(seed);
|
|
293
|
+
const valueAt = (x, y) => perm[perm[x & 255] + (y & 255)] / 255 * 2 - 1;
|
|
294
|
+
return {
|
|
295
|
+
noise2D(x, y) {
|
|
296
|
+
const xi = Math.floor(x);
|
|
297
|
+
const yi = Math.floor(y);
|
|
298
|
+
const u = fade(x - xi);
|
|
299
|
+
const v = fade(y - yi);
|
|
300
|
+
const x1 = lerp(valueAt(xi, yi), valueAt(xi + 1, yi), u);
|
|
301
|
+
const x2 = lerp(valueAt(xi, yi + 1), valueAt(xi + 1, yi + 1), u);
|
|
302
|
+
return lerp(x1, x2, v);
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// src/noise/simplex.ts
|
|
308
|
+
var F2 = 0.5 * (Math.sqrt(3) - 1);
|
|
309
|
+
var G2 = (3 - Math.sqrt(3)) / 6;
|
|
310
|
+
var F3 = 1 / 3;
|
|
311
|
+
var G3 = 1 / 6;
|
|
312
|
+
var F4 = (Math.sqrt(5) - 1) / 4;
|
|
313
|
+
var G4 = (5 - Math.sqrt(5)) / 20;
|
|
314
|
+
function createSimplexNoise(seed = 0) {
|
|
315
|
+
const { perm, permMod12, permMod32 } = createNoiseTables(seed);
|
|
316
|
+
function noise2D(x, y) {
|
|
317
|
+
const s = (x + y) * F2;
|
|
318
|
+
const i = Math.floor(x + s);
|
|
319
|
+
const j = Math.floor(y + s);
|
|
320
|
+
const t = (i + j) * G2;
|
|
321
|
+
const x0 = x - (i - t);
|
|
322
|
+
const y0 = y - (j - t);
|
|
323
|
+
const i1 = x0 > y0 ? 1 : 0;
|
|
324
|
+
const j1 = x0 > y0 ? 0 : 1;
|
|
325
|
+
const x1 = x0 - i1 + G2;
|
|
326
|
+
const y1 = y0 - j1 + G2;
|
|
327
|
+
const x2 = x0 - 1 + 2 * G2;
|
|
328
|
+
const y2 = y0 - 1 + 2 * G2;
|
|
329
|
+
const ii = i & 255;
|
|
330
|
+
const jj = j & 255;
|
|
331
|
+
let n0 = 0;
|
|
332
|
+
let n1 = 0;
|
|
333
|
+
let n2 = 0;
|
|
334
|
+
let t0 = 0.5 - x0 * x0 - y0 * y0;
|
|
335
|
+
if (t0 >= 0) {
|
|
336
|
+
const gi0 = permMod12[ii + perm[jj]] * 3;
|
|
337
|
+
t0 *= t0;
|
|
338
|
+
n0 = t0 * t0 * (GRAD3[gi0] * x0 + GRAD3[gi0 + 1] * y0);
|
|
339
|
+
}
|
|
340
|
+
let t1 = 0.5 - x1 * x1 - y1 * y1;
|
|
341
|
+
if (t1 >= 0) {
|
|
342
|
+
const gi1 = permMod12[ii + i1 + perm[jj + j1]] * 3;
|
|
343
|
+
t1 *= t1;
|
|
344
|
+
n1 = t1 * t1 * (GRAD3[gi1] * x1 + GRAD3[gi1 + 1] * y1);
|
|
345
|
+
}
|
|
346
|
+
let t2 = 0.5 - x2 * x2 - y2 * y2;
|
|
347
|
+
if (t2 >= 0) {
|
|
348
|
+
const gi2 = permMod12[ii + 1 + perm[jj + 1]] * 3;
|
|
349
|
+
t2 *= t2;
|
|
350
|
+
n2 = t2 * t2 * (GRAD3[gi2] * x2 + GRAD3[gi2 + 1] * y2);
|
|
351
|
+
}
|
|
352
|
+
return 70 * (n0 + n1 + n2);
|
|
353
|
+
}
|
|
354
|
+
function noise3D(x, y, z) {
|
|
355
|
+
const s = (x + y + z) * F3;
|
|
356
|
+
const i = Math.floor(x + s);
|
|
357
|
+
const j = Math.floor(y + s);
|
|
358
|
+
const k = Math.floor(z + s);
|
|
359
|
+
const t = (i + j + k) * G3;
|
|
360
|
+
const x0 = x - (i - t);
|
|
361
|
+
const y0 = y - (j - t);
|
|
362
|
+
const z0 = z - (k - t);
|
|
363
|
+
let i1, j1, k1;
|
|
364
|
+
let i2, j2, k2;
|
|
365
|
+
if (x0 >= y0) {
|
|
366
|
+
if (y0 >= z0) {
|
|
367
|
+
i1 = 1;
|
|
368
|
+
j1 = 0;
|
|
369
|
+
k1 = 0;
|
|
370
|
+
i2 = 1;
|
|
371
|
+
j2 = 1;
|
|
372
|
+
k2 = 0;
|
|
373
|
+
} else if (x0 >= z0) {
|
|
374
|
+
i1 = 1;
|
|
375
|
+
j1 = 0;
|
|
376
|
+
k1 = 0;
|
|
377
|
+
i2 = 1;
|
|
378
|
+
j2 = 0;
|
|
379
|
+
k2 = 1;
|
|
380
|
+
} else {
|
|
381
|
+
i1 = 0;
|
|
382
|
+
j1 = 0;
|
|
383
|
+
k1 = 1;
|
|
384
|
+
i2 = 1;
|
|
385
|
+
j2 = 0;
|
|
386
|
+
k2 = 1;
|
|
387
|
+
}
|
|
388
|
+
} else {
|
|
389
|
+
if (y0 < z0) {
|
|
390
|
+
i1 = 0;
|
|
391
|
+
j1 = 0;
|
|
392
|
+
k1 = 1;
|
|
393
|
+
i2 = 0;
|
|
394
|
+
j2 = 1;
|
|
395
|
+
k2 = 1;
|
|
396
|
+
} else if (x0 < z0) {
|
|
397
|
+
i1 = 0;
|
|
398
|
+
j1 = 1;
|
|
399
|
+
k1 = 0;
|
|
400
|
+
i2 = 0;
|
|
401
|
+
j2 = 1;
|
|
402
|
+
k2 = 1;
|
|
403
|
+
} else {
|
|
404
|
+
i1 = 0;
|
|
405
|
+
j1 = 1;
|
|
406
|
+
k1 = 0;
|
|
407
|
+
i2 = 1;
|
|
408
|
+
j2 = 1;
|
|
409
|
+
k2 = 0;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
const x1 = x0 - i1 + G3;
|
|
413
|
+
const y1 = y0 - j1 + G3;
|
|
414
|
+
const z1 = z0 - k1 + G3;
|
|
415
|
+
const x2 = x0 - i2 + 2 * G3;
|
|
416
|
+
const y2 = y0 - j2 + 2 * G3;
|
|
417
|
+
const z2 = z0 - k2 + 2 * G3;
|
|
418
|
+
const x3 = x0 - 1 + 3 * G3;
|
|
419
|
+
const y3 = y0 - 1 + 3 * G3;
|
|
420
|
+
const z3 = z0 - 1 + 3 * G3;
|
|
421
|
+
const ii = i & 255;
|
|
422
|
+
const jj = j & 255;
|
|
423
|
+
const kk = k & 255;
|
|
424
|
+
let n0 = 0;
|
|
425
|
+
let n1 = 0;
|
|
426
|
+
let n2 = 0;
|
|
427
|
+
let n3 = 0;
|
|
428
|
+
let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0;
|
|
429
|
+
if (t0 >= 0) {
|
|
430
|
+
const gi0 = permMod12[ii + perm[jj + perm[kk]]] * 3;
|
|
431
|
+
t0 *= t0;
|
|
432
|
+
n0 = t0 * t0 * (GRAD3[gi0] * x0 + GRAD3[gi0 + 1] * y0 + GRAD3[gi0 + 2] * z0);
|
|
433
|
+
}
|
|
434
|
+
let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1;
|
|
435
|
+
if (t1 >= 0) {
|
|
436
|
+
const gi1 = permMod12[ii + i1 + perm[jj + j1 + perm[kk + k1]]] * 3;
|
|
437
|
+
t1 *= t1;
|
|
438
|
+
n1 = t1 * t1 * (GRAD3[gi1] * x1 + GRAD3[gi1 + 1] * y1 + GRAD3[gi1 + 2] * z1);
|
|
439
|
+
}
|
|
440
|
+
let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2;
|
|
441
|
+
if (t2 >= 0) {
|
|
442
|
+
const gi2 = permMod12[ii + i2 + perm[jj + j2 + perm[kk + k2]]] * 3;
|
|
443
|
+
t2 *= t2;
|
|
444
|
+
n2 = t2 * t2 * (GRAD3[gi2] * x2 + GRAD3[gi2 + 1] * y2 + GRAD3[gi2 + 2] * z2);
|
|
445
|
+
}
|
|
446
|
+
let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3;
|
|
447
|
+
if (t3 >= 0) {
|
|
448
|
+
const gi3 = permMod12[ii + 1 + perm[jj + 1 + perm[kk + 1]]] * 3;
|
|
449
|
+
t3 *= t3;
|
|
450
|
+
n3 = t3 * t3 * (GRAD3[gi3] * x3 + GRAD3[gi3 + 1] * y3 + GRAD3[gi3 + 2] * z3);
|
|
451
|
+
}
|
|
452
|
+
return 32 * (n0 + n1 + n2 + n3);
|
|
453
|
+
}
|
|
454
|
+
function noise4D(x, y, z, w) {
|
|
455
|
+
const s = (x + y + z + w) * F4;
|
|
456
|
+
const i = Math.floor(x + s);
|
|
457
|
+
const j = Math.floor(y + s);
|
|
458
|
+
const k = Math.floor(z + s);
|
|
459
|
+
const l = Math.floor(w + s);
|
|
460
|
+
const t = (i + j + k + l) * G4;
|
|
461
|
+
const x0 = x - (i - t);
|
|
462
|
+
const y0 = y - (j - t);
|
|
463
|
+
const z0 = z - (k - t);
|
|
464
|
+
const w0 = w - (l - t);
|
|
465
|
+
let rankx = 0;
|
|
466
|
+
let ranky = 0;
|
|
467
|
+
let rankz = 0;
|
|
468
|
+
let rankw = 0;
|
|
469
|
+
if (x0 > y0) rankx++;
|
|
470
|
+
else ranky++;
|
|
471
|
+
if (x0 > z0) rankx++;
|
|
472
|
+
else rankz++;
|
|
473
|
+
if (x0 > w0) rankx++;
|
|
474
|
+
else rankw++;
|
|
475
|
+
if (y0 > z0) ranky++;
|
|
476
|
+
else rankz++;
|
|
477
|
+
if (y0 > w0) ranky++;
|
|
478
|
+
else rankw++;
|
|
479
|
+
if (z0 > w0) rankz++;
|
|
480
|
+
else rankw++;
|
|
481
|
+
const i1 = rankx >= 3 ? 1 : 0;
|
|
482
|
+
const j1 = ranky >= 3 ? 1 : 0;
|
|
483
|
+
const k1 = rankz >= 3 ? 1 : 0;
|
|
484
|
+
const l1 = rankw >= 3 ? 1 : 0;
|
|
485
|
+
const i2 = rankx >= 2 ? 1 : 0;
|
|
486
|
+
const j2 = ranky >= 2 ? 1 : 0;
|
|
487
|
+
const k2 = rankz >= 2 ? 1 : 0;
|
|
488
|
+
const l2 = rankw >= 2 ? 1 : 0;
|
|
489
|
+
const i3 = rankx >= 1 ? 1 : 0;
|
|
490
|
+
const j3 = ranky >= 1 ? 1 : 0;
|
|
491
|
+
const k3 = rankz >= 1 ? 1 : 0;
|
|
492
|
+
const l3 = rankw >= 1 ? 1 : 0;
|
|
493
|
+
const x1 = x0 - i1 + G4;
|
|
494
|
+
const y1 = y0 - j1 + G4;
|
|
495
|
+
const z1 = z0 - k1 + G4;
|
|
496
|
+
const w1 = w0 - l1 + G4;
|
|
497
|
+
const x2 = x0 - i2 + 2 * G4;
|
|
498
|
+
const y2 = y0 - j2 + 2 * G4;
|
|
499
|
+
const z2 = z0 - k2 + 2 * G4;
|
|
500
|
+
const w2 = w0 - l2 + 2 * G4;
|
|
501
|
+
const x3 = x0 - i3 + 3 * G4;
|
|
502
|
+
const y3 = y0 - j3 + 3 * G4;
|
|
503
|
+
const z3 = z0 - k3 + 3 * G4;
|
|
504
|
+
const w3 = w0 - l3 + 3 * G4;
|
|
505
|
+
const x4 = x0 - 1 + 4 * G4;
|
|
506
|
+
const y4 = y0 - 1 + 4 * G4;
|
|
507
|
+
const z4 = z0 - 1 + 4 * G4;
|
|
508
|
+
const w4 = w0 - 1 + 4 * G4;
|
|
509
|
+
const ii = i & 255;
|
|
510
|
+
const jj = j & 255;
|
|
511
|
+
const kk = k & 255;
|
|
512
|
+
const ll = l & 255;
|
|
513
|
+
let n = 0;
|
|
514
|
+
let t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0;
|
|
515
|
+
if (t0 >= 0) {
|
|
516
|
+
const gi = permMod32[ii + perm[jj + perm[kk + perm[ll]]]] * 4;
|
|
517
|
+
t0 *= t0;
|
|
518
|
+
n += t0 * t0 * (GRAD4[gi] * x0 + GRAD4[gi + 1] * y0 + GRAD4[gi + 2] * z0 + GRAD4[gi + 3] * w0);
|
|
519
|
+
}
|
|
520
|
+
let t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1;
|
|
521
|
+
if (t1 >= 0) {
|
|
522
|
+
const gi = permMod32[ii + i1 + perm[jj + j1 + perm[kk + k1 + perm[ll + l1]]]] * 4;
|
|
523
|
+
t1 *= t1;
|
|
524
|
+
n += t1 * t1 * (GRAD4[gi] * x1 + GRAD4[gi + 1] * y1 + GRAD4[gi + 2] * z1 + GRAD4[gi + 3] * w1);
|
|
525
|
+
}
|
|
526
|
+
let t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2;
|
|
527
|
+
if (t2 >= 0) {
|
|
528
|
+
const gi = permMod32[ii + i2 + perm[jj + j2 + perm[kk + k2 + perm[ll + l2]]]] * 4;
|
|
529
|
+
t2 *= t2;
|
|
530
|
+
n += t2 * t2 * (GRAD4[gi] * x2 + GRAD4[gi + 1] * y2 + GRAD4[gi + 2] * z2 + GRAD4[gi + 3] * w2);
|
|
531
|
+
}
|
|
532
|
+
let t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3;
|
|
533
|
+
if (t3 >= 0) {
|
|
534
|
+
const gi = permMod32[ii + i3 + perm[jj + j3 + perm[kk + k3 + perm[ll + l3]]]] * 4;
|
|
535
|
+
t3 *= t3;
|
|
536
|
+
n += t3 * t3 * (GRAD4[gi] * x3 + GRAD4[gi + 1] * y3 + GRAD4[gi + 2] * z3 + GRAD4[gi + 3] * w3);
|
|
537
|
+
}
|
|
538
|
+
let t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4;
|
|
539
|
+
if (t4 >= 0) {
|
|
540
|
+
const gi = permMod32[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] * 4;
|
|
541
|
+
t4 *= t4;
|
|
542
|
+
n += t4 * t4 * (GRAD4[gi] * x4 + GRAD4[gi + 1] * y4 + GRAD4[gi + 2] * z4 + GRAD4[gi + 3] * w4);
|
|
543
|
+
}
|
|
544
|
+
return 27 * n;
|
|
545
|
+
}
|
|
546
|
+
return { noise2D, noise3D, noise4D };
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// src/noise/fractal.ts
|
|
550
|
+
var FRACTAL_DEFAULTS = {
|
|
551
|
+
octaves: 4,
|
|
552
|
+
lacunarity: 2,
|
|
553
|
+
gain: 0.5,
|
|
554
|
+
frequency: 1,
|
|
555
|
+
amplitude: 1,
|
|
556
|
+
normalize: true
|
|
557
|
+
};
|
|
558
|
+
function resolve(options) {
|
|
559
|
+
return {
|
|
560
|
+
octaves: Math.max(1, Math.floor(options?.octaves ?? FRACTAL_DEFAULTS.octaves)),
|
|
561
|
+
lacunarity: options?.lacunarity ?? FRACTAL_DEFAULTS.lacunarity,
|
|
562
|
+
gain: options?.gain ?? FRACTAL_DEFAULTS.gain,
|
|
563
|
+
frequency: options?.frequency ?? FRACTAL_DEFAULTS.frequency,
|
|
564
|
+
amplitude: options?.amplitude ?? FRACTAL_DEFAULTS.amplitude,
|
|
565
|
+
normalize: options?.normalize ?? FRACTAL_DEFAULTS.normalize
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
function fbm2D(noise, options) {
|
|
569
|
+
const { octaves, lacunarity, gain, frequency, amplitude, normalize } = resolve(options);
|
|
570
|
+
return (x, y) => {
|
|
571
|
+
let sum = 0;
|
|
572
|
+
let amp = amplitude;
|
|
573
|
+
let freq = frequency;
|
|
574
|
+
let total = 0;
|
|
575
|
+
for (let i = 0; i < octaves; i++) {
|
|
576
|
+
sum += noise(x * freq, y * freq) * amp;
|
|
577
|
+
total += amp;
|
|
578
|
+
amp *= gain;
|
|
579
|
+
freq *= lacunarity;
|
|
580
|
+
}
|
|
581
|
+
return normalize && total > 0 ? sum / total : sum;
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
function fbm3D(noise, options) {
|
|
585
|
+
const { octaves, lacunarity, gain, frequency, amplitude, normalize } = resolve(options);
|
|
586
|
+
return (x, y, z) => {
|
|
587
|
+
let sum = 0;
|
|
588
|
+
let amp = amplitude;
|
|
589
|
+
let freq = frequency;
|
|
590
|
+
let total = 0;
|
|
591
|
+
for (let i = 0; i < octaves; i++) {
|
|
592
|
+
sum += noise(x * freq, y * freq, z * freq) * amp;
|
|
593
|
+
total += amp;
|
|
594
|
+
amp *= gain;
|
|
595
|
+
freq *= lacunarity;
|
|
596
|
+
}
|
|
597
|
+
return normalize && total > 0 ? sum / total : sum;
|
|
598
|
+
};
|
|
599
|
+
}
|
|
600
|
+
function ridged2D(noise, options) {
|
|
601
|
+
const { octaves, lacunarity, gain, frequency, amplitude } = resolve(options);
|
|
602
|
+
return (x, y) => {
|
|
603
|
+
let sum = 0;
|
|
604
|
+
let amp = amplitude;
|
|
605
|
+
let freq = frequency;
|
|
606
|
+
let total = 0;
|
|
607
|
+
for (let i = 0; i < octaves; i++) {
|
|
608
|
+
const n = 1 - Math.abs(noise(x * freq, y * freq));
|
|
609
|
+
sum += n * n * amp;
|
|
610
|
+
total += amp;
|
|
611
|
+
amp *= gain;
|
|
612
|
+
freq *= lacunarity;
|
|
613
|
+
}
|
|
614
|
+
return total > 0 ? chunkILKUL7GD_cjs.clamp(sum / total, 0, 1) : 0;
|
|
615
|
+
};
|
|
616
|
+
}
|
|
617
|
+
function turbulence2D(noise, options) {
|
|
618
|
+
const { octaves, lacunarity, gain, frequency, amplitude } = resolve(options);
|
|
619
|
+
return (x, y) => {
|
|
620
|
+
let sum = 0;
|
|
621
|
+
let amp = amplitude;
|
|
622
|
+
let freq = frequency;
|
|
623
|
+
let total = 0;
|
|
624
|
+
for (let i = 0; i < octaves; i++) {
|
|
625
|
+
sum += Math.abs(noise(x * freq, y * freq)) * amp;
|
|
626
|
+
total += amp;
|
|
627
|
+
amp *= gain;
|
|
628
|
+
freq *= lacunarity;
|
|
629
|
+
}
|
|
630
|
+
return total > 0 ? chunkILKUL7GD_cjs.clamp(sum / total, 0, 1) : 0;
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
function warp2D(noise, strength = 1, offset = 5.2) {
|
|
634
|
+
return (x, y) => {
|
|
635
|
+
const qx = noise(x, y);
|
|
636
|
+
const qy = noise(x + offset, y + offset * 0.7);
|
|
637
|
+
return noise(x + strength * qx, y + strength * qy);
|
|
638
|
+
};
|
|
639
|
+
}
|
|
640
|
+
function curl2D(noise, epsilon = 1e-4) {
|
|
641
|
+
const inv = 1 / (2 * epsilon);
|
|
642
|
+
return (x, y) => {
|
|
643
|
+
const dNdy = (noise(x, y + epsilon) - noise(x, y - epsilon)) * inv;
|
|
644
|
+
const dNdx = (noise(x + epsilon, y) - noise(x - epsilon, y)) * inv;
|
|
645
|
+
return { x: dNdy, y: -dNdx };
|
|
646
|
+
};
|
|
647
|
+
}
|
|
648
|
+
function curl2DAnimated(noise, epsilon = 1e-4) {
|
|
649
|
+
const inv = 1 / (2 * epsilon);
|
|
650
|
+
return (x, y, t) => {
|
|
651
|
+
const dNdy = (noise(x, y + epsilon, t) - noise(x, y - epsilon, t)) * inv;
|
|
652
|
+
const dNdx = (noise(x + epsilon, y, t) - noise(x - epsilon, y, t)) * inv;
|
|
653
|
+
return { x: dNdy, y: -dNdx };
|
|
654
|
+
};
|
|
655
|
+
}
|
|
656
|
+
function tileable2D(noise4D, width, height) {
|
|
657
|
+
const TAU = Math.PI * 2;
|
|
658
|
+
const rx = width / TAU;
|
|
659
|
+
const ry = height / TAU;
|
|
660
|
+
return (x, y) => {
|
|
661
|
+
const u = x / Math.max(1e-6, width) * TAU;
|
|
662
|
+
const v = y / Math.max(1e-6, height) * TAU;
|
|
663
|
+
return noise4D(Math.cos(u) * rx, Math.sin(u) * rx, Math.cos(v) * ry, Math.sin(v) * ry);
|
|
664
|
+
};
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
// src/noise/index.ts
|
|
668
|
+
function createNoise(seed = 0) {
|
|
669
|
+
const numericSeed = typeof seed === "string" ? hashSeed(seed) : seed;
|
|
670
|
+
const simplex = createSimplexNoise(numericSeed);
|
|
671
|
+
const perlin = createPerlinNoise(numericSeed);
|
|
672
|
+
const value = createValueNoise(numericSeed);
|
|
673
|
+
return {
|
|
674
|
+
seed: numericSeed,
|
|
675
|
+
/** Raw single-octave sources. */
|
|
676
|
+
simplex2D: simplex.noise2D,
|
|
677
|
+
simplex3D: simplex.noise3D,
|
|
678
|
+
simplex4D: simplex.noise4D,
|
|
679
|
+
perlin2D: perlin.noise2D,
|
|
680
|
+
perlin3D: perlin.noise3D,
|
|
681
|
+
value2D: value.noise2D,
|
|
682
|
+
/** Fractal compositions over simplex. */
|
|
683
|
+
fbm2D: (options) => fbm2D(simplex.noise2D, options),
|
|
684
|
+
fbm3D: (options) => fbm3D(simplex.noise3D, options),
|
|
685
|
+
ridged2D: (options) => ridged2D(simplex.noise2D, options),
|
|
686
|
+
turbulence2D: (options) => turbulence2D(simplex.noise2D, options),
|
|
687
|
+
/** Domain-warped fBm — the organic, marbled look. */
|
|
688
|
+
warped2D: (strength = 1, options) => warp2D(fbm2D(simplex.noise2D, options), strength),
|
|
689
|
+
/** Divergence-free flow field for particle advection. */
|
|
690
|
+
curl: (options) => curl2D(fbm2D(simplex.noise2D, options)),
|
|
691
|
+
curlAnimated: (options) => curl2DAnimated(fbm3D(simplex.noise3D, options)),
|
|
692
|
+
/** Seamlessly tiling field over the given extent. */
|
|
693
|
+
tileable: (width, height) => tileable2D(simplex.noise4D, width, height)
|
|
694
|
+
};
|
|
695
|
+
}
|
|
696
|
+
function hashSeed(input) {
|
|
697
|
+
let hash = 2166136261;
|
|
698
|
+
for (let i = 0; i < input.length; i++) {
|
|
699
|
+
hash ^= input.charCodeAt(i);
|
|
700
|
+
hash = Math.imul(hash, 16777619);
|
|
701
|
+
}
|
|
702
|
+
return hash >>> 0;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
exports.FRACTAL_DEFAULTS = FRACTAL_DEFAULTS;
|
|
706
|
+
exports.GRAD3 = GRAD3;
|
|
707
|
+
exports.GRAD4 = GRAD4;
|
|
708
|
+
exports.clearNoiseTableCache = clearNoiseTableCache;
|
|
709
|
+
exports.createNoise = createNoise;
|
|
710
|
+
exports.createNoiseTables = createNoiseTables;
|
|
711
|
+
exports.createPerlinNoise = createPerlinNoise;
|
|
712
|
+
exports.createSimplexNoise = createSimplexNoise;
|
|
713
|
+
exports.createValueNoise = createValueNoise;
|
|
714
|
+
exports.curl2D = curl2D;
|
|
715
|
+
exports.curl2DAnimated = curl2DAnimated;
|
|
716
|
+
exports.fbm2D = fbm2D;
|
|
717
|
+
exports.fbm3D = fbm3D;
|
|
718
|
+
exports.ridged2D = ridged2D;
|
|
719
|
+
exports.tileable2D = tileable2D;
|
|
720
|
+
exports.turbulence2D = turbulence2D;
|
|
721
|
+
exports.warp2D = warp2D;
|
|
722
|
+
//# sourceMappingURL=chunk-DXJ63QAR.cjs.map
|
|
723
|
+
//# sourceMappingURL=chunk-DXJ63QAR.cjs.map
|