linearly 0.24.3 → 0.26.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.
Files changed (55) hide show
  1. package/lib/cjs/mat2.d.ts +90 -42
  2. package/lib/cjs/mat2.d.ts.map +1 -1
  3. package/lib/cjs/mat2.js +94 -46
  4. package/lib/cjs/mat2d.d.ts +109 -55
  5. package/lib/cjs/mat2d.d.ts.map +1 -1
  6. package/lib/cjs/mat2d.js +112 -58
  7. package/lib/cjs/mat3.d.ts +93 -45
  8. package/lib/cjs/mat3.d.ts.map +1 -1
  9. package/lib/cjs/mat3.js +96 -48
  10. package/lib/cjs/mat4.d.ts +93 -45
  11. package/lib/cjs/mat4.d.ts.map +1 -1
  12. package/lib/cjs/mat4.js +96 -48
  13. package/lib/cjs/quat.d.ts +62 -29
  14. package/lib/cjs/quat.d.ts.map +1 -1
  15. package/lib/cjs/quat.js +64 -31
  16. package/lib/cjs/scalar.d.ts +164 -54
  17. package/lib/cjs/scalar.d.ts.map +1 -1
  18. package/lib/cjs/scalar.js +192 -62
  19. package/lib/cjs/vec2.d.ts +176 -72
  20. package/lib/cjs/vec2.d.ts.map +1 -1
  21. package/lib/cjs/vec2.js +208 -105
  22. package/lib/cjs/vec3.d.ts +183 -82
  23. package/lib/cjs/vec3.d.ts.map +1 -1
  24. package/lib/cjs/vec3.js +210 -93
  25. package/lib/cjs/vec4.d.ts +159 -67
  26. package/lib/cjs/vec4.d.ts.map +1 -1
  27. package/lib/cjs/vec4.js +189 -78
  28. package/lib/esm/mat2.d.ts +90 -42
  29. package/lib/esm/mat2.d.ts.map +1 -1
  30. package/lib/esm/mat2.js +94 -46
  31. package/lib/esm/mat2d.d.ts +109 -55
  32. package/lib/esm/mat2d.d.ts.map +1 -1
  33. package/lib/esm/mat2d.js +112 -58
  34. package/lib/esm/mat3.d.ts +93 -45
  35. package/lib/esm/mat3.d.ts.map +1 -1
  36. package/lib/esm/mat3.js +96 -48
  37. package/lib/esm/mat4.d.ts +93 -45
  38. package/lib/esm/mat4.d.ts.map +1 -1
  39. package/lib/esm/mat4.js +96 -48
  40. package/lib/esm/quat.d.ts +62 -29
  41. package/lib/esm/quat.d.ts.map +1 -1
  42. package/lib/esm/quat.js +64 -31
  43. package/lib/esm/scalar.d.ts +164 -54
  44. package/lib/esm/scalar.d.ts.map +1 -1
  45. package/lib/esm/scalar.js +192 -62
  46. package/lib/esm/vec2.d.ts +176 -72
  47. package/lib/esm/vec2.d.ts.map +1 -1
  48. package/lib/esm/vec2.js +208 -105
  49. package/lib/esm/vec3.d.ts +183 -82
  50. package/lib/esm/vec3.d.ts.map +1 -1
  51. package/lib/esm/vec3.js +210 -93
  52. package/lib/esm/vec4.d.ts +159 -67
  53. package/lib/esm/vec4.d.ts.map +1 -1
  54. package/lib/esm/vec4.js +189 -78
  55. package/package.json +1 -1
@@ -63,8 +63,22 @@ export declare namespace mat2d {
63
63
  * 0, 0]
