@fbltd/math 1.0.25 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/src/figures/point.js +5 -0
- package/dist/bin/src/matrices/matrix2d.js +28 -0
- package/dist/bin/src/matrices/matrix3d.js +60 -0
- package/dist/types/src/figures/point.d.ts +1 -0
- package/dist/types/src/figures/point.d.ts.map +1 -1
- package/dist/types/src/matrices/matrix2d.d.ts +5 -0
- package/dist/types/src/matrices/matrix2d.d.ts.map +1 -1
- package/dist/types/src/matrices/matrix3d.d.ts +5 -0
- package/dist/types/src/matrices/matrix3d.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -72,4 +72,32 @@ export class Matrix2d {
|
|
|
72
72
|
static isEqual(m1, m2) {
|
|
73
73
|
return m1.every((element, index) => element === m2[index]);
|
|
74
74
|
}
|
|
75
|
+
static determinant(m) {
|
|
76
|
+
return m[0] * m[3] - m[1] * m[2];
|
|
77
|
+
}
|
|
78
|
+
static multiplyByNumber(m, value) {
|
|
79
|
+
return m.map((c) => c * value);
|
|
80
|
+
}
|
|
81
|
+
static invert(m) {
|
|
82
|
+
const d = Matrix2d.determinant(m);
|
|
83
|
+
if (!d)
|
|
84
|
+
return [0, 0, 0, 0, 0, 0];
|
|
85
|
+
return Matrix2d.multiplyByNumber(m.map((c, i) => Matrix2d.adjoints[i](m)), 1 / d);
|
|
86
|
+
}
|
|
87
|
+
static adjoints = [
|
|
88
|
+
(m) => Matrix2d.minors[0](m),
|
|
89
|
+
(m) => -Matrix2d.minors[1](m),
|
|
90
|
+
(m) => -Matrix2d.minors[2](m),
|
|
91
|
+
(m) => Matrix2d.minors[3](m),
|
|
92
|
+
(m) => Matrix2d.minors[4](m),
|
|
93
|
+
(m) => -Matrix2d.minors[5](m)
|
|
94
|
+
];
|
|
95
|
+
static minors = [
|
|
96
|
+
(m) => m[3],
|
|
97
|
+
(m) => m[1],
|
|
98
|
+
(m) => m[2],
|
|
99
|
+
(m) => m[0],
|
|
100
|
+
(m) => m[2] * m[5] - m[4] * m[3],
|
|
101
|
+
(m) => m[0] * m[5] - m[4] * m[1]
|
|
102
|
+
];
|
|
75
103
|
}
|
|
@@ -96,4 +96,64 @@ export class Matrix3d {
|
|
|
96
96
|
static isEqual(m1, m2) {
|
|
97
97
|
return m1.every((element, index) => element === m2[index]);
|
|
98
98
|
}
|
|
99
|
+
static determinant(m) {
|
|
100
|
+
return m[0] * m[4] * m[8] +
|
|
101
|
+
m[3] * m[7] * m[2] +
|
|
102
|
+
m[6] * m[1] * m[5] -
|
|
103
|
+
m[6] * m[4] * m[2] -
|
|
104
|
+
m[3] * m[1] * m[8] -
|
|
105
|
+
m[0] * m[7] * m[5];
|
|
106
|
+
}
|
|
107
|
+
static multiplyByNumber(m, value) {
|
|
108
|
+
return m.map(c => c * value);
|
|
109
|
+
}
|
|
110
|
+
static invert(m) {
|
|
111
|
+
const d = Matrix3d.determinant(m);
|
|
112
|
+
if (!d)
|
|
113
|
+
return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
114
|
+
return Matrix3d.multiplyByNumber(m.map((c, i) => Matrix3d.adjoints[i](m)), 1 / d);
|
|
115
|
+
}
|
|
116
|
+
static adjoints = [
|
|
117
|
+
(m) => Matrix3d.minors[0](m),
|
|
118
|
+
(m) => -Matrix3d.minors[1](m),
|
|
119
|
+
(m) => Matrix3d.minors[2](m),
|
|
120
|
+
(m) => -Matrix3d.minors[3](m),
|
|
121
|
+
(m) => Matrix3d.minors[4](m),
|
|
122
|
+
(m) => -Matrix3d.minors[5](m),
|
|
123
|
+
(m) => Matrix3d.minors[6](m),
|
|
124
|
+
(m) => -Matrix3d.minors[7](m),
|
|
125
|
+
(m) => Matrix3d.minors[8](m),
|
|
126
|
+
(m) => -Matrix3d.minors[9](m),
|
|
127
|
+
(m) => Matrix3d.minors[10](m),
|
|
128
|
+
(m) => -Matrix3d.minors[11](m),
|
|
129
|
+
];
|
|
130
|
+
static minors = [
|
|
131
|
+
(m) => m[4] * m[8] - m[7] * m[5],
|
|
132
|
+
(m) => m[1] * m[8] - m[7] * m[2],
|
|
133
|
+
(m) => m[1] * m[5] - m[4] * m[2],
|
|
134
|
+
(m) => m[3] * m[8] - m[6] * m[5],
|
|
135
|
+
(m) => m[0] * m[8] - m[6] * m[2],
|
|
136
|
+
(m) => m[0] * m[5] - m[3] * m[2],
|
|
137
|
+
(m) => m[3] * m[7] - m[6] * m[4],
|
|
138
|
+
(m) => m[0] * m[7] - m[1] * m[6],
|
|
139
|
+
(m) => m[0] * m[4] - m[1] * m[3],
|
|
140
|
+
(m) => m[3] * m[7] * m[11] +
|
|
141
|
+
m[6] * m[10] * m[5] +
|
|
142
|
+
m[9] * m[4] * m[8] -
|
|
143
|
+
m[9] * m[7] * m[5] -
|
|
144
|
+
m[6] * m[4] * m[11] -
|
|
145
|
+
m[3] * m[10] * m[8],
|
|
146
|
+
(m) => m[0] * m[7] * m[11] +
|
|
147
|
+
m[6] * m[10] * m[2] +
|
|
148
|
+
m[9] * m[1] * m[8] -
|
|
149
|
+
m[0] * m[10] * m[8] -
|
|
150
|
+
m[9] * m[7] * m[2] -
|
|
151
|
+
m[6] * m[1] * m[11],
|
|
152
|
+
(m) => m[0] * m[4] * m[11] +
|
|
153
|
+
m[3] * m[10] * m[2] +
|
|
154
|
+
m[9] * m[1] * m[5] -
|
|
155
|
+
m[9] * m[4] * m[2] -
|
|
156
|
+
m[3] * m[1] * m[11] -
|
|
157
|
+
m[0] * m[10] * m[5]
|
|
158
|
+
];
|
|
99
159
|
}
|
|
@@ -6,5 +6,6 @@ export declare class Point {
|
|
|
6
6
|
static scale<T extends IPoint>(p: T, scale: number): T;
|
|
7
7
|
static dif<T extends IPoint>(p1: T, p2: T): T;
|
|
8
8
|
static abs<T extends IPoint>(p: T): T;
|
|
9
|
+
static dotProduct<T extends IPoint>(p1: T, p2: T): number;
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=point.d.ts.map
|
|
@@ -1 +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;AACtC,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAEtC,qBAAa,KAAK;IACd,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IAI7C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAItD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IAI7C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;
|
|
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;AACtC,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAEtC,qBAAa,KAAK;IACd,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IAI7C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAItD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;IAI7C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAIrC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM;CAM5D"}
|
|
@@ -20,5 +20,10 @@ export declare class Matrix2d {
|
|
|
20
20
|
static skew(m: IMatrix2d, x: number, y?: number, units?: AngleUnits): IMatrix2d;
|
|
21
21
|
static isApproximatelyEqual(m1: IMatrix2d, m2: IMatrix2d): boolean;
|
|
22
22
|
static isEqual(m1: IMatrix2d, m2: IMatrix2d): boolean;
|
|
23
|
+
static determinant(m: IMatrix2d): number;
|
|
24
|
+
static multiplyByNumber(m: IMatrix2d, value: number): IMatrix2d;
|
|
25
|
+
static invert(m: IMatrix2d): IMatrix2d;
|
|
26
|
+
private static adjoints;
|
|
27
|
+
private static minors;
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=matrix2d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix2d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAiB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,gBAAgB,EAAE,SAA0D,CAAC;AAE1F,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;
|
|
1
|
+
{"version":3,"file":"matrix2d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix2d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAiB,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpD,eAAO,MAAM,gBAAgB,EAAE,SAA0D,CAAC;AAE1F,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,qBAAa,QAAQ;IAEjB,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;IAOxD,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAIzD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAI/D,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAOvE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAI7E,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAI7D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS;IAInE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAQ5E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAIxE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,aAAiB,GAAG,SAAS;IAIxE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,KAAK,aAAiB,GAAG,SAAS;IAI9E,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;IAIxD,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;IAI3C,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS;IAI/B,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAI/D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAQtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAOtB;IAED,OAAO,CAAC,MAAM,CAAC,MAAM,CAOpB;CACJ"}
|
|
@@ -23,5 +23,10 @@ export declare class Matrix3d {
|
|
|
23
23
|
static rotateZ(m: IMatrix3d, angle: number, units?: AngleUnits): [number, number, number, number, number, number, number, number, number, number, number, number];
|
|
24
24
|
static isApproximatelyEqual(m1: IMatrix3d, m2: IMatrix3d, withPrecision?: number): boolean;
|
|
25
25
|
static isEqual(m1: IMatrix3d, m2: IMatrix3d): boolean;
|
|
26
|
+
static determinant(m: IMatrix3d): number;
|
|
27
|
+
static multiplyByNumber(m: IMatrix3d, value: number): IMatrix3d;
|
|
28
|
+
static invert(m: IMatrix3d): IMatrix3d;
|
|
29
|
+
private static adjoints;
|
|
30
|
+
private static minors;
|
|
26
31
|
}
|
|
27
32
|
//# sourceMappingURL=matrix3d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix3d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAiB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAgB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;AAErD,eAAO,MAAM,gBAAgB,EAAE,SAAgD,CAAC;AAGhF,qBAAa,QAAQ;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;IAyBrE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAQxD,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,SAAS;IAM5D,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,SAAS;IAMxD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;IAOnF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;IAOnF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,UAA2B,GAAG,SAAS;IAOnF,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,SAAS;IAIlE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAOxE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAIjD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,UAA2B;IAO9E,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,UAA2B;IAO9E,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,UAA2B;
|
|
1
|
+
{"version":3,"file":"matrix3d.d.ts","sourceRoot":"","sources":["../../../../src/matrices/matrix3d.ts"],"names":[],"mappings":"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"}
|