@math.gl/core 4.0.0-alpha.4 → 4.0.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.
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @returns {mat3} a new 3x3 matrix
9
9
  */
10
- export function create(): mat3;
10
+ export declare function create(): any[] | Float32Array;
11
11
  /**
12
12
  * Copies the upper-left 3x3 values into the given mat3.
13
13
  *
@@ -15,14 +15,14 @@ export function create(): mat3;
15
15
  * @param {ReadonlyMat4} a the source 4x4 matrix
16
16
  * @returns {mat3} out
17
17
  */
18
- export function fromMat4(out: mat3, a: ReadonlyMat4): mat3;
18
+ export declare function fromMat4(out: any, a: any): any;
19
19
  /**
20
20
  * Creates a new mat3 initialized with values from an existing matrix
21
21
  *
22
22
  * @param {ReadonlyMat3} a matrix to clone
23
23
  * @returns {mat3} a new 3x3 matrix
24
24
  */
25
- export function clone(a: ReadonlyMat3): mat3;
25
+ export declare function clone(a: any): any[] | Float32Array;
26
26
  /**
27
27
  * Copy the values from one mat3 to another
28
28
  *
@@ -30,7 +30,7 @@ export function clone(a: ReadonlyMat3): mat3;
30
30
  * @param {ReadonlyMat3} a the source matrix
31
31
  * @returns {mat3} out
32
32
  */
33
- export function copy(out: mat3, a: ReadonlyMat3): mat3;
33
+ export declare function copy(out: any, a: any): any;
34
34
  /**
35
35
  * Create a new mat3 with the given values
36
36
  *
@@ -45,7 +45,7 @@ export function copy(out: mat3, a: ReadonlyMat3): mat3;
45
45
  * @param {Number} m22 Component in column 2, row 2 position (index 8)
46
46
  * @returns {mat3} A new mat3
47
47
  */
48
- export function fromValues(m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): mat3;
48
+ export declare function fromValues(m00: any, m01: any, m02: any, m10: any, m11: any, m12: any, m20: any, m21: any, m22: any): any[] | Float32Array;
49
49
  /**
50
50
  * Set the components of a mat3 to the given values
51
51
  *
@@ -61,14 +61,14 @@ export function fromValues(m00: number, m01: number, m02: number, m10: number, m
61
61
  * @param {Number} m22 Component in column 2, row 2 position (index 8)
62
62
  * @returns {mat3} out
63
63
  */
64
- export function set(out: mat3, m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): mat3;
64
+ export declare function set(out: any, m00: any, m01: any, m02: any, m10: any, m11: any, m12: any, m20: any, m21: any, m22: any): any;
65
65
  /**
66
66
  * Set a mat3 to the identity matrix
67
67
  *
68
68
  * @param {mat3} out the receiving matrix
69
69
  * @returns {mat3} out
70
70
  */
71
- export function identity(out: mat3): mat3;
71
+ export declare function identity(out: any): any;
72
72
  /**
73
73
  * Transpose the values of a mat3
74
74
  *
@@ -76,7 +76,7 @@ export function identity(out: mat3): mat3;
76
76
  * @param {ReadonlyMat3} a the source matrix
77
77
  * @returns {mat3} out
78
78
  */
79
- export function transpose(out: mat3, a: ReadonlyMat3): mat3;
79
+ export declare function transpose(out: any, a: any): any;
80
80
  /**
81
81
  * Inverts a mat3
82
82
  *
@@ -84,7 +84,7 @@ export function transpose(out: mat3, a: ReadonlyMat3): mat3;
84
84
  * @param {ReadonlyMat3} a the source matrix
85
85
  * @returns {mat3} out
86
86
  */
87
- export function invert(out: mat3, a: ReadonlyMat3): mat3;
87
+ export declare function invert(out: any, a: any): any;
88
88
  /**
89
89
  * Calculates the adjugate of a mat3
90
90
  *
@@ -92,14 +92,14 @@ export function invert(out: mat3, a: ReadonlyMat3): mat3;
92
92
  * @param {ReadonlyMat3} a the source matrix
93
93
  * @returns {mat3} out
94
94
  */