64
64
  * ```
65
65
  * @category Constants
66
+ *
67
+ * @shorthands
68
+ * - {@link id}
69
+ * - {@link ident}
66
70
  */
67
71
  const identity: mat2d;
72
+ /**
73
+ * Alias for {@link identity}
74
+ * @category Shorthands
75
+ */
76
+ const id: mat2d;
77
+ /**
78
+ * Alias for {@link identity}
79
+ * @category Shorthands
80
+ */
81
+ const ident: mat2d;
68
82
  /**
69
83
  * The mat2d matrix filled with zeros.
70
84
  * @category Constants
@@ -72,16 +86,40 @@ export declare namespace mat2d {
72
86
  const zero: mat2d;
73
87
  /**
74
88
  * Inverts a mat2d
89
+ *
90
+ * @shorthands
91
+ * - {@link inv}
75
92
  */
76
93
  function invert(a: mat2d): mat2d | null;
94
+ /**
95
+ * Alias for {@link invert}
96
+ * @category Shorthands
97
+ */
98
+ const inv: typeof invert;
77
99
  /**
78
100
  * Calculates the determinant of a mat2d
101
+ *
102
+ * @shorthands
103
+ * - {@link det}
79
104
  */
80
105
  function determinant(a: mat2d): number;
106
+ /**
107
+ * Alias for {@link determinant}
108
+ * @category Shorthands
109
+ */
110
+ const det: typeof determinant;
81
111
  /**
82
112
  * Multiplies given mat2d's
113
+ *
114
+ * @shorthands
115
+ * - {@link mul}
83
116
  */
84
117
  function multiply(...ms: mat2d[]): mat2d;
118
+ /**
119
+ * Alias for {@link multiply}
120
+ * @category Shorthands
121
+ */
122
+ const mul: typeof multiply;
85
123
  /**
86
124
  * Rotates a mat2d by the given angle
87
125
  */
@@ -104,24 +142,56 @@ export declare namespace mat2d {
104
142
  * Creates a matrix from a given angle
105
143
  * This is equivalent to (but much faster than):
106
144
  * @category Generators
145
+ *
146
+ * @shorthands
147
+ * - {@link rotation}
107
148
  */
108
149
  function fromRotation(deg: number, origin?: vec2): mat2d;
150
+ /**
151
+ * Alias for {@link fromRotation}
152
+ * @category Shorthands
153
+ */
154
+ const rotation: typeof fromRotation;
109
155
  /**
110
156
  * Creates a matrix from a vector scaling
111
157
  * @category Generators
158
+ *
159
+ * @shorthands
160
+ * - {@link scaling}
112
161
  */
113
162
  function fromScaling(v: vec2 | number, origin?: vec2): mat2d;
163
+ /**
164
+ * Alias for {@link fromScaling}
165
+ * @category Shorthands
166
+ */
167
+ const scaling: typeof fromScaling;
114
168
  /**
115
169
  * Creates a matrix from a vector translation
116
170
  * @category Generators
171
+ *
172
+ * @shorthands
173
+ * - {@link translation}
117
174
  */
118
175
  function fromTranslation(v: vec2 | number): mat2d;
176
+ /**
177
+ * Alias for {@link fromTranslation}
178
+ * @category Shorthands
179
+ */
180
+ const translation: typeof fromTranslation;
119
181
  /**
120
182
  * Creates a matrix from a vector skew
121
183
  * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew
122
184
  * @category Generators
185
+ *
186
+ * @shorthands
187
+ * - {@link skewing}
123
188
  */
124
189
  function fromSkew(deg: vec2, origin?: vec2): mat2d;
190
+ /**
191
+ * Alias for {@link fromSkew}
192
+ * @category Shorthands
193
+ */
194
+ const skewing: typeof fromSkew;
125
195
  /**
126
196
  * Computes a fixed point of the given matrix.
127
197
  * @param m The matrix to compute a fixed point of
@@ -138,8 +208,16 @@ export declare namespace mat2d {
138
208
  function add(...ms: mat2d[]): mat2d;
139
209
  /**
140
210
  * Subtracts matrix b from matrix a
211
+ *
212
+ * @shorthands
213
+ * - {@link sub}
141
214
  */
142
215
  function subtract(...ms: mat2d[]): mat2d;
216
+ /**
217
+ * Alias for {@link subtract}
218
+ * @category Shorthands
219
+ */
220
+ const sub: typeof subtract;
143
221
  /**
144
222
  * Subtracts b from a
145
223
  */
@@ -171,8 +249,16 @@ export declare namespace mat2d {
171
249
  * @param r Rotation angle in degrees
172
250
  * @param s Scaling vector
173
251
  * @returns The matrix that represents the transformation
252
+ *
253
+ * @shorthands
254
+ * - {@link trs}
174
255
  */
175
256
  function fromTRS(t?: vec2 | null, r?: number | null, s?: vec2 | null): mat2d;
257
+ /**
258
+ * Alias for {@link fromTRS}
259
+ * @category Shorthands
260
+ */
261
+ const trs: typeof fromTRS;
176
262
  /**
177
263
  * Copies a the values from {@link mat2}, assuming the translation component is `[0, 0]`
178
264
  * @param m The matrix to convert
@@ -182,72 +268,40 @@ export declare namespace mat2d {
182
268
  function fromMat2(m: mat2): mat2d;
183
269
  /**
184
270
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
271
+ *
272
+ * @shorthands
273
+ * - {@link eq}
185
274
  */
186
275
  function exactEquals(a: mat2d, b: mat2d): boolean;
187
276
  /**
188
- * Returns whether or not the matrices have approximately the same elements in the same position.
189
- */
190
- function equals(a: mat2d, b: mat2d): boolean;
191
- /**
192
- * Returns a string representation of a mat2d
193
- * @param m matrix to represent as a string
194
- * @param fractionDigits number of digits to appear after the decimal point
195
- */
196
- const toString: (m: mat2d, fractionDigits?: number) => string;
197
- /**
198
- * Alias for {@link identity}
199
- * @category Aliases
200
- */
201
- const id: mat2d;
202
- /**
203
- * Alias for {@link identity}
204
- * @category Aliases
205
- */
206
- const ident: mat2d;
207
- /**
208
- * Alias for {@link subtract}
209
- * @category Aliases
210
- */
211
- const sub: typeof subtract;
212
- /**
213
- * Alias for {@link multiply}
214
- * @category Aliases
215
- */
216
- const mul: typeof multiply;
217
- /**
218
- * Alias for {@link determinant}
219
- * @category Aliases
277
+ * Alias for {@link exactEquals}
278
+ * @category Shorthands
220
279
  */
221
- const det: typeof determinant;
280
+ const eq: typeof exactEquals;
222
281
  /**
223
- * Alias for {@link invert}
224
- * @category Aliases
282
+ * Returns whether or not the matrices have approximately the same elements in the same position.
283
+ *
284
+ * @shorthands
285
+ * - {@link approx}
286
+ * - {@link equals}
225
287
  */
226
- const inv: typeof invert;
288
+ function approxEquals(a: mat2d, b: mat2d): boolean;
227
289
  /**
228
- * Alias for {@link fromTranslation}
229
- * @category Aliases
290
+ * Alias for {@link approxEquals}
291
+ * @category Shorthands
230
292
  */
231
- const translation: typeof fromTranslation;
293
+ const approx: typeof approxEquals;
232
294
  /**
233
- * Alias for {@link fromRotation}
234
- * @category Aliases
295
+ * Alias for {@link approxEquals}. This is provided for compatibility with gl-matrix.
296
+ * @category Shorthands
297
+ * @deprecated Use {@link approxEquals} instead
235
298
  */
236
- const rotation: typeof fromRotation;
299
+ const equals: typeof approxEquals;
237
300
  /**
238
- * Alias for {@link fromScaling}
239
- * @category Aliases
240
- */
241
- const scaling: typeof fromScaling;
242
- /**
243
- * Alias for {@link fromSkew}
244
- * @category Aliases
245
- */
246
- const skewing: typeof fromSkew;
247
- /**
248
- * Alias for {@link fromTRS}
249
- * @category Aliases
301
+ * Returns a string representation of a mat2d
302
+ * @param m matrix to represent as a string
303
+ * @param fractionDigits number of digits to appear after the decimal point
250
304
  */
251
- const trs: typeof fromTRS;
305
+ const toString: (m: mat2d, fractionDigits?: number) => string;
252
306
  }
253
307
  //# sourceMappingURL=mat2d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../src/mat2d.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,KAAK,GAAG,SAAS;IAC5B,CAAC,EAAE,MAAM;IAAE,CAAC,EAAE,MAAM;IACpB,CAAC,EAAE,MAAM;IAAE,CAAC,EAAE,MAAM;IACpB,EAAE,EAAE,MAAM;IAAE,EAAE,EAAE,MAAM;CACtB,CAAA;AAED;;;GAGG;AACH,yBAAiB,KAAK,CAAC;IACtB;;;OAGG;IAEH,KAAY,OAAO,GAAG;QACrB,CAAC,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM;QACpB,CAAC,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM;QACpB,EAAE,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM;KACtB,CAAA;IAED;;;OAGG;IAEH,SAAgB,EAAE,CACjB,CAAC,EAAE,MAAM,EAAG,CAAC,EAAE,MAAM,EACrB,CAAC,EAAE,MAAM,EAAG,CAAC,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GACpB,KAAK,CAEP;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAEvC;IAED;;;;;;;;OAQG;IAEI,MAAM,QAAQ,EAAE,KAIrB,CAAA;IAEF;;;OAGG;IACI,MAAM,IAAI,EAAE,KAAyC,CAAA;IAE5D;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAmB7C;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,UAEnC;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAuB9C;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAiBlE;IAED;;QAEI;IACJ,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAc7D;IAED;;QAEI;IACJ,SAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,CAWlD;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAMnD;IAED;;;OAGG;IACH,SAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAE7D;IAED;;;;OAIG;IACH,SAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAc9D;IAED;;;OAGG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAalE;IAED;;;OAGG;IACH,SAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CASvD;IAED;;;;OAIG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAexD;IAED;;;;OAIG;IACH,SAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAkBhD;IAED;;OAEG;IACH,SAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,UAE5B;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAazC;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAoB9C;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAS/C;IAED;;OAEG;IACH,SAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAOzD;IAED;;GAEE;IACF,SAAgB,oBAAoB,CACnC,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,KAAK,EACR,KAAK,EAAE,MAAM,GACX,KAAK,CASP;IAED;;;;;;;;;;;OAWG;IACH,SAAgB,UAAU,CACzB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EACpB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAClB,KAAK,GAAG,IAAI,CAsCd;IAED;;;;;;OAMG;IACH,SAAgB,OAAO,CACtB,CAAC,GAAE,IAAI,GAAG,IAAW,EACrB,CAAC,GAAE,MAAM,GAAG,IAAW,EACvB,CAAC,GAAE,IAAI,GAAG,IAAW,GACnB,KAAK,CASP;IAED;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAEvC;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,WAS7C;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,WAiBxC;IAED;;;;OAIG;IACI,MAAM,QAAQ,8BAEH,MAAM,KACnB,MAAM,CAAA;IAEX;;;OAGG;IACI,MAAM,EAAE,OAAW,CAAA;IAE1B;;;OAGG;IACI,MAAM,KAAK,OAAW,CAAA;IAE7B;;;OAGG;IACI,MAAM,GAAG,iBAAW,CAAA;IAE3B;;;OAGG;IACI,MAAM,GAAG,iBAAW,CAAA;IAE3B;;;OAGG;IACI,MAAM,GAAG,oBAAc,CAAA;IAE9B;;;OAGG;IACI,MAAM,GAAG,eAAS,CAAA;IAEzB;;;OAGG;IACI,MAAM,WAAW,wBAAkB,CAAA;IAE1C;;;OAGG;IACI,MAAM,QAAQ,qBAAe,CAAA;IAEpC;;;OAGG;IACI,MAAM,OAAO,oBAAc,CAAA;IAElC;;;OAGG;IACI,MAAM,OAAO,iBAAW,CAAA;IAE/B;;;OAGG;IACI,MAAM,GAAG,gBAAU,CAAA;CAC1B"}
1
+ {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../src/mat2d.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,KAAK,GAAG,SAAS;IAC5B,CAAC,EAAE,MAAM;IAAE,CAAC,EAAE,MAAM;IACpB,CAAC,EAAE,MAAM;IAAE,CAAC,EAAE,MAAM;IACpB,EAAE,EAAE,MAAM;IAAE,EAAE,EAAE,MAAM;CACtB,CAAA;AAED;;;GAGG;AACH,yBAAiB,KAAK,CAAC;IACtB;;;OAGG;IAEH,KAAY,OAAO,GAAG;QACrB,CAAC,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM;QACpB,CAAC,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM;QACpB,EAAE,EAAE,MAAM;QAAE,EAAE,EAAE,MAAM;KACtB,CAAA;IAED;;;OAGG;IAEH,SAAgB,EAAE,CACjB,CAAC,EAAE,MAAM,EAAG,CAAC,EAAE,MAAM,EACrB,CAAC,EAAE,MAAM,EAAG,CAAC,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GACpB,KAAK,CAEP;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAEvC;IAED;;;;;;;;;;;;OAYG;IAEI,MAAM,QAAQ,EAAE,KAIrB,CAAA;IAEF;;;OAGG;IACI,MAAM,EAAE,OAAW,CAAA;IAE1B;;;OAGG;IACI,MAAM,KAAK,OAAW,CAAA;IAE7B;;;OAGG;IACI,MAAM,IAAI,EAAE,KAAyC,CAAA;IAE5D;;;;;OAKG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAmB7C;IAED;;;OAGG;IACI,MAAM,GAAG,eAAS,CAAA;IAEzB;;;;;OAKG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,UAEnC;IAED;;;OAGG;IACI,MAAM,GAAG,oBAAc,CAAA;IAE9B;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAuB9C;IAED;;;OAGG;IACI,MAAM,GAAG,iBAAW,CAAA;IAE3B;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAiBlE;IAED;;QAEI;IACJ,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAc7D;IAED;;QAEI;IACJ,SAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,CAWlD;IAED,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAMnD;IAED;;;OAGG;IACH,SAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAE7D;IAED;;;;;;;OAOG;IACH,SAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAc9D;IAED;;;OAGG;IACI,MAAM,QAAQ,qBAAe,CAAA;IAEpC;;;;;;OAMG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAalE;IAED;;;OAGG;IACI,MAAM,OAAO,oBAAc,CAAA;IAElC;;;;;;OAMG;IACH,SAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CASvD;IAED;;;OAGG;IACI,MAAM,WAAW,wBAAkB,CAAA;IAE1C;;;;;;;OAOG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAexD;IAED;;;OAGG;IACI,MAAM,OAAO,iBAAW,CAAA;IAE/B;;;;OAIG;IACH,SAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAkBhD;IAED;;OAEG;IACH,SAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,UAE5B;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAazC;IAED;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAoB9C;IAED;;;OAGG;IACI,MAAM,GAAG,iBAAW,CAAA;IAE3B;;OAEG;IACH,SAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAS/C;IAED;;OAEG;IACH,SAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAOzD;IAED;;GAEE;IACF,SAAgB,oBAAoB,CACnC,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,KAAK,EACR,KAAK,EAAE,MAAM,GACX,KAAK,CASP;IAED;;;;;;;;;;;OAWG;IACH,SAAgB,UAAU,CACzB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EACpB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAClB,KAAK,GAAG,IAAI,CAsCd;IAED;;;;;;;;;OASG;IACH,SAAgB,OAAO,CACtB,CAAC,GAAE,IAAI,GAAG,IAAW,EACrB,CAAC,GAAE,MAAM,GAAG,IAAW,EACvB,CAAC,GAAE,IAAI,GAAG,IAAW,GACnB,KAAK,CASP;IAED;;;OAGG;IACI,MAAM,GAAG,gBAAU,CAAA;IAE1B;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAEvC;IAED;;;;;OAKG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,WAS7C;IAED;;;OAGG;IACI,MAAM,EAAE,oBAAc,CAAA;IAE7B;;;;;;OAMG;IACH,SAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,WAiB9C;IAED;;;OAGG;IACI,MAAM,MAAM,qBAAe,CAAA;IAElC;;;;OAIG;IACI,MAAM,MAAM,qBAAe,CAAA;IAElC;;;;OAIG;IACI,MAAM,QAAQ,8BAEH,MAAM,KACnB,MAAM,CAAA;CACX"}
package/lib/esm/mat2d.js CHANGED
@@ -32,6 +32,10 @@ export var mat2d;
32
32
  * 0, 0]
33
33
  * ```
