@math.gl/core 3.5.7 → 3.6.0-alpha.3
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 +66 -0
- package/dist/classes/base/math-array.d.ts.map +1 -0
- package/dist/classes/base/math-array.js +216 -0
- package/dist/classes/base/matrix.d.ts +14 -0
- package/dist/classes/base/matrix.d.ts.map +1 -0
- package/dist/classes/base/matrix.js +61 -0
- package/dist/classes/base/vector.d.ts +44 -0
- package/dist/classes/base/vector.d.ts.map +1 -0
- package/dist/classes/base/vector.js +126 -0
- package/dist/classes/euler.d.ts +77 -0
- package/dist/classes/euler.d.ts.map +1 -0
- package/dist/classes/euler.js +485 -0
- package/dist/classes/matrix3.d.ts +60 -0
- package/dist/classes/matrix3.d.ts.map +1 -0
- package/dist/classes/matrix3.js +201 -0
- package/dist/classes/matrix4.d.ts +226 -0
- package/dist/classes/matrix4.d.ts.map +1 -0
- package/dist/classes/matrix4.js +538 -0
- package/dist/classes/pose.d.ts +40 -0
- package/dist/classes/pose.d.ts.map +1 -0
- package/dist/classes/pose.js +109 -0
- package/dist/classes/quaternion.d.ts +63 -0
- package/dist/classes/quaternion.d.ts.map +1 -0
- package/dist/classes/quaternion.js +262 -0
- package/dist/classes/spherical-coordinates.d.ts +60 -0
- package/dist/classes/spherical-coordinates.d.ts.map +1 -0
- package/dist/classes/spherical-coordinates.js +148 -0
- package/dist/classes/vector2.d.ts +55 -0
- package/dist/classes/vector2.d.ts.map +1 -0
- package/dist/classes/vector2.js +111 -0
- package/dist/classes/vector3.d.ts +56 -0
- package/dist/classes/vector3.d.ts.map +1 -0
- package/dist/classes/vector3.js +133 -0
- package/dist/classes/vector4.d.ts +41 -0
- package/dist/classes/vector4.d.ts.map +1 -0
- package/dist/classes/vector4.js +114 -0
- package/dist/es5/classes/base/math-array.js +57 -61
- package/dist/es5/classes/base/math-array.js.map +1 -1
- package/dist/es5/classes/base/matrix.js +0 -14
- package/dist/es5/classes/base/matrix.js.map +1 -1
- package/dist/es5/classes/base/vector.js +0 -12
- package/dist/es5/classes/base/vector.js.map +1 -1
- package/dist/es5/classes/euler.js +63 -49
- package/dist/es5/classes/euler.js.map +1 -1
- package/dist/es5/classes/matrix3.js +60 -33
- package/dist/es5/classes/matrix3.js.map +1 -1
- package/dist/es5/classes/matrix4.js +167 -164
- package/dist/es5/classes/matrix4.js.map +1 -1
- package/dist/es5/classes/pose.js +7 -6
- package/dist/es5/classes/pose.js.map +1 -1
- package/dist/es5/classes/quaternion.js +44 -36
- package/dist/es5/classes/quaternion.js.map +1 -1
- package/dist/es5/classes/spherical-coordinates.js +12 -8
- package/dist/es5/classes/spherical-coordinates.js.map +1 -1
- package/dist/es5/classes/vector2.js.map +1 -1
- package/dist/es5/classes/vector3.js +7 -2
- package/dist/es5/classes/vector3.js.map +1 -1
- package/dist/es5/classes/vector4.js +7 -2
- package/dist/es5/classes/vector4.js.map +1 -1
- package/dist/es5/docs/README.md +0 -0
- package/dist/es5/index.js +71 -89
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/assert.js.map +1 -1
- package/dist/es5/lib/common.js +40 -43
- package/dist/es5/lib/common.js.map +1 -1
- 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/math-utils.js.map +1 -1
- 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/docs/README.md +0 -0
- package/dist/esm/index.js +2 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/assert.js.map +1 -1
- package/dist/esm/lib/common.js +41 -44
- 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/math-utils.js.map +1 -1
- package/dist/esm/lib/validators.js.map +1 -1
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/lib/assert.d.ts +2 -0
- package/dist/lib/assert.d.ts.map +1 -0
- package/dist/lib/assert.js +5 -0
- package/dist/lib/common.d.ts +93 -0
- package/dist/lib/common.d.ts.map +1 -0
- package/dist/lib/common.js +210 -0
- package/dist/lib/gl-matrix-extras.d.ts +7 -0
- package/dist/lib/gl-matrix-extras.d.ts.map +1 -0
- package/dist/lib/gl-matrix-extras.js +49 -0
- package/dist/lib/math-utils.d.ts +28 -0
- package/dist/lib/math-utils.d.ts.map +1 -0
- package/dist/lib/math-utils.js +28 -0
- package/dist/lib/validators.d.ts +6 -0
- package/dist/lib/validators.d.ts.map +1 -0
- package/dist/lib/validators.js +33 -0
- package/package.json +5 -4
- 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/docs/README.md +0 -0
- package/{dist/esm/index.d.ts → src/index.ts} +32 -34
- package/src/lib/{assert.js → assert.ts} +1 -1
- package/src/lib/common.ts +304 -0
- package/src/lib/{gl-matrix-extras.js → gl-matrix-extras.ts} +26 -5
- package/src/lib/gl-matrix.d.ts +266 -0
- package/src/lib/{math-utils.js → math-utils.ts} +0 -0
- package/src/lib/{validators.js → validators.ts} +10 -6
- package/dist/es5/addons/polygon.d.ts +0 -17
- package/dist/es5/classes/base/math-array.d.ts +0 -56
- package/dist/es5/classes/base/matrix.d.ts +0 -15
- package/dist/es5/classes/base/vector.d.ts +0 -45
- package/dist/es5/classes/euler.d.ts +0 -92
- package/dist/es5/classes/matrix3.d.ts +0 -91
- package/dist/es5/classes/matrix4.d.ts +0 -161
- package/dist/es5/classes/pose.d.ts +0 -92
- package/dist/es5/classes/quaternion.d.ts +0 -107
- package/dist/es5/classes/spherical-coordinates.d.ts +0 -87
- package/dist/es5/classes/vector2.d.ts +0 -65
- package/dist/es5/classes/vector3.d.ts +0 -65
- package/dist/es5/classes/vector4.d.ts +0 -34
- package/dist/es5/index.d.ts +0 -54
- package/dist/es5/lib/common.d.ts +0 -80
- package/dist/esm/addons/polygon.d.ts +0 -17
- package/dist/esm/classes/base/math-array.d.ts +0 -56
- package/dist/esm/classes/base/matrix.d.ts +0 -15
- package/dist/esm/classes/base/vector.d.ts +0 -45
- package/dist/esm/classes/euler.d.ts +0 -92
- package/dist/esm/classes/matrix3.d.ts +0 -91
- package/dist/esm/classes/matrix4.d.ts +0 -161
- package/dist/esm/classes/pose.d.ts +0 -92
- package/dist/esm/classes/quaternion.d.ts +0 -107
- package/dist/esm/classes/spherical-coordinates.d.ts +0 -87
- package/dist/esm/classes/vector2.d.ts +0 -65
- package/dist/esm/classes/vector3.d.ts +0 -65
- package/dist/esm/classes/vector4.d.ts +0 -34
- package/dist/esm/lib/common.d.ts +0 -80
- package/src/addons/polygon.d.ts +0 -17
- package/src/classes/base/math-array.d.ts +0 -56
- 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/src/index.d.ts +0 -54
- package/src/index.js +0 -86
- package/src/lib/common.d.ts +0 -80
- package/src/lib/common.js +0 -222
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
// Copyright (c) 2017 Uber Technologies, Inc.
|
|
2
|
+
// MIT License
|
|
3
|
+
import Matrix from './base/matrix';
|
|
4
|
+
import { checkVector } from '../lib/validators';
|
|
5
|
+
/* eslint-disable camelcase */
|
|
6
|
+
import { vec4_transformMat3 } from '../lib/gl-matrix-extras';
|
|
7
|
+
import * as mat3 from 'gl-matrix/mat3';
|
|
8
|
+
import * as vec2 from 'gl-matrix/vec2';
|
|
9
|
+
import * as vec3 from 'gl-matrix/vec3';
|
|
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]);
|
|
23
|
+
export default class Matrix3 extends Matrix {
|
|
24
|
+
static get IDENTITY() {
|
|
25
|
+
return getIdentityMatrix();
|
|
26
|
+
}
|
|
27
|
+
static get ZERO() {
|
|
28
|
+
return getZeroMatrix();
|
|
29
|
+
}
|
|
30
|
+
get ELEMENTS() {
|
|
31
|
+
return 9;
|
|
32
|
+
}
|
|
33
|
+
get RANK() {
|
|
34
|
+
return 3;
|
|
35
|
+
}
|
|
36
|
+
get INDICES() {
|
|
37
|
+
return INDICES;
|
|
38
|
+
}
|
|
39
|
+
constructor(array, ...args) {
|
|
40
|
+
// PERF NOTE: initialize elements as double precision numbers
|
|
41
|
+
super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
|
|
42
|
+
if (arguments.length === 1 && Array.isArray(array)) {
|
|
43
|
+
this.copy(array);
|
|
44
|
+
}
|
|
45
|
+
else if (args.length > 0) {
|
|
46
|
+
this.copy([array, ...args]);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.identity();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
copy(array) {
|
|
53
|
+
// Element wise copy for performance
|
|
54
|
+
this[0] = array[0];
|
|
55
|
+
this[1] = array[1];
|
|
56
|
+
this[2] = array[2];
|
|
57
|
+
this[3] = array[3];
|
|
58
|
+
this[4] = array[4];
|
|
59
|
+
this[5] = array[5];
|
|
60
|
+
this[6] = array[6];
|
|
61
|
+
this[7] = array[7];
|
|
62
|
+
this[8] = array[8];
|
|
63
|
+
return this.check();
|
|
64
|
+
}
|
|
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
|
+
*/
|
|
86
|
+
// eslint-disable-next-line max-params
|
|
87
|
+
set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
|
|
88
|
+
this[0] = m00;
|
|
89
|
+
this[1] = m10;
|
|
90
|
+
this[2] = m20;
|
|
91
|
+
this[3] = m01;
|
|
92
|
+
this[4] = m11;
|
|
93
|
+
this[5] = m21;
|
|
94
|
+
this[6] = m02;
|
|
95
|
+
this[7] = m12;
|
|
96
|
+
this[8] = m22;
|
|
97
|
+
return this.check();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* accepts row major order, stores as column major
|
|
101
|
+
*/
|
|
102
|
+
// eslint-disable-next-line max-params
|
|
103
|
+
setRowMajor(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
|
|
104
|
+
this[0] = m00;
|
|
105
|
+
this[1] = m10;
|
|
106
|
+
this[2] = m20;
|
|
107
|
+
this[3] = m01;
|
|
108
|
+
this[4] = m11;
|
|
109
|
+
this[5] = m21;
|
|
110
|
+
this[6] = m02;
|
|
111
|
+
this[7] = m12;
|
|
112
|
+
this[8] = m22;
|
|
113
|
+
return this.check();
|
|
114
|
+
}
|
|
115
|
+
// Accessors
|
|
116
|
+
determinant() {
|
|
117
|
+
return mat3.determinant(this);
|
|
118
|
+
}
|
|
119
|
+
// Modifiers
|
|
120
|
+
transpose() {
|
|
121
|
+
mat3.transpose(this, this);
|
|
122
|
+
return this.check();
|
|
123
|
+
}
|
|
124
|
+
/** Invert a matrix. Note that this can fail if the matrix is not invertible */
|
|
125
|
+
invert() {
|
|
126
|
+
mat3.invert(this, this);
|
|
127
|
+
return this.check();
|
|
128
|
+
}
|
|
129
|
+
// Operations
|
|
130
|
+
multiplyLeft(a) {
|
|
131
|
+
mat3.multiply(this, a, this);
|
|
132
|
+
return this.check();
|
|
133
|
+
}
|
|
134
|
+
multiplyRight(a) {
|
|
135
|
+
mat3.multiply(this, this, a);
|
|
136
|
+
return this.check();
|
|
137
|
+
}
|
|
138
|
+
rotate(radians) {
|
|
139
|
+
mat3.rotate(this, this, radians);
|
|
140
|
+
return this.check();
|
|
141
|
+
}
|
|
142
|
+
scale(factor) {
|
|
143
|
+
if (Array.isArray(factor)) {
|
|
144
|
+
mat3.scale(this, this, factor);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
mat3.scale(this, this, [factor, factor]);
|
|
148
|
+
}
|
|
149
|
+
return this.check();
|
|
150
|
+
}
|
|
151
|
+
translate(vec) {
|
|
152
|
+
mat3.translate(this, this, vec);
|
|
153
|
+
return this.check();
|
|
154
|
+
}
|
|
155
|
+
// Transforms
|
|
156
|
+
transform(vector, result) {
|
|
157
|
+
switch (vector.length) {
|
|
158
|
+
case 2:
|
|
159
|
+
result = vec2.transformMat3(result || [-0, -0], vector, this);
|
|
160
|
+
break;
|
|
161
|
+
case 3:
|
|
162
|
+
result = vec3.transformMat3(result || [-0, -0, -0], vector, this);
|
|
163
|
+
break;
|
|
164
|
+
case 4:
|
|
165
|
+
result = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
|
|
166
|
+
break;
|
|
167
|
+
default:
|
|
168
|
+
throw new Error('Illegal vector');
|
|
169
|
+
}
|
|
170
|
+
checkVector(result, vector.length);
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
/** @deprecated */
|
|
174
|
+
transformVector(vector, result) {
|
|
175
|
+
return this.transform(vector, result);
|
|
176
|
+
}
|
|
177
|
+
/** @deprecated */
|
|
178
|
+
transformVector2(vector, result) {
|
|
179
|
+
return this.transform(vector, result);
|
|
180
|
+
}
|
|
181
|
+
/** @deprecated */
|
|
182
|
+
transformVector3(vector, result) {
|
|
183
|
+
return this.transform(vector, result);
|
|
184
|
+
}
|
|
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
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
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;
|
|
96
|
+
near?: number;
|
|
97
|
+
far?: number;
|
|
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: {
|
|
110
|
+
fovy?: number;
|
|
111
|
+
aspect?: number;
|
|
112
|
+
focalDistance?: number;
|
|
113
|
+
near?: number;
|
|
114
|
+
far?: number;
|
|
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;
|
|
126
|
+
aspect?: number;
|
|
127
|
+
near?: number;
|
|
128
|
+
far?: number;
|
|
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;
|
|
224
|
+
}
|
|
225
|
+
export {};
|
|
226
|
+
//# sourceMappingURL=matrix4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"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"}
|