@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 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
- readonly area: number;
101
- readonly perimeter: number;
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
- width: number;
106
- height: number;
11
+ width: number;
12
+ height: number;
107
13
  }
108
14
  interface IToSize {
109
- toSize(): SizeLike;
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
- width: number;
117
- height: number;
118
- get aspectRatio(): number;
119
- get area(): number;
120
- get perimeter(): number;
121
- static resolve(a: unknown): Size;
122
- static resolveArgs(args: SizeArguments): Size;
123
- static cast(a: unknown): Size | undefined;
124
- static is(a: unknown): a is SizeLike;
125
- constructor(width: number, height: number);
126
- toArray(): SizeArray;
127
- toString(): SizeString;
128
- get [Symbol.toStringTag](): string;
129
- [NodeJSCustomInspect](): string;
130
- toJSON(): ISize;
131
- clone(): Size;
132
- equals(size: SizeLike): boolean;
133
- equals(width: number, height: number): boolean;
134
- toVec2(): Vec2Like;
135
- }
136
-
137
- interface IRGB {
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
- radius: number;
45
+ radius: number;
268
46
  }
269
47
  interface IToCircle {
270
- toCircle(): CircleLike;
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
- radius: number;
278
- get perimeter(): number;
279
- get area(): number;
280
- position: Vec2;
281
- get x(): number;
282
- set x(val: number);
283
- get y(): number;
284
- set y(val: number);
285
- get w(): number;
286
- set w(val: number);
287
- static resolve(a: unknown): Circle;
288
- static resolveArgs(args: CircleArguments): Circle;
289
- static cast(a: unknown): Circle | undefined;
290
- static is(a: unknown): a is CircleLike;
291
- constructor(position: Vec2Like, radius: number);
292
- toArray(): CircleArray;
293
- toJSON(): ICircle;
294
- toString(): CircleString;
295
- get [Symbol.toStringTag](): string;
296
- [NodeJSCustomInspect](): string;
297
- clone(): Circle;
298
- toVec2(): Vec2Like;
299
- equals(circle: CircleLike): boolean;
300
- equals(x: number, y: number, radius: number): boolean;
301
- equals(position: Vec2Like, radius: number): boolean;
302
- inside(circle: CircleLike): boolean;
303
- inside(x: number, y: number, radius: number): boolean;
304
- inside(position: Vec2Like, radius: number): boolean;
305
- insidePoint(point: Vec2Like): boolean;
306
- insidePoint(x: number, y: number): boolean;
307
- }
308
-
309
- interface IRectangle extends IVec2, ISize {
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
- toRectangle(): RectangleLike;
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
- position: Vec2;
320
- size: Size;
321
- get area(): number;
322
- get perimeter(): number;
323
- get x(): number;
324
- set x(val: number);
325
- get y(): number;
326
- set y(val: number);
327
- get w(): number;
328
- set w(val: number);
329
- get width(): number;
330
- set width(val: number);
331
- get height(): number;
332
- set height(val: number);
333
- static resolve(a: unknown): Rectangle;
334
- static resolveArgs(args: RectangleArguments): Rectangle;
335
- static cast(a: unknown): Rectangle | undefined;
336
- static is(a: unknown): a is RectangleLike;
337
- constructor(pos: Vec2Like, size: SizeLike);
338
- toArray(w?: boolean): RectangleArray;
339
- toString(w?: boolean): RectangleString;
340
- get [Symbol.toStringTag](): string;
341
- [NodeJSCustomInspect](): string;
342
- toJSON(): IRectangle;
343
- toBoundingBox(): BoundingBoxLike;
344
- toVec2(): Vec2Like;
345
- toSize(): SizeLike;
346
- clone(): Rectangle;
347
- equals(rectangle: RectangleLike): boolean;
348
- equals(position: Vec2Like, size: SizeLike): boolean;
349
- equals(x: number, y: number, width: number, height: number): boolean;
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
- left: number;
354
- right: number;
355
- top: number;
356
- bottom: number;
132
+ left: number;
133
+ right: number;
134
+ top: number;
135
+ bottom: number;
357
136
  }
