linearly 0.36.1 → 0.37.0

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/lib/cjs/mat4.d.ts DELETED
@@ -1,532 +0,0 @@
1
- import { quat } from './quat';
2
- import type { vec4 } from './vec4';
3
- import { vec3 } from './vec3';
4
- /**
5
- * 4x4 Matrix representing 3D affine transformation. The format is column-major, when typed out it looks like row-major. The matrices are being post multiplied.
6
- * ```ts
7
- * [xx, xy, xz, 0,
8
- * yx, yy, yz, 0,
9
- * zx, zy, zz, 0,
10
- * tx, ty, tz, 1]
11
- * ```
12
- * @category Types
13
- */
14
- export type mat4 = readonly [
15
- m00: number,
16
- m01: number,
17
- m02: number,
18
- m03: number,
19
- m10: number,
20
- m11: number,
21
- m12: number,
22
- m13: number,
23
- m20: number,
24
- m21: number,
25
- m22: number,
26
- m23: number,
27
- m30: number,
28
- m31: number,
29
- m32: number,
30
- m33: number
31
- ];
32
- /**
33
- * Functions for {@link mat4}, 3D affine transformation.
34
- * @category Modules
35
- */
36
- export declare namespace mat4 {
37
- /**
38
- * Mutable version of {@link mat4}
39
- * @category Types
40
- */
41
- export type Mutable = [
42
- m00: number,
43
- m01: number,
44
- m02: number,
45
- m03: number,
46
- m10: number,
47
- m11: number,
48
- m12: number,
49
- m13: number,
50
- m20: number,
51
- m21: number,
52
- m22: number,
53
- m23: number,
54
- m30: number,
55
- m31: number,
56
- m32: number,
57
- m33: number
58
- ];
59
- /**
60
- * Creates a new matrix from given elements
61
- * @category Generators
62
- */
63
- export function of(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): mat4;
64
- /**
65
- * Creates a mutable clone of given mat4
66
- * @category Generators
67
- */
68
- export function clone(a: mat4): Mutable;
69
- /**
70
- * The identity matrix of mat4
71
- * ```ts
72
- * [1, 0, 0, 0,
73
- * 0, 1, 0, 0,
74
- * 0, 0, 1, 0,
75
- * 0, 0, 0, 1]
76
- * ```
77
- * @category Constants
78
- *
79
- * @shorthands
80
- * - {@link id}
81
- * - {@link ident}
82
- */
83
- export const identity: mat4;
84
- /**
85
- * Alias for {@link identity}
86
- * @category Shorthands
87
- */
88
- export const I: mat4;
89
- /**
90
- * Alias for {@link identity}
91
- * @category Shorthands
92
- */
93
- export const id: mat4;
94
- /**
95
- * Alias for {@link identity}
96
- * @category Shorthands
97
- */
98
- export const ident: mat4;
99
- /**
100
- * @category Constants
101
- */
102
- export const zero: mat4;
103
- /**
104
- * Transpose the values of a mat4
105
- */
106
- export function transpose(a: mat4): mat4;
107
- /**
108
- * Inverts a mat4
109
- *
110
- * @shorthands
111
- * - {@link inv}
112
- */
113
- export function invert(a: mat4): mat4 | null;
114
- /**
115
- * Alias for {@link invert}
116
- * @category Shorthands
117
- */
118
- export const inv: typeof invert;
119
- /**
120
- * Calculates the adjugate of a mat4
121
- */
122
- export function adjoint(a: mat4): mat4;
123
- /**
124
- * Calculates the determinant of a mat4
125
- *
126
- * @shorthands
127
- * - {@link det}
128
- */
129
- export function determinant(a: mat4): number;
130
- /**
131
- * Alias for {@link determinant}
132
- * @category Shorthands
133
- */
134
- export const det: typeof determinant;
135
- /**
136
- * Multiplies given mat4's
137
- *
138
- * @shorthands
139
- * - {@link mul}
140
- */
141
- export function multiply(...ms: mat4[]): mat4;
142
- /**
143
- * Alias for {@link multiply}
144
- * @category Shorthands
145
- */
146
- export const mul: typeof multiply;
147
- /**
148
- * Translate a mat4 by the given vector
149
- *
150
- * @param a the matrix to translate
151
- * @param v vector to translate by
152
- */
153
- export function translate(a: mat4, v: vec3): mat4;
154
- /**
155
- * Scales the mat4 by the dimensions in the given vec3 not using vectorization
156
- **/
157
- export function scale(a: mat4, v: vec3): mat4;
158
- /**
159
- * Rotates a mat4 by the given angle around the given axis
160
- */
161
- export function rotate(a: mat4, deg: number, axis: vec3): mat4 | null;
162
- /**
163
- * Rotates a matrix by the given angle around the X axis
164
- */
165
- export function rotateX(a: mat4, deg: number): mat4;
166
- /**
167
- * Rotates a matrix by the given angle around the Y axis
168
- */
169
- export function rotateY(a: mat4, deg: number): mat4;
170
- /**
171
- * Rotates a matrix by the given angle around the Z axis
172
- */
173
- export function rotateZ(a: mat4, deg: number): mat4;
174
- /**
175
- * Creates a matrix from given axes and translation vector. If either axis is null, it will be calculated from the remaining axes while assuming the other axis is the cross product of the remaining axes. All of axes will not be normalized.
176
- * @category Generators
177
- */
178
- export function fromAxesTranslation(xAxis: vec3 | null, yAxis: vec3 | null, zAxis?: vec3 | null, trans?: vec3): mat4;
179
- /**
180
- * Creates a matrix from a vector translation
181
- * @category Generators
182
- *
183
- * @shorthands
184
- * - {@link translation}
185
- */
186
- export function fromTranslation(v: vec3): mat4;
187
- /**
188
- * Alias for {@link fromTranslation}
189
- * @category Shorthands
190
- */
191
- export const translation: typeof fromTranslation;
192
- /**
193
- * Creates a matrix from a vector scaling
194
- * @category Generators
195
- *
196
- * @shorthands
197
- * - {@link scaling}
198
- */
199
- export function fromScaling(v: vec3): mat4;
200
- /**
201
- * Alias for {@link fromScaling}
202
- * @category Shorthands
203
- */
204
- export const scaling: typeof fromScaling;
205
- /**
206
- * Creates a matrix from a given angle around a given axis
207
- * Creates a matrix from a given angle.
208
- * @param deg The angle to rotate the matrix by, in degrees
209
- * @param axis The axis to rotate around
210
- * @category Generators
211
- *
212
- * @shorthands
213
- * - {@link rotation}
214
- */
215
- export function fromRotation(deg: number, axis: vec3): mat4 | null;
216
- /**
217
- * Alias for {@link fromRotation}
218
- * @category Shorthands
219
- */
220
- export const rotation: typeof fromRotation;
221
- /**
222
- * Creates a matrix from the given angle around the X axis
223
- * @category Generators
224
- */
225
- export function fromXRotation(deg: number): mat4;
226
- /**
227
- * Creates a matrix from the given angle around the Y axis
228
- * @category Generators
229
- */
230
- export function fromYRotation(deg: number): mat4;
231
- /**
232
- * Creates a matrix from the given angle around the Z axis
233
- * @category Generators
234
- */
235
- export function fromZRotation(deg: number): mat4;
236
- /**
237
- * Creates a matrix from a quaternion rotation and vector translation
238
- * @category Generators
239
- */
240
- export function fromRotationTranslation(q: quat, v: vec3): mat4;
241
- /**
242
- * Returns the translation vector component of a transformation
243
- * matrix. If a matrix is built with fromRotationTranslation,
244
- * the returned vector will be the same as the translation vector
245
- * originally supplied.
246
- */
247
- export function getTranslation(mat: mat4): vec3;
248
- /**
249
- * Returns the scaling factor component of a transformation
250
- * matrix. If a matrix is built with fromRotationTranslationScale
251
- * with a normalized Quaternion paramter, the returned vector will be
252
- * the same as the scaling vector
253
- * originally supplied.
254
- */
255
- export function getScaling(mat: mat4): vec3;
256
- /**
257
- * Returns a quaternion representing the rotational component
258
- * of a transformation matrix. If a matrix is built with
259
- * fromRotationTranslation, the returned quaternion will be the
260
- * same as the quaternion originally supplied.
261
- */
262
- export function getRotation(mat: mat4): quat;
263
- interface DecomposedTRS {
264
- rot: quat;
265
- trans: vec3;
266
- scale: vec3;
267
- }
268
- /**
269
- * Decomposes a transformation matrix into its rotation, translation
270
- * and scale components. Returns only the rotation component
271
- *
272
- * @param mat Matrix to be decomposed (input)
273
- */
274
- export function decompose(mat: mat4): DecomposedTRS;
275
- /**
276
- * Creates a matrix from a quaternion rotation, vector translation and vector scale.
277
- * This is equivalent to (but much faster than):
278
- *
279
- * ```ts
280
- * mat4.multiply(
281
- * mat4.fromTranslation(trans),
282
- * mat4.fromQuat(rot),
283
- * mat4.fromScaling(scale),
284
- * )
285
- * ```
286
- *
287
- * @category Generators
288
- * @param rot Rotation quaternion
289
- * @param trans Translation vector
290
- * @param scale Scaling vector
291
- */
292
- export function fromRotationTranslationScale(rot: quat, trans: vec3, scale?: vec3): mat4;
293
- /**
294
- * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin.
295
- * This is equivalent to (but much faster than):
296
- *
297
- * ```ts
298
- * mat4.multiply(
299
- * mat4.fromTranslation(trans),
300
- * mat4.fromTranslation(origin),
301
- * mat4.fromQuat(rot),
302
- * mat4.fromScaling(scale),
303
- * mat4.fromTranslation(vec3.negate(origin)),
304
- * )
305
- * ```
306
- *
307
- * @category Generators
308
- * @param rot Rotation quaternion
309
- * @param trans Translation vector
310
- * @param scale Scaling vector
311
- * @param origin The origin vector around which to scale and rotate
312
- */
313
- export function fromRotationTranslationScaleOrigin(rot: quat, trans: vec3, scale?: vec3, origin?: vec3): number[];
314
- /**
315
- * Calculates a 4x4 matrix from the given quaternion
316
- *
317
- * @param q Quaternion to create matrix from
318
- * @category Generators
319
- */
320
- export function fromQuat(q: quat): mat4;
321
- /**
322
- * Generates a frustum matrix with the given bounds
323
- *
324
- * @param left Left bound of the frustum
325
- * @param right Right bound of the frustum
326
- * @param bottom Bottom bound of the frustum
327
- * @param top Top bound of the frustum
328
- * @param near Near bound of the frustum
329
- * @param far Far bound of the frustum
330
- */
331
- export function frustum(left: number, right: number, bottom: number, top: number, near: number, far: number): number[];
332
- /**
333
- * Generates a perspective projection matrix with the given bounds.
334
- * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],
335
- * which matches WebGL/OpenGL's clip volume.
336
- * Passing null/undefined/no value for far will generate infinite projection matrix.
337
- *
338
- * @param fovy Vertical field of view in degrees
339
- * @param aspect Aspect ratio. typically viewport width/height
340
- * @param near Near bound of the frustum
341
- * @param far Far bound of the frustum, can be null or Infinity
342
- */
343
- export function perspectiveNO(fovy: number, aspect: number, near: number, far: number): mat4;
344
- /**
345
- * Alias for {@link perspectiveNO}
346
- * @function
347
- */
348
- export const perspective: typeof perspectiveNO;
349
- /**
350
- * Generates a perspective projection matrix suitable for WebGPU with the given bounds.
351
- * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],
352
- * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.
353
- * Passing null/undefined/no value for far will generate infinite projection matrix.
354
- *
355
- * @param fovy Vertical field of view in degrees
356
- * @param aspect Aspect ratio. typically viewport width/height
357
- * @param near Near bound of the frustum
358
- * @param far Far bound of the frustum, can be null or Infinity
359
- */
360
- export function perspectiveZO(fovy: number, aspect: number, near: number, far: number | null): mat4;
361
- /**
362
- * Represents a field of view expressed in degrees.
363
- */
364
- interface FovDegrees {
365
- upDegrees: number;
366
- downDegrees: number;
367
- leftDegrees: number;
368
- rightDegrees: number;
369
- }
370
- /**
371
- * Generates a perspective projection matrix with the given field of view.
372
- * This is primarily useful for generating projection matrices to be used
373
- * with the still experiemental WebVR API.
374
- *
375
- * @param fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees
376
- * @param near Near bound of the frustum
377
- * @param far Far bound of the frustum
378
- */
379
- export function perspectiveFromFieldOfView(fov: FovDegrees, near: number, far: number): mat4;
380
- /**
381
- * Generates a orthogonal projection matrix with the given bounds.
382
- * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],
383
- * which matches WebGL/OpenGL's clip volume.
384
- *
385
- * @param left Left bound of the frustum
386
- * @param right Right bound of the frustum
387
- * @param bottom Bottom bound of the frustum
388
- * @param top Top bound of the frustum
389
- * @param near Near bound of the frustum
390
- * @param far Far bound of the frustum
391
- */
392
- export function orthoNO(left: number, right: number, bottom: number, top: number, near: number, far: number): mat4;
393
- /**
394
- * Alias for {@link orthoNO}
395
- * @function
396
- */
397
- export const ortho: typeof orthoNO;
398
- /**
399
- * Generates a orthogonal projection matrix with the given bounds.
400
- * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],
401
- * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.
402
- *
403
- * @param left Left bound of the frustum
404
- * @param right Right bound of the frustum
405
- * @param bottom Bottom bound of the frustum
406
- * @param top Top bound of the frustum
407
- * @param near Near bound of the frustum
408
- * @param far Far bound of the frustum
409
- */
410
- export function orthoZO(left: number, right: number, bottom: number, top: number, near: number, far: number): mat4;
411
- /**
412
- * Generates a look-at matrix with the given eye position, focal point, and up axis.
413
- * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.
414
- *
415
- * @param eye Position of the viewer
416
- * @param center Point the viewer is looking at
417
- * @param up vec3 pointing up
418
- */
419
- export function lookAt(eye: vec3, center: vec3, up: vec3): mat4;
420
- /**
421
- * Generates a matrix that makes something look at something else.
422
- *
423
- * @param eye Position of the viewer
424
- * @param center Point the viewer is looking at
425
- * @param up vec3 pointing up
426
- */
427
- export function targetTo(eye: vec3, target: vec3, up: vec3): mat4;
428
- /**
429
- * Returns Frobenius norm of a mat4
430
- */
431
- export function frob(a: mat4): number;
432
- /**
433
- * Adds given mat4's
434
- */
435
- export function add(...ms: mat4[]): mat4;
436
- /**
437
- * Subtracts matrix b from matrix a
438
- *
439
- * @shorthands
440
- * - {@link sub}
441
- */
442
- export function subtract(...ms: mat4[]): mat4;
443
- /**
444
- * Alias for {@link subtract}
445
- * @category Shorthands
446
- */
447
- export const sub: typeof subtract;
448
- /**
449
- * Subtracts b from a
450
- */
451
- export function delta(a: mat4, b: mat4): mat4;
452
- /**
453
- * Multiply each element of the matrix by a scalar.
454
- */
455
- export function multiplyScalar(a: mat4, s: number): mat4;
456
- /**
457
- Adds given mat4's after multiplying each element of the second operand by a scalar value.
458
- */
459
- export function multiplyScalarAndAdd(a: mat4, b: mat4, scale: number): mat4;
460
- /**
461
- * Constrain each element to lie between min and max
462
- * @see https://thebookofshaders.com/glossary/?search=clamp
463
- */
464
- export function clamp(a: mat4, min: number, max: number): mat4;
465
- /**
466
- * Clamps each element to [0, 1]
467
- */
468
- export function clamp01(a: mat4): mat4;
469
- /**
470
- * Clamps each element to [-1, 1]
471
- */
472
- export function clamp11(a: mat4): mat4;
473
- /**
474
- * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
475
- *
476
- * @shorthands
477
- * - {@link eq}
478
- */
479
- export function exactEquals(a: mat4, b: mat4): boolean;
480
- /**
481
- * Alias for {@link exactEquals}
482
- * @category Shorthands
483
- */
484
- export const eq: typeof exactEquals;
485
- /**
486
- * Returns whether or not the matrices have approximately the same elements in the same position.
487
- *
488
- * @shorthands
489
- * - {@link approx}
490
- * - {@link equals}
491
- */
492
- export function approxEquals(a: mat4, b: mat4): boolean;
493
- /**
494
- * Alias for {@link approxEquals}
495
- * @category Shorthands
496
- */
497
- export const approx: typeof approxEquals;
498
- /**
499
- * Alias for {@link approxEquals}. This is provided for compatibility with gl-matrix.
500
- * @category Shorthands
501
- * @deprecated Use {@link approxEquals} instead
502
- */
503
- export const equals: typeof approxEquals;
504
- /**
505
- * Projects a 3D point from object/world space to screen (window) coordinates.
506
- * Equivalent to GLM's `glm::project`.
507
- *
508
- * @param obj The 3D point in object/world space
509
- * @param mvp The combined model-view-projection matrix
510
- * @param viewport The viewport as [x, y, width, height]
511
- * @returns The projected point in screen coordinates [x, y, z] where z is the depth in [0, 1]
512
- */
513
- export function project(obj: vec3, mvp: mat4, viewport: vec4): vec3;
514
- /**
515
- * Unprojects a point from screen (window) coordinates back to object/world space.
516
- * Equivalent to GLM's `glm::unProject`.
517
- *
518
- * @param screen The screen-space point [x, y, z] where z is the depth in [0, 1]
519
- * @param mvpInv The inverse of the combined model-view-projection matrix
520
- * @param viewport The viewport as [x, y, width, height]
521
- * @returns The unprojected 3D point, or null if the operation fails
522
- */
523
- export function unProject(screen: vec3, mvpInv: mat4, viewport: vec4): vec3 | null;
524
- /**
525
- * Returns a string representation of a mat4
526
- * @param m matrix to represent as a string
527
- * @param fractionDigits number of digits to appear after the decimal point
528
- */
529
- export const toString: (m: mat4, fractionDigits?: number) => string;
530
- export {};
531
- }
532
- //# sourceMappingURL=mat4.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mat4.d.ts","sourceRoot":"","sources":["../../src/mat4.ts"],"names":[],"mappings":"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"}