@fbltd/math 1.0.3 → 1.0.5

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.
Files changed (43) hide show
  1. package/dist/bin/index.js +17 -0
  2. package/dist/bin/src/angle.js +80 -0
  3. package/dist/bin/src/colors/color.js +18 -0
  4. package/dist/bin/src/colors/conic.gradient.js +97 -0
  5. package/dist/bin/src/colors/index.js +18 -0
  6. package/dist/bin/src/figures/circle.js +15 -0
  7. package/dist/bin/src/figures/index.js +19 -0
  8. package/dist/bin/src/figures/point.js +21 -0
  9. package/dist/bin/src/figures/straight-line.js +19 -0
  10. package/dist/bin/src/index.js +22 -0
  11. package/dist/bin/src/matrix.js +34 -0
  12. package/dist/bin/src/operator.js +23 -0
  13. package/dist/bin/src/utils.js +22 -0
  14. package/dist/types/index.d.ts +2 -0
  15. package/dist/types/index.d.ts.map +1 -0
  16. package/dist/types/src/angle.d.ts +15 -0
  17. package/dist/types/src/angle.d.ts.map +1 -0
  18. package/dist/types/src/colors/color.d.ts +8 -0
  19. package/dist/types/src/colors/color.d.ts.map +1 -0
  20. package/dist/types/src/colors/conic.gradient.d.ts +18 -0
  21. package/dist/types/src/colors/conic.gradient.d.ts.map +1 -0
  22. package/dist/types/src/colors/index.d.ts +3 -0
  23. package/dist/types/src/colors/index.d.ts.map +1 -0
  24. package/dist/types/src/figures/circle.d.ts +9 -0
  25. package/dist/types/src/figures/circle.d.ts.map +1 -0
  26. package/dist/types/src/figures/index.d.ts +4 -0
  27. package/dist/types/src/figures/index.d.ts.map +1 -0
  28. package/dist/types/src/figures/point.d.ts +6 -0
  29. package/dist/types/src/figures/point.d.ts.map +1 -0
  30. package/dist/types/src/figures/straight-line.d.ts +9 -0
  31. package/dist/types/src/figures/straight-line.d.ts.map +1 -0
  32. package/dist/types/src/index.d.ts +7 -0
  33. package/dist/types/src/index.d.ts.map +1 -0
  34. package/dist/types/src/matrix.d.ts +15 -0
  35. package/dist/types/src/matrix.d.ts.map +1 -0
  36. package/dist/types/src/operator.d.ts +8 -0
  37. package/dist/types/src/operator.d.ts.map +1 -0
  38. package/dist/types/src/utils.d.ts +4 -0
  39. package/dist/types/src/utils.d.ts.map +1 -0
  40. package/package.json +3 -2
  41. package/dist/math.d.ts +0 -121
  42. package/dist/math.js +0 -385
  43. package/dist/math.js.map +0 -1
