@ntf/math 1.3.2 → 1.4.1
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/dist/index.d.mts +587 -394
- package/dist/index.d.ts +587 -394
- package/dist/index.js +2078 -1752
- package/dist/index.mjs +2078 -1752
- package/package.json +9 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
interface IToString {
|
|
3
|
-
/**
|
|
4
|
-
* Returns a string representation of an object.
|
|
5
|
-
*/
|
|
6
|
-
toString(): string;
|
|
7
|
-
}
|
|
1
|
+
import { IToString, NodeJSCustomInspect, FixedArray } from '@ntf/types';
|
|
8
2
|
|
|
9
|
-
interface IGeometryObject {
|
|
3
|
+
interface IGeometryObject extends IToString {
|
|
10
4
|
readonly area: number;
|
|
11
5
|
readonly perimeter: number;
|
|
12
6
|
}
|
|
@@ -15,281 +9,46 @@ interface ISize {
|
|
|
15
9
|
width: number;
|
|
16
10
|
height: number;
|
|
17
11
|
}
|
|
12
|
+
interface IToSize {
|
|
13
|
+
toSize(): SizeLike;
|
|
14
|
+
}
|
|
18
15
|
type SizeArray = [number, number];
|
|
19
16
|
type SizeString = `${number}x${number}`;
|
|
20
|
-
type SizeLike = ISize | SizeArray | SizeString | number;
|
|
21
|
-
type SizeArguments = [SizeLike] |
|
|
22
|
-
declare class Size implements ISize, IGeometryObject,
|
|
17
|
+
type SizeLike = ISize | SizeArray | SizeString | number | IToSize;
|
|
18
|
+
type SizeArguments = [size: SizeLike] | SizeArray;
|
|
19
|
+
declare class Size implements ISize, IGeometryObject, IToVec2 {
|
|
23
20
|
width: number;
|
|
24
21
|
height: number;
|
|
25
22
|
get aspectRatio(): number;
|
|
26
23
|
get area(): number;
|
|
27
24
|
get perimeter(): number;
|
|
28
25
|
static resolve(a: unknown): Size;
|
|
26
|
+
static resolveArgs(args: SizeArguments): Size;
|
|
29
27
|
static cast(a: unknown): Size | undefined;
|
|
30
28
|
static is(a: unknown): a is SizeLike;
|
|
31
29
|
constructor(width: number, height: number);
|
|
32
30
|
toArray(): SizeArray;
|
|
33
31
|
toString(): SizeString;
|
|
32
|
+
get [Symbol.toStringTag](): string;
|
|
33
|
+
[NodeJSCustomInspect](): string;
|
|
34
34
|
toJSON(): ISize;
|
|
35
35
|
clone(): Size;
|
|
36
|
-
equals(
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
interface IVec3 extends IVec2 {
|
|
41
|
-
z: number;
|
|
42
|
-
}
|
|
43
|
-
type Vec3Array = [number, number, number] | [number, number, number, number];
|
|
44
|
-
type Vec3String = `${number},${number},${number}` | `${number},${number},${number};${number}`;
|
|
45
|
-
type Vec3Like = IVec3 | Vec3Array | Vec3String | number;
|
|
46
|
-
type Vec3Arguments = [Vec3Like] | [number, number, number];
|
|
47
|
-
declare class Vec3 implements IVec3 {
|
|
48
|
-
x: number;
|
|
49
|
-
y: number;
|
|
50
|
-
z: number;
|
|
51
|
-
w: number;
|
|
52
|
-
static resolve(a: unknown): Vec3;
|
|
53
|
-
static cast(a: unknown): Vec3 | undefined;
|
|
54
|
-
static resolveArgs(args: Vec3Arguments): Vec3;
|
|
55
|
-
static is(a: unknown): a is Vec3Like;
|
|
56
|
-
static fromPoints(a: Vec3Like, b: Vec3Like): Vec3;
|
|
57
|
-
static clamp(value: Vec3Like, min: Vec3Like, max: Vec3Like): Vec3;
|
|
58
|
-
static intersectPlane(planeP: Vec3Like, planeN: Vec3Like, lineStart: Vec3Like, lineEnd: Vec3Like, t: number): Vec3;
|
|
59
|
-
constructor(x?: number, y?: number, z?: number, w?: number);
|
|
60
|
-
toArray(w?: boolean): Vec3Array;
|
|
61
|
-
toJSON(): IVec3;
|
|
62
|
-
toString(w?: boolean): Vec3String;
|
|
36
|
+
equals(size: SizeLike): boolean;
|
|
37
|
+
equals(width: number, height: number): boolean;
|
|
63
38
|
toVec2(): Vec2Like;
|
|
64
|
-
clone(): Vec3;
|
|
65
|
-
equals(vec: Vec3Like): boolean;
|
|
66
|
-
setX(x: number): this;
|
|
67
|
-
setY(y: number): this;
|
|
68
|
-
setZ(z: number): this;
|
|
69
|
-
set(x: number, y: number, z: number): this;
|
|
70
|
-
set(vec: Vec3Like): this;
|
|
71
|
-
add(x: number, y: number, z: number): Vec3;
|
|
72
|
-
add(vec: Vec3Like): Vec3;
|
|
73
|
-
offset(x: number, y: number, z: number): this;
|
|
74
|
-
offset(vec: Vec3Like): this;
|
|
75
|
-
subtract(x: number, y: number, z: number): Vec3;
|
|
76
|
-
subtract(vec: Vec3Like): Vec3;
|
|
77
|
-
multiply(scalar: number): Vec3;
|
|
78
|
-
naiveMultiply(x: number, y: number, z: number): Vec3;
|
|
79
|
-
naiveMultiply(vec: Vec3Like): Vec3;
|
|
80
|
-
divide(x: number, y: number, z: number): Vec3;
|
|
81
|
-
divide(scalar: number): Vec3;
|
|
82
|
-
divide(vec: Vec3Like): Vec3;
|
|
83
|
-
dot(x: number, y: number, z: number): number;
|
|
84
|
-
dot(vec: Vec3Like): number;
|
|
85
|
-
cross(x: number, y: number, z: number): Vec3;
|
|
86
|
-
cross(vec: Vec3Like): Vec3;
|
|
87
|
-
distance(x: number, y: number, z: number): number;
|
|
88
|
-
distance(vec: Vec3Like): number;
|
|
89
|
-
distanceSquare(x: number, y: number, z: number): number;
|
|
90
|
-
distanceSquare(vec: Vec3Like): number;
|
|
91
|
-
length(): number;
|
|
92
|
-
normalize(): Vec3;
|
|
93
|
-
invert(): Vec3;
|
|
94
|
-
round(): Vec3;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
interface IVec2 {
|
|
98
|
-
x: number;
|
|
99
|
-
y: number;
|
|
100
|
-
w: number;
|
|
101
|
-
}
|
|
102
|
-
type Vec2Array = [number, number] | [number, number, number];
|
|
103
|
-
type Vec2String = `${number},${number}` | `${number},${number};${number}`;
|
|
104
|
-
type Vec2Like = IVec2 | Vec2Array | Vec2String | number;
|
|
105
|
-
type Vec2Arguments = [Vec2Like] | [number, number];
|
|
106
|
-
declare class Vec2 implements IVec2 {
|
|
107
|
-
x: number;
|
|
108
|
-
y: number;
|
|
109
|
-
w: number;
|
|
110
|
-
static resolve(a: unknown): Vec2;
|
|
111
|
-
static cast(a: unknown): Vec2 | undefined;
|
|
112
|
-
static resolveArgs(args: Vec2Arguments): Vec2;
|
|
113
|
-
static is(a: unknown): a is Vec2Like;
|
|
114
|
-
static fromPoints(a: Vec2Like, b: Vec2Like): Vec2;
|
|
115
|
-
static clamp(value: Vec2Like, min: Vec2Like, max: Vec2Like): Vec2;
|
|
116
|
-
constructor(x?: number, y?: number, w?: number);
|
|
117
|
-
toArray(w?: boolean): Vec2Array;
|
|
118
|
-
toJSON(): IVec2;
|
|
119
|
-
toString(w?: boolean): Vec2String;
|
|
120
|
-
toSquare(): Size;
|
|
121
|
-
toVec3(z?: number): Vec3;
|
|
122
|
-
clone(): Vec2;
|
|
123
|
-
equals(vec: Vec2Like): boolean;
|
|
124
|
-
setX(x: number): this;
|
|
125
|
-
setY(y: number): this;
|
|
126
|
-
setW(w: number): this;
|
|
127
|
-
set(x: number, y: number): this;
|
|
128
|
-
set(vec: Vec2Like): this;
|
|
129
|
-
add(x: number, y: number): Vec2;
|
|
130
|
-
add(vec: Vec2Like): Vec2;
|
|
131
|
-
offset(x: number, y: number): this;
|
|
132
|
-
offset(vec: Vec2Like): this;
|
|
133
|
-
subtract(x: number, y: number): Vec2;
|
|
134
|
-
subtract(vec: Vec2Like): Vec2;
|
|
135
|
-
multiply(scalar: number): Vec2;
|
|
136
|
-
naiveMultiply(x: number, y: number): Vec2;
|
|
137
|
-
naiveMultiply(vec: Vec2Like): Vec2;
|
|
138
|
-
divide(x: number, y: number): Vec2;
|
|
139
|
-
divide(scalar: number): Vec2;
|
|
140
|
-
divide(vec: Vec2Like): Vec2;
|
|
141
|
-
dot(x: number, y: number): number;
|
|
142
|
-
dot(vec: Vec2Like): number;
|
|
143
|
-
distance(x: number, y: number): number;
|
|
144
|
-
distance(vec: Vec2Like): number;
|
|
145
|
-
distanceSquare(x: number, y: number): number;
|
|
146
|
-
distanceSquare(vec: Vec2Like): number;
|
|
147
|
-
length(): number;
|
|
148
|
-
cartesianify(): Vec2;
|
|
149
|
-
polarify(): Vec2;
|
|
150
|
-
normalize(): Vec2;
|
|
151
|
-
invert(): Vec2;
|
|
152
|
-
round(): Vec2;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* An abstract class of a mathematical function
|
|
157
|
-
* @template Input The amount of input values the function can use
|
|
158
|
-
*/
|
|
159
|
-
declare abstract class MathFunction<Input extends Array<number> = Array<number>> implements IToString {
|
|
160
|
-
/**
|
|
161
|
-
* Calculate y with input values
|
|
162
|
-
* @param args The input values
|
|
163
|
-
* @returns The y value from the input values
|
|
164
|
-
*/
|
|
165
|
-
abstract get(...args: Input): number;
|
|
166
|
-
/**
|
|
167
|
-
* Get the root points of this function
|
|
168
|
-
* @returns The root points, this can be an empty array if no root points have been found
|
|
169
|
-
*/
|
|
170
|
-
abstract roots(): Array<Vec2>;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* The string representation of a linear function
|
|
175
|
-
*/
|
|
176
|
-
type LinearFunctionString = `f(x) = ${number} * x ${"+" | "-"} ${number}` | `f(x) = ${number} * x`;
|
|
177
|
-
/**
|
|
178
|
-
* A class that implements a linear function with `m`, `b` and `x`
|
|
179
|
-
*/
|
|
180
|
-
declare class LinearFunction extends MathFunction<[number]> {
|
|
181
|
-
/**
|
|
182
|
-
* The factor of the linear function
|
|
183
|
-
*/
|
|
184
|
-
m: number;
|
|
185
|
-
/**
|
|
186
|
-
* The height of the linear function
|
|
187
|
-
*/
|
|
188
|
-
b: number;
|
|
189
|
-
/**
|
|
190
|
-
* Create a linear function from two points
|
|
191
|
-
* @param a A point
|
|
192
|
-
* @param b A point
|
|
193
|
-
* @returns A linear function from two points
|
|
194
|
-
*/
|
|
195
|
-
static fromPoints(a: Vec2Like, b: Vec2Like): LinearFunction;
|
|
196
|
-
/**
|
|
197
|
-
* Create a linear function with a factor and height
|
|
198
|
-
* @param m The factor
|
|
199
|
-
* @param b The height
|
|
200
|
-
*/
|
|
201
|
-
constructor(m: number, b: number);
|
|
202
|
-
get(x: number): number;
|
|
203
|
-
roots(): Array<Vec2>;
|
|
204
|
-
toString(): LinearFunctionString;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
type QuadFunctionType = "standard";
|
|
208
|
-
type QuadFunctionString = {
|
|
209
|
-
"standard": `f(x) = ${number}x^2 ${"+" | "-"} ${number}x ${"+" | "-"} ${number}` | `f(x) = ${number}x^2 ${"+" | "-"} ${number}x` | `f(x) = ${number}x^2`;
|
|
210
|
-
};
|
|
211
|
-
type QuadFunctionStrings = QuadFunctionString[QuadFunctionType];
|
|
212
|
-
declare class QuadFunction extends MathFunction<[number]> {
|
|
213
|
-
a: number;
|
|
214
|
-
b: number;
|
|
215
|
-
c: number;
|
|
216
|
-
static get(a: number, b: number, c: number, x: number): number;
|
|
217
|
-
constructor(a: number, b: number, c: number);
|
|
218
|
-
get(x: number): number;
|
|
219
|
-
roots(): Array<Vec2>;
|
|
220
|
-
toString<T extends QuadFunctionType>(type?: T): QuadFunctionString[T];
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
declare class ResolveError extends Error {
|
|
224
|
-
readonly target: string;
|
|
225
|
-
readonly value: unknown;
|
|
226
|
-
constructor(target: string, value: unknown);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
declare function sign_char(num: number | bigint): "-" | "+" | undefined;
|
|
230
|
-
|
|
231
|
-
type JavaScriptTypes = "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
|
|
232
|
-
type JavaScriptTypeMap = {
|
|
233
|
-
"string": string;
|
|
234
|
-
"number": number;
|
|
235
|
-
"bigint": bigint;
|
|
236
|
-
"boolean": boolean;
|
|
237
|
-
"symbol": symbol;
|
|
238
|
-
"undefined": undefined;
|
|
239
|
-
"object": object;
|
|
240
|
-
"function": Function;
|
|
241
|
-
};
|
|
242
|
-
type HexDigit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "A" | "B" | "C" | "D" | "E" | "F";
|
|
243
|
-
type HexLike = `$${string}` | `#${string}` | `0x${string}` | string;
|
|
244
|
-
type Predicate<T> = (a: unknown) => a is T;
|
|
245
|
-
declare function check_number(obj: unknown): obj is number;
|
|
246
|
-
declare function check_hex_digit(obj: unknown): obj is HexDigit;
|
|
247
|
-
declare function get_hex_part(string: string): string;
|
|
248
|
-
declare function check_hex(obj: unknown): obj is HexLike;
|
|
249
|
-
declare function check_string(obj: unknown): obj is string;
|
|
250
|
-
declare function check_array<T>(obj: unknown, predicate?: Predicate<T>, requiredLength?: number): obj is Array<T>;
|
|
251
|
-
declare function check_number_array(obj: unknown, requiredLength?: number): obj is Array<number>;
|
|
252
|
-
declare function check_string_array(obj: unknown, requiredLength?: number): obj is Array<string>;
|
|
253
|
-
declare function has_property<Obj, Name extends string, Type extends JavaScriptTypes>(obj: Obj, name: Name, type: Type): obj is Obj & {
|
|
254
|
-
[name in Name]: JavaScriptTypeMap[Type];
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
declare const DJB2_OFFSET = 5381n;
|
|
258
|
-
declare function djb2<V>(value: V): bigint;
|
|
259
|
-
declare const FNV1_OFFSET = 14695981039346656037n;
|
|
260
|
-
declare const FNV1_PRIME = 1099511628211n;
|
|
261
|
-
declare function fnv1<V>(value: V): bigint;
|
|
262
|
-
declare function sdbm<V>(value: V): bigint;
|
|
263
|
-
interface IHash {
|
|
264
|
-
update(input: Uint8Array): this;
|
|
265
|
-
digest(): Uint8Array;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
declare class MD2 implements IHash {
|
|
269
|
-
static readonly BLOCK_SIZE = 16;
|
|
270
|
-
private _data;
|
|
271
|
-
private _state;
|
|
272
|
-
private _checksum;
|
|
273
|
-
private _length;
|
|
274
|
-
constructor();
|
|
275
|
-
update(input: Uint8Array): this;
|
|
276
|
-
private _transform;
|
|
277
|
-
digest(): Uint8Array;
|
|
278
39
|
}
|
|
279
40
|
|
|
280
|
-
declare const MAX_ANGLE_DEGREE = 360;
|
|
281
|
-
declare const cap_angle_degree: (angle: number) => number;
|
|
282
|
-
declare const cap_angle_radian: (angle: number) => number;
|
|
283
|
-
declare const radian_to_degree: (angle: number) => number;
|
|
284
|
-
declare const degree_to_radian: (angle: number) => number;
|
|
285
|
-
|
|
286
41
|
interface ICircle extends IVec2 {
|
|
287
42
|
radius: number;
|
|
288
43
|
}
|
|
44
|
+
interface IToCircle {
|
|
45
|
+
toCircle(): CircleLike;
|
|
46
|
+
}
|
|
289
47
|
type CircleArray = [...Vec2Array, number];
|
|
290
48
|
type CircleString = `${Vec2String}|${number}`;
|
|
291
|
-
type CircleLike = ICircle | CircleArray | CircleString;
|
|
292
|
-
|
|
49
|
+
type CircleLike = ICircle | CircleArray | CircleString | IToCircle;
|
|
50
|
+
type CircleArguments = [circle: CircleLike] | [position: Vec2Like, radius: number] | CircleArray;
|
|
51
|
+
declare class Circle implements ICircle, IGeometryObject, IToVec2 {
|
|
293
52
|
radius: number;
|
|
294
53
|
get perimeter(): number;
|
|
295
54
|
get area(): number;
|
|
@@ -301,24 +60,37 @@ declare class Circle implements ICircle, IGeometryObject, IToString {
|
|
|
301
60
|
get w(): number;
|
|
302
61
|
set w(val: number);
|
|
303
62
|
static resolve(a: unknown): Circle;
|
|
63
|
+
static resolveArgs(args: CircleArguments): Circle;
|
|
304
64
|
static cast(a: unknown): Circle | undefined;
|
|
305
65
|
static is(a: unknown): a is CircleLike;
|
|
306
66
|
constructor(position: Vec2Like, radius: number);
|
|
307
67
|
toArray(): CircleArray;
|
|
308
68
|
toJSON(): ICircle;
|
|
309
69
|
toString(): CircleString;
|
|
70
|
+
get [Symbol.toStringTag](): string;
|
|
71
|
+
[NodeJSCustomInspect](): string;
|
|
310
72
|
clone(): Circle;
|
|
73
|
+
toVec2(): Vec2Like;
|
|
311
74
|
equals(circle: CircleLike): boolean;
|
|
312
|
-
|
|
313
|
-
|
|
75
|
+
equals(x: number, y: number, radius: number): boolean;
|
|
76
|
+
equals(position: Vec2Like, radius: number): boolean;
|
|
77
|
+
inside(circle: CircleLike): boolean;
|
|
78
|
+
inside(x: number, y: number, radius: number): boolean;
|
|
79
|
+
inside(position: Vec2Like, radius: number): boolean;
|
|
80
|
+
insidePoint(point: Vec2Like): boolean;
|
|
81
|
+
insidePoint(x: number, y: number): boolean;
|
|
314
82
|
}
|
|
315
83
|
|
|
316
84
|
interface IRectangle extends IVec2, ISize {
|
|
317
85
|
}
|
|
86
|
+
interface IToRectangle {
|
|
87
|
+
toRectangle(): RectangleLike;
|
|
88
|
+
}
|
|
318
89
|
type RectangleArray = [...Vec2Array, ...SizeArray];
|
|
319
90
|
type RectangleString = `${Vec2String}|${SizeString}`;
|
|
320
|
-
type RectangleLike = IRectangle | RectangleArray | RectangleString;
|
|
321
|
-
|
|
91
|
+
type RectangleLike = IRectangle | RectangleArray | RectangleString | IToRectangle;
|
|
92
|
+
type RectangleArguments = [rectangle: RectangleLike] | [position: Vec2Like, size: SizeLike] | RectangleArray;
|
|
93
|
+
declare class Rectangle implements IRectangle, IGeometryObject, IToBoundingBox, IToVec2, IToSize {
|
|
322
94
|
position: Vec2;
|
|
323
95
|
size: Size;
|
|
324
96
|
get area(): number;
|
|
@@ -334,15 +106,22 @@ declare class Rectangle implements IRectangle, IGeometryObject, IToString {
|
|
|
334
106
|
get height(): number;
|
|
335
107
|
set height(val: number);
|
|
336
108
|
static resolve(a: unknown): Rectangle;
|
|
109
|
+
static resolveArgs(args: RectangleArguments): Rectangle;
|
|
337
110
|
static cast(a: unknown): Rectangle | undefined;
|
|
338
111
|
static is(a: unknown): a is RectangleLike;
|
|
339
112
|
constructor(pos: Vec2Like, size: SizeLike);
|
|
340
113
|
toArray(w?: boolean): RectangleArray;
|
|
341
114
|
toString(w?: boolean): RectangleString;
|
|
115
|
+
get [Symbol.toStringTag](): string;
|
|
116
|
+
[NodeJSCustomInspect](): string;
|
|
342
117
|
toJSON(): IRectangle;
|
|
343
118
|
toBoundingBox(): BoundingBoxLike;
|
|
119
|
+
toVec2(): Vec2Like;
|
|
120
|
+
toSize(): SizeLike;
|
|
344
121
|
clone(): Rectangle;
|
|
345
122
|
equals(rectangle: RectangleLike): boolean;
|
|
123
|
+
equals(position: Vec2Like, size: SizeLike): boolean;
|
|
124
|
+
equals(x: number, y: number, width: number, height: number): boolean;
|
|
346
125
|
}
|
|
347
126
|
|
|
348
127
|
interface IBoundingBox {
|
|
@@ -351,10 +130,14 @@ interface IBoundingBox {
|
|
|
351
130
|
top: number;
|
|
352
131
|
bottom: number;
|
|
353
132
|
}
|
|
133
|
+
interface IToBoundingBox {
|
|
134
|
+
toBoundingBox(): BoundingBoxLike;
|
|
135
|
+
}
|
|
354
136
|
type BoundingBoxArray = [number, number, number, number];
|
|
355
137
|
type BoundingBoxString = `${number},${number},${number},${number}`;
|
|
356
|
-
type BoundingBoxLike = IBoundingBox | BoundingBoxArray | BoundingBoxString;
|
|
357
|
-
|
|
138
|
+
type BoundingBoxLike = IBoundingBox | BoundingBoxArray | BoundingBoxString | IToBoundingBox;
|
|
139
|
+
type BoundingBoxArgs = [bbox: BoundingBoxLike] | BoundingBoxArray;
|
|
140
|
+
declare class BoundingBox implements IBoundingBox, IRectangle, IToRectangle, IToString {
|
|
358
141
|
left: number;
|
|
359
142
|
right: number;
|
|
360
143
|
top: number;
|
|
@@ -363,59 +146,34 @@ declare class BoundingBox implements IBoundingBox, ISize, IToString {
|
|
|
363
146
|
set width(val: number);
|
|
364
147
|
get height(): number;
|
|
365
148
|
set height(val: number);
|
|
149
|
+
get x(): number;
|
|
150
|
+
set x(x: number);
|
|
151
|
+
get y(): number;
|
|
152
|
+
set y(y: number);
|
|
153
|
+
w: number;
|
|
366
154
|
static resolve(a: unknown): BoundingBox;
|
|
155
|
+
static resolveArgs(args: BoundingBoxArgs): BoundingBox;
|
|
367
156
|
static cast(a: unknown): BoundingBox | undefined;
|
|
368
157
|
static is(a: unknown): a is BoundingBoxLike;
|
|
369
158
|
constructor(left: number, right: number, top: number, bottom: number);
|
|
370
159
|
toArray(): BoundingBoxArray;
|
|
371
160
|
toString(): BoundingBoxString;
|
|
161
|
+
get [Symbol.toStringTag](): string;
|
|
162
|
+
[NodeJSCustomInspect](): string;
|
|
372
163
|
toJSON(): IBoundingBox;
|
|
373
164
|
clone(): BoundingBox;
|
|
374
165
|
equals(bbox: BoundingBoxLike): boolean;
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
readonly alpha: number;
|
|
387
|
-
readonly beta: number;
|
|
388
|
-
readonly gamma: number;
|
|
389
|
-
readonly semiperimeter: number;
|
|
390
|
-
readonly height: number;
|
|
391
|
-
readonly base: number;
|
|
392
|
-
}
|
|
393
|
-
declare abstract class ATriangle<P extends Vec2 | Vec3> implements ITriangle, IToString {
|
|
394
|
-
A: P;
|
|
395
|
-
B: P;
|
|
396
|
-
C: P;
|
|
397
|
-
abstract get a(): number;
|
|
398
|
-
abstract get b(): number;
|
|
399
|
-
abstract get c(): number;
|
|
400
|
-
constructor(A: P, B: P, C: P);
|
|
401
|
-
get alpha(): number;
|
|
402
|
-
get beta(): number;
|
|
403
|
-
get gamma(): number;
|
|
404
|
-
get perimeter(): number;
|
|
405
|
-
get semiperimeter(): number;
|
|
406
|
-
get area(): number;
|
|
407
|
-
get base(): number;
|
|
408
|
-
get height(): number;
|
|
409
|
-
}
|
|
410
|
-
declare class Triangle2D extends ATriangle<Vec2> implements IToString {
|
|
411
|
-
get a(): number;
|
|
412
|
-
get b(): number;
|
|
413
|
-
get c(): number;
|
|
414
|
-
}
|
|
415
|
-
declare class Triangle3D extends ATriangle<Vec3> {
|
|
416
|
-
get a(): number;
|
|
417
|
-
get b(): number;
|
|
418
|
-
get c(): number;
|
|
166
|
+
equals(left: number, right: number, top: number, bottom: number): boolean;
|
|
167
|
+
toSize(): SizeLike;
|
|
168
|
+
toVec2(): Vec2Like;
|
|
169
|
+
toRectangle(): RectangleLike;
|
|
170
|
+
inside(bbox: BoundingBoxLike): boolean;
|
|
171
|
+
inside(left: number, right: number, top: number, bottom: number): boolean;
|
|
172
|
+
insidePoint(point: Vec2Like): boolean;
|
|
173
|
+
insidePoint(x: number, y: number): boolean;
|
|
174
|
+
insideCircle(circle: CircleLike): boolean;
|
|
175
|
+
insideCircle(x: number, y: number, radius: number): boolean;
|
|
176
|
+
insideCircle(position: Vec2Like, radius: number): boolean;
|
|
419
177
|
}
|
|
420
178
|
|
|
421
179
|
interface IMat4 {
|
|
@@ -436,11 +194,15 @@ interface IMat4 {
|
|
|
436
194
|
m32: number;
|
|
437
195
|
m33: number;
|
|
438
196
|
}
|
|
439
|
-
|
|
197
|
+
interface IToMat4 {
|
|
198
|
+
toMat4(): Mat4Like;
|
|
199
|
+
}
|
|
200
|
+
type Mat4Array = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
|
|
440
201
|
type Mat4NestedArray = [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]];
|
|
441
202
|
type Mat4String = `${number},${number},${number},${number},${number},${number},${number},${number},${number},${number},${number},${number},${number},${number},${number},${number}`;
|
|
442
|
-
type Mat4Like = IMat4 | Mat4Array | Mat4NestedArray | Mat4String | number;
|
|
443
|
-
|
|
203
|
+
type Mat4Like = IMat4 | Mat4Array | Mat4NestedArray | Mat4String | number | IToMat4;
|
|
204
|
+
type Mat4Arguments = [mat: Mat4Like] | Mat4Array;
|
|
205
|
+
declare class Mat4 implements IMat4, IToMat3, IToString {
|
|
444
206
|
protected _raw: Mat4Array;
|
|
445
207
|
get m00(): number;
|
|
446
208
|
set m00(val: number);
|
|
@@ -475,9 +237,11 @@ declare class Mat4 implements IMat4 {
|
|
|
475
237
|
get m33(): number;
|
|
476
238
|
set m33(val: number);
|
|
477
239
|
static resolve(a: unknown): Mat4;
|
|
240
|
+
static resolveArgs(args: Mat4Arguments): Mat4;
|
|
478
241
|
static cast(a: unknown): Mat4 | undefined;
|
|
479
242
|
static is(a: unknown): a is Mat4Like;
|
|
480
243
|
static orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4;
|
|
244
|
+
static orthographic(bbox: BoundingBoxLike, near: number, far: number): Mat4;
|
|
481
245
|
static perspective(fov: number, aspect: number, near: number, far: number): Mat4;
|
|
482
246
|
static pointAt(position: Vec3Like, target: Vec3Like, up: Vec3Like): Mat4;
|
|
483
247
|
constructor(init?: Mat4Array);
|
|
@@ -485,22 +249,28 @@ declare class Mat4 implements IMat4 {
|
|
|
485
249
|
toNestetArray(): Mat4NestedArray;
|
|
486
250
|
toJSON(): IMat4;
|
|
487
251
|
toString(): Mat4String;
|
|
252
|
+
get [Symbol.toStringTag](): string;
|
|
253
|
+
[NodeJSCustomInspect](): string;
|
|
488
254
|
clone(): Mat4;
|
|
489
255
|
equals(mat: Mat4Like): boolean;
|
|
256
|
+
equals(...mat: Mat4Array): boolean;
|
|
490
257
|
add(mat: Mat4Like): Mat4;
|
|
258
|
+
add(...mat: Mat4Array): Mat4;
|
|
491
259
|
subtract(mat: Mat4Like): Mat4;
|
|
260
|
+
subtract(...mat: Mat4Array): Mat4;
|
|
492
261
|
multiply(mat: Mat4Like): Mat4;
|
|
262
|
+
multiply(...mat: Mat4Array): Mat4;
|
|
493
263
|
multiply(scalar: number): Mat4;
|
|
494
264
|
multiply(vec: Vec3Like): Vec3;
|
|
495
|
-
translate(x: number, y: number, z: number):
|
|
496
|
-
translate(vec: Vec3Like):
|
|
265
|
+
translate(x: number, y: number, z: number): Mat4;
|
|
266
|
+
translate(vec: Vec3Like): Mat4;
|
|
497
267
|
rotateX(angle: number): Mat4;
|
|
498
268
|
rotateY(angle: number): Mat4;
|
|
499
269
|
rotateZ(angle: number): Mat4;
|
|
500
|
-
rotate(x: number, y: number, z: number):
|
|
501
|
-
rotate(vec: Vec3Like):
|
|
502
|
-
scale(x: number, y: number, z: number):
|
|
503
|
-
scale(vec: Vec3Like):
|
|
270
|
+
rotate(x: number, y: number, z: number): Mat4;
|
|
271
|
+
rotate(vec: Vec3Like): Mat4;
|
|
272
|
+
scale(x: number, y: number, z: number): Mat4;
|
|
273
|
+
scale(vec: Vec3Like): Mat4;
|
|
504
274
|
inverse(): Mat4;
|
|
505
275
|
toMat3(): Mat3Like;
|
|
506
276
|
}
|
|
@@ -516,11 +286,15 @@ interface IMat3 {
|
|
|
516
286
|
m21: number;
|
|
517
287
|
m22: number;
|
|
518
288
|
}
|
|
289
|
+
interface IToMat3 {
|
|
290
|
+
toMat3(): Mat3Like;
|
|
291
|
+
}
|
|
519
292
|
type Mat3Array = [number, number, number, number, number, number, number, number, number];
|
|
520
293
|
type Mat3NestedArray = [[number, number, number], [number, number, number], [number, number, number]];
|
|
521
294
|
type Mat3String = `${number},${number},${number},${number},${number},${number},${number},${number},${number}`;
|
|
522
|
-
type Mat3Like = IMat3 | Mat3Array | Mat3NestedArray | Mat3String | number;
|
|
523
|
-
|
|
295
|
+
type Mat3Like = IMat3 | Mat3Array | Mat3NestedArray | Mat3String | number | IToMat3;
|
|
296
|
+
type Mat3Arguments = [mat: Mat3Like] | Mat3Array;
|
|
297
|
+
declare class Mat3 implements IMat3, IToMat4, IToString {
|
|
524
298
|
protected _raw: Mat3Array;
|
|
525
299
|
get m00(): number;
|
|
526
300
|
set m00(val: number);
|
|
@@ -541,6 +315,7 @@ declare class Mat3 implements IMat3 {
|
|
|
541
315
|
get m22(): number;
|
|
542
316
|
set m22(val: number);
|
|
543
317
|
static resolve(a: unknown): Mat3;
|
|
318
|
+
static resolveArgs(args: Mat3Arguments): Mat3;
|
|
544
319
|
static cast(a: unknown): Mat3 | undefined;
|
|
545
320
|
static is(a: unknown): a is Mat3Like;
|
|
546
321
|
static projection(width: number, height: number): Mat3;
|
|
@@ -549,11 +324,17 @@ declare class Mat3 implements IMat3 {
|
|
|
549
324
|
toNestetArray(): Mat3NestedArray;
|
|
550
325
|
toJSON(): IMat3;
|
|
551
326
|
toString(): Mat3String;
|
|
327
|
+
get [Symbol.toStringTag](): string;
|
|
328
|
+
[NodeJSCustomInspect](): string;
|
|
552
329
|
clone(): Mat3;
|
|
553
330
|
equals(mat: Mat3Like): boolean;
|
|
331
|
+
equals(...mat: Mat3Array): boolean;
|
|
554
332
|
add(mat: Mat3Like): Mat3;
|
|
333
|
+
add(...mat: Mat3Array): Mat3;
|
|
555
334
|
subtract(mat: Mat3Like): Mat3;
|
|
335
|
+
subtract(...mat: Mat3Array): Mat3;
|
|
556
336
|
multiply(mat: Mat3Like): Mat3;
|
|
337
|
+
multiply(...mat: Mat3Array): Mat3;
|
|
557
338
|
multiply(scalar: number): Mat3;
|
|
558
339
|
translate(x: number, y: number): Mat3;
|
|
559
340
|
translate(vec: Vec2Like): Mat3;
|
|
@@ -565,25 +346,98 @@ declare class Mat3 implements IMat3 {
|
|
|
565
346
|
toMat4(): Mat4Like;
|
|
566
347
|
}
|
|
567
348
|
|
|
349
|
+
interface IQuaternion {
|
|
350
|
+
w: number;
|
|
351
|
+
x: number;
|
|
352
|
+
y: number;
|
|
353
|
+
z: number;
|
|
354
|
+
}
|
|
355
|
+
interface IToQuaternion {
|
|
356
|
+
toQuaternion(): QuaternionLike;
|
|
357
|
+
}
|
|
358
|
+
type QuaternionArray = [number, number, number, number];
|
|
359
|
+
type QuaternionString = `${number} + ${number}i + ${number}j + ${number}k`;
|
|
360
|
+
type QuaternionLike = IQuaternion | QuaternionArray | QuaternionString | IToQuaternion;
|
|
361
|
+
type QuaternionArguments = QuaternionArray | [quaternion: QuaternionLike];
|
|
362
|
+
declare class Quaternion implements IToVec3, IToMat3, IToMat4, IToString {
|
|
363
|
+
w: number;
|
|
364
|
+
x: number;
|
|
365
|
+
y: number;
|
|
366
|
+
z: number;
|
|
367
|
+
static is(a: unknown): a is IQuaternion;
|
|
368
|
+
static resolve(a: unknown): Quaternion;
|
|
369
|
+
static resolveArgs(args: QuaternionArguments): Quaternion;
|
|
370
|
+
static cast(a: unknown): Quaternion | undefined;
|
|
371
|
+
static fromAxisAngle(axis: Vec3Like, angle: number): Quaternion;
|
|
372
|
+
static fromAxisAngle(x: number, y: number, z: number, angle: number): Quaternion;
|
|
373
|
+
static fromEuler(x: number, y: number, z: number): Quaternion;
|
|
374
|
+
static fromEuler(vec: Vec3Like): Quaternion;
|
|
375
|
+
static get zero(): Quaternion;
|
|
376
|
+
constructor(w: number, x: number, y: number, z: number);
|
|
377
|
+
toArray(): QuaternionArray;
|
|
378
|
+
toString(): QuaternionString;
|
|
379
|
+
get [Symbol.toStringTag](): string;
|
|
380
|
+
[NodeJSCustomInspect](): string;
|
|
381
|
+
toJSON(): IQuaternion;
|
|
382
|
+
clone(): Quaternion;
|
|
383
|
+
add(quaternion: QuaternionLike): Quaternion;
|
|
384
|
+
add(...quaternion: QuaternionArray): Quaternion;
|
|
385
|
+
offset(quaternion: QuaternionLike): this;
|
|
386
|
+
offset(...quaternion: QuaternionArray): this;
|
|
387
|
+
subtract(quaternion: QuaternionLike): Quaternion;
|
|
388
|
+
subtract(...quaternion: QuaternionArray): Quaternion;
|
|
389
|
+
negative(): Quaternion;
|
|
390
|
+
length(sqrt?: boolean): number;
|
|
391
|
+
normalize(): Quaternion;
|
|
392
|
+
multiply(quaternion: QuaternionLike): Quaternion;
|
|
393
|
+
multiply(...quaternion: QuaternionArray): Quaternion;
|
|
394
|
+
multiplyVector(x: number, y: number, z: number): Vec3;
|
|
395
|
+
multiplyVector(vec: Vec3Like): Vec3;
|
|
396
|
+
scale(scalar: number): Quaternion;
|
|
397
|
+
dot(quaternion: QuaternionLike): number;
|
|
398
|
+
dot(...quaternion: QuaternionArray): number;
|
|
399
|
+
inverse(): Quaternion;
|
|
400
|
+
divide(quaternion: QuaternionLike): Quaternion;
|
|
401
|
+
divide(...quaternion: QuaternionArray): Quaternion;
|
|
402
|
+
conjugate(): Quaternion;
|
|
403
|
+
exp(): Quaternion;
|
|
404
|
+
log(): Quaternion;
|
|
405
|
+
toVec3(): Vec3Like;
|
|
406
|
+
toAxisAngle(): Vec3;
|
|
407
|
+
toEuler(): Vec3;
|
|
408
|
+
toMat3(): Mat3Like;
|
|
409
|
+
toMat4(): Mat4Like;
|
|
410
|
+
}
|
|
411
|
+
|
|
568
412
|
interface IRGB {
|
|
569
413
|
red: number;
|
|
570
414
|
green: number;
|
|
571
415
|
blue: number;
|
|
572
416
|
}
|
|
417
|
+
interface IToRGB {
|
|
418
|
+
toRGB(): RGBLike;
|
|
419
|
+
}
|
|
573
420
|
type RGBArray = [number, number, number];
|
|
574
421
|
type RGBString = `rgb(${number},${number},${number})`;
|
|
575
|
-
type RGBLike = IRGB | RGBArray | RGBString;
|
|
422
|
+
type RGBLike = IRGB | RGBArray | RGBString | IToRGB;
|
|
423
|
+
type RGBArguments = [rgb: RGBLike] | RGBArray;
|
|
576
424
|
interface IRBBA extends IRGB {
|
|
577
425
|
alpha: number;
|
|
578
426
|
}
|
|
427
|
+
interface IToRGBA {
|
|
428
|
+
toRGBA(): RGBALike;
|
|
429
|
+
}
|
|
579
430
|
type RGBAArray = [number, number, number, number];
|
|
580
431
|
type RGBAString = `rgba(${number},${number},${number},${number})`;
|
|
581
|
-
type RGBALike = IRBBA | RGBAArray | RGBAString;
|
|
432
|
+
type RGBALike = IRBBA | RGBAArray | RGBAString | IToRGBA;
|
|
433
|
+
type RGBAArguments = [rgba: RGBALike] | RGBAArray;
|
|
582
434
|
type IAnyRGB = IRGB | IRBBA;
|
|
583
435
|
type AnyRGBArray = RGBArray | RGBAArray;
|
|
584
436
|
type AnyRGBString = RGBString | RGBAString;
|
|
585
|
-
type
|
|
586
|
-
|
|
437
|
+
type IAnyToRGB = IToRGB | IToRGBA;
|
|
438
|
+
type AnyRGBLike = IAnyRGB | AnyRGBArray | AnyRGBString | number | IAnyToRGB;
|
|
439
|
+
type AnyRGBArguments = RGBArguments | RGBAArguments;
|
|
440
|
+
declare class RGBA implements IRBBA, IToVec2, IToVec3, IToHSL, IToHSLA, IToString {
|
|
587
441
|
private _red;
|
|
588
442
|
get red(): number;
|
|
589
443
|
set red(val: number);
|
|
@@ -596,35 +450,53 @@ declare class RGBAColor implements IRBBA {
|
|
|
596
450
|
private _alpha;
|
|
597
451
|
get alpha(): number;
|
|
598
452
|
set alpha(val: number);
|
|
599
|
-
static resolve(a: unknown):
|
|
600
|
-
static
|
|
453
|
+
static resolve(a: unknown): RGBA;
|
|
454
|
+
static resolveArgs(args: AnyRGBArguments): RGBA;
|
|
455
|
+
static cast(a: unknown): RGBA | undefined;
|
|
601
456
|
static is(a: unknown): a is AnyRGBLike;
|
|
602
457
|
constructor(red: number, green: number, blue: number, alpha?: number);
|
|
603
458
|
toArray(withAlpha?: boolean): AnyRGBArray;
|
|
604
459
|
toJSON(withAlpha?: boolean): IAnyRGB;
|
|
605
460
|
toString(withAlpha?: boolean): AnyRGBString;
|
|
606
|
-
|
|
607
|
-
|
|
461
|
+
get [Symbol.toStringTag](): string;
|
|
462
|
+
[NodeJSCustomInspect](): string;
|
|
463
|
+
toVec2(): Vec2Like;
|
|
464
|
+
toVec3(): Vec3Like;
|
|
465
|
+
toHSL(withAlpha?: false): HSLLike;
|
|
466
|
+
toHSL(withAlpha?: true): HSLALike;
|
|
467
|
+
toHSLA(): HSLALike;
|
|
468
|
+
invert(withAlpha?: boolean): RGBA;
|
|
608
469
|
}
|
|
470
|
+
|
|
609
471
|
interface IHSL {
|
|
610
472
|
hue: number;
|
|
611
473
|
saturation: number;
|
|
612
474
|
luminace: number;
|
|
613
475
|
}
|
|
476
|
+
interface IToHSL {
|
|
477
|
+
toHSL(): HSLLike;
|
|
478
|
+
}
|
|
614
479
|
type HSLArray = [number, number, number];
|
|
615
480
|
type HSLString = `hsl(${number},${number},${number})`;
|
|
616
|
-
type HSLLike = IHSL | HSLArray | HSLString;
|
|
481
|
+
type HSLLike = IHSL | HSLArray | HSLString | IToHSL;
|
|
482
|
+
type HSLArguments = HSLArray | [hsl: HSLLike];
|
|
617
483
|
interface IHSLA extends IHSL {
|
|
618
484
|
alpha: number;
|
|
619
485
|
}
|
|
486
|
+
interface IToHSLA {
|
|
487
|
+
toHSLA(): HSLALike;
|
|
488
|
+
}
|
|
620
489
|
type HSLAArray = [number, number, number, number];
|
|
621
490
|
type HSLAString = `hsla(${number},${number},${number},${number})`;
|
|
622
|
-
type HSLALike = IHSLA | HSLAArray | HSLAString;
|
|
491
|
+
type HSLALike = IHSLA | HSLAArray | HSLAString | IToHSLA;
|
|
492
|
+
type HSLAArguments = HSLAArray | [hsla: HSLALike];
|
|
623
493
|
type IAnyHSL = IHSL | IHSLA;
|
|
624
494
|
type AnyHSLArray = HSLArray | HSLAArray;
|
|
625
495
|
type AnyHSLString = HSLString | HSLAString;
|
|
626
|
-
type
|
|
627
|
-
|
|
496
|
+
type IAnyToHSL = IToHSL | IToHSLA;
|
|
497
|
+
type AnyHSLLike = IAnyHSL | AnyHSLArray | AnyHSLString | number | IAnyToHSL;
|
|
498
|
+
type AnyHSLArguments = HSLArguments | HSLAArguments;
|
|
499
|
+
declare class HSLA implements IHSLA, IToRGB, IToRGBA, IToVec2, IToVec3, IToString {
|
|
628
500
|
private _hue;
|
|
629
501
|
get hue(): number;
|
|
630
502
|
set hue(val: number);
|
|
@@ -637,100 +509,420 @@ declare class HSLColor implements IHSLA {
|
|
|
637
509
|
private _alpha;
|
|
638
510
|
get alpha(): number;
|
|
639
511
|
set alpha(val: number);
|
|
640
|
-
static resolve(a: unknown):
|
|
641
|
-
static
|
|
642
|
-
static
|
|
512
|
+
static resolve(a: unknown): HSLA;
|
|
513
|
+
static resolveArgs(args: AnyHSLArguments): HSLA;
|
|
514
|
+
static cast(a: unknown): HSLA | undefined;
|
|
515
|
+
static is(a: unknown): a is AnyHSLLike;
|
|
643
516
|
constructor(hue: number, saturation: number, luminace: number, alpha?: number);
|
|
644
517
|
toArray(withAlpha?: boolean): AnyHSLArray;
|
|
645
518
|
toJSON(withAlpha?: boolean): IAnyHSL;
|
|
646
519
|
toString(withAlpha?: boolean): AnyHSLString;
|
|
647
|
-
|
|
648
|
-
|
|
520
|
+
get [Symbol.toStringTag](): string;
|
|
521
|
+
[NodeJSCustomInspect](): string;
|
|
522
|
+
toRGB(withAlpha?: true): RGBALike;
|
|
523
|
+
toRGB(withAlpha?: false): RGBLike;
|
|
524
|
+
toRGBA(): RGBALike;
|
|
525
|
+
toVec2(): Vec2Like;
|
|
526
|
+
toVec3(): Vec3Like;
|
|
527
|
+
invert(withAlpha?: boolean): HSLA;
|
|
649
528
|
}
|
|
650
|
-
type AnyColor = RGBAColor | HSLColor;
|
|
651
|
-
type AnyColorArray = AnyRGBArray | AnyHSLArray;
|
|
652
|
-
type AnyColorString = AnyRGBString | AnyHSLString;
|
|
653
|
-
type IColor = IAnyRGB | IAnyHSL;
|
|
654
|
-
type AnyColorLike = AnyColorArray | AnyColorString | IColor | HexLike | number;
|
|
655
|
-
declare function resolveColor(a: unknown, preferHSL?: boolean): AnyColor;
|
|
656
|
-
declare function castColor(a: unknown, preferHSL?: boolean): AnyColor | undefined;
|
|
657
529
|
|
|
658
|
-
interface
|
|
659
|
-
|
|
530
|
+
interface IVec3 extends IVec2 {
|
|
531
|
+
z: number;
|
|
532
|
+
}
|
|
533
|
+
interface IToVec3 {
|
|
534
|
+
toVec3(): Vec3Like;
|
|
535
|
+
}
|
|
536
|
+
type Vec3Array = [number, number, number] | [number, number, number, number];
|
|
537
|
+
type Vec3String = `${number},${number},${number}` | `${number},${number},${number};${number}`;
|
|
538
|
+
type Vec3Like = IVec3 | Vec3Array | Vec3String | number | IToVec3;
|
|
539
|
+
type Vec3Arguments = [Vec3Like] | [number, number, number];
|
|
540
|
+
declare class Vec3 implements IVec3, IToVec2, IToRGB, IToRGBA, IToHSL, IToHSLA, IToQuaternion, IToString {
|
|
660
541
|
x: number;
|
|
661
542
|
y: number;
|
|
662
543
|
z: number;
|
|
544
|
+
w: number;
|
|
545
|
+
static resolve(a: unknown): Vec3;
|
|
546
|
+
static cast(a: unknown): Vec3 | undefined;
|
|
547
|
+
static resolveArgs(args: Vec3Arguments): Vec3;
|
|
548
|
+
static is(a: unknown): a is Vec3Like;
|
|
549
|
+
static fromPoints(a: Vec3Like, b: Vec3Like): Vec3;
|
|
550
|
+
static clamp(value: Vec3Like, min: Vec3Like, max: Vec3Like): Vec3;
|
|
551
|
+
static intersectPlane(planeP: Vec3Like, planeN: Vec3Like, lineStart: Vec3Like, lineEnd: Vec3Like, t: number): Vec3;
|
|
552
|
+
static get zero(): Vec3;
|
|
553
|
+
static get one(): Vec3;
|
|
554
|
+
constructor(x: number, y: number, z: number, w?: number);
|
|
555
|
+
toArray(w?: boolean): Vec3Array;
|
|
556
|
+
toJSON(): IVec3;
|
|
557
|
+
toString(w?: boolean): Vec3String;
|
|
558
|
+
get [Symbol.toStringTag](): string;
|
|
559
|
+
[NodeJSCustomInspect](): string;
|
|
560
|
+
toVec2(): Vec2Like;
|
|
561
|
+
toRGB(): RGBLike;
|
|
562
|
+
toRGBA(): RGBALike;
|
|
563
|
+
toHSL(): HSLLike;
|
|
564
|
+
toHSLA(): HSLALike;
|
|
565
|
+
toQuaternion(): QuaternionLike;
|
|
566
|
+
clone(): Vec3;
|
|
567
|
+
equals(vec: Vec3Like): boolean;
|
|
568
|
+
equals(x: number, y: number, z: number): boolean;
|
|
569
|
+
setX(x: number): this;
|
|
570
|
+
setY(y: number): this;
|
|
571
|
+
setZ(z: number): this;
|
|
572
|
+
set(x: number, y: number, z: number): this;
|
|
573
|
+
set(vec: Vec3Like): this;
|
|
574
|
+
add(x: number, y: number, z: number): Vec3;
|
|
575
|
+
add(vec: Vec3Like): Vec3;
|
|
576
|
+
offset(x: number, y: number, z: number): this;
|
|
577
|
+
offset(vec: Vec3Like): this;
|
|
578
|
+
subtract(x: number, y: number, z: number): Vec3;
|
|
579
|
+
subtract(vec: Vec3Like): Vec3;
|
|
580
|
+
multiply(scalar: number): Vec3;
|
|
581
|
+
naiveMultiply(x: number, y: number, z: number): Vec3;
|
|
582
|
+
naiveMultiply(vec: Vec3Like): Vec3;
|
|
583
|
+
divide(x: number, y: number, z: number): Vec3;
|
|
584
|
+
divide(scalar: number): Vec3;
|
|
585
|
+
divide(vec: Vec3Like): Vec3;
|
|
586
|
+
dot(x: number, y: number, z: number): number;
|
|
587
|
+
dot(vec: Vec3Like): number;
|
|
588
|
+
cross(x: number, y: number, z: number): Vec3;
|
|
589
|
+
cross(vec: Vec3Like): Vec3;
|
|
590
|
+
distance(x: number, y: number, z: number): number;
|
|
591
|
+
distance(vec: Vec3Like): number;
|
|
592
|
+
distanceSquare(x: number, y: number, z: number): number;
|
|
593
|
+
distanceSquare(vec: Vec3Like): number;
|
|
594
|
+
length(): number;
|
|
595
|
+
normalize(): Vec3;
|
|
596
|
+
invert(): Vec3;
|
|
597
|
+
round(): Vec3;
|
|
663
598
|
}
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
599
|
+
|
|
600
|
+
interface IVec2 {
|
|
601
|
+
x: number;
|
|
602
|
+
y: number;
|
|
668
603
|
w: number;
|
|
604
|
+
}
|
|
605
|
+
interface IToVec2 {
|
|
606
|
+
toVec2(): Vec2Like;
|
|
607
|
+
}
|
|
608
|
+
type Vec2Array = [number, number] | [number, number, number];
|
|
609
|
+
type Vec2String = `${number},${number}` | `${number},${number};${number}`;
|
|
610
|
+
type Vec2Like = IVec2 | Vec2Array | Vec2String | number | IToVec2;
|
|
611
|
+
type Vec2Arguments = [Vec2Like] | [number, number];
|
|
612
|
+
declare class Vec2 implements IVec2, IToVec3, IToSize, IToRGB, IToRGBA, IToHSL, IToHSLA, IToString {
|
|
669
613
|
x: number;
|
|
670
614
|
y: number;
|
|
671
|
-
|
|
672
|
-
static
|
|
673
|
-
static
|
|
674
|
-
static
|
|
675
|
-
static
|
|
676
|
-
static
|
|
677
|
-
static
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
615
|
+
w: number;
|
|
616
|
+
static resolve(a: unknown): Vec2;
|
|
617
|
+
static cast(a: unknown): Vec2 | undefined;
|
|
618
|
+
static resolveArgs(args: Vec2Arguments): Vec2;
|
|
619
|
+
static is(a: unknown): a is Vec2Like;
|
|
620
|
+
static fromPoints(a: Vec2Like, b: Vec2Like): Vec2;
|
|
621
|
+
static clamp(value: Vec2Like, min: Vec2Like, max: Vec2Like): Vec2;
|
|
622
|
+
static get zero(): Vec2;
|
|
623
|
+
static get one(): Vec2;
|
|
624
|
+
constructor(x: number, y: number, w?: number);
|
|
625
|
+
toArray(w?: boolean): Vec2Array;
|
|
626
|
+
toJSON(): IVec2;
|
|
627
|
+
toString(w?: boolean): Vec2String;
|
|
628
|
+
get [Symbol.toStringTag](): string;
|
|
629
|
+
[NodeJSCustomInspect](): string;
|
|
630
|
+
toSize(): SizeLike;
|
|
631
|
+
toVec3(z?: number): Vec3Like;
|
|
632
|
+
toRGB(): RGBLike;
|
|
633
|
+
toRGBA(): RGBALike;
|
|
634
|
+
toHSL(): HSLLike;
|
|
635
|
+
toHSLA(): HSLALike;
|
|
636
|
+
clone(): Vec2;
|
|
637
|
+
equals(vec: Vec2Like): boolean;
|
|
638
|
+
equals(x: number, y: number): boolean;
|
|
639
|
+
setX(x: number): this;
|
|
640
|
+
setY(y: number): this;
|
|
641
|
+
setW(w: number): this;
|
|
642
|
+
set(x: number, y: number): this;
|
|
643
|
+
set(vec: Vec2Like): this;
|
|
644
|
+
add(x: number, y: number): Vec2;
|
|
645
|
+
add(vec: Vec2Like): Vec2;
|
|
646
|
+
offset(x: number, y: number): this;
|
|
647
|
+
offset(vec: Vec2Like): this;
|
|
648
|
+
subtract(x: number, y: number): Vec2;
|
|
649
|
+
subtract(vec: Vec2Like): Vec2;
|
|
650
|
+
multiply(scalar: number): Vec2;
|
|
651
|
+
naiveMultiply(x: number, y: number): Vec2;
|
|
652
|
+
naiveMultiply(vec: Vec2Like): Vec2;
|
|
653
|
+
divide(x: number, y: number): Vec2;
|
|
654
|
+
divide(scalar: number): Vec2;
|
|
655
|
+
divide(vec: Vec2Like): Vec2;
|
|
656
|
+
dot(x: number, y: number): number;
|
|
657
|
+
dot(vec: Vec2Like): number;
|
|
658
|
+
distance(x: number, y: number): number;
|
|
659
|
+
distance(vec: Vec2Like): number;
|
|
660
|
+
distanceSquare(x: number, y: number): number;
|
|
661
|
+
distanceSquare(vec: Vec2Like): number;
|
|
662
|
+
length(): number;
|
|
663
|
+
cartesianify(): Vec2;
|
|
664
|
+
polarify(): Vec2;
|
|
665
|
+
normalize(): Vec2;
|
|
666
|
+
invert(): Vec2;
|
|
667
|
+
round(): Vec2;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
/**
|
|
671
|
+
* An abstract class of a mathematical function
|
|
672
|
+
* @template Input The amount of input values the function can use
|
|
673
|
+
*/
|
|
674
|
+
declare abstract class MathFunction<Input extends Array<number> = Array<number>> implements IToString {
|
|
675
|
+
/**
|
|
676
|
+
* Calculate y with input values
|
|
677
|
+
* @param args The input values
|
|
678
|
+
* @returns The y value from the input values
|
|
679
|
+
*/
|
|
680
|
+
abstract get(...args: Input): number;
|
|
681
|
+
/**
|
|
682
|
+
* Get the root points of this function
|
|
683
|
+
* @returns The root points, this can be an empty array if no root points have been found
|
|
684
|
+
*/
|
|
685
|
+
abstract roots(): Array<Vec2>;
|
|
686
|
+
abstract get [Symbol.toStringTag](): string;
|
|
687
|
+
abstract [NodeJSCustomInspect](): string;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* The string representation of a linear function
|
|
692
|
+
*/
|
|
693
|
+
type LinearFunctionString = `f(x) = ${number} * x ${"+" | "-"} ${number}` | `f(x) = ${number} * x`;
|
|
694
|
+
/**
|
|
695
|
+
* A class that implements a linear function with `m`, `b` and `x`
|
|
696
|
+
*/
|
|
697
|
+
declare class LinearFunction extends MathFunction<[number]> {
|
|
698
|
+
/**
|
|
699
|
+
* The factor of the linear function
|
|
700
|
+
*/
|
|
701
|
+
m: number;
|
|
702
|
+
/**
|
|
703
|
+
* The height of the linear function
|
|
704
|
+
*/
|
|
705
|
+
b: number;
|
|
706
|
+
/**
|
|
707
|
+
* Create a linear function from two points
|
|
708
|
+
* @param a A point
|
|
709
|
+
* @param b A point
|
|
710
|
+
* @returns A linear function from two points
|
|
711
|
+
*/
|
|
712
|
+
static fromPoints(a: Vec2Like, b: Vec2Like): LinearFunction;
|
|
713
|
+
/**
|
|
714
|
+
* Create a linear function with a factor and height
|
|
715
|
+
* @param m The factor
|
|
716
|
+
* @param b The height
|
|
717
|
+
*/
|
|
718
|
+
constructor(m: number, b: number);
|
|
719
|
+
get(x: number): number;
|
|
720
|
+
roots(): Array<Vec2>;
|
|
721
|
+
toString(): LinearFunctionString;
|
|
722
|
+
get [Symbol.toStringTag](): string;
|
|
723
|
+
[NodeJSCustomInspect](): string;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* A type that represents the sign of a number
|
|
728
|
+
*/
|
|
729
|
+
type SignCharacter = "-" | "+";
|
|
730
|
+
/**
|
|
731
|
+
* Get the sign character from a number
|
|
732
|
+
* @param num A number
|
|
733
|
+
*/
|
|
734
|
+
declare function signCharacter(num: number | bigint): SignCharacter | undefined;
|
|
735
|
+
|
|
736
|
+
/**
|
|
737
|
+
* The various types of how a quad function can be represented
|
|
738
|
+
*/
|
|
739
|
+
type QuadFunctionType = "standard";
|
|
740
|
+
/**
|
|
741
|
+
* A typed map of each quad function representations
|
|
742
|
+
*/
|
|
743
|
+
type QuadFunctionString = {
|
|
744
|
+
"standard": `f(x) = ${number}x^2 ${SignCharacter} ${number}x ${SignCharacter} ${number}` | `f(x) = ${number}x^2 ${SignCharacter} ${number}x` | `f(x) = ${number}x^2`;
|
|
745
|
+
};
|
|
746
|
+
/**
|
|
747
|
+
* A string representation of a quad function
|
|
748
|
+
*/
|
|
749
|
+
type QuadFunctionStrings = QuadFunctionString[QuadFunctionType];
|
|
750
|
+
/**
|
|
751
|
+
* A class that implements a quad function with `a`, `b` and `c`
|
|
752
|
+
*/
|
|
753
|
+
declare class QuadFunction extends MathFunction<[number]> {
|
|
754
|
+
a: number;
|
|
755
|
+
b: number;
|
|
756
|
+
c: number;
|
|
757
|
+
static get(a: number, b: number, c: number, x: number): number;
|
|
758
|
+
constructor(a: number, b: number, c: number);
|
|
759
|
+
get(x: number): number;
|
|
760
|
+
roots(): Array<Vec2>;
|
|
761
|
+
toString<T extends QuadFunctionType>(type?: T): QuadFunctionString[T];
|
|
762
|
+
get [Symbol.toStringTag](): string;
|
|
763
|
+
[NodeJSCustomInspect](): string;
|
|
704
764
|
}
|
|
705
765
|
|
|
766
|
+
declare function numberToRGB(number: number): FixedArray<number, 3>;
|
|
767
|
+
declare function numberToRGBA(number: number): FixedArray<number, 4>;
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* A error when a value wasn't able to be resolved to another type
|
|
771
|
+
*/
|
|
772
|
+
declare class ResolveError extends Error {
|
|
773
|
+
readonly target: string;
|
|
774
|
+
readonly value: unknown;
|
|
775
|
+
/**
|
|
776
|
+
* Create a resolve exception
|
|
777
|
+
* @param target The target type name
|
|
778
|
+
* @param value A value
|
|
779
|
+
*/
|
|
780
|
+
constructor(target: string, value: unknown);
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
declare const DJB2_OFFSET = 5381n;
|
|
784
|
+
declare function djb2<V>(value: V): bigint;
|
|
785
|
+
declare const FNV1_OFFSET = 14695981039346656037n;
|
|
786
|
+
declare const FNV1_PRIME = 1099511628211n;
|
|
787
|
+
declare function fnv1<V>(value: V): bigint;
|
|
788
|
+
declare function sdbm<V>(value: V): bigint;
|
|
789
|
+
interface IHash extends IToString {
|
|
790
|
+
update(input: Uint8Array): this;
|
|
791
|
+
digest(): Uint8Array;
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
declare class MD2 implements IHash {
|
|
795
|
+
static readonly BLOCK_SIZE = 16;
|
|
796
|
+
private _data;
|
|
797
|
+
private _state;
|
|
798
|
+
private _checksum;
|
|
799
|
+
private _length;
|
|
800
|
+
constructor();
|
|
801
|
+
update(input: Uint8Array): this;
|
|
802
|
+
private _transform;
|
|
803
|
+
digest(): Uint8Array;
|
|
804
|
+
toString(): string;
|
|
805
|
+
get [Symbol.toStringTag](): string;
|
|
806
|
+
[NodeJSCustomInspect](): string;
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
declare const MAX_ANGLE_DEGREE = 360;
|
|
810
|
+
declare const clampAngleDegree: (angle: number) => number;
|
|
811
|
+
declare const clampAngleRadian: (angle: number) => number;
|
|
812
|
+
declare const radianToDegree: (angle: number) => number;
|
|
813
|
+
declare const degreeToRadian: (angle: number) => number;
|
|
814
|
+
|
|
815
|
+
interface ITriangle extends IGeometryObject {
|
|
816
|
+
readonly a: number;
|
|
817
|
+
readonly b: number;
|
|
818
|
+
readonly c: number;
|
|
819
|
+
readonly alpha: number;
|
|
820
|
+
readonly beta: number;
|
|
821
|
+
readonly gamma: number;
|
|
822
|
+
readonly semiperimeter: number;
|
|
823
|
+
readonly height: number;
|
|
824
|
+
readonly base: number;
|
|
825
|
+
}
|
|
826
|
+
declare abstract class Triangle<T> implements ITriangle {
|
|
827
|
+
A: T;
|
|
828
|
+
B: T;
|
|
829
|
+
C: T;
|
|
830
|
+
abstract get a(): number;
|
|
831
|
+
abstract get b(): number;
|
|
832
|
+
abstract get c(): number;
|
|
833
|
+
constructor(A: T, B: T, C: T);
|
|
834
|
+
get alpha(): number;
|
|
835
|
+
get beta(): number;
|
|
836
|
+
get gamma(): number;
|
|
837
|
+
get perimeter(): number;
|
|
838
|
+
get semiperimeter(): number;
|
|
839
|
+
get area(): number;
|
|
840
|
+
get base(): number;
|
|
841
|
+
get height(): number;
|
|
842
|
+
toString(): string;
|
|
843
|
+
get [Symbol.toStringTag](): string;
|
|
844
|
+
[NodeJSCustomInspect](): string;
|
|
845
|
+
}
|
|
846
|
+
declare class Triangle2D extends Triangle<Vec2> {
|
|
847
|
+
get a(): number;
|
|
848
|
+
get b(): number;
|
|
849
|
+
get c(): number;
|
|
850
|
+
}
|
|
851
|
+
declare class Triangle3D extends Triangle<Vec3> {
|
|
852
|
+
get a(): number;
|
|
853
|
+
get b(): number;
|
|
854
|
+
get c(): number;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
type AnyColorArray = AnyRGBArray | AnyHSLArray;
|
|
858
|
+
type AnyColorString = AnyRGBString | AnyHSLString;
|
|
859
|
+
type IAnyColor = IAnyRGB | IAnyHSL;
|
|
860
|
+
type IAnyToColor = IAnyToRGB | IAnyToHSL;
|
|
861
|
+
type AnyColorLike = AnyColorArray | AnyColorString | IAnyColor | number;
|
|
862
|
+
type AnyColorArguments = AnyColorArray | [color: AnyColorLike];
|
|
863
|
+
type AnyColor = RGBA | HSLA;
|
|
864
|
+
declare namespace AnyColor {
|
|
865
|
+
function cast(a: unknown, preferHSL?: boolean): AnyColor | undefined;
|
|
866
|
+
function resolve(a: unknown, preferHSL?: boolean): AnyColor;
|
|
867
|
+
function resolveArgs(args: AnyColorArguments, preferHSL?: boolean): AnyColor;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
declare class Transform2D implements IToMat3, IToString {
|
|
871
|
+
parent?: Transform2D | undefined;
|
|
872
|
+
origin: Vec2;
|
|
873
|
+
localPosition: Vec2;
|
|
874
|
+
localRotation: number;
|
|
875
|
+
get localRotationDegree(): number;
|
|
876
|
+
set localRotationDegree(v: number);
|
|
877
|
+
localScale: Vec2;
|
|
878
|
+
get globalPosition(): Vec2;
|
|
879
|
+
get globalRotation(): number;
|
|
880
|
+
get globalRotationDegree(): number;
|
|
881
|
+
get globalScale(): Vec2;
|
|
882
|
+
constructor(position: Vec2Like, rotation: number, scale: Vec2Like, parent?: Transform2D | undefined);
|
|
883
|
+
toString(): string;
|
|
884
|
+
get [Symbol.toStringTag](): string;
|
|
885
|
+
[NodeJSCustomInspect](): string;
|
|
886
|
+
toMat3(): Mat3;
|
|
887
|
+
toGlobalMat3(): Mat3;
|
|
888
|
+
}
|
|
706
889
|
/**
|
|
707
890
|
* Represents a 3D transform for 3D graphics
|
|
708
891
|
*/
|
|
709
|
-
declare class
|
|
892
|
+
declare class Transform3D implements IToMat4, IToString {
|
|
893
|
+
parent?: Transform3D | undefined;
|
|
894
|
+
origin: Vec3;
|
|
710
895
|
/**
|
|
711
|
-
* The position
|
|
896
|
+
* The local position
|
|
712
897
|
*/
|
|
713
|
-
|
|
898
|
+
localPosition: Vec3;
|
|
714
899
|
/**
|
|
715
|
-
* The rotation
|
|
900
|
+
* The local rotation
|
|
716
901
|
*/
|
|
717
|
-
|
|
902
|
+
localRotation: Quaternion;
|
|
718
903
|
/**
|
|
719
|
-
* The scale
|
|
904
|
+
* The local scale
|
|
720
905
|
*/
|
|
721
|
-
|
|
906
|
+
localScale: Vec3;
|
|
907
|
+
get globalPosition(): Vec3;
|
|
908
|
+
get globalRotation(): Quaternion;
|
|
909
|
+
get globalScale(): Vec3;
|
|
722
910
|
/**
|
|
723
911
|
* Create a new transform with `position`, `rotation` and `scale`
|
|
724
912
|
* @param position The position as a Vec3
|
|
725
913
|
* @param rotation The rotation as a Quaternion
|
|
726
914
|
* @param scale The scale as a Vec3
|
|
727
915
|
*/
|
|
728
|
-
constructor(position: Vec3Like, rotation: QuaternionLike, scale: Vec3Like);
|
|
916
|
+
constructor(position: Vec3Like, rotation: QuaternionLike, scale: Vec3Like, parent?: Transform3D | undefined);
|
|
917
|
+
toString(): string;
|
|
918
|
+
get [Symbol.toStringTag](): string;
|
|
919
|
+
[NodeJSCustomInspect](): string;
|
|
729
920
|
/**
|
|
730
921
|
* Convert the transform into a 4x3 matrix
|
|
731
922
|
* @returns A 4x4 matrix from the transform
|
|
732
923
|
*/
|
|
733
924
|
toMat4(): Mat4;
|
|
925
|
+
toGlobalMat4(): Mat4;
|
|
734
926
|
}
|
|
735
927
|
|
|
736
928
|
/**
|
|
@@ -747,7 +939,8 @@ declare function clamp<T extends number | bigint>(value: T, min: T, max: T): T;
|
|
|
747
939
|
* @param b The input value b
|
|
748
940
|
* @returns The result
|
|
749
941
|
*/
|
|
750
|
-
declare function
|
|
942
|
+
declare function logHypot(a: number, b: number): number;
|
|
751
943
|
declare const EPSILON = 1e-16;
|
|
944
|
+
declare const lerp: <T extends number | bigint>(a: T, b: T, t: T) => number;
|
|
752
945
|
|
|
753
|
-
export {
|
|
946
|
+
export { AnyColor, type AnyColorArguments, type AnyColorArray, type AnyColorLike, type AnyColorString, type AnyHSLArguments, type AnyHSLArray, type AnyHSLLike, type AnyHSLString, type AnyRGBArguments, type AnyRGBArray, type AnyRGBLike, type AnyRGBString, BoundingBox, type BoundingBoxArgs, type BoundingBoxArray, type BoundingBoxLike, type BoundingBoxString, Circle, type CircleArguments, type CircleArray, type CircleLike, type CircleString, DJB2_OFFSET, EPSILON, FNV1_OFFSET, FNV1_PRIME, HSLA, type HSLAArguments, type HSLAArray, type HSLALike, type HSLAString, type HSLArguments, type HSLArray, type HSLLike, type HSLString, type IAnyColor, type IAnyHSL, type IAnyRGB, type IAnyToColor, type IAnyToHSL, type IAnyToRGB, type IBoundingBox, type ICircle, type IGeometryObject, type IHSL, type IHSLA, type IHash, type IMat3, type IMat4, type IQuaternion, type IRBBA, type IRGB, type IRectangle, type ISize, type IToBoundingBox, type IToCircle, type IToHSL, type IToHSLA, type IToMat3, type IToMat4, type IToQuaternion, type IToRGB, type IToRGBA, type IToRectangle, type IToSize, type IToVec2, type IToVec3, type ITriangle, type IVec2, type IVec3, LinearFunction, type LinearFunctionString, MAX_ANGLE_DEGREE, MD2, Mat3, type Mat3Arguments, type Mat3Array, type Mat3Like, type Mat3NestedArray, type Mat3String, Mat4, type Mat4Arguments, type Mat4Array, type Mat4Like, type Mat4NestedArray, type Mat4String, MathFunction, QuadFunction, type QuadFunctionString, type QuadFunctionStrings, type QuadFunctionType, Quaternion, type QuaternionArguments, type QuaternionArray, type QuaternionLike, type QuaternionString, RGBA, type RGBAArguments, type RGBAArray, type RGBALike, type RGBAString, type RGBArguments, type RGBArray, type RGBLike, type RGBString, Rectangle, type RectangleArguments, type RectangleArray, type RectangleLike, type RectangleString, ResolveError, type SignCharacter, Size, type SizeArguments, type SizeArray, type SizeLike, type SizeString, Transform2D, Transform3D, Triangle, Triangle2D, Triangle3D, Vec2, type Vec2Arguments, type Vec2Array, type Vec2Like, type Vec2String, Vec3, type Vec3Arguments, type Vec3Array, type Vec3Like, type Vec3String, clamp, clampAngleDegree, clampAngleRadian, degreeToRadian, djb2, fnv1, lerp, logHypot, numberToRGB, numberToRGBA, radianToDegree, sdbm, signCharacter };
|