@math.gl/core 3.6.0-alpha.1 → 3.6.0-alpha.4
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/classes/base/math-array.d.ts +61 -31
- package/dist/classes/base/math-array.d.ts.map +1 -1
- package/dist/classes/base/math-array.js +67 -65
- package/dist/classes/base/matrix.d.ts +12 -10
- package/dist/classes/base/matrix.d.ts.map +1 -1
- package/dist/classes/base/matrix.js +2 -10
- package/dist/classes/base/vector.d.ts +37 -25
- package/dist/classes/base/vector.d.ts.map +1 -1
- package/dist/classes/base/vector.js +17 -24
- package/dist/classes/euler.d.ts +59 -55
- package/dist/classes/euler.d.ts.map +1 -1
- package/dist/classes/euler.js +57 -77
- package/dist/classes/matrix3.d.ts +58 -41
- package/dist/classes/matrix3.d.ts.map +1 -1
- package/dist/classes/matrix3.js +68 -59
- package/dist/classes/matrix4.d.ts +214 -90
- package/dist/classes/matrix4.d.ts.map +1 -1
- package/dist/classes/matrix4.js +252 -171
- package/dist/classes/pose.d.ts +29 -26
- package/dist/classes/pose.d.ts.map +1 -1
- package/dist/classes/pose.js +6 -23
- package/dist/classes/quaternion.d.ts +61 -40
- package/dist/classes/quaternion.d.ts.map +1 -1
- package/dist/classes/quaternion.js +49 -53
- package/dist/classes/spherical-coordinates.d.ts +45 -25
- package/dist/classes/spherical-coordinates.d.ts.map +1 -1
- package/dist/classes/spherical-coordinates.js +30 -24
- package/dist/classes/vector2.d.ts +51 -15
- package/dist/classes/vector2.d.ts.map +1 -1
- package/dist/classes/vector2.js +29 -23
- package/dist/classes/vector3.d.ts +47 -32
- package/dist/classes/vector3.d.ts.map +1 -1
- package/dist/classes/vector3.js +16 -30
- package/dist/classes/vector4.d.ts +37 -19
- package/dist/classes/vector4.d.ts.map +1 -1
- package/dist/classes/vector4.js +12 -24
- package/dist/es5/classes/base/math-array.js +248 -179
- package/dist/es5/classes/base/math-array.js.map +1 -1
- package/dist/es5/classes/base/matrix.js +74 -54
- package/dist/es5/classes/base/matrix.js.map +1 -1
- package/dist/es5/classes/base/vector.js +167 -121
- package/dist/es5/classes/base/vector.js.map +1 -1
- package/dist/es5/classes/euler.js +575 -480
- package/dist/es5/classes/euler.js.map +1 -1
- package/dist/es5/classes/matrix3.js +234 -158
- package/dist/es5/classes/matrix3.js.map +1 -1
- package/dist/es5/classes/matrix4.js +510 -417
- package/dist/es5/classes/matrix4.js.map +1 -1
- package/dist/es5/classes/pose.js +126 -101
- package/dist/es5/classes/pose.js.map +1 -1
- package/dist/es5/classes/quaternion.js +285 -213
- package/dist/es5/classes/quaternion.js.map +1 -1
- package/dist/es5/classes/spherical-coordinates.js +170 -125
- package/dist/es5/classes/spherical-coordinates.js.map +1 -1
- package/dist/es5/classes/vector2.js +118 -76
- package/dist/es5/classes/vector2.js.map +1 -1
- package/dist/es5/classes/vector3.js +171 -119
- package/dist/es5/classes/vector3.js.map +1 -1
- package/dist/es5/classes/vector4.js +141 -94
- package/dist/es5/classes/vector4.js.map +1 -1
- package/dist/es5/index.js +34 -34
- package/dist/es5/lib/common.js +56 -30
- package/dist/es5/lib/common.js.map +1 -1
- package/dist/es5/lib/gl-matrix-extras.js +14 -14
- package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
- package/dist/es5/lib/gl-matrix.d.js +2 -0
- package/dist/es5/lib/gl-matrix.d.js.map +1 -0
- package/dist/es5/lib/validators.js +5 -3
- package/dist/es5/lib/validators.js.map +1 -1
- package/dist/esm/classes/base/math-array.js +45 -47
- package/dist/esm/classes/base/math-array.js.map +1 -1
- package/dist/esm/classes/base/matrix.js +0 -11
- package/dist/esm/classes/base/matrix.js.map +1 -1
- package/dist/esm/classes/base/vector.js +0 -10
- package/dist/esm/classes/base/vector.js.map +1 -1
- package/dist/esm/classes/euler.js +61 -48
- package/dist/esm/classes/euler.js.map +1 -1
- package/dist/esm/classes/matrix3.js +55 -33
- package/dist/esm/classes/matrix3.js.map +1 -1
- package/dist/esm/classes/matrix4.js +156 -136
- package/dist/esm/classes/matrix4.js.map +1 -1
- package/dist/esm/classes/pose.js +8 -4
- package/dist/esm/classes/pose.js.map +1 -1
- package/dist/esm/classes/quaternion.js +37 -27
- package/dist/esm/classes/quaternion.js.map +1 -1
- package/dist/esm/classes/spherical-coordinates.js +15 -5
- package/dist/esm/classes/spherical-coordinates.js.map +1 -1
- package/dist/esm/classes/vector2.js.map +1 -1
- package/dist/esm/classes/vector3.js +7 -2
- package/dist/esm/classes/vector3.js.map +1 -1
- package/dist/esm/classes/vector4.js +7 -2
- package/dist/esm/classes/vector4.js.map +1 -1
- package/dist/esm/lib/common.js +8 -8
- package/dist/esm/lib/common.js.map +1 -1
- package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
- package/dist/esm/lib/gl-matrix.d.js +2 -0
- package/dist/esm/lib/gl-matrix.d.js.map +1 -0
- package/dist/esm/lib/validators.js.map +1 -1
- package/dist/lib/common.d.ts +14 -11
- package/dist/lib/common.d.ts.map +1 -1
- package/dist/lib/common.js +10 -23
- package/dist/lib/gl-matrix-extras.d.ts +6 -5
- package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
- package/dist/lib/gl-matrix-extras.js +0 -1
- package/dist/lib/validators.d.ts +5 -4
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +0 -19
- package/package.json +5 -5
- package/src/classes/base/math-array.ts +265 -0
- package/src/classes/base/{matrix.js → matrix.ts} +15 -19
- package/src/classes/base/{vector.js → vector.ts} +47 -54
- package/src/classes/{euler.js → euler.ts} +121 -221
- package/src/classes/matrix3.ts +253 -0
- package/src/classes/matrix4.ts +668 -0
- package/src/classes/{pose.js → pose.ts} +52 -49
- package/src/classes/{quaternion.js → quaternion.ts} +107 -95
- package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
- package/src/classes/vector2.ts +127 -0
- package/src/classes/{vector3.js → vector3.ts} +43 -55
- package/src/classes/{vector4.js → vector4.ts} +44 -48
- package/src/lib/common.ts +58 -37
- package/src/lib/gl-matrix-extras.ts +26 -5
- package/src/lib/gl-matrix.d.ts +266 -0
- package/src/lib/validators.ts +10 -6
- package/dist/es5/classes/base/math-array.d.js +0 -46
- package/dist/es5/classes/base/math-array.d.js.map +0 -1
- package/dist/es5/classes/base/matrix.d.js +0 -15
- package/dist/es5/classes/base/matrix.d.js.map +0 -1
- package/dist/es5/classes/base/vector.d.js +0 -24
- package/dist/es5/classes/base/vector.d.js.map +0 -1
- package/dist/es5/classes/euler.d.js +0 -45
- package/dist/es5/classes/euler.d.js.map +0 -1
- package/dist/es5/classes/matrix3.d.js +0 -25
- package/dist/es5/classes/matrix3.d.js.map +0 -1
- package/dist/es5/classes/matrix4.d.js +0 -25
- package/dist/es5/classes/matrix4.d.js.map +0 -1
- package/dist/es5/classes/pose.d.js +0 -25
- package/dist/es5/classes/pose.d.js.map +0 -1
- package/dist/es5/classes/quaternion.d.js +0 -27
- package/dist/es5/classes/quaternion.d.js.map +0 -1
- package/dist/es5/classes/spherical-coordinates.d.js +0 -27
- package/dist/es5/classes/spherical-coordinates.d.js.map +0 -1
- package/dist/es5/classes/vector2.d.js +0 -18
- package/dist/es5/classes/vector2.d.js.map +0 -1
- package/dist/es5/classes/vector3.d.js +0 -24
- package/dist/es5/classes/vector3.d.js.map +0 -1
- package/dist/es5/classes/vector4.d.js +0 -25
- package/dist/es5/classes/vector4.d.js.map +0 -1
- package/dist/esm/classes/base/math-array.d.js +0 -36
- package/dist/esm/classes/base/math-array.d.js.map +0 -1
- package/dist/esm/classes/base/matrix.d.js +0 -3
- package/dist/esm/classes/base/matrix.d.js.map +0 -1
- package/dist/esm/classes/base/vector.d.js +0 -13
- package/dist/esm/classes/base/vector.d.js.map +0 -1
- package/dist/esm/classes/euler.d.js +0 -55
- package/dist/esm/classes/euler.d.js.map +0 -1
- package/dist/esm/classes/matrix3.d.js +0 -15
- package/dist/esm/classes/matrix3.d.js.map +0 -1
- package/dist/esm/classes/matrix4.d.js +0 -15
- package/dist/esm/classes/matrix4.d.js.map +0 -1
- package/dist/esm/classes/pose.d.js +0 -18
- package/dist/esm/classes/pose.d.js.map +0 -1
- package/dist/esm/classes/quaternion.d.js +0 -19
- package/dist/esm/classes/quaternion.d.js.map +0 -1
- package/dist/esm/classes/spherical-coordinates.d.js +0 -22
- package/dist/esm/classes/spherical-coordinates.d.js.map +0 -1
- package/dist/esm/classes/vector2.d.js +0 -6
- package/dist/esm/classes/vector2.d.js.map +0 -1
- package/dist/esm/classes/vector3.d.js +0 -13
- package/dist/esm/classes/vector3.d.js.map +0 -1
- package/dist/esm/classes/vector4.d.js +0 -15
- package/dist/esm/classes/vector4.d.js.map +0 -1
- package/src/classes/base/math-array.d.ts +0 -55
- package/src/classes/base/math-array.js +0 -250
- package/src/classes/base/matrix.d.ts +0 -15
- package/src/classes/base/vector.d.ts +0 -45
- package/src/classes/euler.d.ts +0 -92
- package/src/classes/matrix3.d.ts +0 -91
- package/src/classes/matrix3.js +0 -225
- package/src/classes/matrix4.d.ts +0 -161
- package/src/classes/matrix4.js +0 -530
- package/src/classes/pose.d.ts +0 -92
- package/src/classes/quaternion.d.ts +0 -107
- package/src/classes/spherical-coordinates.d.ts +0 -87
- package/src/classes/vector2.d.ts +0 -65
- package/src/classes/vector2.js +0 -122
- package/src/classes/vector3.d.ts +0 -65
- package/src/classes/vector4.d.ts +0 -34
package/dist/classes/matrix3.js
CHANGED
|
@@ -1,54 +1,31 @@
|
|
|
1
1
|
// Copyright (c) 2017 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
2
|
+
// MIT License
|
|
20
3
|
import Matrix from './base/matrix';
|
|
21
|
-
import { checkVector
|
|
22
|
-
|
|
4
|
+
import { checkVector } from '../lib/validators';
|
|
5
|
+
/* eslint-disable camelcase */
|
|
23
6
|
import { vec4_transformMat3 } from '../lib/gl-matrix-extras';
|
|
24
|
-
// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.
|
|
25
7
|
import * as mat3 from 'gl-matrix/mat3';
|
|
26
|
-
// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.
|
|
27
8
|
import * as vec2 from 'gl-matrix/vec2';
|
|
28
|
-
// @ts-ignore: error TS2307: Cannot find module 'gl-matrix/...'.
|
|
29
9
|
import * as vec3 from 'gl-matrix/vec3';
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const constants = {};
|
|
10
|
+
var INDICES;
|
|
11
|
+
(function (INDICES) {
|
|
12
|
+
INDICES[INDICES["COL0ROW0"] = 0] = "COL0ROW0";
|
|
13
|
+
INDICES[INDICES["COL0ROW1"] = 1] = "COL0ROW1";
|
|
14
|
+
INDICES[INDICES["COL0ROW2"] = 2] = "COL0ROW2";
|
|
15
|
+
INDICES[INDICES["COL1ROW0"] = 3] = "COL1ROW0";
|
|
16
|
+
INDICES[INDICES["COL1ROW1"] = 4] = "COL1ROW1";
|
|
17
|
+
INDICES[INDICES["COL1ROW2"] = 5] = "COL1ROW2";
|
|
18
|
+
INDICES[INDICES["COL2ROW0"] = 6] = "COL2ROW0";
|
|
19
|
+
INDICES[INDICES["COL2ROW1"] = 7] = "COL2ROW1";
|
|
20
|
+
INDICES[INDICES["COL2ROW2"] = 8] = "COL2ROW2";
|
|
21
|
+
})(INDICES || (INDICES = {}));
|
|
22
|
+
const IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
|
|
44
23
|
export default class Matrix3 extends Matrix {
|
|
45
24
|
static get IDENTITY() {
|
|
46
|
-
|
|
47
|
-
return constants.IDENTITY;
|
|
25
|
+
return getIdentityMatrix();
|
|
48
26
|
}
|
|
49
27
|
static get ZERO() {
|
|
50
|
-
|
|
51
|
-
return constants.ZERO;
|
|
28
|
+
return getZeroMatrix();
|
|
52
29
|
}
|
|
53
30
|
get ELEMENTS() {
|
|
54
31
|
return 9;
|
|
@@ -59,17 +36,21 @@ export default class Matrix3 extends Matrix {
|
|
|
59
36
|
get INDICES() {
|
|
60
37
|
return INDICES;
|
|
61
38
|
}
|
|
62
|
-
constructor(array) {
|
|
39
|
+
constructor(array, ...args) {
|
|
63
40
|
// PERF NOTE: initialize elements as double precision numbers
|
|
64
41
|
super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
|
|
65
42
|
if (arguments.length === 1 && Array.isArray(array)) {
|
|
66
43
|
this.copy(array);
|
|
67
44
|
}
|
|
45
|
+
else if (args.length > 0) {
|
|
46
|
+
this.copy([array, ...args]);
|
|
47
|
+
}
|
|
68
48
|
else {
|
|
69
49
|
this.identity();
|
|
70
50
|
}
|
|
71
51
|
}
|
|
72
52
|
copy(array) {
|
|
53
|
+
// Element wise copy for performance
|
|
73
54
|
this[0] = array[0];
|
|
74
55
|
this[1] = array[1];
|
|
75
56
|
this[2] = array[2];
|
|
@@ -81,7 +62,27 @@ export default class Matrix3 extends Matrix {
|
|
|
81
62
|
this[8] = array[8];
|
|
82
63
|
return this.check();
|
|
83
64
|
}
|
|
84
|
-
//
|
|
65
|
+
// Constructors
|
|
66
|
+
identity() {
|
|
67
|
+
return this.copy(IDENTITY_MATRIX);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @param object
|
|
72
|
+
* @returns self
|
|
73
|
+
*/
|
|
74
|
+
fromObject(object) {
|
|
75
|
+
return this.check();
|
|
76
|
+
}
|
|
77
|
+
// Calculates a 3x3 matrix from the given quaternion
|
|
78
|
+
// q quat Quaternion to create matrix from
|
|
79
|
+
fromQuaternion(q) {
|
|
80
|
+
mat3.fromQuat(this, q);
|
|
81
|
+
return this.check();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* accepts column major order, stores in column major order
|
|
85
|
+
*/
|
|
85
86
|
// eslint-disable-next-line max-params
|
|
86
87
|
set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
|
|
87
88
|
this[0] = m00;
|
|
@@ -95,7 +96,9 @@ export default class Matrix3 extends Matrix {
|
|
|
95
96
|
this[8] = m22;
|
|
96
97
|
return this.check();
|
|
97
98
|
}
|
|
98
|
-
|
|
99
|
+
/**
|
|
100
|
+
* accepts row major order, stores as column major
|
|
101
|
+
*/
|
|
99
102
|
// eslint-disable-next-line max-params
|
|
100
103
|
setRowMajor(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
|
|
101
104
|
this[0] = m00;
|
|
@@ -113,21 +116,12 @@ export default class Matrix3 extends Matrix {
|
|
|
113
116
|
determinant() {
|
|
114
117
|
return mat3.determinant(this);
|
|
115
118
|
}
|
|
116
|
-
// Constructors
|
|
117
|
-
identity() {
|
|
118
|
-
return this.copy(IDENTITY);
|
|
119
|
-
}
|
|
120
|
-
// Calculates a 3x3 matrix from the given quaternion
|
|
121
|
-
// q quat Quaternion to create matrix from
|
|
122
|
-
fromQuaternion(q) {
|
|
123
|
-
mat3.fromQuat(this, q);
|
|
124
|
-
return this.check();
|
|
125
|
-
}
|
|
126
119
|
// Modifiers
|
|
127
120
|
transpose() {
|
|
128
121
|
mat3.transpose(this, this);
|
|
129
122
|
return this.check();
|
|
130
123
|
}
|
|
124
|
+
/** Invert a matrix. Note that this can fail if the matrix is not invertible */
|
|
131
125
|
invert() {
|
|
132
126
|
mat3.invert(this, this);
|
|
133
127
|
return this.check();
|
|
@@ -150,7 +144,7 @@ export default class Matrix3 extends Matrix {
|
|
|
150
144
|
mat3.scale(this, this, factor);
|
|
151
145
|
}
|
|
152
146
|
else {
|
|
153
|
-
mat3.scale(this, this, [factor, factor
|
|
147
|
+
mat3.scale(this, this, [factor, factor]);
|
|
154
148
|
}
|
|
155
149
|
return this.check();
|
|
156
150
|
}
|
|
@@ -176,17 +170,32 @@ export default class Matrix3 extends Matrix {
|
|
|
176
170
|
checkVector(result, vector.length);
|
|
177
171
|
return result;
|
|
178
172
|
}
|
|
179
|
-
|
|
173
|
+
/** @deprecated */
|
|
180
174
|
transformVector(vector, result) {
|
|
181
|
-
deprecated('Matrix3.transformVector');
|
|
182
175
|
return this.transform(vector, result);
|
|
183
176
|
}
|
|
177
|
+
/** @deprecated */
|
|
184
178
|
transformVector2(vector, result) {
|
|
185
|
-
deprecated('Matrix3.transformVector');
|
|
186
179
|
return this.transform(vector, result);
|
|
187
180
|
}
|
|
181
|
+
/** @deprecated */
|
|
188
182
|
transformVector3(vector, result) {
|
|
189
|
-
deprecated('Matrix3.transformVector');
|
|
190
183
|
return this.transform(vector, result);
|
|
191
184
|
}
|
|
192
185
|
}
|
|
186
|
+
let ZERO_MATRIX3;
|
|
187
|
+
let IDENTITY_MATRIX3;
|
|
188
|
+
function getZeroMatrix() {
|
|
189
|
+
if (!ZERO_MATRIX3) {
|
|
190
|
+
ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
191
|
+
Object.freeze(ZERO_MATRIX3);
|
|
192
|
+
}
|
|
193
|
+
return ZERO_MATRIX3;
|
|
194
|
+
}
|
|
195
|
+
function getIdentityMatrix() {
|
|
196
|
+
if (!IDENTITY_MATRIX3) {
|
|
197
|
+
IDENTITY_MATRIX3 = new Matrix3();
|
|
198
|
+
Object.freeze(IDENTITY_MATRIX3);
|
|
199
|
+
}
|
|
200
|
+
return IDENTITY_MATRIX3;
|
|
201
|
+
}
|
|
@@ -1,102 +1,226 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
1
|
+
import Matrix from './base/matrix';
|
|
2
|
+
import { NumericArray } from '@math.gl/types';
|
|
3
|
+
declare enum INDICES {
|
|
4
|
+
COL0ROW0 = 0,
|
|
5
|
+
COL0ROW1 = 1,
|
|
6
|
+
COL0ROW2 = 2,
|
|
7
|
+
COL0ROW3 = 3,
|
|
8
|
+
COL1ROW0 = 4,
|
|
9
|
+
COL1ROW1 = 5,
|
|
10
|
+
COL1ROW2 = 6,
|
|
11
|
+
COL1ROW3 = 7,
|
|
12
|
+
COL2ROW0 = 8,
|
|
13
|
+
COL2ROW1 = 9,
|
|
14
|
+
COL2ROW2 = 10,
|
|
15
|
+
COL2ROW3 = 11,
|
|
16
|
+
COL3ROW0 = 12,
|
|
17
|
+
COL3ROW1 = 13,
|
|
18
|
+
COL3ROW2 = 14,
|
|
19
|
+
COL3ROW3 = 15
|
|
20
|
+
}
|
|
21
|
+
/** 4x4 matrix */
|
|
22
|
+
export default class Matrix4 extends Matrix {
|
|
23
|
+
static get IDENTITY(): Readonly<Matrix4>;
|
|
24
|
+
static get ZERO(): Readonly<Matrix4>;
|
|
25
|
+
get ELEMENTS(): number;
|
|
26
|
+
get RANK(): number;
|
|
27
|
+
get INDICES(): typeof INDICES;
|
|
28
|
+
constructor(array?: Readonly<NumericArray>);
|
|
29
|
+
copy(array: Readonly<NumericArray>): this;
|
|
30
|
+
set(m00: number, m10: number, m20: number, m30: number, m01: number, m11: number, m21: number, m31: number, m02: number, m12: number, m22: number, m32: number, m03: number, m13: number, m23: number, m33: number): this;
|
|
31
|
+
setRowMajor(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): this;
|
|
32
|
+
toRowMajor(result: NumericArray): NumericArray;
|
|
33
|
+
/** Set to identity matrix */
|
|
34
|
+
identity(): this;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
* @param object
|
|
38
|
+
* @returns self
|
|
39
|
+
*/
|
|
40
|
+
fromObject(object: {
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
}): this;
|
|
43
|
+
/**
|
|
44
|
+
* Calculates a 4x4 matrix from the given quaternion
|
|
45
|
+
* @param quaternion Quaternion to create matrix from
|
|
46
|
+
* @returns self
|
|
47
|
+
*/
|
|
48
|
+
fromQuaternion(quaternion: Readonly<NumericArray>): this;
|
|
49
|
+
/**
|
|
50
|
+
* Generates a frustum matrix with the given bounds
|
|
51
|
+
* @param view.left - Left bound of the frustum
|
|
52
|
+
* @param view.right - Right bound of the frustum
|
|
53
|
+
* @param view.bottom - Bottom bound of the frustum
|
|
54
|
+
* @param view.top - Top bound of the frustum
|
|
55
|
+
* @param view.near - Near bound of the frustum
|
|
56
|
+
* @param view.far - Far bound of the frustum. Can be set to Infinity.
|
|
57
|
+
* @returns self
|
|
58
|
+
*/
|
|
59
|
+
frustum(view: {
|
|
60
|
+
left: number;
|
|
61
|
+
right: number;
|
|
62
|
+
bottom: number;
|
|
63
|
+
top: number;
|
|
64
|
+
near: number;
|
|
65
|
+
far?: number;
|
|
66
|
+
}): this;
|
|
67
|
+
/**
|
|
68
|
+
* Generates a look-at matrix with the given eye position, focal point,
|
|
69
|
+
* and up axis
|
|
70
|
+
* @param view.eye - (vector) Position of the viewer
|
|
71
|
+
* @param view.center - (vector) Point the viewer is looking at
|
|
72
|
+
* @param view.up - (vector) Up axis
|
|
73
|
+
* @returns self
|
|
74
|
+
*/
|
|
75
|
+
lookAt(view: {
|
|
76
|
+
eye: Readonly<NumericArray>;
|
|
77
|
+
center?: Readonly<NumericArray>;
|
|
78
|
+
up?: Readonly<NumericArray>;
|
|
79
|
+
}): this;
|
|
80
|
+
/**
|
|
81
|
+
* Generates a orthogonal projection matrix with the given bounds
|
|
82
|
+
* from "traditional" view space parameters
|
|
83
|
+
* @param view.left - Left bound of the frustum
|
|
84
|
+
* @param view.right number Right bound of the frustum
|
|
85
|
+
* @param view.bottom - Bottom bound of the frustum
|
|
86
|
+
* @param view.top number Top bound of the frustum
|
|
87
|
+
* @param view.near - Near bound of the frustum
|
|
88
|
+
* @param view.far number Far bound of the frustum
|
|
89
|
+
* @returns self
|
|
90
|
+
*/
|
|
91
|
+
ortho(view: {
|
|
92
|
+
left: number;
|
|
93
|
+
right: number;
|
|
94
|
+
bottom: number;
|
|
95
|
+
top: number;
|
|
60
96
|
near?: number;
|
|
61
97
|
far?: number;
|
|
62
|
-
}):
|
|
63
|
-
|
|
98
|
+
}): this;
|
|
99
|
+
/**
|
|
100
|
+
* Generates an orthogonal projection matrix with the same parameters
|
|
101
|
+
* as a perspective matrix (plus focalDistance)
|
|
102
|
+
* @param view.fovy Vertical field of view in radians
|
|
103
|
+
* @param view.aspect Aspect ratio. Typically viewport width / viewport height
|
|
104
|
+
* @param view.focalDistance Distance in the view frustum used for extent calculations
|
|
105
|
+
* @param view.near Near bound of the frustum
|
|
106
|
+
* @param view.far Far bound of the frustum
|
|
107
|
+
* @returns self
|
|
108
|
+
*/
|
|
109
|
+
orthographic(view: {
|
|
64
110
|
fovy?: number;
|
|
65
111
|
aspect?: number;
|
|
66
112
|
focalDistance?: number;
|
|
67
113
|
near?: number;
|
|
68
114
|
far?: number;
|
|
69
|
-
}):
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
115
|
+
}): this;
|
|
116
|
+
/**
|
|
117
|
+
* Generates a perspective projection matrix with the given bounds
|
|
118
|
+
* @param view.fovy Vertical field of view in radians
|
|
119
|
+
* @param view.aspect Aspect ratio. typically viewport width/height
|
|
120
|
+
* @param view.near Near bound of the frustum
|
|
121
|
+
* @param view.far Far bound of the frustum
|
|
122
|
+
* @returns self
|
|
123
|
+
*/
|
|
124
|
+
perspective(view: {
|
|
125
|
+
fovy: number;
|
|
73
126
|
aspect?: number;
|
|
74
127
|
near?: number;
|
|
75
128
|
far?: number;
|
|
76
|
-
}):
|
|
77
|
-
determinant():
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
129
|
+
}): this;
|
|
130
|
+
determinant(): number;
|
|
131
|
+
/**
|
|
132
|
+
* Extracts the non-uniform scale assuming the matrix is an affine transformation.
|
|
133
|
+
* The scales are the "lengths" of the column vectors in the upper-left 3x3 matrix.
|
|
134
|
+
* @param result
|
|
135
|
+
* @returns self
|
|
136
|
+
*/
|
|
137
|
+
getScale(result?: NumericArray): NumericArray;
|
|
138
|
+
/**
|
|
139
|
+
* Gets the translation portion, assuming the matrix is a affine transformation matrix.
|
|
140
|
+
* @param result
|
|
141
|
+
* @returns self
|
|
142
|
+
*/
|
|
143
|
+
getTranslation(result?: NumericArray): NumericArray;
|
|
144
|
+
/**
|
|
145
|
+
* Gets upper left 3x3 pure rotation matrix (non-scaling), assume affine transformation matrix
|
|
146
|
+
* @param result
|
|
147
|
+
* @param scaleResult
|
|
148
|
+
* @returns self
|
|
149
|
+
*/
|
|
150
|
+
getRotation(result?: NumericArray, scaleResult?: NumericArray): NumericArray;
|
|
151
|
+
/**
|
|
152
|
+
*
|
|
153
|
+
* @param result
|
|
154
|
+
* @param scaleResult
|
|
155
|
+
* @returns self
|
|
156
|
+
*/
|
|
157
|
+
getRotationMatrix3(result?: NumericArray, scaleResult?: NumericArray): NumericArray;
|
|
158
|
+
transpose(): this;
|
|
159
|
+
invert(): this;
|
|
160
|
+
multiplyLeft(a: Readonly<NumericArray>): this;
|
|
161
|
+
multiplyRight(a: Readonly<NumericArray>): this;
|
|
162
|
+
rotateX(radians: number): this;
|
|
163
|
+
rotateY(radians: number): this;
|
|
164
|
+
/**
|
|
165
|
+
* Rotates a matrix by the given angle around the Z axis.
|
|
166
|
+
* @param radians
|
|
167
|
+
* @returns self
|
|
168
|
+
*/
|
|
169
|
+
rotateZ(radians: number): this;
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
* @param param0
|
|
173
|
+
* @returns self
|
|
174
|
+
*/
|
|
175
|
+
rotateXYZ(angleXYZ: Readonly<NumericArray>): this;
|
|
176
|
+
/**
|
|
177
|
+
*
|
|
178
|
+
* @param radians
|
|
179
|
+
* @param axis
|
|
180
|
+
* @returns self
|
|
181
|
+
*/
|
|
182
|
+
rotateAxis(radians: number, axis: Readonly<NumericArray>): this;
|
|
183
|
+
/**
|
|
184
|
+
*
|
|
185
|
+
* @param factor
|
|
186
|
+
* @returns self
|
|
187
|
+
*/
|
|
188
|
+
scale(factor: number | Readonly<NumericArray>): this;
|
|
189
|
+
/**
|
|
190
|
+
*
|
|
191
|
+
* @param vec
|
|
192
|
+
* @returns self
|
|
193
|
+
*/
|
|
194
|
+
translate(vector: Readonly<NumericArray>): this;
|
|
195
|
+
/**
|
|
196
|
+
* Transforms any 2, 3 or 4 element vector. 2 and 3 elements are treated as points
|
|
197
|
+
* @param vector
|
|
198
|
+
* @param result
|
|
199
|
+
* @returns self
|
|
200
|
+
*/
|
|
201
|
+
transform(vector: Readonly<NumericArray>, result: NumericArray): NumericArray;
|
|
202
|
+
/**
|
|
203
|
+
* Transforms any 2 or 3 element array as point (w implicitly 1)
|
|
204
|
+
* @param vector
|
|
205
|
+
* @param result
|
|
206
|
+
* @returns self
|
|
207
|
+
*/
|
|
208
|
+
transformAsPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
|
|
209
|
+
/**
|
|
210
|
+
* Transforms any 2 or 3 element array as vector (w implicitly 0)
|
|
211
|
+
* @param vector
|
|
212
|
+
* @param result
|
|
213
|
+
* @returns self
|
|
214
|
+
*/
|
|
215
|
+
transformAsVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
|
|
216
|
+
/** @deprecated */
|
|
217
|
+
transformPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
|
|
218
|
+
/** @deprecated */
|
|
219
|
+
transformVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
|
|
220
|
+
/** @deprecated */
|
|
221
|
+
transformDirection(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
|
|
222
|
+
makeRotationX(radians: number): this;
|
|
223
|
+
makeTranslation(x: number, y: number, z: number): this;
|
|
100
224
|
}
|
|
101
|
-
|
|
225
|
+
export {};
|
|
102
226
|
//# sourceMappingURL=matrix4.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.
|
|
1
|
+
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"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"}
|