34
34
  * @category Constants
35
+ *
36
+ * @shorthands
37
+ * - {@link id}
38
+ * - {@link ident}
35
39
  */
36
40
  // prettier-ignore
37
41
  mat2d.identity = Object.freeze([
@@ -39,6 +43,16 @@ export var mat2d;
39
43
  0, 1,
40
44
  0, 0
41
45
  ]);
46
+ /**
47
+ * Alias for {@link identity}
48
+ * @category Shorthands
49
+ */
50
+ mat2d.id = mat2d.identity;
51
+ /**
52
+ * Alias for {@link identity}
53
+ * @category Shorthands
54
+ */
55
+ mat2d.ident = mat2d.identity;
42
56
  /**
43
57
  * The mat2d matrix filled with zeros.
44
58
  * @category Constants
@@ -46,6 +60,9 @@ export var mat2d;
46
60
  mat2d.zero = Object.freeze([0, 0, 0, 0, 0, 0]);
47
61
  /**
48
62
  * Inverts a mat2d
63
+ *
64
+ * @shorthands
65
+ * - {@link inv}
49
66
  */
50
67
  function invert(a) {
51
68
  const [aa, ab, ac, ad, atx, aty] = a;
@@ -63,15 +80,31 @@ export var mat2d;
63
80
  ];
