@fbltd/math 1.0.9 → 1.0.11

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.
@@ -1,110 +1,108 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const src_1 = require("../src");
1
+ import { Angle, AngleUnits, approximately } from "../src";
4
2
  describe('math.angle.toDeg', () => {
5
3
  test('from Turn', () => {
6
- expect(src_1.Angle.toDeg(1, src_1.AngleUnits.Turn)).toBe(360);
7
- expect(src_1.Angle.toDeg(0, src_1.AngleUnits.Turn)).toBe(0);
8
- expect(src_1.Angle.toDeg(0.5, src_1.AngleUnits.Turn)).toBe(180);
9
- expect(src_1.Angle.toDeg(-0.5, src_1.AngleUnits.Turn)).toBe(-180);
4
+ expect(Angle.toDeg(1, AngleUnits.Turn)).toBe(360);
5
+ expect(Angle.toDeg(0, AngleUnits.Turn)).toBe(0);
6
+ expect(Angle.toDeg(0.5, AngleUnits.Turn)).toBe(180);
7
+ expect(Angle.toDeg(-0.5, AngleUnits.Turn)).toBe(-180);
10
8
  });
11
9
  test('from Rad', () => {
12
- expect(src_1.Angle.toDeg(Math.PI * 2, src_1.AngleUnits.Rad)).toBe(360);
13
- expect(src_1.Angle.toDeg(0, src_1.AngleUnits.Rad)).toBe(0);
14
- expect(src_1.Angle.toDeg(Math.PI, src_1.AngleUnits.Rad)).toBe(180);
15
- expect(src_1.Angle.toDeg(-Math.PI, src_1.AngleUnits.Rad)).toBe(-180);
10
+ expect(Angle.toDeg(Math.PI * 2, AngleUnits.Rad)).toBe(360);
11
+ expect(Angle.toDeg(0, AngleUnits.Rad)).toBe(0);
12
+ expect(Angle.toDeg(Math.PI, AngleUnits.Rad)).toBe(180);
13
+ expect(Angle.toDeg(-Math.PI, AngleUnits.Rad)).toBe(-180);
16
14
  });
17
15
  test('from Deg', () => {
18
- expect(src_1.Angle.toDeg(180, src_1.AngleUnits.Deg)).toBe(180);
16
+ expect(Angle.toDeg(180, AngleUnits.Deg)).toBe(180);
19
17
  });
20
18
  });
21
19
  describe('math.angle.toRad', () => {
22
20
  test('from Rad', () => {
23
- expect(src_1.Angle.toRad(1, src_1.AngleUnits.Rad)).toBe(1);
21
+ expect(Angle.toRad(1, AngleUnits.Rad)).toBe(1);
24
22
  });
25
23
  test('from Deg', () => {
26
- expect(src_1.Angle.toRad(360, src_1.AngleUnits.Deg)).toBe(Math.PI * 2);
27
- expect(src_1.Angle.toRad(0, src_1.AngleUnits.Deg)).toBe(0);
28
- expect(src_1.Angle.toRad(180, src_1.AngleUnits.Deg)).toBe(Math.PI);
29
- expect(src_1.Angle.toRad(-180, src_1.AngleUnits.Deg)).toBe(-Math.PI);
24
+ expect(Angle.toRad(360, AngleUnits.Deg)).toBe(Math.PI * 2);
25
+ expect(Angle.toRad(0, AngleUnits.Deg)).toBe(0);
26
+ expect(Angle.toRad(180, AngleUnits.Deg)).toBe(Math.PI);
27
+ expect(Angle.toRad(-180, AngleUnits.Deg)).toBe(-Math.PI);
30
28
  });
31
29
  test('from Turn', () => {
32
- expect(src_1.Angle.toRad(1, src_1.AngleUnits.Turn)).toBe(Math.PI * 2);
33
- expect(src_1.Angle.toRad(0, src_1.AngleUnits.Turn)).toBe(0);
34
- expect(src_1.Angle.toRad(0.5, src_1.AngleUnits.Turn)).toBe(Math.PI);
35
- expect(src_1.Angle.toRad(-0.5, src_1.AngleUnits.Turn)).toBe(-Math.PI);
30
+ expect(Angle.toRad(1, AngleUnits.Turn)).toBe(Math.PI * 2);
31
+ expect(Angle.toRad(0, AngleUnits.Turn)).toBe(0);
32
+ expect(Angle.toRad(0.5, AngleUnits.Turn)).toBe(Math.PI);
33
+ expect(Angle.toRad(-0.5, AngleUnits.Turn)).toBe(-Math.PI);
36
34
  });
37
35
  });
