linearly 0.20.2 → 0.20.3
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/lib/cjs/mat4.d.ts.map +1 -1
- package/lib/cjs/mat4.js +5 -6
- package/lib/common.d.ts +11 -0
- package/lib/common.js +30 -0
- package/lib/esm/mat4.d.ts.map +1 -1
- package/lib/esm/mat4.js +5 -6
- package/lib/index.d.ts +16 -0
- package/lib/index.js +45 -0
- package/lib/mat2.d.ts +79 -0
- package/lib/mat2.js +208 -0
- package/lib/mat2d.d.ts +90 -0
- package/lib/mat2d.js +291 -0
- package/lib/mat2d.test.d.ts +1 -0
- package/lib/mat2d.test.js +123 -0
- package/lib/mat3.d.ts +118 -0
- package/lib/mat3.js +450 -0
- package/lib/mat4.d.ts +311 -0
- package/lib/mat4.js +1252 -0
- package/lib/quat.d.ts +218 -0
- package/lib/quat.js +514 -0
- package/lib/vec2.d.ts +64 -0
- package/lib/vec2.js +211 -0
- package/lib/vec2.test.d.ts +1 -0
- package/lib/vec2.test.js +143 -0
- package/lib/vec3.d.ts +165 -0
- package/lib/vec3.js +408 -0
- package/lib/vec3.test.d.ts +1 -0
- package/lib/vec3.test.js +143 -0
- package/lib/vec4.d.ts +114 -0
- package/lib/vec4.js +316 -0
- package/package.json +1 -1
package/lib/mat2.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
2
|
+
if (k2 === undefined) k2 = k;
|
|
3
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
5
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
6
|
+
}
|
|
7
|
+
Object.defineProperty(o, k2, desc);
|
|
8
|
+
}) : (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
o[k2] = m[k];
|
|
11
|
+
}));
|
|
12
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
13
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
14
|
+
}) : function(o, v) {
|
|
15
|
+
o["default"] = v;
|
|
16
|
+
});
|
|
17
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
18
|
+
if (mod && mod.__esModule) return mod;
|
|
19
|
+
var result = {};
|
|
20
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
__setModuleDefault(result, mod);
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
(function (factory) {
|
|
25
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
26
|
+
var v = factory(require, exports);
|
|
27
|
+
if (v !== undefined) module.exports = v;
|
|
28
|
+
}
|
|
29
|
+
else if (typeof define === "function" && define.amd) {
|
|
30
|
+
define(["require", "exports", "./common"], factory);
|
|
31
|
+
}
|
|
32
|
+
})(function (require, exports) {
|
|
33
|
+
"use strict";
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.multiplyScalarAndAdd = exports.multiplyScalar = exports.equals = exports.exactEquals = exports.subtract = exports.add = exports.frob = exports.fromScaling = exports.fromRotation = exports.scale = exports.rotate = exports.multiply = exports.determinant = exports.adjoint = exports.invert = exports.transpose = exports.zero = exports.identity = void 0;
|
|
36
|
+
const Common = __importStar(require("./common"));
|
|
37
|
+
/**
|
|
38
|
+
* The identity matrix of mat2
|
|
39
|
+
*
|
|
40
|
+
*/
|
|
41
|
+
exports.identity = Object.freeze([1, 0, 0, 1]);
|
|
42
|
+
exports.zero = Object.freeze([0, 0, 0, 0]);
|
|
43
|
+
/**
|
|
44
|
+
* Transpose the values of a mat2
|
|
45
|
+
*/
|
|
46
|
+
function transpose(a) {
|
|
47
|
+
// prettier-ignore
|
|
48
|
+
return [
|
|
49
|
+
a[0], a[2],
|
|
50
|
+
a[1], a[3],
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
exports.transpose = transpose;
|
|
54
|
+
/**
|
|
55
|
+
* Inverts a mat2
|
|
56
|
+
*/
|
|
57
|
+
function invert(a) {
|
|
58
|
+
const [a0, a1, a2, a3] = a;
|
|
59
|
+
// Calculate the determinant
|
|
60
|
+
const det = a0 * a3 - a2 * a1;
|
|
61
|
+
if (!det) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const detinv = 1 / det;
|
|
65
|
+
// prettier-ignore
|
|
66
|
+
return [
|
|
67
|
+
a3 * detinv, -a1 * detinv,
|
|
68
|
+
-a2 * detinv, a0 * detinv
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
exports.invert = invert;
|
|
72
|
+
/**
|
|
73
|
+
* Calculates the adjugate of a mat2
|
|
74
|
+
*/
|
|
75
|
+
function adjoint(a) {
|
|
76
|
+
// Caching this value is necessary if out == a
|
|
77
|
+
const a0 = a[0];
|
|
78
|
+
return [a[3], -a[1], -a[2], a0];
|
|
79
|
+
}
|
|
80
|
+
exports.adjoint = adjoint;
|
|
81
|
+
/**
|
|
82
|
+
* Calculates the determinant of a mat2
|
|
83
|
+
* @returns determinant of a
|
|
84
|
+
*/
|
|
85
|
+
function determinant(a) {
|
|
86
|
+
return a[0] * a[3] - a[2] * a[1];
|
|
87
|
+
}
|
|
88
|
+
exports.determinant = determinant;
|
|
89
|
+
/**
|
|
90
|
+
* Multiplies two mat2's
|
|
91
|
+
*/
|
|
92
|
+
function multiply(a, b) {
|
|
93
|
+
const [a0, a1, a2, a3] = a;
|
|
94
|
+
const [b0, b1, b2, b3] = b;
|
|
95
|
+
return [
|
|
96
|
+
a0 * b0 + a2 * b1,
|
|
97
|
+
a1 * b0 + a3 * b1,
|
|
98
|
+
a0 * b2 + a2 * b3,
|
|
99
|
+
a1 * b2 + a3 * b3,
|
|
100
|
+
];
|
|
101
|
+
}
|
|
102
|
+
exports.multiply = multiply;
|
|
103
|
+
/**
|
|
104
|
+
* Rotates a mat2 by the given angle
|
|
105
|
+
*
|
|
106
|
+
* @param a the matrix to rotate
|
|
107
|
+
* @param rad the angle to rotate the matrix by
|
|
108
|
+
*/
|
|
109
|
+
function rotate(a, rad) {
|
|
110
|
+
const [a0, a1, a2, a3] = a;
|
|
111
|
+
const s = Math.sin(rad);
|
|
112
|
+
const c = Math.cos(rad);
|
|
113
|
+
return [a0 * c + a2 * s, a1 * c + a3 * s, a0 * -s + a2 * c, a1 * -s + a3 * c];
|
|
114
|
+
}
|
|
115
|
+
exports.rotate = rotate;
|
|
116
|
+
/**
|
|
117
|
+
* Scales the mat2 by the dimensions in the given vec2
|
|
118
|
+
**/
|
|
119
|
+
function scale(a, v) {
|
|
120
|
+
const [a0, a1, a2, a3] = a;
|
|
121
|
+
const [v0, v1] = v;
|
|
122
|
+
return [a0 * v0, a1 * v0, a2 * v1, a3 * v1];
|
|
123
|
+
}
|
|
124
|
+
exports.scale = scale;
|
|
125
|
+
/**
|
|
126
|
+
* Creates a matrix from a given angle
|
|
127
|
+
*/
|
|
128
|
+
function fromRotation(rad) {
|
|
129
|
+
const s = Math.sin(rad);
|
|
130
|
+
const c = Math.cos(rad);
|
|
131
|
+
return [c, s, -s, c];
|
|
132
|
+
}
|
|
133
|
+
exports.fromRotation = fromRotation;
|
|
134
|
+
/**
|
|
135
|
+
* Creates a matrix from a vector scaling
|
|
136
|
+
*/
|
|
137
|
+
function fromScaling(v) {
|
|
138
|
+
return [v[0], 0, 0, v[1]];
|
|
139
|
+
}
|
|
140
|
+
exports.fromScaling = fromScaling;
|
|
141
|
+
/**
|
|
142
|
+
* Returns Frobenius norm of a mat2
|
|
143
|
+
*/
|
|
144
|
+
function frob(a) {
|
|
145
|
+
return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3]);
|
|
146
|
+
}
|
|
147
|
+
exports.frob = frob;
|
|
148
|
+
/**
|
|
149
|
+
* Adds two mat2's
|
|
150
|
+
*/
|
|
151
|
+
function add(a, b) {
|
|
152
|
+
return [a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3]];
|
|
153
|
+
}
|
|
154
|
+
exports.add = add;
|
|
155
|
+
/**
|
|
156
|
+
* Subtracts matrix b from matrix a
|
|
157
|
+
*/
|
|
158
|
+
function subtract(a, b) {
|
|
159
|
+
return [a[0] - b[0], a[1] - b[1], a[2] - b[2], a[3] - b[3]];
|
|
160
|
+
}
|
|
161
|
+
exports.subtract = subtract;
|
|
162
|
+
/**
|
|
163
|
+
* Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
|
|
164
|
+
*/
|
|
165
|
+
function exactEquals(a, b) {
|
|
166
|
+
return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];
|
|
167
|
+
}
|
|
168
|
+
exports.exactEquals = exactEquals;
|
|
169
|
+
/**
|
|
170
|
+
* Returns whether or not the matrices have approximately the same elements in the same position.
|
|
171
|
+
*/
|
|
172
|
+
function equals(a, b) {
|
|
173
|
+
const [a0, a1, a2, a3] = a;
|
|
174
|
+
const [b0, b1, b2, b3] = b;
|
|
175
|
+
return (Math.abs(a0 - b0) <=
|
|
176
|
+
Common.EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) &&
|
|
177
|
+
Math.abs(a1 - b1) <=
|
|
178
|
+
Common.EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) &&
|
|
179
|
+
Math.abs(a2 - b2) <=
|
|
180
|
+
Common.EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2)) &&
|
|
181
|
+
Math.abs(a3 - b3) <=
|
|
182
|
+
Common.EPSILON * Math.max(1, Math.abs(a3), Math.abs(b3)));
|
|
183
|
+
}
|
|
184
|
+
exports.equals = equals;
|
|
185
|
+
/**
|
|
186
|
+
* Multiply each element of the matrix by a scalar.
|
|
187
|
+
*
|
|
188
|
+
* @param a the matrix to scale
|
|
189
|
+
* @param s amount to scale the matrix's elements by
|
|
190
|
+
*/
|
|
191
|
+
function multiplyScalar(a, s) {
|
|
192
|
+
return [a[0] * s, a[1] * s, a[2] * s, a[3] * s];
|
|
193
|
+
}
|
|
194
|
+
exports.multiplyScalar = multiplyScalar;
|
|
195
|
+
/**
|
|
196
|
+
* Adds two mat2's after multiplying each element of the second operand by a scalar value.
|
|
197
|
+
*/
|
|
198
|
+
function multiplyScalarAndAdd(a, b, scale) {
|
|
199
|
+
return [
|
|
200
|
+
a[0] + b[0] * scale,
|
|
201
|
+
a[1] + b[1] * scale,
|
|
202
|
+
a[2] + b[2] * scale,
|
|
203
|
+
a[3] + b[3] * scale,
|
|
204
|
+
];
|
|
205
|
+
}
|
|
206
|
+
exports.multiplyScalarAndAdd = multiplyScalarAndAdd;
|
|
207
|
+
});
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXQyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsaURBQWtDO0lBS2xDOzs7T0FHRztJQUNVLFFBQUEsUUFBUSxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRTVDLFFBQUEsSUFBSSxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXJEOztPQUVHO0lBQ0gsU0FBZ0IsU0FBUyxDQUFDLENBQU87UUFDaEMsa0JBQWtCO1FBQ2xCLE9BQU87WUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1YsQ0FBQTtJQUNGLENBQUM7SUFORCw4QkFNQztJQUVEOztPQUVHO0lBQ0gsU0FBZ0IsTUFBTSxDQUFDLENBQU87UUFDN0IsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUUxQiw0QkFBNEI7UUFDNUIsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBRTdCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQTtTQUNYO1FBQ0QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUV0QixrQkFBa0I7UUFDbEIsT0FBTztZQUNKLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTTtZQUMxQixDQUFDLEVBQUUs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
|
package/lib/mat2d.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Vec2 } from './vec2';
|
|
2
|
+
export type Mat2d = readonly [number, number, number, number, number, number];
|
|
3
|
+
/**
|
|
4
|
+
* 2x3 Matrix
|
|
5
|
+
* @module mat2d
|
|
6
|
+
* @description
|
|
7
|
+
* A mat2d contains six elements defined as:
|
|
8
|
+
* <pre>
|
|
9
|
+
* [a, b,
|
|
10
|
+
* c, d,
|
|
11
|
+
* tx, ty]
|
|
12
|
+
* </pre>
|
|
13
|
+
* This is a short form for the 3x3 matrix:
|
|
14
|
+
* <pre>
|
|
15
|
+
* [a, b, 0,
|
|
16
|
+
* c, d, 0,
|
|
17
|
+
* tx, ty, 1]
|
|
18
|
+
* </pre>
|
|
19
|
+
* The last column is ignored so the array is shorter and operations are faster.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* The identity matrix of mat2d
|
|
23
|
+
*/
|
|
24
|
+
export declare const identity: readonly number[];
|
|
25
|
+
export declare const zero: Mat2d;
|
|
26
|
+
/**
|
|
27
|
+
* Inverts a mat2d
|
|
28
|
+
*/
|
|
29
|
+
export declare function invert(a: Mat2d): Mat2d | null;
|
|
30
|
+
/**
|
|
31
|
+
* Calculates the determinant of a mat2d
|
|
32
|
+
*/
|
|
33
|
+
export declare function determinant(a: Mat2d): number;
|
|
34
|
+
/**
|
|
35
|
+
* Multiplies two mat2d's
|
|
36
|
+
*/
|
|
37
|
+
export declare function multiply(a: Mat2d, b: Mat2d): Mat2d;
|
|
38
|
+
/**
|
|
39
|
+
* Rotates a mat2d by the given angle
|
|
40
|
+
*/
|
|
41
|
+
export declare function rotate(a: Mat2d, rad: number): Mat2d;
|
|
42
|
+
/**
|
|
43
|
+
* Scales the mat2d by the dimensions in the given vec2
|
|
44
|
+
**/
|
|
45
|
+
export declare function scale(a: Mat2d, v: Vec2): Mat2d;
|
|
46
|
+
/**
|
|
47
|
+
* Translates the mat2d by the dimensions in the given vec2
|
|
48
|
+
**/
|
|
49
|
+
export declare function translate(m: Mat2d, v: Vec2): Mat2d;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a matrix from a given angle
|
|
52
|
+
* This is equivalent to (but much faster than):
|
|
53
|
+
*/
|
|
54
|
+
export declare function fromRotation(rad: number): Mat2d;
|
|
55
|
+
/**
|
|
56
|
+
* Creates a matrix from a vector scaling
|
|
57
|
+
*/
|
|
58
|
+
export declare function fromScaling(v: Vec2): Mat2d;
|
|
59
|
+
/**
|
|
60
|
+
* Creates a matrix from a vector translation
|
|
61
|
+
*/
|
|
62
|
+
export declare function fromTranslation(v: Vec2): Mat2d;
|
|
63
|
+
/**
|
|
64
|
+
* Returns Frobenius norm of a mat2d
|
|
65
|
+
*/
|
|
66
|
+
export declare function frob(a: Mat2d): number;
|
|
67
|
+
/**
|
|
68
|
+
* Adds two mat2d's
|
|
69
|
+
*/
|
|
70
|
+
export declare function add(a: Mat2d, b: Mat2d): Mat2d;
|
|
71
|
+
/**
|
|
72
|
+
* Subtracts matrix b from matrix a
|
|
73
|
+
*/
|
|
74
|
+
export declare function subtract(a: Mat2d, b: Mat2d): Mat2d;
|
|
75
|
+
/**
|
|
76
|
+
* Multiply each element of the matrix by a scalar.
|
|
77
|
+
*/
|
|
78
|
+
export declare function multiplyScalar(a: Mat2d, s: number): Mat2d;
|
|
79
|
+
/**
|
|
80
|
+
* Adds two mat2d's after multiplying each element of the second operand by a scalar value.
|
|
81
|
+
*/
|
|
82
|
+
export declare function multiplyScalarAndAdd(a: Mat2d, b: Mat2d, scale: number): Mat2d;
|
|
83
|
+
/**
|
|
84
|
+
* Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
|
|
85
|
+
*/
|
|
86
|
+
export declare function exactEquals(a: Mat2d, b: Mat2d): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Returns whether or not the matrices have approximately the same elements in the same position.
|
|
89
|
+
*/
|
|
90
|
+
export declare function equals(a: Mat2d, b: Mat2d): boolean;
|
package/lib/mat2d.js
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
2
|
+
if (k2 === undefined) k2 = k;
|
|
3
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
5
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
6
|
+
}
|
|
7
|
+
Object.defineProperty(o, k2, desc);
|
|
8
|
+
}) : (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
o[k2] = m[k];
|
|
11
|
+
}));
|
|
12
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
13
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
14
|
+
}) : function(o, v) {
|
|
15
|
+
o["default"] = v;
|
|
16
|
+
});
|
|
17
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
18
|
+
if (mod && mod.__esModule) return mod;
|
|
19
|
+
var result = {};
|
|
20
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
__setModuleDefault(result, mod);
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
(function (factory) {
|
|
25
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
26
|
+
var v = factory(require, exports);
|
|
27
|
+
if (v !== undefined) module.exports = v;
|
|
28
|
+
}
|
|
29
|
+
else if (typeof define === "function" && define.amd) {
|
|
30
|
+
define(["require", "exports", "./common"], factory);
|
|
31
|
+
}
|
|
32
|
+
})(function (require, exports) {
|
|
33
|
+
"use strict";
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.equals = exports.exactEquals = exports.multiplyScalarAndAdd = exports.multiplyScalar = exports.subtract = exports.add = exports.frob = exports.fromTranslation = exports.fromScaling = exports.fromRotation = exports.translate = exports.scale = exports.rotate = exports.multiply = exports.determinant = exports.invert = exports.zero = exports.identity = void 0;
|
|
36
|
+
const Common = __importStar(require("./common"));
|
|
37
|
+
/**
|
|
38
|
+
* 2x3 Matrix
|
|
39
|
+
* @module mat2d
|
|
40
|
+
* @description
|
|
41
|
+
* A mat2d contains six elements defined as:
|
|
42
|
+
* <pre>
|
|
43
|
+
* [a, b,
|
|
44
|
+
* c, d,
|
|
45
|
+
* tx, ty]
|
|
46
|
+
* </pre>
|
|
47
|
+
* This is a short form for the 3x3 matrix:
|
|
48
|
+
* <pre>
|
|
49
|
+
* [a, b, 0,
|
|
50
|
+
* c, d, 0,
|
|
51
|
+
* tx, ty, 1]
|
|
52
|
+
* </pre>
|
|
53
|
+
* The last column is ignored so the array is shorter and operations are faster.
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* The identity matrix of mat2d
|
|
57
|
+
*/
|
|
58
|
+
// prettier-ignore
|
|
59
|
+
exports.identity = Object.freeze([
|
|
60
|
+
1, 0,
|
|
61
|
+
0, 1,
|
|
62
|
+
0, 0
|
|
63
|
+
]);
|
|
64
|
+
exports.zero = Object.freeze([0, 0, 0, 0, 0, 0]);
|
|
65
|
+
/**
|
|
66
|
+
* Inverts a mat2d
|
|
67
|
+
*/
|
|
68
|
+
function invert(a) {
|
|
69
|
+
const [aa, ab, ac, ad, atx, aty] = a;
|
|
70
|
+
const det = aa * ad - ab * ac;
|
|
71
|
+
if (!det) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const detinv = 1 / det;
|
|
75
|
+
// prettier-ignore
|
|
76
|
+
return [
|
|
77
|
+
ad * detinv, -ab * detinv,
|
|
78
|
+
-ac * detinv, aa * detinv,
|
|
79
|
+
(ac * aty - ad * atx) * detinv,
|
|
80
|
+
(ab * atx - aa * aty) * detinv,
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
exports.invert = invert;
|
|
84
|
+
/**
|
|
85
|
+
* Calculates the determinant of a mat2d
|
|
86
|
+
*/
|
|
87
|
+
function determinant(a) {
|
|
88
|
+
return a[0] * a[3] - a[1] * a[2];
|
|
89
|
+
}
|
|
90
|
+
exports.determinant = determinant;
|
|
91
|
+
/**
|
|
92
|
+
* Multiplies two mat2d's
|
|
93
|
+
*/
|
|
94
|
+
function multiply(a, b) {
|
|
95
|
+
const [a0, a1, a2, a3, a4, a5] = a;
|
|
96
|
+
const [b0, b1, b2, b3, b4, b5] = b;
|
|
97
|
+
// prettier-ignore
|
|
98
|
+
return [
|
|
99
|
+
a0 * b0 + a2 * b1, a1 * b0 + a3 * b1,
|
|
100
|
+
a0 * b2 + a2 * b3, a1 * b2 + a3 * b3,
|
|
101
|
+
a0 * b4 + a2 * b5 + a4,
|
|
102
|
+
a1 * b4 + a3 * b5 + a5,
|
|
103
|
+
];
|
|
104
|
+
}
|
|
105
|
+
exports.multiply = multiply;
|
|
106
|
+
/**
|
|
107
|
+
* Rotates a mat2d by the given angle
|
|
108
|
+
*/
|
|
109
|
+
function rotate(a, rad) {
|
|
110
|
+
const [a0, a1, a2, a3, tx, ty] = a;
|
|
111
|
+
const s = Math.sin(rad);
|
|
112
|
+
const c = Math.cos(rad);
|
|
113
|
+
// prettier-ignore
|
|
114
|
+
return [
|
|
115
|
+
a0 * c + a2 * s, a1 * c + a3 * s,
|
|
116
|
+
a0 * -s + a2 * c, a1 * -s + a3 * c,
|
|
117
|
+
tx, ty
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
exports.rotate = rotate;
|
|
121
|
+
/**
|
|
122
|
+
* Scales the mat2d by the dimensions in the given vec2
|
|
123
|
+
**/
|
|
124
|
+
function scale(a, v) {
|
|
125
|
+
const [a0, a1, a2, a3, tx, ty] = a;
|
|
126
|
+
const [sx, sy] = v;
|
|
127
|
+
// prettier-ignore
|
|
128
|
+
return [
|
|
129
|
+
a0 * sx, a1 * sx,
|
|
130
|
+
a2 * sy, a3 * sy,
|
|
131
|
+
tx, ty
|
|
132
|
+
];
|
|
133
|
+
}
|
|
134
|
+
exports.scale = scale;
|
|
135
|
+
/**
|
|
136
|
+
* Translates the mat2d by the dimensions in the given vec2
|
|
137
|
+
**/
|
|
138
|
+
function translate(m, v) {
|
|
139
|
+
const [a, b, c, d, tx, ty] = m;
|
|
140
|
+
const [x, y] = v;
|
|
141
|
+
// prettier-ignore
|
|
142
|
+
return [
|
|
143
|
+
a, b,
|
|
144
|
+
c, d,
|
|
145
|
+
a * x + c * y + tx,
|
|
146
|
+
b * x + d * y + ty
|
|
147
|
+
];
|
|
148
|
+
}
|
|
149
|
+
exports.translate = translate;
|
|
150
|
+
/**
|
|
151
|
+
* Creates a matrix from a given angle
|
|
152
|
+
* This is equivalent to (but much faster than):
|
|
153
|
+
*/
|
|
154
|
+
function fromRotation(rad) {
|
|
155
|
+
const s = Math.sin(rad);
|
|
156
|
+
const c = Math.cos(rad);
|
|
157
|
+
// prettier-ignore
|
|
158
|
+
return [
|
|
159
|
+
c, s,
|
|
160
|
+
-s, c,
|
|
161
|
+
0, 0,
|
|
162
|
+
];
|
|
163
|
+
}
|
|
164
|
+
exports.fromRotation = fromRotation;
|
|
165
|
+
/**
|
|
166
|
+
* Creates a matrix from a vector scaling
|
|
167
|
+
*/
|
|
168
|
+
function fromScaling(v) {
|
|
169
|
+
const [x, y] = v;
|
|
170
|
+
// prettier-ignore
|
|
171
|
+
return [
|
|
172
|
+
x, 0,
|
|
173
|
+
0, y,
|
|
174
|
+
0, 0,
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
exports.fromScaling = fromScaling;
|
|
178
|
+
/**
|
|
179
|
+
* Creates a matrix from a vector translation
|
|
180
|
+
*/
|
|
181
|
+
function fromTranslation(v) {
|
|
182
|
+
const [x, y] = v;
|
|
183
|
+
// prettier-ignore
|
|
184
|
+
return [
|
|
185
|
+
1, 0,
|
|
186
|
+
0, 1,
|
|
187
|
+
x, y,
|
|
188
|
+
];
|
|
189
|
+
}
|
|
190
|
+
exports.fromTranslation = fromTranslation;
|
|
191
|
+
/**
|
|
192
|
+
* Returns Frobenius norm of a mat2d
|
|
193
|
+
*/
|
|
194
|
+
function frob(a) {
|
|
195
|
+
// prettier-ignore
|
|
196
|
+
return Math.sqrt(a[0] ** 2 +
|
|
197
|
+
a[1] ** 2 +
|
|
198
|
+
a[2] ** 2 +
|
|
199
|
+
a[3] ** 2 +
|
|
200
|
+
a[4] ** 2 +
|
|
201
|
+
a[5] ** 2 + 1);
|
|
202
|
+
}
|
|
203
|
+
exports.frob = frob;
|
|
204
|
+
/**
|
|
205
|
+
* Adds two mat2d's
|
|
206
|
+
*/
|
|
207
|
+
function add(a, b) {
|
|
208
|
+
return [
|
|
209
|
+
a[0] + b[0],
|
|
210
|
+
a[1] + b[1],
|
|
211
|
+
a[2] + b[2],
|
|
212
|
+
a[3] + b[3],
|
|
213
|
+
a[4] + b[4],
|
|
214
|
+
a[5] + b[5],
|
|
215
|
+
];
|
|
216
|
+
}
|
|
217
|
+
exports.add = add;
|
|
218
|
+
/**
|
|
219
|
+
* Subtracts matrix b from matrix a
|
|
220
|
+
*/
|
|
221
|
+
function subtract(a, b) {
|
|
222
|
+
return [
|
|
223
|
+
a[0] - b[0],
|
|
224
|
+
a[1] - b[1],
|
|
225
|
+
a[2] - b[2],
|
|
226
|
+
a[3] - b[3],
|
|
227
|
+
a[4] - b[4],
|
|
228
|
+
a[5] - b[5],
|
|
229
|
+
];
|
|
230
|
+
}
|
|
231
|
+
exports.subtract = subtract;
|
|
232
|
+
/**
|
|
233
|
+
* Multiply each element of the matrix by a scalar.
|
|
234
|
+
*/
|
|
235
|
+
function multiplyScalar(a, s) {
|
|
236
|
+
// prettier-ignore
|
|
237
|
+
return [
|
|
238
|
+
a[0] * s, a[1] * s,
|
|
239
|
+
a[2] * s, a[3] * s,
|
|
240
|
+
a[4] * s, a[5] * s,
|
|
241
|
+
];
|
|
242
|
+
}
|
|
243
|
+
exports.multiplyScalar = multiplyScalar;
|
|
244
|
+
/**
|
|
245
|
+
* Adds two mat2d's after multiplying each element of the second operand by a scalar value.
|
|
246
|
+
*/
|
|
247
|
+
function multiplyScalarAndAdd(a, b, scale) {
|
|
248
|
+
return [
|
|
249
|
+
a[0] + b[0] * scale,
|
|
250
|
+
a[1] + b[1] * scale,
|
|
251
|
+
a[2] + b[2] * scale,
|
|
252
|
+
a[3] + b[3] * scale,
|
|
253
|
+
a[4] + b[4] * scale,
|
|
254
|
+
a[5] + b[5] * scale,
|
|
255
|
+
];
|
|
256
|
+
}
|
|
257
|
+
exports.multiplyScalarAndAdd = multiplyScalarAndAdd;
|
|
258
|
+
/**
|
|
259
|
+
* Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
|
|
260
|
+
*/
|
|
261
|
+
function exactEquals(a, b) {
|
|
262
|
+
return (a[0] === b[0] &&
|
|
263
|
+
a[1] === b[1] &&
|
|
264
|
+
a[2] === b[2] &&
|
|
265
|
+
a[3] === b[3] &&
|
|
266
|
+
a[4] === b[4] &&
|
|
267
|
+
a[5] === b[5]);
|
|
268
|
+
}
|
|
269
|
+
exports.exactEquals = exactEquals;
|
|
270
|
+
/**
|
|
271
|
+
* Returns whether or not the matrices have approximately the same elements in the same position.
|
|
272
|
+
*/
|
|
273
|
+
function equals(a, b) {
|
|
274
|
+
const [a0, a1, a2, a3, a4, a5] = a;
|
|
275
|
+
const [b0, b1, b2, b3, b4, b5] = b;
|
|
276
|
+
return (Math.abs(a0 - b0) <=
|
|
277
|
+
Common.EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) &&
|
|
278
|
+
Math.abs(a1 - b1) <=
|
|
279
|
+
Common.EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) &&
|
|
280
|
+
Math.abs(a2 - b2) <=
|
|
281
|
+
Common.EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2)) &&
|
|
282
|
+
Math.abs(a3 - b3) <=
|
|
283
|
+
Common.EPSILON * Math.max(1, Math.abs(a3), Math.abs(b3)) &&
|
|
284
|
+
Math.abs(a4 - b4) <=
|
|
285
|
+
Common.EPSILON * Math.max(1, Math.abs(a4), Math.abs(b4)) &&
|
|
286
|
+
Math.abs(a5 - b5) <=
|
|
287
|
+
Common.EPSILON * Math.max(1, Math.abs(a5), Math.abs(b5)));
|
|
288
|
+
}
|
|
289
|
+
exports.equals = equals;
|
|
290
|
+
});
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWF0MmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBQSxpREFBa0M7SUFLbEM7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBRUg7O09BRUc7SUFDSCxrQkFBa0I7SUFDTCxRQUFBLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3JDLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7UUFDSixDQUFDLEVBQUUsQ0FBQztLQUNKLENBQUMsQ0FBQTtJQUVXLFFBQUEsSUFBSSxHQUFVLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFNUQ7O09BRUc7SUFDSCxTQUFnQixNQUFNLENBQUMsQ0FBUTtRQUM5QixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFcEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBRTdCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQTtTQUNYO1FBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUV0QixrQkFBa0I7UUFDbEIsT0FBTztZQUNKLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTTtZQUMxQixDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUcsRUFBRSxHQUFHLE1BQU07WUFFMUIsQ0FBQyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxNQUFNO1lBQy9CLENBQUMsRUFB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|