64
81
  }
65
82
  mat2d.invert = invert;
83
+ /**
84
+ * Alias for {@link invert}
85
+ * @category Shorthands
86
+ */
87
+ mat2d.inv = invert;
66
88
  /**
67
89
  * Calculates the determinant of a mat2d
90
+ *
91
+ * @shorthands
92
+ * - {@link det}
68
93
  */
69
94
  function determinant(a) {
70
95
  return a[0] * a[3] - a[1] * a[2];
71
96
  }
72
97
  mat2d.determinant = determinant;
98
+ /**
99
+ * Alias for {@link determinant}
100
+ * @category Shorthands
101
+ */
102
+ mat2d.det = determinant;
73
103
  /**
74
104
  * Multiplies given mat2d's
105
+ *
106
+ * @shorthands
107
+ * - {@link mul}
75
108
  */
76
109
  function multiply(...ms) {
77
110
  if (ms.length === 0) {
@@ -96,6 +129,11 @@ export var mat2d;
96
129
  ];
97
130
  }
98
131
  mat2d.multiply = multiply;
132
+ /**
133
+ * Alias for {@link multiply}
134
+ * @category Shorthands
135
+ */
136
+ mat2d.mul = multiply;
99
137
  /**
100
138
  * Rotates a mat2d by the given angle
101
139
  */
