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.
@@ -0,0 +1,123 @@
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", "./mat2d"], factory);
31
+ }
32
+ })(function (require, exports) {
33
+ "use strict";
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const common_1 = require("./common");
36
+ const mat2d = __importStar(require("./mat2d"));
37
+ function areMat2dEqual(a, b) {
38
+ if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) {
39
+ return undefined;
40
+ }
41
+ for (let i = 0; i < a.length; i++) {
42
+ const nearlyEqual = Math.abs(a[i] - b[i]) <=
43
+ common_1.EPSILON * Math.max(1, Math.abs(a[i]), Math.abs(b[i]));
44
+ if (!nearlyEqual) {
45
+ return undefined;
46
+ }
47
+ }
48
+ return true;
49
+ }
50
+ ;
51
+ expect.addEqualityTesters([areMat2dEqual]);
52
+ const matA = [1, 2, 3, 4, 5, 6];
53
+ const matB = [7, 8, 9, 10, 11, 12];
54
+ describe('invert', () => {
55
+ expect(mat2d.invert(matA)).toEqual([-2, 1, 1.5, -0.5, 1, -2]);
56
+ expect(mat2d.invert([1, 0, 2, 0, 0, 0])).toEqual(null);
57
+ });
58
+ describe('determinant', () => {
59
+ expect(mat2d.determinant(matA)).toEqual(-2);
60
+ });
61
+ describe('multiply', () => {
62
+ expect(mat2d.multiply(matA, matB)).toEqual([31, 46, 39, 58, 52, 76]);
63
+ });
64
+ describe('rotate', () => {
65
+ expect(mat2d.rotate(matA, Math.PI * 0.5)).toEqual([3, 4, -1, -2, 5, 6]);
66
+ });
67
+ describe('scale', () => {
68
+ expect(mat2d.scale(matA, [2, 3])).toEqual([2, 4, 9, 12, 5, 6]);
69
+ });
70
+ describe('translate', () => {
71
+ expect(mat2d.translate(matA, [2, 3])).toEqual([1, 2, 3, 4, 16, 22]);
72
+ });
73
+ describe('frob', () => {
74
+ expect(mat2d.frob(matA)).toEqual(Math.sqrt(Math.pow(1, 2) +
75
+ Math.pow(2, 2) +
76
+ Math.pow(3, 2) +
77
+ Math.pow(4, 2) +
78
+ Math.pow(5, 2) +
79
+ Math.pow(6, 2) +
80
+ 1));
81
+ });
82
+ describe('add', () => {
83
+ expect(mat2d.add(matA, matB)).toEqual([8, 10, 12, 14, 16, 18]);
84
+ });
85
+ describe('subtract', () => {
86
+ expect(mat2d.subtract(matA, matB)).toEqual([-6, -6, -6, -6, -6, -6]);
87
+ });
88
+ describe('multiplyScalar', () => {
89
+ expect(mat2d.multiplyScalar(matA, 2)).toEqual([2, 4, 6, 8, 10, 12]);
90
+ });
91
+ describe('multiplyScalarAndAdd', () => {
92
+ expect(mat2d.multiplyScalarAndAdd(matA, matB, 0.5)).toEqual([
93
+ 4.5, 6, 7.5, 9, 10.5, 12,
94
+ ]);
95
+ });
96
+ describe('exactEquals', () => {
97
+ const matA = [0, 1, 2, 3, 4, 5];
98
+ const matB = [0, 1, 2, 3, 4, 5];
99
+ const matC = [1, 2, 3, 4, 5, 6];
100
+ it('should return true for identical matrices', () => {
101
+ expect(mat2d.exactEquals(matA, matB)).toBe(true);
102
+ });
103
+ it('should return false for different matrices', () => {
104
+ expect(mat2d.exactEquals(matA, matC)).toBe(false);
105
+ });
106
+ });
107
+ describe('equals', () => {
108
+ const matA = [0, 1, 2, 3, 4, 5];
109
+ const matB = [0, 1, 2, 3, 4, 5];
110
+ const matC = [1, 2, 3, 4, 5, 6];
111
+ const matD = [1e-16, 1, 2, 3, 4, 5];
112
+ it('should return true for identical matrices', () => {
113
+ expect(mat2d.equals(matA, matB)).toBe(true);
114
+ });
115
+ it('should return false for different matrices', () => {
116
+ expect(mat2d.equals(matA, matC)).toBe(false);
117
+ });
118
+ it('should return true for close but not identical matrices', () => {
119
+ expect(mat2d.equals(matA, matD)).toBe(true);
120
+ });
121
+ });
122
+ });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0MmQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXQyZC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBQSxxQ0FBZ0M7SUFFaEMsK0NBQWdDO0lBRWhDLFNBQVMsYUFBYSxDQUFDLENBQVUsRUFBRSxDQUFVO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDcEUsT0FBTyxTQUFTLENBQUE7U0FDaEI7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxNQUFNLFdBQVcsR0FDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixnQkFBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pCLE9BQU8sU0FBUyxDQUFBO2FBQ2hCO1NBQ0Q7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNaLENBQUM7SUFFRCxDQUFDO0lBQUMsTUFBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUVwRCxNQUFNLElBQUksR0FBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEMsTUFBTSxJQUFJLEdBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXpDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZELENBQUMsQ0FBQyxDQUFBO0lBRUYsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1QyxDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNyRSxDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUMsQ0FBQyxDQUFBO0lBRUYsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEUsQ0FBQyxDQUFDLENBQUE7SUFFRixRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtRQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDL0IsSUFBSSxDQUFDLElBQUksQ0FDUixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFB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LENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDdEMsTUFBTSxJQUFJLEdBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sSUFBSSxHQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUUxQyxFQUFFLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7WUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLHlEQUF5RCxFQUFFLEdBQUcsRUFBRTtZQUNsRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUMsQ0FBQyxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQSJ9
package/lib/mat3.d.ts ADDED
@@ -0,0 +1,118 @@
1
+ import { Mat4 } from './mat4';
2
+ import { Quat } from './quat';
3
+ import { Vec2 } from './vec2';
4
+ import { Vec3 } from './vec3';
5
+ export type Mat3 = readonly [
6
+ number,
7
+ number,
8
+ number,
9
+ number,
10
+ number,
11
+ number,
12
+ number,
13
+ number,
14
+ number
15
+ ];
16
+ /**
17
+ * 3x3 Matrix
18
+ * @module mat3
19
+ */
20
+ /**
21
+ * Copies the upper-left 3x3 values into the given mat3.
22
+ */
23
+ export declare function fromMat4(a: Mat4): Mat3;
24
+ /**
25
+ * The identity matrix of mat3
26
+ */
27
+ export declare const identity: readonly number[];
28
+ export declare const zero: Mat3;
29
+ /**
30
+ * Transpose the values of a mat3
31
+ */
32
+ export declare function transpose(a: Mat3): Mat3;
33
+ /**
34
+ * Inverts a mat3
35
+ */
36
+ export declare function invert(a: Mat3): Mat3 | null;
37
+ /**
38
+ * Calculates the adjugate of a mat3
39
+ */
40
+ export declare function adjoint(a: Mat3): Mat3;
41
+ /**
42
+ * Calculates the determinant of a mat3
43
+ */
44
+ export declare function determinant(a: Mat3): number;
45
+ /**
46
+ * Multiplies two mat3's
47
+ */
48
+ export declare function multiply(a: Mat3, b: Mat3): Mat3;
49
+ /**
50
+ * Translate a mat3 by the given vector
51
+ */
52
+ export declare function translate(a: Mat3, v: Vec3): Mat3;
53
+ /**
54
+ * Rotates a mat3 by the given angle
55
+ */
56
+ export declare function rotate(a: Mat3, rad: number): Mat3;
57
+ /**
58
+ * Scales the mat3 by the dimensions in the given vec2
59
+ **/
60
+ export declare function scale(a: Mat3, v: Vec2): Mat3;
61
+ /**
62
+ * Creates a matrix from a vector translation
63
+ */
64
+ export declare function fromTranslation(v: Vec2): Mat3;
65
+ /**
66
+ * Creates a matrix from a given angle
67
+ */
68
+ export declare function fromRotation(rad: number): Mat3;
69
+ /**
70
+ * Creates a matrix from a vector scaling
71
+ */
72
+ export declare function fromScaling(v: Vec2): Mat3;
73
+ /**
74
+ * Copies the values from a mat2d into a mat3
75
+ **/
76
+ export declare function fromMat2d(a: Mat3): Mat3;
77
+ /**
78
+ * Calculates a 3x3 matrix from the given quaternion
79
+ *
80
+ */
81
+ export declare function fromQuat(q: Quat): Mat3;
82
+ /**
83
+ * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix
84
+ *
85
+ */
86
+ export declare function normalFromMat4(a: Mat4): Mat3 | null;
87
+ /**
88
+ * Generates a 2D projection matrix with the given bounds
89
+ */
90
+ export declare function projection(width: number, height: number): Mat3;
91
+ /**
92
+ * Returns Frobenius norm of a mat3
93
+ */
94
+ export declare function frob(a: Mat3): number;
95
+ /**
96
+ * Adds two mat3's
97
+ */
98
+ export declare function add(a: Mat3, b: Mat3): Mat3;
99
+ /**
100
+ * Subtracts matrix b from matrix a
101
+ */
102
+ export declare function subtract(a: Mat3, b: Mat3): Mat3;
103
+ /**
104
+ * Multiply each element of the matrix by a scalar.
105
+ */
106
+ export declare function multiplyScalar(a: Mat3, s: number): Mat3;
107
+ /**
108
+ * Adds two mat3's after multiplying each element of the second operand by a scalar value.
109
+ */
110
+ export declare function multiplyScalarAndAdd(a: Mat3, b: Mat3, scale: number): Mat3;
111
+ /**
112
+ * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
113
+ */
114
+ export declare function exactEquals(a: Mat3, b: Mat3): boolean;
115
+ /**
116
+ * Returns whether or not the matrices have approximately the same elements in the same position.
117
+ */
118
+ export declare function equals(a: Mat3, b: Mat3): boolean;