@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/dist/vec2.js ADDED
@@ -0,0 +1,59 @@
1
+ import { EPSILON } from '@chemistry/common';
2
+ export class Vec2 {
3
+ static add(v1, v2) {
4
+ return new Vec2(v1.x + v2.x, v1.y + v2.y);
5
+ }
6
+ static sub(v1, v2) {
7
+ return new Vec2(v1.x - v2.x, v1.y - v2.y);
8
+ }
9
+ static dot(v1, v2) {
10
+ return v1.x * v2.x + v1.y * v2.y;
11
+ }
12
+ static equals(v1, v2) {
13
+ return Math.abs(v1.x - v2.x) < EPSILON && Math.abs(v1.y - v2.y) < EPSILON;
14
+ }
15
+ constructor(x, y) {
16
+ this.x = x;
17
+ this.y = y;
18
+ }
19
+ get length() {
20
+ return Math.sqrt(this.x * this.x + this.y * this.y);
21
+ }
22
+ get lengthPow2() {
23
+ return this.x * this.x + this.y * this.y;
24
+ }
25
+ get avg() {
26
+ return (this.x + this.y) / 2;
27
+ }
28
+ scale(num) {
29
+ return new Vec2(this.x * num, this.y * num);
30
+ }
31
+ normalize() {
32
+ const len = this.length;
33
+ if (len === 0) {
34
+ throw new Error('Can not normalize zero vector');
35
+ }
36
+ else {
37
+ return new Vec2(this.x / len, this.y / len);
38
+ }
39
+ }
40
+ dot(vec) {
41
+ return Vec2.dot(this, vec);
42
+ }
43
+ sub(vec) {
44
+ return Vec2.sub(this, vec);
45
+ }
46
+ add(vector) {
47
+ return Vec2.add(this, vector);
48
+ }
49
+ equals(vec) {
50
+ return Vec2.equals(this, vec);
51
+ }
52
+ clone() {
53
+ return new Vec2(this.x, this.y);
54
+ }
55
+ toString() {
56
+ return '(' + this.x.toFixed(3) + ',' + this.y.toFixed(3) + ')';
57
+ }
58
+ }
59
+ //# sourceMappingURL=vec2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec2.js","sourceRoot":"","sources":["../src/vec2.ts"],"names":[],"mappings":"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"}
package/dist/vec3.d.ts CHANGED
@@ -1,29 +1,30 @@
1
- import { ICloneable, IEquatable } from "@chemistry/common";
2
- export interface IVec3 {
3
- x: number;
4
- y: number;
5
- z: number;
6
- }
7
- export declare class Vec3 implements IVec3, ICloneable<Vec3>, IEquatable<Vec3> {
8
- static add(v1: Vec3, v2: Vec3): Vec3;
9
- static sub(v1: Vec3, v2: Vec3): Vec3;
10
- static dot(v1: Vec3, v2: Vec3): number;
11
- static cross(v1: Vec3, v2: Vec3): Vec3;
12
- static equals(v1: Vec3, v2: Vec3): boolean;
13
- static getDecimal(v1: Vec3): Vec3;
14
- x: number;
15
- y: number;
16
- z: number;
17
- constructor(x: number, y: number, z: number);
18
- readonly length: number;
19
- readonly lengthPow2: number;
20
- readonly avg: number;
21
- scale(num: number): Vec3;
22
- normalize(): Vec3;
23
- dot(vec: Vec3): number;
24
- sub(vec: Vec3): Vec3;
25
- add(vector: Vec3): Vec3;
26
- equals(vec: Vec3): boolean;
27
- clone(): Vec3;
28
- toString(): string;
29
- }
1
+ import { ICloneable, IEquatable } from '@chemistry/common';
2
+ export interface IVec3 {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ }
7
+ export declare class Vec3 implements IVec3, ICloneable<Vec3>, IEquatable<Vec3> {
8
+ static add(v1: Vec3, v2: Vec3): Vec3;
9
+ static sub(v1: Vec3, v2: Vec3): Vec3;
10
+ static dot(v1: Vec3, v2: Vec3): number;
11
+ static cross(v1: Vec3, v2: Vec3): Vec3;
12
+ static equals(v1: Vec3, v2: Vec3): boolean;
13
+ static getDecimal(v1: Vec3): Vec3;
14
+ x: number;
15
+ y: number;
16
+ z: number;
17
+ constructor(x: number, y: number, z: number);
18
+ get length(): number;
19
+ get lengthPow2(): number;
20
+ get avg(): number;
21
+ scale(num: number): Vec3;
22
+ normalize(): Vec3;
23
+ dot(vec: Vec3): number;
24
+ sub(vec: Vec3): Vec3;
25
+ add(vector: Vec3): Vec3;
26
+ equals(vec: Vec3): boolean;
27
+ clone(): Vec3;
28
+ toString(): string;
29
+ }
30
+ //# sourceMappingURL=vec3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../src/vec3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,qBAAa,IAAK,YAAW,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC;WACtD,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI;WAI7B,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI;WAI7B,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM;WAI/B,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI;WAQ/B,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO;WAQnC,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI;IAOjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;gBAEL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAM3C,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,GAAG,IAAI,MAAM,CAEvB;IAEM,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,SAAS,IAAI,IAAI;IASjB,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM;IAItB,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IAIpB,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAIvB,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO;IAI1B,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,MAAM;CAG1B"}
package/dist/vec3.js ADDED
@@ -0,0 +1,71 @@
1
+ import { EPSILON } from '@chemistry/common';
2
+ export class Vec3 {
3
+ static add(v1, v2) {
4
+ return new Vec3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
5
+ }
6
+ static sub(v1, v2) {
7
+ return new Vec3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
8
+ }
9
+ static dot(v1, v2) {
10
+ return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z;
11
+ }
12
+ static cross(v1, v2) {
13
+ return new Vec3(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);
14
+ }
15
+ static equals(v1, v2) {
16
+ return (Math.abs(v1.x - v2.x) < EPSILON &&
17
+ Math.abs(v1.y - v2.y) < EPSILON &&
18
+ Math.abs(v1.z - v2.z) < EPSILON);
19
+ }
20
+ static getDecimal(v1) {
21
+ const x = v1.x - Math.floor(v1.x);
22
+ const y = v1.y - Math.floor(v1.y);
23
+ const z = v1.z - Math.floor(v1.z);
24
+ return new Vec3(x, y, z);
25
+ }
26
+ constructor(x, y, z) {
27
+ this.x = x;
28
+ this.y = y;
29
+ this.z = z;
30
+ }
31
+ get length() {
32
+ return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
33
+ }
34
+ get lengthPow2() {
35
+ return this.x * this.x + this.y * this.y + this.z * this.z;
36
+ }
37
+ get avg() {
38
+ return (this.x + this.y + this.z) / 3;
39
+ }
40
+ scale(num) {
41
+ return new Vec3(this.x * num, this.y * num, this.z * num);
42
+ }
43
+ normalize() {
44
+ const len = this.length;
45
+ if (len === 0) {
46
+ throw new Error('Can not normalize zero vector');
47
+ }
48
+ else {
49
+ return new Vec3(this.x / len, this.y / len, this.z / len);
50
+ }
51
+ }
52
+ dot(vec) {
53
+ return Vec3.dot(this, vec);
54
+ }
55
+ sub(vec) {
56
+ return Vec3.sub(this, vec);
57
+ }
58
+ add(vector) {
59
+ return Vec3.add(this, vector);
60
+ }
61
+ equals(vec) {
62
+ return Vec3.equals(this, vec);
63
+ }
64
+ clone() {
65
+ return new Vec3(this.x, this.y, this.z);
66
+ }
67
+ toString() {
68
+ return '(' + this.x.toFixed(3) + ',' + this.y.toFixed(3) + ',' + this.z.toFixed(3) + ')';
69
+ }
70
+ }
71
+ //# sourceMappingURL=vec3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec3.js","sourceRoot":"","sources":["../src/vec3.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,39 +1,50 @@
1
1
  {
2
- "name": "@chemistry/math",
3
- "version": "2.7.0",
4
- "description": "Math support for @chemistry project",
5
- "author": {
6
- "name": "Volodymyr Vreshch",
7
- "url": "http://vreshch.com/"
8
- },
9
- "license": "MIT",
10
- "keywords": [
11
- "cheminformatics",
12
- "crystallography",
13
- "math"
14
- ],
15
- "engines": {
16
- "node": ">=6.0.0"
17
- },
18
- "repository": "https://github.com/chemistry/chem-js-lib/tree/master/packages/math",
19
- "publishConfig": {
20
- "registry": "https://registry.npmjs.org/",
21
- "access": "public"
22
- },
23
- "private": false,
24
- "files": [
25
- "package-lock.json",
26
- "package.json",
27
- "dist",
28
- "README.md"
29
- ],
30
- "main": "dist/math.js",
31
- "typings": "dist/index.d.ts",
32
- "scripts": {
33
- "build": "webpack-cli --config webpack.config.js --mode production"
34
- },
35
- "dependencies": {
36
- "@chemistry/common": "^2.7.0"
37
- },
38
- "gitHead": "58b10639212f9973109134f9d98edac2cfa97da2"
2
+ "name": "@chemistry/math",
3
+ "version": "3.0.1",
4
+ "description": "Math support for @chemistry project",
5
+ "type": "module",
6
+ "author": {
7
+ "name": "Volodymyr Vreshch",
8
+ "url": "https://vreshch.com/"
9
+ },
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "cheminformatics",
13
+ "crystallography",
14
+ "math"
15
+ ],
16
+ "engines": {
17
+ "node": ">=20.0.0"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/chemistry/chemical-libraries.git",
22
+ "directory": "packages/math"
23
+ },
24
+ "publishConfig": {
25
+ "registry": "https://registry.npmjs.org/",
26
+ "access": "public"
27
+ },
28
+ "private": false,
29
+ "sideEffects": false,
30
+ "files": [
31
+ "package.json",
32
+ "dist",
33
+ "README.md"
34
+ ],
35
+ "main": "./dist/index.js",
36
+ "types": "./dist/index.d.ts",
37
+ "exports": {
38
+ ".": {
39
+ "types": "./dist/index.d.ts",
40
+ "import": "./dist/index.js"
41
+ }
42
+ },
43
+ "scripts": {
44
+ "build": "tsc",
45
+ "type-check": "tsc --noEmit"
46
+ },
47
+ "dependencies": {
48
+ "@chemistry/common": "^3.0.0"
49
+ }
39
50
  }