38
36
  describe('math.angle.toTurn', () => {
39
37
  test('from Turn', () => {
40
- expect(src_1.Angle.toTurn(0.1, src_1.AngleUnits.Turn)).toBe(0.1);
38
+ expect(Angle.toTurn(0.1, AngleUnits.Turn)).toBe(0.1);
41
39
  });
42
40
  test('from Deg', () => {
43
- expect(src_1.Angle.toTurn(360, src_1.AngleUnits.Deg)).toBe(1);
44
- expect(src_1.Angle.toTurn(0, src_1.AngleUnits.Deg)).toBe(0);
45
- expect(src_1.Angle.toTurn(180, src_1.AngleUnits.Deg)).toBe(0.5);
46
- expect(src_1.Angle.toTurn(-180, src_1.AngleUnits.Deg)).toBe(-0.5);
41
+ expect(Angle.toTurn(360, AngleUnits.Deg)).toBe(1);
42
+ expect(Angle.toTurn(0, AngleUnits.Deg)).toBe(0);
43
+ expect(Angle.toTurn(180, AngleUnits.Deg)).toBe(0.5);
44
+ expect(Angle.toTurn(-180, AngleUnits.Deg)).toBe(-0.5);
47
45
  });
48
46
  test('from Rad', () => {
49
- expect(src_1.Angle.toTurn(Math.PI * 2, src_1.AngleUnits.Rad)).toBe(1);
50
- expect(src_1.Angle.toTurn(0, src_1.AngleUnits.Rad)).toBe(0);
51
- expect(src_1.Angle.toTurn(Math.PI, src_1.AngleUnits.Rad)).toBe(0.5);
52
- expect(src_1.Angle.toTurn(-Math.PI, src_1.AngleUnits.Rad)).toBe(-0.5);
47
+ expect(Angle.toTurn(Math.PI * 2, AngleUnits.Rad)).toBe(1);
48
+ expect(Angle.toTurn(0, AngleUnits.Rad)).toBe(0);
49
+ expect(Angle.toTurn(Math.PI, AngleUnits.Rad)).toBe(0.5);
50
+ expect(Angle.toTurn(-Math.PI, AngleUnits.Rad)).toBe(-0.5);
53
51
  });
54
52
  });
55
53
  describe('math.angle.toPositive', () => {
56
54
  test('deg', () => {
57
- expect(src_1.Angle.toPositive(0, src_1.AngleUnits.Deg)).toBe(0);
58
- expect(src_1.Angle.toPositive(-0, src_1.AngleUnits.Deg)).toBe(0);
59
- expect(src_1.Angle.toPositive(-721, src_1.AngleUnits.Deg)).toBe(359);
60
- expect(src_1.Angle.toPositive(361, src_1.AngleUnits.Deg)).toBe(361);
55
+ expect(Angle.toPositive(0, AngleUnits.Deg)).toBe(0);
56
+ expect(Angle.toPositive(-0, AngleUnits.Deg)).toBe(0);
57
+ expect(Angle.toPositive(-721, AngleUnits.Deg)).toBe(359);
58
+ expect(Angle.toPositive(361, AngleUnits.Deg)).toBe(361);
61
59
  });
62
60
  test('rad', () => {
63
- expect(src_1.Angle.toPositive(0, src_1.AngleUnits.Rad)).toBe(0);
64
- expect(src_1.Angle.toPositive(-0, src_1.AngleUnits.Rad)).toBe(0);
65
- expect(src_1.Angle.toPositive(-Math.PI, src_1.AngleUnits.Rad)).toBe(Math.PI);
66
- expect(src_1.Angle.toPositive(-(Math.PI * 3), src_1.AngleUnits.Rad)).toBe(Math.PI);
61
+ expect(Angle.toPositive(0, AngleUnits.Rad)).toBe(0);
62
+ expect(Angle.toPositive(-0, AngleUnits.Rad)).toBe(0);
63
+ expect(Angle.toPositive(-Math.PI, AngleUnits.Rad)).toBe(Math.PI);
64
+ expect(Angle.toPositive(-(Math.PI * 3), AngleUnits.Rad)).toBe(Math.PI);
67
65
  });
68
66
  test('turn', () => {
69
- expect(src_1.Angle.toPositive(0, src_1.AngleUnits.Turn)).toBe(0);
70
- expect(src_1.Angle.toPositive(-0, src_1.AngleUnits.Turn)).toBe(0);
71
- expect((0, src_1.approximately)(src_1.Angle.toPositive(-1.1, src_1.AngleUnits.Turn), 0.9)).toBe(true);
72
- expect(src_1.Angle.toPositive(1.1, src_1.AngleUnits.Turn)).toBe(1.1);
67
+ expect(Angle.toPositive(0, AngleUnits.Turn)).toBe(0);
68
+ expect(Angle.toPositive(-0, AngleUnits.Turn)).toBe(0);
69
+ expect(approximately(Angle.toPositive(-1.1, AngleUnits.Turn), 0.9)).toBe(true);
70
+ expect(Angle.toPositive(1.1, AngleUnits.Turn)).toBe(1.1);
73
71
  });
74
72
  });
