@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.
- package/dist/classes/base/math-array.d.ts +5 -4
- package/dist/classes/base/math-array.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/base/math-array.js +8 -3
- package/dist/classes/base/math-array.js.map +1 -0
- package/dist/classes/base/matrix.d.ts +2 -2
- package/dist/classes/base/matrix.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/base/matrix.js +4 -4
- package/dist/classes/base/matrix.js.map +1 -0
- package/dist/classes/base/vector.d.ts +2 -2
- package/dist/classes/base/vector.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/base/vector.js +4 -4
- package/dist/classes/base/vector.js.map +1 -0
- package/dist/classes/euler.d.ts +4 -4
- package/dist/classes/euler.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/euler.js +6 -6
- package/dist/classes/euler.js.map +1 -0
- package/dist/classes/matrix3.d.ts +5 -2
- package/dist/classes/matrix3.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/matrix3.js +20 -20
- package/dist/classes/matrix3.js.map +1 -0
- package/dist/classes/matrix4.d.ts +2 -2
- package/dist/classes/matrix4.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/matrix4.js +27 -27
- package/dist/classes/matrix4.js.map +1 -0
- package/dist/classes/pose.d.ts +4 -4
- package/dist/classes/pose.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/pose.js +4 -4
- package/dist/classes/pose.js.map +1 -0
- package/dist/classes/quaternion.d.ts +2 -2
- package/dist/classes/quaternion.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/quaternion.js +26 -26
- package/dist/classes/quaternion.js.map +1 -0
- package/dist/classes/spherical-coordinates.d.ts +2 -2
- package/dist/classes/spherical-coordinates.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/spherical-coordinates.js +5 -5
- package/dist/classes/spherical-coordinates.js.map +1 -0
- package/dist/classes/vector2.d.ts +2 -2
- package/dist/classes/vector2.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/vector2.js +10 -10
- package/dist/classes/vector2.js.map +1 -0
- package/dist/classes/vector3.d.ts +2 -2
- package/dist/classes/vector3.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/vector3.js +14 -14
- package/dist/classes/vector3.js.map +1 -0
- package/dist/classes/vector4.d.ts +3 -3
- package/dist/classes/vector4.d.ts.map +1 -1
- package/dist/{esm/classes → classes}/vector4.js +8 -8
- package/dist/classes/vector4.js.map +1 -0
- package/dist/gl-matrix/common.d.ts +38 -0
- package/dist/gl-matrix/common.d.ts.map +1 -0
- package/dist/gl-matrix/common.js +19 -0
- package/dist/gl-matrix/common.js.map +1 -0
- package/dist/gl-matrix/mat3.d.ts +295 -0
- package/dist/gl-matrix/mat3.d.ts.map +1 -0
- package/dist/gl-matrix/mat3.js +489 -0
- package/dist/gl-matrix/mat3.js.map +1 -0
- package/dist/gl-matrix/mat4.d.ts +577 -0
- package/dist/gl-matrix/mat4.d.ts.map +1 -0
- package/dist/gl-matrix/mat4.js +1455 -0
- package/dist/gl-matrix/mat4.js.map +1 -0
- package/dist/gl-matrix/quat.d.ts +357 -0
- package/dist/gl-matrix/quat.d.ts.map +1 -0
- package/dist/gl-matrix/quat.js +315 -0
- package/dist/gl-matrix/quat.js.map +1 -0
- package/dist/gl-matrix/vec2.d.ts +373 -0
- package/dist/gl-matrix/vec2.d.ts.map +1 -0
- package/dist/gl-matrix/vec2.js +257 -0
- package/dist/gl-matrix/vec2.js.map +1 -0
- package/dist/gl-matrix/vec3.d.ts +416 -0
- package/dist/gl-matrix/vec3.d.ts.map +1 -0
- package/dist/gl-matrix/vec3.js +384 -0
- package/dist/gl-matrix/vec3.js.map +1 -0
- package/dist/gl-matrix/vec4.d.ts +340 -0
- package/dist/gl-matrix/vec4.d.ts.map +1 -0
- package/dist/gl-matrix/vec4.js +334 -0
- package/dist/gl-matrix/vec4.js.map +1 -0
- package/dist/gl-matrix/wip/index.d.ts +5 -0
- package/dist/gl-matrix/wip/index.d.ts.map +1 -0
- package/dist/gl-matrix/wip/index.js +12 -0
- package/dist/gl-matrix/wip/index.js.map +1 -0
- package/dist/gl-matrix/wip/mat2.d.ts +229 -0
- package/dist/gl-matrix/wip/mat2.d.ts.map +1 -0
- package/dist/gl-matrix/wip/mat2.js +208 -0
- package/dist/gl-matrix/wip/mat2.js.map +1 -0
- package/dist/gl-matrix/wip/mat2d.d.ts +244 -0
- package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -0
- package/dist/gl-matrix/wip/mat2d.js +251 -0
- package/dist/gl-matrix/wip/mat2d.js.map +1 -0
- package/dist/gl-matrix/wip/quat2.d.ts +352 -0
- package/dist/gl-matrix/wip/quat2.d.ts.map +1 -0
- package/dist/gl-matrix/wip/quat2.js +482 -0
- package/dist/gl-matrix/wip/quat2.js.map +1 -0
- package/dist/gl-matrix/wip/types.d.js +2 -0
- package/dist/{esm/lib/gl-matrix.d.js.map → gl-matrix/wip/types.d.js.map} +1 -1
- package/dist/index.cjs +3788 -0
- package/dist/index.d.ts +15 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/assert.d.ts +1 -1
- package/dist/lib/assert.d.ts.map +1 -1
- package/dist/lib/assert.js +6 -0
- package/dist/lib/assert.js.map +1 -0
- package/dist/lib/common.d.ts +10 -5
- package/dist/lib/common.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/common.js +11 -9
- package/dist/lib/common.js.map +1 -0
- package/dist/lib/gl-matrix-extras.js.map +1 -0
- package/dist/lib/math-utils.d.ts +24 -27
- package/dist/lib/math-utils.d.ts.map +1 -1
- package/dist/lib/math-utils.js +25 -0
- package/dist/lib/math-utils.js.map +1 -0
- package/dist/lib/validators.d.ts +1 -1
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/validators.js +2 -2
- package/dist/lib/validators.js.map +1 -0
- package/package.json +6 -6
- package/src/classes/base/math-array.ts +16 -8
- package/src/classes/base/matrix.ts +7 -4
- package/src/classes/base/vector.ts +4 -4
- package/src/classes/euler.ts +9 -8
- package/src/classes/matrix3.ts +37 -24
- package/src/classes/matrix4.ts +48 -29
- package/src/classes/pose.ts +4 -4
- package/src/classes/quaternion.ts +54 -32
- package/src/classes/spherical-coordinates.ts +5 -4
- package/src/classes/vector2.ts +13 -9
- package/src/classes/vector3.ts +26 -12
- package/src/classes/vector4.ts +14 -10
- package/src/gl-matrix/common.js +58 -0
- package/src/gl-matrix/mat3.js +842 -0
- package/src/gl-matrix/mat4.js +2169 -0
- package/src/gl-matrix/quat.ts +789 -0
- package/src/gl-matrix/vec2.js +629 -0
- package/src/gl-matrix/vec3.js +827 -0
- package/src/gl-matrix/vec4.js +675 -0
- package/src/gl-matrix/wip/index.js +15 -0
- package/src/gl-matrix/wip/mat2.js +442 -0
- package/src/gl-matrix/wip/mat2d.js +505 -0
- package/src/gl-matrix/wip/quat2.ts +886 -0
- package/src/gl-matrix/wip/types.d.ts +93 -0
- package/src/index.ts +16 -14
- package/src/lib/assert.ts +1 -1
- package/src/lib/common.ts +31 -19
- package/src/lib/math-utils.ts +24 -26
- package/src/lib/validators.ts +3 -3
- package/dist/es5/classes/base/math-array.js +0 -348
- package/dist/es5/classes/base/math-array.js.map +0 -1
- package/dist/es5/classes/base/matrix.js +0 -108
- package/dist/es5/classes/base/matrix.js.map +0 -1
- package/dist/es5/classes/base/vector.js +0 -210
- package/dist/es5/classes/base/vector.js.map +0 -1
- package/dist/es5/classes/euler.js +0 -654
- package/dist/es5/classes/euler.js.map +0 -1
- package/dist/es5/classes/matrix3.js +0 -284
- package/dist/es5/classes/matrix3.js.map +0 -1
- package/dist/es5/classes/matrix4.js +0 -574
- package/dist/es5/classes/matrix4.js.map +0 -1
- package/dist/es5/classes/pose.js +0 -159
- package/dist/es5/classes/pose.js.map +0 -1
- package/dist/es5/classes/quaternion.js +0 -323
- package/dist/es5/classes/quaternion.js.map +0 -1
- package/dist/es5/classes/spherical-coordinates.js +0 -208
- package/dist/es5/classes/spherical-coordinates.js.map +0 -1
- package/dist/es5/classes/vector2.js +0 -156
- package/dist/es5/classes/vector2.js.map +0 -1
- package/dist/es5/classes/vector3.js +0 -213
- package/dist/es5/classes/vector3.js.map +0 -1
- package/dist/es5/classes/vector4.js +0 -185
- package/dist/es5/classes/vector4.js.map +0 -1
- package/dist/es5/docs/README.md +0 -0
- package/dist/es5/index.js +0 -236
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/assert.js +0 -13
- package/dist/es5/lib/assert.js.map +0 -1
- package/dist/es5/lib/common.js +0 -255
- package/dist/es5/lib/common.js.map +0 -1
- package/dist/es5/lib/gl-matrix-extras.js +0 -61
- package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
- package/dist/es5/lib/gl-matrix.d.js +0 -2
- package/dist/es5/lib/math-utils.js +0 -34
- package/dist/es5/lib/math-utils.js.map +0 -1
- package/dist/es5/lib/validators.js +0 -53
- package/dist/es5/lib/validators.js.map +0 -1
- package/dist/esm/classes/base/math-array.js.map +0 -1
- package/dist/esm/classes/base/matrix.js.map +0 -1
- package/dist/esm/classes/base/vector.js.map +0 -1
- package/dist/esm/classes/euler.js.map +0 -1
- package/dist/esm/classes/matrix3.js.map +0 -1
- package/dist/esm/classes/matrix4.js.map +0 -1
- package/dist/esm/classes/pose.js.map +0 -1
- package/dist/esm/classes/quaternion.js.map +0 -1
- package/dist/esm/classes/spherical-coordinates.js.map +0 -1
- package/dist/esm/classes/vector2.js.map +0 -1
- package/dist/esm/classes/vector3.js.map +0 -1
- package/dist/esm/classes/vector4.js.map +0 -1
- package/dist/esm/docs/README.md +0 -0
- package/dist/esm/index.js +0 -16
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/assert.js +0 -6
- package/dist/esm/lib/assert.js.map +0 -1
- package/dist/esm/lib/common.js.map +0 -1
- package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
- package/dist/esm/lib/math-utils.js +0 -27
- package/dist/esm/lib/math-utils.js.map +0 -1
- package/dist/esm/lib/validators.js.map +0 -1
- package/src/docs/README.md +0 -0
- /package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
- /package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
- /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"}
|