358
137
  interface IToBoundingBox {
359
- toBoundingBox(): BoundingBoxLike;
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
- left: number;
367
- right: number;
368
- top: number;
369
- bottom: number;
370
- get width(): number;
371
- set width(val: number);
372
- get height(): number;
373
- set height(val: number);
374
- get x(): number;
375
- set x(x: number);
376
- get y(): number;
377
- set y(y: number);
378
- w: number;
379
- static resolve(a: unknown): BoundingBox;
380
- static resolveArgs(args: BoundingBoxArgs): BoundingBox;
381
- static cast(a: unknown): BoundingBox | undefined;
382
- static is(a: unknown): a is BoundingBoxLike;
383
- constructor(left: number, right: number, top: number, bottom: number);
384
- toArray(): BoundingBoxArray;
385
- toString(): BoundingBoxString;
386
- get [Symbol.toStringTag](): string;
387
- [NodeJSCustomInspect](): string;
388
- toJSON(): IBoundingBox;
389
- clone(): BoundingBox;
390
- equals(bbox: BoundingBoxLike): boolean;
391
- equals(left: number, right: number, top: number, bottom: number): boolean;
392
- toSize(): SizeLike;
393
- toVec2(): Vec2Like;
394
- toRectangle(): RectangleLike;
395
- inside(bbox: BoundingBoxLike): boolean;
396
- inside(left: number, right: number, top: number, bottom: number): boolean;
397
- insidePoint(point: Vec2Like): boolean;
398
- insidePoint(x: number, y: number): boolean;
399
- insideCircle(circle: CircleLike): boolean;
400
- insideCircle(x: number, y: number, radius: number): boolean;
401
- insideCircle(position: Vec2Like, radius: number): boolean;
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
- m00: number;
406
- m01: number;
407
- m02: number;
408
- m03: number;
409
- m10: number;
410
- m11: number;
411
- m12: number;
412
- m13: number;
413
- m20: number;
414
- m21: number;
415
- m22: number;
416
- m23: number;
417
- m30: number;
418
- m31: number;
419
- m32: number;
420
- m33: number;
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
- toMat4(): Mat4Like;
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
- protected _raw: Mat4Array;
432
- get m00(): number;
433
- set m00(val: number);
434
- get m01(): number;
435
- set m01(val: number);
436
- get m02(): number;
437
- set m02(val: number);
438
- get m03(): number;
439
- set m03(val: number);
440
- get m10(): number;
441
- set m10(val: number);
442
- get m11(): number;
443
- set m11(val: number);
444
- get m12(): number;
445
- set m12(val: number);
446
- get m13(): number;
447
- set m13(val: number);
448
- get m20(): number;
449
- set m20(val: number);
450
- get m21(): number;
451
- set m21(val: number);
452
- get m22(): number;
453
- set m22(val: number);
454
- get m23(): number;
455
- set m23(val: number);
456
- get m30(): number;
457
- set m30(val: number);
458
- get m31(): number;
459
- set m31(val: number);
460
- get m32(): number;
461
- set m32(val: number);
462
- get m33(): number;
463
- set m33(val: number);
464
- static resolve(a: unknown): Mat4;
465
- static resolveArgs(args: Mat4Arguments): Mat4;
466
- static cast(a: unknown): Mat4 | undefined;
467
- static is(a: unknown): a is Mat4Like;
468
- static orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4;
469
- static orthographic(bbox: BoundingBoxLike, near: number, far: number): Mat4;
470
- static perspective(fov: number, aspect: number, near: number, far: number): Mat4;
471
- static pointAt(position: Vec3Like, target: Vec3Like, up: Vec3Like): Mat4;
472
- constructor(init?: Mat4Array);
473
- toArray(): Mat4Array;
474
- toNestetArray(): Mat4NestedArray;
475
- toJSON(): IMat4;
476
- toString(): Mat4String;
477
- get [Symbol.toStringTag](): string;
478
- [NodeJSCustomInspect](): string;
479
- clone(): Mat4;
480
- equals(mat: Mat4Like): boolean;
481
- equals(...mat: Mat4Array): boolean;
482
- add(mat: Mat4Like): Mat4;
483
- add(...mat: Mat4Array): Mat4;
484
- subtract(mat: Mat4Like): Mat4;
485
- subtract(...mat: Mat4Array): Mat4;
486
- multiply(mat: Mat4Like): Mat4;
487
- multiply(...mat: Mat4Array): Mat4;
488
- multiply(scalar: number): Mat4;
489
- multiply(vec: Vec3Like): Vec3;
490
- translate(x: number, y: number, z: number): Mat4;
491
- translate(vec: Vec3Like): Mat4;
492
- rotateX(angle: number): Mat4;
493
- rotateY(angle: number): Mat4;
494
- rotateZ(angle: number): Mat4;
495
- rotate(x: number, y: number, z: number): Mat4;
496
- rotate(vec: Vec3Like): Mat4;
497
- scale(x: number, y: number, z: number): Mat4;
498
- scale(vec: Vec3Like): Mat4;
499
- inverse(): Mat4;
500
- toMat3(): Mat3Like;
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
- m00: number;
505
- m01: number;
506
- m02: number;
507
- m10: number;
508
- m11: number;
509
- m12: number;
510
- m20: number;
511
- m21: number;
512
- m22: number;
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
- toMat3(): Mat3Like;
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
- protected _raw: Mat3Array;
524
- get m00(): number;
525
- set m00(val: number);
526
- get m01(): number;
527
- set m01(val: number);
528
- get m02(): number;
529
- set m02(val: number);
530
- get m10(): number;
531
- set m10(val: number);
532
- get m11(): number;
533
- set m11(val: number);
534
- get m12(): number;
535
- set m12(val: number);
536
- get m20(): number;
537
- set m20(val: number);
538
- get m21(): number;
539
- set m21(val: number);
540
- get m22(): number;
541
- set m22(val: number);
542
- static resolve(a: unknown): Mat3;
543
- static resolveArgs(args: Mat3Arguments): Mat3;
544
- static cast(a: unknown): Mat3 | undefined;
545
- static is(a: unknown): a is Mat3Like;
546
- static projection(width: number, height: number): Mat3;
547
- constructor(init?: Mat3Array);
548
- toArray(): Mat3Array;
549
- toNestetArray(): Mat3NestedArray;
550
- toJSON(): IMat3;
551
- toString(): Mat3String;
552
- get [Symbol.toStringTag](): string;
553
- [NodeJSCustomInspect](): string;
554
- clone(): Mat3;
555
- equals(mat: Mat3Like): boolean;
556
- equals(...mat: Mat3Array): boolean;
557
- add(mat: Mat3Like): Mat3;
558
- add(...mat: Mat3Array): Mat3;
559
- subtract(mat: Mat3Like): Mat3;
560
- subtract(...mat: Mat3Array): Mat3;
561
- multiply(mat: Mat3Like): Mat3;
562
- multiply(...mat: Mat3Array): Mat3;
563
- multiply(scalar: number): Mat3;
564
- translate(x: number, y: number): Mat3;
565
- translate(vec: Vec2Like): Mat3;
566
- rotate(angle: number): Mat3;
567
- scale(x: number, y: number): Mat3;
568
- scale(vec: Vec2Like): Mat3;
569
- determinant(): number;
570
- inverse(): Mat3;
571
- toMat4(): Mat4Like;
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
- w: number;
576
- x: number;
577
- y: number;
578
- z: number;
357
+ w: number;
358
+ x: number;
359
+ y: number;
360
+ z: number;
579
361
  }
