@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.
Files changed (188) hide show
  1. package/dist/classes/base/math-array.d.ts +61 -31
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/classes/base/math-array.js +67 -65
  4. package/dist/classes/base/matrix.d.ts +12 -10
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/classes/base/matrix.js +2 -10
  7. package/dist/classes/base/vector.d.ts +37 -25
  8. package/dist/classes/base/vector.d.ts.map +1 -1
  9. package/dist/classes/base/vector.js +17 -24
  10. package/dist/classes/euler.d.ts +59 -55
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/classes/euler.js +57 -77
  13. package/dist/classes/matrix3.d.ts +58 -41
  14. package/dist/classes/matrix3.d.ts.map +1 -1
  15. package/dist/classes/matrix3.js +68 -59
  16. package/dist/classes/matrix4.d.ts +214 -90
  17. package/dist/classes/matrix4.d.ts.map +1 -1
  18. package/dist/classes/matrix4.js +252 -171
  19. package/dist/classes/pose.d.ts +29 -26
  20. package/dist/classes/pose.d.ts.map +1 -1
  21. package/dist/classes/pose.js +6 -23
  22. package/dist/classes/quaternion.d.ts +61 -40
  23. package/dist/classes/quaternion.d.ts.map +1 -1
  24. package/dist/classes/quaternion.js +49 -53
  25. package/dist/classes/spherical-coordinates.d.ts +45 -25
  26. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  27. package/dist/classes/spherical-coordinates.js +30 -24
  28. package/dist/classes/vector2.d.ts +51 -15
  29. package/dist/classes/vector2.d.ts.map +1 -1
  30. package/dist/classes/vector2.js +29 -23
  31. package/dist/classes/vector3.d.ts +47 -32
  32. package/dist/classes/vector3.d.ts.map +1 -1
  33. package/dist/classes/vector3.js +16 -30
  34. package/dist/classes/vector4.d.ts +37 -19
  35. package/dist/classes/vector4.d.ts.map +1 -1
  36. package/dist/classes/vector4.js +12 -24
  37. package/dist/es5/classes/base/math-array.js +248 -179
  38. package/dist/es5/classes/base/math-array.js.map +1 -1
  39. package/dist/es5/classes/base/matrix.js +74 -54
  40. package/dist/es5/classes/base/matrix.js.map +1 -1
  41. package/dist/es5/classes/base/vector.js +167 -121
  42. package/dist/es5/classes/base/vector.js.map +1 -1
  43. package/dist/es5/classes/euler.js +575 -480
  44. package/dist/es5/classes/euler.js.map +1 -1
  45. package/dist/es5/classes/matrix3.js +234 -158
  46. package/dist/es5/classes/matrix3.js.map +1 -1
  47. package/dist/es5/classes/matrix4.js +510 -417
  48. package/dist/es5/classes/matrix4.js.map +1 -1
  49. package/dist/es5/classes/pose.js +126 -101
  50. package/dist/es5/classes/pose.js.map +1 -1
  51. package/dist/es5/classes/quaternion.js +285 -213
  52. package/dist/es5/classes/quaternion.js.map +1 -1
  53. package/dist/es5/classes/spherical-coordinates.js +170 -125
  54. package/dist/es5/classes/spherical-coordinates.js.map +1 -1
  55. package/dist/es5/classes/vector2.js +118 -76
  56. package/dist/es5/classes/vector2.js.map +1 -1
  57. package/dist/es5/classes/vector3.js +171 -119
  58. package/dist/es5/classes/vector3.js.map +1 -1
  59. package/dist/es5/classes/vector4.js +141 -94
  60. package/dist/es5/classes/vector4.js.map +1 -1
  61. package/dist/es5/index.js +34 -34
  62. package/dist/es5/lib/common.js +56 -30
  63. package/dist/es5/lib/common.js.map +1 -1
  64. package/dist/es5/lib/gl-matrix-extras.js +14 -14
  65. package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
  66. package/dist/es5/lib/gl-matrix.d.js +2 -0
  67. package/dist/es5/lib/gl-matrix.d.js.map +1 -0
  68. package/dist/es5/lib/validators.js +5 -3
  69. package/dist/es5/lib/validators.js.map +1 -1
  70. package/dist/esm/classes/base/math-array.js +45 -47
  71. package/dist/esm/classes/base/math-array.js.map +1 -1
  72. package/dist/esm/classes/base/matrix.js +0 -11
  73. package/dist/esm/classes/base/matrix.js.map +1 -1
  74. package/dist/esm/classes/base/vector.js +0 -10
  75. package/dist/esm/classes/base/vector.js.map +1 -1
  76. package/dist/esm/classes/euler.js +61 -48
  77. package/dist/esm/classes/euler.js.map +1 -1
  78. package/dist/esm/classes/matrix3.js +55 -33
  79. package/dist/esm/classes/matrix3.js.map +1 -1
  80. package/dist/esm/classes/matrix4.js +156 -136
  81. package/dist/esm/classes/matrix4.js.map +1 -1
  82. package/dist/esm/classes/pose.js +8 -4
  83. package/dist/esm/classes/pose.js.map +1 -1
  84. package/dist/esm/classes/quaternion.js +37 -27
  85. package/dist/esm/classes/quaternion.js.map +1 -1
  86. package/dist/esm/classes/spherical-coordinates.js +15 -5
  87. package/dist/esm/classes/spherical-coordinates.js.map +1 -1
  88. package/dist/esm/classes/vector2.js.map +1 -1
  89. package/dist/esm/classes/vector3.js +7 -2
  90. package/dist/esm/classes/vector3.js.map +1 -1
  91. package/dist/esm/classes/vector4.js +7 -2
  92. package/dist/esm/classes/vector4.js.map +1 -1
  93. package/dist/esm/lib/common.js +8 -8
  94. package/dist/esm/lib/common.js.map +1 -1
  95. package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
  96. package/dist/esm/lib/gl-matrix.d.js +2 -0
  97. package/dist/esm/lib/gl-matrix.d.js.map +1 -0
  98. package/dist/esm/lib/validators.js.map +1 -1
  99. package/dist/lib/common.d.ts +14 -11
  100. package/dist/lib/common.d.ts.map +1 -1
  101. package/dist/lib/common.js +10 -23
  102. package/dist/lib/gl-matrix-extras.d.ts +6 -5
  103. package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
  104. package/dist/lib/gl-matrix-extras.js +0 -1
  105. package/dist/lib/validators.d.ts +5 -4
  106. package/dist/lib/validators.d.ts.map +1 -1
  107. package/dist/lib/validators.js +0 -19
  108. package/package.json +5 -5
  109. package/src/classes/base/math-array.ts +265 -0
  110. package/src/classes/base/{matrix.js → matrix.ts} +15 -19
  111. package/src/classes/base/{vector.js → vector.ts} +47 -54
  112. package/src/classes/{euler.js → euler.ts} +121 -221
  113. package/src/classes/matrix3.ts +253 -0
  114. package/src/classes/matrix4.ts +668 -0
  115. package/src/classes/{pose.js → pose.ts} +52 -49
  116. package/src/classes/{quaternion.js → quaternion.ts} +107 -95
  117. package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
  118. package/src/classes/vector2.ts +127 -0
  119. package/src/classes/{vector3.js → vector3.ts} +43 -55
  120. package/src/classes/{vector4.js → vector4.ts} +44 -48
  121. package/src/lib/common.ts +58 -37
  122. package/src/lib/gl-matrix-extras.ts +26 -5
  123. package/src/lib/gl-matrix.d.ts +266 -0
  124. package/src/lib/validators.ts +10 -6
  125. package/dist/es5/classes/base/math-array.d.js +0 -46
  126. package/dist/es5/classes/base/math-array.d.js.map +0 -1
  127. package/dist/es5/classes/base/matrix.d.js +0 -15
  128. package/dist/es5/classes/base/matrix.d.js.map +0 -1
  129. package/dist/es5/classes/base/vector.d.js +0 -24
  130. package/dist/es5/classes/base/vector.d.js.map +0 -1
  131. package/dist/es5/classes/euler.d.js +0 -45
  132. package/dist/es5/classes/euler.d.js.map +0 -1
  133. package/dist/es5/classes/matrix3.d.js +0 -25
  134. package/dist/es5/classes/matrix3.d.js.map +0 -1
  135. package/dist/es5/classes/matrix4.d.js +0 -25
  136. package/dist/es5/classes/matrix4.d.js.map +0 -1
  137. package/dist/es5/classes/pose.d.js +0 -25
  138. package/dist/es5/classes/pose.d.js.map +0 -1
  139. package/dist/es5/classes/quaternion.d.js +0 -27
  140. package/dist/es5/classes/quaternion.d.js.map +0 -1
  141. package/dist/es5/classes/spherical-coordinates.d.js +0 -27
  142. package/dist/es5/classes/spherical-coordinates.d.js.map +0 -1
  143. package/dist/es5/classes/vector2.d.js +0 -18
  144. package/dist/es5/classes/vector2.d.js.map +0 -1
  145. package/dist/es5/classes/vector3.d.js +0 -24
  146. package/dist/es5/classes/vector3.d.js.map +0 -1
  147. package/dist/es5/classes/vector4.d.js +0 -25
  148. package/dist/es5/classes/vector4.d.js.map +0 -1
  149. package/dist/esm/classes/base/math-array.d.js +0 -36
  150. package/dist/esm/classes/base/math-array.d.js.map +0 -1
  151. package/dist/esm/classes/base/matrix.d.js +0 -3
  152. package/dist/esm/classes/base/matrix.d.js.map +0 -1
  153. package/dist/esm/classes/base/vector.d.js +0 -13
  154. package/dist/esm/classes/base/vector.d.js.map +0 -1
  155. package/dist/esm/classes/euler.d.js +0 -55
  156. package/dist/esm/classes/euler.d.js.map +0 -1
  157. package/dist/esm/classes/matrix3.d.js +0 -15
  158. package/dist/esm/classes/matrix3.d.js.map +0 -1
  159. package/dist/esm/classes/matrix4.d.js +0 -15
  160. package/dist/esm/classes/matrix4.d.js.map +0 -1
  161. package/dist/esm/classes/pose.d.js +0 -18
  162. package/dist/esm/classes/pose.d.js.map +0 -1
  163. package/dist/esm/classes/quaternion.d.js +0 -19
  164. package/dist/esm/classes/quaternion.d.js.map +0 -1
  165. package/dist/esm/classes/spherical-coordinates.d.js +0 -22
  166. package/dist/esm/classes/spherical-coordinates.d.js.map +0 -1
  167. package/dist/esm/classes/vector2.d.js +0 -6
  168. package/dist/esm/classes/vector2.d.js.map +0 -1
  169. package/dist/esm/classes/vector3.d.js +0 -13
  170. package/dist/esm/classes/vector3.d.js.map +0 -1
  171. package/dist/esm/classes/vector4.d.js +0 -15
  172. package/dist/esm/classes/vector4.d.js.map +0 -1
  173. package/src/classes/base/math-array.d.ts +0 -55
  174. package/src/classes/base/math-array.js +0 -250
  175. package/src/classes/base/matrix.d.ts +0 -15
  176. package/src/classes/base/vector.d.ts +0 -45
  177. package/src/classes/euler.d.ts +0 -92
  178. package/src/classes/matrix3.d.ts +0 -91
  179. package/src/classes/matrix3.js +0 -225
  180. package/src/classes/matrix4.d.ts +0 -161
  181. package/src/classes/matrix4.js +0 -530
  182. package/src/classes/pose.d.ts +0 -92
  183. package/src/classes/quaternion.d.ts +0 -107
  184. package/src/classes/spherical-coordinates.d.ts +0 -87
  185. package/src/classes/vector2.d.ts +0 -65
  186. package/src/classes/vector2.js +0 -122
  187. package/src/classes/vector3.d.ts +0 -65
  188. package/src/classes/vector4.d.ts +0 -34