@@ -164,6 +202,9 @@ export var mat2d;
164
202
  * Creates a matrix from a given angle
165
203
  * This is equivalent to (but much faster than):
166
204
  * @category Generators
205
+ *
206
+ * @shorthands
207
+ * - {@link rotation}
167
208
  */
168
209
  function fromRotation(deg, origin) {
169
210
  if (origin) {
@@ -179,9 +220,17 @@ export var mat2d;
179
220
  ];
180
221
  }
181
222
  mat2d.fromRotation = fromRotation;
223
+ /**
224
+ * Alias for {@link fromRotation}
225
+ * @category Shorthands
226
+ */
227
+ mat2d.rotation = fromRotation;
182
228
  /**
183
229
  * Creates a matrix from a vector scaling
184
230
  * @category Generators
231
+ *
232
+ * @shorthands
233
+ * - {@link scaling}
185
234
  */
186
235
  function fromScaling(v, origin) {
187
236
  if (origin) {
@@ -196,9 +245,17 @@ export var mat2d;
196
245
  ];
197
246
  }
198
247
  mat2d.fromScaling = fromScaling;
248
+ /**
249
+ * Alias for {@link fromScaling}
250
+ * @category Shorthands
251
+ */
252
+ mat2d.scaling = fromScaling;
199
253
  /**
200
254
  * Creates a matrix from a vector translation
201
255
  * @category Generators
256
+ *
257
+ * @shorthands
258
+ * - {@link translation}
202
259
  */
