@math.gl/core 3.6.3 → 4.0.0-alpha.2

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 (210) hide show
  1. package/dist/classes/base/math-array.d.ts +5 -4
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/{esm/classes → classes}/base/math-array.js +8 -3
  4. package/dist/classes/base/math-array.js.map +1 -0
  5. package/dist/classes/base/matrix.d.ts +2 -2
  6. package/dist/classes/base/matrix.d.ts.map +1 -1
  7. package/dist/{esm/classes → classes}/base/matrix.js +4 -4
  8. package/dist/classes/base/matrix.js.map +1 -0
  9. package/dist/classes/base/vector.d.ts +2 -2
  10. package/dist/classes/base/vector.d.ts.map +1 -1
  11. package/dist/{esm/classes → classes}/base/vector.js +4 -4
  12. package/dist/classes/base/vector.js.map +1 -0
  13. package/dist/classes/euler.d.ts +4 -4
  14. package/dist/classes/euler.d.ts.map +1 -1
  15. package/dist/{esm/classes → classes}/euler.js +6 -6
  16. package/dist/classes/euler.js.map +1 -0
  17. package/dist/classes/matrix3.d.ts +5 -2
  18. package/dist/classes/matrix3.d.ts.map +1 -1
  19. package/dist/{esm/classes → classes}/matrix3.js +20 -20
  20. package/dist/classes/matrix3.js.map +1 -0
  21. package/dist/classes/matrix4.d.ts +2 -2
  22. package/dist/classes/matrix4.d.ts.map +1 -1
  23. package/dist/{esm/classes → classes}/matrix4.js +27 -27
  24. package/dist/classes/matrix4.js.map +1 -0
  25. package/dist/classes/pose.d.ts +4 -4
  26. package/dist/classes/pose.d.ts.map +1 -1
  27. package/dist/{esm/classes → classes}/pose.js +4 -4
  28. package/dist/classes/pose.js.map +1 -0
  29. package/dist/classes/quaternion.d.ts +2 -2
  30. package/dist/classes/quaternion.d.ts.map +1 -1
  31. package/dist/{esm/classes → classes}/quaternion.js +26 -26
  32. package/dist/classes/quaternion.js.map +1 -0
  33. package/dist/classes/spherical-coordinates.d.ts +2 -2
  34. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  35. package/dist/{esm/classes → classes}/spherical-coordinates.js +5 -5
  36. package/dist/classes/spherical-coordinates.js.map +1 -0
  37. package/dist/classes/vector2.d.ts +2 -2
  38. package/dist/classes/vector2.d.ts.map +1 -1
  39. package/dist/{esm/classes → classes}/vector2.js +10 -10
  40. package/dist/classes/vector2.js.map +1 -0
  41. package/dist/classes/vector3.d.ts +2 -2
  42. package/dist/classes/vector3.d.ts.map +1 -1
  43. package/dist/{esm/classes → classes}/vector3.js +14 -14
  44. package/dist/classes/vector3.js.map +1 -0
  45. package/dist/classes/vector4.d.ts +3 -3
  46. package/dist/classes/vector4.d.ts.map +1 -1
  47. package/dist/{esm/classes → classes}/vector4.js +8 -8
  48. package/dist/classes/vector4.js.map +1 -0
  49. package/dist/gl-matrix/common.d.ts +38 -0
  50. package/dist/gl-matrix/common.d.ts.map +1 -0
  51. package/dist/gl-matrix/common.js +19 -0
  52. package/dist/gl-matrix/common.js.map +1 -0
  53. package/dist/gl-matrix/mat3.d.ts +295 -0
  54. package/dist/gl-matrix/mat3.d.ts.map +1 -0
  55. package/dist/gl-matrix/mat3.js +489 -0
  56. package/dist/gl-matrix/mat3.js.map +1 -0
  57. package/dist/gl-matrix/mat4.d.ts +577 -0
  58. package/dist/gl-matrix/mat4.d.ts.map +1 -0
  59. package/dist/gl-matrix/mat4.js +1455 -0
  60. package/dist/gl-matrix/mat4.js.map +1 -0
  61. package/dist/gl-matrix/quat.d.ts +357 -0
  62. package/dist/gl-matrix/quat.d.ts.map +1 -0
  63. package/dist/gl-matrix/quat.js +315 -0
  64. package/dist/gl-matrix/quat.js.map +1 -0
  65. package/dist/gl-matrix/vec2.d.ts +373 -0
  66. package/dist/gl-matrix/vec2.d.ts.map +1 -0
  67. package/dist/gl-matrix/vec2.js +257 -0
  68. package/dist/gl-matrix/vec2.js.map +1 -0
  69. package/dist/gl-matrix/vec3.d.ts +416 -0
  70. package/dist/gl-matrix/vec3.d.ts.map +1 -0
  71. package/dist/gl-matrix/vec3.js +384 -0
  72. package/dist/gl-matrix/vec3.js.map +1 -0
  73. package/dist/gl-matrix/vec4.d.ts +340 -0
  74. package/dist/gl-matrix/vec4.d.ts.map +1 -0
  75. package/dist/gl-matrix/vec4.js +334 -0
  76. package/dist/gl-matrix/vec4.js.map +1 -0
  77. package/dist/gl-matrix/wip/index.d.ts +5 -0
  78. package/dist/gl-matrix/wip/index.d.ts.map +1 -0
  79. package/dist/gl-matrix/wip/index.js +12 -0
  80. package/dist/gl-matrix/wip/index.js.map +1 -0
  81. package/dist/gl-matrix/wip/mat2.d.ts +229 -0
  82. package/dist/gl-matrix/wip/mat2.d.ts.map +1 -0
  83. package/dist/gl-matrix/wip/mat2.js +208 -0
  84. package/dist/gl-matrix/wip/mat2.js.map +1 -0
  85. package/dist/gl-matrix/wip/mat2d.d.ts +244 -0
  86. package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -0
  87. package/dist/gl-matrix/wip/mat2d.js +251 -0
  88. package/dist/gl-matrix/wip/mat2d.js.map +1 -0
  89. package/dist/gl-matrix/wip/quat2.d.ts +352 -0
  90. package/dist/gl-matrix/wip/quat2.d.ts.map +1 -0
  91. package/dist/gl-matrix/wip/quat2.js +482 -0
  92. package/dist/gl-matrix/wip/quat2.js.map +1 -0
  93. package/dist/gl-matrix/wip/types.d.js +2 -0
  94. package/dist/{esm/lib/gl-matrix.d.js.map → gl-matrix/wip/types.d.js.map} +1 -1
  95. package/dist/index.cjs +3788 -0
  96. package/dist/index.d.ts +15 -14
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +17 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/lib/assert.d.ts +1 -1
  101. package/dist/lib/assert.d.ts.map +1 -1
  102. package/dist/lib/assert.js +6 -0
  103. package/dist/lib/assert.js.map +1 -0
  104. package/dist/lib/common.d.ts +10 -5
  105. package/dist/lib/common.d.ts.map +1 -1
  106. package/dist/{esm/lib → lib}/common.js +11 -9
  107. package/dist/lib/common.js.map +1 -0
  108. package/dist/lib/gl-matrix-extras.js.map +1 -0
  109. package/dist/lib/math-utils.d.ts +24 -27
  110. package/dist/lib/math-utils.d.ts.map +1 -1
  111. package/dist/lib/math-utils.js +25 -0
  112. package/dist/lib/math-utils.js.map +1 -0
  113. package/dist/lib/validators.d.ts +1 -1
  114. package/dist/lib/validators.d.ts.map +1 -1
  115. package/dist/{esm/lib → lib}/validators.js +2 -2
  116. package/dist/lib/validators.js.map +1 -0
  117. package/package.json +6 -6
  118. package/src/classes/base/math-array.ts +16 -8
  119. package/src/classes/base/matrix.ts +7 -4
  120. package/src/classes/base/vector.ts +4 -4
  121. package/src/classes/euler.ts +9 -8
  122. package/src/classes/matrix3.ts +37 -24
  123. package/src/classes/matrix4.ts +48 -29
  124. package/src/classes/pose.ts +4 -4
  125. package/src/classes/quaternion.ts +54 -32
  126. package/src/classes/spherical-coordinates.ts +5 -4
  127. package/src/classes/vector2.ts +13 -9
  128. package/src/classes/vector3.ts +26 -12
  129. package/src/classes/vector4.ts +14 -10
  130. package/src/gl-matrix/common.js +58 -0
  131. package/src/gl-matrix/mat3.js +842 -0
  132. package/src/gl-matrix/mat4.js +2169 -0
  133. package/src/gl-matrix/quat.ts +789 -0
  134. package/src/gl-matrix/vec2.js +629 -0
  135. package/src/gl-matrix/vec3.js +827 -0
  136. package/src/gl-matrix/vec4.js +675 -0
  137. package/src/gl-matrix/wip/index.js +15 -0
  138. package/src/gl-matrix/wip/mat2.js +442 -0
  139. package/src/gl-matrix/wip/mat2d.js +505 -0
  140. package/src/gl-matrix/wip/quat2.ts +886 -0
  141. package/src/gl-matrix/wip/types.d.ts +93 -0
  142. package/src/index.ts +16 -14
  143. package/src/lib/assert.ts +1 -1
  144. package/src/lib/common.ts +31 -19
  145. package/src/lib/math-utils.ts +24 -26
  146. package/src/lib/validators.ts +3 -3
  147. package/dist/es5/classes/base/math-array.js +0 -348
  148. package/dist/es5/classes/base/math-array.js.map +0 -1
  149. package/dist/es5/classes/base/matrix.js +0 -108
  150. package/dist/es5/classes/base/matrix.js.map +0 -1
  151. package/dist/es5/classes/base/vector.js +0 -210
  152. package/dist/es5/classes/base/vector.js.map +0 -1
  153. package/dist/es5/classes/euler.js +0 -654
  154. package/dist/es5/classes/euler.js.map +0 -1
  155. package/dist/es5/classes/matrix3.js +0 -284
  156. package/dist/es5/classes/matrix3.js.map +0 -1
  157. package/dist/es5/classes/matrix4.js +0 -574
  158. package/dist/es5/classes/matrix4.js.map +0 -1
  159. package/dist/es5/classes/pose.js +0 -159
  160. package/dist/es5/classes/pose.js.map +0 -1
  161. package/dist/es5/classes/quaternion.js +0 -323
  162. package/dist/es5/classes/quaternion.js.map +0 -1
  163. package/dist/es5/classes/spherical-coordinates.js +0 -208
  164. package/dist/es5/classes/spherical-coordinates.js.map +0 -1
  165. package/dist/es5/classes/vector2.js +0 -156
  166. package/dist/es5/classes/vector2.js.map +0 -1
  167. package/dist/es5/classes/vector3.js +0 -213
  168. package/dist/es5/classes/vector3.js.map +0 -1
  169. package/dist/es5/classes/vector4.js +0 -185
  170. package/dist/es5/classes/vector4.js.map +0 -1
  171. package/dist/es5/docs/README.md +0 -0
  172. package/dist/es5/index.js +0 -236
  173. package/dist/es5/index.js.map +0 -1
  174. package/dist/es5/lib/assert.js +0 -13
  175. package/dist/es5/lib/assert.js.map +0 -1
  176. package/dist/es5/lib/common.js +0 -255
  177. package/dist/es5/lib/common.js.map +0 -1
  178. package/dist/es5/lib/gl-matrix-extras.js +0 -61
  179. package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
  180. package/dist/es5/lib/gl-matrix.d.js +0 -2
  181. package/dist/es5/lib/math-utils.js +0 -34
  182. package/dist/es5/lib/math-utils.js.map +0 -1
  183. package/dist/es5/lib/validators.js +0 -53
  184. package/dist/es5/lib/validators.js.map +0 -1
  185. package/dist/esm/classes/base/math-array.js.map +0 -1
  186. package/dist/esm/classes/base/matrix.js.map +0 -1
  187. package/dist/esm/classes/base/vector.js.map +0 -1
  188. package/dist/esm/classes/euler.js.map +0 -1
  189. package/dist/esm/classes/matrix3.js.map +0 -1
  190. package/dist/esm/classes/matrix4.js.map +0 -1
  191. package/dist/esm/classes/pose.js.map +0 -1
  192. package/dist/esm/classes/quaternion.js.map +0 -1
  193. package/dist/esm/classes/spherical-coordinates.js.map +0 -1
  194. package/dist/esm/classes/vector2.js.map +0 -1
  195. package/dist/esm/classes/vector3.js.map +0 -1
  196. package/dist/esm/classes/vector4.js.map +0 -1
  197. package/dist/esm/docs/README.md +0 -0
  198. package/dist/esm/index.js +0 -16
  199. package/dist/esm/index.js.map +0 -1
  200. package/dist/esm/lib/assert.js +0 -6
  201. package/dist/esm/lib/assert.js.map +0 -1
  202. package/dist/esm/lib/common.js.map +0 -1
  203. package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
  204. package/dist/esm/lib/math-utils.js +0 -27
  205. package/dist/esm/lib/math-utils.js.map +0 -1
  206. package/dist/esm/lib/validators.js.map +0 -1
  207. package/src/docs/README.md +0 -0
  208. /package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
  209. /package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
  210. /package/dist/{es5/lib → lib}/gl-matrix.d.js.map +0 -0
