@benev/math 0.3.0-2 → 0.3.0-4
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/package.json +1 -1
- package/s/index.ts +1 -2
- package/s/tools/noise.ts +5 -15
- package/s/tools/randy.ts +4 -4
- package/x/index.d.ts +1 -1
- package/x/index.js +1 -1
- package/x/tools/noise.d.ts +1 -8
- package/x/tools/noise.js +5 -16
- package/x/tools/noise.js.map +1 -1
- package/x/tools/randy.d.ts +2 -2
- package/x/tools/randy.js +4 -4
- package/x/tools/randy.js.map +1 -1
- package/s/tools/make-noise.ts +0 -13
- package/x/concepts/angles.d.ts +0 -29
- package/x/concepts/angles.js +0 -62
- package/x/concepts/angles.js.map +0 -1
- package/x/concepts/circular.d.ts +0 -17
- package/x/concepts/circular.js +0 -70
- package/x/concepts/circular.js.map +0 -1
- package/x/concepts/noise.d.ts +0 -9
- package/x/concepts/noise.js +0 -20
- package/x/concepts/noise.js.map +0 -1
- package/x/concepts/quat.d.ts +0 -35
- package/x/concepts/quat.js +0 -110
- package/x/concepts/quat.js.map +0 -1
- package/x/concepts/randy.d.ts +0 -39
- package/x/concepts/randy.js +0 -95
- package/x/concepts/randy.js.map +0 -1
- package/x/concepts/scalar.d.ts +0 -51
- package/x/concepts/scalar.js +0 -219
- package/x/concepts/scalar.js.map +0 -1
- package/x/concepts/spline.d.ts +0 -9
- package/x/concepts/spline.js +0 -59
- package/x/concepts/spline.js.map +0 -1
- package/x/concepts/vec2.d.ts +0 -114
- package/x/concepts/vec2.js +0 -314
- package/x/concepts/vec2.js.map +0 -1
- package/x/concepts/vec3.d.ts +0 -117
- package/x/concepts/vec3.js +0 -357
- package/x/concepts/vec3.js.map +0 -1
- package/x/concepts/vec4.d.ts +0 -21
- package/x/concepts/vec4.js +0 -62
- package/x/concepts/vec4.js.map +0 -1
- package/x/helpers/angles.d.ts +0 -19
- package/x/helpers/angles.js +0 -41
- package/x/helpers/angles.js.map +0 -1
- package/x/helpers/circular.d.ts +0 -17
- package/x/helpers/circular.js +0 -71
- package/x/helpers/circular.js.map +0 -1
- package/x/helpers/noise.d.ts +0 -9
- package/x/helpers/noise.js +0 -20
- package/x/helpers/noise.js.map +0 -1
- package/x/helpers/randy.d.ts +0 -31
- package/x/helpers/randy.js +0 -85
- package/x/helpers/randy.js.map +0 -1
- package/x/helpers/scalar.d.ts +0 -51
- package/x/helpers/scalar.js +0 -219
- package/x/helpers/scalar.js.map +0 -1
- package/x/helpers/spline.d.ts +0 -9
- package/x/helpers/spline.js +0 -61
- package/x/helpers/spline.js.map +0 -1
- package/x/importmap.json +0 -7
- package/x/primitives/circular.d.ts +0 -17
- package/x/primitives/circular.js +0 -70
- package/x/primitives/circular.js.map +0 -1
- package/x/primitives/quat.d.ts +0 -35
- package/x/primitives/quat.js +0 -110
- package/x/primitives/quat.js.map +0 -1
- package/x/primitives/scalar.d.ts +0 -51
- package/x/primitives/scalar.js +0 -219
- package/x/primitives/scalar.js.map +0 -1
- package/x/primitives/vec2.d.ts +0 -114
- package/x/primitives/vec2.js +0 -319
- package/x/primitives/vec2.js.map +0 -1
- package/x/primitives/vec3.d.ts +0 -117
- package/x/primitives/vec3.js +0 -363
- package/x/primitives/vec3.js.map +0 -1
- package/x/primitives/vec4.d.ts +0 -21
- package/x/primitives/vec4.js +0 -62
- package/x/primitives/vec4.js.map +0 -1
- package/x/tools/circular.d.ts +0 -17
- package/x/tools/circular.js +0 -71
- package/x/tools/circular.js.map +0 -1
- package/x/tools/scalar.d.ts +0 -51
- package/x/tools/scalar.js +0 -219
- package/x/tools/scalar.js.map +0 -1
- package/x/utils/angles.d.ts +0 -19
- package/x/utils/angles.js +0 -41
- package/x/utils/angles.js.map +0 -1
- package/x/utils/circular.d.ts +0 -17
- package/x/utils/circular.js +0 -70
- package/x/utils/circular.js.map +0 -1
- package/x/utils/noise.d.ts +0 -9
- package/x/utils/noise.js +0 -20
- package/x/utils/noise.js.map +0 -1
- package/x/utils/randy.d.ts +0 -31
- package/x/utils/randy.js +0 -85
- package/x/utils/randy.js.map +0 -1
- package/x/utils/scalar.d.ts +0 -51
- package/x/utils/scalar.js +0 -219
- package/x/utils/scalar.js.map +0 -1
- package/x/utils/spline.d.ts +0 -9
- package/x/utils/spline.js +0 -61
- package/x/utils/spline.js.map +0 -1
package/package.json
CHANGED
package/s/index.ts
CHANGED
|
@@ -7,9 +7,8 @@ export * from "./core/vec3.js"
|
|
|
7
7
|
export * from "./core/vec4.js"
|
|
8
8
|
|
|
9
9
|
export * from "./tools/angles.js"
|
|
10
|
-
export * from "./tools/noise.js"
|
|
11
10
|
export * from "./tools/randy.js"
|
|
12
|
-
export * from "./tools/
|
|
11
|
+
export * from "./tools/noise.js"
|
|
13
12
|
export * as spline from "./tools/spline.js"
|
|
14
13
|
|
|
15
14
|
export * from "./optimizers/hash-map.js"
|
package/s/tools/noise.ts
CHANGED
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
import {Randy, Random} from "./randy.js"
|
|
3
2
|
import {createNoise2D} from "simplex-noise"
|
|
3
|
+
import {Random} from "./randy.js"
|
|
4
4
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
const random = Randy.makeRandom(seed)
|
|
8
|
-
return new this(random)
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
#n2d: (x: number, y: number) => number
|
|
12
|
-
|
|
13
|
-
constructor(public readonly random: Random) {
|
|
14
|
-
this.#n2d = createNoise2D(random)
|
|
15
|
-
}
|
|
5
|
+
export function makeNoiseSampler(random: Random) {
|
|
6
|
+
const noise2d = createNoise2D(random)
|
|
16
7
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const s = this.#n2d(x * scale, y * scale)
|
|
8
|
+
return (x: number, y = 0, scale = 1) => {
|
|
9
|
+
const s = noise2d(x * scale, y * scale)
|
|
20
10
|
return (s + 1) / 2
|
|
21
11
|
}
|
|
22
12
|
}
|
package/s/tools/randy.ts
CHANGED
|
@@ -5,17 +5,17 @@ export type Random = () => number
|
|
|
5
5
|
export class Randy {
|
|
6
6
|
random: Random
|
|
7
7
|
|
|
8
|
-
constructor(public readonly seed
|
|
9
|
-
this.random = Randy.
|
|
8
|
+
constructor(public readonly seed = Randy.seed()) {
|
|
9
|
+
this.random = Randy.random(seed)
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
/** obtain a random positive 32 bit integer. */
|
|
13
|
-
static
|
|
13
|
+
static seed() {
|
|
14
14
|
return Math.floor(Math.random() * 2147483647)
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/** seed a pseudo-random number generator function that produces numbers between 0 and 1. */
|
|
18
|
-
static
|
|
18
|
+
static random(seed = Randy.seed()): Random {
|
|
19
19
|
seed = (seed ^ 0x6D2B79F5) + 0x1E35A7BD
|
|
20
20
|
seed = (Math.abs(seed | 0) % 2147483647) || 1
|
|
21
21
|
|
package/x/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ export * from "./core/vec2.js";
|
|
|
5
5
|
export * from "./core/vec3.js";
|
|
6
6
|
export * from "./core/vec4.js";
|
|
7
7
|
export * from "./tools/angles.js";
|
|
8
|
-
export * from "./tools/noise.js";
|
|
9
8
|
export * from "./tools/randy.js";
|
|
9
|
+
export * from "./tools/noise.js";
|
|
10
10
|
export * as spline from "./tools/spline.js";
|
|
11
11
|
export * from "./optimizers/hash-map.js";
|
|
12
12
|
export * from "./optimizers/hash-set.js";
|
package/x/index.js
CHANGED
|
@@ -5,8 +5,8 @@ export * from "./core/vec2.js";
|
|
|
5
5
|
export * from "./core/vec3.js";
|
|
6
6
|
export * from "./core/vec4.js";
|
|
7
7
|
export * from "./tools/angles.js";
|
|
8
|
-
export * from "./tools/noise.js";
|
|
9
8
|
export * from "./tools/randy.js";
|
|
9
|
+
export * from "./tools/noise.js";
|
|
10
10
|
export * as spline from "./tools/spline.js";
|
|
11
11
|
export * from "./optimizers/hash-map.js";
|
|
12
12
|
export * from "./optimizers/hash-set.js";
|
package/x/tools/noise.d.ts
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
1
|
import { Random } from "./randy.js";
|
|
2
|
-
export declare
|
|
3
|
-
#private;
|
|
4
|
-
readonly random: Random;
|
|
5
|
-
static seed(seed?: number): Noise;
|
|
6
|
-
constructor(random: Random);
|
|
7
|
-
/** sample the noise field, returning a number from 0 to 1. */
|
|
8
|
-
sample(x: number, y?: number, scale?: number): number;
|
|
9
|
-
}
|
|
2
|
+
export declare function makeNoiseSampler(random: Random): (x: number, y?: number, scale?: number) => number;
|
package/x/tools/noise.js
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
import { Randy } from "./randy.js";
|
|
2
1
|
import { createNoise2D } from "simplex-noise";
|
|
3
|
-
export
|
|
4
|
-
random;
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
return new this(random);
|
|
8
|
-
}
|
|
9
|
-
#n2d;
|
|
10
|
-
constructor(random) {
|
|
11
|
-
this.random = random;
|
|
12
|
-
this.#n2d = createNoise2D(random);
|
|
13
|
-
}
|
|
14
|
-
/** sample the noise field, returning a number from 0 to 1. */
|
|
15
|
-
sample(x, y = 0, scale = 1) {
|
|
16
|
-
const s = this.#n2d(x * scale, y * scale);
|
|
2
|
+
export function makeNoiseSampler(random) {
|
|
3
|
+
const noise2d = createNoise2D(random);
|
|
4
|
+
return (x, y = 0, scale = 1) => {
|
|
5
|
+
const s = noise2d(x * scale, y * scale);
|
|
17
6
|
return (s + 1) / 2;
|
|
18
|
-
}
|
|
7
|
+
};
|
|
19
8
|
}
|
|
20
9
|
//# sourceMappingURL=noise.js.map
|
package/x/tools/noise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noise.js","sourceRoot":"","sources":["../../s/tools/noise.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"noise.js","sourceRoot":"","sources":["../../s/tools/noise.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAA;AAG3C,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAErC,OAAO,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;QACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAA;QACvC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC,CAAA;AACF,CAAC"}
|
package/x/tools/randy.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ export declare class Randy {
|
|
|
5
5
|
random: Random;
|
|
6
6
|
constructor(seed?: number);
|
|
7
7
|
/** obtain a random positive 32 bit integer. */
|
|
8
|
-
static
|
|
8
|
+
static seed(): number;
|
|
9
9
|
/** seed a pseudo-random number generator function that produces numbers between 0 and 1. */
|
|
10
|
-
static
|
|
10
|
+
static random(seed?: number): Random;
|
|
11
11
|
/** obtain a random positive integer. */
|
|
12
12
|
integer(): number;
|
|
13
13
|
/** return true or false, given a 0 to 1 probability fraction. */
|
package/x/tools/randy.js
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
export class Randy {
|
|
3
3
|
seed;
|
|
4
4
|
random;
|
|
5
|
-
constructor(seed = Randy.
|
|
5
|
+
constructor(seed = Randy.seed()) {
|
|
6
6
|
this.seed = seed;
|
|
7
|
-
this.random = Randy.
|
|
7
|
+
this.random = Randy.random(seed);
|
|
8
8
|
}
|
|
9
9
|
/** obtain a random positive 32 bit integer. */
|
|
10
|
-
static
|
|
10
|
+
static seed() {
|
|
11
11
|
return Math.floor(Math.random() * 2147483647);
|
|
12
12
|
}
|
|
13
13
|
/** seed a pseudo-random number generator function that produces numbers between 0 and 1. */
|
|
14
|
-
static
|
|
14
|
+
static random(seed = Randy.seed()) {
|
|
15
15
|
seed = (seed ^ 0x6D2B79F5) + 0x1E35A7BD;
|
|
16
16
|
seed = (Math.abs(seed | 0) % 2147483647) || 1;
|
|
17
17
|
function random() {
|
package/x/tools/randy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"randy.js","sourceRoot":"","sources":["../../s/tools/randy.ts"],"names":[],"mappings":"AAGA,uDAAuD;AACvD,MAAM,OAAO,KAAK;IAGW;IAF5B,MAAM,CAAQ;IAEd,YAA4B,
|
|
1
|
+
{"version":3,"file":"randy.js","sourceRoot":"","sources":["../../s/tools/randy.ts"],"names":[],"mappings":"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"}
|
package/s/tools/make-noise.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import {createNoise2D} from "simplex-noise"
|
|
3
|
-
import {Random} from "./randy.js"
|
|
4
|
-
|
|
5
|
-
export function makeNoise(random: Random) {
|
|
6
|
-
const noise2d = createNoise2D(random)
|
|
7
|
-
|
|
8
|
-
return (x: number, y = 0, scale = 1) => {
|
|
9
|
-
const s = noise2d(x * scale, y * scale)
|
|
10
|
-
return (s + 1) / 2
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
package/x/concepts/angles.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export declare const Radians: {
|
|
2
|
-
pi: number;
|
|
3
|
-
circle: number;
|
|
4
|
-
/** @deprecated use Radians.toDegrees instead */
|
|
5
|
-
to: {
|
|
6
|
-
degrees(r: number): number;
|
|
7
|
-
arcseconds(r: number): number;
|
|
8
|
-
turns(r: number): number;
|
|
9
|
-
};
|
|
10
|
-
/** @deprecated use Degrees.toRadians instead */
|
|
11
|
-
from: {
|
|
12
|
-
turns(t: number): number;
|
|
13
|
-
degrees(d: number): number;
|
|
14
|
-
arcseconds(a: number): number;
|
|
15
|
-
};
|
|
16
|
-
toDegrees(r: number): number;
|
|
17
|
-
toArcseconds(r: number): number;
|
|
18
|
-
toTurns(r: number): number;
|
|
19
|
-
circleDistance(radiansA: number, radiansB: number): number;
|
|
20
|
-
};
|
|
21
|
-
export declare const Turns: {
|
|
22
|
-
toRadians(t: number): number;
|
|
23
|
-
};
|
|
24
|
-
export declare const Arcseconds: {
|
|
25
|
-
toRadians(a: number): number;
|
|
26
|
-
};
|
|
27
|
-
export declare const Degrees: {
|
|
28
|
-
toRadians(d: number): number;
|
|
29
|
-
};
|
package/x/concepts/angles.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Scalar } from "./scalar.js";
|
|
2
|
-
const pi = Math.PI;
|
|
3
|
-
const circle = 2 * Math.PI;
|
|
4
|
-
const to = {
|
|
5
|
-
degrees(r) {
|
|
6
|
-
return r * (180 / pi);
|
|
7
|
-
},
|
|
8
|
-
arcseconds(r) {
|
|
9
|
-
return to.degrees(r) * 3600;
|
|
10
|
-
},
|
|
11
|
-
turns(r) {
|
|
12
|
-
return r / circle;
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
const from = {
|
|
16
|
-
turns(t) {
|
|
17
|
-
return t * circle;
|
|
18
|
-
},
|
|
19
|
-
degrees(d) {
|
|
20
|
-
return d * (pi / 180);
|
|
21
|
-
},
|
|
22
|
-
arcseconds(a) {
|
|
23
|
-
return from.degrees(a / 3600);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
export const Radians = {
|
|
27
|
-
pi,
|
|
28
|
-
circle,
|
|
29
|
-
/** @deprecated use Radians.toDegrees instead */
|
|
30
|
-
to,
|
|
31
|
-
/** @deprecated use Degrees.toRadians instead */
|
|
32
|
-
from,
|
|
33
|
-
toDegrees(r) {
|
|
34
|
-
return r * (180 / pi);
|
|
35
|
-
},
|
|
36
|
-
toArcseconds(r) {
|
|
37
|
-
return to.degrees(r) * 3600;
|
|
38
|
-
},
|
|
39
|
-
toTurns(r) {
|
|
40
|
-
return r / circle;
|
|
41
|
-
},
|
|
42
|
-
circleDistance(radiansA, radiansB) {
|
|
43
|
-
const diff = Math.abs(Scalar.wrap(radiansA - radiansB, 0, Radians.circle));
|
|
44
|
-
return Math.min(diff, Radians.circle - diff);
|
|
45
|
-
},
|
|
46
|
-
};
|
|
47
|
-
export const Turns = {
|
|
48
|
-
toRadians(t) {
|
|
49
|
-
return t * circle;
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
export const Arcseconds = {
|
|
53
|
-
toRadians(a) {
|
|
54
|
-
return from.degrees(a / 3600);
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
export const Degrees = {
|
|
58
|
-
toRadians(d) {
|
|
59
|
-
return d * (pi / 180);
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
//# sourceMappingURL=angles.js.map
|
package/x/concepts/angles.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"angles.js","sourceRoot":"","sources":["../../s/concepts/angles.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAElC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;AAClB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;AAE1B,MAAM,EAAE,GAAG;IACV,OAAO,CAAC,CAAS;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;IACtB,CAAC;IACD,UAAU,CAAC,CAAS;QACnB,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5B,CAAC;IACD,KAAK,CAAC,CAAS;QACd,OAAO,CAAC,GAAG,MAAM,CAAA;IAClB,CAAC;CACD,CAAA;AAED,MAAM,IAAI,GAAG;IACZ,KAAK,CAAC,CAAS;QACd,OAAO,CAAC,GAAG,MAAM,CAAA;IAClB,CAAC;IACD,OAAO,CAAC,CAAS;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;IACtB,CAAC;IACD,UAAU,CAAC,CAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9B,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,EAAE;IACF,MAAM;IAEN,gDAAgD;IAChD,EAAE;IAEF,gDAAgD;IAChD,IAAI;IAEJ,SAAS,CAAC,CAAS;QAClB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;IACtB,CAAC;IACD,YAAY,CAAC,CAAS;QACrB,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,CAAS;QAChB,OAAO,CAAC,GAAG,MAAM,CAAA;IAClB,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,QAAgB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC7C,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,SAAS,CAAC,CAAS;QAClB,OAAO,CAAC,GAAG,MAAM,CAAA;IAClB,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,SAAS,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9B,CAAC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,SAAS,CAAC,CAAS;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;IACtB,CAAC;CACD,CAAA"}
|
package/x/concepts/circular.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare class Circular {
|
|
2
|
-
x: number;
|
|
3
|
-
constructor(x: number);
|
|
4
|
-
clone(): Circular;
|
|
5
|
-
set(x: number): this;
|
|
6
|
-
static value(x: number | Circular): number;
|
|
7
|
-
static normalize(x: number): number;
|
|
8
|
-
normalize(): this;
|
|
9
|
-
static difference(x: number, y: number): number;
|
|
10
|
-
difference(y: number | Circular): number;
|
|
11
|
-
static lerp(x: number, y: number, fraction: number, max?: number): number;
|
|
12
|
-
lerp(y: number | Circular, fraction: number, max?: number): this;
|
|
13
|
-
static step(x: number, y: number, delta: number): number;
|
|
14
|
-
step(y: number | Circular, delta: number): this;
|
|
15
|
-
static approach(x: number, y: number, speed: number, deltaTime: number, speedLimit?: number): number;
|
|
16
|
-
approach(y: number | Circular, speed: number, deltaTime: number, speedLimit?: number): this;
|
|
17
|
-
}
|
package/x/concepts/circular.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Scalar } from "./scalar.js";
|
|
2
|
-
export class Circular {
|
|
3
|
-
x;
|
|
4
|
-
constructor(x) {
|
|
5
|
-
this.x = x;
|
|
6
|
-
}
|
|
7
|
-
clone() {
|
|
8
|
-
return new Circular(this.x);
|
|
9
|
-
}
|
|
10
|
-
set(x) {
|
|
11
|
-
this.x = x;
|
|
12
|
-
return this;
|
|
13
|
-
}
|
|
14
|
-
static value(x) {
|
|
15
|
-
return typeof x === "number"
|
|
16
|
-
? x
|
|
17
|
-
: x.x;
|
|
18
|
-
}
|
|
19
|
-
static normalize(x) {
|
|
20
|
-
return Scalar.wrap(x, 0, 2 * Math.PI);
|
|
21
|
-
}
|
|
22
|
-
normalize() {
|
|
23
|
-
this.x = Circular.normalize(this.x);
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
static difference(x, y) {
|
|
27
|
-
x = this.normalize(x);
|
|
28
|
-
y = this.normalize(y);
|
|
29
|
-
let delta = y - x;
|
|
30
|
-
if (delta > Math.PI)
|
|
31
|
-
delta -= 2 * Math.PI;
|
|
32
|
-
if (delta < -Math.PI)
|
|
33
|
-
delta += 2 * Math.PI;
|
|
34
|
-
return delta;
|
|
35
|
-
}
|
|
36
|
-
difference(y) {
|
|
37
|
-
return Circular.difference(this.x, Circular.value(y));
|
|
38
|
-
}
|
|
39
|
-
static lerp(x, y, fraction, max) {
|
|
40
|
-
const difference = this.difference(x, y);
|
|
41
|
-
let delta = difference * fraction;
|
|
42
|
-
if (max !== undefined && Math.abs(delta) > max)
|
|
43
|
-
delta = Math.sign(delta) * max;
|
|
44
|
-
return this.normalize(x + delta);
|
|
45
|
-
}
|
|
46
|
-
lerp(y, fraction, max) {
|
|
47
|
-
this.x = Circular.lerp(this.x, Circular.value(y), fraction, max);
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
static step(x, y, delta) {
|
|
51
|
-
const difference = this.difference(x, y);
|
|
52
|
-
return this.normalize(Math.abs(difference) <= delta
|
|
53
|
-
? y
|
|
54
|
-
: x + (Math.sign(difference) * delta));
|
|
55
|
-
}
|
|
56
|
-
step(y, delta) {
|
|
57
|
-
this.x = Circular.step(this.x, Circular.value(y), delta);
|
|
58
|
-
return this;
|
|
59
|
-
}
|
|
60
|
-
static approach(x, y, speed, deltaTime, speedLimit) {
|
|
61
|
-
const difference = this.difference(x, y);
|
|
62
|
-
const change = Scalar.creep(difference, speed, deltaTime, speedLimit);
|
|
63
|
-
return this.normalize(x + change);
|
|
64
|
-
}
|
|
65
|
-
approach(y, speed, deltaTime, speedLimit) {
|
|
66
|
-
this.x = Circular.approach(this.x, Circular.value(y), speed, deltaTime, speedLimit);
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=circular.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"circular.js","sourceRoot":"","sources":["../../s/concepts/circular.ts"],"names":[],"mappings":"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"}
|
package/x/concepts/noise.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Random } from "./randy.js";
|
|
2
|
-
export declare class Noise {
|
|
3
|
-
#private;
|
|
4
|
-
readonly random: Random;
|
|
5
|
-
static seed(seed?: number): Noise;
|
|
6
|
-
constructor(random: Random);
|
|
7
|
-
/** sample the noise field, returning a number from 0 to 1. */
|
|
8
|
-
sample(x: number, y?: number, scale?: number): number;
|
|
9
|
-
}
|
package/x/concepts/noise.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Randy } from "./randy.js";
|
|
2
|
-
import { createNoise2D } from "simplex-noise";
|
|
3
|
-
export class Noise {
|
|
4
|
-
random;
|
|
5
|
-
static seed(seed = Randy.randomSeed()) {
|
|
6
|
-
const random = Randy.makeRandom(seed);
|
|
7
|
-
return new this(random);
|
|
8
|
-
}
|
|
9
|
-
#n2d;
|
|
10
|
-
constructor(random) {
|
|
11
|
-
this.random = random;
|
|
12
|
-
this.#n2d = createNoise2D(random);
|
|
13
|
-
}
|
|
14
|
-
/** sample the noise field, returning a number from 0 to 1. */
|
|
15
|
-
sample(x, y = 0, scale = 1) {
|
|
16
|
-
const s = this.#n2d(x * scale, y * scale);
|
|
17
|
-
return (s + 1) / 2;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=noise.js.map
|
package/x/concepts/noise.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noise.js","sourceRoot":"","sources":["../../s/concepts/noise.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAS,MAAM,YAAY,CAAA;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAA;AAE3C,MAAM,OAAO,KAAK;IAQW;IAP5B,MAAM,CAAC,IAAI,CAAC,OAAe,KAAK,CAAC,UAAU,EAAE;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;IAED,IAAI,CAAkC;IAEtC,YAA4B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAA;QACzC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;CACD"}
|
package/x/concepts/quat.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Xyz } from "./vec3.js";
|
|
2
|
-
export type QuatArray = [number, number, number, number];
|
|
3
|
-
export type Xyzw = {
|
|
4
|
-
x: number;
|
|
5
|
-
y: number;
|
|
6
|
-
z: number;
|
|
7
|
-
w: number;
|
|
8
|
-
};
|
|
9
|
-
export declare class Quat {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
z: number;
|
|
13
|
-
w: number;
|
|
14
|
-
constructor(x: number, y: number, z: number, w: number);
|
|
15
|
-
static new(x: number, y: number, z: number, w: number): Quat;
|
|
16
|
-
static identity(): Quat;
|
|
17
|
-
static array(q: QuatArray): Quat;
|
|
18
|
-
static import({ x, y, z, w }: Xyzw): Quat;
|
|
19
|
-
static from(q: QuatArray | Xyzw): Quat;
|
|
20
|
-
static rotate_(pitch: number, yaw: number, roll: number): Quat;
|
|
21
|
-
static rotate(vec: Xyz): Quat;
|
|
22
|
-
array(): QuatArray;
|
|
23
|
-
toString(): string;
|
|
24
|
-
clone(): Quat;
|
|
25
|
-
transform_(x: number, y: number, z: number, w: number, global?: boolean): Quat;
|
|
26
|
-
transform({ x, y, z, w }: Xyzw, global?: boolean): Quat;
|
|
27
|
-
rotate_(pitch: number, yaw: number, roll: number, global?: boolean): Quat;
|
|
28
|
-
rotate({ x: pitch, y: yaw, z: roll }: Xyz, global?: boolean): Quat;
|
|
29
|
-
rotateAroundAxis_(angle: number, axisX: number, axisY: number, axisZ: number, global?: boolean): Quat;
|
|
30
|
-
rotateAroundAxis(angle: number, axis: Xyz, global?: boolean): Quat;
|
|
31
|
-
set_(x: number, y: number, z: number, w: number): this;
|
|
32
|
-
set({ x, y, z, w }: Xyzw): this;
|
|
33
|
-
multiply_(x2: number, y2: number, z2: number, w2: number): Quat;
|
|
34
|
-
multiply(...quats: Quat[]): this;
|
|
35
|
-
}
|
package/x/concepts/quat.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
export class Quat {
|
|
2
|
-
x;
|
|
3
|
-
y;
|
|
4
|
-
z;
|
|
5
|
-
w;
|
|
6
|
-
constructor(x, y, z, w) {
|
|
7
|
-
this.x = x;
|
|
8
|
-
this.y = y;
|
|
9
|
-
this.z = z;
|
|
10
|
-
this.w = w;
|
|
11
|
-
}
|
|
12
|
-
static new(x, y, z, w) {
|
|
13
|
-
return new this(x, y, z, w);
|
|
14
|
-
}
|
|
15
|
-
static identity() {
|
|
16
|
-
return new this(0, 0, 0, 1);
|
|
17
|
-
}
|
|
18
|
-
static array(q) {
|
|
19
|
-
return new this(...q);
|
|
20
|
-
}
|
|
21
|
-
static import({ x, y, z, w }) {
|
|
22
|
-
return new this(x, y, z, w);
|
|
23
|
-
}
|
|
24
|
-
static from(q) {
|
|
25
|
-
return Array.isArray(q)
|
|
26
|
-
? this.array(q)
|
|
27
|
-
: this.import(q);
|
|
28
|
-
}
|
|
29
|
-
static rotate_(pitch, yaw, roll) {
|
|
30
|
-
return this.identity().rotate_(pitch, yaw, roll);
|
|
31
|
-
}
|
|
32
|
-
static rotate(vec) {
|
|
33
|
-
return this.identity().rotate(vec);
|
|
34
|
-
}
|
|
35
|
-
array() {
|
|
36
|
-
const { x, y, z, w } = this;
|
|
37
|
-
return [x, y, z, w];
|
|
38
|
-
}
|
|
39
|
-
toString() {
|
|
40
|
-
return `(Quat x${this.x.toFixed(2)}, y${this.y.toFixed(2)}, z${this.z.toFixed(2)}, w${this.w.toFixed(2)})`;
|
|
41
|
-
}
|
|
42
|
-
clone() {
|
|
43
|
-
return new Quat(...this.array());
|
|
44
|
-
}
|
|
45
|
-
transform_(x, y, z, w, global = false) {
|
|
46
|
-
if (global) {
|
|
47
|
-
const original = this.array();
|
|
48
|
-
return this.set_(x, y, z, w).multiply_(...original);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
return this.multiply_(x, y, z, w);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
transform({ x, y, z, w }, global = false) {
|
|
55
|
-
return this.transform_(x, y, z, w, global);
|
|
56
|
-
}
|
|
57
|
-
rotate_(pitch, yaw, roll, global = false) {
|
|
58
|
-
const cx = Math.cos(pitch * 0.5), sx = Math.sin(pitch * 0.5);
|
|
59
|
-
const cy = Math.cos(yaw * 0.5), sy = Math.sin(yaw * 0.5);
|
|
60
|
-
const cz = Math.cos(roll * 0.5), sz = Math.sin(roll * 0.5);
|
|
61
|
-
const x = sx * cy * cz + cx * sy * sz;
|
|
62
|
-
const y = cx * sy * cz - sx * cy * sz;
|
|
63
|
-
const z = cx * cy * sz + sx * sy * cz;
|
|
64
|
-
const w = cx * cy * cz - sx * sy * sz;
|
|
65
|
-
return this.transform_(x, y, z, w, global);
|
|
66
|
-
}
|
|
67
|
-
rotate({ x: pitch, y: yaw, z: roll }, global = false) {
|
|
68
|
-
return this.rotate_(pitch, yaw, roll, global);
|
|
69
|
-
}
|
|
70
|
-
rotateAroundAxis_(angle, axisX, axisY, axisZ, global = false) {
|
|
71
|
-
const halfAngle = angle * 0.5;
|
|
72
|
-
const sinHalf = Math.sin(halfAngle);
|
|
73
|
-
const x = axisX * sinHalf;
|
|
74
|
-
const y = axisY * sinHalf;
|
|
75
|
-
const z = axisZ * sinHalf;
|
|
76
|
-
const w = Math.cos(halfAngle);
|
|
77
|
-
return this.transform_(x, y, z, w, global);
|
|
78
|
-
}
|
|
79
|
-
rotateAroundAxis(angle, axis, global = false) {
|
|
80
|
-
return this.rotateAroundAxis_(angle, axis.x, axis.y, axis.z, global);
|
|
81
|
-
}
|
|
82
|
-
set_(x, y, z, w) {
|
|
83
|
-
this.x = x;
|
|
84
|
-
this.y = y;
|
|
85
|
-
this.z = z;
|
|
86
|
-
this.w = w;
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
set({ x, y, z, w }) {
|
|
90
|
-
this.x = x;
|
|
91
|
-
this.y = y;
|
|
92
|
-
this.z = z;
|
|
93
|
-
this.w = w;
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
multiply_(x2, y2, z2, w2) {
|
|
97
|
-
const { x, y, z, w } = this;
|
|
98
|
-
this.x = w * x2 + x * w2 + y * z2 - z * y2;
|
|
99
|
-
this.y = w * y2 - x * z2 + y * w2 + z * x2;
|
|
100
|
-
this.z = w * z2 + x * y2 - y * x2 + z * w2;
|
|
101
|
-
this.w = w * w2 - x * x2 - y * y2 - z * z2;
|
|
102
|
-
return this;
|
|
103
|
-
}
|
|
104
|
-
multiply(...quats) {
|
|
105
|
-
for (const { x, y, z, w } of quats)
|
|
106
|
-
this.multiply_(x, y, z, w);
|
|
107
|
-
return this;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=quat.js.map
|
package/x/concepts/quat.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quat.js","sourceRoot":"","sources":["../../s/concepts/quat.ts"],"names":[],"mappings":"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"}
|
package/x/concepts/randy.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export type Random = () => number;
|
|
2
|
-
/** utility for generating and using random numbers. */
|
|
3
|
-
export declare class Randy {
|
|
4
|
-
readonly seed: number;
|
|
5
|
-
random: Random;
|
|
6
|
-
constructor(seed?: number);
|
|
7
|
-
/** obtain a random positive 32 bit integer. */
|
|
8
|
-
static randomSeed(): number;
|
|
9
|
-
/** seed a pseudo-random number generator function that produces numbers between 0 and 1. */
|
|
10
|
-
static makeRandom(seed: number): Random;
|
|
11
|
-
/** obtain a random positive integer. */
|
|
12
|
-
integer(): number;
|
|
13
|
-
/** return true or false, given a 0 to 1 probability fraction. */
|
|
14
|
-
roll(chance?: number): boolean;
|
|
15
|
-
/** generate a random number between two numbers. */
|
|
16
|
-
range(a: number, b: number): number;
|
|
17
|
-
/** generate a random integer between two numbers (inclusive). */
|
|
18
|
-
integerRange(a: number, b: number): number;
|
|
19
|
-
/** randomly choose an index given an array length. */
|
|
20
|
-
index(length: number): number;
|
|
21
|
-
/** return a random item from the given array. */
|
|
22
|
-
choose<T>(array: T[]): T;
|
|
23
|
-
/** remove and return a random item from the given array. */
|
|
24
|
-
yoink<T>(array: T[]): T;
|
|
25
|
-
/** randomly select a number of array items. */
|
|
26
|
-
select<T>(count: number, array: T[]): T[];
|
|
27
|
-
/** remove and return a number of items from the given array. */
|
|
28
|
-
take<T>(count: number, array: T[]): T[];
|
|
29
|
-
/** shuffle an array in-place using (fisher-yates) */
|
|
30
|
-
shuffle<T>(array: T[]): T[];
|
|
31
|
-
/** @deprecated create an instance with the given seed number. */
|
|
32
|
-
static seed(seed: number): Randy;
|
|
33
|
-
/** @deprecated renamed to `take` */
|
|
34
|
-
extract<T>(count: number, array: T[]): T[];
|
|
35
|
-
/** @deprecated renamed to `range` */
|
|
36
|
-
between(a: number, b: number): number;
|
|
37
|
-
/** @deprecated renamed to `integerRange` */
|
|
38
|
-
integerBetween(a: number, b: number): number;
|
|
39
|
-
}
|