95
- export function adjoint(out: mat3, a: ReadonlyMat3): mat3;
95
+ export declare function adjoint(out: any, a: any): any;
96
96
  /**
97
97
  * Calculates the determinant of a mat3
98
98
  *
99
99
  * @param {ReadonlyMat3} a the source matrix
100
100
  * @returns {Number} determinant of a
101
101
  */
102
- export function determinant(a: ReadonlyMat3): number;
102
+ export declare function determinant(a: any): number;
103
103
  /**
104
104
  * Multiplies two mat3's
105
105
  *
@@ -108,7 +108,7 @@ export function determinant(a: ReadonlyMat3): number;
108
108
  * @param {ReadonlyMat3} b the second operand
109
109
  * @returns {mat3} out
110
110
  */
111
- export function multiply(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
111
+ export declare function multiply(out: any, a: any, b: any): any;
112
112
  /**
113
113
  * Translate a mat3 by the given vector
114
114
  *
@@ -117,7 +117,7 @@ export function multiply(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
117
117
  * @param {ReadonlyVec2} v vector to translate by
118
118
  * @returns {mat3} out
119
119
  */
120
- export function translate(out: mat3, a: ReadonlyMat3, v: ReadonlyVec2): mat3;
120
+ export declare function translate(out: any, a: any, v: any): any;
121
121
  /**
122
122
  * Rotates a mat3 by the given angle
123
123
  *
@@ -126,7 +126,7 @@ export function translate(out: mat3, a: ReadonlyMat3, v: ReadonlyVec2): mat3;
126
126
  * @param {Number} rad the angle to rotate the matrix by
127
127
  * @returns {mat3} out
128
128
  */
129
- export function rotate(out: mat3, a: ReadonlyMat3, rad: number): mat3;
129
+ export declare function rotate(out: any, a: any, rad: any): any;
130
130
  /**
131
131
  * Scales the mat3 by the dimensions in the given vec2
132
132
  *
@@ -135,7 +135,7 @@ export function rotate(out: mat3, a: ReadonlyMat3, rad: number): mat3;
135
135
  * @param {ReadonlyVec2} v the vec2 to scale the matrix by
136
136
  * @returns {mat3} out
137
137
  **/
138
- export function scale(out: mat3, a: ReadonlyMat3, v: ReadonlyVec2): mat3;
138
+ export declare function scale(out: any, a: any, v: any): any;
139
139
  /**
140
140
  * Creates a matrix from a vector translation
141
141
  * This is equivalent to (but much faster than):
@@ -147,7 +147,7 @@ export function scale(out: mat3, a: ReadonlyMat3, v: ReadonlyVec2): mat3;
147
147
  * @param {ReadonlyVec2} v Translation vector
148
148
  * @returns {mat3} out
149
149
  */
150
- export function fromTranslation(out: mat3, v: ReadonlyVec2): mat3;
150
+ export declare function fromTranslation(out: any, v: any): any;
151
151
  /**
152
152
  * Creates a matrix from a given angle
153
153
  * This is equivalent to (but much faster than):
@@ -159,7 +159,7 @@ export function fromTranslation(out: mat3, v: ReadonlyVec2): mat3;
159
159
  * @param {Number} rad the angle to rotate the matrix by
160
160
  * @returns {mat3} out
161
161
  */
162
- export function fromRotation(out: mat3, rad: number): mat3;
162
+ export declare function fromRotation(out: any, rad: any): any;
163
163
  /**
164
164
  * Creates a matrix from a vector scaling
165
165
  * This is equivalent to (but much faster than):
@@ -171,7 +171,7 @@ export function fromRotation(out: mat3, rad: number): mat3;
171
171
  * @param {ReadonlyVec2} v Scaling vector
172
172
  * @returns {mat3} out
173
173
  */
174
- export function fromScaling(out: mat3, v: ReadonlyVec2): mat3;
174
+ export declare function fromScaling(out: any, v: any): any;
175
175
  /**
176
176
  * Copies the values from a mat2d into a mat3
177
177
  *
@@ -179,7 +179,7 @@ export function fromScaling(out: mat3, v: ReadonlyVec2): mat3;
179
179
  * @param {ReadonlyMat2d} a the matrix to copy
180
180
  * @returns {mat3} out
181
181
  **/
182
- export function fromMat2d(out: mat3, a: ReadonlyMat2d): mat3;
182
+ export declare function fromMat2d(out: any, a: any): any;
183
183
  /**
184
184
  * Calculates a 3x3 matrix from the given quaternion
185
185
  *
@@ -188,7 +188,7 @@ export function fromMat2d(out: mat3, a: ReadonlyMat2d): mat3;
188
188
  *
189
189
  * @returns {mat3} out
190
190
  */
191
- export function fromQuat(out: mat3, q: ReadonlyQuat): mat3;
191
+ export declare function fromQuat(out: any, q: any): any;
192
192
  /**
193
193
  * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix
194
194
  *
@@ -197,7 +197,7 @@ export function fromQuat(out: mat3, q: ReadonlyQuat): mat3;
197
197
  *
198
198
  * @returns {mat3} out
199
199
  */
200
- export function normalFromMat4(out: mat3, a: ReadonlyMat4): mat3;
200
+ export declare function normalFromMat4(out: any, a: any): any;
201
201
  /**
202
202
  * Generates a 2D projection matrix with the given bounds
203
203
  *
@@ -206,21 +206,21 @@ export function normalFromMat4(out: mat3, a: ReadonlyMat4): mat3;
206
206
  * @param {number} height Height of gl context
207
207
  * @returns {mat3} out
208
208
  */
209
- export function projection(out: mat3, width: number, height: number): mat3;
209
+ export declare function projection(out: any, width: any, height: any): any;
210
210
  /**
211
211
  * Returns a string representation of a mat3
212
212
  *
213
213
  * @param {ReadonlyMat3} a matrix to represent as a string
214
214
  * @returns {String} string representation of the matrix
215
215
  */
216
- export function str(a: ReadonlyMat3): string;
216
+ export declare function str(a: any): string;
217
217
  /**
218
218
  * Returns Frobenius norm of a mat3
219
219
  *
220
220
  * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of
221
221
  * @returns {Number} Frobenius norm
222
222
  */
223
- export function frob(a: ReadonlyMat3): number;
223
+ export declare function frob(a: any): number;
224
224
  /**
225
225
  * Adds two mat3's
226
226
  *
@@ -229,7 +229,7 @@ export function frob(a: ReadonlyMat3): number;
229
229
  * @param {ReadonlyMat3} b the second operand
230
230
  * @returns {mat3} out
231
231
  */
232
- export function add(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
232
+ export declare function add(out: any, a: any, b: any): any;
233
233
  /**
234
234
  * Subtracts matrix b from matrix a
235
235
  *
@@ -238,7 +238,7 @@ export function add(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
238
238
  * @param {ReadonlyMat3} b the second operand
239
239
  * @returns {mat3} out
240
240
  */
241
- export function subtract(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
241
+ export declare function subtract(out: any, a: any, b: any): any;
242
242
  /**
243
243
  * Multiply each element of the matrix by a scalar.
244
244
  *
@@ -247,7 +247,7 @@ export function subtract(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
247
247
  * @param {Number} b amount to scale the matrix's elements by
248
248
  * @returns {mat3} out
249
249
  */
250
- export function multiplyScalar(out: mat3, a: ReadonlyMat3, b: number): mat3;
250
+ export declare function multiplyScalar(out: any, a: any, b: any): any;
251
251
  /**
252
252
  * Adds two mat3's after multiplying each element of the second operand by a scalar value.
253
253
  *
@@ -257,7 +257,7 @@ export function multiplyScalar(out: mat3, a: ReadonlyMat3, b: number): mat3;
257
257
  * @param {Number} scale the amount to scale b's elements by before adding
258
258
  * @returns {mat3} out
259
259
  */
260
- export function multiplyScalarAndAdd(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3, scale: number): mat3;
260
+ export declare function multiplyScalarAndAdd(out: any, a: any, b: any, scale: any): any;
261
261
  /**
262
262
  * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
263
263
  *
@@ -265,7 +265,7 @@ export function multiplyScalarAndAdd(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3
265
265
  * @param {ReadonlyMat3} b The second matrix.
266
266
  * @returns {Boolean} True if the matrices are equal, false otherwise.
267
267
  */
268
- export function exactEquals(a: ReadonlyMat3, b: ReadonlyMat3): boolean;
268
+ export declare function exactEquals(a: any, b: any): boolean;
269
269
  /**
270
270
  * Returns whether or not the matrices have approximately the same elements in the same position.
271
271
  *
@@ -273,23 +273,15 @@ export function exactEquals(a: ReadonlyMat3, b: ReadonlyMat3): boolean;
273
273
  * @param {ReadonlyMat3} b The second matrix.
274
274
  * @returns {Boolean} True if the matrices are equal, false otherwise.
275
275
  */
276
- export function equals(a: ReadonlyMat3, b: ReadonlyMat3): boolean;
276
+ export declare function equals(a: any, b: any): boolean;
277
277
  /**
278
- * Multiplies two mat3's
279
- *
280
- * @param {mat3} out the receiving matrix
281
- * @param {ReadonlyMat3} a the first operand
282
- * @param {ReadonlyMat3} b the second operand
283
- * @returns {mat3} out
278
+ * Alias for {@link mat3.multiply}
279
+ * @function
284
280
  */
285
- export function mul(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
281
+ export declare const mul: typeof multiply;
286
282
  /**
287
- * Subtracts matrix b from matrix a
288
- *
289
- * @param {mat3} out the receiving matrix
290
- * @param {ReadonlyMat3} a the first operand
291
- * @param {ReadonlyMat3} b the second operand
292
- * @returns {mat3} out
283
+ * Alias for {@link mat3.subtract}
284
+ * @function
293
285
  */
294
- export function sub(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
286
+ export declare const sub: typeof subtract;
295
287
  //# sourceMappingURL=mat3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../src/gl-matrix/mat3.js"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;GAIG;AACH,0BAFa,IAAI,CAgBhB;AAED;;;;;;GAMG;AACH,8BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAahB;AAED;;;;;GAKG;AACH,yBAHW,YAAY,GACV,IAAI,CAchB;AAED;;;;;;GAMG;AACH,0BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAahB;AAED;;;;;;;;;;;;;GAaG;AACH,iJAFa,IAAI,CAchB;AAED;;;;;;;;;;;;;;GAcG;AACH,yBAZW,IAAI,wHAUF,IAAI,CAahB;AAED;;;;;GAKG;AACH,8BAHW,IAAI,GACF,IAAI,CAahB;AAED;;;;;;GAMG;AACH,+BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CA2BhB;AAED;;;;;;GAMG;AACH,4BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAmChB;AAED;;;;;;GAMG;AACH,6BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAuBhB;AAED;;;;;GAKG;AACH,+BAHW,YAAY,UAiBtB;AAED;;;;;;;GAOG;AACH,8BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAmChB;AAED;;;;;;;GAOG;AACH,+BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CA2BhB;AAED;;;;;;;GAOG;AACH,4BALW,IAAI,KACJ,YAAY,gBAEV,IAAI,CA2BhB;AAED;;;;;;;IAOI;AACJ,2BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAkBhB;AAED;;;;;;;;;;GAUG;AACH,qCAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAahB;AAED;;;;;;;;;;GAUG;AACH,kCAJW,IAAI,gBAEF,IAAI,CAkBhB;AAED;;;;;;;;;;GAUG;AACH,iCAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAehB;AAED;;;;;;IAMI;AACJ,+BAJW,IAAI,KACJ,aAAa,GACX,IAAI,CAehB;AAED;;;;;;;GAOG;AACH,8BALW,IAAI,KACJ,YAAY,GAEV,IAAI,CAkChB;AAED;;;;;;;GAOG;AACH,oCALW,IAAI,KACJ,YAAY,GAEV,IAAI,CAsDhB;AAED;;;;;;;GAOG;AACH,gCALW,IAAI,SACJ,MAAM,UACN,MAAM,GACJ,IAAI,CAahB;AAED;;;;;GAKG;AACH,uBAHW,YAAY,UAKtB;AAED;;;;;GAKG;AACH,wBAHW,YAAY,UAetB;AAED;;;;;;;GAOG;AACH,yBALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAahB;AAED;;;;;;;GAOG;AACH,8BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAahB;AAED;;;;;;;GAOG;AACH,oCALW,IAAI,KACJ,YAAY,cAEV,IAAI,CAahB;AAED;;;;;;;;GAQG;AACH,0CANW,IAAI,KACJ,YAAY,KACZ,YAAY,kBAEV,IAAI,CAahB;AAED;;;;;;GAMG;AACH,+BAJW,YAAY,KACZ,YAAY,WAetB;AAED;;;;;;GAMG;AACH,0BAJW,YAAY,KACZ,YAAY,WAiCtB;AA1hBD;;;;;;;GAOG;AACH,yBALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAmChB;AAuXD;;;;;;;GAOG;AACH,yBALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAahB"}
1
+ {"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../src/gl-matrix/mat3.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/gl-matrix/mat3.js"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","fromMat4","a","clone","copy","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","set","identity","transpose","a01","a02","a12","invert","a00","a10","a11","a20","a21","a22","b01","b11","b21","det","adjoint","determinant","multiply","b","b00","b02","b10","b12","b20","b22","translate","v","x","y","rotate","rad","s","Math","sin","c","cos","scale","fromTranslation","fromRotation","fromScaling","fromMat2d","fromQuat","q","z","w","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","projection","width","height","str","frob","sqrt","add","subtract","multiplyScalar","multiplyScalarAndAdd","exactEquals","equals","a0","a1","a2","a3","a4","a5","a6","a7","a8","b0","b1","b2","b3","b4","b5","b6","b7","b8","abs","EPSILON","max","mul","sub"],"mappings":"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","sourcesContent":["import * as glMatrix from './common.js';\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(9);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(9);\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 out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} 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 out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n const a01 = a[1];\n const a02 = a[2];\n const a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b01 = a22 * a11 - a12 * a21;\n const b11 = -a22 * a10 + a12 * a20;\n const b21 = a21 * a10 - a11 * a20;\n\n // Calculate the determinant\n let det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function adjoint(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n return (\n a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20)\n );\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b00 = b[0];\n const b01 = b[1];\n const b02 = b[2];\n const b10 = b[3];\n const b11 = b[4];\n const b12 = b[5];\n const b20 = b[6];\n const b21 = b[7];\n const b22 = b[8];\n\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const x = v[0];\n const y = v[1];\n\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n const x = v[0];\n const y = v[1];\n\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\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 * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\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 * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function fromRotation(out, rad) {\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\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 * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n const x = q[0];\n const y = q[1];\n const z = q[2];\n const w = q[3];\n const x2 = x + x;\n const y2 = y + y;\n const z2 = z + z;\n\n const xx = x * x2;\n const yx = y * x2;\n const yy = y * y2;\n const zx = z * x2;\n const zy = z * y2;\n const zz = z * z2;\n const wx = w * x2;\n const wy = w * y2;\n const wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n\n return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15];\n\n const b00 = a00 * a11 - a01 * a10;\n const b01 = a00 * a12 - a02 * a10;\n const b02 = a00 * a13 - a03 * a10;\n const b03 = a01 * a12 - a02 * a11;\n const b04 = a01 * a13 - a03 * a11;\n const b05 = a02 * a13 - a03 * a12;\n const b06 = a20 * a31 - a21 * a30;\n const b07 = a20 * a32 - a22 * a30;\n const b08 = a20 * a33 - a23 * a30;\n const b09 = a21 * a32 - a22 * a31;\n const b10 = a21 * a33 - a23 * a31;\n const b11 = a22 * a33 - a23 * a32;\n\n // Calculate the determinant\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n\n return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return `mat3(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}, ${a[4]}, ${a[5]}, ${a[6]}, ${a[7]}, ${a[8]})`;\n}\n\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} 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] +\n a[1] * a[1] +\n a[2] * a[2] +\n a[3] * a[3] +\n a[4] * a[4] +\n a[5] * a[5] +\n a[6] * a[6] +\n a[7] * a[7] +\n a[8] * a[8]\n );\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} 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 out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} 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 out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} 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 out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} 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 out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * 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 {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} 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 a[6] === b[6] &&\n a[7] === b[7] &&\n a[8] === b[8]\n );\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const a3 = a[3];\n const a4 = a[4];\n const a5 = a[5];\n const a6 = a[6];\n const a7 = a[7];\n const a8 = a[8];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n const b3 = b[3];\n const b4 = b[4];\n const b5 = b[5];\n const b6 = b[6];\n const b7 = b[7];\n const b8 = b[8];\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 Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\n Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\n Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8))\n );\n}\n\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\nexport const sub = subtract;\n"],"file":"mat3.js"}
1
+ {"version":3,"sources":["../../src/gl-matrix/mat3.ts"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","fromMat4","a","clone","copy","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","set","identity","transpose","a01","a02","a12","invert","a00","a10","a11","a20","a21","a22","b01","b11","b21","det","adjoint","determinant","multiply","b","b00","b02","b10","b12","b20","b22","translate","v","x","y","rotate","rad","s","Math","sin","c","cos","scale","fromTranslation","fromRotation","fromScaling","fromMat2d","fromQuat","q","z","w","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","projection","width","height","str","frob","sqrt","add","subtract","multiplyScalar","multiplyScalarAndAdd","exactEquals","equals","a0","a1","a2","a3","a4","a5","a6","a7","a8","b0","b1","b2","b3","b4","b5","b6","b7","b8","abs","EPSILON","max","mul","sub"],"mappings":"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","sourcesContent":["import * as glMatrix from './common.js';\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(9);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(9);\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 out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} 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 out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n const a01 = a[1];\n const a02 = a[2];\n const a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b01 = a22 * a11 - a12 * a21;\n const b11 = -a22 * a10 + a12 * a20;\n const b21 = a21 * a10 - a11 * a20;\n\n // Calculate the determinant\n let det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function adjoint(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n return (\n a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20)\n );\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b00 = b[0];\n const b01 = b[1];\n const b02 = b[2];\n const b10 = b[3];\n const b11 = b[4];\n const b12 = b[5];\n const b20 = b[6];\n const b21 = b[7];\n const b22 = b[8];\n\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const x = v[0];\n const y = v[1];\n\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n const x = v[0];\n const y = v[1];\n\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\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 * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\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 * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function fromRotation(out, rad) {\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\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 * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n const x = q[0];\n const y = q[1];\n const z = q[2];\n const w = q[3];\n const x2 = x + x;\n const y2 = y + y;\n const z2 = z + z;\n\n const xx = x * x2;\n const yx = y * x2;\n const yy = y * y2;\n const zx = z * x2;\n const zy = z * y2;\n const zz = z * z2;\n const wx = w * x2;\n const wy = w * y2;\n const wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n\n return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15];\n\n const b00 = a00 * a11 - a01 * a10;\n const b01 = a00 * a12 - a02 * a10;\n const b02 = a00 * a13 - a03 * a10;\n const b03 = a01 * a12 - a02 * a11;\n const b04 = a01 * a13 - a03 * a11;\n const b05 = a02 * a13 - a03 * a12;\n const b06 = a20 * a31 - a21 * a30;\n const b07 = a20 * a32 - a22 * a30;\n const b08 = a20 * a33 - a23 * a30;\n const b09 = a21 * a32 - a22 * a31;\n const b10 = a21 * a33 - a23 * a31;\n const b11 = a22 * a33 - a23 * a32;\n\n // Calculate the determinant\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n\n return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return `mat3(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}, ${a[4]}, ${a[5]}, ${a[6]}, ${a[7]}, ${a[8]})`;\n}\n\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} 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] +\n a[1] * a[1] +\n a[2] * a[2] +\n a[3] * a[3] +\n a[4] * a[4] +\n a[5] * a[5] +\n a[6] * a[6] +\n a[7] * a[7] +\n a[8] * a[8]\n );\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} 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 out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} 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 out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} 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 out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} 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 out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * 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 {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} 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 a[6] === b[6] &&\n a[7] === b[7] &&\n a[8] === b[8]\n );\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const a3 = a[3];\n const a4 = a[4];\n const a5 = a[5];\n const a6 = a[6];\n const a7 = a[7];\n const a8 = a[8];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n const b3 = b[3];\n const b4 = b[4];\n const b5 = b[5];\n const b6 = b[6];\n const b7 = b[7];\n const b8 = b[8];\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 Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\n Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\n Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8))\n );\n}\n\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\nexport const sub = subtract;\n"],"file":"mat3.js"}