@@ -1,10 +1,10 @@
1
- import Matrix from './base/matrix';
2
- import { checkVector } from '../lib/validators';
3
- import { vec2_transformMat4AsVector, vec3_transformMat4AsVector } from '../lib/gl-matrix-extras';
4
- import * as mat4 from 'gl-matrix/mat4';
5
- import * as vec2 from 'gl-matrix/vec2';
6
- import * as vec3 from 'gl-matrix/vec3';
7
- import * as vec4 from 'gl-matrix/vec4';
1
+ import { Matrix } from "./base/matrix.js";
2
+ import { checkVector } from "../lib/validators.js";
3
+ import { vec2_transformMat4AsVector, vec3_transformMat4AsVector } from "../lib/gl-matrix-extras.js";
4
+ import { fromQuat as mat4_fromQuat, frustum as mat4_frustum, lookAt as mat4_lookAt, ortho as mat4_ortho, perspective as mat4_perspective, determinant as mat4_determinant, transpose as mat4_transpose, invert as mat4_invert, multiply as mat4_multiply, rotateX as mat4_rotateX, rotateY as mat4_rotateY, rotateZ as mat4_rotateZ, rotate as mat4_rotate, scale as mat4_scale, translate as mat4_translate } from "../gl-matrix/mat4.js";
5
+ import { transformMat4 as vec2_transformMat4 } from "../gl-matrix/vec2.js";
6
+ import { transformMat4 as vec3_transformMat4 } from "../gl-matrix/vec3.js";
7
+ import { transformMat4 as vec4_transformMat4 } from "../gl-matrix/vec3.js";
8
8
  var INDICES;
9
9
 
