linearly 0.22.0 → 0.23.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 (56) hide show
  1. package/README.md +21 -23
  2. package/lib/cjs/mat2.d.ts +37 -4
  3. package/lib/cjs/mat2.d.ts.map +1 -1
  4. package/lib/cjs/mat2.js +39 -4
  5. package/lib/cjs/mat2d.d.ts +62 -6
  6. package/lib/cjs/mat2d.d.ts.map +1 -1
  7. package/lib/cjs/mat2d.js +66 -5
  8. package/lib/cjs/mat3.d.ts +31 -6
  9. package/lib/cjs/mat3.d.ts.map +1 -1
  10. package/lib/cjs/mat3.js +31 -6
  11. package/lib/cjs/mat4.d.ts +32 -7
  12. package/lib/cjs/mat4.d.ts.map +1 -1
  13. package/lib/cjs/mat4.js +32 -7
  14. package/lib/cjs/quat.d.ts +13 -3
  15. package/lib/cjs/quat.d.ts.map +1 -1
  16. package/lib/cjs/quat.js +14 -4
  17. package/lib/cjs/scalar.d.ts +2 -2
  18. package/lib/cjs/scalar.d.ts.map +1 -1
  19. package/lib/cjs/scalar.js +4 -4
  20. package/lib/cjs/vec2.d.ts +6 -1
  21. package/lib/cjs/vec2.d.ts.map +1 -1
  22. package/lib/cjs/vec2.js +8 -3
  23. package/lib/cjs/vec3.d.ts +13 -2
  24. package/lib/cjs/vec3.d.ts.map +1 -1
  25. package/lib/cjs/vec3.js +15 -4
  26. package/lib/cjs/vec4.d.ts +6 -1
  27. package/lib/cjs/vec4.d.ts.map +1 -1
  28. package/lib/cjs/vec4.js +8 -3
  29. package/lib/esm/mat2.d.ts +37 -4
  30. package/lib/esm/mat2.d.ts.map +1 -1
  31. package/lib/esm/mat2.js +39 -4
  32. package/lib/esm/mat2d.d.ts +62 -6
  33. package/lib/esm/mat2d.d.ts.map +1 -1
  34. package/lib/esm/mat2d.js +66 -5
  35. package/lib/esm/mat3.d.ts +31 -6
  36. package/lib/esm/mat3.d.ts.map +1 -1
  37. package/lib/esm/mat3.js +31 -6
  38. package/lib/esm/mat4.d.ts +32 -7
  39. package/lib/esm/mat4.d.ts.map +1 -1
  40. package/lib/esm/mat4.js +32 -7
  41. package/lib/esm/quat.d.ts +13 -3
  42. package/lib/esm/quat.d.ts.map +1 -1
  43. package/lib/esm/quat.js +14 -4
  44. package/lib/esm/scalar.d.ts +2 -2
  45. package/lib/esm/scalar.d.ts.map +1 -1
  46. package/lib/esm/scalar.js +4 -4
  47. package/lib/esm/vec2.d.ts +6 -1
  48. package/lib/esm/vec2.d.ts.map +1 -1
  49. package/lib/esm/vec2.js +8 -3
  50. package/lib/esm/vec3.d.ts +13 -2
  51. package/lib/esm/vec3.d.ts.map +1 -1
  52. package/lib/esm/vec3.js +15 -4
  53. package/lib/esm/vec4.d.ts +6 -1
  54. package/lib/esm/vec4.d.ts.map +1 -1
  55. package/lib/esm/vec4.js +8 -3
  56. package/package.json +13 -4
package/README.md CHANGED
@@ -1,18 +1,29 @@
1
- # Linearly
1
+ <div align="center">
2
+ <h1>Linerly</h1>
2
3
 