203
260
  function fromTranslation(v) {
204
261
  const [x, y] = typeof v === 'number' ? [v, v] : v;
@@ -210,10 +267,18 @@ export var mat2d;
210
267
  ];
211
268
  }
212
269
  mat2d.fromTranslation = fromTranslation;
270
+ /**
271
+ * Alias for {@link fromTranslation}
272
+ * @category Shorthands
273
+ */
274
+ mat2d.translation = fromTranslation;
213
275
  /**
214
276
  * Creates a matrix from a vector skew
215
277
  * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew
216
278
  * @category Generators
279
+ *
280
+ * @shorthands
281
+ * - {@link skewing}
217
282
  */
218
283
  function fromSkew(deg, origin) {
219
284
  if (origin) {
@@ -230,6 +295,11 @@ export var mat2d;
230
295
  ];
231
296
  }
232
297
  mat2d.fromSkew = fromSkew;
298
+ /**
299
+ * Alias for {@link fromSkew}
300
+ * @category Shorthands
301
+ */
302
+ mat2d.skewing = fromSkew;
233
303
  /**
234
304
  * Computes a fixed point of the given matrix.
235
305
  * @param m The matrix to compute a fixed point of
@@ -275,6 +345,9 @@ export var mat2d;
275
345
  mat2d.add = add;
276
346
  /**
277
347
  * Subtracts matrix b from matrix a
348
+ *
349
+ * @shorthands
350
+ * - {@link sub}
278
351
  */
