@math.gl/core 3.6.3 → 4.0.0-alpha.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.
Files changed (210) hide show
  1. package/dist/classes/base/math-array.d.ts +5 -4
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/{esm/classes → classes}/base/math-array.js +8 -3
  4. package/dist/classes/base/math-array.js.map +1 -0
  5. package/dist/classes/base/matrix.d.ts +2 -2
  6. package/dist/classes/base/matrix.d.ts.map +1 -1
  7. package/dist/{esm/classes → classes}/base/matrix.js +4 -4
  8. package/dist/classes/base/matrix.js.map +1 -0
  9. package/dist/classes/base/vector.d.ts +2 -2
  10. package/dist/classes/base/vector.d.ts.map +1 -1
  11. package/dist/{esm/classes → classes}/base/vector.js +4 -4
  12. package/dist/classes/base/vector.js.map +1 -0
  13. package/dist/classes/euler.d.ts +4 -4
  14. package/dist/classes/euler.d.ts.map +1 -1
  15. package/dist/{esm/classes → classes}/euler.js +6 -6
  16. package/dist/classes/euler.js.map +1 -0
  17. package/dist/classes/matrix3.d.ts +5 -2
  18. package/dist/classes/matrix3.d.ts.map +1 -1
  19. package/dist/{esm/classes → classes}/matrix3.js +20 -20
  20. package/dist/classes/matrix3.js.map +1 -0
  21. package/dist/classes/matrix4.d.ts +2 -2
  22. package/dist/classes/matrix4.d.ts.map +1 -1
  23. package/dist/{esm/classes → classes}/matrix4.js +27 -27
  24. package/dist/classes/matrix4.js.map +1 -0
  25. package/dist/classes/pose.d.ts +4 -4
  26. package/dist/classes/pose.d.ts.map +1 -1
  27. package/dist/{esm/classes → classes}/pose.js +4 -4
  28. package/dist/classes/pose.js.map +1 -0
  29. package/dist/classes/quaternion.d.ts +2 -2
  30. package/dist/classes/quaternion.d.ts.map +1 -1
  31. package/dist/{esm/classes → classes}/quaternion.js +26 -26
  32. package/dist/classes/quaternion.js.map +1 -0
  33. package/dist/classes/spherical-coordinates.d.ts +2 -2
  34. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  35. package/dist/{esm/classes → classes}/spherical-coordinates.js +5 -5
  36. package/dist/classes/spherical-coordinates.js.map +1 -0
  37. package/dist/classes/vector2.d.ts +2 -2
  38. package/dist/classes/vector2.d.ts.map +1 -1
  39. package/dist/{esm/classes → classes}/vector2.js +10 -10
  40. package/dist/classes/vector2.js.map +1 -0
  41. package/dist/classes/vector3.d.ts +2 -2
  42. package/dist/classes/vector3.d.ts.map +1 -1
  43. package/dist/{esm/classes → classes}/vector3.js +14 -14
  44. package/dist/classes/vector3.js.map +1 -0
  45. package/dist/classes/vector4.d.ts +3 -3
  46. package/dist/classes/vector4.d.ts.map +1 -1
  47. package/dist/{esm/classes → classes}/vector4.js +8 -8
  48. package/dist/classes/vector4.js.map +1 -0
  49. package/dist/gl-matrix/common.d.ts +38 -0
  50. package/dist/gl-matrix/common.d.ts.map +1 -0
  51. package/dist/gl-matrix/common.js +19 -0
  52. package/dist/gl-matrix/common.js.map +1 -0
  53. package/dist/gl-matrix/mat3.d.ts +295 -0
  54. package/dist/gl-matrix/mat3.d.ts.map +1 -0
  55. package/dist/gl-matrix/mat3.js +489 -0
  56. package/dist/gl-matrix/mat3.js.map +1 -0
  57. package/dist/gl-matrix/mat4.d.ts +577 -0
  58. package/dist/gl-matrix/mat4.d.ts.map +1 -0
  59. package/dist/gl-matrix/mat4.js +1455 -0
  60. package/dist/gl-matrix/mat4.js.map +1 -0
  61. package/dist/gl-matrix/quat.d.ts +357 -0
  62. package/dist/gl-matrix/quat.d.ts.map +1 -0
  63. package/dist/gl-matrix/quat.js +315 -0
  64. package/dist/gl-matrix/quat.js.map +1 -0
  65. package/dist/gl-matrix/vec2.d.ts +373 -0
  66. package/dist/gl-matrix/vec2.d.ts.map +1 -0
  67. package/dist/gl-matrix/vec2.js +257 -0
  68. package/dist/gl-matrix/vec2.js.map +1 -0
  69. package/dist/gl-matrix/vec3.d.ts +416 -0
  70. package/dist/gl-matrix/vec3.d.ts.map +1 -0
  71. package/dist/gl-matrix/vec3.js +384 -0
  72. package/dist/gl-matrix/vec3.js.map +1 -0
  73. package/dist/gl-matrix/vec4.d.ts +340 -0
  74. package/dist/gl-matrix/vec4.d.ts.map +1 -0
  75. package/dist/gl-matrix/vec4.js +334 -0
  76. package/dist/gl-matrix/vec4.js.map +1 -0
  77. package/dist/gl-matrix/wip/index.d.ts +5 -0
  78. package/dist/gl-matrix/wip/index.d.ts.map +1 -0
  79. package/dist/gl-matrix/wip/index.js +12 -0
  80. package/dist/gl-matrix/wip/index.js.map +1 -0
  81. package/dist/gl-matrix/wip/mat2.d.ts +229 -0
  82. package/dist/gl-matrix/wip/mat2.d.ts.map +1 -0
  83. package/dist/gl-matrix/wip/mat2.js +208 -0
  84. package/dist/gl-matrix/wip/mat2.js.map +1 -0
  85. package/dist/gl-matrix/wip/mat2d.d.ts +244 -0
  86. package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -0
  87. package/dist/gl-matrix/wip/mat2d.js +251 -0
  88. package/dist/gl-matrix/wip/mat2d.js.map +1 -0
  89. package/dist/gl-matrix/wip/quat2.d.ts +352 -0
  90. package/dist/gl-matrix/wip/quat2.d.ts.map +1 -0
  91. package/dist/gl-matrix/wip/quat2.js +482 -0
  92. package/dist/gl-matrix/wip/quat2.js.map +1 -0
  93. package/dist/gl-matrix/wip/types.d.js +2 -0
  94. package/dist/{esm/lib/gl-matrix.d.js.map → gl-matrix/wip/types.d.js.map} +1 -1
  95. package/dist/index.cjs +3788 -0
  96. package/dist/index.d.ts +15 -14
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +17 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/lib/assert.d.ts +1 -1
  101. package/dist/lib/assert.d.ts.map +1 -1
  102. package/dist/lib/assert.js +6 -0
  103. package/dist/lib/assert.js.map +1 -0
  104. package/dist/lib/common.d.ts +10 -5
  105. package/dist/lib/common.d.ts.map +1 -1
  106. package/dist/{esm/lib → lib}/common.js +11 -9
  107. package/dist/lib/common.js.map +1 -0
  108. package/dist/lib/gl-matrix-extras.js.map +1 -0
  109. package/dist/lib/math-utils.d.ts +24 -27
  110. package/dist/lib/math-utils.d.ts.map +1 -1
  111. package/dist/lib/math-utils.js +25 -0
  112. package/dist/lib/math-utils.js.map +1 -0
  113. package/dist/lib/validators.d.ts +1 -1
  114. package/dist/lib/validators.d.ts.map +1 -1
  115. package/dist/{esm/lib → lib}/validators.js +2 -2
  116. package/dist/lib/validators.js.map +1 -0
  117. package/package.json +6 -6
  118. package/src/classes/base/math-array.ts +16 -8
  119. package/src/classes/base/matrix.ts +7 -4
  120. package/src/classes/base/vector.ts +4 -4
  121. package/src/classes/euler.ts +9 -8
  122. package/src/classes/matrix3.ts +37 -24
  123. package/src/classes/matrix4.ts +48 -29
  124. package/src/classes/pose.ts +4 -4
  125. package/src/classes/quaternion.ts +54 -32
  126. package/src/classes/spherical-coordinates.ts +5 -4
  127. package/src/classes/vector2.ts +13 -9
  128. package/src/classes/vector3.ts +26 -12
  129. package/src/classes/vector4.ts +14 -10
  130. package/src/gl-matrix/common.js +58 -0
  131. package/src/gl-matrix/mat3.js +842 -0
  132. package/src/gl-matrix/mat4.js +2169 -0
  133. package/src/gl-matrix/quat.ts +789 -0
  134. package/src/gl-matrix/vec2.js +629 -0
  135. package/src/gl-matrix/vec3.js +827 -0
  136. package/src/gl-matrix/vec4.js +675 -0
  137. package/src/gl-matrix/wip/index.js +15 -0
  138. package/src/gl-matrix/wip/mat2.js +442 -0
  139. package/src/gl-matrix/wip/mat2d.js +505 -0
  140. package/src/gl-matrix/wip/quat2.ts +886 -0
  141. package/src/gl-matrix/wip/types.d.ts +93 -0
  142. package/src/index.ts +16 -14
  143. package/src/lib/assert.ts +1 -1
  144. package/src/lib/common.ts +31 -19
  145. package/src/lib/math-utils.ts +24 -26
  146. package/src/lib/validators.ts +3 -3
  147. package/dist/es5/classes/base/math-array.js +0 -348
  148. package/dist/es5/classes/base/math-array.js.map +0 -1
  149. package/dist/es5/classes/base/matrix.js +0 -108
  150. package/dist/es5/classes/base/matrix.js.map +0 -1
  151. package/dist/es5/classes/base/vector.js +0 -210
  152. package/dist/es5/classes/base/vector.js.map +0 -1
  153. package/dist/es5/classes/euler.js +0 -654
  154. package/dist/es5/classes/euler.js.map +0 -1
  155. package/dist/es5/classes/matrix3.js +0 -284
  156. package/dist/es5/classes/matrix3.js.map +0 -1
  157. package/dist/es5/classes/matrix4.js +0 -574
  158. package/dist/es5/classes/matrix4.js.map +0 -1
  159. package/dist/es5/classes/pose.js +0 -159
  160. package/dist/es5/classes/pose.js.map +0 -1
  161. package/dist/es5/classes/quaternion.js +0 -323
  162. package/dist/es5/classes/quaternion.js.map +0 -1
  163. package/dist/es5/classes/spherical-coordinates.js +0 -208
  164. package/dist/es5/classes/spherical-coordinates.js.map +0 -1
  165. package/dist/es5/classes/vector2.js +0 -156
  166. package/dist/es5/classes/vector2.js.map +0 -1
  167. package/dist/es5/classes/vector3.js +0 -213
  168. package/dist/es5/classes/vector3.js.map +0 -1
  169. package/dist/es5/classes/vector4.js +0 -185
  170. package/dist/es5/classes/vector4.js.map +0 -1
  171. package/dist/es5/docs/README.md +0 -0
  172. package/dist/es5/index.js +0 -236
  173. package/dist/es5/index.js.map +0 -1
  174. package/dist/es5/lib/assert.js +0 -13
  175. package/dist/es5/lib/assert.js.map +0 -1
  176. package/dist/es5/lib/common.js +0 -255
  177. package/dist/es5/lib/common.js.map +0 -1
  178. package/dist/es5/lib/gl-matrix-extras.js +0 -61
  179. package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
  180. package/dist/es5/lib/gl-matrix.d.js +0 -2
  181. package/dist/es5/lib/math-utils.js +0 -34
  182. package/dist/es5/lib/math-utils.js.map +0 -1
  183. package/dist/es5/lib/validators.js +0 -53
  184. package/dist/es5/lib/validators.js.map +0 -1
  185. package/dist/esm/classes/base/math-array.js.map +0 -1
  186. package/dist/esm/classes/base/matrix.js.map +0 -1
  187. package/dist/esm/classes/base/vector.js.map +0 -1
  188. package/dist/esm/classes/euler.js.map +0 -1
  189. package/dist/esm/classes/matrix3.js.map +0 -1
  190. package/dist/esm/classes/matrix4.js.map +0 -1
  191. package/dist/esm/classes/pose.js.map +0 -1
  192. package/dist/esm/classes/quaternion.js.map +0 -1
  193. package/dist/esm/classes/spherical-coordinates.js.map +0 -1
  194. package/dist/esm/classes/vector2.js.map +0 -1
  195. package/dist/esm/classes/vector3.js.map +0 -1
  196. package/dist/esm/classes/vector4.js.map +0 -1
  197. package/dist/esm/docs/README.md +0 -0
  198. package/dist/esm/index.js +0 -16
  199. package/dist/esm/index.js.map +0 -1
  200. package/dist/esm/lib/assert.js +0 -6
  201. package/dist/esm/lib/assert.js.map +0 -1
  202. package/dist/esm/lib/common.js.map +0 -1
  203. package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
  204. package/dist/esm/lib/math-utils.js +0 -27
  205. package/dist/esm/lib/math-utils.js.map +0 -1
  206. package/dist/esm/lib/validators.js.map +0 -1
  207. package/src/docs/README.md +0 -0
  208. /package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
  209. /package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
  210. /package/dist/{es5/lib → lib}/gl-matrix.d.js.map +0 -0