75
73
  describe('math.angle.normalize', () => {
76
74
  test('deg', () => {
77
- expect(src_1.Angle.normalize(0, src_1.AngleUnits.Deg)).toBe(0);
78
- expect(src_1.Angle.normalize(-0, src_1.AngleUnits.Deg)).toBe(0);
79
- expect(src_1.Angle.normalize(-721, src_1.AngleUnits.Deg)).toBe(359);
80
- expect(src_1.Angle.normalize(721, src_1.AngleUnits.Deg)).toBe(1);
81
- expect(src_1.Angle.normalize(361, src_1.AngleUnits.Deg)).toBe(1);
82
- expect(src_1.Angle.normalize(360, src_1.AngleUnits.Deg)).toBe(0);
83
- expect(src_1.Angle.normalize(-360, src_1.AngleUnits.Deg)).toBe(0);
75
+ expect(Angle.normalize(0, AngleUnits.Deg)).toBe(0);
76
+ expect(Angle.normalize(-0, AngleUnits.Deg)).toBe(0);
77
+ expect(Angle.normalize(-721, AngleUnits.Deg)).toBe(359);
78
+ expect(Angle.normalize(721, AngleUnits.Deg)).toBe(1);
79
+ expect(Angle.normalize(361, AngleUnits.Deg)).toBe(1);
80
+ expect(Angle.normalize(360, AngleUnits.Deg)).toBe(0);
81
+ expect(Angle.normalize(-360, AngleUnits.Deg)).toBe(0);
84
82
  });
85
83
  test('rad', () => {
86
- expect(src_1.Angle.normalize(0, src_1.AngleUnits.Rad)).toBe(0);
87
- expect(src_1.Angle.normalize(-0, src_1.AngleUnits.Rad)).toBe(0);
88
- expect(src_1.Angle.normalize(-(Math.PI * 3), src_1.AngleUnits.Rad)).toBe(Math.PI);
89
- expect(src_1.Angle.normalize(Math.PI * 3, src_1.AngleUnits.Rad)).toBe(Math.PI);
90
- expect((0, src_1.approximately)(src_1.Angle.normalize(Math.PI * 2 + 0.01, src_1.AngleUnits.Rad), 0.01)).toBe(true);
91
- expect(src_1.Angle.normalize(Math.PI * 2, src_1.AngleUnits.Rad)).toBe(0);
92
- expect(src_1.Angle.normalize(-Math.PI * 2, src_1.AngleUnits.Rad)).toBe(0);
84
+ expect(Angle.normalize(0, AngleUnits.Rad)).toBe(0);
85
+ expect(Angle.normalize(-0, AngleUnits.Rad)).toBe(0);
86
+ expect(Angle.normalize(-(Math.PI * 3), AngleUnits.Rad)).toBe(Math.PI);
87
+ expect(Angle.normalize(Math.PI * 3, AngleUnits.Rad)).toBe(Math.PI);
88
+ expect(approximately(Angle.normalize(Math.PI * 2 + 0.01, AngleUnits.Rad), 0.01)).toBe(true);
89
+ expect(Angle.normalize(Math.PI * 2, AngleUnits.Rad)).toBe(0);
90
+ expect(Angle.normalize(-Math.PI * 2, AngleUnits.Rad)).toBe(0);
93
91
  });
94
92
  test('turn', () => {
95
93
  });
96
94
  });