10
10
  (function (INDICES) {
@@ -31,7 +31,7 @@ const DEFAULT_ASPECT = 1;
31
31
  const DEFAULT_NEAR = 0.1;
32
32
  const DEFAULT_FAR = 500;
33
33
  const IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
34
- export default class Matrix4 extends Matrix {
34
+ export class Matrix4 extends Matrix {
35
35
  static get IDENTITY() {
36
36
  return getIdentityMatrix();
37
37
  }
@@ -151,7 +151,7 @@ export default class Matrix4 extends Matrix {
151
151
  }
152
152
 
153
153
  fromQuaternion(quaternion) {
154
- mat4.fromQuat(this, quaternion);
154
+ mat4_fromQuat(this, quaternion);
155
155
  return this.check();
156
156
  }
157
157
 
@@ -168,7 +168,7 @@ export default class Matrix4 extends Matrix {
168
168
  if (far === Infinity) {
169
169
  computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);
170
170
  } else {
171
- mat4.frustum(this, left, right, bottom, top, near, far);
171
+ mat4_frustum(this, left, right, bottom, top, near, far);
172
172
  }
173
173
 
174
174
  return this.check();
@@ -180,7 +180,7 @@ export default class Matrix4 extends Matrix {
180
180
  center = [0, 0, 0],
181
181
  up = [0, 1, 0]
182
182
  } = view;
183
- mat4.lookAt(this, eye, center, up);
183
+ mat4_lookAt(this, eye, center, up);
184
184
  return this.check();
185
185
  }
186
186
 
@@ -193,7 +193,7 @@ export default class Matrix4 extends Matrix {
193
193
  near = DEFAULT_NEAR,
194
194
  far = DEFAULT_FAR
195
195
  } = view;
196
- mat4.ortho(this, left, right, bottom, top, near, far);
196
+ mat4_ortho(this, left, right, bottom, top, near, far);
197
197
  return this.check();
198
198
  }
199
199
 
@@ -227,12 +227,12 @@ export default class Matrix4 extends Matrix {
227
227
  far = 500
228
228
  } = view;
229
229
  checkRadians(fovy);
230
- mat4.perspective(this, fovy, aspect, near, far);
230
+ mat4_perspective(this, fovy, aspect, near, far);
231
231
  return this.check();
232
232
  }
233
233
 
234
234
  determinant() {
235
- return mat4.determinant(this);
235
+ return mat4_determinant(this);
236
236
  }
237
237
 
238
238
  getScale(result = [-0, -0, -0]) {
@@ -295,37 +295,37 @@ export default class Matrix4 extends Matrix {
295
295
  }
296
296
 
297
297
  transpose() {
298
- mat4.transpose(this, this);
298
+ mat4_transpose(this, this);
299
299
  return this.check();
300
300
  }
301
301
 
302
302
  invert() {
303
- mat4.invert(this, this);
303
+ mat4_invert(this, this);
304
304
  return this.check();
305
305
  }
306
306
 
307
307
  multiplyLeft(a) {
308
- mat4.multiply(this, a, this);
308
+ mat4_multiply(this, a, this);
309
309
  return this.check();
310
310
  }
311
311
 
312
312
  multiplyRight(a) {
313
- mat4.multiply(this, this, a);
313
+ mat4_multiply(this, this, a);
314
314
  return this.check();
315
315
  }
316
316
 
317
317
  rotateX(radians) {
318
- mat4.rotateX(this, this, radians);
318
+ mat4_rotateX(this, this, radians);
319
319
  return this.check();
320
320
  }
321
321
 
322
322
  rotateY(radians) {
323
- mat4.rotateY(this, this, radians);
323
+ mat4_rotateY(this, this, radians);
324
324
  return this.check();
325
325
  }
326
326
 
327
327
  rotateZ(radians) {
328
- mat4.rotateZ(this, this, radians);
328
+ mat4_rotateZ(this, this, radians);
329
329
  return this.check();
330
330
  }
331
331
 
@@ -334,23 +334,23 @@ export default class Matrix4 extends Matrix {
334
334
  }
335
335
 
336
336
  rotateAxis(radians, axis) {
337
- mat4.rotate(this, this, radians, axis);
337
+ mat4_rotate(this, this, radians, axis);
338
338
  return this.check();
339
339
  }
340
340
 
341
341
  scale(factor) {
342
- mat4.scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
342
+ mat4_scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
343
343
  return this.check();
344
344
  }
345
345
 
346
346
  translate(vector) {
347
- mat4.translate(this, this, vector);
347
+ mat4_translate(this, this, vector);
348
348
  return this.check();
349
349
  }
350
350
 
351
351
  transform(vector, result) {
352
352
  if (vector.length === 4) {
353
- result = vec4.transformMat4(result || [-0, -0, -0, -0], vector, this);
353
+ result = vec4_transformMat4(result || [-0, -0, -0, -0], vector, this);
354
354
  checkVector(result, 4);
355
355
  return result;
356
356
  }
@@ -366,11 +366,11 @@ export default class Matrix4 extends Matrix {
366
366
 
367
367
  switch (length) {
368
368
  case 2:
369
- out = vec2.transformMat4(result || [-0, -0], vector, this);
369
+ out = vec2_transformMat4(result || [-0, -0], vector, this);
370
370
  break;
371
371
 
372
372
  case 3:
373
- out = vec3.transformMat4(result || [-0, -0, -0], vector, this);
373
+ out = vec3_transformMat4(result || [-0, -0, -0], vector, this);
374
374
  break;
375
375
 
376
376
  default:
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/matrix4.ts"],"names":["Matrix","checkVector","vec2_transformMat4AsVector","vec3_transformMat4AsVector","fromQuat","mat4_fromQuat","frustum","mat4_frustum","lookAt","mat4_lookAt","ortho","mat4_ortho","perspective","mat4_perspective","determinant","mat4_determinant","transpose","mat4_transpose","invert","mat4_invert","multiply","mat4_multiply","rotateX","mat4_rotateX","rotateY","mat4_rotateY","rotateZ","mat4_rotateZ","rotate","mat4_rotate","scale","mat4_scale","translate","mat4_translate","transformMat4","vec2_transformMat4","vec3_transformMat4","vec4_transformMat4","INDICES","DEFAULT_FOVY","Math","PI","DEFAULT_ASPECT","DEFAULT_NEAR","DEFAULT_FAR","IDENTITY_MATRIX","Object","freeze","Matrix4","IDENTITY","getIdentityMatrix","ZERO","getZeroMatrix","ELEMENTS","RANK","constructor","array","arguments","length","Array","isArray","copy","identity","check","set","m00","m10","m20","m30","m01","m11","m21","m31","m02","m12","m22","m32","m03","m13","m23","m33","setRowMajor","toRowMajor","result","fromObject","object","fromQuaternion","quaternion","view","left","right","bottom","top","near","far","Infinity","computeInfinitePerspectiveOffCenter","eye","center","up","orthographic","fovy","aspect","focalDistance","checkRadians","halfY","tan","getScale","sqrt","getTranslation","getRotation","scaleResult","inverseScale0","inverseScale1","inverseScale2","getRotationMatrix3","multiplyLeft","a","multiplyRight","radians","rotateXYZ","angleXYZ","rotateAxis","axis","factor","vector","transform","transformAsPoint","out","Error","transformAsVector","transformPoint","transformVector","transformDirection","makeRotationX","makeTranslation","x","y","z","possiblyDegrees","column0Row0","column1Row1","column2Row0","column2Row1","column2Row2","column2Row3","column3Row2"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\n\nimport {NumericArray} from '@math.gl/types';\nimport {Matrix} from './base/matrix';\nimport {checkVector} from '../lib/validators';\n\n/* eslint-disable camelcase */\nimport {vec2_transformMat4AsVector, vec3_transformMat4AsVector} from '../lib/gl-matrix-extras';\n// @ts-ignore gl-matrix types...\nimport {\n fromQuat as mat4_fromQuat,\n frustum as mat4_frustum,\n lookAt as mat4_lookAt,\n ortho as mat4_ortho,\n perspective as mat4_perspective,\n determinant as mat4_determinant,\n transpose as mat4_transpose,\n invert as mat4_invert,\n multiply as mat4_multiply,\n rotateX as mat4_rotateX,\n rotateY as mat4_rotateY,\n rotateZ as mat4_rotateZ,\n rotate as mat4_rotate,\n scale as mat4_scale,\n translate as mat4_translate\n} from '../gl-matrix/mat4';\nimport {transformMat4 as vec2_transformMat4} from '../gl-matrix/vec2';\nimport {transformMat4 as vec3_transformMat4} from '../gl-matrix/vec3';\nimport {transformMat4 as vec4_transformMat4} from '../gl-matrix/vec3';\n\nenum INDICES {\n COL0ROW0 = 0,\n COL0ROW1 = 1,\n COL0ROW2 = 2,\n COL0ROW3 = 3,\n COL1ROW0 = 4,\n COL1ROW1 = 5,\n COL1ROW2 = 6,\n COL1ROW3 = 7,\n COL2ROW0 = 8,\n COL2ROW1 = 9,\n COL2ROW2 = 10,\n COL2ROW3 = 11,\n COL3ROW0 = 12,\n COL3ROW1 = 13,\n COL3ROW2 = 14,\n COL3ROW3 = 15\n}\n\nconst DEFAULT_FOVY = (45 * Math.PI) / 180;\nconst DEFAULT_ASPECT = 1;\nconst DEFAULT_NEAR = 0.1;\nconst DEFAULT_FAR = 500;\n\nconst IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);\n\n/** 4x4 matrix */\nexport class Matrix4 extends Matrix {\n static get IDENTITY(): Readonly<Matrix4> {\n return getIdentityMatrix();\n }\n\n static get ZERO(): Readonly<Matrix4> {\n return getZeroMatrix();\n }\n\n get ELEMENTS(): number {\n return 16;\n }\n\n get RANK(): number {\n return 4;\n }\n\n get INDICES(): typeof INDICES {\n return INDICES;\n }\n\n constructor(array?: Readonly<NumericArray>) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0);\n if (arguments.length === 1 && Array.isArray(array)) {\n this.copy(array);\n } else {\n this.identity();\n }\n }\n\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n this[4] = array[4];\n this[5] = array[5];\n this[6] = array[6];\n this[7] = array[7];\n this[8] = array[8];\n this[9] = array[9];\n this[10] = array[10];\n this[11] = array[11];\n this[12] = array[12];\n this[13] = array[13];\n this[14] = array[14];\n this[15] = array[15];\n return this.check();\n }\n\n // eslint-disable-next-line max-params\n set(\n m00: number,\n m10: number,\n m20: number,\n m30: number,\n m01: number,\n m11: number,\n m21: number,\n m31: number,\n m02: number,\n m12: number,\n m22: number,\n m32: number,\n m03: number,\n m13: number,\n m23: number,\n m33: number\n ): this {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m30;\n this[4] = m01;\n this[5] = m11;\n this[6] = m21;\n this[7] = m31;\n this[8] = m02;\n this[9] = m12;\n this[10] = m22;\n this[11] = m32;\n this[12] = m03;\n this[13] = m13;\n this[14] = m23;\n this[15] = m33;\n return this.check();\n }\n\n // accepts row major order, stores as column major\n // eslint-disable-next-line max-params\n setRowMajor(\n m00: number,\n m01: number,\n m02: number,\n m03: number,\n m10: number,\n m11: number,\n m12: number,\n m13: number,\n m20: number,\n m21: number,\n m22: number,\n m23: number,\n m30: number,\n m31: number,\n m32: number,\n m33: number\n ): this {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m30;\n this[4] = m01;\n this[5] = m11;\n this[6] = m21;\n this[7] = m31;\n this[8] = m02;\n this[9] = m12;\n this[10] = m22;\n this[11] = m32;\n this[12] = m03;\n this[13] = m13;\n this[14] = m23;\n this[15] = m33;\n return this.check();\n }\n\n toRowMajor(result: NumericArray): NumericArray {\n result[0] = this[0];\n result[1] = this[4];\n result[2] = this[8];\n result[3] = this[12];\n result[4] = this[1];\n result[5] = this[5];\n result[6] = this[9];\n result[7] = this[13];\n result[8] = this[2];\n result[9] = this[6];\n result[10] = this[10];\n result[11] = this[14];\n result[12] = this[3];\n result[13] = this[7];\n result[14] = this[11];\n result[15] = this[15];\n return result;\n }\n\n // Constructors\n\n /** Set to identity matrix */\n identity(): this {\n return this.copy(IDENTITY_MATRIX);\n }\n\n /**\n *\n * @param object\n * @returns self\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fromObject(object: {[key: string]: any}): this {\n return this.check();\n }\n\n /**\n * Calculates a 4x4 matrix from the given quaternion\n * @param quaternion Quaternion to create matrix from\n * @returns self\n */\n fromQuaternion(quaternion: Readonly<NumericArray>): this {\n mat4_fromQuat(this, quaternion);\n return this.check();\n }\n\n /**\n * Generates a frustum matrix with the given bounds\n * @param view.left - Left bound of the frustum\n * @param view.right - Right bound of the frustum\n * @param view.bottom - Bottom bound of the frustum\n * @param view.top - Top bound of the frustum\n * @param view.near - Near bound of the frustum\n * @param view.far - Far bound of the frustum. Can be set to Infinity.\n * @returns self\n */\n frustum(view: {\n left: number;\n right: number;\n bottom: number;\n top: number;\n near: number;\n far?: number;\n }): this {\n const {left, right, bottom, top, near = DEFAULT_NEAR, far = DEFAULT_FAR} = view;\n if (far === Infinity) {\n computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);\n } else {\n mat4_frustum(this, left, right, bottom, top, near, far);\n }\n return this.check();\n }\n\n /**\n * Generates a look-at matrix with the given eye position, focal point,\n * and up axis\n * @param view.eye - (vector) Position of the viewer\n * @param view.center - (vector) Point the viewer is looking at\n * @param view.up - (vector) Up axis\n * @returns self\n */\n lookAt(view: {\n eye: Readonly<NumericArray>;\n center?: Readonly<NumericArray>;\n up?: Readonly<NumericArray>;\n }): this {\n const {eye, center = [0, 0, 0], up = [0, 1, 0]} = view;\n mat4_lookAt(this, eye, center, up);\n return this.check();\n }\n\n /**\n * Generates a orthogonal projection matrix with the given bounds\n * from \"traditional\" view space parameters\n * @param view.left - Left bound of the frustum\n * @param view.right number Right bound of the frustum\n * @param view.bottom - Bottom bound of the frustum\n * @param view.top number Top bound of the frustum\n * @param view.near - Near bound of the frustum\n * @param view.far number Far bound of the frustum\n * @returns self\n */\n ortho(view: {\n left: number;\n right: number;\n bottom: number;\n top: number;\n near?: number;\n far?: number;\n }): this {\n const {left, right, bottom, top, near = DEFAULT_NEAR, far = DEFAULT_FAR} = view;\n mat4_ortho(this, left, right, bottom, top, near, far);\n return this.check();\n }\n\n /**\n * Generates an orthogonal projection matrix with the same parameters\n * as a perspective matrix (plus focalDistance)\n * @param view.fovy Vertical field of view in radians\n * @param view.aspect Aspect ratio. Typically viewport width / viewport height\n * @param view.focalDistance Distance in the view frustum used for extent calculations\n * @param view.near Near bound of the frustum\n * @param view.far Far bound of the frustum\n * @returns self\n */\n orthographic(view: {\n fovy?: number;\n aspect?: number;\n focalDistance?: number;\n near?: number;\n far?: number;\n }): this {\n const {\n fovy = DEFAULT_FOVY,\n aspect = DEFAULT_ASPECT,\n focalDistance = 1,\n near = DEFAULT_NEAR,\n far = DEFAULT_FAR\n } = view;\n\n checkRadians(fovy);\n\n const halfY = fovy / 2;\n const top = focalDistance * Math.tan(halfY); // focus_plane is the distance from the camera\n const right = top * aspect;\n\n return this.ortho({\n left: -right,\n right,\n bottom: -top,\n top,\n near,\n far\n });\n }\n\n /**\n * Generates a perspective projection matrix with the given bounds\n * @param view.fovy Vertical field of view in radians\n * @param view.aspect Aspect ratio. typically viewport width/height\n * @param view.near Near bound of the frustum\n * @param view.far Far bound of the frustum\n * @returns self\n */\n perspective(view: {fovy: number; aspect?: number; near?: number; far?: number}): this {\n const {fovy = (45 * Math.PI) / 180, aspect = 1, near = 0.1, far = 500} = view;\n checkRadians(fovy);\n mat4_perspective(this, fovy, aspect, near, far);\n return this.check();\n }\n\n // Accessors\n\n determinant(): number {\n return mat4_determinant(this);\n }\n\n /**\n * Extracts the non-uniform scale assuming the matrix is an affine transformation.\n * The scales are the \"lengths\" of the column vectors in the upper-left 3x3 matrix.\n * @param result\n * @returns self\n */\n getScale(result: NumericArray = [-0, -0, -0]): NumericArray {\n // explicit is faster than hypot...\n result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);\n result[1] = Math.sqrt(this[4] * this[4] + this[5] * this[5] + this[6] * this[6]);\n result[2] = Math.sqrt(this[8] * this[8] + this[9] * this[9] + this[10] * this[10]);\n // result[0] = Math.hypot(this[0], this[1], this[2]);\n // result[1] = Math.hypot(this[4], this[5], this[6]);\n // result[2] = Math.hypot(this[8], this[9], this[10]);\n return result;\n }\n\n /**\n * Gets the translation portion, assuming the matrix is a affine transformation matrix.\n * @param result\n * @returns self\n */\n getTranslation(result: NumericArray = [-0, -0, -0]): NumericArray {\n result[0] = this[12];\n result[1] = this[13];\n result[2] = this[14];\n return result;\n }\n\n /**\n * Gets upper left 3x3 pure rotation matrix (non-scaling), assume affine transformation matrix\n * @param result\n * @param scaleResult\n * @returns self\n */\n getRotation(result?: NumericArray, scaleResult?: NumericArray): NumericArray {\n result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n scaleResult = scaleResult || [-0, -0, -0];\n const scale = this.getScale(scaleResult);\n const inverseScale0 = 1 / scale[0];\n const inverseScale1 = 1 / scale[1];\n const inverseScale2 = 1 / scale[2];\n result[0] = this[0] * inverseScale0;\n result[1] = this[1] * inverseScale1;\n result[2] = this[2] * inverseScale2;\n result[3] = 0;\n result[4] = this[4] * inverseScale0;\n result[5] = this[5] * inverseScale1;\n result[6] = this[6] * inverseScale2;\n result[7] = 0;\n result[8] = this[8] * inverseScale0;\n result[9] = this[9] * inverseScale1;\n result[10] = this[10] * inverseScale2;\n result[11] = 0;\n result[12] = 0;\n result[13] = 0;\n result[14] = 0;\n result[15] = 1;\n return result;\n }\n\n /**\n *\n * @param result\n * @param scaleResult\n * @returns self\n */\n getRotationMatrix3(result?: NumericArray, scaleResult?: NumericArray): NumericArray {\n result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0];\n scaleResult = scaleResult || [-0, -0, -0];\n const scale = this.getScale(scaleResult);\n const inverseScale0 = 1 / scale[0];\n const inverseScale1 = 1 / scale[1];\n const inverseScale2 = 1 / scale[2];\n result[0] = this[0] * inverseScale0;\n result[1] = this[1] * inverseScale1;\n result[2] = this[2] * inverseScale2;\n result[3] = this[4] * inverseScale0;\n result[4] = this[5] * inverseScale1;\n result[5] = this[6] * inverseScale2;\n result[6] = this[8] * inverseScale0;\n result[7] = this[9] * inverseScale1;\n result[8] = this[10] * inverseScale2;\n return result;\n }\n\n // Modifiers\n\n transpose(): this {\n mat4_transpose(this, this);\n return this.check();\n }\n\n invert(): this {\n mat4_invert(this, this);\n return this.check();\n }\n\n // Operations\n\n multiplyLeft(a: Readonly<NumericArray>): this {\n mat4_multiply(this, a, this);\n return this.check();\n }\n\n multiplyRight(a: Readonly<NumericArray>): this {\n mat4_multiply(this, this, a);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the X axis\n rotateX(radians: number): this {\n mat4_rotateX(this, this, radians);\n // mat4_rotate(this, this, radians, [1, 0, 0]);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the Y axis.\n rotateY(radians: number): this {\n mat4_rotateY(this, this, radians);\n // mat4_rotate(this, this, radians, [0, 1, 0]);\n return this.check();\n }\n\n /**\n * Rotates a matrix by the given angle around the Z axis.\n * @param radians\n * @returns self\n */\n rotateZ(radians: number): this {\n mat4_rotateZ(this, this, radians);\n // mat4_rotate(this, this, radians, [0, 0, 1]);\n return this.check();\n }\n\n /**\n *\n * @param param0\n * @returns self\n */\n rotateXYZ(angleXYZ: Readonly<NumericArray>): this {\n return this.rotateX(angleXYZ[0]).rotateY(angleXYZ[1]).rotateZ(angleXYZ[2]);\n }\n\n /**\n *\n * @param radians\n * @param axis\n * @returns self\n */\n rotateAxis(radians: number, axis: Readonly<NumericArray>): this {\n mat4_rotate(this, this, radians, axis);\n return this.check();\n }\n\n /**\n *\n * @param factor\n * @returns self\n */\n override scale(factor: number | Readonly<NumericArray>): this {\n mat4_scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);\n return this.check();\n }\n\n /**\n *\n * @param vec\n * @returns self\n */\n translate(vector: Readonly<NumericArray>): this {\n mat4_translate(this, this, vector);\n return this.check();\n }\n\n // Transforms\n\n /**\n * Transforms any 2, 3 or 4 element vector. 2 and 3 elements are treated as points\n * @param vector\n * @param result\n * @returns self\n */\n transform(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n if (vector.length === 4) {\n result = vec4_transformMat4(result || [-0, -0, -0, -0], vector, this) as NumericArray;\n checkVector(result, 4);\n return result;\n }\n return this.transformAsPoint(vector, result);\n }\n\n /**\n * Transforms any 2 or 3 element array as point (w implicitly 1)\n * @param vector\n * @param result\n * @returns self\n */\n transformAsPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n const {length} = vector;\n let out: NumericArray;\n switch (length) {\n case 2:\n out = vec2_transformMat4(result || [-0, -0], vector, this) as NumericArray;\n break;\n case 3:\n out = vec3_transformMat4(result || [-0, -0, -0], vector, this) as NumericArray;\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(out, vector.length);\n return out;\n }\n\n /**\n * Transforms any 2 or 3 element array as vector (w implicitly 0)\n * @param vector\n * @param result\n * @returns self\n */\n transformAsVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n let out: NumericArray;\n switch (vector.length) {\n case 2:\n out = vec2_transformMat4AsVector(result || [-0, -0], vector, this);\n break;\n case 3:\n out = vec3_transformMat4AsVector(result || [-0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(out, vector.length);\n return out;\n }\n\n /** @deprecated */\n transformPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transformAsPoint(vector, result);\n }\n\n /** @deprecated */\n transformVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transformAsPoint(vector, result);\n }\n\n /** @deprecated */\n transformDirection(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transformAsVector(vector, result);\n }\n\n // three.js math API compatibility\n\n makeRotationX(radians: number): this {\n return this.identity().rotateX(radians);\n }\n\n makeTranslation(x: number, y: number, z: number): this {\n return this.identity().translate([x, y, z]);\n }\n}\n\n// TODO initializing static members directly is an option, but make sure no tree-shaking issues\nlet ZERO: Matrix4;\nlet IDENTITY: Matrix4;\n\nfunction getZeroMatrix(): Readonly<Matrix4> {\n if (!ZERO) {\n ZERO = new Matrix4([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n Object.freeze(ZERO);\n }\n return ZERO;\n}\n\nfunction getIdentityMatrix(): Matrix4 {\n if (!IDENTITY) {\n IDENTITY = new Matrix4();\n Object.freeze(IDENTITY);\n }\n return IDENTITY;\n}\n\n// HELPER FUNCTIONS\n\nfunction checkRadians(possiblyDegrees: number) {\n if (possiblyDegrees > Math.PI * 2) {\n throw Error('expected radians');\n }\n}\n\n// eslint-disable-next-line max-params\nfunction computeInfinitePerspectiveOffCenter(\n result: NumericArray,\n left: number,\n right: number,\n bottom: number,\n top: number,\n near: number\n): NumericArray {\n const column0Row0 = (2 * near) / (right - left);\n const column1Row1 = (2 * near) / (top - bottom);\n const column2Row0 = (right + left) / (right - left);\n const column2Row1 = (top + bottom) / (top - bottom);\n const column2Row2 = -1;\n const column2Row3 = -1;\n const column3Row2 = -2 * near;\n result[0] = column0Row0;\n result[1] = 0;\n result[2] = 0;\n result[3] = 0;\n result[4] = 0;\n result[5] = column1Row1;\n result[6] = 0;\n result[7] = 0;\n result[8] = column2Row0;\n result[9] = column2Row1;\n result[10] = column2Row2;\n result[11] = column2Row3;\n result[12] = 0;\n result[13] = 0;\n result[14] = column3Row2;\n result[15] = 0;\n return result;\n}\n"],"file":"matrix4.js"}
@@ -1,6 +1,6 @@
1
- import Matrix4 from './matrix4';
2
- import Vector3 from './vector3';
3
- import Euler from './euler';
1
+ import { Matrix4 } from './matrix4';
2
+ import { Vector3 } from './vector3';
3
+ import { Euler } from './euler';
4
4
  import { NumericArray } from '@math.gl/types';
5
5
  declare type PoseOptions = {
6
6
  position?: Readonly<NumericArray>;
@@ -12,7 +12,7 @@ declare type PoseOptions = {
12
12
  pitch?: number;
13
13
  yaw?: number;
14
14
  };
15
- export default class Pose {
15
+ export declare class Pose {
16
16
  readonly position: Vector3;
17
17
  readonly orientation: Euler;
18
18
  constructor({ x, y, z, roll, pitch, yaw, position, orientation }?: PoseOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;gBAEhB,EACV,CAAK,EACL,CAAK,EACL,CAAK,EACL,IAAQ,EACR,KAAS,EACT,GAAO,EACP,QAAQ,EACR,WAAW,EACZ,GAAE,WAAgB;IAcnB,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,WAAW,IAAI,OAAO;IAItB,cAAc,IAAI,KAAK;IAIvB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAO3B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAShC,uBAAuB,IAAI,OAAO;IA8BlC,+BAA+B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAMpD,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAKnD"}
1
+ {"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,qBAAa,IAAI;IACf,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;gBAEhB,EACV,CAAK,EACL,CAAK,EACL,CAAK,EACL,IAAQ,EACR,KAAS,EACT,GAAO,EACP,QAAQ,EACR,WAAW,EACZ,GAAE,WAAgB;IAcnB,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,WAAW,IAAI,OAAO;IAItB,cAAc,IAAI,KAAK;IAIvB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAO3B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAShC,uBAAuB,IAAI,OAAO;IA8BlC,+BAA+B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAMpD,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAKnD"}
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import Matrix4 from './matrix4';
3
- import Vector3 from './vector3';
4
- import Euler from './euler';
5
- export default class Pose {
2
+ import { Matrix4 } from "./matrix4.js";
3
+ import { Vector3 } from "./vector3.js";
4
+ import { Euler } from "./euler.js";
5
+ export class Pose {
6
6
  constructor({
7
7
  x = 0,
8
8
  y = 0,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/pose.ts"],"names":["Matrix4","Vector3","Euler","Pose","constructor","x","y","z","roll","pitch","yaw","position","orientation","Array","isArray","length","RollPitchYaw","value","getPosition","getOrientation","equals","pose","exactEquals","getTransformationMatrix","sr","Math","sin","sp","sw","cr","cos","cp","cw","setRowMajor","getTransformationMatrixFromPose","multiplyRight","invert","getTransformationMatrixToPose"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {Matrix4} from './matrix4';\nimport {Vector3} from './vector3';\nimport {Euler} from './euler';\nimport {NumericArray} from '@math.gl/types';\n\ntype PoseOptions = {\n position?: Readonly<NumericArray>;\n orientation?: Readonly<NumericArray>;\n x?: number;\n y?: number;\n z?: number;\n roll?: number;\n pitch?: number;\n yaw?: number;\n};\n\nexport class Pose {\n readonly position: Vector3;\n readonly orientation: Euler;\n\n constructor({\n x = 0,\n y = 0,\n z = 0,\n roll = 0,\n pitch = 0,\n yaw = 0,\n position,\n orientation\n }: PoseOptions = {}) {\n if (Array.isArray(position) && position.length === 3) {\n this.position = new Vector3(position);\n } else {\n this.position = new Vector3(x, y, z);\n }\n if (Array.isArray(orientation) && orientation.length === 4) {\n // @ts-expect-error\n this.orientation = new Euler(orientation, orientation[3]);\n } else {\n this.orientation = new Euler(roll, pitch, yaw, Euler.RollPitchYaw);\n }\n }\n\n get x(): number {\n return this.position.x;\n }\n\n set x(value: number) {\n this.position.x = value;\n }\n\n get y(): number {\n return this.position.y;\n }\n\n set y(value: number) {\n this.position.y = value;\n }\n\n get z(): number {\n return this.position.z;\n }\n\n set z(value: number) {\n this.position.z = value;\n }\n\n get roll(): number {\n return this.orientation.roll;\n }\n\n set roll(value: number) {\n this.orientation.roll = value;\n }\n\n get pitch(): number {\n return this.orientation.pitch;\n }\n set pitch(value: number) {\n this.orientation.pitch = value;\n }\n\n get yaw(): number {\n return this.orientation.yaw;\n }\n\n set yaw(value: number) {\n this.orientation.yaw = value;\n }\n\n getPosition(): Vector3 {\n return this.position;\n }\n\n getOrientation(): Euler {\n return this.orientation;\n }\n\n equals(pose: Pose): boolean {\n if (!pose) {\n return false;\n }\n return this.position.equals(pose.position) && this.orientation.equals(pose.orientation);\n }\n\n exactEquals(pose: Pose): boolean {\n if (!pose) {\n return false;\n }\n return (\n this.position.exactEquals(pose.position) && this.orientation.exactEquals(pose.orientation)\n );\n }\n\n getTransformationMatrix(): Matrix4 {\n // setup pre computations for the sin/cos of the angles\n const sr = Math.sin(this.roll);\n const sp = Math.sin(this.pitch);\n const sw = Math.sin(this.yaw);\n const cr = Math.cos(this.roll);\n const cp = Math.cos(this.pitch);\n const cw = Math.cos(this.yaw);\n\n // Create matrix\n return new Matrix4().setRowMajor(\n cw * cp, // 0,0\n -sw * cr + cw * sp * sr, // 0,1\n sw * sr + cw * sp * cr, // 0,2\n this.x, // 0,3\n sw * cp, // 1,0\n cw * cr + sw * sp * sr, // 1,1\n -cw * sr + sw * sp * cr, // 1,2\n this.y, // 1,3\n -sp, // 2,0\n cp * sr, // 2,1\n cp * cr, // 2,2\n this.z, // 2,3\n 0,\n 0,\n 0,\n 1\n );\n }\n\n getTransformationMatrixFromPose(pose: Pose): Matrix4 {\n return new Matrix4()\n .multiplyRight(this.getTransformationMatrix())\n .multiplyRight(pose.getTransformationMatrix().invert());\n }\n\n getTransformationMatrixToPose(pose: Pose): Matrix4 {\n return new Matrix4()\n .multiplyRight(pose.getTransformationMatrix())\n .multiplyRight(this.getTransformationMatrix().invert());\n }\n}\n"],"file":"pose.js"}
@@ -1,6 +1,6 @@
1
- import MathArray from './base/math-array';
2
1
  import { NumericArray } from '@math.gl/types';
3
- export default class Quaternion extends MathArray {
2
+ import { MathArray } from './base/math-array';
3
+ export declare class Quaternion extends MathArray {
4
4
  constructor(x?: number | Readonly<NumericArray>, y?: number, z?: number, w?: number);
5
5
  copy(array: Readonly<NumericArray>): this;
6
6
  set(x: number, y: number, z: number, w: number): this;
@@ -1 +1 @@
1
- {"version":3,"file":"quaternion.d.ts","sourceRoot":"","sources":["../../src/classes/quaternion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quaternion.d.ts","sourceRoot":"","sources":["../../src/classes/quaternion.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import MathArray from './base/math-array';
2
- import { checkNumber, checkVector } from '../lib/validators';
3
- import Vector4 from './vector4';
4
- import * as quat from 'gl-matrix/quat';
5
- import * as vec4 from 'gl-matrix/vec4';
1
+ import { MathArray } from "./base/math-array.js";
2
+ import { checkNumber, checkVector } from "../lib/validators.js";
3
+ import { Vector4 } from "./vector4.js";
4
+ import { fromMat3 as quat_fromMat3, setAxisAngle as quat_setAxisAngle, identity as quat_identity, length as quat_length, squaredLength as quat_squaredLength, dot as quat_dot, rotationTo as quat_rotationTo, add as quat_add, calculateW as quat_calculateW, conjugate as quat_conjugate, invert as quat_invert, lerp as quat_lerp, multiply as quat_multiply, rotateX as quat_rotateX, rotateY as quat_rotateY, rotateZ as quat_rotateZ, scale as quat_scale, slerp as quat_slerp } from "../gl-matrix/quat.js";
5
+ import { transformQuat as vec4_transformQuat } from "../gl-matrix/vec4.js";
6
6
  const IDENTITY_QUATERNION = [0, 0, 0, 1];
7
- export default class Quaternion extends MathArray {
7
+ export class Quaternion extends MathArray {
8
8
  constructor(x = 0, y = 0, z = 0, w = 1) {
9
9
  super(-0, -0, -0, -0);
10
10
 
@@ -40,17 +40,17 @@ export default class Quaternion extends MathArray {
40
40
  }
41
41
 
42
42
  fromMatrix3(m) {
43
- quat.fromMat3(this, m);
43
+ quat_fromMat3(this, m);
44
44
  return this.check();
45
45
  }
46
46
 
47
47
  fromAxisRotation(axis, rad) {
48
- quat.setAxisAngle(this, axis, rad);
48
+ quat_setAxisAngle(this, axis, rad);
49
49
  return this.check();
50
50
  }
51
51
 
52
52
  identity() {
53
- quat.identity(this);
53
+ quat_identity(this);
54
54
  return this.check();
55
55
  }
56
56
 
@@ -95,39 +95,39 @@ export default class Quaternion extends MathArray {
95
95
  }
96
96
 
97
97
  len() {
98
- return quat.length(this);
98
+ return quat_length(this);
99
99
  }
100
100
 
101
101
  lengthSquared() {
102
- return quat.squaredLength(this);
102
+ return quat_squaredLength(this);
103
103
  }
104
104
 
105
105
  dot(a) {
106
- return quat.dot(this, a);
106
+ return quat_dot(this, a);
107
107
  }
108
108
 
109
109
  rotationTo(vectorA, vectorB) {
110
- quat.rotationTo(this, vectorA, vectorB);
110
+ quat_rotationTo(this, vectorA, vectorB);
111
111
  return this.check();
112
112
  }
113
113
 
114
114
  add(a) {
115
- quat.add(this, this, a);
115
+ quat_add(this, this, a);
116
116
  return this.check();
117
117
  }
118
118
 
119
119
  calculateW() {
120
- quat.calculateW(this, this);
120
+ quat_calculateW(this, this);
121
121
  return this.check();
122
122
  }
123
123
 
124
124
  conjugate() {
125
- quat.conjugate(this, this);
125
+ quat_conjugate(this, this);
126
126
  return this.check();
127
127
  }
128
128
 
129
129
  invert() {
130
- quat.invert(this, this);
130
+ quat_invert(this, this);
131
131
  return this.check();
132
132
  }
133
133
 
@@ -136,17 +136,17 @@ export default class Quaternion extends MathArray {
136
136
  return this.lerp(this, a, b);
137
137
  }
138
138
 
139
- quat.lerp(this, a, b, t);
139
+ quat_lerp(this, a, b, t);
140
140
  return this.check();
141
141
  }
142
142
 
143
143
  multiplyRight(a) {
144
- quat.multiply(this, this, a);
144
+ quat_multiply(this, this, a);
145
145
  return this.check();
146
146
  }
147
147
 
148
148
  multiplyLeft(a) {
149
- quat.multiply(this, a, this);
149
+ quat_multiply(this, a, this);
150
150
  return this.check();
151
151
  }
152
152
 
@@ -166,22 +166,22 @@ export default class Quaternion extends MathArray {
166
166
  }
167
167
 
168
168
  rotateX(rad) {
169
- quat.rotateX(this, this, rad);
169
+ quat_rotateX(this, this, rad);
170
170
  return this.check();
171
171
  }
172
172
 
173
173
  rotateY(rad) {
174
- quat.rotateY(this, this, rad);
174
+ quat_rotateY(this, this, rad);
175
175
  return this.check();
176
176
  }
177
177
 
178
178
  rotateZ(rad) {
179
- quat.rotateZ(this, this, rad);
179
+ quat_rotateZ(this, this, rad);
180
180
  return this.check();
181
181
  }
182
182
 
183
183
  scale(b) {
184
- quat.scale(this, this, b);
184
+ quat_scale(this, this, b);
185
185
  return this.check();
186
186
  }
187
187
 
@@ -211,12 +211,12 @@ export default class Quaternion extends MathArray {
211
211
  ratio = arg2;
212
212
  }
213
213
 
214
- quat.slerp(this, start, target, ratio);
214
+ quat_slerp(this, start, target, ratio);
215
215
  return this.check();
216
216
  }
217
217
 
218
218
  transformVector4(vector, result = new Vector4()) {
219
- vec4.transformQuat(result, vector, this);
219
+ vec4_transformQuat(result, vector, this);
220
220
  return checkVector(result, 4);
221
221
  }
222
222
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/quaternion.ts"],"names":["MathArray","checkNumber","checkVector","Vector4","fromMat3","quat_fromMat3","setAxisAngle","quat_setAxisAngle","identity","quat_identity","length","quat_length","squaredLength","quat_squaredLength","dot","quat_dot","rotationTo","quat_rotationTo","add","quat_add","calculateW","quat_calculateW","conjugate","quat_conjugate","invert","quat_invert","lerp","quat_lerp","multiply","quat_multiply","rotateX","quat_rotateX","rotateY","quat_rotateY","rotateZ","quat_rotateZ","scale","quat_scale","slerp","quat_slerp","transformQuat","vec4_transformQuat","IDENTITY_QUATERNION","Quaternion","constructor","x","y","z","w","Array","isArray","arguments","copy","set","array","check","fromObject","object","fromMatrix3","m","fromAxisRotation","axis","rad","ELEMENTS","value","len","lengthSquared","a","vectorA","vectorB","b","t","undefined","multiplyRight","multiplyLeft","normalize","l","arg0","arg1","arg2","start","target","ratio","transformVector4","vector","result","lengthSq","setFromAxisAngle","premultiply"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport {MathArray} from './base/math-array';\nimport {checkNumber, checkVector} from '../lib/validators';\nimport {Vector4} from './vector4';\n// @ts-ignore gl-matrix types...\nimport {\n fromMat3 as quat_fromMat3,\n setAxisAngle as quat_setAxisAngle,\n identity as quat_identity,\n length as quat_length,\n squaredLength as quat_squaredLength,\n dot as quat_dot,\n // getAxisAngle as quat_getAxisAngle,\n rotationTo as quat_rotationTo,\n add as quat_add,\n calculateW as quat_calculateW,\n conjugate as quat_conjugate,\n invert as quat_invert,\n lerp as quat_lerp,\n multiply as quat_multiply,\n rotateX as quat_rotateX,\n rotateY as quat_rotateY,\n rotateZ as quat_rotateZ,\n scale as quat_scale,\n slerp as quat_slerp\n} from '../gl-matrix/quat';\n// @ts-ignore gl-matrix types...\nimport {transformQuat as vec4_transformQuat} from '../gl-matrix/vec4';\n\nconst IDENTITY_QUATERNION = [0, 0, 0, 1] as const;\n\nexport class Quaternion extends MathArray {\n constructor(x: number | Readonly<NumericArray> = 0, y = 0, z = 0, w = 1) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0);\n // eslint-disable-next-line prefer-rest-params\n if (Array.isArray(x) && arguments.length === 1) {\n this.copy(x);\n } else {\n this.set(x as number, y, z, w);\n }\n }\n\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n return this.check();\n }\n\n set(x: number, y: number, z: number, w: number): this {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n this[3] = w;\n return this.check();\n }\n\n fromObject(object: {x: number; y: number; z: number; w: number}): this {\n this[0] = object.x;\n this[1] = object.y;\n this[2] = object.z;\n this[3] = object.w;\n return this.check();\n }\n\n /**\n * Creates a quaternion from the given 3x3 rotation matrix.\n * NOTE: The resultant quaternion is not normalized, so you should\n * be sure to renormalize the quaternion yourself where necessary.\n * @param m\n * @returns\n */\n fromMatrix3(m: Readonly<NumericArray>): this {\n quat_fromMat3(this, m);\n return this.check();\n }\n\n fromAxisRotation(axis: Readonly<NumericArray>, rad: number): this {\n quat_setAxisAngle(this, axis, rad);\n return this.check();\n }\n\n /** Set a quat to the identity quaternion */\n identity(): this {\n quat_identity(this);\n return this.check();\n }\n\n // Set the components of a quat to the given values\n // set(i, j, k, l) {\n // quat_set(this, i, j, k, l);\n // return this.check();\n // }\n\n // Sets a quat from the given angle and rotation axis, then returns it.\n setAxisAngle(axis: Readonly<NumericArray>, rad: number): this {\n return this.fromAxisRotation(axis, rad);\n }\n\n // Getters/setters\n get ELEMENTS(): number {\n return 4;\n }\n\n get x(): number {\n return this[0];\n }\n set x(value: number) {\n this[0] = checkNumber(value);\n }\n\n get y(): number {\n return this[1];\n }\n set y(value: number) {\n this[1] = checkNumber(value);\n }\n\n get z(): number {\n return this[2];\n }\n set z(value: number) {\n this[2] = checkNumber(value);\n }\n\n get w(): number {\n return this[3];\n }\n set w(value: number) {\n this[3] = checkNumber(value);\n }\n\n // Calculates the length of a quat\n len(): number {\n return quat_length(this);\n }\n\n // Calculates the squared length of a quat\n lengthSquared(): number {\n return quat_squaredLength(this);\n }\n\n // Calculates the dot product of two quat's\n // @return {Number}\n dot(a: Readonly<NumericArray>): number {\n return quat_dot(this, a);\n }\n\n // Gets the rotation axis and angle for a given quaternion.\n // If a quaternion is created with setAxisAngle, this method will\n // return the same values as providied in the original parameter\n // list OR functionally equivalent values.\n // Example: The quaternion formed by axis [0, 0, 1] and angle -90\n // is the same as the quaternion formed by [0, 0, 1] and 270.\n // This method favors the latter.\n // @return {{[x,y,z], Number}}\n // getAxisAngle() {\n // const axis = [];\n // // const angle = quat_getAxisAngle(axis, this);\n // return {axis, angle};\n // }\n // MODIFIERS\n // Sets a quaternion to represent the shortest rotation from one vector\n // to another. Both vectors are assumed to be unit length.\n rotationTo(vectorA: NumericArray, vectorB: NumericArray): this {\n quat_rotationTo(this, vectorA, vectorB);\n return this.check();\n }\n\n // Sets the specified quaternion with values corresponding to the given axes.\n // Each axis is a vec3 and is expected to be unit length and perpendicular\n // to all other specified axes.\n // setAxes() {\n // Number\n // }\n // Performs a spherical linear interpolation with two control points\n // sqlerp() {\n // Number;\n // }\n // Adds two quat's\n override add(a: Readonly<NumericArray>): this {\n quat_add(this, this, a);\n return this.check();\n }\n\n // Calculates the W component of a quat from the X, Y, and Z components.\n // Any existing W component will be ignored.\n calculateW(): this {\n quat_calculateW(this, this);\n return this.check();\n }\n\n // Calculates the conjugate of a quat If the quaternion is normalized,\n // this function is faster than quat_invert and produces the same result.\n conjugate(): this {\n quat_conjugate(this, this);\n return this.check();\n }\n\n // Calculates the inverse of a quat\n invert(): this {\n quat_invert(this, this);\n return this.check();\n }\n\n // Performs a linear interpolation between two quat's\n override lerp(a: Readonly<NumericArray>, b: Readonly<NumericArray> | number, t?: number): this {\n if (t === undefined) {\n return this.lerp(this, a, b as number);\n }\n quat_lerp(this, a, b as NumericArray, t);\n return this.check();\n }\n\n // Multiplies two quat's\n multiplyRight(a: Readonly<NumericArray>): this {\n quat_multiply(this, this, a);\n return this.check();\n }\n\n multiplyLeft(a: Readonly<NumericArray>): this {\n quat_multiply(this, a, this);\n return this.check();\n }\n\n // Normalize a quat\n normalize(): this {\n // Handle 0 case\n const length = this.len();\n const l = length > 0 ? 1 / length : 0;\n this[0] = this[0] * l;\n this[1] = this[1] * l;\n this[2] = this[2] * l;\n this[3] = this[3] * l;\n // Set to [0, 0, 0, 1] if length is 0\n if (length === 0) {\n this[3] = 1;\n }\n return this.check();\n }\n\n // Rotates a quaternion by the given angle about the X axis\n rotateX(rad: number): this {\n quat_rotateX(this, this, rad);\n return this.check();\n }\n\n // Rotates a quaternion by the given angle about the Y axis\n rotateY(rad: number): this {\n quat_rotateY(this, this, rad);\n return this.check();\n }\n\n // Rotates a quaternion by the given angle about the Z axis\n rotateZ(rad: number): this {\n quat_rotateZ(this, this, rad);\n return this.check();\n }\n\n // Scales a quat by a scalar number\n override scale(b: number): this {\n quat_scale(this, this, b);\n return this.check();\n }\n\n slerp(target: Readonly<NumericArray>, ratio: number): this;\n slerp(start: Readonly<NumericArray>, target: Readonly<NumericArray>, ratio: number): this;\n slerp(params: {\n start: Readonly<NumericArray>;\n target: Readonly<NumericArray>;\n ratio: number;\n }): this;\n\n // Performs a spherical linear interpolation between two quat\n slerp(\n arg0:\n | Readonly<NumericArray>\n | {\n start: Readonly<NumericArray>;\n target: Readonly<NumericArray>;\n ratio: number;\n },\n arg1?: Readonly<NumericArray> | number,\n arg2?: number\n ): this {\n let start: Readonly<NumericArray>;\n let target: Readonly<NumericArray>;\n let ratio: number;\n // eslint-disable-next-line prefer-rest-params\n switch (arguments.length) {\n case 1: // Deprecated signature ({start, target, ratio})\n // eslint-disable-next-line prefer-rest-params\n ({\n start = IDENTITY_QUATERNION,\n target,\n ratio\n } = arg0 as {\n start: Readonly<NumericArray>;\n target: Readonly<NumericArray>;\n ratio: number;\n });\n break;\n case 2: // THREE.js compatibility signature (target, ration)\n start = this; // eslint-disable-line\n target = arg0 as Readonly<NumericArray>;\n ratio = arg1 as number;\n break;\n default:\n // Default signature: (start, target, ratio)\n start = arg0 as Readonly<NumericArray>;\n target = arg1 as Readonly<NumericArray>;\n ratio = arg2;\n }\n quat_slerp(this, start, target, ratio);\n return this.check();\n }\n\n transformVector4(\n vector: Readonly<NumericArray>,\n result: NumericArray = new Vector4()\n ): NumericArray {\n vec4_transformQuat(result, vector, this);\n return checkVector(result, 4);\n }\n\n // THREE.js Math API compatibility\n lengthSq(): number {\n return this.lengthSquared();\n }\n\n setFromAxisAngle(axis: Readonly<NumericArray>, rad: number): this {\n return this.setAxisAngle(axis, rad);\n }\n\n premultiply(a: Readonly<NumericArray>): this {\n return this.multiplyLeft(a);\n }\n\n multiply(a: Readonly<NumericArray>): this {\n return this.multiplyRight(a);\n }\n}\n"],"file":"quaternion.js"}
@@ -1,5 +1,5 @@
1
- import Vector3 from './vector3';
2
1
  import { NumericArray } from '@math.gl/types';
2
+ import { Vector3 } from './vector3';
3
3
  declare type SphericalCoordinatesOptions = {
4
4
  phi?: number;
5
5
  theta?: number;
@@ -17,7 +17,7 @@ declare type FormatOptions = {
17
17
  * The equator starts at positive z.
18
18
  * @link https://en.wikipedia.org/wiki/Spherical_coordinate_system
19
19
  */
20
- export default class SphericalCoordinates {
20
+ export declare class SphericalCoordinates {
21
21
  phi: number;
22
22
  theta: number;
23
23
  radius: number;
@@ -1 +1 @@
1
- {"version":3,"file":"spherical-coordinates.d.ts","sourceRoot":"","sources":["../../src/classes/spherical-coordinates.ts"],"names":[],"mappings":"AAGA,OAAO,OAAO,MAAM,WAAW,CAAC;AAIhC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,aAAK,2BAA2B,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAMF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAYpB;;;;;;;;;;OAUG;gBAES,EACV,GAAO,EACP,KAAS,EACT,MAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAiC,EAClC,GAAE,2BAAgC;IAenC,QAAQ,IAAI,MAAM;IAIlB,YAAY,CAAC,EAAC,UAAkB,EAAC,EAAE,aAAa,GAAG,MAAM;IAMzD,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAQ5C,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAMjD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,EAEpB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAMD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAGD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOrD,KAAK,IAAI,oBAAoB;IAI7B,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAOvC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAO1D,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAS5C,SAAS,IAAI,OAAO;IAOpB,QAAQ,IAAI,IAAI;IAKhB,KAAK,IAAI,IAAI;CAOd"}
1
+ {"version":3,"file":"spherical-coordinates.d.ts","sourceRoot":"","sources":["../../src/classes/spherical-coordinates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAMlC,aAAK,2BAA2B,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAMF;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAYpB;;;;;;;;;;OAUG;gBAES,EACV,GAAO,EACP,KAAS,EACT,MAAU,EACV,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAiC,EAClC,GAAE,2BAAgC;IAenC,QAAQ,IAAI,MAAM;IAIlB,YAAY,CAAC,EAAC,UAAkB,EAAC,EAAE,aAAa,GAAG,MAAM;IAMzD,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAQ5C,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAMjD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,EAEpB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,EAElB;IAMD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAGD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOrD,KAAK,IAAI,oBAAoB;IAI7B,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;IAOvC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAO1D,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAS5C,SAAS,IAAI,OAAO;IAOpB,QAAQ,IAAI,IAAI;IAKhB,KAAK,IAAI,IAAI;CAOd"}
@@ -1,11 +1,11 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import Vector3 from './vector3';
3
- import { formatValue, equals, config } from '../lib/common';
4
- import { degrees, radians, clamp } from '../lib/common';
5
- import * as vec3 from 'gl-matrix/vec3';
2
+ import { Vector3 } from "./vector3.js";
3
+ import { formatValue, equals, config } from "../lib/common.js";
4
+ import { degrees, radians, clamp } from "../lib/common.js";
5
+ import * as vec3 from "../gl-matrix/vec3.js";
6
6
  const EPSILON = 0.000001;
7
7
  const EARTH_RADIUS_METERS = 6371000;
8
- export default class SphericalCoordinates {
8
+ export class SphericalCoordinates {
9
9
  constructor({
10
10
  phi = 0,
11
11
  theta = 0,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/spherical-coordinates.ts"],"names":["Vector3","formatValue","equals","config","degrees","radians","clamp","vec3","EPSILON","EARTH_RADIUS_METERS","SphericalCoordinates","constructor","phi","theta","radius","bearing","pitch","altitude","radiusScale","undefined","check","toString","formatString","printTypes","f","other","exactEquals","v","Math","PI","longitude","latitude","lng","lat","z","set","clone","copy","fromLngLatZ","fromVector3","length","atan2","acos","toVector3","rotateX","rotateZ","makeSafe","max","min","Number","isFinite","Error"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\n// Adaptation of THREE.js Spherical class, under MIT license\nimport {NumericArray} from '@math.gl/types';\nimport {Vector3} from './vector3';\nimport {formatValue, equals, config} from '../lib/common';\nimport {degrees, radians, clamp} from '../lib/common';\n// @ts-ignore gl-matrix types...\nimport * as vec3 from '../gl-matrix/vec3';\n\ntype SphericalCoordinatesOptions = {\n phi?: number;\n theta?: number;\n radius?: number;\n bearing?: number;\n pitch?: number;\n altitude?: number;\n radiusScale?: number;\n};\n\ntype FormatOptions = {\n printTypes?: boolean;\n};\n\n// TODO - import epsilon\nconst EPSILON = 0.000001;\nconst EARTH_RADIUS_METERS = 6371000;\n\n/**\n * The poles (phi) are at the positive and negative y axis.\n * The equator starts at positive z.\n * @link https://en.wikipedia.org/wiki/Spherical_coordinate_system\n */\nexport class SphericalCoordinates {\n phi: number;\n theta: number;\n radius: number;\n radiusScale: number;\n // bearing: number;\n // pitch: number;\n // altitude: number;\n\n // lnglatZ coordinates\n // longitude: number;\n // latitude: number;\n // lng: number;\n // lat: number;\n // z: number;\n\n /**\n * Creates a new SphericalCoordinates object\n * @param options\n * @param [options.phi] =0 - rotation around X (latitude)\n * @param [options.theta] =0 - rotation around Y (longitude)\n * @param [options.radius] =1 - Distance from center\n * @param [options.bearing]\n * @param [options.pitch]\n * @param [options.altitude]\n * @param [options.radiusScale] =1\n */\n // eslint-disable-next-line complexity\n constructor({\n phi = 0,\n theta = 0,\n radius = 1,\n bearing,\n pitch,\n altitude,\n radiusScale = EARTH_RADIUS_METERS\n }: SphericalCoordinatesOptions = {}) {\n this.phi = phi;\n this.theta = theta;\n // TODO - silently accepts illegal 0\n this.radius = radius || altitude || 1; // radial distance from center\n this.radiusScale = radiusScale || 1; // Used by lngLatZ\n if (bearing !== undefined) {\n this.bearing = bearing; // up / down towards top and bottom pole\n }\n if (pitch !== undefined) {\n this.pitch = pitch; // around the equator of the sphere\n }\n this.check();\n }\n\n toString(): string {\n return this.formatString(config);\n }\n\n formatString({printTypes = false}: FormatOptions): string {\n const f = formatValue;\n return `${printTypes ? 'Spherical' : ''}\\\n[rho:${f(this.radius)},theta:${f(this.theta)},phi:${f(this.phi)}]`;\n }\n\n equals(other: SphericalCoordinates): boolean {\n return (\n equals(this.radius, other.radius) &&\n equals(this.theta, other.theta) &&\n equals(this.phi, other.phi)\n );\n }\n\n exactEquals(other: SphericalCoordinates): boolean {\n return this.radius === other.radius && this.theta === other.theta && this.phi === other.phi;\n }\n\n /* eslint-disable brace-style */\n // Cartographic (bearing 0 north, pitch 0 look from above)\n get bearing(): number {\n return 180 - degrees(this.phi);\n }\n\n set bearing(v: number) {\n this.phi = Math.PI - radians(v);\n }\n\n get pitch(): number {\n return degrees(this.theta);\n }\n\n set pitch(v: number) {\n this.theta = radians(v);\n }\n\n // get pitch() { return 90 - degrees(this.phi); }\n // set pitch(v) { this.phi = radians(v) + Math.PI / 2; }\n // get altitude() { return this.radius - 1; } // relative altitude\n // lnglatZ coordinates\n get longitude(): number {\n return degrees(this.phi);\n }\n\n get latitude(): number {\n return degrees(this.theta);\n }\n\n get lng(): number {\n return degrees(this.phi);\n }\n\n get lat(): number {\n return degrees(this.theta);\n }\n\n get z(): number {\n return (this.radius - 1) * this.radiusScale;\n }\n\n /* eslint-enable brace-style */\n set(radius: number, phi: number, theta: number): this {\n this.radius = radius;\n this.phi = phi;\n this.theta = theta;\n return this.check();\n }\n\n clone(): SphericalCoordinates {\n return new SphericalCoordinates().copy(this);\n }\n\n copy(other: SphericalCoordinates): this {\n this.radius = other.radius;\n this.phi = other.phi;\n this.theta = other.theta;\n return this.check();\n }\n\n fromLngLatZ([lng, lat, z]: [number, number, number]): this {\n this.radius = 1 + z / this.radiusScale;\n this.phi = radians(lat);\n this.theta = radians(lng);\n return this.check();\n }\n\n fromVector3(v: Readonly<NumericArray>): this {\n this.radius = vec3.length(v);\n if (this.radius > 0) {\n this.theta = Math.atan2(v[0], v[1]); // equator angle around y-up axis\n this.phi = Math.acos(clamp(v[2] / this.radius, -1, 1)); // polar angle\n }\n return this.check();\n }\n\n toVector3(): Vector3 {\n return new Vector3(0, 0, this.radius)\n .rotateX({radians: this.theta})\n .rotateZ({radians: this.phi});\n }\n\n // restrict phi to be betwee EPS and PI-EPS\n makeSafe(): this {\n this.phi = Math.max(EPSILON, Math.min(Math.PI - EPSILON, this.phi));\n return this;\n }\n\n check(): this {\n // this.makeSafe();\n if (!Number.isFinite(this.phi) || !Number.isFinite(this.theta) || !(this.radius > 0)) {\n throw new Error('SphericalCoordinates: some fields set to invalid numbers');\n }\n return this;\n }\n}\n"],"file":"spherical-coordinates.js"}
@@ -1,10 +1,10 @@
1
- import Vector from './base/vector';
1
+ import { Vector } from './base/vector';
2
2
  import { NumericArray } from '@math.gl/types';
3
3
  /**
4
4
  * Two-element vector class.
5
5
  * Subclass of Array<number>
6
6
  */
7
- export default class Vector2 extends Vector {
7
+ export declare class Vector2 extends Vector {
8
8
  constructor(x?: number | Readonly<NumericArray>, y?: number);
9
9
  set(x: number, y: number): this;
10
10
  copy(array: Readonly<NumericArray>): this;
@@ -1 +1 @@
1
- {"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../../src/classes/vector2.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,eAAe,CAAC;AAMnC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;gBAE7B,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU;IAejE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM/B,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUhD,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;IAQlE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAMvB;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAIhD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKvD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7D,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAI1D"}
1
+ {"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../../src/classes/vector2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAUrC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;gBAErB,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU;IAejE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAM/B,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUvC,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;IAQ3E,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAMvB;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAIhD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKvD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7D,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAI1D"}