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