97
95
  describe('math.angle.toCSS', () => {
98
- expect(src_1.Angle.toCSS(1, src_1.AngleUnits.Deg)).toEqual('rotate(1deg)');
99
- expect(src_1.Angle.toCSS(1, src_1.AngleUnits.Rad)).toEqual('rotate(1rad)');
100
- expect(src_1.Angle.toCSS(1, src_1.AngleUnits.Turn)).toEqual('rotate(1turn)');
101
- expect(src_1.Angle.toCSS(-1, src_1.AngleUnits.Deg)).toEqual('rotate(-1deg)');
102
- expect(src_1.Angle.toCSS(-1, src_1.AngleUnits.Rad)).toEqual('rotate(-1rad)');
103
- expect(src_1.Angle.toCSS(-1, src_1.AngleUnits.Turn)).toEqual('rotate(-1turn)');
104
- expect(src_1.Angle.toCSS(NaN, src_1.AngleUnits.Deg)).toEqual('');
105
- expect(src_1.Angle.toCSS(Infinity, src_1.AngleUnits.Rad)).toEqual('');
106
- expect(src_1.Angle.toCSS(-Infinity, src_1.AngleUnits.Turn)).toEqual('');
107
- expect(src_1.Angle.toCSS('1e -08', src_1.AngleUnits.Deg)).toEqual('');
108
- expect(src_1.Angle.toCSS(undefined, src_1.AngleUnits.Deg)).toEqual('');
109
- expect(src_1.Angle.toCSS(null, src_1.AngleUnits.Deg)).toEqual('');
96
+ expect(Angle.toCSS(1, AngleUnits.Deg)).toEqual('rotate(1deg)');
97
+ expect(Angle.toCSS(1, AngleUnits.Rad)).toEqual('rotate(1rad)');
98
+ expect(Angle.toCSS(1, AngleUnits.Turn)).toEqual('rotate(1turn)');
99
+ expect(Angle.toCSS(-1, AngleUnits.Deg)).toEqual('rotate(-1deg)');
100
+ expect(Angle.toCSS(-1, AngleUnits.Rad)).toEqual('rotate(-1rad)');
101
+ expect(Angle.toCSS(-1, AngleUnits.Turn)).toEqual('rotate(-1turn)');
102
+ expect(Angle.toCSS(NaN, AngleUnits.Deg)).toEqual('');
103
+ expect(Angle.toCSS(Infinity, AngleUnits.Rad)).toEqual('');
104
+ expect(Angle.toCSS(-Infinity, AngleUnits.Turn)).toEqual('');
105
+ expect(Angle.toCSS('1e -08', AngleUnits.Deg)).toEqual('');
106
+ expect(Angle.toCSS(undefined, AngleUnits.Deg)).toEqual('');
107
+ expect(Angle.toCSS(null, AngleUnits.Deg)).toEqual('');
110
108
  });