580
362
  interface IToQuaternion {
581
- toQuaternion(): QuaternionLike;
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
- w: number;
589
- x: number;
590
- y: number;
591
- z: number;
592
- static is(a: unknown): a is IQuaternion;
593
- static resolve(a: unknown): Quaternion;
594
- static resolveArgs(args: QuaternionArguments): Quaternion;
595
- static cast(a: unknown): Quaternion | undefined;
596
- static fromAxisAngle(axis: Vec3Like, angle: number): Quaternion;
597
- static fromAxisAngle(x: number, y: number, z: number, angle: number): Quaternion;
598
- static fromEuler(x: number, y: number, z: number): Quaternion;
599
- static fromEuler(vec: Vec3Like): Quaternion;
600
- static get zero(): Quaternion;
601
- constructor(w: number, x: number, y: number, z: number);
602
- toArray(): QuaternionArray;
603
- toString(): QuaternionString;
604
- get [Symbol.toStringTag](): string;
605
- [NodeJSCustomInspect](): string;
606
- toJSON(): IQuaternion;
607
- clone(): Quaternion;
608
- add(quaternion: QuaternionLike): Quaternion;
609
- add(...quaternion: QuaternionArray): Quaternion;
610
- offset(quaternion: QuaternionLike): this;
611
- offset(...quaternion: QuaternionArray): this;
612
- subtract(quaternion: QuaternionLike): Quaternion;
613
- subtract(...quaternion: QuaternionArray): Quaternion;
614
- negative(): Quaternion;
615
- length(sqrt?: boolean): number;
616
- normalize(): Quaternion;
617
- multiply(quaternion: QuaternionLike): Quaternion;
618
- multiply(...quaternion: QuaternionArray): Quaternion;
619
- multiplyVector(x: number, y: number, z: number): Vec3;
620
- multiplyVector(vec: Vec3Like): Vec3;
621
- scale(scalar: number): Quaternion;
622
- dot(quaternion: QuaternionLike): number;
623
- dot(...quaternion: QuaternionArray): number;
624
- inverse(): Quaternion;
625
- divide(quaternion: QuaternionLike): Quaternion;
626
- divide(...quaternion: QuaternionArray): Quaternion;
627
- conjugate(): Quaternion;
628
- exp(): Quaternion;
629
- log(): Quaternion;
630
- toVec3(): Vec3Like;
631
- toAxisAngle(): Vec3;
632
- toEuler(): Vec3;
633
- toMat3(): Mat3Like;
634
- toMat4(): Mat4Like;
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
- z: number;
551
+ z: number;
639
552
  }