@@ -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, deprecated } from '../lib/validators';
22
- // eslint-disable-next-line camelcase
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
- const IDENTITY = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
31
- const ZERO = Object.freeze([0, 0, 0, 0, 0, 0, 0, 0, 0]);
32
- const INDICES = Object.freeze({
33
- COL0ROW0: 0,
34
- COL0ROW1: 1,
35
- COL0ROW2: 2,
36
- COL1ROW0: 3,
37
- COL1ROW1: 4,
38
- COL1ROW2: 5,
39
- COL2ROW0: 6,
40
- COL2ROW1: 7,
41
- COL2ROW2: 8
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
- constants.IDENTITY = constants.IDENTITY || Object.freeze(new Matrix3(IDENTITY));
47
- return constants.IDENTITY;
25
+ return getIdentityMatrix();
48
26
  }
49
27
  static get ZERO() {
50
- constants.ZERO = constants.ZERO || Object.freeze(new Matrix3(ZERO));
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
- // accepts column major order, stores in column major order
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
- // accepts row major order, stores as column major
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, 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
- // DEPRECATED IN 3.0
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
- export default class Matrix4 extends Matrix<any> {
2
- static get IDENTITY(): any;
3
- static get ZERO(): any;
4
- static _computeInfinitePerspectiveOffCenter(result: any, left: any, right: any, bottom: any, top: any, near: any): any;
5
- constructor(array: any, ...args: any[]);
6
- get INDICES(): Readonly<{
7
- COL0ROW0: number;
8
- COL0ROW1: number;
9
- COL0ROW2: number;
10
- COL0ROW3: number;
11
- COL1ROW0: number;
12
- COL1ROW1: number;
13
- COL1ROW2: number;
14
- COL1ROW3: number;
15
- COL2ROW0: number;
16
- COL2ROW1: number;
17
- COL2ROW2: number;
18
- COL2ROW3: number;
19
- COL3ROW0: number;
20
- COL3ROW1: number;
21
- COL3ROW2: number;
22
- COL3ROW3: number;
23
- }>;
24
- copy(array: any): any;
25
- 0: any;
26
- 1: any;
27
- 2: any;
28
- 3: any;
29
- 4: any;
30
- 5: any;
31
- 6: any;
32
- 7: any;
33
- 8: any;
34
- 9: any;
35
- 10: any;
36
- 11: any;
37
- 12: any;
38
- 13: any;
39
- 14: any;
40
- 15: any;
41
- set(m00: any, m10: any, m20: any, m30: any, m01: any, m11: any, m21: any, m31: any, m02: any, m12: any, m22: any, m32: any, m03: any, m13: any, m23: any, m33: any): any;
42
- setRowMajor(m00: any, m01: any, m02: any, m03: any, m10: any, m11: any, m12: any, m13: any, m20: any, m21: any, m22: any, m23: any, m30: any, m31: any, m32: any, m33: any): any;
43
- toRowMajor(result: any): any;
44
- identity(): any;
45
- fromQuaternion(q: any): any;
46
- frustum({ left, right, bottom, top, near, far }: {
47
- left: any;
48
- right: any;
49
- bottom: any;
50
- top: any;
51
- near: any;
52
- far: any;
53
- }): any;
54
- lookAt(eye: any, center: any, up: any, ...args: any[]): any;
55
- ortho({ left, right, bottom, top, near, far }: {
56
- left: any;
57
- right: any;
58
- bottom: any;
59
- top: any;
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
- }): any;
63
- orthographic({ fovy, aspect, focalDistance, near, far }: {
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
- }): any;
70
- perspective({ fovy, fov, aspect, near, far }?: {
71
- fovy?: any;
72
- fov?: 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;
73
126
  aspect?: number;
74
127
  near?: number;
75
128
  far?: number;
76
- }): any;
77
- determinant(): any;
78
- getScale(result?: number[]): number[];
79
- getTranslation(result?: number[]): number[];
80
- getRotation(result?: number[], scaleResult?: any): number[];
81
- getRotationMatrix3(result?: number[], scaleResult?: any): number[];
82
- transpose(): any;
83
- invert(): any;
84
- multiplyLeft(a: any): any;
85
- multiplyRight(a: any): any;
86
- rotateX(radians: any): any;
87
- rotateY(radians: any): any;
88
- rotateZ(radians: any): any;
89
- rotateXYZ([rx, ry, rz]: [any, any, any]): any;
90
- rotateAxis(radians: any, axis: any): any;
91
- translate(vec: any): any;
92
- transform(vector: any, result: any): any;
93
- transformAsPoint(vector: any, result: any): any;
94
- transformAsVector(vector: any, result: any): any;
95
- makeRotationX(radians: any): any;
96
- makeTranslation(x: any, y: any, z: any): any;
97
- transformPoint(vector: any, result: any): any;
98
- transformVector(vector: any, result: any): any;
99
- transformDirection(vector: any, result: any): any;
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
- import Matrix from "./base/matrix";
225
+ export {};
102
226
  //# sourceMappingURL=matrix4.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.js"],"names":[],"mappings":"AA0DA;IACE,2BAGC;IAED,uBAGC;IAyID,uHA0BC;IArJD,wCAQC;IApBD;;;;;;;;;;;;;;;;;OAEC;IAoBD,sBAkBC;IAjBC,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,OAAkB;IAClB,QAAoB;IACpB,QAAoB;IACpB,QAAoB;IACpB,QAAoB;IACpB,QAAoB;IACpB,QAAoB;IAKtB,yKAkBC;IAID,iLAkBC;IAED,6BAkBC;IAID,gBAEC;IAID,4BAGC;IASD;;;;;;;YAOC;IAoCD,4DAWC;IAUD;;;;;;;YAGC;IASD;;;;;;YAsBC;IAOD;;;;;;YAaC;IAID,mBAEC;IAID,sCASC;IAGD,4CAKC;IAGD,4DA2BC;IAED,mEAiBC;IAID,iBAGC;IAED,cAGC;IAID,0BAGC;IAED,2BAGC;IAGD,2BAIC;IAGD,2BAIC;IAGD,2BAIC;IAED,8CAEC;IAED,yCAGC;IAYD,yBAGC;IAKD,yCAOC;IAGD,gDAcC;IAGD,iDAaC;IAGD,iCAEC;IAED,6CAEC;IAID,8CAGC;IAED,+CAGC;IAED,kDAGC;CACF"}
1
+ {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"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"}