@@ -1,42 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const src_1 = require("../src");
1
+ import { approximately, identityMatrix, Matrix2d } from "../src";
4
2
  describe('Matrix', () => {
5
3
  let matrix;
6
4
  test('should be the same', () => {
7
- matrix = src_1.identityMatrix;
8
- matrix = src_1.Matrix2d.multiply(matrix, src_1.identityMatrix);
9
- expect(matrix).toEqual(src_1.identityMatrix);
10
- expect(matrix).not.toBe(src_1.identityMatrix);
5
+ matrix = identityMatrix;
6
+ matrix = Matrix2d.multiply(matrix, identityMatrix);
7
+ expect(matrix).toEqual(identityMatrix);
8
+ expect(matrix).not.toBe(identityMatrix);
11
9
  });
12
10
  test('transform', () => {
13
- matrix = src_1.identityMatrix;
14
- matrix = src_1.Matrix2d.translate(matrix, 10);
11
+ matrix = identityMatrix;
12
+ matrix = Matrix2d.translate(matrix, 10);
15
13
  expect(matrix).toEqual([1, 0, 0, 1, 10, 0]);
16
- matrix = src_1.Matrix2d.translate(matrix, 10);
14
+ matrix = Matrix2d.translate(matrix, 10);
17
15
  expect(matrix).not.toEqual([1, 0, 0, 1, 10, 0]);
18
16
  expect(matrix[4]).toBe(20);
19
- matrix = src_1.Matrix2d.translate(matrix, 0, 1);
17
+ matrix = Matrix2d.translate(matrix, 0, 1);
20
18
  expect(matrix[4]).toBe(20);
21
19
  expect(matrix[5]).toBe(1);
22
- matrix = src_1.Matrix2d.scale(matrix, 2);
20
+ matrix = Matrix2d.scale(matrix, 2);
23
21
  expect(matrix[0]).toBe(2);
24
22
  expect(matrix[1]).toBe(0);
25
23
  expect(matrix[2]).toBe(0);
26
24
  expect(matrix[3]).toBe(2);
27
25
  expect(matrix[4]).toBe(20);
28
26
  expect(matrix[5]).toBe(1);
29
- matrix = src_1.Matrix2d.rotate(matrix, 90);
30
- expect((0, src_1.approximately)(matrix[0], 0)).toBe(true);
31
- expect((0, src_1.approximately)(matrix[1], 2)).toBe(true);
32
- expect((0, src_1.approximately)(matrix[2], -2)).toBe(true);
33
- expect((0, src_1.approximately)(matrix[3], 0)).toBe(true);
34
- expect((0, src_1.approximately)(matrix[4], 20)).toBe(true);
35
- expect((0, src_1.approximately)(matrix[5], 1)).toBe(true);
36
- matrix = src_1.Matrix2d.rotateIdentity(45);
37
- expect((0, src_1.approximately)(matrix[0], matrix[1])).toBe(true);
38
- expect((0, src_1.approximately)(matrix[2], -matrix[3])).toBe(true);
39
- matrix = src_1.Matrix2d.skewIdentity(-45, 0);
40
- expect((0, src_1.approximately)(matrix[3], 1)).toBe(true);
27
+ matrix = Matrix2d.rotate(matrix, 90);
28
+ expect(approximately(matrix[0], 0)).toBe(true);
29
+ expect(approximately(matrix[1], 2)).toBe(true);
30
+ expect(approximately(matrix[2], -2)).toBe(true);
31
+ expect(approximately(matrix[3], 0)).toBe(true);
32
+ expect(approximately(matrix[4], 20)).toBe(true);
33
+ expect(approximately(matrix[5], 1)).toBe(true);
34
+ matrix = Matrix2d.rotateIdentity(45);
35
+ expect(approximately(matrix[0], matrix[1])).toBe(true);
36
+ expect(approximately(matrix[2], -matrix[3])).toBe(true);
37
+ matrix = Matrix2d.skewIdentity(-45, 0);
38
+ expect(approximately(matrix[3], 1)).toBe(true);
41
39
  });
42
40
  });
@@ -1,33 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const src_1 = require("../src");
1
+ import { approximately, isCorrectNumber, toPositive } from "../src";
4
2
  test('approximately', () => {
5
- expect((0, src_1.approximately)(0, 0)).toBe(true);
6
- expect((0, src_1.approximately)(1 + 1e-8, 1)).toBe(true);
7
- expect((0, src_1.approximately)(-1 - 1e-8, -1)).toBe(true);
8
- expect((0, src_1.approximately)(1 + 1e-8 + 1e-9, 1)).toBe(false);
9
- expect((0, src_1.approximately)(-1 - 1e-8 - 1e-9, -1)).toBe(false);
10
- expect((0, src_1.approximately)(0, 0.1)).toBe(false);
11
- expect((0, src_1.approximately)(0, 0.1, 0.1)).toBe(true);
3
+ expect(approximately(0, 0)).toBe(true);
4
+ expect(approximately(1 + 1e-8, 1)).toBe(true);
5
+ expect(approximately(-1 - 1e-8, -1)).toBe(true);
6
+ expect(approximately(1 + 1e-8 + 1e-9, 1)).toBe(false);
7
+ expect(approximately(-1 - 1e-8 - 1e-9, -1)).toBe(false);
8
+ expect(approximately(0, 0.1)).toBe(false);
9
+ expect(approximately(0, 0.1, 0.1)).toBe(true);
12
10
  });
13
11
  test('toPositive', () => {
14
- expect((0, src_1.toPositive)(-1, 360)).toEqual(359);
15
- expect((0, src_1.toPositive)(1, 360)).toEqual(1);
16
- expect((0, src_1.toPositive)(0, 1)).toEqual(0);
17
- expect((0, src_1.toPositive)(-720, 360)).toEqual(0);
18
- expect((0, src_1.toPositive)(-721, 360)).toEqual(359);
19
- expect((0, src_1.toPositive)(-0, 0)).toEqual(0);
12
+ expect(toPositive(-1, 360)).toEqual(359);
13
+ expect(toPositive(1, 360)).toEqual(1);
14
+ expect(toPositive(0, 1)).toEqual(0);
15
+ expect(toPositive(-720, 360)).toEqual(0);
16
+ expect(toPositive(-721, 360)).toEqual(359);
17
+ expect(toPositive(-0, 0)).toEqual(0);
20
18
  });