640
553
  interface IToVec3 {
641
- toVec3(): Vec3Like;
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
- x: number;
649
- y: number;
650
- z: number;
651
- w: number;
652
- static resolve(a: unknown): Vec3;
653
- static cast(a: unknown): Vec3 | undefined;
654
- static resolveArgs(args: Vec3Arguments): Vec3;
655
- static is(a: unknown): a is Vec3Like;
656
- static fromPoints(a: Vec3Like, b: Vec3Like): Vec3;
657
- static clamp(value: Vec3Like, min: Vec3Like, max: Vec3Like): Vec3;
658
- static intersectPlane(planeP: Vec3Like, planeN: Vec3Like, lineStart: Vec3Like, lineEnd: Vec3Like, t: number): Vec3;
659
- static get zero(): Vec3;
660
- static get one(): Vec3;
661
- constructor(x: number, y: number, z: number, w?: number);
662
- toArray(w?: boolean): Vec3Array;
663
- toJSON(): IVec3;
664
- toString(w?: boolean): Vec3String;
665
- get [Symbol.toStringTag](): string;
666
- [NodeJSCustomInspect](): string;
667
- toVec2(): Vec2Like;
668
- toRGB(): RGBLike;
669
- toRGBA(): RGBALike;
670
- toHSL(): HSLLike;
671
- toHSLA(): HSLALike;
672
- toQuaternion(): QuaternionLike;
673
- clone(): Vec3;
674
- equals(vec: Vec3Like): boolean;
675
- equals(x: number, y: number, z: number): boolean;
676
- setX(x: number): this;
677
- setY(y: number): this;
678
- setZ(z: number): this;
679
- set(x: number, y: number, z: number): this;
680
- set(vec: Vec3Like): this;
681
- add(x: number, y: number, z: number): Vec3;
682
- add(vec: Vec3Like): Vec3;
683
- offset(x: number, y: number, z: number): this;
684
- offset(vec: Vec3Like): this;
685
- subtract(x: number, y: number, z: number): Vec3;
686
- subtract(vec: Vec3Like): Vec3;
687
- multiply(scalar: number): Vec3;
688
- naiveMultiply(x: number, y: number, z: number): Vec3;
689
- naiveMultiply(vec: Vec3Like): Vec3;
690
- divide(x: number, y: number, z: number): Vec3;
691
- divide(scalar: number): Vec3;
692
- divide(vec: Vec3Like): Vec3;
693
- dot(x: number, y: number, z: number): number;
694
- dot(vec: Vec3Like): number;
695
- cross(x: number, y: number, z: number): Vec3;
696
- cross(vec: Vec3Like): Vec3;
697
- distance(x: number, y: number, z: number): number;
698
- distance(vec: Vec3Like): number;
699
- distanceSquare(x: number, y: number, z: number): number;
700
- distanceSquare(vec: Vec3Like): number;
701
- length(): number;
702
- normalize(): Vec3;
703
- invert(): Vec3;
704
- round(): Vec3;
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
- x: number;
709
- y: number;
710
- w: number;
622
+ x: number;
623
+ y: number;
624
+ w: number;
711
625
  }