279
352
  function subtract(...ms) {
280
353
  if (ms.length === 0) {
@@ -298,6 +371,11 @@ export var mat2d;
298
371
  ];
299
372
  }
300
373
  mat2d.subtract = subtract;
374
+ /**
375
+ * Alias for {@link subtract}
376
+ * @category Shorthands
377
+ */
378
+ mat2d.sub = subtract;
301
379
  /**
302
380
  * Subtracts b from a
303
381
  */
@@ -391,6 +469,9 @@ export var mat2d;
391
469
  * @param r Rotation angle in degrees
392
470
  * @param s Scaling vector
393
471
  * @returns The matrix that represents the transformation
472
+ *
473
+ * @shorthands
474
+ * - {@link trs}
394
475
  */
395
476
  function fromTRS(t = null, r = null, s = null) {
396
477
  t ??= vec2.zero;
@@ -401,6 +482,11 @@ export var mat2d;
401
482
  return [s[0] * C, s[0] * S, s[1] * -S, s[1] * C, ...t];
402
483
  }
403
484
  mat2d.fromTRS = fromTRS;
485
+ /**
486
+ * Alias for {@link fromTRS}
487
+ * @category Shorthands
488
+ */
489
+ mat2d.trs = fromTRS;
404
490
  /**
405
491
  * Copies a the values from {@link mat2}, assuming the translation component is `[0, 0]`
406
492
  * @param m The matrix to convert
@@ -413,6 +499,9 @@ export var mat2d;
413
499
  mat2d.fromMat2 = fromMat2;
414
500
  /**
415
501
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
502
+ *
503
+ * @shorthands
504
+ * - {@link eq}
416
505
  */
417
506
  function exactEquals(a, b) {
418
507
  return (a[0] === b[0] &&
@@ -423,10 +512,19 @@ export var mat2d;
423
512
  a[5] === b[5]);
424
513
  }
425
514
  mat2d.exactEquals = exactEquals;
515
+ /**
516
+ * Alias for {@link exactEquals}
517
+ * @category Shorthands
518
+ */
519
+ mat2d.eq = exactEquals;
426
520
  /**
427
521
  * Returns whether or not the matrices have approximately the same elements in the same position.
522
+ *
523
+ * @shorthands
524
+ * - {@link approx}
525
+ * - {@link equals}
428
526
  */