21
19
  test('isCorrectNumber', () => {
22
- expect((0, src_1.isCorrectNumber)(0)).toBe(true);
23
- expect((0, src_1.isCorrectNumber)('0')).toBe(true);
24
- expect((0, src_1.isCorrectNumber)('0e-08')).toBe(true);
25
- expect((0, src_1.isCorrectNumber)('0e -08')).toBe(false);
26
- expect((0, src_1.isCorrectNumber)({ 1: 2 })).toBe(false);
27
- expect((0, src_1.isCorrectNumber)(null)).toBe(false);
28
- expect((0, src_1.isCorrectNumber)(undefined)).toBe(false);
29
- expect((0, src_1.isCorrectNumber)(Infinity)).toBe(false);
30
- expect((0, src_1.isCorrectNumber)(-Infinity)).toBe(false);
31
- expect((0, src_1.isCorrectNumber)(NaN)).toBe(false);
32
- expect((0, src_1.isCorrectNumber)('')).toBe(false);
20
+ expect(isCorrectNumber(0)).toBe(true);
21
+ expect(isCorrectNumber('0')).toBe(true);
22
+ expect(isCorrectNumber('0e-08')).toBe(true);
23
+ expect(isCorrectNumber('0e -08')).toBe(false);
24
+ expect(isCorrectNumber({ 1: 2 })).toBe(false);
25
+ expect(isCorrectNumber(null)).toBe(false);
26
+ expect(isCorrectNumber(undefined)).toBe(false);
27
+ expect(isCorrectNumber(Infinity)).toBe(false);
28
+ expect(isCorrectNumber(-Infinity)).toBe(false);
29
+ expect(isCorrectNumber(NaN)).toBe(false);
30
+ expect(isCorrectNumber('')).toBe(false);
33
31
  });