712
626
  interface IToVec2 {
713
- toVec2(): Vec2Like;
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
- x: number;
721
- y: number;
722
- w: number;
723
- static resolve(a: unknown): Vec2;
724
- static cast(a: unknown): Vec2 | undefined;
725
- static resolveArgs(args: Vec2Arguments): Vec2;
726
- static is(a: unknown): a is Vec2Like;
727
- static fromPoints(a: Vec2Like, b: Vec2Like): Vec2;
728
- static clamp(value: Vec2Like, min: Vec2Like, max: Vec2Like): Vec2;
729
- static get zero(): Vec2;
730
- static get one(): Vec2;
731
- constructor(x: number, y: number, w?: number);
732
- toArray(w?: boolean): Vec2Array;
733
- toJSON(): IVec2;
734
- toString(w?: boolean): Vec2String;
735
- get [Symbol.toStringTag](): string;
736
- [NodeJSCustomInspect](): string;
737
- toSize(): SizeLike;
738
- toVec3(z?: number): Vec3Like;
739
- toRGB(): RGBLike;
740
- toRGBA(): RGBALike;
741
- toHSL(): HSLLike;
742
- toHSLA(): HSLALike;
743
- clone(): Vec2;
744
- equals(vec: Vec2Like): boolean;
745
- equals(x: number, y: number): boolean;
746
- setX(x: number): this;
747
- setY(y: number): this;
748
- setW(w: number): this;
749
- set(x: number, y: number): this;
750
- set(vec: Vec2Like): this;
751
- add(x: number, y: number): Vec2;
752
- add(vec: Vec2Like): Vec2;
753
- offset(x: number, y: number): this;
754
- offset(vec: Vec2Like): this;
755
- subtract(x: number, y: number): Vec2;
756
- subtract(vec: Vec2Like): Vec2;
757
- multiply(scalar: number): Vec2;
758
- naiveMultiply(x: number, y: number): Vec2;
759
- naiveMultiply(vec: Vec2Like): Vec2;
760
- divide(x: number, y: number): Vec2;
761
- divide(scalar: number): Vec2;
762
- divide(vec: Vec2Like): Vec2;
763
- dot(x: number, y: number): number;
764
- dot(vec: Vec2Like): number;
765
- distance(x: number, y: number): number;
766
- distance(vec: Vec2Like): number;
767
- distanceSquare(x: number, y: number): number;
768
- distanceSquare(vec: Vec2Like): number;
769
- length(): number;
770
- cartesianify(): Vec2;
771
- polarify(): Vec2;
772
- normalize(): Vec2;
773
- invert(): Vec2;
774
- round(): Vec2;
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
- * Calculate y with input values
784
- * @param args The input values
785
- * @returns The y value from the input values
786
- */
787
- abstract get(...args: Input): number;
788
- /**
789
- * Get the root points of this function
790
- * @returns The root points, this can be an empty array if no root points have been found
791
- */
792
- abstract roots(): Array<Vec2>;
793
- abstract get [Symbol.toStringTag](): string;
794
- abstract [NodeJSCustomInspect](): string;
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
- * The factor of the linear function
807
- */
808
- m: number;
809
- /**
810
- * The height of the linear function
811
- */
812
- b: number;
813
- /**
814
- * Create a linear function from two points
815
- * @param a A point
816
- * @param b A point
817
- * @returns A linear function from two points
818
- */
819
- static fromPoints(a: Vec2Like, b: Vec2Like): LinearFunction;
820
- /**
821
- * Create a linear function with a factor and height
822
- * @param m The factor
823
- * @param b The height
824
- */
825
- constructor(m: number, b: number);
826
- get(x: number): number;
827
- roots(): Array<Vec2>;
828
- toString(): LinearFunctionString;
829
- get [Symbol.toStringTag](): string;
830
- [NodeJSCustomInspect](): string;
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
- "standard": `f(x) = ${number}x^2 ${SignCharacter} ${number}x ${SignCharacter} ${number}` | `f(x) = ${number}x^2 ${SignCharacter} ${number}x` | `f(x) = ${number}x^2`;
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
- a: number;
862
- b: number;
863
- c: number;
864
- static get(a: number, b: number, c: number, x: number): number;
865
- constructor(a: number, b: number, c: number);
866
- get(x: number): number;
867
- roots(): Array<Vec2>;
868
- toString<T extends QuadFunctionType>(type?: T): QuadFunctionString[T];
869
- get [Symbol.toStringTag](): string;
870
- [NodeJSCustomInspect](): string;
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
- readonly target: string;
878
- readonly value: unknown;
879
- /**
880
- * Create a resolve exception
881
- * @param target The target type name
882
- * @param value A value
883
- */
884
- constructor(target: string, value: unknown);
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
- update(input: Uint8Array): this;
895
- digest(): Uint8Array;
814
+ update(input: Uint8Array): this;
815
+ digest(): Uint8Array;
896
816
  }
