@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/x/helpers/randy.d.ts
DELETED
|
@@ -1,31 +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
|
-
}
|
package/x/helpers/randy.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/** utility for generating and using random numbers. */
|
|
2
|
-
export class Randy {
|
|
3
|
-
seed;
|
|
4
|
-
random;
|
|
5
|
-
constructor(seed = Randy.randomSeed()) {
|
|
6
|
-
this.seed = seed;
|
|
7
|
-
this.random = Randy.makeRandom(seed);
|
|
8
|
-
}
|
|
9
|
-
/** obtain a random positive 32 bit integer. */
|
|
10
|
-
static randomSeed() {
|
|
11
|
-
return Math.floor(Math.random() * 2147483647);
|
|
12
|
-
}
|
|
13
|
-
/** seed a pseudo-random number generator function that produces numbers between 0 and 1. */
|
|
14
|
-
static makeRandom(seed) {
|
|
15
|
-
seed = (seed ^ 0x6D2B79F5) + 0x1E35A7BD;
|
|
16
|
-
seed = (Math.abs(seed | 0) % 2147483647) || 1;
|
|
17
|
-
function random() {
|
|
18
|
-
seed = (Math.imul(48271, seed) | 0) % 2147483647;
|
|
19
|
-
return (seed & 2147483647) / 2147483648;
|
|
20
|
-
}
|
|
21
|
-
random(); // discard first value
|
|
22
|
-
return random;
|
|
23
|
-
}
|
|
24
|
-
/** obtain a random positive integer. */
|
|
25
|
-
integer() {
|
|
26
|
-
return Math.floor(this.random() * 2147483647);
|
|
27
|
-
}
|
|
28
|
-
/** return true or false, given a 0 to 1 probability fraction. */
|
|
29
|
-
roll(chance = 0.5) {
|
|
30
|
-
return this.random() <= chance;
|
|
31
|
-
}
|
|
32
|
-
/** generate a random number between two numbers. */
|
|
33
|
-
range(a, b) {
|
|
34
|
-
const difference = b - a;
|
|
35
|
-
const value = difference * this.random();
|
|
36
|
-
return a + value;
|
|
37
|
-
}
|
|
38
|
-
/** generate a random integer between two numbers (inclusive). */
|
|
39
|
-
integerRange(a, b) {
|
|
40
|
-
return Math.round(this.range(a, b));
|
|
41
|
-
}
|
|
42
|
-
/** randomly choose an index given an array length. */
|
|
43
|
-
index(length) {
|
|
44
|
-
return Math.floor(this.random() * length);
|
|
45
|
-
}
|
|
46
|
-
/** return a random item from the given array. */
|
|
47
|
-
choose(array) {
|
|
48
|
-
return array[this.index(array.length)];
|
|
49
|
-
}
|
|
50
|
-
/** remove and return a random item from the given array. */
|
|
51
|
-
yoink(array) {
|
|
52
|
-
const index = this.index(array.length);
|
|
53
|
-
const [item] = array.splice(index, 1);
|
|
54
|
-
return item;
|
|
55
|
-
}
|
|
56
|
-
/** randomly select a number of array items. */
|
|
57
|
-
select(count, array) {
|
|
58
|
-
const copy = [...array];
|
|
59
|
-
if (count >= array.length)
|
|
60
|
-
return copy;
|
|
61
|
-
const selection = [];
|
|
62
|
-
for (let i = 0; i < count; i++)
|
|
63
|
-
selection.push(this.yoink(copy));
|
|
64
|
-
return selection;
|
|
65
|
-
}
|
|
66
|
-
/** remove and return a number of items from the given array. */
|
|
67
|
-
take(count, array) {
|
|
68
|
-
const selection = [];
|
|
69
|
-
for (let i = 0; i < count; i++) {
|
|
70
|
-
if (array.length === 0)
|
|
71
|
-
return selection;
|
|
72
|
-
selection.push(this.yoink(array));
|
|
73
|
-
}
|
|
74
|
-
return selection;
|
|
75
|
-
}
|
|
76
|
-
/** shuffle an array in-place using (fisher-yates) */
|
|
77
|
-
shuffle(array) {
|
|
78
|
-
for (let i = array.length - 1; i > 0; i--) {
|
|
79
|
-
const j = Math.floor(this.random() * (i + 1));
|
|
80
|
-
[array[i], array[j]] = [array[j], array[i]];
|
|
81
|
-
}
|
|
82
|
-
return array;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=randy.js.map
|
package/x/helpers/randy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"randy.js","sourceRoot":"","sources":["../../s/helpers/randy.ts"],"names":[],"mappings":"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"}
|
package/x/helpers/scalar.d.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
export declare class Scalar {
|
|
2
|
-
x: number;
|
|
3
|
-
constructor(x: number);
|
|
4
|
-
static new(x: number): Scalar;
|
|
5
|
-
clone(): Scalar;
|
|
6
|
-
set(x: number): this;
|
|
7
|
-
static isBetween(x: number, a?: number, b?: number): boolean;
|
|
8
|
-
isBetween(a?: number, b?: number): boolean;
|
|
9
|
-
static isNear(x: number, y: number, epsilon?: number): boolean;
|
|
10
|
-
isNear(y: number, epsilon?: number): boolean;
|
|
11
|
-
static add(...nums: number[]): number;
|
|
12
|
-
add(...nums: number[]): this;
|
|
13
|
-
subtract(...nums: number[]): this;
|
|
14
|
-
static atLeast(x: number, least?: number): number;
|
|
15
|
-
atLeast(least?: number): this;
|
|
16
|
-
static atMost(x: number, most?: number): number;
|
|
17
|
-
atMost(most?: number): this;
|
|
18
|
-
static clamp(x: number, a?: number, b?: number): number;
|
|
19
|
-
clamp(a?: number, b?: number): this;
|
|
20
|
-
static lerp(x: number, y: number, fraction: number, max?: number): number;
|
|
21
|
-
lerp(y: number, fraction: number, max?: number): this;
|
|
22
|
-
static step(x: number, y: number, delta: number): number;
|
|
23
|
-
step(y: number, delta: number): this;
|
|
24
|
-
static creep(difference: number, speed: number, deltaTime: number, speedLimit?: number): number;
|
|
25
|
-
static approach(x: number, y: number, speed: number, deltaTime: number, speedLimit?: number): number;
|
|
26
|
-
approach(y: number, speed: number, deltaTime: number, speedLimit?: number): this;
|
|
27
|
-
static wrap(x: number, a?: number, b?: number): number;
|
|
28
|
-
wrap(a?: number, b?: number): this;
|
|
29
|
-
static constrainProximity(x: number, y: number, range: number): number;
|
|
30
|
-
constrainProximity(y: number, range: number): this;
|
|
31
|
-
static inverse(x: number): number;
|
|
32
|
-
inverse(): this;
|
|
33
|
-
static center(x: number): number;
|
|
34
|
-
center(): this;
|
|
35
|
-
static uncenter(x: number): number;
|
|
36
|
-
uncenter(): this;
|
|
37
|
-
static map(x: number, a: number, b: number): number;
|
|
38
|
-
map(a: number, b: number): this;
|
|
39
|
-
static remap(x: number, a1: number, a2: number, b1?: number, b2?: number, clamp?: boolean): number;
|
|
40
|
-
remap(a1: number, a2: number, b1?: number, b2?: number, clamp?: boolean): this;
|
|
41
|
-
static magnify(x: number): number;
|
|
42
|
-
magnify(): this;
|
|
43
|
-
static floor(x: number): number;
|
|
44
|
-
floor(): this;
|
|
45
|
-
static ceil(x: number): number;
|
|
46
|
-
ceil(): this;
|
|
47
|
-
static round(x: number): number;
|
|
48
|
-
round(): this;
|
|
49
|
-
static smooth(x: number, y: number, smoothing: number): number;
|
|
50
|
-
smooth(y: number, smoothing: number): this;
|
|
51
|
-
}
|
package/x/helpers/scalar.js
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
export class Scalar {
|
|
2
|
-
x;
|
|
3
|
-
constructor(x) {
|
|
4
|
-
this.x = x;
|
|
5
|
-
}
|
|
6
|
-
static new(x) {
|
|
7
|
-
return new this(x);
|
|
8
|
-
}
|
|
9
|
-
clone() {
|
|
10
|
-
return new Scalar(this.x);
|
|
11
|
-
}
|
|
12
|
-
set(x) {
|
|
13
|
-
this.x = x;
|
|
14
|
-
return this;
|
|
15
|
-
}
|
|
16
|
-
//
|
|
17
|
-
// queries
|
|
18
|
-
//
|
|
19
|
-
static isBetween(x, a = 0, b = 1) {
|
|
20
|
-
const min = Math.min(a, b);
|
|
21
|
-
const max = Math.max(a, b);
|
|
22
|
-
return (x >= min) && (x <= max);
|
|
23
|
-
}
|
|
24
|
-
isBetween(a = 0, b = 1) {
|
|
25
|
-
return Scalar.isBetween(this.x, a, b);
|
|
26
|
-
}
|
|
27
|
-
static isNear(x, y, epsilon = 0.01) {
|
|
28
|
-
return Math.abs(x - y) <= epsilon;
|
|
29
|
-
}
|
|
30
|
-
isNear(y, epsilon = 0.01) {
|
|
31
|
-
return Scalar.isNear(this.x, y, epsilon);
|
|
32
|
-
}
|
|
33
|
-
//
|
|
34
|
-
// chainable transforms
|
|
35
|
-
//
|
|
36
|
-
static add(...nums) {
|
|
37
|
-
let x = 0;
|
|
38
|
-
for (const n of nums)
|
|
39
|
-
x += n;
|
|
40
|
-
return x;
|
|
41
|
-
}
|
|
42
|
-
add(...nums) {
|
|
43
|
-
this.x = Scalar.add(this.x, ...nums);
|
|
44
|
-
return this;
|
|
45
|
-
}
|
|
46
|
-
subtract(...nums) {
|
|
47
|
-
for (const n of nums)
|
|
48
|
-
this.x -= n;
|
|
49
|
-
return this;
|
|
50
|
-
}
|
|
51
|
-
static atLeast(x, least = 0) {
|
|
52
|
-
return Math.max(x, least);
|
|
53
|
-
}
|
|
54
|
-
atLeast(least = 0) {
|
|
55
|
-
this.x = Scalar.atLeast(this.x, least);
|
|
56
|
-
return this;
|
|
57
|
-
}
|
|
58
|
-
static atMost(x, most = 1) {
|
|
59
|
-
return Math.min(x, most);
|
|
60
|
-
}
|
|
61
|
-
atMost(most = 1) {
|
|
62
|
-
this.x = Scalar.atMost(this.x, most);
|
|
63
|
-
return this;
|
|
64
|
-
}
|
|
65
|
-
static clamp(x, a = 0, b = 1) {
|
|
66
|
-
x = Scalar.atLeast(x, Math.min(a, b));
|
|
67
|
-
x = Scalar.atMost(x, Math.max(a, b));
|
|
68
|
-
return x;
|
|
69
|
-
}
|
|
70
|
-
clamp(a = 0, b = 1) {
|
|
71
|
-
this.x = Scalar.clamp(this.x, a, b);
|
|
72
|
-
return this;
|
|
73
|
-
}
|
|
74
|
-
static lerp(x, y, fraction, max) {
|
|
75
|
-
const difference = y - x;
|
|
76
|
-
let delta = difference * fraction;
|
|
77
|
-
if (max !== undefined && Math.abs(delta) > max)
|
|
78
|
-
delta = Math.sign(delta) * max;
|
|
79
|
-
return x + delta;
|
|
80
|
-
}
|
|
81
|
-
lerp(y, fraction, max) {
|
|
82
|
-
this.x = Scalar.lerp(this.x, y, fraction, max);
|
|
83
|
-
return this;
|
|
84
|
-
}
|
|
85
|
-
static step(x, y, delta) {
|
|
86
|
-
const difference = y - x;
|
|
87
|
-
return (Math.abs(difference) <= delta)
|
|
88
|
-
? y
|
|
89
|
-
: x + (Math.sign(difference) * delta);
|
|
90
|
-
}
|
|
91
|
-
step(y, delta) {
|
|
92
|
-
this.x = Scalar.step(this.x, y, delta);
|
|
93
|
-
return this;
|
|
94
|
-
}
|
|
95
|
-
static creep(difference, speed, deltaTime, speedLimit) {
|
|
96
|
-
let change = (difference * (1 - Math.exp(-speed * deltaTime)));
|
|
97
|
-
if (speedLimit !== undefined) {
|
|
98
|
-
const changeLimit = speedLimit * deltaTime;
|
|
99
|
-
if (Math.abs(change) > changeLimit)
|
|
100
|
-
change = Math.sign(change) * changeLimit;
|
|
101
|
-
}
|
|
102
|
-
return change;
|
|
103
|
-
}
|
|
104
|
-
static approach(x, y, speed, deltaTime, speedLimit) {
|
|
105
|
-
const difference = y - x;
|
|
106
|
-
const change = this.creep(difference, speed, deltaTime, speedLimit);
|
|
107
|
-
return x + change;
|
|
108
|
-
}
|
|
109
|
-
approach(y, speed, deltaTime, speedLimit) {
|
|
110
|
-
this.x = Scalar.approach(this.x, y, speed, deltaTime, speedLimit);
|
|
111
|
-
return this;
|
|
112
|
-
}
|
|
113
|
-
static wrap(x, a = 0, b = 1) {
|
|
114
|
-
const min = Math.min(a, b);
|
|
115
|
-
const max = Math.max(a, b);
|
|
116
|
-
const span = max - min;
|
|
117
|
-
const adjusted = x - min;
|
|
118
|
-
const wrapped = (adjusted < 0)
|
|
119
|
-
? span - (-adjusted % span)
|
|
120
|
-
: adjusted % span;
|
|
121
|
-
return min + wrapped;
|
|
122
|
-
}
|
|
123
|
-
wrap(a = 0, b = 1) {
|
|
124
|
-
this.x = Scalar.wrap(this.x, a, b);
|
|
125
|
-
return this;
|
|
126
|
-
}
|
|
127
|
-
static constrainProximity(x, y, range) {
|
|
128
|
-
const trueDiff = y - x;
|
|
129
|
-
const positiveDiff = Math.abs(trueDiff);
|
|
130
|
-
const cappedDiff = (positiveDiff > range)
|
|
131
|
-
? range
|
|
132
|
-
: positiveDiff;
|
|
133
|
-
const newDiff = (trueDiff < 0) ? -cappedDiff : cappedDiff;
|
|
134
|
-
return x + newDiff;
|
|
135
|
-
}
|
|
136
|
-
constrainProximity(y, range) {
|
|
137
|
-
this.x = Scalar.constrainProximity(this.x, y, range);
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
static inverse(x) {
|
|
141
|
-
return 1 - x;
|
|
142
|
-
}
|
|
143
|
-
inverse() {
|
|
144
|
-
this.x = Scalar.inverse(this.x);
|
|
145
|
-
return this;
|
|
146
|
-
}
|
|
147
|
-
static center(x) {
|
|
148
|
-
return (x * 2) - 1;
|
|
149
|
-
}
|
|
150
|
-
center() {
|
|
151
|
-
this.x = Scalar.center(this.x);
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
static uncenter(x) {
|
|
155
|
-
return (x + 1) / 2;
|
|
156
|
-
}
|
|
157
|
-
uncenter() {
|
|
158
|
-
this.x = Scalar.uncenter(this.x);
|
|
159
|
-
return this;
|
|
160
|
-
}
|
|
161
|
-
static map(x, a, b) {
|
|
162
|
-
const difference = b - a;
|
|
163
|
-
const value = difference * x;
|
|
164
|
-
return a + value;
|
|
165
|
-
}
|
|
166
|
-
map(a, b) {
|
|
167
|
-
this.x = Scalar.map(this.x, a, b);
|
|
168
|
-
return this;
|
|
169
|
-
}
|
|
170
|
-
static remap(x, a1, a2, b1 = 0, b2 = 1, clamp = false) {
|
|
171
|
-
const fraction = (x - a1) / (a2 - a1);
|
|
172
|
-
const result = (fraction * (b2 - b1)) + b1;
|
|
173
|
-
return clamp
|
|
174
|
-
? Scalar.clamp(result, b1, b2)
|
|
175
|
-
: result;
|
|
176
|
-
}
|
|
177
|
-
remap(a1, a2, b1 = 0, b2 = 1, clamp = false) {
|
|
178
|
-
this.x = Scalar.remap(this.x, a1, a2, b1, b2, clamp);
|
|
179
|
-
return this;
|
|
180
|
-
}
|
|
181
|
-
static magnify(x) {
|
|
182
|
-
return 4 * Math.pow(x - 0.5, 3) + 0.5;
|
|
183
|
-
}
|
|
184
|
-
magnify() {
|
|
185
|
-
this.x = Scalar.magnify(this.x);
|
|
186
|
-
return this;
|
|
187
|
-
}
|
|
188
|
-
static floor(x) {
|
|
189
|
-
return Math.floor(x);
|
|
190
|
-
}
|
|
191
|
-
floor() {
|
|
192
|
-
this.x = Scalar.floor(this.x);
|
|
193
|
-
return this;
|
|
194
|
-
}
|
|
195
|
-
static ceil(x) {
|
|
196
|
-
return Math.ceil(x);
|
|
197
|
-
}
|
|
198
|
-
ceil() {
|
|
199
|
-
this.x = Scalar.ceil(this.x);
|
|
200
|
-
return this;
|
|
201
|
-
}
|
|
202
|
-
static round(x) {
|
|
203
|
-
return Math.round(x);
|
|
204
|
-
}
|
|
205
|
-
round() {
|
|
206
|
-
this.x = Scalar.round(this.x);
|
|
207
|
-
return this;
|
|
208
|
-
}
|
|
209
|
-
static smooth(x, y, smoothing) {
|
|
210
|
-
return smoothing <= 1
|
|
211
|
-
? y
|
|
212
|
-
: x + ((y - x) / smoothing);
|
|
213
|
-
}
|
|
214
|
-
smooth(y, smoothing) {
|
|
215
|
-
this.x = Scalar.smooth(this.x, y, smoothing);
|
|
216
|
-
return this;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
//# sourceMappingURL=scalar.js.map
|
package/x/helpers/scalar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scalar.js","sourceRoot":"","sources":["../../s/helpers/scalar.ts"],"names":[],"mappings":"AACA,MAAM,OAAO,MAAM;IACC;IAAnB,YAAmB,CAAS;QAAT,MAAC,GAAD,CAAC,CAAQ;IAAG,CAAC;IAEhC,MAAM,CAAC,GAAG,CAAC,CAAS;QACnB,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,GAAG,CAAC,CAAS;QACZ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,EAAE;IACF,UAAU;IACV,EAAE;IAEF,MAAM,CAAC,SAAS,CAAC,CAAS,EAAE,IAAY,CAAC,EAAE,IAAY,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1B,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,SAAS,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,UAAkB,IAAI;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC,CAAS,EAAE,UAAkB,IAAI;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,EAAE;IACF,uBAAuB;IACvB,EAAE;IAEF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAc;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,MAAM,CAAC,IAAI,IAAI;YACnB,CAAC,IAAI,CAAC,CAAA;QACP,OAAO,CAAC,CAAA;IACT,CAAC;IAAC,GAAG,CAAC,GAAG,IAAc;QACtB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QACpC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ,CAAC,GAAG,IAAc;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI;YACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;QACZ,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAS,EAAE,QAAgB,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,CAAC,QAAgB,CAAC;QAC1B,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACtC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,CAAS,EAAE,OAAe,CAAC;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC,OAAe,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACpC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,CAAS,EAAE,IAAY,CAAC,EAAE,IAAY,CAAC;QACnD,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACrC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpC,OAAO,CAAC,CAAA;IACT,CAAC;IAAC,KAAK,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC;QACnC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,QAAgB,EAAE,GAAY;QAC/D,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAA;QACjC,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG;YAC7C,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QAC/B,OAAO,CAAC,GAAG,KAAK,CAAA;IACjB,CAAC;IAAC,IAAI,CAAC,CAAS,EAAE,QAAgB,EAAE,GAAY;QAC/C,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa;QAC9C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAA;IACvC,CAAC;IAAC,IAAI,CAAC,CAAS,EAAE,KAAa;QAC9B,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QACtC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAkB,EAAE,KAAa,EAAE,SAAiB,EAAE,UAAmB;QACrF,IAAI,MAAM,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,WAAW;gBACjC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;QAC1C,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,SAAiB,EAAE,UAAmB;QAC1F,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,MAAM,CAAA;IAClB,CAAC;IAAC,QAAQ,CAAC,CAAS,EAAE,KAAa,EAAE,SAAiB,EAAE,UAAmB;QAC1E,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACjE,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAS,EAAE,IAAY,CAAC,EAAE,IAAY,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1B,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;QACtB,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAA;QACxB,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;QAClB,OAAO,GAAG,GAAG,OAAO,CAAA;IACrB,CAAC;IAAC,IAAI,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC;QAClC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa;QAC5D,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YACxC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,YAAY,CAAA;QACf,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;QACzD,OAAO,CAAC,GAAG,OAAO,CAAA;IACnB,CAAC;IAAC,kBAAkB,CAAC,CAAS,EAAE,KAAa;QAC5C,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAS;QACvB,OAAO,CAAC,GAAG,CAAC,CAAA;IACb,CAAC;IAAC,OAAO;QACR,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,CAAS;QACtB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAAC,MAAM;QACP,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,CAAS;QACxB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACnB,CAAC;IAAC,QAAQ;QACT,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACzC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAA;QAC5B,OAAO,CAAC,GAAG,KAAK,CAAA;IACjB,CAAC;IAAC,GAAG,CAAC,CAAS,EAAE,CAAS;QACzB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,KAAa,CAAC,EAAE,KAAa,CAAC,EAAE,KAAK,GAAG,KAAK;QAC5F,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;QAC1C,OAAO,KAAK;YACX,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAA;IACV,CAAC;IAAC,KAAK,CAAC,EAAU,EAAE,EAAU,EAAE,KAAa,CAAC,EAAE,KAAa,CAAC,EAAE,KAAK,GAAG,KAAK;QAC5E,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;QACpD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAS;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAA;IACtC,CAAC;IAAC,OAAO;QACR,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,CAAS;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAAC,KAAK;QACN,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAS;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;IAAC,IAAI;QACL,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,CAAS;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAAC,KAAK;QACN,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,SAAiB;QACpD,OAAO,SAAS,IAAI,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC,CAAS,EAAE,SAAiB;QACpC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAA;IACZ,CAAC;CACD"}
|
package/x/helpers/spline.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Vec2Array } from "../core/vec2.js";
|
|
2
|
-
/** resolve a number within a linear spline. */
|
|
3
|
-
export declare function linear(x: number, points: Vec2Array[]): number;
|
|
4
|
-
/** resolve a number within a catmull-rom spline, that's all smooth-like. */
|
|
5
|
-
export declare function catmullRom(x: number, points: Vec2Array[]): number;
|
|
6
|
-
export declare const ez: {
|
|
7
|
-
/** simple linear spline where the control points are equally-spaced based on their array indices (x is expected to be between 0 and 1). */
|
|
8
|
-
linear(x: number, points: number[]): number;
|
|
9
|
-
};
|
package/x/helpers/spline.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Scalar } from "./scalar.js";
|
|
2
|
-
/** resolve a number within a linear spline. */
|
|
3
|
-
export function linear(x, points) {
|
|
4
|
-
if (points.length < 2)
|
|
5
|
-
throw new Error("need at least two points, come on");
|
|
6
|
-
const [first] = points.at(0);
|
|
7
|
-
const [last] = points.at(-1);
|
|
8
|
-
x = Scalar.clamp(x, first, last);
|
|
9
|
-
for (let i = 0; i < points.length - 1; i++) {
|
|
10
|
-
const [x0, y0] = points[i];
|
|
11
|
-
const [x1, y1] = points[i + 1];
|
|
12
|
-
if (x >= x0 && x <= x1) {
|
|
13
|
-
const t = (x - x0) / (x1 - x0);
|
|
14
|
-
return y0 + t * (y1 - y0);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
throw new Error("x is out of bounds, what are you even doing");
|
|
18
|
-
}
|
|
19
|
-
/** resolve a number within a catmull-rom spline, that's all smooth-like. */
|
|
20
|
-
export function catmullRom(x, points) {
|
|
21
|
-
if (points.length < 4)
|
|
22
|
-
throw new Error("need at least four points for this magic");
|
|
23
|
-
const [first] = points.at(0);
|
|
24
|
-
const [last] = points.at(-1);
|
|
25
|
-
x = Scalar.clamp(x, first, last);
|
|
26
|
-
// find the segment where 'x' fits
|
|
27
|
-
for (let i = 1; i < points.length - 2; i++) {
|
|
28
|
-
const [x1,] = points[i];
|
|
29
|
-
const [x2,] = points[i + 1];
|
|
30
|
-
if (x >= x1 && x <= x2) {
|
|
31
|
-
const t = (x - x1) / (x2 - x1);
|
|
32
|
-
return helpers.catmullRom(t, points[i - 1], points[i], points[i + 1], points[i + 2]);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
throw new Error("x is out of bounds, try again");
|
|
36
|
-
}
|
|
37
|
-
export const ez = {
|
|
38
|
-
/** simple linear spline where the control points are equally-spaced based on their array indices (x is expected to be between 0 and 1). */
|
|
39
|
-
linear(x, points) {
|
|
40
|
-
if (points.length < 2)
|
|
41
|
-
throw new Error("need at least two points, come on");
|
|
42
|
-
const points2 = points.map((p, index) => [Scalar.clamp(index / (points.length - 1)), p]);
|
|
43
|
-
return linear(Scalar.clamp(x), points2);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
var helpers;
|
|
47
|
-
(function (helpers) {
|
|
48
|
-
/** internal big-brain maths for the catmull-rom implementation */
|
|
49
|
-
function catmullRom(t, [, p0], [, p1], [, p2], [, p3]) {
|
|
50
|
-
const t2 = t * t;
|
|
51
|
-
const t3 = t2 * t;
|
|
52
|
-
// coefficients for the cubic polynomial (Catmull-Rom)
|
|
53
|
-
const a = -0.5 * p0 + 1.5 * p1 - 1.5 * p2 + 0.5 * p3;
|
|
54
|
-
const b = p0 - 2.5 * p1 + 2 * p2 - 0.5 * p3;
|
|
55
|
-
const c = -0.5 * p0 + 0.5 * p2;
|
|
56
|
-
const d = p1;
|
|
57
|
-
return a * t3 + b * t2 + c * t + d;
|
|
58
|
-
}
|
|
59
|
-
helpers.catmullRom = catmullRom;
|
|
60
|
-
})(helpers || (helpers = {}));
|
|
61
|
-
//# sourceMappingURL=spline.js.map
|
package/x/helpers/spline.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spline.js","sourceRoot":"","sources":["../../s/helpers/spline.ts"],"names":[],"mappings":"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"}
|
package/x/importmap.json
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): any;
|
|
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): any;
|
|
12
|
-
lerp(y: number | Circular, fraction: number, max?: number): this;
|
|
13
|
-
static step(x: number, y: number, delta: number): any;
|
|
14
|
-
step(y: number | Circular, delta: number): this;
|
|
15
|
-
static approach(x: number, y: number, speed: number, deltaTime: number, speedLimit?: number): any;
|
|
16
|
-
approach(y: number | Circular, speed: number, deltaTime: number, speedLimit?: number): this;
|
|
17
|
-
}
|
package/x/primitives/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/primitives/circular.ts"],"names":[],"mappings":"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"}
|
package/x/primitives/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
|
-
}
|