package/dist/bin/index.js CHANGED
@@ -1,17 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./src"), exports);
1
+ export * from './src';
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Angle = exports.AngleUnits = void 0;
4
- const utils_1 = require("./utils");
5
- var AngleUnits;
1
+ import { isCorrectNumber, toPositive } from "./utils";
2
+ export var AngleUnits;
6
3
  (function (AngleUnits) {
7
4
  AngleUnits[AngleUnits["Deg"] = 0] = "Deg";
8
5
  AngleUnits[AngleUnits["Rad"] = 1] = "Rad";
9
6
  AngleUnits[AngleUnits["Turn"] = 2] = "Turn";
10
- })(AngleUnits || (exports.AngleUnits = AngleUnits = {}));
11
- class Angle {
7
+ })(AngleUnits || (AngleUnits = {}));
8
+ export class Angle {
12
9
  static toRad(angle, unit = AngleUnits.Deg) {
13
10
  switch (unit) {
14
11
  case AngleUnits.Rad:
@@ -42,11 +39,11 @@ class Angle {
42
39
  static toPositive(angle, unit) {
43
40
  switch (unit) {
44
41
  case AngleUnits.Deg:
45
- return (0, utils_1.toPositive)(angle, 360);
42
+ return toPositive(angle, 360);
46
43
  case AngleUnits.Turn:
47
- return (0, utils_1.toPositive)(angle, 1);
44
+ return toPositive(angle, 1);
48
45
  case AngleUnits.Rad:
49
- return (0, utils_1.toPositive)(angle, Math.PI * 2);
46
+ return toPositive(angle, Math.PI * 2);
50
47
  }
51
48
  }
52
49
  static normalize(angle, unit) {
@@ -60,7 +57,7 @@ class Angle {
60
57
  }
61
58
  }
62
59
  static toCSS(angle, unit) {
63
- if (!(0, utils_1.isCorrectNumber)(angle))
60
+ if (!isCorrectNumber(angle))
64
61
  return '';
65
62
  return `rotate(${angle}${Angle.angleUnitCorrespondence[unit]})`;
66
63
  }
@@ -70,4 +67,3 @@ class Angle {
70
67
  [AngleUnits.Deg]: 'deg',
71
68
  };
72
69
  }
73
- exports.Angle = Angle;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Color = void 0;
4
- class Color {
1
+ export class Color {
5
2
  red;
6
3
  green;
7
4
  blue;
@@ -17,4 +14,3 @@ class Color {
17
14
  return `rgb(${this.red}, ${this.green}, ${this.blue})`;
18
15
  }
19
16
  }
20
- exports.Color = Color;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConicGradient = void 0;
4
- const color_1 = require("./color");
5
- class ConicGradient {
1
+ import { Color } from "./color";
2
+ export class ConicGradient {
6
3
  colors;
7
4
  constructor(...colors) {
8
5
  this.colors = [...colors].sort((a, b) => a.angle - b.angle);
@@ -27,7 +24,7 @@ class ConicGradient {
27
24
  if (!prev || !next)
28
25
  return undefined;
29
26
  const coef = (angle - prev.angle) / (next.angle - prev.angle);
30
- return new color_1.Color(Math.floor((next.color.red - prev.color.red) * coef + prev.color.red), Math.floor((next.color.green - prev.color.green) * coef + prev.color.green), Math.floor((next.color.blue - prev.color.blue) * coef + prev.color.blue));
27
+ return new Color(Math.floor((next.color.red - prev.color.red) * coef + prev.color.red), Math.floor((next.color.green - prev.color.green) * coef + prev.color.green), Math.floor((next.color.blue - prev.color.blue) * coef + prev.color.blue));
31
28
  }
32
29
  getAngleByColor(color) {
33
30
  let prev;
@@ -78,4 +75,3 @@ class ConicGradient {
78
75
  return s;
79
76
  }
80
77
  }
81
- exports.ConicGradient = ConicGradient;
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./color"), exports);
18
- __exportStar(require("./conic.gradient"), exports);
1
+ export * from './color';
2
+ export * from './conic.gradient';
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Circle = void 0;
4
- const matrix_1 = require("../matrix");
5
- class Circle {
1
+ import { Matrix2d } from "../matrix";
2
+ export class Circle {
6
3
  center;
7
4
  r;
8
5
  constructor(center, r) {
@@ -10,7 +7,6 @@ class Circle {
10
7
  this.r = r;
11
8
  }
12
9
  transform(matrix) {
13
- this.center = matrix_1.Matrix2d.apply(matrix, this.center);
10
+ this.center = Matrix2d.apply(matrix, this.center);
14
11
  }
15
12
  }
16
- exports.Circle = Circle;
@@ -1,19 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./point"), exports);
18
- __exportStar(require("./circle"), exports);
19
- __exportStar(require("./straight-line"), exports);
1
+ export * from './point';
2
+ export * from './circle';
3
+ export * from './straight-line';
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Point2 = void 0;
4
- class Point2 {
1
+ export class Point2 {
5
2
  static sum(p1, p2) {
6
3
  return [
7
4
  p1[0] + p2[0],
@@ -15,4 +12,3 @@ class Point2 {
15
12
  ];
16
13
  }
17
14
  }
18
- exports.Point2 = Point2;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StraightLine = void 0;
4
- const matrix_1 = require("../matrix");
5
- class StraightLine {
1
+ import { Matrix2d } from "../matrix";
2
+ export class StraightLine {
6
3
  p1;
7
4
  p2;
8
5
  constructor(p1, p2) {
@@ -13,7 +10,6 @@ class StraightLine {
13
10
  if (transformThis) {
14
11
  return this;
15
12
  }
16
- return new StraightLine(matrix_1.Matrix2d.apply(matrix, this.p1), matrix_1.Matrix2d.apply(matrix, this.p2));
13
+ return new StraightLine(Matrix2d.apply(matrix, this.p1), Matrix2d.apply(matrix, this.p2));
17
14
  }
18
15
  }
19
- exports.StraightLine = StraightLine;
@@ -1,22 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./angle"), exports);
18
- __exportStar(require("./matrix"), exports);
19
- __exportStar(require("./operator"), exports);
20
- __exportStar(require("./utils"), exports);
21
- __exportStar(require("./colors"), exports);
22
- __exportStar(require("./figures"), exports);
1
+ export * from './angle';
2
+ export * from './matrix';
3
+ export * from './operator';
4
+ export * from './utils';
5
+ export * from './colors';
6
+ export * from './figures';
@@ -1,13 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Matrix2d = exports.identityMatrix = void 0;
4
- exports.getIdentityMatrix = getIdentityMatrix;
5
- const angle_1 = require("./angle");
6
- exports.identityMatrix = [1, 0, 0, 1, 0, 0];
7
- function getIdentityMatrix() {
1
+ import { Angle, AngleUnits } from "./angle";
2
+ export const identityMatrix = [1, 0, 0, 1, 0, 0];
3
+ export function getIdentityMatrix() {
8
4
  return [1, 0, 0, 1, 0, 0];
9
5
  }
10
- class Matrix2d {
6
+ export class Matrix2d {
11
7
  static multiply(matrix, ...matrices) {
12
8
  for (let m of matrices) {
13
9
  matrix = [
@@ -33,13 +29,13 @@ class Matrix2d {
33
29
  static scale(m, x, y = x) {
34
30
  return Matrix2d.multiply(m, Matrix2d.scaleIdentity(x, y));
35
31
  }
36
- static rotateIdentity(angle, units = angle_1.AngleUnits.Deg) {
37
- angle = angle_1.Angle.toRad(angle, units);
32
+ static rotateIdentity(angle, units = AngleUnits.Deg) {
33
+ angle = Angle.toRad(angle, units);
38
34
  const cos = Math.cos(angle);
39
35
  const sin = Math.sin(angle);
40
36
  return [cos, sin, -sin, cos, 0, 0];
41
37
  }
42
- static rotate(m, angle, units = angle_1.AngleUnits.Deg) {
38
+ static rotate(m, angle, units = AngleUnits.Deg) {
43
39
  return Matrix2d.multiply(m, Matrix2d.rotateIdentity(angle, units));
44
40
  }
45
41
  static translateIdentity(x, y = 0) {
@@ -54,21 +50,20 @@ class Matrix2d {
54
50
  static translateY(m, y) {
55
51
  return Matrix2d.multiply(m, this.translateIdentity(0, y));
56
52
  }
57
- static skewIdentity(x, y, units = angle_1.AngleUnits.Deg) {
58
- x = angle_1.Angle.toRad(x, units);
59
- y = angle_1.Angle.toRad(y, units);
53
+ static skewIdentity(x, y, units = AngleUnits.Deg) {
54
+ x = Angle.toRad(x, units);
55
+ y = Angle.toRad(y, units);
60
56
  x = Math.tan(x);
61
57
  y = Math.tan(y);
62
58
  return [1, y, x, 1, 0, 0];
63
59
  }
64
- static skewX(m, x, units = angle_1.AngleUnits.Deg) {
60
+ static skewX(m, x, units = AngleUnits.Deg) {
65
61
  return Matrix2d.multiply(m, Matrix2d.skewIdentity(x, 0, units));
66
62
  }
67
- static skewY(m, y, units = angle_1.AngleUnits.Deg) {
63
+ static skewY(m, y, units = AngleUnits.Deg) {
68
64
  return Matrix2d.multiply(m, Matrix2d.skewIdentity(0, y, units));
69
65
  }
70
- static skew(m, x, y = 0, units = angle_1.AngleUnits.Deg) {
66
+ static skew(m, x, y = 0, units = AngleUnits.Deg) {
71
67
  return Matrix2d.multiply(m, Matrix2d.skewIdentity(x, y, units));
72
68
  }
73
69
  }
74
- exports.Matrix2d = Matrix2d;
@@ -1,6 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Operator = void 0;
4
- class Operator {
1
+ export class Operator {
5
2
  }
6
- exports.Operator = Operator;
@@ -1,17 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.approximately = approximately;
4
- exports.toPositive = toPositive;
5
- exports.isCorrectNumber = isCorrectNumber;
6
- function approximately(theValue, is, withPrecision = 1e-8) {
1
+ export function approximately(theValue, is, withPrecision = 1e-8) {
7
2
  return Math.abs(theValue - is) <= withPrecision;
8
3
  }
9
- function toPositive(value, range) {
4
+ export function toPositive(value, range) {
10
5
  if (value >= 0)
11
6
  return Math.abs(value);
12
7
  return Math.abs((range + value % range) % range);
13
8
  }
14
- function isCorrectNumber(value) {
9
+ export function isCorrectNumber(value) {
15
10
  let v = +value;
16
11
  if (!isNaN(value) && isFinite(value)) {
17
12
  v = parseFloat(value);
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@fbltd/math",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "",
5
5
  "main": "dist/bin/index.js",
6
6
  "types": "dist/types/index.d.ts",
7
- "type": "module",
8
7
  "exports": {
9
8
  ".": {
10
9
  "require": "./dist/bin/index.js",
@@ -37,6 +36,7 @@
37
36
  "access": "public"
38
37
  },
39
38
  "devDependencies": {
40
- "@fbltd/bundler": "^2.0.46"
39
+ "@fbltd/bundler": "^2.0.46",
40
+ "typedoc": "^0.26.6"
41
41
  }
42
42
  }