429
- function equals(a, b) {
527
+ function approxEquals(a, b) {
430
528
  const [a0, a1, a2, a3, a4, a5] = a;
431
529
  const [b0, b1, b2, b3, b4, b5] = b;
432
530
  return (Math.abs(a0 - b0) <=
@@ -442,67 +540,23 @@ export var mat2d;
442
540
  Math.abs(a5 - b5) <=
443
541
  Common.EPSILON * Math.max(1, Math.abs(a5), Math.abs(b5)));
444
542
  }
445
- mat2d.equals = equals;
446
- /**
447
- * Returns a string representation of a mat2d
448
- * @param m matrix to represent as a string
449
- * @param fractionDigits number of digits to appear after the decimal point
450
- */
451
- mat2d.toString = Common.createMatToStringFunction(2, 3);
452
- /**
453
- * Alias for {@link identity}
454
- * @category Aliases
455
- */
456
- mat2d.id = mat2d.identity;
457
- /**
458
- * Alias for {@link identity}
459
- * @category Aliases
460
- */
461
- mat2d.ident = mat2d.identity;
462
- /**
463
- * Alias for {@link subtract}
464
- * @category Aliases
465
- */
466
- mat2d.sub = subtract;
543
+ mat2d.approxEquals = approxEquals;
467
544
  /**
468
- * Alias for {@link multiply}
469
- * @category Aliases
545
+ * Alias for {@link approxEquals}
546
+ * @category Shorthands
470
547
  */
471
- mat2d.mul = multiply;
548
+ mat2d.approx = approxEquals;
472
549
  /**
473
- * Alias for {@link determinant}
474
- * @category Aliases
550
+ * Alias for {@link approxEquals}. This is provided for compatibility with gl-matrix.
551
+ * @category Shorthands
552
+ * @deprecated Use {@link approxEquals} instead
475
553
  */
476
- mat2d.det = determinant;
554
+ mat2d.equals = approxEquals;
477
555
  /**
478
- * Alias for {@link invert}
479
- * @category Aliases
480
- */
481
- mat2d.inv = invert;
482
- /**
483
- * Alias for {@link fromTranslation}
484
- * @category Aliases
485
- */
486
- mat2d.translation = fromTranslation;
487
- /**
488
- * Alias for {@link fromRotation}
489
- * @category Aliases
490
- */
491
- mat2d.rotation = fromRotation;
492
- /**
493
- * Alias for {@link fromScaling}
494
- * @category Aliases
495
- */
496
- mat2d.scaling = fromScaling;
497
- /**
498
- * Alias for {@link fromSkew}
499
- * @category Aliases
500
- */
501
- mat2d.skewing = fromSkew;
502
- /**
503
- * Alias for {@link fromTRS}
504
- * @category Aliases
556
+ * Returns a string representation of a mat2d
557
+ * @param m matrix to represent as a string
558
+ * @param fractionDigits number of digits to appear after the decimal point
505
559
  */
506
- mat2d.trs = fromTRS;
560
+ mat2d.toString = Common.createMatToStringFunction(2, 3);
507
561
  })(mat2d || (mat2d = {}));
508
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDbEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQTtBQUMzQixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFBO0FBNkIzQjs7O0dBR0c7QUFDSCxNQUFNLEtBQVcsS0FBSyxDQXNrQnJCO0FBdGtCRCxXQUFpQixLQUFLO0lBWXJCOzs7T0FHRztJQUNILGtCQUFrQjtJQUNsQixTQUFnQixFQUFFLENBQ2pCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLEVBQVUsRUFBRSxFQUFVO1FBRXRCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFOZSxRQUFFLEtBTWpCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFGZSxXQUFLLFFBRXBCLENBQUE7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILGtCQUFrQjtJQUNMLGNBQVEsR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVDLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztLQUNKLENBQUMsQ0FBQTtJQUVGOzs7T0FHRztJQUNVLFVBQUksR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRTVEOztPQUVHO0lBQ0gsU0FBZ0IsTUFBTSxDQUFDLENB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
562
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDbEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQTtBQUMzQixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFBO0FBNkIzQjs7O0dBR0c7QUFDSCxNQUFNLEtBQVcsS0FBSyxDQStuQnJCO0FBL25CRCxXQUFpQixLQUFLO0lBWXJCOzs7T0FHRztJQUNILGtCQUFrQjtJQUNsQixTQUFnQixFQUFFLENBQ2pCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLEVBQVUsRUFBRSxFQUFVO1FBRXRCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFOZSxRQUFFLEtBTWpCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFGZSxXQUFLLFFBRXBCLENBQUE7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxrQkFBa0I7SUFDTCxjQUFRLEdBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDSixDQUFDLENBQUE7SUFFRjs7O09BR0c7SUFDVSxRQUFFLEdBQUcsTUFBQSxRQUFRLENBQUE7SUFFMUI7OztPQUdHO0lBQ1UsV0FBSyxHQUFHLE1BQUEsUUFBUSxDQUFBO0lBRTdCOzs7T0FHRztJQUNVLFVBQUksR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMs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QUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1gsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNYLENBQUE7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFMUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUE7UUFDWixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQVU7WUFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNYLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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