3
- [![NPM Version](https://img.shields.io/npm/v/linearly.svg)](https://www.npmjs.com/package/linearly)
4
- ![CI Test Result](https://github.com/baku89/linearly/actions/workflows/ci.yml/badge.svg)
5
- ![MIT License](https://img.shields.io/npm/l/linearly.svg)
4
+ <a href="https://baku89.github.io/linearly/">Documentation</a> ⌇ <a href="https://github.com/sponsors/baku89">Become a Sponsor</a>
5
+
6
+ <p>
7
+ <a href="https://www.npmjs.org/package/linearly">
8
+ <img src="https://img.shields.io/npm/v/linearly.svg?style=flat" alt="npm version">
9
+ </a>
10
+ <a href="http://spdx.org/licenses/MIT">
11
+ <img src="https://img.shields.io/npm/l/linearly?style=flat" alt="npm license">
12
+ </a>
13
+ <img src="https://github.com/baku89/linearly/actions/workflows/ci.yml/badge.svg" alt="CI test result" />
14
+ </p>
15
+
16
+ </div>
6
17
 
7
18
  A collection of utility functions that relates to linear algebra and graphics programming.
8
19
 
9
- 🍡 I'd be appreciate to receive PRs from anyone willing to help with tedious tasks like writing JSDoc, adding necessary functions, or writing tests.
20
+ 🍡 I'd appreciate receiving PRs from anyone willing to help with tedious tasks like writing JSDoc, adding necessary functions, or writing tests.
10
21
 
11
- This library is based on [glMatrix](https://github.com/toji/gl-matrix), but adopts immutable data structure. So you don't need to specify a receiver matrix as the first argument.
22
+ This library is based on [glMatrix](https://github.com/toji/gl-matrix), but adopts an immutable data structure. So you don't need to specify a receiver matrix as the first argument.
12
23
 
13
24
  ### glMatrix
14
25
 
15
- ```js
26
+ ```ts
16
27
  // In glMatrix, you have to manually pass an output vector by reference to reuse allocated memory space efficiently.
17
28
  const dir = vec3.fromValues(2, 1, 3)
18
29
  vec3.normalize(dir, dir)
@@ -36,12 +47,12 @@ out = vec3.scale(out, 3)
36
47
  const a: vec2 = [1, 2]
37
48
  const b = vec2.of(1, 2)
38
49
 
39
- // But since vector and matrix are immutable and annotated with readonly flags, a mutation such as below are handled as an error in TypeScript.
50
+ // But since vector and matrix are immutable and annotated with read-only flags, a mutation such as below is handled as an error in TypeScript.
40
51
  a[0] = 3
41
52
  // ^
42
53
  // Cannot assign to '0' because it is a read-only property.
43
54
 
44
- // Some constants such as mat2.identity are also readonly and defined as frozen array (applied Object.freeze). You can use `clone` to mutate them.
55
+ // Some constants such as mat2.identity are also read-only and defined as frozen array (applied Object.freeze). You can use `clone` to mutate them.
45
56
  const m = mat2d.clone(mat2d.ident)
46
57
  m[4] *= 2.0
47
58
  m[5] = -4.5
@@ -53,22 +64,9 @@ In addition to functions that can be found on [glMatrix docs](https://glmatrix.n
53
64
  - [Vex in Houdini](https://www.sidefx.com/docs/houdini/vex/functions/) - `fit`, `efit`, `invlerp`, `degrees`, `radians`
54
65
  - [Unity](https://docs.unity3d.com/Manual/index.html) - `inverseLerp`, `oneMinus`
55
66
 
56
- ## Modules
57
-
58
- The names of modules are derived from glMatrix.
59
-
60
- - `scalar`: A single number
61
- - `mat2`: 2D linear transformation (rotation, scaling, skewing)
62
- - `mat2d`: 2D affine transformation, omitting redundant third rows, which is always set to `[0, 0, 1]` (translation, rotation, scaling, skewing)
63
- - `mat3`: 2D affine transformation (translation, rotation, scaling, skewing)
64
- - `mat4`: 3D transformation
65
- - `quat`: 3D rotation
66
-
67
- See the [Full API documentation](https://baku89.github.io/linearly) for further information.
68
-
69
67
  ## Development
70
68
 
71
- ```
69
+ ```sh
72
70
  git clone https://github.com/baku89/lnearly
73
71
  cd linearly
74
72
  yarn install
package/lib/cjs/mat2.d.ts CHANGED
@@ -1,8 +1,9 @@
1
+ import { mat2d } from './mat2d';
1
2
  import { vec2 } from './vec2';
2
3
  /**
3
4
  * Represents 2D transformation exclude translation.
4
5
  * The format is column-major as in WebGL, so the matrix looks like this:
5
- * ```
6
+ * ```ts
6
7
  * [xx, xy,
7
8
  * yx, yy]
8
9
  * ```
@@ -30,7 +31,7 @@ export declare namespace mat2 {
30
31
  function clone(a: mat2): Mutable;
31
32
  /**
32
33
  * The identity matrix of mat2.
33
- * ```
34
+ * ```ts
34
35
  * [1, 0,
35
36
  * 0, 1]
36
37
  * ```
@@ -111,6 +112,13 @@ export declare namespace mat2 {
111
112
  * Subtracts b from a
112
113
  */
113
114
  function delta(a: mat2, b: mat2): mat2;
115
+ /**
116
+ * Copies the values from a {@link mat2d}, omitting the translation components
117
+ * @param m The matrix to copy from
118
+ * @returns A newly created matrix
119
+ * @category Generators
120
+ */
121
+ function fromMat2d(m: mat2d): mat2;
114
122
  /**
115
123
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
116
124
  */
@@ -119,6 +127,11 @@ export declare namespace mat2 {
119
127
  * Returns whether or not the matrices have approximately the same elements in the same position.
120
128
  */
121
129
  function equals(a: mat2, b: mat2): boolean;
130
+ /**
131
+ * Alias for {@link identity}
132
+ * @category Aliases
133
+ */
134
+ const id: mat2;
122
135
  /**
123
136
  * Alias for {@link identity}
124
137
  * @category Aliases
@@ -130,14 +143,34 @@ export declare namespace mat2 {
130
143
  */
131
144
  const sub: typeof subtract;
132
145
  /**
133
- * Alias for {@link mat2.multiply}
146
+ * Alias for {@link multiply}
134
147
  * @category Aliases
135
148
  */
136
149
  const mul: typeof multiply;
137
150
  /**
138
- * Alias for {@link mat2.determinant}
151
+ * Alias for {@link determinant}
139
152
  * @category Aliases
140
153
  */
141
154
  const det: typeof determinant;
155
+ /**
156
+ * Alias for {@link invert}
157
+ * @category Aliases
158
+ */
159
+ const inv: typeof invert;
160
+ /**
161
+ * Alias for {@link fromRotation}
162
+ * @category Aliases
163
+ */
164
+ const rotation: typeof fromRotation;
165
+ /**
166
+ * Alias for {@link fromScaling}
167
+ * @category Aliases
168
+ */
169
+ const scaling: typeof fromScaling;
170
+ /**
171
+ * Alias for {@link fromSkew}
172
+ * @category Aliases
173
+ */
174
+ const skewing: typeof fromSkew;
142
175
  }
143
176
  //# sourceMappingURL=mat2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mat2.d.ts","sourceRoot":"","sources":["../../src/mat2.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAEhF;;GAEG;AACH,yBAAiB,IAAI,CAAC;IACrB;;;OAGG;IACH,KAAY,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IAE1E;;;OAGG;IACH,SAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3E;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAEtC;IAED;;;;;;;OAOG;IACI,MAAM,QAAQ,EAAE,IAAkC,CAAA;IAEzD;;;OAGG;IACI,MAAM,IAAI,EAAE,IAAkC,CAAA;IAErD;;OAEG;IACH,SAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAMvC;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAgB3C;IAED;;OAEG;IACH,SAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAIrC;IAED;;;OAGG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,UAElC;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAmB5C;IAED;;;;;OAKG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAWjD;IAED;;QAEI;IACJ,SAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAKrD;IAED;;;OAGG;IACH,SAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAE7C;IAED;;;OAGG;IACH,SAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI9C;IAED;;;OAGG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEzC;IAED;;;;OAIG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CASxC;IAED;;OAEG;IACH,SAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,UAE3B;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAavC;IAED;;OAEG;IACH,SAAgB,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAa5C;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAE5C;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,WAE3C;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,WAatC;IAED;;;OAGG;IACI,MAAM,KAAK,MAAW,CAAA;IAE7B;;;OAGG;IACI,MAAM,GAAG,iBAAW,CAAA;IAE3B;;;OAGG;IACI,MAAM,GAAG,iBAAW,CAAA;IAE3B;;;OAGG;IACI,MAAM,GAAG,oBAAc,CAAA;CAC9B"}
1
+ {"version":3,"file":"mat2.d.ts","sourceRoot":"","sources":["../../src/mat2.ts"],"names":[],"mappings":"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"}
package/lib/cjs/mat2.js CHANGED
@@ -48,7 +48,7 @@ var mat2;
48
48
  mat2.clone = clone;
49
49
  /**
50
50
  * The identity matrix of mat2.
51
- * ```
51
+ * ```ts
52
52
  * [1, 0,
53
53
  * 0, 1]
54
54
  * ```
@@ -248,6 +248,16 @@ var mat2;
248
248
  return [b[0] - a[0], b[1] - a[1], b[2] - a[2], b[3] - a[3]];
249
249
  }
250
250
  mat2.delta = delta;
251
+ /**
252
+ * Copies the values from a {@link mat2d}, omitting the translation components
253
+ * @param m The matrix to copy from
254
+ * @returns A newly created matrix
255
+ * @category Generators
256
+ */
257
+ function fromMat2d(m) {
258
+ return [m[0], m[1], m[2], m[3]];
259
+ }
260
+ mat2.fromMat2d = fromMat2d;
251
261
  /**
252
262
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
253
263
  */
@@ -271,6 +281,11 @@ var mat2;
271
281
  Common.EPSILON * Math.max(1, Math.abs(a3), Math.abs(b3)));
272
282
  }
273
283
  mat2.equals = equals;
284
+ /**
285
+ * Alias for {@link identity}
286
+ * @category Aliases
287
+ */
288
+ mat2.id = mat2.identity;
274
289
  /**
275
290
  * Alias for {@link identity}
276
291
  * @category Aliases
@@ -282,14 +297,34 @@ var mat2;
282
297
  */
283
298
  mat2.sub = subtract;
284
299
  /**
285
- * Alias for {@link mat2.multiply}
300
+ * Alias for {@link multiply}
286
301
  * @category Aliases
287
302
  */
288
303
  mat2.mul = multiply;
289
304
  /**
290
- * Alias for {@link mat2.determinant}
305
+ * Alias for {@link determinant}
291
306
  * @category Aliases
292
307
  */
293
308
  mat2.det = determinant;
309
+ /**
310
+ * Alias for {@link invert}
311
+ * @category Aliases
312
+ */
313
+ mat2.inv = invert;
314
+ /**
315
+ * Alias for {@link fromRotation}
316
+ * @category Aliases
317
+ */
318
+ mat2.rotation = fromRotation;
319
+ /**
320
+ * Alias for {@link fromScaling}
321
+ * @category Aliases
322
+ */
323
+ mat2.scaling = fromScaling;
324
+ /**
325
+ * Alias for {@link fromSkew}
326
+ * @category Aliases
327
+ */
328
+ mat2.skewing = fromSkew;
294
329
  })(mat2 || (exports.mat2 = mat2 = {}));
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXQyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWtDO0FBY2xDOztHQUVHO0FBQ0gsSUFBaUIsSUFBSSxDQXlScEI7QUF6UkQsV0FBaUIsSUFBSTtJQU9wQjs7O09BR0c7SUFDSCxTQUFnQixFQUFFLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBVztRQUNwRSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUZlLE9BQUUsS0FFakIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFPO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUZlLFVBQUssUUFFcEIsQ0FBQTtJQUVEOzs7Ozs7O09BT0c7SUFDVSxhQUFRLEdBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFekQ7OztPQUdHO0lBQ1UsU0FBSSxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXJEOztPQUVHO0lBQ0gsU0FBZ0IsU0FBUyxDQUFDLENBQU87UUFDaEMsa0JBQWtCO1FBQ2xCLE9BQU87WUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1YsQ0FBQTtJQUNGLENBQUM7SUFOZSxjQUFTLFlBTXhCLENBQUE7SUFFRDs7T0FFRztJQUNILFNBQWdCLE1BQU0sQ0FB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
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXQyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQWtDO0FBZWxDOztHQUVHO0FBQ0gsSUFBaUIsSUFBSSxDQWlVcEI7QUFqVUQsV0FBaUIsSUFBSTtJQU9wQjs7O09BR0c7SUFDSCxTQUFnQixFQUFFLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBVztRQUNwRSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUZlLE9BQUUsS0FFakIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFPO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUZlLFVBQUssUUFFcEIsQ0FBQTtJQUVEOzs7Ozs7O09BT0c7SUFDVSxhQUFRLEdBQVMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFekQ7OztPQUdHO0lBQ1UsU0FBSSxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXJEOztPQUVHO0lBQ0gsU0FBZ0IsU0FBUyxDQUFDLENBQU87UUFDaEMsa0JBQWtCO1FBQ2xCLE9BQU87WUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1YsQ0FBQTtJQUNGLENBQUM7SUFOZSxjQUFTLFlBTXhCLENBQUE7SUFFRDs7T0FFRztJQUNILFNBQWdCLE1BQU0sQ0FB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
@@ -1,15 +1,16 @@
1
+ import { mat2 } from './mat2';
1
2
  import { vec2 } from './vec2';
2
3
  /**
3
4
  * Represents 2D affine transformation (translation, rotation, scaling, skewing), omitting reduction thrid row which is always set to `[0, 0, 1]`. The order of six elements is the same as CSS transform matrix.
4
5
  *
5
6
  * A mat2d contains six elements defined as:
6
- * ```
7
+ * ```ts
7
8
  * [a, b,
8
9
  * c, d,
9
10
  * tx, ty]
10
11
  * ```
11
12
  * This is a short form for the {@link mat3}:
12
- * ```
13
+ * ```ts
13
14
  * [xx, xy, 0,
14
15
  * yx, yy, 0,
15
16
  * tx, ty, 1]
@@ -56,7 +57,7 @@ export declare namespace mat2d {
56
57
  function clone(a: mat2d): Mutable;
57
58
  /**
58
59
  * The identity matrix of mat2d
59
- * ```
60
+ * ```ts
60
61
  * [1, 0,
61
62
  * 0, 1,
62
63
  * 0, 0]
@@ -121,6 +122,11 @@ export declare namespace mat2d {
121
122
  * @category Generators
122
123
  */
123
124
  function fromSkew(rad: vec2, origin?: vec2): mat2d;
125
+ /**
126
+ * Computes a fixed point of the given matrix.
127
+ * @param m The matrix to compute a fixed point of
128
+ * @returns The fixed point of the given matrix, or null if the matrix is not invertible
129
+ */
124
130
  function fixedPoint(m: mat2d): vec2 | null;
125
131
  /**
126
132
  * Returns Frobenius norm of a mat2d
@@ -159,6 +165,21 @@ export declare namespace mat2d {
159
165
  * @param third a pair of third point
160
166
  */
161
167
  function fromPoints(first: [vec2, vec2], second: [vec2, vec2], third?: [vec2, vec2]): mat2d | null;
168
+ /**
169
+ * Creates a matrix from given translation, rotation, and scaling. The order of the transformations is translation, rotation, and scaling, like most of the graphics software.
170
+ * @param t Translation vector
171
+ * @param r Rotation angle in radians
172
+ * @param s Scaling vector
173
+ * @returns The matrix that represents the transformation
174
+ */
175
+ function fromTRS(t: vec2, r: number, s: vec2): mat2d;
176
+ /**
177
+ * Copies a the values from {@link mat2}, assuming the translation component is `[0, 0]`
178
+ * @param m The matrix to convert
179
+ * @returns The newly created matrix
180
+ * @category Generators
181
+ */
182
+ function fromMat2(m: mat2): mat2d;
162
183
  /**
163
184
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
164
185
  */
@@ -173,25 +194,60 @@ export declare namespace mat2d {
173
194
  * @param fractionDigits number of digits to appear after the decimal point
174
195
  */
175
196
  const toString: (m: mat2d, fractionDigits?: number) => string;
197
+ /**
198
+ * Alias for {@link identity}
199
+ * @category Aliases
200
+ */
201
+ const id: mat2d;
176
202
  /**
177
203
  * Alias for {@link identity}
178
204
  * @category Aliases
179
205
  */
180
206
  const ident: mat2d;
181
207
  /**
182
- * Alias for {@link mat2d.subtract}
208
+ * Alias for {@link subtract}
183
209
  * @category Aliases
184
210
  */
185
211
  const sub: typeof subtract;
186
212
  /**
187
- * Alias for {@link mat2d.multiply}
213
+ * Alias for {@link multiply}
188
214
  * @category Aliases
189
215
  */
190
216
  const mul: typeof multiply;
191
217
  /**
192
- * Alias for {@link mat2d.determinant}
218
+ * Alias for {@link determinant}
193
219
  * @category Aliases
194
220
  */
195
221
  const det: typeof determinant;
222
+ /**
223
+ * Alias for {@link invert}
224
+ * @category Aliases
225
+ */
226
+ const inv: typeof invert;
227
+ /**
228
+ * Alias for {@link fromTranslation}
229
+ * @category Aliases
230
+ */
231
+ const translation: typeof fromTranslation;
232
+ /**
233
+ * Alias for {@link fromRotation}
234
+ * @category Aliases
235
+ */
236
+ const rotation: typeof fromRotation;
237
+ /**
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
250
+ */
251
+ const trs: typeof fromTRS;
196
252
  }
197
253
  //# sourceMappingURL=mat2d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../src/mat2d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../src/mat2d.ts"],"names":[],"mappings":"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"}
package/lib/cjs/mat2d.js CHANGED
@@ -52,7 +52,7 @@ var mat2d;
52
52
  mat2d.clone = clone;
53
53
  /**
54
54
  * The identity matrix of mat2d
55
- * ```
55
+ * ```ts
56
56
  * [1, 0,
57
57
  * 0, 1,
58
58
  * 0, 0]
@@ -256,6 +256,11 @@ var mat2d;
256
256
  ];
257
257
  }
258
258
  mat2d.fromSkew = fromSkew;
259
+ /**
260
+ * Computes a fixed point of the given matrix.
261
+ * @param m The matrix to compute a fixed point of
262
+ * @returns The fixed point of the given matrix, or null if the matrix is not invertible
263
+ */
259
264
  function fixedPoint(m) {
260
265
  const [a, b, c, d, tx, ty] = m;
261
266
  // Computes (I - A)
@@ -406,6 +411,27 @@ var mat2d;
406
411
  return multiply(dst, srcInv);
407
412
  }
408
413
  mat2d.fromPoints = fromPoints;
414
+ /**
415
+ * Creates a matrix from given translation, rotation, and scaling. The order of the transformations is translation, rotation, and scaling, like most of the graphics software.
416
+ * @param t Translation vector
417
+ * @param r Rotation angle in radians
418
+ * @param s Scaling vector
419
+ * @returns The matrix that represents the transformation
420
+ */
421
+ function fromTRS(t, r, s) {
422
+ return multiply(fromTranslation(t), fromRotation(r), fromScaling(s));
423
+ }
424
+ mat2d.fromTRS = fromTRS;
425
+ /**
426
+ * Copies a the values from {@link mat2}, assuming the translation component is `[0, 0]`
427
+ * @param m The matrix to convert
428
+ * @returns The newly created matrix
429
+ * @category Generators
430
+ */
431
+ function fromMat2(m) {
432
+ return [...m, 0, 0];
433
+ }
434
+ mat2d.fromMat2 = fromMat2;
409
435
  /**
410
436
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with `===`)
411
437
  */
@@ -444,25 +470,60 @@ var mat2d;
444
470
  * @param fractionDigits number of digits to appear after the decimal point
445
471
  */
446
472
  mat2d.toString = Common.createMatToStringFunction(2, 3);
473
+ /**
474
+ * Alias for {@link identity}
475
+ * @category Aliases
476
+ */
477
+ mat2d.id = mat2d.identity;
447
478
  /**
448
479
  * Alias for {@link identity}
449
480
  * @category Aliases
450
481
  */
451
482
  mat2d.ident = mat2d.identity;
452
483
  /**
453
- * Alias for {@link mat2d.subtract}
484
+ * Alias for {@link subtract}
454
485
  * @category Aliases
455
486
  */
456
487
  mat2d.sub = subtract;
457
488
  /**
458
- * Alias for {@link mat2d.multiply}
489
+ * Alias for {@link multiply}
459
490
  * @category Aliases
460
491
  */
461
492
  mat2d.mul = multiply;
462
493
  /**
463
- * Alias for {@link mat2d.determinant}
494
+ * Alias for {@link determinant}
464
495
  * @category Aliases
465
496
  */
466
497
  mat2d.det = determinant;
498
+ /**
499
+ * Alias for {@link invert}
500
+ * @category Aliases
501
+ */
502
+ mat2d.inv = invert;
503
+ /**
504
+ * Alias for {@link fromTranslation}
505
+ * @category Aliases
506
+ */
507
+ mat2d.translation = fromTranslation;
508
+ /**
509
+ * Alias for {@link fromRotation}
510
+ * @category Aliases
511
+ */
512
+ mat2d.rotation = fromRotation;
513
+ /**
514
+ * Alias for {@link fromScaling}
515
+ * @category Aliases
516
+ */
517
+ mat2d.scaling = fromScaling;
518
+ /**
519
+ * Alias for {@link fromSkew}
520
+ * @category Aliases
521
+ */
522
+ mat2d.skewing = fromSkew;
523
+ /**
524
+ * Alias for {@link fromTRS}
525
+ * @category Aliases
526
+ */
527
+ mat2d.trs = fromTRS;
467
528
  })(mat2d || (exports.mat2d = mat2d = {}));
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBa0M7QUFDbEMsaUNBQTJCO0FBQzNCLGlDQUEyQjtBQTZCM0I7OztHQUdHO0FBQ0gsSUFBaUIsS0FBSyxDQXVmckI7QUF2ZkQsV0FBaUIsS0FBSztJQVlyQjs7O09BR0c7SUFDSCxrQkFBa0I7SUFDbEIsU0FBZ0IsRUFBRSxDQUNqQixDQUFTLEVBQUcsQ0FBUyxFQUNyQixDQUFTLEVBQUcsQ0FBUyxFQUNyQixFQUFVLEVBQUUsRUFBVTtRQUV0QixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBTmUsUUFBRSxLQU1qQixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsS0FBSyxDQUFDLENBQVE7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDZCxDQUFDO0lBRmUsV0FBSyxRQUVwQixDQUFBO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxrQkFBa0I7SUFDTCxjQUFRLEdBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDSixDQUFDLENBQUE7SUFFRjs7O09BR0c7SUFDVSxVQUFJLEdBQVUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUU1RDs7T0FFRztJQUNILFNBQWdCLE1BQU0sQ0FBQyxDQUFRO1FBQzlCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUs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
529
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBa0M7QUFDbEMsaUNBQTJCO0FBQzNCLGlDQUEyQjtBQTZCM0I7OztHQUdHO0FBQ0gsSUFBaUIsS0FBSyxDQTJqQnJCO0FBM2pCRCxXQUFpQixLQUFLO0lBWXJCOzs7T0FHRztJQUNILGtCQUFrQjtJQUNsQixTQUFnQixFQUFFLENBQ2pCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLENBQVMsRUFBRyxDQUFTLEVBQ3JCLEVBQVUsRUFBRSxFQUFVO1FBRXRCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFOZSxRQUFFLEtBTWpCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFGZSxXQUFLLFFBRXBCLENBQUE7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILGtCQUFrQjtJQUNMLGNBQVEsR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVDLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztLQUNKLENBQUMsQ0FBQTtJQUVGOzs7T0FHRztJQUNVLFVBQUksR0FBVSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRTVEOztPQUVHO0lBQ0gsU0FBZ0IsTUFBTSxDQUFDLENBQVE7UUFDOUIsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFB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