package/LICENSE.md DELETED
@@ -1,22 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2018 Volodymyr Vreshch
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/dist/math.js DELETED
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("math",[],t):"object"==typeof exports?exports.math=t():e.math=t()}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function n(s){if(t[s])return t[s].exports;var i=t[s]={i:s,l:!1,exports:{}};return e[s].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(s,i,function(t){return e[t]}.bind(null,i));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"undefined"!=typeof self&&self,e.exports=function(e){var t={};function n(s){if(t[s])return t[s].exports;var i=t[s]={i:s,l:!1,exports:{}};return e[s].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(s,i,function(t){return e[t]}.bind(null,i));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(n(1))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EPSILON=1e-8}])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),i=function(){function e(e,t,n){this.x=e,this.y=t,this.z=n}return e.add=function(t,n){return new e(t.x+n.x,t.y+n.y,t.z+n.z)},e.sub=function(t,n){return new e(t.x-n.x,t.y-n.y,t.z-n.z)},e.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},e.cross=function(t,n){return new e(t.y*n.z-t.z*n.y,t.z*n.x-t.x*n.z,t.x*n.y-t.y*n.x)},e.equals=function(e,t){return Math.abs(e.x-t.x)<s.EPSILON&&Math.abs(e.y-t.y)<s.EPSILON&&Math.abs(e.z-t.z)<s.EPSILON},e.getDecimal=function(t){return new e(t.x-Math.floor(t.x),t.y-Math.floor(t.y),t.z-Math.floor(t.z))},Object.defineProperty(e.prototype,"length",{get:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lengthPow2",{get:function(){return this.x*this.x+this.y*this.y+this.z*this.z},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"avg",{get:function(){return(this.x+this.y+this.z)/3},enumerable:!0,configurable:!0}),e.prototype.scale=function(t){return new e(this.x*t,this.y*t,this.z*t)},e.prototype.normalize=function(){var t=this.length;if(0===t)throw new Error("Can not normalize zero vector");return new e(this.x/t,this.y/t,this.z/t)},e.prototype.dot=function(t){return e.dot(this,t)},e.prototype.sub=function(t){return e.sub(this,t)},e.prototype.add=function(t){return e.add(this,t)},e.prototype.equals=function(t){return e.equals(this,t)},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e.prototype.toString=function(){return"("+this.x.toFixed(3)+","+this.y.toFixed(3)+","+this.z.toFixed(3)+")"},e}();t.Vec3=i},function(e,t,n){"use strict";function s(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),s(n(3)),s(n(4)),s(n(5)),s(n(1)),s(n(7))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),i=n(1),r=function(){function e(e){this.elements=e&&9===e.length?e.slice(0):[1,0,0,0,1,0,0,0,1]}return e.equals=function(e,t){return Math.abs(e.elements[0]-t.elements[0])<s.EPSILON&&Math.abs(e.elements[1]-t.elements[1])<s.EPSILON&&Math.abs(e.elements[2]-t.elements[2])<s.EPSILON&&Math.abs(e.elements[3]-t.elements[3])<s.EPSILON&&Math.abs(e.elements[4]-t.elements[4])<s.EPSILON&&Math.abs(e.elements[5]-t.elements[5])<s.EPSILON&&Math.abs(e.elements[6]-t.elements[6])<s.EPSILON&&Math.abs(e.elements[7]-t.elements[7])<s.EPSILON&&Math.abs(e.elements[8]-t.elements[8])<s.EPSILON},e.inverse=function(t){var n=t.determinant();if(0===n)throw new Error("Matrix not invertable");return new e([(t.get(1,1)*t.get(2,2)-t.get(1,2)*t.get(2,1))/n,(-t.get(0,1)*t.get(2,2)+t.get(0,2)*t.get(2,1))/n,(t.get(0,1)*t.get(1,2)-t.get(0,2)*t.get(1,1))/n,(-t.get(1,0)*t.get(2,2)+t.get(1,2)*t.get(2,0))/n,(t.get(0,0)*t.get(2,2)-t.get(0,2)*t.get(2,0))/n,(-t.get(0,0)*t.get(1,2)+t.get(0,2)*t.get(1,0))/n,(t.get(1,0)*t.get(2,1)-t.get(1,1)*t.get(2,0))/n,(-t.get(0,0)*t.get(2,1)+t.get(0,1)*t.get(2,0))/n,(t.get(0,0)*t.get(1,1)-t.get(0,1)*t.get(1,0))/n])},e.prototype.set=function(e,t,n){if(e>3||e<0||t>3||t<0)throw new Error("Wrong coefficients");this.elements[3*e+t]=n},e.prototype.get=function(e,t){if(e>3||e<0||t>3||t<0)throw new Error("Wrong coefficients");return this.elements[3*e+t]},e.prototype.scale=function(t){return new e([this.elements[0]*t,this.elements[1]*t,this.elements[2]*t,this.elements[3]*t,this.elements[4]*t,this.elements[5]*t,this.elements[6]*t,this.elements[7]*t,this.elements[8]*t])},e.prototype.project=function(e){return new i.Vec3(this.elements[0]*e.x+this.elements[1]*e.y+this.elements[2]*e.z,this.elements[3]*e.x+this.elements[4]*e.y+this.elements[5]*e.z,this.elements[6]*e.x+this.elements[7]*e.y+this.elements[8]*e.z)},e.prototype.multiply=function(t){return new e([this.elements[0]*t.elements[0]+this.elements[3]*t.elements[1]+this.elements[6]*t.elements[2],this.elements[1]*t.elements[0]+this.elements[4]*t.elements[1]+this.elements[7]*t.elements[2],this.elements[2]*t.elements[0]+this.elements[5]*t.elements[1]+this.elements[8]*t.elements[2],this.elements[0]*t.elements[3]+this.elements[3]*t.elements[4]+this.elements[6]*t.elements[5],this.elements[1]*t.elements[3]+this.elements[4]*t.elements[4]+this.elements[7]*t.elements[5],this.elements[2]*t.elements[3]+this.elements[5]*t.elements[4]+this.elements[8]*t.elements[5],this.elements[0]*t.elements[6]+this.elements[3]*t.elements[7]+this.elements[6]*t.elements[8],this.elements[1]*t.elements[6]+this.elements[4]*t.elements[7]+this.elements[7]*t.elements[8],this.elements[2]*t.elements[6]+this.elements[5]*t.elements[7]+this.elements[8]*t.elements[8]])},e.prototype.determinant=function(){var e=this.get(0,0)*(this.get(1,1)*this.get(2,2)-this.get(2,1)*this.get(1,2));return e-=this.get(1,0)*(this.get(0,1)*this.get(2,2)-this.get(2,1)*this.get(0,2)),e+=this.get(2,0)*(this.get(0,1)*this.get(1,2)-this.get(1,1)*this.get(0,2))},e.prototype.clone=function(){return new e(this.elements.slice(0))},e.prototype.equals=function(t){return e.equals(this,t)},e.prototype.toString=function(){return"("+[this.elements[0].toFixed(3),this.elements[1].toFixed(3),this.elements[2].toFixed(3),this.elements[3].toFixed(3),this.elements[4].toFixed(3),this.elements[5].toFixed(3),this.elements[6].toFixed(3),this.elements[7].toFixed(3),this.elements[8].toFixed(3)].join(",")+")"},e}();t.Matrix3x3=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),i=n(1),r=function(){function e(e){this.elements=e&&12===e.length?e.slice(0):[1,0,0,0,0,1,0,0,0,0,1,0]}return e.add=function(t,n){var s=t.elements,i=n.elements;return new e([s[0]+i[0],s[1]+i[1],s[2]+i[2],s[3]+i[3],s[4]+i[4],s[5]+i[5],s[6]+i[6],s[7]+i[7],s[8]+i[8],s[9]+i[9],s[10]+i[10],s[11]+i[11]])},e.sub=function(t,n){var s=t.elements,i=n.elements;return new e([s[0]-i[0],s[1]-i[1],s[2]-i[2],s[3]-i[3],s[4]-i[4],s[5]-i[5],s[6]-i[6],s[7]-i[7],s[8]-i[8],s[9]-i[9],s[10]-i[10],s[11]-i[11]])},e.inverse=function(t){var n,s,i=[],r=t.elements.slice(0,12);for(r[12]=0,r[13]=0,r[14]=0,r[15]=1,i[0]=r[5]*r[10]*r[15]-r[5]*r[14]*r[11]-r[6]*r[9]*r[15]+r[6]*r[13]*r[11]+r[7]*r[9]*r[14]-r[7]*r[13]*r[10],i[1]=-r[1]*r[10]*r[15]+r[1]*r[14]*r[11]+r[2]*r[9]*r[15]-r[2]*r[13]*r[11]-r[3]*r[9]*r[14]+r[3]*r[13]*r[10],i[2]=r[1]*r[6]*r[15]-r[1]*r[14]*r[7]-r[2]*r[5]*r[15]+r[2]*r[13]*r[7]+r[3]*r[5]*r[14]-r[3]*r[13]*r[6],i[3]=-r[1]*r[6]*r[11]+r[1]*r[10]*r[7]+r[2]*r[5]*r[11]-r[2]*r[9]*r[7]-r[3]*r[5]*r[10]+r[3]*r[9]*r[6],i[4]=-r[4]*r[10]*r[15]+r[4]*r[14]*r[11]+r[6]*r[8]*r[15]-r[6]*r[12]*r[11]-r[7]*r[8]*r[14]+r[7]*r[12]*r[10],i[5]=r[0]*r[10]*r[15]-r[0]*r[14]*r[11]-r[2]*r[8]*r[15]+r[2]*r[12]*r[11]+r[3]*r[8]*r[14]-r[3]*r[12]*r[10],i[6]=-r[0]*r[6]*r[15]+r[0]*r[14]*r[7]+r[2]*r[4]*r[15]-r[2]*r[12]*r[7]-r[3]*r[4]*r[14]+r[3]*r[12]*r[6],i[7]=r[0]*r[6]*r[11]-r[0]*r[10]*r[7]-r[2]*r[4]*r[11]+r[2]*r[8]*r[7]+r[3]*r[4]*r[10]-r[3]*r[8]*r[6],i[8]=r[4]*r[9]*r[15]-r[4]*r[13]*r[11]-r[5]*r[8]*r[15]+r[5]*r[12]*r[11]+r[7]*r[8]*r[13]-r[7]*r[12]*r[9],i[9]=-r[0]*r[9]*r[15]+r[0]*r[13]*r[11]+r[1]*r[8]*r[15]-r[1]*r[12]*r[11]-r[3]*r[8]*r[13]+r[3]*r[12]*r[9],i[10]=r[0]*r[5]*r[15]-r[0]*r[13]*r[7]-r[1]*r[4]*r[15]+r[1]*r[12]*r[7]+r[3]*r[4]*r[13]-r[3]*r[12]*r[5],i[11]=-r[0]*r[5]*r[11]+r[0]*r[9]*r[7]+r[1]*r[4]*r[11]-r[1]*r[8]*r[7]-r[3]*r[4]*r[9]+r[3]*r[8]*r[5],i[12]=-r[4]*r[9]*r[14]+r[4]*r[13]*r[10]+r[5]*r[8]*r[14]-r[5]*r[12]*r[10]-r[6]*r[8]*r[13]+r[6]*r[12]*r[9],i[13]=r[0]*r[9]*r[14]-r[0]*r[13]*r[10]-r[1]*r[8]*r[14]+r[1]*r[12]*r[10]+r[2]*r[8]*r[13]-r[2]*r[12]*r[9],i[14]=-r[0]*r[5]*r[14]+r[0]*r[13]*r[6]+r[1]*r[4]*r[14]-r[1]*r[12]*r[6]-r[2]*r[4]*r[13]+r[2]*r[12]*r[5],i[15]=r[0]*r[5]*r[10]-r[0]*r[9]*r[6]-r[1]*r[4]*r[10]+r[1]*r[8]*r[6]+r[2]*r[4]*r[9]-r[2]*r[8]*r[5],s=r[0]*i[0]+r[1]*i[4]+r[2]*i[8]+r[3]*i[12],n=0;n<16;n++)i[n]/=s;return new e(i.slice(0,12))},e.isE=function(e){return Math.abs(e.elements[0]-1)<s.EPSILON&&Math.abs(e.elements[1]-0)<s.EPSILON&&Math.abs(e.elements[2]-0)<s.EPSILON&&Math.abs(e.elements[3]-0)<s.EPSILON&&Math.abs(e.elements[4]-0)<s.EPSILON&&Math.abs(e.elements[5]-1)<s.EPSILON&&Math.abs(e.elements[6]-0)<s.EPSILON&&Math.abs(e.elements[7]-0)<s.EPSILON&&Math.abs(e.elements[8]-0)<s.EPSILON&&Math.abs(e.elements[9]-0)<s.EPSILON&&Math.abs(e.elements[10]-1)<s.EPSILON&&Math.abs(e.elements[11]-0)<s.EPSILON},e.equals=function(e,t){return Math.abs(e.elements[0]-t.elements[0])<s.EPSILON&&Math.abs(e.elements[1]-t.elements[1])<s.EPSILON&&Math.abs(e.elements[2]-t.elements[2])<s.EPSILON&&Math.abs(e.elements[3]-t.elements[3])<s.EPSILON&&Math.abs(e.elements[4]-t.elements[4])<s.EPSILON&&Math.abs(e.elements[5]-t.elements[5])<s.EPSILON&&Math.abs(e.elements[6]-t.elements[6])<s.EPSILON&&Math.abs(e.elements[7]-t.elements[7])<s.EPSILON&&Math.abs(e.elements[8]-t.elements[8])<s.EPSILON&&Math.abs(e.elements[9]-t.elements[9])<s.EPSILON&&Math.abs(e.elements[10]-t.elements[10])<s.EPSILON&&Math.abs(e.elements[11]-t.elements[11])<s.EPSILON},e.prototype.set=function(e,t,n){if(e>3||e<0||t>4||t<0)throw new Error("Wrong coefficients");this.elements[4*e+t]=n},e.prototype.get=function(e,t){if(e>3||e<0||t>4||t<0)throw new Error("Incorrect coeficients");return this.elements[4*e+t]},e.prototype.add=function(t){return e.add(this,t)},e.prototype.sub=function(t){return e.sub(this,t)},e.prototype.translate=function(t){var n=this.elements.slice(0);return n[3]=n[3]+t.x,n[7]=n[7]+t.y,n[11]=n[11]+t.z,new e(n)},e.prototype.scale=function(t){return new e([this.elements[0]*t,this.elements[1]*t,this.elements[2]*t,this.elements[3]*t,this.elements[4]*t,this.elements[5]*t,this.elements[6]*t,this.elements[7]*t,this.elements[8]*t,this.elements[9]*t,this.elements[10]*t,this.elements[11]*t])},e.prototype.project=function(e){return new i.Vec3(this.elements[0]*e.x+this.elements[1]*e.y+this.elements[2]*e.z+this.elements[3],this.elements[4]*e.x+this.elements[5]*e.y+this.elements[6]*e.z+this.elements[7],this.elements[8]*e.x+this.elements[9]*e.y+this.elements[10]*e.z+this.elements[11])},e.prototype.multiply=function(t){var n=[0,0,0,0,0,0,0,0,0,0,0,0];return n[0]=t.elements[0]*this.elements[0]+t.elements[4]*this.elements[1]+t.elements[8]*this.elements[2],n[1]=t.elements[1]*this.elements[0]+t.elements[5]*this.elements[1]+t.elements[9]*this.elements[2],n[2]=t.elements[2]*this.elements[0]+t.elements[6]*this.elements[1]+t.elements[10]*this.elements[2],n[3]=t.elements[3]*this.elements[0]+t.elements[7]*this.elements[1]+t.elements[11]*this.elements[2]+this.elements[3],n[4]=t.elements[0]*this.elements[4]+t.elements[4]*this.elements[5]+t.elements[8]*this.elements[6],n[5]=t.elements[1]*this.elements[4]+t.elements[5]*this.elements[5]+t.elements[9]*this.elements[6],n[6]=t.elements[2]*this.elements[4]+t.elements[6]*this.elements[5]+t.elements[10]*this.elements[6],n[7]=t.elements[3]*this.elements[4]+t.elements[7]*this.elements[5]+t.elements[11]*this.elements[6]+this.elements[7],n[8]=t.elements[0]*this.elements[8]+t.elements[4]*this.elements[9]+t.elements[8]*this.elements[10],n[9]=t.elements[1]*this.elements[8]+t.elements[5]*this.elements[9]+t.elements[9]*this.elements[10],n[10]=t.elements[2]*this.elements[8]+t.elements[6]*this.elements[9]+t.elements[10]*this.elements[10],n[11]=t.elements[3]*this.elements[8]+t.elements[7]*this.elements[9]+t.elements[11]*this.elements[10]+this.elements[11],new e(n)},e.prototype.inverse=function(){return e.inverse(this)},e.prototype.isE=function(){return e.isE(this)},e.prototype.equals=function(t){return e.equals(this,t)},e.prototype.clone=function(){return new e(this.elements)},e.prototype.toString=function(){return"("+this.elements.slice(0,12).map(function(e){return e.toFixed(3)})+")"},e.prototype.toSymetryCode=function(){function e(e){return(Math.round(1e3*e)/1e3).toString()}function t(e){return Math.abs(e-1)<.001}function n(n,s,i,r){var o=[];return 0!==n&&(t(Math.abs(n))?o.push(n>0?"x":"-x"):o.push(e(n)+"x")),0!==s&&(t(Math.abs(s))?o.push(s>0?"y":"-y"):o.push(e(s)+"y")),0!==i&&(t(Math.abs(i))?o.push(i>0?"z":"-z"):o.push(e(i)+"z")),0!==r&&o.push(e(r)),o.reduce(function(e,t){return t&&"-"===t.charAt(0)?e+t:""===e?t:e+"+"+t},"")}return n(this.elements[0],this.elements[1],this.elements[2],this.elements[3])+","+n(this.elements[4],this.elements[5],this.elements[6],this.elements[7])+","+n(this.elements[8],this.elements[9],this.elements[10],this.elements[11])},e}();t.Matrix3x4=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),i=n(6),r=n(1),o=function(){function e(e){if(e&&e.length){if(16!==e.length)throw new Error("Wrong array length. expected 16");this.elements=e.slice(0)}else this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}return e.equals=function(e,t){return Math.abs(e.elements[0]-t.elements[0])<s.EPSILON&&Math.abs(e.elements[1]-t.elements[1])<s.EPSILON&&Math.abs(e.elements[2]-t.elements[2])<s.EPSILON&&Math.abs(e.elements[3]-t.elements[3])<s.EPSILON&&Math.abs(e.elements[4]-t.elements[4])<s.EPSILON&&Math.abs(e.elements[5]-t.elements[5])<s.EPSILON&&Math.abs(e.elements[6]-t.elements[6])<s.EPSILON&&Math.abs(e.elements[7]-t.elements[7])<s.EPSILON&&Math.abs(e.elements[8]-t.elements[8])<s.EPSILON&&Math.abs(e.elements[9]-t.elements[9])<s.EPSILON&&Math.abs(e.elements[10]-t.elements[10])<s.EPSILON&&Math.abs(e.elements[11]-t.elements[11])<s.EPSILON&&Math.abs(e.elements[12]-t.elements[12])<s.EPSILON&&Math.abs(e.elements[13]-t.elements[13])<s.EPSILON&&Math.abs(e.elements[14]-t.elements[14])<s.EPSILON&&Math.abs(e.elements[15]-t.elements[15])<s.EPSILON},e.fromScale=function(t){return new e([t,0,0,0,0,t,0,0,0,0,t,0,0,0,0,1])},e.fromQuaternion=function(t){var n=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],s=t.X()+t.X(),i=t.Y()+t.Y(),r=t.Z()+t.Z(),o=t.X()*s,l=t.X()*i,h=t.X()*r,u=t.Y()*i,m=t.Y()*r,a=t.Z()*r,c=t.W()*s,f=t.W()*i,g=t.W()*r;return n[3]=n[7]=n[11]=n[12]=n[13]=n[14]=0,n[15]=1,n[0]=1-(u+a),n[4]=l+g,n[8]=h-f,n[1]=l-g,n[5]=1-(o+a),n[9]=m+c,n[2]=h+f,n[6]=m-c,n[10]=1-(o+u),new e(n)},e.fromMultiplication=function(t,n){var s=t.elements,i=n.elements;return new e([s[0]*i[0]+s[1]*i[4]+s[2]*i[8]+s[3]*i[12],s[0]*i[1]+s[1]*i[5]+s[2]*i[9]+s[3]*i[13],s[0]*i[2]+s[1]*i[6]+s[2]*i[10]+s[3]*i[14],s[0]*i[3]+s[1]*i[7]+s[2]*i[11]+s[3]*i[15],s[4]*i[0]+s[5]*i[4]+s[6]*i[8]+s[7]*i[12],s[4]*i[1]+s[5]*i[5]+s[6]*i[9]+s[7]*i[13],s[4]*i[2]+s[5]*i[6]+s[6]*i[10]+s[7]*i[14],s[4]*i[3]+s[5]*i[7]+s[6]*i[11]+s[7]*i[15],s[8]*i[0]+s[9]*i[4]+s[10]*i[8]+s[11]*i[12],s[8]*i[1]+s[9]*i[5]+s[10]*i[9]+s[11]*i[13],s[8]*i[2]+s[9]*i[6]+s[10]*i[10]+s[11]*i[14],s[8]*i[3]+s[9]*i[7]+s[10]*i[11]+s[11]*i[15],s[12]*i[0]+s[13]*i[4]+s[14]*i[8]+s[15]*i[12],s[12]*i[1]+s[13]*i[5]+s[14]*i[9]+s[15]*i[13],s[12]*i[2]+s[13]*i[6]+s[14]*i[10]+s[15]*i[14],s[12]*i[3]+s[13]*i[7]+s[14]*i[11]+s[15]*i[15]])},e.fromTranslation=function(t){return new e([1,0,0,0,0,1,0,0,0,0,1,0,t.x,t.y,t.z,1])},e.fromRotation=function(t,n){var s=i.Quaternion.fromAxisAngle(t,n);return e.fromQuaternion(s)},e.prototype.toString=function(){return"("+this.elements.slice(0,16).map(function(e){return e.toFixed(3)})+")"},e.prototype.set=function(e,t,n){if(e>4||e<0||t>4||t<0)throw new Error("Incorrect coeficients");this.elements[e+4*t]=n},e.prototype.get=function(e,t){if(e>4||e<0||t>4||t<0)throw new Error("Incorrect coeficients");return this.elements[e+4*t]},e.prototype.project=function(e){var t=this.elements[0]*e.x+this.elements[4]*e.y+this.elements[8]*e.z+this.elements[12],n=this.elements[1]*e.x+this.elements[5]*e.y+this.elements[9]*e.z+this.elements[13],s=this.elements[2]*e.x+this.elements[6]*e.y+this.elements[10]*e.z+this.elements[14];return new r.Vec3(t,n,s)},e.prototype.rotate=function(t,n){var s=i.Quaternion.fromAxisAngle(t,n),r=e.fromQuaternion(s);return e.fromMultiplication(this,r)},e.prototype.translate=function(t){var n=this.elements;return new e([n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12]+t.x,n[13]+t.y,n[14]+t.z,n[15]])},e.prototype.extractTranslation=function(){return new r.Vec3(this.elements[12],this.elements[13],this.elements[14])},e.prototype.extractScale=function(){var t=this.elements;return new e([t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],0,0,0,1]).project(new r.Vec3(1,1,1)).length/Math.sqrt(3)},e.prototype.inverse=function(){var t,n,s=new Array(16),i=this.elements;for(s[0]=i[5]*i[10]*i[15]-i[5]*i[14]*i[11]-i[6]*i[9]*i[15]+i[6]*i[13]*i[11]+i[7]*i[9]*i[14]-i[7]*i[13]*i[10],s[1]=-i[1]*i[10]*i[15]+i[1]*i[14]*i[11]+i[2]*i[9]*i[15]-i[2]*i[13]*i[11]-i[3]*i[9]*i[14]+i[3]*i[13]*i[10],s[2]=i[1]*i[6]*i[15]-i[1]*i[14]*i[7]-i[2]*i[5]*i[15]+i[2]*i[13]*i[7]+i[3]*i[5]*i[14]-i[3]*i[13]*i[6],s[3]=-i[1]*i[6]*i[11]+i[1]*i[10]*i[7]+i[2]*i[5]*i[11]-i[2]*i[9]*i[7]-i[3]*i[5]*i[10]+i[3]*i[9]*i[6],s[4]=-i[4]*i[10]*i[15]+i[4]*i[14]*i[11]+i[6]*i[8]*i[15]-i[6]*i[12]*i[11]-i[7]*i[8]*i[14]+i[7]*i[12]*i[10],s[5]=i[0]*i[10]*i[15]-i[0]*i[14]*i[11]-i[2]*i[8]*i[15]+i[2]*i[12]*i[11]+i[3]*i[8]*i[14]-i[3]*i[12]*i[10],s[6]=-i[0]*i[6]*i[15]+i[0]*i[14]*i[7]+i[2]*i[4]*i[15]-i[2]*i[12]*i[7]-i[3]*i[4]*i[14]+i[3]*i[12]*i[6],s[7]=i[0]*i[6]*i[11]-i[0]*i[10]*i[7]-i[2]*i[4]*i[11]+i[2]*i[8]*i[7]+i[3]*i[4]*i[10]-i[3]*i[8]*i[6],s[8]=i[4]*i[9]*i[15]-i[4]*i[13]*i[11]-i[5]*i[8]*i[15]+i[5]*i[12]*i[11]+i[7]*i[8]*i[13]-i[7]*i[12]*i[9],s[9]=-i[0]*i[9]*i[15]+i[0]*i[13]*i[11]+i[1]*i[8]*i[15]-i[1]*i[12]*i[11]-i[3]*i[8]*i[13]+i[3]*i[12]*i[9],s[10]=i[0]*i[5]*i[15]-i[0]*i[13]*i[7]-i[1]*i[4]*i[15]+i[1]*i[12]*i[7]+i[3]*i[4]*i[13]-i[3]*i[12]*i[5],s[11]=-i[0]*i[5]*i[11]+i[0]*i[9]*i[7]+i[1]*i[4]*i[11]-i[1]*i[8]*i[7]-i[3]*i[4]*i[9]+i[3]*i[8]*i[5],s[12]=-i[4]*i[9]*i[14]+i[4]*i[13]*i[10]+i[5]*i[8]*i[14]-i[5]*i[12]*i[10]-i[6]*i[8]*i[13]+i[6]*i[12]*i[9],s[13]=i[0]*i[9]*i[14]-i[0]*i[13]*i[10]-i[1]*i[8]*i[14]+i[1]*i[12]*i[10]+i[2]*i[8]*i[13]-i[2]*i[12]*i[9],s[14]=-i[0]*i[5]*i[14]+i[0]*i[13]*i[6]+i[1]*i[4]*i[14]-i[1]*i[12]*i[6]-i[2]*i[4]*i[13]+i[2]*i[12]*i[5],s[15]=i[0]*i[5]*i[10]-i[0]*i[9]*i[6]-i[1]*i[4]*i[10]+i[1]*i[8]*i[6]+i[2]*i[4]*i[9]-i[2]*i[8]*i[5],n=i[0]*s[0]+i[1]*s[4]+i[2]*s[8]+i[3]*s[12],t=0;t<16;t++)s[t]/=n;return new e(s)},e.prototype.determinant=function(){return this.get(0,3)*this.get(1,2)*this.get(2,1)*this.get(3,0)-this.get(0,1)*this.get(1,3)*this.get(2,1)*this.get(3,0)-this.get(0,3)*this.get(1,1)*this.get(2,2)*this.get(3,0)+this.get(0,1)*this.get(1,3)*this.get(2,2)*this.get(3,0)+this.get(0,1)*this.get(1,1)*this.get(2,3)*this.get(3,0)-this.get(0,1)*this.get(1,2)*this.get(2,3)*this.get(3,0)-this.get(0,3)*this.get(1,2)*this.get(2,0)*this.get(3,1)+this.get(0,1)*this.get(1,3)*this.get(2,0)*this.get(3,1)+this.get(0,3)*this.get(1,0)*this.get(2,2)*this.get(3,1)-this.get(0,0)*this.get(1,3)*this.get(2,2)*this.get(3,1)-this.get(0,1)*this.get(1,0)*this.get(2,3)*this.get(3,1)+this.get(0,0)*this.get(1,2)*this.get(2,3)*this.get(3,1)+this.get(0,3)*this.get(1,1)*this.get(2,0)*this.get(3,2)-this.get(0,1)*this.get(1,3)*this.get(2,0)*this.get(3,2)-this.get(0,3)*this.get(1,0)*this.get(2,1)*this.get(3,2)+this.get(0,0)*this.get(1,3)*this.get(2,1)*this.get(3,2)+this.get(0,1)*this.get(1,0)*this.get(2,3)*this.get(3,2)-this.get(0,0)*this.get(1,1)*this.get(2,3)*this.get(3,2)-this.get(0,1)*this.get(1,1)*this.get(2,0)*this.get(3,3)+this.get(0,1)*this.get(1,2)*this.get(2,0)*this.get(3,3)+this.get(0,1)*this.get(1,0)*this.get(2,1)*this.get(3,3)-this.get(0,0)*this.get(1,2)*this.get(2,1)*this.get(3,3)-this.get(0,1)*this.get(1,0)*this.get(2,2)*this.get(3,3)+this.get(0,0)*this.get(1,1)*this.get(2,2)*this.get(3,3)},e.prototype.clone=function(){return new e(this.elements)},e.prototype.equals=function(t){return e.equals(this,t)},e}();t.Transform3D=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t,n,s){this.data=[e,t,n,s]}return e.fromAxisAngle=function(t,n){var s=.5*n,i=t.scale(Math.sin(s));return new e(i.x,i.y,i.z,Math.cos(s))},e.prototype.X=function(){return this.data[0]},e.prototype.Y=function(){return this.data[1]},e.prototype.Z=function(){return this.data[2]},e.prototype.W=function(){return this.data[3]},e}();t.Quaternion=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),i=function(){function e(e,t){this.x=e,this.y=t}return e.add=function(t,n){return new e(t.x+n.x,t.y+n.y)},e.sub=function(t,n){return new e(t.x-n.x,t.y-n.y)},e.dot=function(e,t){return e.x*t.x+e.y*t.y},e.equals=function(e,t){return Math.abs(e.x-t.x)<s.EPSILON&&Math.abs(e.y-t.y)<s.EPSILON},Object.defineProperty(e.prototype,"length",{get:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lengthPow2",{get:function(){return this.x*this.x+this.y*this.y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"avg",{get:function(){return(this.x+this.y)/3},enumerable:!0,configurable:!0}),e.prototype.scale=function(t){return new e(this.x*t,this.y*t)},e.prototype.normalize=function(){var t=this.length;if(0===t)throw new Error("Can not normalize zero vector");return new e(this.x/t,this.y/t)},e.prototype.dot=function(t){return e.dot(this,t)},e.prototype.sub=function(t){return e.sub(this,t)},e.prototype.add=function(t){return e.add(this,t)},e.prototype.equals=function(t){return e.equals(this,t)},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.toString=function(){return"("+this.x.toFixed(3)+","+this.y.toFixed(3)+")"},e}();t.Vec2=i}])});
2
- //# sourceMappingURL=math.js.map
package/dist/math.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://math/webpack/universalModuleDefinition","webpack://math/webpack/bootstrap","webpack://math/../common/dist/common.js","webpack://math/./src/vec3.ts","webpack://math/./src/index.ts","webpack://math/./src/matrix3x3.ts","webpack://math/./src/matrix3x4.ts","webpack://math/./src/transform3d.ts","webpack://math/./src/quaternion.ts","webpack://math/./src/vec2.ts"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","e","default","EPSILON","common_1","Vec3","x","y","z","add","v1","v2","sub","dot","cross","equals","Math","abs","getDecimal","floor","sqrt","scale","num","normalize","len","length","Error","vec","vector","clone","toString","toFixed","__export","vec3_1","Matrix3x3","elements","slice","m1","m2","inverse","matrix","determinant","set","j","val","mult","project","multiply","result","join","Matrix3x4","matrix1","matrix2","det","isE","translate","v","map","element","toSymetryCode","formatSymNumber","round","closeToOne","codePart1","arr","push","reduce","curr","next","charAt","quaternion_1","Transform3D","fromScale","fromQuaternion","quaternion","x2","X","y2","Y","z2","Z","xx","xy","xz","yy","yz","zz","wx","W","wy","wz","fromMultiplication","transform1","transform2","fromTranslation","translation","fromRotation","axis","angle","quat","Quaternion","fromAxisAngle","row","col","position","rotate","extractTranslation","extractScale","Array","transform","w","data","f","pt","sin","cos","Vec2"],"mappings":"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/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,IAAI,EAAG,GAC/DjB,KAAKiB,IAAI,EAAG,GAAKjB,KAAKiB,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","file":"math.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"math\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"math\"] = factory();\n\telse\n\t\troot[\"math\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"common\",[],t):\"object\"==typeof exports?exports.common=t():e.common=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),function(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}(n(1))},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.EPSILON=1e-8}])});\n//# sourceMappingURL=common.js.map","import { EPSILON, ICloneable, IEquatable } from \"@chemistry/common\";\r\n\r\nexport interface IVec3 {\r\n x: number;\r\n y: number;\r\n z: number;\r\n}\r\n\r\nexport class Vec3 implements IVec3, ICloneable<Vec3>, IEquatable<Vec3> {\r\n\r\n public static add(v1: Vec3, v2: Vec3): Vec3 {\r\n return new Vec3(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);\r\n }\r\n\r\n public static sub(v1: Vec3, v2: Vec3): Vec3 {\r\n return new Vec3(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);\r\n }\r\n\r\n public static dot(v1: Vec3, v2: Vec3): number {\r\n return (v1.x * v2.x + v1.y * v2.y + v1.z * v2.z);\r\n }\r\n\r\n public static cross(v1: Vec3, v2: Vec3): Vec3 {\r\n return new Vec3(v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x);\r\n }\r\n\r\n public static equals(v1: Vec3, v2: Vec3): boolean {\r\n return (Math.abs(v1.x - v2.x) < EPSILON)\r\n && (Math.abs(v1.y - v2.y) < EPSILON)\r\n && (Math.abs(v1.z - v2.z) < EPSILON);\r\n }\r\n\r\n public static getDecimal(v1: Vec3): Vec3 {\r\n const x: number = v1.x - Math.floor(v1.x);\r\n const y: number = v1.y - Math.floor(v1.y);\r\n const z: number = v1.z - Math.floor(v1.z);\r\n return new Vec3(x, y, z);\r\n }\r\n\r\n public x: number;\r\n public y: number;\r\n public z: number;\r\n\r\n constructor(x: number, y: number, z: number) {\r\n this.x = x;\r\n this.y = y;\r\n this.z = z;\r\n }\r\n\r\n public get length(): number {\r\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\r\n }\r\n\r\n public get lengthPow2(): number {\r\n return (this.x * this.x + this.y * this.y + this.z * this.z);\r\n }\r\n\r\n public get avg(): number {\r\n return (this.x + this.y + this.z) / 3;\r\n }\r\n\r\n public scale(num: number): Vec3 {\r\n return new Vec3(this.x * num, this.y * num, this.z * num);\r\n }\r\n\r\n public normalize() {\r\n const len = this.length;\r\n if (len === 0) {\r\n throw new Error(\"Can not normalize zero vector\");\r\n } else {\r\n return new Vec3(this.x / len, this.y / len, this.z / len);\r\n }\r\n }\r\n\r\n public dot(vec: Vec3): number {\r\n return Vec3.dot(this, vec);\r\n }\r\n\r\n public sub(vec: Vec3): Vec3 {\r\n return Vec3.sub(this, vec);\r\n }\r\n\r\n public add(vector: Vec3): Vec3 {\r\n return Vec3.add(this, vector);\r\n }\r\n\r\n public equals(vec: Vec3) {\r\n return Vec3.equals(this, vec);\r\n }\r\n\r\n public clone() {\r\n return new Vec3(this.x, this.y, this.z);\r\n }\r\n\r\n public toString() {\r\n return \"(\" + this.x.toFixed(3) + \",\" + this.y.toFixed(3) + \",\" + this.z.toFixed(3) + \")\";\r\n }\r\n}\r\n","export * from \"./matrix3x3\";\r\nexport * from \"./matrix3x4\";\r\nexport * from \"./transform3d\";\r\nexport * from \"./vec3\";\r\nexport * from \"./vec2\";\r\n","import { EPSILON, ICloneable, IEquatable } from \"@chemistry/common\";\r\nimport { Vec3 } from \"./vec3\";\r\n\r\nexport class Matrix3x3 implements ICloneable<Matrix3x3>, IEquatable<Matrix3x3> {\r\n\r\n public static equals(m1: Matrix3x3, m2: Matrix3x3): boolean {\r\n return (Math.abs(m1.elements[0] - m2.elements[0]) < EPSILON)\r\n && (Math.abs(m1.elements[1] - m2.elements[1]) < EPSILON)\r\n && (Math.abs(m1.elements[2] - m2.elements[2]) < EPSILON)\r\n && (Math.abs(m1.elements[3] - m2.elements[3]) < EPSILON)\r\n && (Math.abs(m1.elements[4] - m2.elements[4]) < EPSILON)\r\n && (Math.abs(m1.elements[5] - m2.elements[5]) < EPSILON)\r\n && (Math.abs(m1.elements[6] - m2.elements[6]) < EPSILON)\r\n && (Math.abs(m1.elements[7] - m2.elements[7]) < EPSILON)\r\n && (Math.abs(m1.elements[8] - m2.elements[8]) < EPSILON);\r\n }\r\n\r\n public static inverse(matrix: Matrix3x3): Matrix3x3 {\r\n\r\n const d = matrix.determinant();\r\n if (d === 0) {\r\n throw new Error(\"Matrix not invertable\");\r\n }\r\n\r\n return new Matrix3x3([\r\n (matrix.get(1, 1) * matrix.get(2, 2) - matrix.get(1, 2) * matrix.get(2, 1)) / d,\r\n (-matrix.get(0, 1) * matrix.get(2, 2) + matrix.get(0, 2) * matrix.get(2, 1)) / d,\r\n (matrix.get(0, 1) * matrix.get(1, 2) - matrix.get(0, 2) * matrix.get(1, 1)) / d,\r\n (-matrix.get(1, 0) * matrix.get(2, 2) + matrix.get(1, 2) * matrix.get(2, 0)) / d,\r\n (matrix.get(0, 0) * matrix.get(2, 2) - matrix.get(0, 2) * matrix.get(2, 0)) / d,\r\n (-matrix.get(0, 0) * matrix.get(1, 2) + matrix.get(0, 2) * matrix.get(1, 0)) / d,\r\n (matrix.get(1, 0) * matrix.get(2, 1) - matrix.get(1, 1) * matrix.get(2, 0)) / d,\r\n (-matrix.get(0, 0) * matrix.get(2, 1) + matrix.get(0, 1) * matrix.get(2, 0)) / d,\r\n (matrix.get(0, 0) * matrix.get(1, 1) - matrix.get(0, 1) * matrix.get(1, 0)) / d,\r\n ]);\r\n }\r\n\r\n // | 0 1 2 |\r\n // | 3 4 5 |\r\n // | 6 7 8 |\r\n protected elements: number[];\r\n\r\n constructor(elements?: number[]) {\r\n this.elements = (elements && elements.length === 9) ? elements.slice(0) : [1, 0, 0, 0, 1, 0, 0, 0, 1];\r\n }\r\n\r\n /**\r\n * Set value to specified element of the matrix\r\n */\r\n public set(i: number, j: number, val: number) {\r\n if ((i > 3) || (i < 0) || (j > 3) || (j < 0)) {\r\n throw new Error(\"Wrong coefficients\");\r\n }\r\n this.elements[i * 3 + j] = val;\r\n }\r\n\r\n /**\r\n * return specified element of the matrix\r\n */\r\n public get(i: number, j: number): number {\r\n if ((i > 3) || (i < 0) || (j > 3) || (j < 0)) {\r\n throw new Error(\"Wrong coefficients\");\r\n }\r\n return this.elements[i * 3 + j];\r\n }\r\n\r\n public scale(mult: number): Matrix3x3 {\r\n return new Matrix3x3 ([\r\n this.elements[0] * mult,\r\n this.elements[1] * mult,\r\n this.elements[2] * mult,\r\n this.elements[3] * mult,\r\n this.elements[4] * mult,\r\n this.elements[5] * mult,\r\n this.elements[6] * mult,\r\n this.elements[7] * mult,\r\n this.elements[8] * mult,\r\n ]);\r\n }\r\n\r\n public project(mult: Vec3): Vec3 {\r\n return new Vec3 (\r\n this.elements[0] * mult.x + this.elements[1] * mult.y + this.elements[2] * mult.z,\r\n this.elements[3] * mult.x + this.elements[4] * mult.y + this.elements[5] * mult.z,\r\n this.elements[6] * mult.x + this.elements[7] * mult.y + this.elements[8] * mult.z,\r\n );\r\n }\r\n\r\n /**\r\n * Returns matrix multiplication result to scalar, vector or another matrix\r\n */\r\n public multiply(mult: Matrix3x3): Matrix3x3 {\r\n return new Matrix3x3([\r\n this.elements[0] * mult.elements[0] + this.elements[3] * mult.elements[1] + this.elements[6] * mult.elements[2],\r\n this.elements[1] * mult.elements[0] + this.elements[4] * mult.elements[1] + this.elements[7] * mult.elements[2],\r\n this.elements[2] * mult.elements[0] + this.elements[5] * mult.elements[1] + this.elements[8] * mult.elements[2],\r\n this.elements[0] * mult.elements[3] + this.elements[3] * mult.elements[4] + this.elements[6] * mult.elements[5],\r\n this.elements[1] * mult.elements[3] + this.elements[4] * mult.elements[4] + this.elements[7] * mult.elements[5],\r\n this.elements[2] * mult.elements[3] + this.elements[5] * mult.elements[4] + this.elements[8] * mult.elements[5],\r\n this.elements[0] * mult.elements[6] + this.elements[3] * mult.elements[7] + this.elements[6] * mult.elements[8],\r\n this.elements[1] * mult.elements[6] + this.elements[4] * mult.elements[7] + this.elements[7] * mult.elements[8],\r\n this.elements[2] * mult.elements[6] + this.elements[5] * mult.elements[7] + this.elements[8] * mult.elements[8],\r\n ]);\r\n }\r\n\r\n /**\r\n * Returns matrix determinant\r\n */\r\n public determinant(): number {\r\n let result = this.get(0, 0) * (this.get(1, 1) * this.get(2, 2) - this.get(2, 1) * this.get(1, 2));\r\n result -= this.get(1, 0) * (this.get(0, 1) * this.get(2, 2) - this.get(2, 1) * this.get(0, 2));\r\n result += this.get(2, 0) * (this.get(0, 1) * this.get(1, 2) - this.get(1, 1) * this.get(0, 2));\r\n return result;\r\n }\r\n\r\n /**\r\n * Clone the matrix\r\n */\r\n public clone(): Matrix3x3 {\r\n return new Matrix3x3(this.elements.slice(0));\r\n }\r\n\r\n /**\r\n * Compare 2 matrixes\r\n */\r\n public equals(matrix: Matrix3x3): boolean {\r\n return Matrix3x3.equals(this, matrix);\r\n }\r\n\r\n /**\r\n * Returns string representation of the matrix\r\n */\r\n public toString(): string {\r\n return \"(\" + [\r\n this.elements[0].toFixed(3),\r\n this.elements[1].toFixed(3),\r\n this.elements[2].toFixed(3),\r\n this.elements[3].toFixed(3),\r\n this.elements[4].toFixed(3),\r\n this.elements[5].toFixed(3),\r\n this.elements[6].toFixed(3),\r\n this.elements[7].toFixed(3),\r\n this.elements[8].toFixed(3),\r\n ].join(\",\") + \")\";\r\n }\r\n}\r\n","import { EPSILON, ICloneable, IEquatable } from \"@chemistry/common\";\r\nimport { Vec3 } from \"./vec3\";\r\n\r\n/**\r\n * Simple Class to work with special type of matrix.\r\n * | x1 x2 x3 x4 |\r\n * | x5 x6 x7 x8 |\r\n * | x8 x10 x11 x12|\r\n * | 0 0 0 1 |\r\n */\r\nexport class Matrix3x4 implements ICloneable<Matrix3x4>, IEquatable<Matrix3x4> {\r\n\r\n public static add(matrix1: Matrix3x4, matrix2: Matrix3x4): Matrix3x4 {\r\n const m1 = matrix1.elements;\r\n const m2 = matrix2.elements;\r\n return new Matrix3x4([\r\n m1[0] + m2[0],\r\n m1[1] + m2[1],\r\n m1[2] + m2[2],\r\n m1[3] + m2[3],\r\n m1[4] + m2[4],\r\n m1[5] + m2[5],\r\n m1[6] + m2[6],\r\n m1[7] + m2[7],\r\n m1[8] + m2[8],\r\n m1[9] + m2[9],\r\n m1[10] + m2[10],\r\n m1[11] + m2[11],\r\n ]);\r\n }\r\n\r\n public static sub(matrix1: Matrix3x4, matrix2: Matrix3x4): Matrix3x4 {\r\n const m1 = matrix1.elements;\r\n const m2 = matrix2.elements;\r\n return new Matrix3x4([\r\n m1[0] - m2[0],\r\n m1[1] - m2[1],\r\n m1[2] - m2[2],\r\n m1[3] - m2[3],\r\n m1[4] - m2[4],\r\n m1[5] - m2[5],\r\n m1[6] - m2[6],\r\n m1[7] - m2[7],\r\n m1[8] - m2[8],\r\n m1[9] - m2[9],\r\n m1[10] - m2[10],\r\n m1[11] - m2[11],\r\n ]);\r\n }\r\n\r\n public static inverse(matrix: Matrix3x4): Matrix3x4 {\r\n const r = [];\r\n let i;\r\n let det;\r\n const m = matrix.elements.slice(0, 12);\r\n m[12] = 0;\r\n m[13] = 0;\r\n m[14] = 0;\r\n m[15] = 1;\r\n\r\n r[0] = m[5] * m[10] * m[15] - m[5] * m[14] * m[11] - m[6] * m[9] * m[15]\r\n + m[6] * m[13] * m[11] + m[7] * m[9] * m[14] - m[7] * m[13] * m[10];\r\n\r\n r[1] = -m[1] * m[10] * m[15] + m[1] * m[14] * m[11] + m[2] * m[9] * m[15]\r\n - m[2] * m[13] * m[11] - m[3] * m[9] * m[14] + m[3] * m[13] * m[10];\r\n\r\n r[2] = m[1] * m[6] * m[15] - m[1] * m[14] * m[7] - m[2] * m[5] * m[15]\r\n + m[2] * m[13] * m[7] + m[3] * m[5] * m[14] - m[3] * m[13] * m[6];\r\n\r\n r[3] = -m[1] * m[6] * m[11] + m[1] * m[10] * m[7] + m[2] * m[5] * m[11]\r\n - m[2] * m[9] * m[7] - m[3] * m[5] * m[10] + m[3] * m[9] * m[6];\r\n\r\n r[4] = -m[4] * m[10] * m[15] + m[4] * m[14] * m[11] + m[6] * m[8] * m[15]\r\n - m[6] * m[12] * m[11] - m[7] * m[8] * m[14] + m[7] * m[12] * m[10];\r\n\r\n r[5] = m[0] * m[10] * m[15] - m[0] * m[14] * m[11] - m[2] * m[8] * m[15]\r\n + m[2] * m[12] * m[11] + m[3] * m[8] * m[14] - m[3] * m[12] * m[10];\r\n\r\n r[6] = -m[0] * m[6] * m[15] + m[0] * m[14] * m[7] + m[2] * m[4] * m[15]\r\n - m[2] * m[12] * m[7] - m[3] * m[4] * m[14] + m[3] * m[12] * m[6];\r\n\r\n r[7] = m[0] * m[6] * m[11] - m[0] * m[10] * m[7] - m[2] * m[4] * m[11]\r\n + m[2] * m[8] * m[7] + m[3] * m[4] * m[10] - m[3] * m[8] * m[6];\r\n\r\n r[8] = m[4] * m[9] * m[15] - m[4] * m[13] * m[11] - m[5] * m[8] * m[15]\r\n + m[5] * m[12] * m[11] + m[7] * m[8] * m[13] - m[7] * m[12] * m[9];\r\n\r\n r[9] = -m[0] * m[9] * m[15] + m[0] * m[13] * m[11] + m[1] * m[8] * m[15]\r\n - m[1] * m[12] * m[11] - m[3] * m[8] * m[13] + m[3] * m[12] * m[9];\r\n\r\n r[10] = m[0] * m[5] * m[15] - m[0] * m[13] * m[7] - m[1] * m[4] * m[15]\r\n + m[1] * m[12] * m[7] + m[3] * m[4] * m[13] - m[3] * m[12] * m[5];\r\n\r\n r[11] = -m[0] * m[5] * m[11] + m[0] * m[9] * m[7] + m[1] * m[4] * m[11]\r\n - m[1] * m[8] * m[7] - m[3] * m[4] * m[9] + m[3] * m[8] * m[5];\r\n\r\n r[12] = -m[4] * m[9] * m[14] + m[4] * m[13] * m[10] + m[5] * m[8] * m[14]\r\n - m[5] * m[12] * m[10] - m[6] * m[8] * m[13] + m[6] * m[12] * m[9];\r\n\r\n r[13] = m[0] * m[9] * m[14] - m[0] * m[13] * m[10] - m[1] * m[8] * m[14]\r\n + m[1] * m[12] * m[10] + m[2] * m[8] * m[13] - m[2] * m[12] * m[9];\r\n\r\n r[14] = -m[0] * m[5] * m[14] + m[0] * m[13] * m[6] + m[1] * m[4] * m[14]\r\n - m[1] * m[12] * m[6] - m[2] * m[4] * m[13] + m[2] * m[12] * m[5];\r\n\r\n r[15] = m[0] * m[5] * m[10] - m[0] * m[9] * m[6] - m[1] * m[4] * m[10]\r\n + m[1] * m[8] * m[6] + m[2] * m[4] * m[9] - m[2] * m[8] * m[5];\r\n\r\n det = m[0] * r[0] + m[1] * r[4] + m[2] * r[8] + m[3] * r[12];\r\n for (i = 0; i < 16; i++) {\r\n r[i] /= det;\r\n }\r\n return new Matrix3x4(r.slice(0, 12));\r\n }\r\n\r\n public static isE(matrix: Matrix3x4): boolean {\r\n return (Math.abs(matrix.elements[0] - 1) < EPSILON)\r\n && (Math.abs(matrix.elements[1] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[2] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[3] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[4] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[5] - 1) < EPSILON)\r\n && (Math.abs(matrix.elements[6] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[7] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[8] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[9] - 0) < EPSILON)\r\n && (Math.abs(matrix.elements[10] - 1) < EPSILON)\r\n && (Math.abs(matrix.elements[11] - 0) < EPSILON);\r\n }\r\n\r\n public static equals(matrix1: Matrix3x4, matrix2: Matrix3x4): boolean {\r\n return (Math.abs(matrix1.elements[0] - matrix2.elements[0]) < EPSILON)\r\n && (Math.abs(matrix1.elements[1] - matrix2.elements[1]) < EPSILON)\r\n && (Math.abs(matrix1.elements[2] - matrix2.elements[2]) < EPSILON)\r\n && (Math.abs(matrix1.elements[3] - matrix2.elements[3]) < EPSILON)\r\n && (Math.abs(matrix1.elements[4] - matrix2.elements[4]) < EPSILON)\r\n && (Math.abs(matrix1.elements[5] - matrix2.elements[5]) < EPSILON)\r\n && (Math.abs(matrix1.elements[6] - matrix2.elements[6]) < EPSILON)\r\n && (Math.abs(matrix1.elements[7] - matrix2.elements[7]) < EPSILON)\r\n && (Math.abs(matrix1.elements[8] - matrix2.elements[8]) < EPSILON)\r\n && (Math.abs(matrix1.elements[9] - matrix2.elements[9]) < EPSILON)\r\n && (Math.abs(matrix1.elements[10] - matrix2.elements[10]) < EPSILON)\r\n && (Math.abs(matrix1.elements[11] - matrix2.elements[11]) < EPSILON);\r\n }\r\n\r\n protected elements: number[];\r\n\r\n constructor(elements?: number[]) {\r\n this.elements = (elements && elements.length === 12) ? elements.slice(0) : [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0];\r\n }\r\n\r\n /**\r\n * Set value to specified element of the matrix\r\n */\r\n public set(i: number, j: number, val: number) {\r\n if ((i > 3) || (i < 0) || (j > 4) || (j < 0)) {\r\n throw new Error(\"Wrong coefficients\");\r\n }\r\n this.elements[i * 4 + j] = val;\r\n }\r\n\r\n /**\r\n * return specified element of the matrix\r\n * @param {Number} i row\r\n * @param {Number} j column\r\n * @return {Number}\r\n */\r\n public get(i: number, j: number) {\r\n if ((i > 3) || (i < 0) || (j > 4) || (j < 0)) {\r\n throw new Error(\"Incorrect coeficients\");\r\n }\r\n return this.elements[i * 4 + j];\r\n }\r\n\r\n public add(matrix: Matrix3x4): Matrix3x4 {\r\n return Matrix3x4.add(this, matrix);\r\n }\r\n\r\n public sub(matrix: Matrix3x4): Matrix3x4 {\r\n return Matrix3x4.sub(this, matrix);\r\n }\r\n\r\n public translate(v: Vec3): Matrix3x4 {\r\n const elements = this.elements.slice(0);\r\n elements[3] = elements[3] + v.x;\r\n elements[7] = elements[7] + v.y;\r\n elements[11] = elements[11] + v.z;\r\n return new Matrix3x4(elements);\r\n }\r\n\r\n public scale(mult: number): Matrix3x4 {\r\n return new Matrix3x4([\r\n this.elements[0] * mult,\r\n this.elements[1] * mult,\r\n this.elements[2] * mult,\r\n this.elements[3] * mult,\r\n this.elements[4] * mult,\r\n this.elements[5] * mult,\r\n this.elements[6] * mult,\r\n this.elements[7] * mult,\r\n this.elements[8] * mult,\r\n this.elements[9] * mult,\r\n this.elements[10] * mult,\r\n this.elements[11] * mult,\r\n ]);\r\n }\r\n\r\n public project(mult: Vec3): Vec3 {\r\n return new Vec3(\r\n this.elements[0] * mult.x + this.elements[1] * mult.y + this.elements[2] * mult.z + this.elements[3],\r\n this.elements[4] * mult.x + this.elements[5] * mult.y + this.elements[6] * mult.z + this.elements[7],\r\n this.elements[8] * mult.x + this.elements[9] * mult.y + this.elements[10] * mult.z + this.elements[11],\r\n );\r\n }\r\n\r\n public multiply(mult: Matrix3x4) {\r\n const elements = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n elements[0] = mult.elements[0] * this.elements[0] + mult.elements[4] * this.elements[1] + mult.elements[8] * this.elements[2];\r\n elements[1] = mult.elements[1] * this.elements[0] + mult.elements[5] * this.elements[1] + mult.elements[9] * this.elements[2];\r\n elements[2] = mult.elements[2] * this.elements[0] + mult.elements[6] * this.elements[1] + mult.elements[10] * this.elements[2];\r\n elements[3] = mult.elements[3] * this.elements[0] + mult.elements[7] * this.elements[1] + mult.elements[11] * this.elements[2]\r\n + this.elements[3];\r\n\r\n elements[4] = mult.elements[0] * this.elements[4] + mult.elements[4] * this.elements[5] + mult.elements[8] * this.elements[6];\r\n elements[5] = mult.elements[1] * this.elements[4] + mult.elements[5] * this.elements[5] + mult.elements[9] * this.elements[6];\r\n elements[6] = mult.elements[2] * this.elements[4] + mult.elements[6] * this.elements[5] + mult.elements[10] * this.elements[6];\r\n elements[7] = mult.elements[3] * this.elements[4] + mult.elements[7] * this.elements[5] + mult.elements[11] * this.elements[6]\r\n + this.elements[7];\r\n\r\n elements[8] = mult.elements[0] * this.elements[8] + mult.elements[4] * this.elements[9] + mult.elements[8] * this.elements[10];\r\n elements[9] = mult.elements[1] * this.elements[8] + mult.elements[5] * this.elements[9] + mult.elements[9] * this.elements[10];\r\n elements[10] = mult.elements[2] * this.elements[8] + mult.elements[6] * this.elements[9] + mult.elements[10] * this.elements[10];\r\n elements[11] = mult.elements[3] * this.elements[8] + mult.elements[7] * this.elements[9] + mult.elements[11] * this.elements[10]\r\n + this.elements[11];\r\n return new Matrix3x4(elements);\r\n }\r\n\r\n public inverse(): Matrix3x4 {\r\n return Matrix3x4.inverse(this);\r\n }\r\n\r\n public isE() {\r\n return Matrix3x4.isE(this);\r\n }\r\n\r\n public equals(matrix: Matrix3x4): boolean {\r\n return Matrix3x4.equals(this, matrix);\r\n }\r\n\r\n public clone(): Matrix3x4 {\r\n return new Matrix3x4(this.elements);\r\n }\r\n\r\n public toString(): string {\r\n return \"(\" + this.elements.slice(0, 12).map((element) => element.toFixed(3)) + \")\";\r\n }\r\n\r\n /**\r\n * Return transformation matrix as symetry code (common in Crystallography)\r\n * e.g. 1-x,1-y,1-z\r\n */\r\n public toSymetryCode(): string {\r\n\r\n function formatSymNumber(num: number): string {\r\n return (Math.round(num * 1000) / 1000).toString();\r\n }\r\n function closeToOne(num: number) {\r\n return (Math.abs(num - 1) < 0.001);\r\n }\r\n\r\n function codePart1(x: number, y: number, z: number, l: number): string {\r\n const arr = [];\r\n\r\n if (x !== 0) {\r\n if (closeToOne(Math.abs(x))) {\r\n arr.push(x > 0 ? \"x\" : \"-x\");\r\n } else {\r\n arr.push(formatSymNumber(x) + \"x\");\r\n }\r\n }\r\n if (y !== 0) {\r\n if (closeToOne(Math.abs(y))) {\r\n arr.push(y > 0 ? \"y\" : \"-y\");\r\n } else {\r\n arr.push(formatSymNumber(y) + \"y\");\r\n }\r\n }\r\n if (z !== 0) {\r\n if (closeToOne(Math.abs(z))) {\r\n arr.push(z > 0 ? \"z\" : \"-z\");\r\n } else {\r\n arr.push(formatSymNumber(z) + \"z\");\r\n }\r\n }\r\n if (l !== 0) {\r\n arr.push(formatSymNumber(l));\r\n }\r\n\r\n return arr.reduce((curr, next) => {\r\n if (next && next.charAt(0) === \"-\") {\r\n return curr + next;\r\n }\r\n if (curr === \"\") {\r\n return next;\r\n }\r\n return curr + \"+\" + next;\r\n }, \"\");\r\n }\r\n const sx = codePart1(this.elements[0], this.elements[1], this.elements[2], this.elements[3]);\r\n const sy = codePart1(this.elements[4], this.elements[5], this.elements[6], this.elements[7]);\r\n const sz = codePart1(this.elements[8], this.elements[9], this.elements[10], this.elements[11]);\r\n return sx + \",\" + sy + \",\" + sz;\r\n }\r\n\r\n}\r\n","import { EPSILON, ICloneable, IEquatable } from \"@chemistry/common\";\r\nimport { Quaternion } from \"./quaternion\";\r\nimport { Vec3 } from \"./vec3\";\r\n\r\n/**\r\n * Class to work with Matrix4x4 (When normalized have proberty A^-1 = A^t)\r\n * (used for transformation in 3D)\r\n * | 0 4 8 12 | | RS R R T |\r\n * | 1 5 9 13 | | R RS R T |\r\n * | 2 6 10 14 | = | R R RS T |\r\n * | 3 7 11 15 | | 0 0 0 1 |\r\n */\r\nexport class Transform3D implements ICloneable<Transform3D> {\r\n\r\n public static equals(matrix1: Transform3D, matrix2: Transform3D): boolean {\r\n return (Math.abs(matrix1.elements[0] - matrix2.elements[0]) < EPSILON)\r\n && (Math.abs(matrix1.elements[1] - matrix2.elements[1]) < EPSILON)\r\n && (Math.abs(matrix1.elements[2] - matrix2.elements[2]) < EPSILON)\r\n && (Math.abs(matrix1.elements[3] - matrix2.elements[3]) < EPSILON)\r\n && (Math.abs(matrix1.elements[4] - matrix2.elements[4]) < EPSILON)\r\n && (Math.abs(matrix1.elements[5] - matrix2.elements[5]) < EPSILON)\r\n && (Math.abs(matrix1.elements[6] - matrix2.elements[6]) < EPSILON)\r\n && (Math.abs(matrix1.elements[7] - matrix2.elements[7]) < EPSILON)\r\n && (Math.abs(matrix1.elements[8] - matrix2.elements[8]) < EPSILON)\r\n && (Math.abs(matrix1.elements[9] - matrix2.elements[9]) < EPSILON)\r\n && (Math.abs(matrix1.elements[10] - matrix2.elements[10]) < EPSILON)\r\n && (Math.abs(matrix1.elements[11] - matrix2.elements[11]) < EPSILON)\r\n && (Math.abs(matrix1.elements[12] - matrix2.elements[12]) < EPSILON)\r\n && (Math.abs(matrix1.elements[13] - matrix2.elements[13]) < EPSILON)\r\n && (Math.abs(matrix1.elements[14] - matrix2.elements[14]) < EPSILON)\r\n && (Math.abs(matrix1.elements[15] - matrix2.elements[15]) < EPSILON);\r\n }\r\n\r\n /**\r\n * Return Transformation from Scale\r\n */\r\n public static fromScale(scale: number): Transform3D {\r\n return new Transform3D([scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, scale, 0, 0, 0, 0, 1]);\r\n }\r\n\r\n /**\r\n * Return Transformation from Quaternion\r\n */\r\n public static fromQuaternion(quaternion: Quaternion): Transform3D {\r\n const elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\r\n const x2 = quaternion.X() + quaternion.X();\r\n const y2 = quaternion.Y() + quaternion.Y();\r\n const z2 = quaternion.Z() + quaternion.Z();\r\n const xx = quaternion.X() * x2;\r\n const xy = quaternion.X() * y2;\r\n const xz = quaternion.X() * z2;\r\n const yy = quaternion.Y() * y2;\r\n const yz = quaternion.Y() * z2;\r\n const zz = quaternion.Z() * z2;\r\n const wx = quaternion.W() * x2;\r\n const wy = quaternion.W() * y2;\r\n const wz = quaternion.W() * z2;\r\n elements[3] = elements[7] = elements[11] = elements[12] = elements[13] = elements[14] = 0; elements[15] = 1;\r\n elements[0] = 1 - (yy + zz); elements[4] = xy + wz; elements[8] = xz - wy;\r\n elements[1] = xy - wz; elements[5] = 1 - (xx + zz); elements[9] = yz + wx;\r\n elements[2] = xz + wy; elements[6] = yz - wx; elements[10] = 1 - (xx + yy);\r\n return new Transform3D(elements);\r\n }\r\n\r\n public static fromMultiplication(transform1: Transform3D, transform2: Transform3D): Transform3D {\r\n const m1 = transform1.elements;\r\n const m2 = transform2.elements;\r\n\r\n return new Transform3D([\r\n m1[0] * m2[0] + m1[1] * m2[4] + m1[2] * m2[8] + m1[3] * m2[12],\r\n m1[0] * m2[1] + m1[1] * m2[5] + m1[2] * m2[9] + m1[3] * m2[13],\r\n m1[0] * m2[2] + m1[1] * m2[6] + m1[2] * m2[10] + m1[3] * m2[14],\r\n m1[0] * m2[3] + m1[1] * m2[7] + m1[2] * m2[11] + m1[3] * m2[15],\r\n m1[4] * m2[0] + m1[5] * m2[4] + m1[6] * m2[8] + m1[7] * m2[12],\r\n m1[4] * m2[1] + m1[5] * m2[5] + m1[6] * m2[9] + m1[7] * m2[13],\r\n m1[4] * m2[2] + m1[5] * m2[6] + m1[6] * m2[10] + m1[7] * m2[14],\r\n m1[4] * m2[3] + m1[5] * m2[7] + m1[6] * m2[11] + m1[7] * m2[15],\r\n m1[8] * m2[0] + m1[9] * m2[4] + m1[10] * m2[8] + m1[11] * m2[12],\r\n m1[8] * m2[1] + m1[9] * m2[5] + m1[10] * m2[9] + m1[11] * m2[13],\r\n m1[8] * m2[2] + m1[9] * m2[6] + m1[10] * m2[10] + m1[11] * m2[14],\r\n m1[8] * m2[3] + m1[9] * m2[7] + m1[10] * m2[11] + m1[11] * m2[15],\r\n m1[12] * m2[0] + m1[13] * m2[4] + m1[14] * m2[8] + m1[15] * m2[12],\r\n m1[12] * m2[1] + m1[13] * m2[5] + m1[14] * m2[9] + m1[15] * m2[13],\r\n m1[12] * m2[2] + m1[13] * m2[6] + m1[14] * m2[10] + m1[15] * m2[14],\r\n m1[12] * m2[3] + m1[13] * m2[7] + m1[14] * m2[11] + m1[15] * m2[15],\r\n ]);\r\n }\r\n\r\n /**\r\n * Return Transformation by Translation\r\n */\r\n public static fromTranslation(translation: Vec3): Transform3D {\r\n return new Transform3D([\r\n 1, 0, 0, 0,\r\n 0, 1, 0, 0,\r\n 0, 0, 1, 0,\r\n translation.x,\r\n translation.y,\r\n translation.z,\r\n 1,\r\n ]);\r\n }\r\n\r\n /**\r\n * Return Transformation from rootation about an axis\r\n */\r\n public static fromRotation(axis: Vec3, angle: number): Transform3D {\r\n const quat = Quaternion.fromAxisAngle(axis, angle);\r\n return Transform3D.fromQuaternion(quat);\r\n }\r\n\r\n protected elements: number[];\r\n\r\n constructor(elements?: number[]) {\r\n if (elements && elements.length) {\r\n if (elements.length !== 16) {\r\n throw new Error (\"Wrong array length. expected 16\");\r\n }\r\n this.elements = elements.slice(0);\r\n return;\r\n }\r\n\r\n this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\r\n }\r\n\r\n public toString(): string {\r\n return \"(\" + this.elements.slice(0, 16).map((element) => element.toFixed(3)) + \")\";\r\n }\r\n\r\n /**\r\n * Set value to specified element of the matrix\r\n */\r\n public set(row: number, col: number, value: number) {\r\n if ((row > 4) || (row < 0) || (col > 4) || (col < 0)) {\r\n throw new Error(\"Incorrect coeficients\");\r\n }\r\n this.elements[row + col * 4] = value;\r\n }\r\n\r\n /**\r\n * Return specified element of the matrix\r\n */\r\n public get(row: number, col: number): number {\r\n if ((row > 4) || (row < 0) || (col > 4) || (col < 0)) {\r\n throw new Error(\"Incorrect coeficients\");\r\n }\r\n return this.elements[row + col * 4];\r\n }\r\n\r\n /**\r\n * Multipy vector to the Matrix\r\n */\r\n public project(position: Vec3): Vec3 {\r\n const x = this.elements[0] * position.x + this.elements[4] * position.y + this.elements[8] * position.z + this.elements[12];\r\n const y = this.elements[1] * position.x + this.elements[5] * position.y + this.elements[9] * position.z + this.elements[13];\r\n const z = this.elements[2] * position.x + this.elements[6] * position.y + this.elements[10] * position.z + this.elements[14];\r\n return new Vec3(x, y, z);\r\n }\r\n\r\n public rotate(axis: Vec3, angle: number): Transform3D {\r\n const quat = Quaternion.fromAxisAngle(axis, angle);\r\n const x = Transform3D.fromQuaternion(quat);\r\n return Transform3D.fromMultiplication(this, x);\r\n }\r\n /**\r\n * Add translational component to current transformation\r\n */\r\n public translate(vec: Vec3): Transform3D {\r\n const m = this.elements;\r\n return new Transform3D([m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10],\r\n m[11], (m[12] + vec.x), (m[13] + vec.y), (m[14] + vec.z), m[15]]);\r\n }\r\n\r\n /**\r\n * Extract translational component of the transformation\r\n */\r\n public extractTranslation(): Vec3 {\r\n return new Vec3 (\r\n this.elements[12],\r\n this.elements[13],\r\n this.elements[14],\r\n );\r\n }\r\n\r\n public extractScale(): number {\r\n const m = this.elements;\r\n const t = new Transform3D([m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8], m[9], m[10], m[11], 0, 0, 0, 1]);\r\n const vec = t.project(new Vec3(1, 1, 1));\r\n return vec.length / Math.sqrt(3);\r\n }\r\n\r\n /**\r\n * Return Inverse to current transformation (by inverting matrix)\r\n * (allow to unproject vectors)\r\n */\r\n public inverse() {\r\n let i;\r\n let det;\r\n const r = new Array(16);\r\n const m = this.elements;\r\n\r\n r[0] = m[5] * m[10] * m[15] - m[5] * m[14] * m[11] - m[6] * m[9] * m[15] + m[6] * m[13] * m[11]\r\n + m[7] * m[9] * m[14] - m[7] * m[13] * m[10];\r\n r[1] = -m[1] * m[10] * m[15] + m[1] * m[14] * m[11] + m[2] * m[9] * m[15] - m[2] * m[13] * m[11]\r\n - m[3] * m[9] * m[14] + m[3] * m[13] * m[10];\r\n r[2] = m[1] * m[6] * m[15] - m[1] * m[14] * m[7] - m[2] * m[5] * m[15] + m[2] * m[13] * m[7]\r\n + m[3] * m[5] * m[14] - m[3] * m[13] * m[6];\r\n r[3] = -m[1] * m[6] * m[11] + m[1] * m[10] * m[7] + m[2] * m[5] * m[11] - m[2] * m[9] * m[7]\r\n - m[3] * m[5] * m[10] + m[3] * m[9] * m[6];\r\n r[4] = -m[4] * m[10] * m[15] + m[4] * m[14] * m[11] + m[6] * m[8] * m[15] - m[6] * m[12] * m[11]\r\n - m[7] * m[8] * m[14] + m[7] * m[12] * m[10];\r\n r[5] = m[0] * m[10] * m[15] - m[0] * m[14] * m[11] - m[2] * m[8] * m[15] + m[2] * m[12] * m[11]\r\n + m[3] * m[8] * m[14] - m[3] * m[12] * m[10];\r\n r[6] = -m[0] * m[6] * m[15] + m[0] * m[14] * m[7] + m[2] * m[4] * m[15] - m[2] * m[12] * m[7]\r\n - m[3] * m[4] * m[14] + m[3] * m[12] * m[6];\r\n r[7] = m[0] * m[6] * m[11] - m[0] * m[10] * m[7] - m[2] * m[4] * m[11] + m[2] * m[8] * m[7]\r\n + m[3] * m[4] * m[10] - m[3] * m[8] * m[6];\r\n r[8] = m[4] * m[9] * m[15] - m[4] * m[13] * m[11] - m[5] * m[8] * m[15] + m[5] * m[12] * m[11]\r\n + m[7] * m[8] * m[13] - m[7] * m[12] * m[9];\r\n r[9] = -m[0] * m[9] * m[15] + m[0] * m[13] * m[11] + m[1] * m[8] * m[15] - m[1] * m[12] * m[11]\r\n - m[3] * m[8] * m[13] + m[3] * m[12] * m[9];\r\n r[10] = m[0] * m[5] * m[15] - m[0] * m[13] * m[7] - m[1] * m[4] * m[15] + m[1] * m[12] * m[7]\r\n + m[3] * m[4] * m[13] - m[3] * m[12] * m[5];\r\n r[11] = -m[0] * m[5] * m[11] + m[0] * m[9] * m[7] + m[1] * m[4] * m[11] - m[1] * m[8] * m[7]\r\n - m[3] * m[4] * m[9] + m[3] * m[8] * m[5];\r\n r[12] = -m[4] * m[9] * m[14] + m[4] * m[13] * m[10] + m[5] * m[8] * m[14] - m[5] * m[12] * m[10]\r\n - m[6] * m[8] * m[13] + m[6] * m[12] * m[9];\r\n r[13] = m[0] * m[9] * m[14] - m[0] * m[13] * m[10] - m[1] * m[8] * m[14] + m[1] * m[12] * m[10]\r\n + m[2] * m[8] * m[13] - m[2] * m[12] * m[9];\r\n r[14] = -m[0] * m[5] * m[14] + m[0] * m[13] * m[6] + m[1] * m[4] * m[14] - m[1] * m[12] * m[6]\r\n - m[2] * m[4] * m[13] + m[2] * m[12] * m[5];\r\n r[15] = m[0] * m[5] * m[10] - m[0] * m[9] * m[6] - m[1] * m[4] * m[10] + m[1] * m[8] * m[6]\r\n + m[2] * m[4] * m[9] - m[2] * m[8] * m[5];\r\n det = m[0] * r[0] + m[1] * r[4] + m[2] * r[8] + m[3] * r[12];\r\n for (i = 0; i < 16; i++) {\r\n r[i] /= det;\r\n }\r\n return new Transform3D(r);\r\n }\r\n\r\n /**\r\n * Return determinant of transformation matrix\r\n */\r\n public determinant() {\r\n const value = this.get(0, 3) * this.get(1, 2) * this.get(2, 1) * this.get(3, 0)\r\n - this.get(0, 1) * this.get(1, 3) * this.get(2, 1) * this.get(3, 0)\r\n - this.get(0, 3) * this.get(1, 1) * this.get(2, 2) * this.get(3, 0)\r\n + this.get(0, 1) * this.get(1, 3) * this.get(2, 2) * this.get(3, 0)\r\n + this.get(0, 1) * this.get(1, 1) * this.get(2, 3) * this.get(3, 0)\r\n - this.get(0, 1) * this.get(1, 2) * this.get(2, 3) * this.get(3, 0)\r\n - this.get(0, 3) * this.get(1, 2) * this.get(2, 0) * this.get(3, 1)\r\n + this.get(0, 1) * this.get(1, 3) * this.get(2, 0) * this.get(3, 1)\r\n + this.get(0, 3) * this.get(1, 0) * this.get(2, 2) * this.get(3, 1)\r\n - this.get(0, 0) * this.get(1, 3) * this.get(2, 2) * this.get(3, 1)\r\n - this.get(0, 1) * this.get(1, 0) * this.get(2, 3) * this.get(3, 1)\r\n + this.get(0, 0) * this.get(1, 2) * this.get(2, 3) * this.get(3, 1)\r\n + this.get(0, 3) * this.get(1, 1) * this.get(2, 0) * this.get(3, 2)\r\n - this.get(0, 1) * this.get(1, 3) * this.get(2, 0) * this.get(3, 2)\r\n - this.get(0, 3) * this.get(1, 0) * this.get(2, 1) * this.get(3, 2)\r\n + this.get(0, 0) * this.get(1, 3) * this.get(2, 1) * this.get(3, 2)\r\n + this.get(0, 1) * this.get(1, 0) * this.get(2, 3) * this.get(3, 2)\r\n - this.get(0, 0) * this.get(1, 1) * this.get(2, 3) * this.get(3, 2)\r\n - this.get(0, 1) * this.get(1, 1) * this.get(2, 0) * this.get(3, 3)\r\n + this.get(0, 1) * this.get(1, 2) * this.get(2, 0) * this.get(3, 3)\r\n + this.get(0, 1) * this.get(1, 0) * this.get(2, 1) * this.get(3, 3)\r\n - this.get(0, 0) * this.get(1, 2) * this.get(2, 1) * this.get(3, 3)\r\n - this.get(0, 1) * this.get(1, 0) * this.get(2, 2) * this.get(3, 3)\r\n + this.get(0, 0) * this.get(1, 1) * this.get(2, 2) * this.get(3, 3);\r\n return value;\r\n }\r\n /**\r\n * Clone current transformation\r\n */\r\n public clone(): Transform3D {\r\n return new Transform3D(this.elements);\r\n }\r\n\r\n public equals(transform: Transform3D): boolean {\r\n return Transform3D.equals(this, transform);\r\n }\r\n}\r\n","import { Vec3 } from \"./vec3\";\r\n/**\r\n * Simple Class to work with Quaternion\r\n */\r\nexport class Quaternion {\r\n\r\n /**\r\n * Get Quaternion from Axis angle\r\n */\r\n public static fromAxisAngle(axis: Vec3, angle: number) {\r\n const f = angle * 0.5;\r\n const pt = axis.scale(Math.sin(f));\r\n return new Quaternion(pt.x, pt.y, pt.z, Math.cos(f));\r\n }\r\n\r\n protected data: number[];\r\n\r\n constructor(x: number, y: number, z: number, w: number) {\r\n this.data = [x, y, z, w];\r\n }\r\n\r\n /**\r\n * X Component\r\n */\r\n public X(): number {\r\n return this.data[0];\r\n }\r\n\r\n /**\r\n * Y Component\r\n */\r\n public Y(): number {\r\n return this.data[1];\r\n }\r\n\r\n /**\r\n * Z Component\r\n */\r\n public Z(): number {\r\n return this.data[2];\r\n }\r\n\r\n /**\r\n * W Component\r\n */\r\n public W(): number {\r\n return this.data[3];\r\n }\r\n}\r\n","import { EPSILON, ICloneable, IEquatable } from \"@chemistry/common\";\r\n\r\nexport interface IVec2 {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport class Vec2 implements IVec2, ICloneable<Vec2>, IEquatable<Vec2> {\r\n\r\n public static add(v1: Vec2, v2: Vec2): Vec2 {\r\n return new Vec2(v1.x + v2.x, v1.y + v2.y);\r\n }\r\n\r\n public static sub(v1: Vec2, v2: Vec2): Vec2 {\r\n return new Vec2(v1.x - v2.x, v1.y - v2.y);\r\n }\r\n\r\n public static dot(v1: Vec2, v2: Vec2): number {\r\n return (v1.x * v2.x + v1.y * v2.y);\r\n }\r\n\r\n public static equals(v1: Vec2, v2: Vec2): boolean {\r\n return (Math.abs(v1.x - v2.x) < EPSILON)\r\n && (Math.abs(v1.y - v2.y) < EPSILON);\r\n }\r\n\r\n public x: number;\r\n public y: number;\r\n\r\n constructor(x: number, y: number) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n public get length(): number {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n }\r\n\r\n public get lengthPow2(): number {\r\n return (this.x * this.x + this.y * this.y);\r\n }\r\n\r\n public get avg(): number {\r\n return (this.x + this.y) / 3;\r\n }\r\n\r\n public scale(num: number): Vec2 {\r\n return new Vec2(this.x * num, this.y * num);\r\n }\r\n\r\n public normalize() {\r\n const len = this.length;\r\n if (len === 0) {\r\n throw new Error(\"Can not normalize zero vector\");\r\n } else {\r\n return new Vec2(this.x / len, this.y / len);\r\n }\r\n }\r\n\r\n public dot(vec: Vec2): number {\r\n return Vec2.dot(this, vec);\r\n }\r\n\r\n public sub(vec: Vec2): Vec2 {\r\n return Vec2.sub(this, vec);\r\n }\r\n\r\n public add(vector: Vec2): Vec2 {\r\n return Vec2.add(this, vector);\r\n }\r\n\r\n public equals(vec: Vec2) {\r\n return Vec2.equals(this, vec);\r\n }\r\n\r\n public clone() {\r\n return new Vec2(this.x, this.y);\r\n }\r\n\r\n public toString() {\r\n return \"(\" + this.x.toFixed(3) + \",\" + this.y.toFixed(3) + \")\";\r\n }\r\n}\r\n"],"sourceRoot":""}
package/package-lock.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "name": "@chemistry/math",
3
- "version": "2.5.1",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "@chemistry/common": {
8
- "version": "2.5.1"
9
- }
10
- }
11
- }