@@ -0,0 +1,244 @@
1
+ /**
2
+ * 2x3 Matrix
3
+ * @module mat2d
4
+ * @description
5
+ * A mat2d contains six elements defined as:
6
+ * <pre>
7
+ * [a, b,
8
+ * c, d,
9
+ * tx, ty]
10
+ * </pre>
11
+ * This is a short form for the 3x3 matrix:
12
+ * <pre>
13
+ * [a, b, 0,
14
+ * c, d, 0,
15
+ * tx, ty, 1]
16
+ * </pre>
17
+ * The last column is ignored so the array is shorter and operations are faster.
18
+ */
19
+ /**
20
+ * Creates a new identity mat2d
21
+ *
22
+ * @returns {mat2d} a new 2x3 matrix
23
+ */
24
+ export function create(): mat2d;
25
+ /**
26
+ * Creates a new mat2d initialized with values from an existing matrix
27
+ *
28
+ * @param {ReadonlyMat2d} a matrix to clone
29
+ * @returns {mat2d} a new 2x3 matrix
30
+ */
31
+ export function clone(a: ReadonlyMat2d): mat2d;
32
+ /**
33
+ * Copy the values from one mat2d to another
34
+ *
35
+ * @param {mat2d} out the receiving matrix
36
+ * @param {ReadonlyMat2d} a the source matrix
37
+ * @returns {mat2d} out
38
+ */
39
+ export function copy(out: mat2d, a: ReadonlyMat2d): mat2d;
40
+ /**
41
+ * Set a mat2d to the identity matrix
42
+ *
43
+ * @param {mat2d} out the receiving matrix
44
+ * @returns {mat2d} out
45
+ */
46
+ export function identity(out: mat2d): mat2d;
47
+ /**
48
+ * Create a new mat2d with the given values
49
+ *
50
+ * @param {Number} a Component A (index 0)
51
+ * @param {Number} b Component B (index 1)
52
+ * @param {Number} c Component C (index 2)
53
+ * @param {Number} d Component D (index 3)
54
+ * @param {Number} tx Component TX (index 4)
55
+ * @param {Number} ty Component TY (index 5)
56
+ * @returns {mat2d} A new mat2d
57
+ */
58
+ export function fromValues(a: number, b: number, c: number, d: number, tx: number, ty: number): mat2d;
59
+ /**
60
+ * Set the components of a mat2d to the given values
61
+ *
62
+ * @param {mat2d} out the receiving matrix
63
+ * @param {Number} a Component A (index 0)
64
+ * @param {Number} b Component B (index 1)
65
+ * @param {Number} c Component C (index 2)
66
+ * @param {Number} d Component D (index 3)
67
+ * @param {Number} tx Component TX (index 4)
68
+ * @param {Number} ty Component TY (index 5)
69
+ * @returns {mat2d} out
70
+ */
71
+ export function set(out: mat2d, a: number, b: number, c: number, d: number, tx: number, ty: number): mat2d;
72
+ /**
73
+ * Inverts a mat2d
74
+ *
75
+ * @param {mat2d} out the receiving matrix
76
+ * @param {ReadonlyMat2d} a the source matrix
77
+ * @returns {mat2d} out
78
+ */
79
+ export function invert(out: mat2d, a: ReadonlyMat2d): mat2d;
80
+ /**
81
+ * Calculates the determinant of a mat2d
82
+ *
83
+ * @param {ReadonlyMat2d} a the source matrix
84
+ * @returns {Number} determinant of a
85
+ */
86
+ export function determinant(a: ReadonlyMat2d): number;
87
+ /**
88
+ * Multiplies two mat2d's
89
+ *
90
+ * @param {mat2d} out the receiving matrix
91
+ * @param {ReadonlyMat2d} a the first operand
92
+ * @param {ReadonlyMat2d} b the second operand
93
+ * @returns {mat2d} out
94
+ */
95
+ export function multiply(out: mat2d, a: ReadonlyMat2d, b: ReadonlyMat2d): mat2d;
96
+ /**
97
+ * Rotates a mat2d by the given angle
98
+ *
99
+ * @param {mat2d} out the receiving matrix
100
+ * @param {ReadonlyMat2d} a the matrix to rotate
101
+ * @param {Number} rad the angle to rotate the matrix by
102
+ * @returns {mat2d} out
103
+ */
104
+ export function rotate(out: mat2d, a: ReadonlyMat2d, rad: number): mat2d;
105
+ /**
106
+ * Scales the mat2d by the dimensions in the given vec2
107
+ *
108
+ * @param {mat2d} out the receiving matrix
109
+ * @param {ReadonlyMat2d} a the matrix to translate
110
+ * @param {ReadonlyVec2} v the vec2 to scale the matrix by
111
+ * @returns {mat2d} out
112
+ **/
113
+ export function scale(out: mat2d, a: ReadonlyMat2d, v: ReadonlyVec2): mat2d;
114
+ /**
115
+ * Translates the mat2d by the dimensions in the given vec2
116
+ *
117
+ * @param {mat2d} out the receiving matrix
118
+ * @param {ReadonlyMat2d} a the matrix to translate
119
+ * @param {ReadonlyVec2} v the vec2 to translate the matrix by
120
+ * @returns {mat2d} out
121
+ **/
122
+ export function translate(out: mat2d, a: ReadonlyMat2d, v: ReadonlyVec2): mat2d;
123
+ /**
124
+ * Creates a matrix from a given angle
125
+ * This is equivalent to (but much faster than):
126
+ *
127
+ * mat2d.identity(dest);
128
+ * mat2d.rotate(dest, dest, rad);
129
+ *
130
+ * @param {mat2d} out mat2d receiving operation result
131
+ * @param {Number} rad the angle to rotate the matrix by
132
+ * @returns {mat2d} out
133
+ */
134
+ export function fromRotation(out: mat2d, rad: number): mat2d;
135
+ /**
136
+ * Creates a matrix from a vector scaling
137
+ * This is equivalent to (but much faster than):
138
+ *
139
+ * mat2d.identity(dest);
140
+ * mat2d.scale(dest, dest, vec);
141
+ *
142
+ * @param {mat2d} out mat2d receiving operation result
143
+ * @param {ReadonlyVec2} v Scaling vector
144
+ * @returns {mat2d} out
145
+ */
146
+ export function fromScaling(out: mat2d, v: ReadonlyVec2): mat2d;
147
+ /**
148
+ * Creates a matrix from a vector translation
149
+ * This is equivalent to (but much faster than):
150
+ *
151
+ * mat2d.identity(dest);
152
+ * mat2d.translate(dest, dest, vec);
153
+ *
154
+ * @param {mat2d} out mat2d receiving operation result
155
+ * @param {ReadonlyVec2} v Translation vector
156
+ * @returns {mat2d} out
157
+ */
158
+ export function fromTranslation(out: mat2d, v: ReadonlyVec2): mat2d;
159
+ /**
160
+ * Returns a string representation of a mat2d
161
+ *
162
+ * @param {ReadonlyMat2d} a matrix to represent as a string
163
+ * @returns {String} string representation of the matrix
164
+ */
165
+ export function str(a: ReadonlyMat2d): string;
166
+ /**
167
+ * Returns Frobenius norm of a mat2d
168
+ *
169
+ * @param {ReadonlyMat2d} a the matrix to calculate Frobenius norm of
170
+ * @returns {Number} Frobenius norm
171
+ */
172
+ export function frob(a: ReadonlyMat2d): number;
173
+ /**
174
+ * Adds two mat2d's
175
+ *
176
+ * @param {mat2d} out the receiving matrix
177
+ * @param {ReadonlyMat2d} a the first operand
178
+ * @param {ReadonlyMat2d} b the second operand
179
+ * @returns {mat2d} out
180
+ */
181
+ export function add(out: mat2d, a: ReadonlyMat2d, b: ReadonlyMat2d): mat2d;
182
+ /**
183
+ * Subtracts matrix b from matrix a
184
+ *
185
+ * @param {mat2d} out the receiving matrix
186
+ * @param {ReadonlyMat2d} a the first operand
187
+ * @param {ReadonlyMat2d} b the second operand
188
+ * @returns {mat2d} out
189
+ */
190
+ export function subtract(out: mat2d, a: ReadonlyMat2d, b: ReadonlyMat2d): mat2d;
191
+ /**
192
+ * Multiply each element of the matrix by a scalar.
193
+ *
194
+ * @param {mat2d} out the receiving matrix
195
+ * @param {ReadonlyMat2d} a the matrix to scale
196
+ * @param {Number} b amount to scale the matrix's elements by
197
+ * @returns {mat2d} out
198
+ */
199
+ export function multiplyScalar(out: mat2d, a: ReadonlyMat2d, b: number): mat2d;
200
+ /**
201
+ * Adds two mat2d's after multiplying each element of the second operand by a scalar value.
202
+ *
203
+ * @param {mat2d} out the receiving vector
204
+ * @param {ReadonlyMat2d} a the first operand
205
+ * @param {ReadonlyMat2d} b the second operand
206
+ * @param {Number} scale the amount to scale b's elements by before adding
207
+ * @returns {mat2d} out
208
+ */
209
+ export function multiplyScalarAndAdd(out: mat2d, a: ReadonlyMat2d, b: ReadonlyMat2d, scale: number): mat2d;
210
+ /**
211
+ * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
212
+ *
213
+ * @param {ReadonlyMat2d} a The first matrix.
214
+ * @param {ReadonlyMat2d} b The second matrix.
215
+ * @returns {Boolean} True if the matrices are equal, false otherwise.
216
+ */
217
+ export function exactEquals(a: ReadonlyMat2d, b: ReadonlyMat2d): boolean;
218
+ /**
219
+ * Returns whether or not the matrices have approximately the same elements in the same position.
220
+ *
221
+ * @param {ReadonlyMat2d} a The first matrix.
222
+ * @param {ReadonlyMat2d} b The second matrix.
223
+ * @returns {Boolean} True if the matrices are equal, false otherwise.
224
+ */
225
+ export function equals(a: ReadonlyMat2d, b: ReadonlyMat2d): boolean;
226
+ /**
227
+ * Multiplies two mat2d's
228
+ *
229
+ * @param {mat2d} out the receiving matrix
230
+ * @param {ReadonlyMat2d} a the first operand
231
+ * @param {ReadonlyMat2d} b the second operand
232
+ * @returns {mat2d} out
233
+ */
234
+ export function mul(out: mat2d, a: ReadonlyMat2d, b: ReadonlyMat2d): mat2d;
235
+ /**
236
+ * Subtracts matrix b from matrix a
237
+ *
238
+ * @param {mat2d} out the receiving matrix
239
+ * @param {ReadonlyMat2d} a the first operand
240
+ * @param {ReadonlyMat2d} b the second operand
241
+ * @returns {mat2d} out
242
+ */
243
+ export function sub(out: mat2d, a: ReadonlyMat2d, b: ReadonlyMat2d): mat2d;
244
+ //# sourceMappingURL=mat2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mat2d.d.ts","sourceRoot":"","sources":["../../../src/gl-matrix/wip/mat2d.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;GAIG;AACH,0BAFa,KAAK,CAajB;AAED;;;;;GAKG;AACH,yBAHW,aAAa,GACX,KAAK,CAWjB;AAED;;;;;;GAMG;AACH,0BAJW,KAAK,KACL,aAAa,GACX,KAAK,CAUjB;AAED;;;;;GAKG;AACH,8BAHW,KAAK,GACH,KAAK,CAUjB;AAED;;;;;;;;;;GAUG;AACH,gGAFa,KAAK,CAWjB;AAED;;;;;;;;;;;GAWG;AACH,yBATW,KAAK,uEAOH,KAAK,CAUjB;AAED;;;;;;GAMG;AACH,4BAJW,KAAK,KACL,aAAa,GACX,KAAK,CAuBjB;AAED;;;;;GAKG;AACH,+BAHW,aAAa,UAKvB;AAED;;;;;;;GAOG;AACH,8BALW,KAAK,KACL,aAAa,KACb,aAAa,GACX,KAAK,CAsBjB;AAED;;;;;;;GAOG;AACH,4BALW,KAAK,KACL,aAAa,gBAEX,KAAK,CAkBjB;AAED;;;;;;;IAOI;AACJ,2BALW,KAAK,KACL,aAAa,KACb,YAAY,GACV,KAAK,CAkBjB;AAED;;;;;;;IAOI;AACJ,+BALW,KAAK,KACL,aAAa,KACb,YAAY,GACV,KAAK,CAkBjB;AAED;;;;;;;;;;GAUG;AACH,kCAJW,KAAK,gBAEH,KAAK,CAYjB;AAED;;;;;;;;;;GAUG;AACH,iCAJW,KAAK,KACL,YAAY,GACV,KAAK,CAUjB;AAED;;;;;;;;;;GAUG;AACH,qCAJW,KAAK,KACL,YAAY,GACV,KAAK,CAUjB;AAED;;;;;GAKG;AACH,uBAHW,aAAa,UAOvB;AAED;;;;;GAKG;AACH,wBAHW,aAAa,UAOvB;AAED;;;;;;;GAOG;AACH,yBALW,KAAK,KACL,aAAa,KACb,aAAa,GACX,KAAK,CAUjB;AAED;;;;;;;GAOG;AACH,8BALW,KAAK,KACL,aAAa,KACb,aAAa,GACX,KAAK,CAUjB;AAED;;;;;;;GAOG;AACH,oCALW,KAAK,KACL,aAAa,cAEX,KAAK,CAUjB;AAED;;;;;;;;GAQG;AACH,0CANW,KAAK,KACL,aAAa,KACb,aAAa,kBAEX,KAAK,CAUjB;AAED;;;;;;GAMG;AACH,+BAJW,aAAa,KACb,aAAa,WAYvB;AAED;;;;;;GAMG;AACH,0BAJW,aAAa,KACb,aAAa,WAwBvB;AA5TD;;;;;;;GAOG;AACH,yBALW,KAAK,KACL,aAAa,KACb,aAAa,GACX,KAAK,CAsBjB;AA2LD;;;;;;;GAOG;AACH,yBALW,KAAK,KACL,aAAa,KACb,aAAa,GACX,KAAK,CAUjB"}
@@ -0,0 +1,251 @@
1
+ import * as glMatrix from './common.js';
2
+ export function create() {
3
+ let out = new glMatrix.ARRAY_TYPE(6);
4
+
5
+ if (glMatrix.ARRAY_TYPE != Float32Array) {
6
+ out[1] = 0;
7
+ out[2] = 0;
8
+ out[4] = 0;
9
+ out[5] = 0;
10
+ }
11
+
12
+ out[0] = 1;
13
+ out[3] = 1;
14
+ return out;
15
+ }
16
+ export function clone(a) {
17
+ let out = new glMatrix.ARRAY_TYPE(6);
18
+ out[0] = a[0];
19
+ out[1] = a[1];
20
+ out[2] = a[2];
21
+ out[3] = a[3];
22
+ out[4] = a[4];
23
+ out[5] = a[5];
24
+ return out;
25
+ }
26
+ export function copy(out, a) {
27
+ out[0] = a[0];
28
+ out[1] = a[1];
29
+ out[2] = a[2];
30
+ out[3] = a[3];
31
+ out[4] = a[4];
32
+ out[5] = a[5];
33
+ return out;
34
+ }
35
+ export function identity(out) {
36
+ out[0] = 1;
37
+ out[1] = 0;
38
+ out[2] = 0;
39
+ out[3] = 1;
40
+ out[4] = 0;
41
+ out[5] = 0;
42
+ return out;
43
+ }
44
+ export function fromValues(a, b, c, d, tx, ty) {
45
+ let out = new glMatrix.ARRAY_TYPE(6);
46
+ out[0] = a;
47
+ out[1] = b;
48
+ out[2] = c;
49
+ out[3] = d;
50
+ out[4] = tx;
51
+ out[5] = ty;
52
+ return out;
53
+ }
54
+ export function set(out, a, b, c, d, tx, ty) {
55
+ out[0] = a;
56
+ out[1] = b;
57
+ out[2] = c;
58
+ out[3] = d;
59
+ out[4] = tx;
60
+ out[5] = ty;
61
+ return out;
62
+ }
63
+ export function invert(out, a) {
64
+ let aa = a[0],
65
+ ab = a[1],
66
+ ac = a[2],
67
+ ad = a[3];
68
+ let atx = a[4],
69
+ aty = a[5];
70
+ let det = aa * ad - ab * ac;
71
+
72
+ if (!det) {
73
+ return null;
74
+ }
75
+
76
+ det = 1.0 / det;
77
+ out[0] = ad * det;
78
+ out[1] = -ab * det;
79
+ out[2] = -ac * det;
80
+ out[3] = aa * det;
81
+ out[4] = (ac * aty - ad * atx) * det;
82
+ out[5] = (ab * atx - aa * aty) * det;
83
+ return out;
84
+ }
85
+ export function determinant(a) {
86
+ return a[0] * a[3] - a[1] * a[2];
87
+ }
88
+ export function multiply(out, a, b) {
89
+ let a0 = a[0],
90
+ a1 = a[1],
91
+ a2 = a[2],
92
+ a3 = a[3],
93
+ a4 = a[4],
94
+ a5 = a[5];
95
+ let b0 = b[0],
96
+ b1 = b[1],
97
+ b2 = b[2],
98
+ b3 = b[3],
99
+ b4 = b[4],
100
+ b5 = b[5];
101
+ out[0] = a0 * b0 + a2 * b1;
102
+ out[1] = a1 * b0 + a3 * b1;
103
+ out[2] = a0 * b2 + a2 * b3;
104
+ out[3] = a1 * b2 + a3 * b3;
105
+ out[4] = a0 * b4 + a2 * b5 + a4;
106
+ out[5] = a1 * b4 + a3 * b5 + a5;
107
+ return out;
108
+ }
109
+ export function rotate(out, a, rad) {
110
+ let a0 = a[0],
111
+ a1 = a[1],
112
+ a2 = a[2],
113
+ a3 = a[3],
114
+ a4 = a[4],
115
+ a5 = a[5];
116
+ let s = Math.sin(rad);
117
+ let c = Math.cos(rad);
118
+ out[0] = a0 * c + a2 * s;
119
+ out[1] = a1 * c + a3 * s;
120
+ out[2] = a0 * -s + a2 * c;
121
+ out[3] = a1 * -s + a3 * c;
122
+ out[4] = a4;
123
+ out[5] = a5;
124
+ return out;
125
+ }
126
+ export function scale(out, a, v) {
127
+ let a0 = a[0],
128
+ a1 = a[1],
129
+ a2 = a[2],
130
+ a3 = a[3],
131
+ a4 = a[4],
132
+ a5 = a[5];
133
+ let v0 = v[0],
134
+ v1 = v[1];
135
+ out[0] = a0 * v0;
136
+ out[1] = a1 * v0;
137
+ out[2] = a2 * v1;
138
+ out[3] = a3 * v1;
139
+ out[4] = a4;
140
+ out[5] = a5;
141
+ return out;
142
+ }
143
+ export function translate(out, a, v) {
144
+ let a0 = a[0],
145
+ a1 = a[1],
146
+ a2 = a[2],
147
+ a3 = a[3],
148
+ a4 = a[4],
149
+ a5 = a[5];
150
+ let v0 = v[0],
151
+ v1 = v[1];
152
+ out[0] = a0;
153
+ out[1] = a1;
154
+ out[2] = a2;
155
+ out[3] = a3;
156
+ out[4] = a0 * v0 + a2 * v1 + a4;
157
+ out[5] = a1 * v0 + a3 * v1 + a5;
158
+ return out;
159
+ }
160
+ export function fromRotation(out, rad) {
161
+ let s = Math.sin(rad),
162
+ c = Math.cos(rad);
163
+ out[0] = c;
164
+ out[1] = s;
165
+ out[2] = -s;
166
+ out[3] = c;
167
+ out[4] = 0;
168
+ out[5] = 0;
169
+ return out;
170
+ }
171
+ export function fromScaling(out, v) {
172
+ out[0] = v[0];
173
+ out[1] = 0;
174
+ out[2] = 0;
175
+ out[3] = v[1];
176
+ out[4] = 0;
177
+ out[5] = 0;
178
+ return out;
179
+ }
180
+ export function fromTranslation(out, v) {
181
+ out[0] = 1;
182
+ out[1] = 0;
183
+ out[2] = 0;
184
+ out[3] = 1;
185
+ out[4] = v[0];
186
+ out[5] = v[1];
187
+ return out;
188
+ }
189
+ export function str(a) {
190
+ return 'mat2d(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' + a[4] + ', ' + a[5] + ')';
191
+ }
192
+ export function frob(a) {
193
+ return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3] + a[4] * a[4] + a[5] * a[5] + 1);
194
+ }
195
+ export function add(out, a, b) {
196
+ out[0] = a[0] + b[0];
197
+ out[1] = a[1] + b[1];
198
+ out[2] = a[2] + b[2];
199
+ out[3] = a[3] + b[3];
200
+ out[4] = a[4] + b[4];
201
+ out[5] = a[5] + b[5];
202
+ return out;
203
+ }
204
+ export function subtract(out, a, b) {
205
+ out[0] = a[0] - b[0];
206
+ out[1] = a[1] - b[1];
207
+ out[2] = a[2] - b[2];
208
+ out[3] = a[3] - b[3];
209
+ out[4] = a[4] - b[4];
210
+ out[5] = a[5] - b[5];
211
+ return out;
212
+ }
213
+ export function multiplyScalar(out, a, b) {
214
+ out[0] = a[0] * b;
215
+ out[1] = a[1] * b;
216
+ out[2] = a[2] * b;
217
+ out[3] = a[3] * b;
218
+ out[4] = a[4] * b;
219
+ out[5] = a[5] * b;
220
+ return out;
221
+ }
222
+ export function multiplyScalarAndAdd(out, a, b, scale) {
223
+ out[0] = a[0] + b[0] * scale;
224
+ out[1] = a[1] + b[1] * scale;
225
+ out[2] = a[2] + b[2] * scale;
226
+ out[3] = a[3] + b[3] * scale;
227
+ out[4] = a[4] + b[4] * scale;
228
+ out[5] = a[5] + b[5] * scale;
229
+ return out;
230
+ }
231
+ export function exactEquals(a, b) {
232
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5];
233
+ }
234
+ export function equals(a, b) {
235
+ let a0 = a[0],
236
+ a1 = a[1],
237
+ a2 = a[2],
238
+ a3 = a[3],
239
+ a4 = a[4],
240
+ a5 = a[5];
241
+ let b0 = b[0],
242
+ b1 = b[1],
243
+ b2 = b[2],
244
+ b3 = b[3],
245
+ b4 = b[4],
246
+ b5 = b[5];
247
+ return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5));
248
+ }
249
+ export const mul = multiply;
250
+ export const sub = subtract;
251
+ //# sourceMappingURL=mat2d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/gl-matrix/wip/mat2d.js"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","clone","a","copy","identity","fromValues","b","c","d","tx","ty","set","invert","aa","ab","ac","ad","atx","aty","det","determinant","multiply","a0","a1","a2","a3","a4","a5","b0","b1","b2","b3","b4","b5","rotate","rad","s","Math","sin","cos","scale","v","v0","v1","translate","fromRotation","fromScaling","fromTranslation","str","frob","sqrt","add","subtract","multiplyScalar","multiplyScalarAndAdd","exactEquals","equals","abs","EPSILON","max","mul","sub"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport * as glMatrix from './common.js';\n\n/**\n * 2x3 Matrix\n * @module mat2d\n * @description\n * A mat2d contains six elements defined as:\n * <pre>\n * [a, b,\n * c, d,\n * tx, ty]\n * </pre>\n * This is a short form for the 3x3 matrix:\n * <pre>\n * [a, b, 0,\n * c, d, 0,\n * tx, ty, 1]\n * </pre>\n * The last column is ignored so the array is shorter and operations are faster.\n */\n\n/**\n * Creates a new identity mat2d\n *\n * @returns {mat2d} a new 2x3 matrix\n */\nexport function create() {\n let out = new glMatrix.ARRAY_TYPE(6);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[4] = 0;\n out[5] = 0;\n }\n out[0] = 1;\n out[3] = 1;\n return out;\n}\n\n/**\n * Creates a new mat2d initialized with values from an existing matrix\n *\n * @param {ReadonlyMat2d} a matrix to clone\n * @returns {mat2d} a new 2x3 matrix\n */\nexport function clone(a) {\n let out = new glMatrix.ARRAY_TYPE(6);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n return out;\n}\n\n/**\n * Copy the values from one mat2d to another\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the source matrix\n * @returns {mat2d} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n return out;\n}\n\n/**\n * Set a mat2d to the identity matrix\n *\n * @param {mat2d} out the receiving matrix\n * @returns {mat2d} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n\n/**\n * Create a new mat2d with the given values\n *\n * @param {Number} a Component A (index 0)\n * @param {Number} b Component B (index 1)\n * @param {Number} c Component C (index 2)\n * @param {Number} d Component D (index 3)\n * @param {Number} tx Component TX (index 4)\n * @param {Number} ty Component TY (index 5)\n * @returns {mat2d} A new mat2d\n */\nexport function fromValues(a, b, c, d, tx, ty) {\n let out = new glMatrix.ARRAY_TYPE(6);\n out[0] = a;\n out[1] = b;\n out[2] = c;\n out[3] = d;\n out[4] = tx;\n out[5] = ty;\n return out;\n}\n\n/**\n * Set the components of a mat2d to the given values\n *\n * @param {mat2d} out the receiving matrix\n * @param {Number} a Component A (index 0)\n * @param {Number} b Component B (index 1)\n * @param {Number} c Component C (index 2)\n * @param {Number} d Component D (index 3)\n * @param {Number} tx Component TX (index 4)\n * @param {Number} ty Component TY (index 5)\n * @returns {mat2d} out\n */\nexport function set(out, a, b, c, d, tx, ty) {\n out[0] = a;\n out[1] = b;\n out[2] = c;\n out[3] = d;\n out[4] = tx;\n out[5] = ty;\n return out;\n}\n\n/**\n * Inverts a mat2d\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the source matrix\n * @returns {mat2d} out\n */\nexport function invert(out, a) {\n let aa = a[0],\n ab = a[1],\n ac = a[2],\n ad = a[3];\n let atx = a[4],\n aty = a[5];\n\n let det = aa * ad - ab * ac;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\n\n/**\n * Calculates the determinant of a mat2d\n *\n * @param {ReadonlyMat2d} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n return a[0] * a[3] - a[1] * a[2];\n}\n\n/**\n * Multiplies two mat2d's\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the first operand\n * @param {ReadonlyMat2d} b the second operand\n * @returns {mat2d} out\n */\nexport function multiply(out, a, b) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n let b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5];\n out[0] = a0 * b0 + a2 * b1;\n out[1] = a1 * b0 + a3 * b1;\n out[2] = a0 * b2 + a2 * b3;\n out[3] = a1 * b2 + a3 * b3;\n out[4] = a0 * b4 + a2 * b5 + a4;\n out[5] = a1 * b4 + a3 * b5 + a5;\n return out;\n}\n\n/**\n * Rotates a mat2d by the given angle\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat2d} out\n */\nexport function rotate(out, a, rad) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n let s = Math.sin(rad);\n let c = Math.cos(rad);\n out[0] = a0 * c + a2 * s;\n out[1] = a1 * c + a3 * s;\n out[2] = a0 * -s + a2 * c;\n out[3] = a1 * -s + a3 * c;\n out[4] = a4;\n out[5] = a5;\n return out;\n}\n\n/**\n * Scales the mat2d by the dimensions in the given vec2\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to translate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat2d} out\n **/\nexport function scale(out, a, v) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n let v0 = v[0],\n v1 = v[1];\n out[0] = a0 * v0;\n out[1] = a1 * v0;\n out[2] = a2 * v1;\n out[3] = a3 * v1;\n out[4] = a4;\n out[5] = a5;\n return out;\n}\n\n/**\n * Translates the mat2d by the dimensions in the given vec2\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to translate\n * @param {ReadonlyVec2} v the vec2 to translate the matrix by\n * @returns {mat2d} out\n **/\nexport function translate(out, a, v) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n let v0 = v[0],\n v1 = v[1];\n out[0] = a0;\n out[1] = a1;\n out[2] = a2;\n out[3] = a3;\n out[4] = a0 * v0 + a2 * v1 + a4;\n out[5] = a1 * v0 + a3 * v1 + a5;\n return out;\n}\n\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat2d.identity(dest);\n * mat2d.rotate(dest, dest, rad);\n *\n * @param {mat2d} out mat2d receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat2d} out\n */\nexport function fromRotation(out, rad) {\n let s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = -s;\n out[3] = c;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat2d.identity(dest);\n * mat2d.scale(dest, dest, vec);\n *\n * @param {mat2d} out mat2d receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat2d} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = v[1];\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat2d.identity(dest);\n * mat2d.translate(dest, dest, vec);\n *\n * @param {mat2d} out mat2d receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat2d} out\n */\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = v[0];\n out[5] = v[1];\n return out;\n}\n\n/**\n * Returns a string representation of a mat2d\n *\n * @param {ReadonlyMat2d} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return (\n 'mat2d(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ', ' + a[4] + ', ' + a[5] + ')'\n );\n}\n\n/**\n * Returns Frobenius norm of a mat2d\n *\n * @param {ReadonlyMat2d} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n return Math.sqrt(\n a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3] + a[4] * a[4] + a[5] * a[5] + 1\n );\n}\n\n/**\n * Adds two mat2d's\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the first operand\n * @param {ReadonlyMat2d} b the second operand\n * @returns {mat2d} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the first operand\n * @param {ReadonlyMat2d} b the second operand\n * @returns {mat2d} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat2d} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat2d} out\n */\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n return out;\n}\n\n/**\n * Adds two mat2d's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat2d} out the receiving vector\n * @param {ReadonlyMat2d} a the first operand\n * @param {ReadonlyMat2d} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat2d} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n return out;\n}\n\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat2d} a The first matrix.\n * @param {ReadonlyMat2d} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return (\n a[0] === b[0] &&\n a[1] === b[1] &&\n a[2] === b[2] &&\n a[3] === b[3] &&\n a[4] === b[4] &&\n a[5] === b[5]\n );\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat2d} a The first matrix.\n * @param {ReadonlyMat2d} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n let b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5];\n return (\n Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\n Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&\n Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&\n Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5))\n );\n}\n\n/**\n * Alias for {@link mat2d.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link mat2d.subtract}\n * @function\n */\nexport const sub = subtract;\n"],"file":"mat2d.js"}