@@ -0,0 +1,17 @@
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);
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Angle = exports.AngleUnits = void 0;
5
+ var utils_1 = require("./utils");
6
+ var AngleUnits;
7
+ (function (AngleUnits) {
8
+ AngleUnits[AngleUnits["Deg"] = 0] = "Deg";
9
+ AngleUnits[AngleUnits["Rad"] = 1] = "Rad";
10
+ AngleUnits[AngleUnits["Turn"] = 2] = "Turn";
11
+ })(AngleUnits || (exports.AngleUnits = AngleUnits = {}));
12
+ var Angle = (function () {
13
+ function Angle() {
14
+ }
15
+ Angle.toRad = function (angle, unit) {
16
+ if (unit === void 0) { unit = AngleUnits.Deg; }
17
+ switch (unit) {
18
+ case AngleUnits.Rad:
19
+ return angle;
20
+ case AngleUnits.Deg:
21
+ return angle * Math.PI / 180;
22
+ case AngleUnits.Turn:
23
+ return Math.PI * 2 * angle;
24
+ }
25
+ };
26
+ Angle.toTurn = function (angle, unit) {
27
+ if (unit === void 0) { unit = AngleUnits.Deg; }
28
+ switch (unit) {
29
+ case AngleUnits.Turn:
30
+ return angle;
31
+ case AngleUnits.Deg:
32
+ return angle / 360;
33
+ case AngleUnits.Rad:
34
+ return angle / (Math.PI * 2);
35
+ }
36
+ };
37
+ Angle.toDeg = function (angle, unit) {
38
+ if (unit === void 0) { unit = AngleUnits.Rad; }
39
+ switch (unit) {
40
+ case AngleUnits.Deg:
41
+ return angle;
42
+ case AngleUnits.Turn:
43
+ return angle * 360;
44
+ case AngleUnits.Rad:
45
+ return angle * 180 / Math.PI;
46
+ }
47
+ };
48
+ Angle.toPositive = function (angle, unit) {
49
+ switch (unit) {
50
+ case AngleUnits.Deg:
51
+ return (0, utils_1.toPositive)(angle, 360);
52
+ case AngleUnits.Turn:
53
+ return (0, utils_1.toPositive)(angle, 1);
54
+ case AngleUnits.Rad:
55
+ return (0, utils_1.toPositive)(angle, Math.PI * 2);
56
+ }
57
+ };
58
+ Angle.normalize = function (angle, unit) {
59
+ switch (unit) {
60
+ case AngleUnits.Deg:
61
+ return Angle.toPositive(angle, unit) % 360;
62
+ case AngleUnits.Rad:
63
+ return Angle.toPositive(angle, unit) % (Math.PI * 2);
64
+ case AngleUnits.Turn:
65
+ return Angle.toPositive(angle, unit) % 1;
66
+ }
67
+ };
68
+ Angle.toCSS = function (angle, unit) {
69
+ if (!(0, utils_1.isCorrectNumber)(angle))
70
+ return '';
71
+ return "rotate(".concat(angle).concat(Angle.angleUnitCorrespondence[unit], ")");
72
+ };
73
+ Angle.angleUnitCorrespondence = (_a = {},
74
+ _a[AngleUnits.Rad] = 'rad',
75
+ _a[AngleUnits.Turn] = 'turn',
76
+ _a[AngleUnits.Deg] = 'deg',
77
+ _a);
78
+ return Angle;
79
+ }());
80
+ exports.Angle = Angle;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Color = void 0;
4
+ var Color = (function () {
5
+ function Color(red, green, blue) {
6
+ this.red = red;
7
+ this.green = green;
8
+ this.blue = blue;
9
+ this.red = Math.max(Math.min(red, 255), 0);
10
+ this.green = Math.max(Math.min(green, 255), 0);
11
+ this.blue = Math.max(Math.min(blue, 255), 0);
12
+ }
13
+ Color.prototype.toCSS = function () {
14
+ return "rgb(".concat(this.red, ", ").concat(this.green, ", ").concat(this.blue, ")");
15
+ };
16
+ return Color;
17
+ }());
18
+ exports.Color = Color;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ConicGradient = void 0;
13
+ var color_1 = require("./color");
14
+ var ConicGradient = (function () {
15
+ function ConicGradient() {
16
+ var colors = [];
17
+ for (var _i = 0; _i < arguments.length; _i++) {
18
+ colors[_i] = arguments[_i];
19
+ }
20
+ this.colors = __spreadArray([], colors, true).sort(function (a, b) { return a.angle - b.angle; });
21
+ this.colors.push({
22
+ angle: 1,
23
+ color: this.colors[0].color
24
+ });
25
+ }
26
+ ConicGradient.prototype.getColorAtAngle = function (angle) {
27
+ var prev = undefined;
28
+ var next = undefined;
29
+ for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
30
+ var color = _a[_i];
31
+ if (color.angle === angle)
32
+ return color.color;
33
+ if (color.angle < angle)
34
+ prev = color;
35
+ if (color.angle > angle) {
36
+ next = color;
37
+ break;
38
+ }
39
+ }
40
+ if (!prev || !next)
41
+ return undefined;
42
+ var coef = (angle - prev.angle) / (next.angle - prev.angle);
43
+ 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));
44
+ };
45
+ ConicGradient.prototype.getAngleByColor = function (color) {
46
+ var prev;
47
+ var next = this.colors[0];
48
+ if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
49
+ return next.angle;
50
+ for (var i = 1; i < this.colors.length; i++) {
51
+ next = this.colors[i];
52
+ prev = this.colors[i - 1];
53
+ if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
54
+ return next.angle;
55
+ var redDif = next.color.red - prev.color.red;
56
+ var greenDif = next.color.green - prev.color.green;
57
+ var blueDif = next.color.blue - prev.color.blue;
58
+ var redDifColor = color.red - prev.color.red;
59
+ var greenDifColor = color.green - prev.color.green;
60
+ var blueDifColor = color.blue - prev.color.blue;
61
+ if (((redDifColor >= 0 && redDifColor <= redDif) || (redDifColor <= 0 && redDifColor >= redDif)) &&
62
+ ((greenDifColor >= 0 && greenDifColor <= greenDif) || (greenDifColor <= 0 && greenDifColor >= greenDif)) &&
63
+ ((blueDifColor >= 0 && blueDifColor <= blueDif) || (blueDifColor <= 0 && blueDifColor >= blueDif))) {
64
+ var redCoef = ((color.red - prev.color.red) / (next.color.red - prev.color.red));
65
+ var greenCoef = ((color.green - prev.color.green) / (next.color.green - prev.color.green));
66
+ var blueCoef = ((color.blue - prev.color.blue) / (next.color.blue - prev.color.blue));
67
+ var coefs = [redCoef, greenCoef, blueCoef].filter(Boolean);
68
+ return (next.angle - prev.angle) * Math.min.apply(Math, coefs) + prev.angle;
69
+ }
70
+ }
71
+ return undefined;
72
+ };
73
+ ConicGradient.prototype.isColorInRange = function (color) {
74
+ return Boolean(this.getAngleByColor(color));
75
+ };
76
+ ConicGradient.prototype.toCanvas = function (ctx, center) {
77
+ var gradient = ctx.createConicGradient.apply(ctx, __spreadArray([0], center, false));
78
+ for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
79
+ var color = _a[_i];
80
+ gradient.addColorStop(color.angle, color.color.toCSS());
81
+ }
82
+ return gradient;
83
+ };
84
+ ConicGradient.prototype.toCSS = function () {
85
+ var s = '';
86
+ for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
87
+ var color = _a[_i];
88
+ if (s)
89
+ s += ',';
90
+ s += "rgb(".concat(color.color.red, ",").concat(color.color.green, ",").concat(color.color.blue, ")");
91
+ }
92
+ s = "conic-gradient(in srgb from 0.25turn at 50% 50%, ".concat(s, ")");
93
+ return s;
94
+ };
95
+ return ConicGradient;
96
+ }());
97
+ exports.ConicGradient = ConicGradient;
@@ -0,0 +1,18 @@
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);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Circle = void 0;
4
+ var matrix_1 = require("../matrix");
5
+ var Circle = (function () {
6
+ function Circle(center, r) {
7
+ this.center = center;
8
+ this.r = r;
9
+ }
10
+ Circle.prototype.transform = function (matrix) {
11
+ this.center = matrix_1.Matrix2d.apply(matrix, this.center);
12
+ };
13
+ return Circle;
14
+ }());
15
+ exports.Circle = Circle;
@@ -0,0 +1,19 @@
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);
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Point2 = void 0;
4
+ var Point2 = (function () {
5
+ function Point2() {
6
+ }
7
+ Point2.sum = function (p1, p2) {
8
+ return [
9
+ p1[0] + p2[0],
10
+ p1[1] + p2[1],
11
+ ];
12
+ };
13
+ Point2.scale = function (v, factor) {
14
+ return [
15
+ v[0] * factor,
16
+ v[1] * factor,
17
+ ];
18
+ };
19
+ return Point2;
20
+ }());
21
+ exports.Point2 = Point2;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StraightLine = void 0;
4
+ var matrix_1 = require("../matrix");
5
+ var StraightLine = (function () {
6
+ function StraightLine(p1, p2) {
7
+ this.p1 = p1;
8
+ this.p2 = p2;
9
+ }
10
+ StraightLine.prototype.transform = function (matrix, transformThis) {
11
+ if (transformThis === void 0) { transformThis = false; }
12
+ if (transformThis) {
13
+ return this;
14
+ }
15
+ return new StraightLine(matrix_1.Matrix2d.apply(matrix, this.p1), matrix_1.Matrix2d.apply(matrix, this.p2));
16
+ };
17
+ return StraightLine;
18
+ }());
19
+ exports.StraightLine = StraightLine;
@@ -0,0 +1,22 @@
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);
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Matrix2d = exports.identityMatrix = void 0;
4
+ exports.identityMatrix = [1, 0, 0, 1, 0, 0];
5
+ var Matrix2d = (function () {
6
+ function Matrix2d() {
7
+ }
8
+ Matrix2d.multiply = function (matrix) {
9
+ var matrices = [];
10
+ for (var _i = 1; _i < arguments.length; _i++) {
11
+ matrices[_i - 1] = arguments[_i];
12
+ }
13
+ for (var _a = 0, matrices_1 = matrices; _a < matrices_1.length; _a++) {
14
+ var m = matrices_1[_a];
15
+ matrix = [
16
+ matrix[0] * m[0] + matrix[2] * m[1],
17
+ matrix[1] * m[0] + matrix[3] * m[1],
18
+ matrix[0] * m[2] + matrix[2] * m[3],
19
+ matrix[1] * m[2] + matrix[3] * m[3],
20
+ matrix[0] * m[4] + matrix[2] * m[5] + matrix[4],
21
+ matrix[1] * m[4] + matrix[3] * m[5] + matrix[5],
22
+ ];
23
+ }
24
+ return matrix;
25
+ };
26
+ Matrix2d.apply = function (matrix, point) {
27
+ return [
28
+ matrix[0] * point[0] + matrix[2] * point[1] + matrix[4],
29
+ matrix[1] * point[0] + matrix[3] * point[1] + matrix[5],
30
+ ];
31
+ };
32
+ return Matrix2d;
33
+ }());
34
+ exports.Matrix2d = Matrix2d;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Operator = void 0;
4
+ var angle_1 = require("./angle");
5
+ var Operator = (function () {
6
+ function Operator() {
7
+ }
8
+ Operator.rotateIdentity = function (angle, unit) {
9
+ if (unit === void 0) { unit = angle_1.AngleUnits.Deg; }
10
+ angle = angle_1.Angle.toRad(angle, unit);
11
+ this.temp1 = Math.cos(angle);
12
+ this.temp2 = Math.sin(angle);
13
+ return [
14
+ this.temp1,
15
+ this.temp2,
16
+ -this.temp2,
17
+ this.temp1,
18
+ 0, 0
19
+ ];
20
+ };
21
+ return Operator;
22
+ }());
23
+ exports.Operator = Operator;
@@ -0,0 +1,22 @@
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) {
7
+ if (withPrecision === void 0) { withPrecision = 1e-8; }
8
+ return Math.abs(theValue - is) <= withPrecision;
9
+ }
10
+ function toPositive(value, range) {
11
+ if (value >= 0)
12
+ return Math.abs(value);
13
+ return Math.abs((range + value % range) % range);
14
+ }
15
+ function isCorrectNumber(value) {
16
+ var v = +value;
17
+ if (!isNaN(value) && isFinite(value)) {
18
+ v = parseFloat(value);
19
+ return !isNaN(v) && isFinite(v);
20
+ }
21
+ return false;
22
+ }
@@ -0,0 +1,2 @@
1
+ export * from './src';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA"}
@@ -0,0 +1,15 @@
1
+ export declare enum AngleUnits {
2
+ Deg = 0,
3
+ Rad = 1,
4
+ Turn = 2
5
+ }
6
+ export declare class Angle {
7
+ static toRad(angle: number, unit?: AngleUnits): number;
8
+ static toTurn(angle: number, unit?: AngleUnits): number;
9
+ static toDeg(angle: number, unit?: AngleUnits): number;
10
+ static toPositive(angle: number, unit: AngleUnits): number;
11
+ static normalize(angle: number, unit: AngleUnits): number;
12
+ static toCSS(angle: number, unit: AngleUnits): string;
13
+ static angleUnitCorrespondence: Record<AngleUnits, string>;
14
+ }
15
+ //# sourceMappingURL=angle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angle.d.ts","sourceRoot":"","sources":["../../../src/angle.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU;IAClB,GAAG,IAAI;IACP,GAAG,IAAI;IACP,IAAI,IAAI;CACX;AAGD,qBAAa,KAAK;IAGd,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B;IAW7D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B;IAW9D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B;IAa7D,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAWjD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAehD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAK5C,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAIzD;CAGJ"}
@@ -0,0 +1,8 @@
1
+ export declare class Color {
2
+ red: number;
3
+ green: number;
4
+ blue: number;
5
+ constructor(red: number, green: number, blue: number);
6
+ toCSS(): string;
7
+ }
8
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/colors/color.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IACK,GAAG,EAAE,MAAM;IAAS,KAAK,EAAE,MAAM;IAAS,IAAI,EAAE,MAAM;gBAAtD,GAAG,EAAE,MAAM,EAAS,KAAK,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM;IAMzE,KAAK;CAGR"}
@@ -0,0 +1,18 @@
1
+ import { Color } from "./color";
2
+ import { IPoint2 } from "../figures";
3
+ export declare class ConicGradient {
4
+ colors: {
5
+ angle: number;
6
+ color: Color;
7
+ }[];
8
+ constructor(...colors: {
9
+ angle: number;
10
+ color: Color;
11
+ }[]);
12
+ getColorAtAngle(angle: number): Color;
13
+ getAngleByColor(color: Color): number;
14
+ isColorInRange(color: Color): boolean;
15
+ toCanvas(ctx: CanvasRenderingContext2D, center: IPoint2): CanvasGradient;
16
+ toCSS(): string;
17
+ }
18
+ //# sourceMappingURL=conic.gradient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conic.gradient.d.ts","sourceRoot":"","sources":["../../../../src/colors/conic.gradient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,qBAAa,aAAa;IACtB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,CAAA;gBAE7B,GAAG,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE;IAYxD,eAAe,CAAC,KAAK,EAAE,MAAM;IAuB7B,eAAe,CAAC,KAAK,EAAE,KAAK;IAgC5B,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAOrC,QAAQ,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,OAAO;IAYvD,KAAK;CAYR"}
@@ -0,0 +1,3 @@
1
+ export * from './color';
2
+ export * from './conic.gradient';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/colors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { IPoint2 } from "./point";
2
+ import { IMatrix2d } from "../matrix";
3
+ export declare class Circle {
4
+ center: IPoint2;
5
+ r: number;
6
+ constructor(center: IPoint2, r: number);
7
+ transform(matrix: IMatrix2d): void;
8
+ }
9
+ //# sourceMappingURL=circle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle.d.ts","sourceRoot":"","sources":["../../../../src/figures/circle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,SAAS,EAAW,MAAM,WAAW,CAAC;AAE9C,qBAAa,MAAM;IACI,MAAM,EAAE,OAAO;IAAS,CAAC,EAAE,MAAM;gBAAjC,MAAM,EAAE,OAAO,EAAS,CAAC,EAAE,MAAM;IAIpD,SAAS,CAAC,MAAM,EAAE,SAAS;CAG9B"}
@@ -0,0 +1,4 @@
1
+ export * from './point';
2
+ export * from './circle';
3
+ export * from './straight-line';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/figures/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type IPoint2 = [number, number];
2
+ export declare class Point2 {
3
+ static sum(p1: IPoint2, p2: IPoint2): IPoint2;
4
+ static scale(v: IPoint2, factor: number): IPoint2;
5
+ }
6
+ //# sourceMappingURL=point.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../../src/figures/point.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAKtC,qBAAa,MAAM;IACf,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO;IAO7C,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAMpD"}
@@ -0,0 +1,9 @@
1
+ import { IPoint2 } from "./point";
2
+ import { IMatrix2d } from "../matrix";
3
+ export declare class StraightLine {
4
+ p1: IPoint2;
5
+ p2: IPoint2;
6
+ constructor(p1: IPoint2, p2: IPoint2);
7
+ transform(matrix: IMatrix2d, transformThis?: boolean): StraightLine;
8
+ }
9
+ //# sourceMappingURL=straight-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"straight-line.d.ts","sourceRoot":"","sources":["../../../../src/figures/straight-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,SAAS,EAAW,MAAM,WAAW,CAAC;AAE9C,qBAAa,YAAY;IACF,EAAE,EAAE,OAAO;IAAS,EAAE,EAAE,OAAO;gBAA/B,EAAE,EAAE,OAAO,EAAS,EAAE,EAAE,OAAO;IAIlD,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,UAAQ;CAMrD"}
@@ -0,0 +1,7 @@
1
+ export * from './angle';
2
+ export * from './matrix';
3
+ export * from './operator';
4
+ export * from './utils';
5
+ export * from './colors';
6
+ export * from './figures';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { IPoint2 } from "./figures";
2
+ export type IMatrix2d = [
3
+ number,
4
+ number,
5
+ number,
6
+ number,
7
+ number,
8
+ number
9
+ ];
10
+ export declare const identityMatrix: IMatrix2d;
11
+ export declare class Matrix2d {
12
+ static multiply(matrix: IMatrix2d, ...matrices: IMatrix2d[]): IMatrix2d;
13
+ static apply(matrix: IMatrix2d, point: IPoint2): IPoint2;
14
+ }
15
+ //# sourceMappingURL=matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,MAAM,MAAM,SAAS,GAAG;IACpB,MAAM;IAAE,MAAM;IAAE,MAAM;IACtB,MAAM;IAAE,MAAM;IAAE,MAAM;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,SAA8B,CAAA;AAE3D,qBAAa,QAAQ;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE;IAe3D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;CAM3D"}
@@ -0,0 +1,8 @@
1
+ import { IMatrix2d } from "./matrix";
2
+ import { AngleUnits } from "./angle";
3
+ export declare class Operator {
4
+ private static temp1;
5
+ private static temp2;
6
+ static rotateIdentity(angle: number, unit?: AngleUnits): IMatrix2d;
7
+ }
8
+ //# sourceMappingURL=operator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../src/operator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,EAAQ,UAAU,EAAC,MAAM,SAAS,CAAC;AAE1C,qBAAa,QAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAQ;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAQ;IAK5B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;CAYrF"}
@@ -0,0 +1,4 @@
1
+ export declare function approximately(theValue: number, is: number, withPrecision?: number): boolean;
2
+ export declare function toPositive(value: number, range: number): number;
3
+ export declare function isCorrectNumber(value: any): boolean;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,GAAE,MAAa,WAEvF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAGtD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,WAOzC"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@fbltd/math",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "",
5
- "main": "dist/math.ts",
5
+ "main": "dist/bin/index.js",
6
+ "types": "dist/types/index.d.ts",
6
7
  "files": [
7
8
  "dist",
8
9
  "README.ms"
package/dist/math.d.ts DELETED
@@ -1,121 +0,0 @@
1
- declare module "src/utils" {
2
- export function approximately(theValue: number, is: number, withPrecision?: number): boolean;
3
- export function toPositive(value: number, range: number): number;
4
- export function isCorrectNumber(value: any): boolean;
5
- }
6
- declare module "src/angle" {
7
- export enum AngleUnits {
8
- Deg = 0,
9
- Rad = 1,
10
- Turn = 2
11
- }
12
- export class Angle {
13
- static toRad(angle: number, unit?: AngleUnits): number;
14
- static toTurn(angle: number, unit?: AngleUnits): number;
15
- static toDeg(angle: number, unit?: AngleUnits): number;
16
- static toPositive(angle: number, unit: AngleUnits): number;
17
- static normalize(angle: number, unit: AngleUnits): number;
18
- static toCSS(angle: number, unit: AngleUnits): string;
19
- static angleUnitCorrespondence: Record<AngleUnits, string>;
20
- }
21
- }
22
- declare module "src/figures/point" {
23
- export type IPoint2 = [number, number];
24
- export class Point2 {
25
- static sum(p1: IPoint2, p2: IPoint2): IPoint2;
26
- static scale(v: IPoint2, factor: number): IPoint2;
27
- }
28
- }
29
- declare module "src/figures/circle" {
30
- import { IPoint2 } from "src/figures/point";
31
- import { IMatrix2d } from "src/matrix";
32
- export class Circle {
33
- center: IPoint2;
34
- r: number;
35
- constructor(center: IPoint2, r: number);
36
- transform(matrix: IMatrix2d): void;
37
- }
38
- }
39
- declare module "src/figures/straight-line" {
40
- import { IPoint2 } from "src/figures/point";
41
- import { IMatrix2d } from "src/matrix";
42
- export class StraightLine {
43
- p1: IPoint2;
44
- p2: IPoint2;
45
- constructor(p1: IPoint2, p2: IPoint2);
46
- transform(matrix: IMatrix2d, transformThis?: boolean): StraightLine;
47
- }
48
- }
49
- declare module "src/figures/index" {
50
- export * from "src/figures/point";
51
- export * from "src/figures/circle";
52
- export * from "src/figures/straight-line";
53
- }
54
- declare module "src/matrix" {
55
- import { IPoint2 } from "src/figures/index";
56
- export type IMatrix2d = [
57
- number,
58
- number,
59
- number,
60
- number,
61
- number,
62
- number
63
- ];
64
- export const identityMatrix: IMatrix2d;
65
- export class Matrix2d {
66
- static multiply(matrix: IMatrix2d, ...matrices: IMatrix2d[]): IMatrix2d;
67
- static apply(matrix: IMatrix2d, point: IPoint2): IPoint2;
68
- }
69
- }
70
- declare module "src/operator" {
71
- import { IMatrix2d } from "src/matrix";
72
- import { AngleUnits } from "src/angle";
73
- export class Operator {
74
- private static temp1;
75
- private static temp2;
76
- static rotateIdentity(angle: number, unit?: AngleUnits): IMatrix2d;
77
- }
78
- }
79
- declare module "src/colors/color" {
80
- export class Color {
81
- red: number;
82
- green: number;
83
- blue: number;
84
- constructor(red: number, green: number, blue: number);
85
- toCSS(): string;
86
- }
87
- }
88
- declare module "src/colors/conic.gradient" {
89
- import { Color } from "src/colors/color";
90
- import { IPoint2 } from "src/figures/index";
91
- export class ConicGradient {
92
- colors: {
93
- angle: number;
94
- color: Color;
95
- }[];
96
- constructor(...colors: {
97
- angle: number;
98
- color: Color;
99
- }[]);
100
- getColorAtAngle(angle: number): Color;
101
- getAngleByColor(color: Color): number;
102
- isColorInRange(color: Color): boolean;
103
- toCanvas(ctx: CanvasRenderingContext2D, center: IPoint2): CanvasGradient;
104
- toCSS(): string;
105
- }
106
- }
107
- declare module "src/colors/index" {
108
- export * from "src/colors/color";
109
- export * from "src/colors/conic.gradient";
110
- }
111
- declare module "src/index" {
112
- export * from "src/angle";
113
- export * from "src/matrix";
114
- export * from "src/operator";
115
- export * from "src/utils";
116
- export * from "src/colors/index";
117
- export * from "src/figures/index";
118
- }
119
- declare module "index" {
120
- export * from "src/index";
121
- }
package/dist/math.js DELETED
@@ -1,385 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
13
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
- };
15
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
16
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
17
- if (ar || !(i in from)) {
18
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
19
- ar[i] = from[i];
20
- }
21
- }
22
- return to.concat(ar || Array.prototype.slice.call(from));
23
- };
24
- define("src/utils", ["require", "exports"], function (require, exports) {
25
- "use strict";
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.approximately = approximately;
28
- exports.toPositive = toPositive;
29
- exports.isCorrectNumber = isCorrectNumber;
30
- function approximately(theValue, is, withPrecision) {
31
- if (withPrecision === void 0) { withPrecision = 1e-8; }
32
- return Math.abs(theValue - is) <= withPrecision;
33
- }
34
- function toPositive(value, range) {
35
- if (value >= 0)
36
- return Math.abs(value);
37
- return Math.abs((range + value % range) % range);
38
- }
39
- function isCorrectNumber(value) {
40
- var v = +value;
41
- if (!isNaN(value) && isFinite(value)) {
42
- v = parseFloat(value);
43
- return !isNaN(v) && isFinite(v);
44
- }
45
- return false;
46
- }
47
- });
48
- define("src/angle", ["require", "exports", "src/utils"], function (require, exports, utils_1) {
49
- "use strict";
50
- var _a;
51
- Object.defineProperty(exports, "__esModule", { value: true });
52
- exports.Angle = exports.AngleUnits = void 0;
53
- var AngleUnits;
54
- (function (AngleUnits) {
55
- AngleUnits[AngleUnits["Deg"] = 0] = "Deg";
56
- AngleUnits[AngleUnits["Rad"] = 1] = "Rad";
57
- AngleUnits[AngleUnits["Turn"] = 2] = "Turn";
58
- })(AngleUnits || (exports.AngleUnits = AngleUnits = {}));
59
- var Angle = (function () {
60
- function Angle() {
61
- }
62
- Angle.toRad = function (angle, unit) {
63
- if (unit === void 0) { unit = AngleUnits.Deg; }
64
- switch (unit) {
65
- case AngleUnits.Rad:
66
- return angle;
67
- case AngleUnits.Deg:
68
- return angle * Math.PI / 180;
69
- case AngleUnits.Turn:
70
- return Math.PI * 2 * angle;
71
- }
72
- };
73
- Angle.toTurn = function (angle, unit) {
74
- if (unit === void 0) { unit = AngleUnits.Deg; }
75
- switch (unit) {
76
- case AngleUnits.Turn:
77
- return angle;
78
- case AngleUnits.Deg:
79
- return angle / 360;
80
- case AngleUnits.Rad:
81
- return angle / (Math.PI * 2);
82
- }
83
- };
84
- Angle.toDeg = function (angle, unit) {
85
- if (unit === void 0) { unit = AngleUnits.Rad; }
86
- switch (unit) {
87
- case AngleUnits.Deg:
88
- return angle;
89
- case AngleUnits.Turn:
90
- return angle * 360;
91
- case AngleUnits.Rad:
92
- return angle * 180 / Math.PI;
93
- }
94
- };
95
- Angle.toPositive = function (angle, unit) {
96
- switch (unit) {
97
- case AngleUnits.Deg:
98
- return (0, utils_1.toPositive)(angle, 360);
99
- case AngleUnits.Turn:
100
- return (0, utils_1.toPositive)(angle, 1);
101
- case AngleUnits.Rad:
102
- return (0, utils_1.toPositive)(angle, Math.PI * 2);
103
- }
104
- };
105
- Angle.normalize = function (angle, unit) {
106
- switch (unit) {
107
- case AngleUnits.Deg:
108
- return Angle.toPositive(angle, unit) % 360;
109
- case AngleUnits.Rad:
110
- return Angle.toPositive(angle, unit) % (Math.PI * 2);
111
- case AngleUnits.Turn:
112
- return Angle.toPositive(angle, unit) % 1;
113
- }
114
- };
115
- Angle.toCSS = function (angle, unit) {
116
- if (!(0, utils_1.isCorrectNumber)(angle))
117
- return '';
118
- return "rotate(".concat(angle).concat(Angle.angleUnitCorrespondence[unit], ")");
119
- };
120
- Angle.angleUnitCorrespondence = (_a = {},
121
- _a[AngleUnits.Rad] = 'rad',
122
- _a[AngleUnits.Turn] = 'turn',
123
- _a[AngleUnits.Deg] = 'deg',
124
- _a);
125
- return Angle;
126
- }());
127
- exports.Angle = Angle;
128
- });
129
- define("src/figures/point", ["require", "exports"], function (require, exports) {
130
- "use strict";
131
- Object.defineProperty(exports, "__esModule", { value: true });
132
- exports.Point2 = void 0;
133
- var Point2 = (function () {
134
- function Point2() {
135
- }
136
- Point2.sum = function (p1, p2) {
137
- return [
138
- p1[0] + p2[0],
139
- p1[1] + p2[1],
140
- ];
141
- };
142
- Point2.scale = function (v, factor) {
143
- return [
144
- v[0] * factor,
145
- v[1] * factor,
146
- ];
147
- };
148
- return Point2;
149
- }());
150
- exports.Point2 = Point2;
151
- });
152
- define("src/figures/circle", ["require", "exports", "src/matrix"], function (require, exports, matrix_1) {
153
- "use strict";
154
- Object.defineProperty(exports, "__esModule", { value: true });
155
- exports.Circle = void 0;
156
- var Circle = (function () {
157
- function Circle(center, r) {
158
- this.center = center;
159
- this.r = r;
160
- }
161
- Circle.prototype.transform = function (matrix) {
162
- this.center = matrix_1.Matrix2d.apply(matrix, this.center);
163
- };
164
- return Circle;
165
- }());
166
- exports.Circle = Circle;
167
- });
168
- define("src/figures/straight-line", ["require", "exports", "src/matrix"], function (require, exports, matrix_2) {
169
- "use strict";
170
- Object.defineProperty(exports, "__esModule", { value: true });
171
- exports.StraightLine = void 0;
172
- var StraightLine = (function () {
173
- function StraightLine(p1, p2) {
174
- this.p1 = p1;
175
- this.p2 = p2;
176
- }
177
- StraightLine.prototype.transform = function (matrix, transformThis) {
178
- if (transformThis === void 0) { transformThis = false; }
179
- if (transformThis) {
180
- return this;
181
- }
182
- return new StraightLine(matrix_2.Matrix2d.apply(matrix, this.p1), matrix_2.Matrix2d.apply(matrix, this.p2));
183
- };
184
- return StraightLine;
185
- }());
186
- exports.StraightLine = StraightLine;
187
- });
188
- define("src/figures/index", ["require", "exports", "src/figures/point", "src/figures/circle", "src/figures/straight-line"], function (require, exports, point_1, circle_1, straight_line_1) {
189
- "use strict";
190
- Object.defineProperty(exports, "__esModule", { value: true });
191
- __exportStar(point_1, exports);
192
- __exportStar(circle_1, exports);
193
- __exportStar(straight_line_1, exports);
194
- });
195
- define("src/matrix", ["require", "exports"], function (require, exports) {
196
- "use strict";
197
- Object.defineProperty(exports, "__esModule", { value: true });
198
- exports.Matrix2d = exports.identityMatrix = void 0;
199
- exports.identityMatrix = [1, 0, 0, 1, 0, 0];
200
- var Matrix2d = (function () {
201
- function Matrix2d() {
202
- }
203
- Matrix2d.multiply = function (matrix) {
204
- var matrices = [];
205
- for (var _i = 1; _i < arguments.length; _i++) {
206
- matrices[_i - 1] = arguments[_i];
207
- }
208
- for (var _a = 0, matrices_1 = matrices; _a < matrices_1.length; _a++) {
209
- var m = matrices_1[_a];
210
- matrix = [
211
- matrix[0] * m[0] + matrix[2] * m[1],
212
- matrix[1] * m[0] + matrix[3] * m[1],
213
- matrix[0] * m[2] + matrix[2] * m[3],
214
- matrix[1] * m[2] + matrix[3] * m[3],
215
- matrix[0] * m[4] + matrix[2] * m[5] + matrix[4],
216
- matrix[1] * m[4] + matrix[3] * m[5] + matrix[5],
217
- ];
218
- }
219
- return matrix;
220
- };
221
- Matrix2d.apply = function (matrix, point) {
222
- return [
223
- matrix[0] * point[0] + matrix[2] * point[1] + matrix[4],
224
- matrix[1] * point[0] + matrix[3] * point[1] + matrix[5],
225
- ];
226
- };
227
- return Matrix2d;
228
- }());
229
- exports.Matrix2d = Matrix2d;
230
- });
231
- define("src/operator", ["require", "exports", "src/angle"], function (require, exports, angle_1) {
232
- "use strict";
233
- Object.defineProperty(exports, "__esModule", { value: true });
234
- exports.Operator = void 0;
235
- var Operator = (function () {
236
- function Operator() {
237
- }
238
- Operator.rotateIdentity = function (angle, unit) {
239
- if (unit === void 0) { unit = angle_1.AngleUnits.Deg; }
240
- angle = angle_1.Angle.toRad(angle, unit);
241
- this.temp1 = Math.cos(angle);
242
- this.temp2 = Math.sin(angle);
243
- return [
244
- this.temp1,
245
- this.temp2,
246
- -this.temp2,
247
- this.temp1,
248
- 0, 0
249
- ];
250
- };
251
- return Operator;
252
- }());
253
- exports.Operator = Operator;
254
- });
255
- define("src/colors/color", ["require", "exports"], function (require, exports) {
256
- "use strict";
257
- Object.defineProperty(exports, "__esModule", { value: true });
258
- exports.Color = void 0;
259
- var Color = (function () {
260
- function Color(red, green, blue) {
261
- this.red = red;
262
- this.green = green;
263
- this.blue = blue;
264
- this.red = Math.max(Math.min(red, 255), 0);
265
- this.green = Math.max(Math.min(green, 255), 0);
266
- this.blue = Math.max(Math.min(blue, 255), 0);
267
- }
268
- Color.prototype.toCSS = function () {
269
- return "rgb(".concat(this.red, ", ").concat(this.green, ", ").concat(this.blue, ")");
270
- };
271
- return Color;
272
- }());
273
- exports.Color = Color;
274
- });
275
- define("src/colors/conic.gradient", ["require", "exports", "src/colors/color"], function (require, exports, color_1) {
276
- "use strict";
277
- Object.defineProperty(exports, "__esModule", { value: true });
278
- exports.ConicGradient = void 0;
279
- var ConicGradient = (function () {
280
- function ConicGradient() {
281
- var colors = [];
282
- for (var _i = 0; _i < arguments.length; _i++) {
283
- colors[_i] = arguments[_i];
284
- }
285
- this.colors = __spreadArray([], colors, true).sort(function (a, b) { return a.angle - b.angle; });
286
- this.colors.push({
287
- angle: 1,
288
- color: this.colors[0].color
289
- });
290
- }
291
- ConicGradient.prototype.getColorAtAngle = function (angle) {
292
- var prev = undefined;
293
- var next = undefined;
294
- for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
295
- var color = _a[_i];
296
- if (color.angle === angle)
297
- return color.color;
298
- if (color.angle < angle)
299
- prev = color;
300
- if (color.angle > angle) {
301
- next = color;
302
- break;
303
- }
304
- }
305
- if (!prev || !next)
306
- return undefined;
307
- var coef = (angle - prev.angle) / (next.angle - prev.angle);
308
- 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));
309
- };
310
- ConicGradient.prototype.getAngleByColor = function (color) {
311
- var prev;
312
- var next = this.colors[0];
313
- if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
314
- return next.angle;
315
- for (var i = 1; i < this.colors.length; i++) {
316
- next = this.colors[i];
317
- prev = this.colors[i - 1];
318
- if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
319
- return next.angle;
320
- var redDif = next.color.red - prev.color.red;
321
- var greenDif = next.color.green - prev.color.green;
322
- var blueDif = next.color.blue - prev.color.blue;
323
- var redDifColor = color.red - prev.color.red;
324
- var greenDifColor = color.green - prev.color.green;
325
- var blueDifColor = color.blue - prev.color.blue;
326
- if (((redDifColor >= 0 && redDifColor <= redDif) || (redDifColor <= 0 && redDifColor >= redDif)) &&
327
- ((greenDifColor >= 0 && greenDifColor <= greenDif) || (greenDifColor <= 0 && greenDifColor >= greenDif)) &&
328
- ((blueDifColor >= 0 && blueDifColor <= blueDif) || (blueDifColor <= 0 && blueDifColor >= blueDif))) {
329
- var redCoef = ((color.red - prev.color.red) / (next.color.red - prev.color.red));
330
- var greenCoef = ((color.green - prev.color.green) / (next.color.green - prev.color.green));
331
- var blueCoef = ((color.blue - prev.color.blue) / (next.color.blue - prev.color.blue));
332
- var coefs = [redCoef, greenCoef, blueCoef].filter(Boolean);
333
- return (next.angle - prev.angle) * Math.min.apply(Math, coefs) + prev.angle;
334
- }
335
- }
336
- return undefined;
337
- };
338
- ConicGradient.prototype.isColorInRange = function (color) {
339
- return Boolean(this.getAngleByColor(color));
340
- };
341
- ConicGradient.prototype.toCanvas = function (ctx, center) {
342
- var gradient = ctx.createConicGradient.apply(ctx, __spreadArray([0], center, false));
343
- for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
344
- var color = _a[_i];
345
- gradient.addColorStop(color.angle, color.color.toCSS());
346
- }
347
- return gradient;
348
- };
349
- ConicGradient.prototype.toCSS = function () {
350
- var s = '';
351
- for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
352
- var color = _a[_i];
353
- if (s)
354
- s += ',';
355
- s += "rgb(".concat(color.color.red, ",").concat(color.color.green, ",").concat(color.color.blue, ")");
356
- }
357
- s = "conic-gradient(in srgb from 0.25turn at 50% 50%, ".concat(s, ")");
358
- return s;
359
- };
360
- return ConicGradient;
361
- }());
362
- exports.ConicGradient = ConicGradient;
363
- });
364
- define("src/colors/index", ["require", "exports", "src/colors/color", "src/colors/conic.gradient"], function (require, exports, color_2, conic_gradient_1) {
365
- "use strict";
366
- Object.defineProperty(exports, "__esModule", { value: true });
367
- __exportStar(color_2, exports);
368
- __exportStar(conic_gradient_1, exports);
369
- });
370
- define("src/index", ["require", "exports", "src/angle", "src/matrix", "src/operator", "src/utils", "src/colors/index", "src/figures/index"], function (require, exports, angle_2, matrix_3, operator_1, utils_2, colors_1, figures_1) {
371
- "use strict";
372
- Object.defineProperty(exports, "__esModule", { value: true });
373
- __exportStar(angle_2, exports);
374
- __exportStar(matrix_3, exports);
375
- __exportStar(operator_1, exports);
376
- __exportStar(utils_2, exports);
377
- __exportStar(colors_1, exports);
378
- __exportStar(figures_1, exports);
379
- });
380
- define("index", ["require", "exports", "src/index"], function (require, exports, src_1) {
381
- "use strict";
382
- Object.defineProperty(exports, "__esModule", { value: true });
383
- __exportStar(src_1, exports);
384
- });
385
- //# sourceMappingURL=math.js.map
package/dist/math.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../src/utils.ts","../src/angle.ts","../src/figures/point.ts","../src/figures/circle.ts","../src/figures/straight-line.ts","../src/figures/index.ts","../src/matrix.ts","../src/operator.ts","../src/colors/color.ts","../src/colors/conic.gradient.ts","../src/colors/index.ts","../src/index.ts","../index.ts"],"names":[],"mappings":"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"}