897
-
898
- declare class MD2 implements IHash {
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
- readonly a: number;
921
- readonly b: number;
922
- readonly c: number;
923
- readonly alpha: number;
924
- readonly beta: number;
925
- readonly gamma: number;
926
- readonly semiperimeter: number;
927
- readonly height: number;
928
- readonly base: number;
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
- A: T;
932
- B: T;
933
- C: T;
934
- abstract get a(): number;
935
- abstract get b(): number;
936
- abstract get c(): number;
937
- constructor(A: T, B: T, C: T);
938
- get alpha(): number;
939
- get beta(): number;
940
- get gamma(): number;
941
- get perimeter(): number;
942
- get semiperimeter(): number;
943
- get area(): number;
944
- get base(): number;
945
- get height(): number;
946
- toString(): string;
947
- get [Symbol.toStringTag](): string;
948
- [NodeJSCustomInspect](): string;
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
- get a(): number;
952
- get b(): number;
953
- get c(): number;
858
+ get a(): number;
859
+ get b(): number;
860
+ get c(): number;
954
861
  }
955
862
  declare class Triangle3D extends Triangle<Vec3> {
956
- get a(): number;
957
- get b(): number;
958
- get c(): number;
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
- parent?: Transform2D | undefined;
963
- origin: Vec2;
964
- localPosition: Vec2;
965
- localRotation: number;
966
- get localRotationDegree(): number;
967
- set localRotationDegree(v: number);
968
- localScale: Vec2;
969
- get globalPosition(): Vec2;
970
- get globalRotation(): number;
971
- get globalRotationDegree(): number;
972
- get globalScale(): Vec2;
973
- constructor(position: Vec2Like, rotation: number, scale: Vec2Like, parent?: Transform2D | undefined);
974
- toString(): string;
975
- get [Symbol.toStringTag](): string;
976
- [NodeJSCustomInspect](): string;
977
- toMat3(): Mat3;
978
- toGlobalMat3(): Mat3;
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
- parent?: Transform3D | undefined;
985
- origin: Vec3;
986
- /**
987
- * The local position
988
- */
989
- localPosition: Vec3;
990
- /**
991
- * The local rotation
992
- */
993
- localRotation: Quaternion;
994
- /**
995
- * The local scale
996
- */
997
- localScale: Vec3;
998
- get globalPosition(): Vec3;
999
- get globalRotation(): Quaternion;
1000
- get globalScale(): Vec3;
1001
- /**
1002
- * Create a new transform with `position`, `rotation` and `scale`
1003
- * @param position The position as a Vec3
1004
- * @param rotation The rotation as a Quaternion
1005
- * @param scale The scale as a Vec3
1006
- */
1007
- constructor(position: Vec3Like, rotation: QuaternionLike, scale: Vec3Like, parent?: Transform3D | undefined);
1008
- toString(): string;
1009
- get [Symbol.toStringTag](): string;
1010
- [NodeJSCustomInspect](): string;
1011
- /**
1012
- * Convert the transform into a 4x3 matrix
1013
- * @returns A 4x4 matrix from the transform
1014
- */
1015
- toMat4(): Mat4;
1016
- toGlobalMat4(): Mat4;
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, 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, type FixedArray, HSLA, type HSLAArguments, type HSLAArray, type HSLALike, type HSLAString, type HSLArguments, type HSLArray, type HSLLike, type HSLString, type HexLike, 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, type JavaScriptFunction, type JavaScriptNumber, type JavaScriptTypeMap, type JavaScriptTypes, 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, NodeJSCustomInspect, type Predicate, 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, checkArray, checkHex, checkNumber, checkNumberArray, checkString, checkStringArray, clamp, clampAngleDegree, clampAngleRadian, degreeToRadian, djb2, fnv1, getHexValue, hasProperty, lerp, logHypot, radianToDegree, sdbm, signCharacter };
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 };