@chemistry/math 2.7.0 → 3.0.1

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/README.md CHANGED
@@ -1,33 +1,36 @@
1
- # @chemistry/math
2
- [![npm version](https://badge.fury.io/js/%40chemistry%2Fmath.svg)](https://badge.fury.io/js/%40chemistry%2Fmath)
3
- [![Build Status](https://travis-ci.com/chemistry/chem-js-lib.svg?branch=master)](https://travis-ci.org/chemistry/chem-js-lib)
4
- [![codecov](https://codecov.io/gh/chemistry/chem-js-lib/branch/master/graph/badge.svg)](https://codecov.io/gh/chemistry/chem-js-lib)
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
-
7
- Simple linear algebra Math library to support [chemistry js project](http://vreshch.com/chemistry-js.html)
8
-
9
- ## Install
10
- ```bash
11
- npm install @chemistry/math
12
- ```
13
-
14
- ## Include following clases:
15
- * Vec3
16
- * Matrix3x3
17
- * Matrix3x4
18
- * Transform3d
19
- * Quaternion
20
-
21
- ## Getting started:
22
- ```javascript
23
- import { V, ChemElementData } from '@chemistry/math';
24
- const matrix = new Matrix3x3([1, 0, 0, 0, 2, 0, 0, 0, 3]);
25
- const vector = new Vec3(2, 3, 1);
26
-
27
- const res = matrix.project(vector);
28
- // (2.00, 6.00, 3.00)
29
- console.log(res);
30
- ```
31
-
32
- ## Commands:
33
- * Build project: `npm run build`
1
+ # @chemistry/math
2
+
3
+ [![npm version](https://badge.fury.io/js/%40chemistry%2Fmath.svg)](https://badge.fury.io/js/%40chemistry%2Fmath)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-gren.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ Simple linear algebra Math library to support [chemistry js project](http://vreshch.com/chemistry-js.html)
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ npm install @chemistry/math
12
+ ```
13
+
14
+ ## Include following clases:
15
+
16
+ - Vec3
17
+ - Matrix3x3
18
+ - Matrix3x4
19
+ - Transform3d
20
+ - Quaternion
21
+
22
+ ## Getting started:
23
+
24
+ ```javascript
25
+ import { V, ChemElementData } from '@chemistry/math';
26
+ const matrix = new Matrix3x3([1, 0, 0, 0, 2, 0, 0, 0, 3]);
27
+ const vector = new Vec3(2, 3, 1);
28
+
29
+ const res = matrix.project(vector);
30
+ // (2.00, 6.00, 3.00)
31
+ console.log(res);
32
+ ```
33
+
34
+ ## Commands:
35
+
36
+ - Build project: `npm run build`
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export * from "./matrix3x3";
2
- export * from "./matrix3x4";
3
- export * from "./transform3d";
4
- export * from "./vec3";
5
- export * from "./vec2";
1
+ export * from './matrix3x3';
2
+ export * from './matrix3x4';
3
+ export * from './transform3d';
4
+ export * from './vec3';
5
+ export * from './vec2';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from './matrix3x3';
2
+ export * from './matrix3x4';
3
+ export * from './transform3d';
4
+ export * from './vec3';
5
+ export * from './vec2';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -1,38 +1,39 @@
1
- import { ICloneable, IEquatable } from "@chemistry/common";
2
- import { Vec3 } from "./vec3";
3
- export declare class Matrix3x3 implements ICloneable<Matrix3x3>, IEquatable<Matrix3x3> {
4
- static equals(m1: Matrix3x3, m2: Matrix3x3): boolean;
5
- static inverse(matrix: Matrix3x3): Matrix3x3;
6
- protected elements: number[];
7
- constructor(elements?: number[]);
8
- /**
9
- * Set value to specified element of the matrix
10
- */
11
- set(i: number, j: number, val: number): void;
12
- /**
13
- * return specified element of the matrix
14
- */
15
- get(i: number, j: number): number;
16
- scale(mult: number): Matrix3x3;
17
- project(mult: Vec3): Vec3;
18
- /**
19
- * Returns matrix multiplication result to scalar, vector or another matrix
20
- */
21
- multiply(mult: Matrix3x3): Matrix3x3;
22
- /**
23
- * Returns matrix determinant
24
- */
25
- determinant(): number;
26
- /**
27
- * Clone the matrix
28
- */
29
- clone(): Matrix3x3;
30
- /**
31
- * Compare 2 matrixes
32
- */
33
- equals(matrix: Matrix3x3): boolean;
34
- /**
35
- * Returns string representation of the matrix
36
- */
37
- toString(): string;
38
- }
1
+ import { ICloneable, IEquatable } from '@chemistry/common';
2
+ import { Vec3 } from './vec3';
3
+ export declare class Matrix3x3 implements ICloneable<Matrix3x3>, IEquatable<Matrix3x3> {
4
+ static equals(m1: Matrix3x3, m2: Matrix3x3): boolean;
5
+ static inverse(matrix: Matrix3x3): Matrix3x3;
6
+ protected elements: number[];
7
+ constructor(elements?: number[]);
8
+ /**
9
+ * Set value to specified element of the matrix
10
+ */
11
+ set(i: number, j: number, val: number): void;
12
+ /**
13
+ * return specified element of the matrix
14
+ */
15
+ get(i: number, j: number): number;
16
+ scale(mult: number): Matrix3x3;
17
+ project(mult: Vec3): Vec3;
18
+ /**
19
+ * Returns matrix multiplication result to scalar, vector or another matrix
20
+ */
21
+ multiply(mult: Matrix3x3): Matrix3x3;
22
+ /**
23
+ * Returns matrix determinant
24
+ */
25
+ determinant(): number;
26
+ /**
27
+ * Clone the matrix
28
+ */
29
+ clone(): Matrix3x3;
30
+ /**
31
+ * Compare 2 matrixes
32
+ */
33
+ equals(matrix: Matrix3x3): boolean;
34
+ /**
35
+ * Returns string representation of the matrix
36
+ */
37
+ toString(): string;
38
+ }
39
+ //# sourceMappingURL=matrix3x3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix3x3.d.ts","sourceRoot":"","sources":["../src/matrix3x3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,SAAU,YAAW,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;WAC9D,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO;WAc7C,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAsBnD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEjB,QAAQ,CAAC,EAAE,MAAM,EAAE;IAI/B;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAO5C;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAOjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAc9B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQhC;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAgC3C;;OAEG;IACI,WAAW,IAAI,MAAM;IAQ5B;;OAEG;IACI,KAAK,IAAI,SAAS;IAIzB;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAIzC;;OAEG;IACI,QAAQ,IAAI,MAAM;CAiB1B"}
@@ -0,0 +1,143 @@
1
+ import { EPSILON } from '@chemistry/common';
2
+ import { Vec3 } from './vec3';
3
+ export class Matrix3x3 {
4
+ static equals(m1, m2) {
5
+ return (Math.abs(m1.elements[0] - m2.elements[0]) < EPSILON &&
6
+ Math.abs(m1.elements[1] - m2.elements[1]) < EPSILON &&
7
+ Math.abs(m1.elements[2] - m2.elements[2]) < EPSILON &&
8
+ Math.abs(m1.elements[3] - m2.elements[3]) < EPSILON &&
9
+ Math.abs(m1.elements[4] - m2.elements[4]) < EPSILON &&
10
+ Math.abs(m1.elements[5] - m2.elements[5]) < EPSILON &&
11
+ Math.abs(m1.elements[6] - m2.elements[6]) < EPSILON &&
12
+ Math.abs(m1.elements[7] - m2.elements[7]) < EPSILON &&
13
+ Math.abs(m1.elements[8] - m2.elements[8]) < EPSILON);
14
+ }
15
+ static inverse(matrix) {
16
+ const d = matrix.determinant();
17
+ if (d === 0) {
18
+ throw new Error('Matrix not invertable');
19
+ }
20
+ return new Matrix3x3([
21
+ (matrix.get(1, 1) * matrix.get(2, 2) - matrix.get(1, 2) * matrix.get(2, 1)) / d,
22
+ (-matrix.get(0, 1) * matrix.get(2, 2) + matrix.get(0, 2) * matrix.get(2, 1)) / d,
23
+ (matrix.get(0, 1) * matrix.get(1, 2) - matrix.get(0, 2) * matrix.get(1, 1)) / d,
24
+ (-matrix.get(1, 0) * matrix.get(2, 2) + matrix.get(1, 2) * matrix.get(2, 0)) / d,
25
+ (matrix.get(0, 0) * matrix.get(2, 2) - matrix.get(0, 2) * matrix.get(2, 0)) / d,
26
+ (-matrix.get(0, 0) * matrix.get(1, 2) + matrix.get(0, 2) * matrix.get(1, 0)) / d,
27
+ (matrix.get(1, 0) * matrix.get(2, 1) - matrix.get(1, 1) * matrix.get(2, 0)) / d,
28
+ (-matrix.get(0, 0) * matrix.get(2, 1) + matrix.get(0, 1) * matrix.get(2, 0)) / d,
29
+ (matrix.get(0, 0) * matrix.get(1, 1) - matrix.get(0, 1) * matrix.get(1, 0)) / d,
30
+ ]);
31
+ }
32
+ constructor(elements) {
33
+ this.elements = elements?.length === 9 ? elements.slice(0) : [1, 0, 0, 0, 1, 0, 0, 0, 1];
34
+ }
35
+ /**
36
+ * Set value to specified element of the matrix
37
+ */
38
+ set(i, j, val) {
39
+ if (i > 3 || i < 0 || j > 3 || j < 0) {
40
+ throw new Error('Wrong coefficients');
41
+ }
42
+ this.elements[i * 3 + j] = val;
43
+ }
44
+ /**
45
+ * return specified element of the matrix
46
+ */
47
+ get(i, j) {
48
+ if (i > 3 || i < 0 || j > 3 || j < 0) {
49
+ throw new Error('Wrong coefficients');
50
+ }
51
+ return this.elements[i * 3 + j];
52
+ }
53
+ scale(mult) {
54
+ return new Matrix3x3([
55
+ this.elements[0] * mult,
56
+ this.elements[1] * mult,
57
+ this.elements[2] * mult,
58
+ this.elements[3] * mult,
59
+ this.elements[4] * mult,
60
+ this.elements[5] * mult,
61
+ this.elements[6] * mult,
62
+ this.elements[7] * mult,
63
+ this.elements[8] * mult,
64
+ ]);
65
+ }
66
+ project(mult) {
67
+ return new Vec3(this.elements[0] * mult.x + this.elements[1] * mult.y + this.elements[2] * mult.z, this.elements[3] * mult.x + this.elements[4] * mult.y + this.elements[5] * mult.z, this.elements[6] * mult.x + this.elements[7] * mult.y + this.elements[8] * mult.z);
68
+ }
69
+ /**
70
+ * Returns matrix multiplication result to scalar, vector or another matrix
71
+ */
72
+ multiply(mult) {
73
+ return new Matrix3x3([
74
+ this.elements[0] * mult.elements[0] +
75
+ this.elements[3] * mult.elements[1] +
76
+ this.elements[6] * mult.elements[2],
77
+ this.elements[1] * mult.elements[0] +
78
+ this.elements[4] * mult.elements[1] +
79
+ this.elements[7] * mult.elements[2],
80
+ this.elements[2] * mult.elements[0] +
81
+ this.elements[5] * mult.elements[1] +
82
+ this.elements[8] * mult.elements[2],
83
+ this.elements[0] * mult.elements[3] +
84
+ this.elements[3] * mult.elements[4] +
85
+ this.elements[6] * mult.elements[5],
86
+ this.elements[1] * mult.elements[3] +
87
+ this.elements[4] * mult.elements[4] +
88
+ this.elements[7] * mult.elements[5],
89
+ this.elements[2] * mult.elements[3] +
90
+ this.elements[5] * mult.elements[4] +
91
+ this.elements[8] * mult.elements[5],
92
+ this.elements[0] * mult.elements[6] +
93
+ this.elements[3] * mult.elements[7] +
94
+ this.elements[6] * mult.elements[8],
95
+ this.elements[1] * mult.elements[6] +
96
+ this.elements[4] * mult.elements[7] +
97
+ this.elements[7] * mult.elements[8],
98
+ this.elements[2] * mult.elements[6] +
99
+ this.elements[5] * mult.elements[7] +
100
+ this.elements[8] * mult.elements[8],
101
+ ]);
102
+ }
103
+ /**
104
+ * Returns matrix determinant
105
+ */
106
+ determinant() {
107
+ let result = this.get(0, 0) * (this.get(1, 1) * this.get(2, 2) - this.get(2, 1) * this.get(1, 2));
108
+ result -= this.get(1, 0) * (this.get(0, 1) * this.get(2, 2) - this.get(2, 1) * this.get(0, 2));
109
+ result += this.get(2, 0) * (this.get(0, 1) * this.get(1, 2) - this.get(1, 1) * this.get(0, 2));
110
+ return result;
111
+ }
112
+ /**
113
+ * Clone the matrix
114
+ */
115
+ clone() {
116
+ return new Matrix3x3(this.elements.slice(0));
117
+ }
118
+ /**
119
+ * Compare 2 matrixes
120
+ */
121
+ equals(matrix) {
122
+ return Matrix3x3.equals(this, matrix);
123
+ }
124
+ /**
125
+ * Returns string representation of the matrix
126
+ */
127
+ toString() {
128
+ return ('(' +
129
+ [
130
+ this.elements[0].toFixed(3),
131
+ this.elements[1].toFixed(3),
132
+ this.elements[2].toFixed(3),
133
+ this.elements[3].toFixed(3),
134
+ this.elements[4].toFixed(3),
135
+ this.elements[5].toFixed(3),
136
+ this.elements[6].toFixed(3),
137
+ this.elements[7].toFixed(3),
138
+ this.elements[8].toFixed(3),
139
+ ].join(',') +
140
+ ')');
141
+ }
142
+ }
143
+ //# sourceMappingURL=matrix3x3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix3x3.js","sourceRoot":"","sources":["../src/matrix3x3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,MAAM,CAAC,EAAa,EAAE,EAAa;QAC/C,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;YACnD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CACpD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,MAAiB;QACrC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,SAAS,CAAC;YACnB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;SAChF,CAAC,CAAC;IACL,CAAC;IAOD,YAAY,QAAmB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,GAAW;QAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,CAAS,EAAE,CAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,SAAS,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAEM,OAAO,CAAC,IAAU;QACvB,OAAO,IAAI,IAAI,CACb,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EACjF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EACjF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAClF,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAe;QAC7B,OAAO,IAAI,SAAS,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,IAAI,MAAM,GACR,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAiB;QAC7B,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,CACL,GAAG;YACH;gBACE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5B,CAAC,IAAI,CAAC,GAAG,CAAC;YACX,GAAG,CACJ,CAAC;IACJ,CAAC;CACF"}
@@ -1,45 +1,46 @@
1
- import { ICloneable, IEquatable } from "@chemistry/common";
2
- import { Vec3 } from "./vec3";
3
- /**
4
- * Simple Class to work with special type of matrix.
5
- * | x1 x2 x3 x4 |
6
- * | x5 x6 x7 x8 |
7
- * | x8 x10 x11 x12|
8
- * | 0 0 0 1 |
9
- */
10
- export declare class Matrix3x4 implements ICloneable<Matrix3x4>, IEquatable<Matrix3x4> {
11
- static add(matrix1: Matrix3x4, matrix2: Matrix3x4): Matrix3x4;
12
- static sub(matrix1: Matrix3x4, matrix2: Matrix3x4): Matrix3x4;
13
- static inverse(matrix: Matrix3x4): Matrix3x4;
14
- static isE(matrix: Matrix3x4): boolean;
15
- static equals(matrix1: Matrix3x4, matrix2: Matrix3x4): boolean;
16
- protected elements: number[];
17
- constructor(elements?: number[]);
18
- /**
19
- * Set value to specified element of the matrix
20
- */
21
- set(i: number, j: number, val: number): void;
22
- /**
23
- * return specified element of the matrix
24
- * @param {Number} i row
25
- * @param {Number} j column
26
- * @return {Number}
27
- */
28
- get(i: number, j: number): number;
29
- add(matrix: Matrix3x4): Matrix3x4;
30
- sub(matrix: Matrix3x4): Matrix3x4;
31
- translate(v: Vec3): Matrix3x4;
32
- scale(mult: number): Matrix3x4;
33
- project(mult: Vec3): Vec3;
34
- multiply(mult: Matrix3x4): Matrix3x4;
35
- inverse(): Matrix3x4;
36
- isE(): boolean;
37
- equals(matrix: Matrix3x4): boolean;
38
- clone(): Matrix3x4;
39
- toString(): string;
40
- /**
41
- * Return transformation matrix as symetry code (common in Crystallography)
42
- * e.g. 1-x,1-y,1-z
43
- */
44
- toSymetryCode(): string;
45
- }
1
+ import { ICloneable, IEquatable } from '@chemistry/common';
2
+ import { Vec3 } from './vec3';
3
+ /**
4
+ * Simple Class to work with special type of matrix.
5
+ * | x1 x2 x3 x4 |
6
+ * | x5 x6 x7 x8 |
7
+ * | x8 x10 x11 x12|
8
+ * | 0 0 0 1 |
9
+ */
10
+ export declare class Matrix3x4 implements ICloneable<Matrix3x4>, IEquatable<Matrix3x4> {
11
+ static add(matrix1: Matrix3x4, matrix2: Matrix3x4): Matrix3x4;
12
+ static sub(matrix1: Matrix3x4, matrix2: Matrix3x4): Matrix3x4;
13
+ static inverse(matrix: Matrix3x4): Matrix3x4;
14
+ static isE(matrix: Matrix3x4): boolean;
15
+ static equals(matrix1: Matrix3x4, matrix2: Matrix3x4): boolean;
16
+ protected elements: number[];
17
+ constructor(elements?: number[]);
18
+ /**
19
+ * Set value to specified element of the matrix
20
+ */
21
+ set(i: number, j: number, val: number): void;
22
+ /**
23
+ * return specified element of the matrix
24
+ * @param {Number} i row
25
+ * @param {Number} j column
26
+ * @return {Number}
27
+ */
28
+ get(i: number, j: number): number;
29
+ add(matrix: Matrix3x4): Matrix3x4;
30
+ sub(matrix: Matrix3x4): Matrix3x4;
31
+ translate(v: Vec3): Matrix3x4;
32
+ scale(mult: number): Matrix3x4;
33
+ project(mult: Vec3): Vec3;
34
+ multiply(mult: Matrix3x4): Matrix3x4;
35
+ inverse(): Matrix3x4;
36
+ isE(): boolean;
37
+ equals(matrix: Matrix3x4): boolean;
38
+ clone(): Matrix3x4;
39
+ toString(): string;
40
+ /**
41
+ * Return transformation matrix as symetry code (common in Crystallography)
42
+ * e.g. 1-x,1-y,1-z
43
+ */
44
+ toSymetryCode(): string;
45
+ }
46
+ //# sourceMappingURL=matrix3x4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix3x4.d.ts","sourceRoot":"","sources":["../src/matrix3x4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;;GAMG;AACH,qBAAa,SAAU,YAAW,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;WAC9D,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS;WAmBtD,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS;WAmBtD,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;WAgJrC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;WAiB/B,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO;IAiBrE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEjB,QAAQ,CAAC,EAAE,MAAM,EAAE;IAK/B;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAO5C;;;;;OAKG;IACI,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAOxB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAIjC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS;IAIjC,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS;IAQ7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAiB9B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAiBzB,QAAQ,CAAC,IAAI,EAAE,SAAS;IA0DxB,OAAO,IAAI,SAAS;IAIpB,GAAG,IAAI,OAAO;IAId,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IAIlC,KAAK,IAAI,SAAS;IAIlB,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,aAAa,IAAI,MAAM;CAmD/B"}