@math.gl/core 4.0.0-alpha.1 → 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 (145) hide show
  1. package/dist/classes/base/math-array.d.ts +2 -1
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/classes/base/math-array.js +5 -1
  4. package/dist/classes/base/math-array.js.map +1 -1
  5. package/dist/classes/base/matrix.d.ts +2 -2
  6. package/dist/classes/base/matrix.d.ts.map +1 -1
  7. package/dist/classes/base/matrix.js +2 -2
  8. package/dist/classes/base/matrix.js.map +1 -1
  9. package/dist/classes/base/vector.d.ts +2 -2
  10. package/dist/classes/base/vector.d.ts.map +1 -1
  11. package/dist/classes/base/vector.js +3 -3
  12. package/dist/classes/base/vector.js.map +1 -1
  13. package/dist/classes/euler.d.ts +3 -3
  14. package/dist/classes/euler.d.ts.map +1 -1
  15. package/dist/classes/euler.js +4 -4
  16. package/dist/classes/euler.js.map +1 -1
  17. package/dist/classes/matrix3.d.ts +5 -2
  18. package/dist/classes/matrix3.d.ts.map +1 -1
  19. package/dist/classes/matrix3.js +17 -17
  20. package/dist/classes/matrix3.js.map +1 -1
  21. package/dist/classes/matrix4.d.ts +2 -2
  22. package/dist/classes/matrix4.d.ts.map +1 -1
  23. package/dist/classes/matrix4.js +25 -25
  24. package/dist/classes/matrix4.js.map +1 -1
  25. package/dist/classes/pose.d.ts +5 -5
  26. package/dist/classes/pose.d.ts.map +1 -1
  27. package/dist/classes/pose.js +4 -4
  28. package/dist/classes/pose.js.map +1 -1
  29. package/dist/classes/quaternion.d.ts +2 -2
  30. package/dist/classes/quaternion.d.ts.map +1 -1
  31. package/dist/classes/quaternion.js +25 -25
  32. package/dist/classes/quaternion.js.map +1 -1
  33. package/dist/classes/spherical-coordinates.d.ts +4 -4
  34. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  35. package/dist/classes/spherical-coordinates.js +3 -3
  36. package/dist/classes/spherical-coordinates.js.map +1 -1
  37. package/dist/classes/vector2.d.ts +2 -2
  38. package/dist/classes/vector2.d.ts.map +1 -1
  39. package/dist/classes/vector2.js +7 -7
  40. package/dist/classes/vector2.js.map +1 -1
  41. package/dist/classes/vector3.d.ts +2 -2
  42. package/dist/classes/vector3.d.ts.map +1 -1
  43. package/dist/classes/vector3.js +11 -11
  44. package/dist/classes/vector3.js.map +1 -1
  45. package/dist/classes/vector4.d.ts +3 -3
  46. package/dist/classes/vector4.d.ts.map +1 -1
  47. package/dist/classes/vector4.js +5 -5
  48. package/dist/classes/vector4.js.map +1 -1
  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/gl-matrix/wip/types.d.js.map +1 -0
  95. package/dist/index.cjs +1603 -150
  96. package/dist/index.d.ts +15 -14
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +15 -14
  99. package/dist/index.js.map +1 -1
  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 +1 -1
  103. package/dist/lib/assert.js.map +1 -1
  104. package/dist/lib/common.d.ts +11 -6
  105. package/dist/lib/common.d.ts.map +1 -1
  106. package/dist/lib/common.js +8 -2
  107. package/dist/lib/common.js.map +1 -1
  108. package/dist/lib/math-utils.d.ts +24 -27
  109. package/dist/lib/math-utils.d.ts.map +1 -1
  110. package/dist/lib/math-utils.js +24 -26
  111. package/dist/lib/math-utils.js.map +1 -1
  112. package/dist/lib/validators.js +1 -1
  113. package/dist/lib/validators.js.map +1 -1
  114. package/package.json +3 -4
  115. package/src/classes/base/math-array.ts +6 -2
  116. package/src/classes/base/matrix.ts +6 -3
  117. package/src/classes/base/vector.ts +3 -3
  118. package/src/classes/euler.ts +5 -4
  119. package/src/classes/matrix3.ts +32 -23
  120. package/src/classes/matrix4.ts +45 -31
  121. package/src/classes/pose.ts +4 -4
  122. package/src/classes/quaternion.ts +48 -28
  123. package/src/classes/spherical-coordinates.ts +3 -3
  124. package/src/classes/vector2.ts +13 -10
  125. package/src/classes/vector3.ts +25 -12
  126. package/src/classes/vector4.ts +10 -8
  127. package/src/gl-matrix/common.js +58 -0
  128. package/src/gl-matrix/mat3.js +842 -0
  129. package/src/gl-matrix/mat4.js +2169 -0
  130. package/src/gl-matrix/quat.ts +789 -0
  131. package/src/gl-matrix/vec2.js +629 -0
  132. package/src/gl-matrix/vec3.js +827 -0
  133. package/src/gl-matrix/vec4.js +675 -0
  134. package/src/gl-matrix/wip/index.js +15 -0
  135. package/src/gl-matrix/wip/mat2.js +442 -0
  136. package/src/gl-matrix/wip/mat2d.js +505 -0
  137. package/src/gl-matrix/wip/quat2.ts +886 -0
  138. package/src/gl-matrix/wip/types.d.ts +93 -0
  139. package/src/index.ts +16 -14
  140. package/src/lib/assert.ts +1 -1
  141. package/src/lib/common.ts +29 -13
  142. package/src/lib/math-utils.ts +24 -26
  143. package/src/lib/validators.ts +1 -1
  144. package/dist/docs/README.md +0 -0
  145. package/src/docs/README.md +0 -0
@@ -1 +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 default 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
+ {"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
1
  import { NumericArray } from '@math.gl/types';
2
- import MathArray from './base/math-array';
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.js";
1
+ import { MathArray } from "./base/math-array.js";
2
2
  import { checkNumber, checkVector } from "../lib/validators.js";
3
- import Vector4 from "./vector4.js";
4
- import * as quat from 'gl-matrix/quat';
5
- import * as vec4 from 'gl-matrix/vec4';
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
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/classes/quaternion.ts"],"names":["MathArray","checkNumber","checkVector","Vector4","quat","vec4","IDENTITY_QUATERNION","Quaternion","constructor","x","y","z","w","Array","isArray","arguments","length","copy","set","array","check","fromObject","object","fromMatrix3","m","fromMat3","fromAxisRotation","axis","rad","setAxisAngle","identity","ELEMENTS","value","len","lengthSquared","squaredLength","dot","a","rotationTo","vectorA","vectorB","add","calculateW","conjugate","invert","lerp","b","t","undefined","multiplyRight","multiply","multiplyLeft","normalize","l","rotateX","rotateY","rotateZ","scale","slerp","arg0","arg1","arg2","start","target","ratio","transformVector4","vector","result","transformQuat","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 * as quat from 'gl-matrix/quat';\n// @ts-ignore gl-matrix types...\nimport * as vec4 from 'gl-matrix/vec4';\n\nconst IDENTITY_QUATERNION = [0, 0, 0, 1] as const;\n\nexport default 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.inverse 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
+ {"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,6 +1,6 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import Vector3 from './vector3';
3
- type SphericalCoordinatesOptions = {
2
+ import { Vector3 } from './vector3';
3
+ declare type SphericalCoordinatesOptions = {
4
4
  phi?: number;
5
5
  theta?: number;
6
6
  radius?: number;
@@ -9,7 +9,7 @@ type SphericalCoordinatesOptions = {
9
9
  altitude?: number;
10
10
  radiusScale?: number;
11
11
  };
12
- type FormatOptions = {
12
+ declare type FormatOptions = {
13
13
  printTypes?: boolean;
14
14
  };
15
15
  /**
@@ -17,7 +17,7 @@ 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,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAMhC,KAAK,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,KAAK,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.js";
2
+ import { Vector3 } from "./vector3.js";
3
3
  import { formatValue, equals, config } from "../lib/common.js";
4
4
  import { degrees, radians, clamp } from "../lib/common.js";
5
- import * as vec3 from 'gl-matrix/vec3';
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,
@@ -1 +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 default 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
+ {"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;AAOnC,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"}
@@ -1,9 +1,9 @@
1
- import Vector from "./base/vector.js";
1
+ import { Vector } from "./base/vector.js";
2
2
  import { config, isArray } from "../lib/common.js";
3
3
  import { checkNumber } from "../lib/validators.js";
4
- import * as vec2 from 'gl-matrix/vec2';
4
+ import { transformMat4 as vec2_transformMat4, transformMat3 as vec2_transformMat3, transformMat2d as vec2_transformMat2d, transformMat2 as vec2_transformMat2 } from "../gl-matrix/vec2.js";
5
5
  import { vec2_transformMat4AsVector } from "../lib/gl-matrix-extras.js";
6
- export default class Vector2 extends Vector {
6
+ export class Vector2 extends Vector {
7
7
  constructor(x = 0, y = 0) {
8
8
  super(2);
9
9
 
@@ -66,7 +66,7 @@ export default class Vector2 extends Vector {
66
66
  }
67
67
 
68
68
  transformAsPoint(matrix4) {
69
- vec2.transformMat4(this, this, matrix4);
69
+ vec2_transformMat4(this, this, matrix4);
70
70
  return this.check();
71
71
  }
72
72
 
@@ -76,17 +76,17 @@ export default class Vector2 extends Vector {
76
76
  }
77
77
 
78
78
  transformByMatrix3(matrix3) {
79
- vec2.transformMat3(this, this, matrix3);
79
+ vec2_transformMat3(this, this, matrix3);
80
80
  return this.check();
81
81
  }
82
82
 
83
83
  transformByMatrix2x3(matrix2x3) {
84
- vec2.transformMat2d(this, this, matrix2x3);
84
+ vec2_transformMat2d(this, this, matrix2x3);
85
85
  return this.check();
86
86
  }
87
87
 
88
88
  transformByMatrix2(matrix2) {
89
- vec2.transformMat2(this, this, matrix2);
89
+ vec2_transformMat2(this, this, matrix2);
90
90
  return this.check();
91
91
  }
92
92
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/classes/vector2.ts"],"names":["Vector","config","isArray","checkNumber","vec2","vec2_transformMat4AsVector","Vector2","constructor","x","y","arguments","length","copy","debug","set","check","array","fromObject","object","toObject","ELEMENTS","horizontalAngle","Math","atan2","verticalAngle","transform","matrix4","transformAsPoint","transformMat4","transformAsVector","transformByMatrix3","matrix3","transformMat3","transformByMatrix2x3","matrix2x3","transformMat2d","transformByMatrix2","matrix2","transformMat2"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport Vector from './base/vector';\nimport {config, isArray} from '../lib/common';\nimport {checkNumber} from '../lib/validators';\n// @ts-ignore gl-matrix types...\nimport * as vec2 from 'gl-matrix/vec2';\n/* eslint-disable camelcase */\nimport {vec2_transformMat4AsVector} from '../lib/gl-matrix-extras';\nimport {NumericArray} from '@math.gl/types';\n\n/**\n * Two-element vector class.\n * Subclass of Array<number>\n */\nexport default class Vector2 extends Vector {\n // Creates a new, empty vec2\n constructor(x: number | Readonly<NumericArray> = 0, y: number = 0) {\n // PERF NOTE: initialize elements as double precision numbers\n super(2); // -0, -0);\n if (isArray(x) && arguments.length === 1) {\n this.copy(x as Readonly<NumericArray>);\n } else {\n if (config.debug) {\n checkNumber(x);\n checkNumber(y);\n }\n this[0] = x as number;\n this[1] = y;\n }\n }\n\n set(x: number, y: number): this {\n this[0] = x;\n this[1] = y;\n return this.check();\n }\n\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n return this.check();\n }\n\n fromObject(object: {x: number; y: number}): this {\n if (config.debug) {\n checkNumber(object.x);\n checkNumber(object.y);\n }\n this[0] = object.x;\n this[1] = object.y;\n return this.check();\n }\n\n toObject(object: {x?: number; y?: number}): {x: number; y: number} {\n object.x = this[0];\n object.y = this[1];\n return object as {x: number; y: number};\n }\n\n // Getters/setters\n\n get ELEMENTS(): number {\n return 2;\n }\n\n /**\n * Returns angle from x axis\n * @returns\n */\n horizontalAngle(): number {\n return Math.atan2(this.y, this.x);\n }\n\n /**\n * Returns angle from y axis\n * @returns\n */\n verticalAngle(): number {\n return Math.atan2(this.x, this.y);\n }\n\n // Transforms\n\n /**\n * Transforms as point\n * @param matrix4\n * @returns\n */\n transform(matrix4: Readonly<NumericArray>): this {\n return this.transformAsPoint(matrix4);\n }\n\n /**\n * transforms as point (4th component is implicitly 1)\n * @param matrix4\n * @returns\n */\n transformAsPoint(matrix4: Readonly<NumericArray>): this {\n vec2.transformMat4(this, this, matrix4);\n return this.check();\n }\n\n /**\n * transforms as vector (4th component is implicitly 0, ignores translation. slightly faster)\n * @param matrix4\n * @returns\n */\n transformAsVector(matrix4: Readonly<NumericArray>): this {\n vec2_transformMat4AsVector(this, this, matrix4);\n return this.check();\n }\n\n transformByMatrix3(matrix3: Readonly<NumericArray>): this {\n vec2.transformMat3(this, this, matrix3);\n return this.check();\n }\n\n transformByMatrix2x3(matrix2x3: Readonly<NumericArray>): this {\n vec2.transformMat2d(this, this, matrix2x3);\n return this.check();\n }\n\n transformByMatrix2(matrix2: Readonly<NumericArray>): this {\n vec2.transformMat2(this, this, matrix2);\n return this.check();\n }\n}\n"],"file":"vector2.js"}
1
+ {"version":3,"sources":["../../src/classes/vector2.ts"],"names":["Vector","config","isArray","checkNumber","transformMat4","vec2_transformMat4","transformMat3","vec2_transformMat3","transformMat2d","vec2_transformMat2d","transformMat2","vec2_transformMat2","vec2_transformMat4AsVector","Vector2","constructor","x","y","arguments","length","copy","debug","set","check","array","fromObject","object","toObject","ELEMENTS","horizontalAngle","Math","atan2","verticalAngle","transform","matrix4","transformAsPoint","transformAsVector","transformByMatrix3","matrix3","transformByMatrix2x3","matrix2x3","transformByMatrix2","matrix2"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {Vector} from './base/vector';\nimport {config, isArray} from '../lib/common';\nimport {checkNumber} from '../lib/validators';\nimport {\n transformMat4 as vec2_transformMat4,\n transformMat3 as vec2_transformMat3,\n transformMat2d as vec2_transformMat2d,\n transformMat2 as vec2_transformMat2\n} from '../gl-matrix/vec2';\nimport {vec2_transformMat4AsVector} from '../lib/gl-matrix-extras';\nimport {NumericArray} from '@math.gl/types';\n\n/**\n * Two-element vector class.\n * Subclass of Array<number>\n */\nexport class Vector2 extends Vector {\n // Creates a new, empty vec2\n constructor(x: number | Readonly<NumericArray> = 0, y: number = 0) {\n // PERF NOTE: initialize elements as double precision numbers\n super(2); // -0, -0);\n if (isArray(x) && arguments.length === 1) {\n this.copy(x as Readonly<NumericArray>);\n } else {\n if (config.debug) {\n checkNumber(x);\n checkNumber(y);\n }\n this[0] = x as number;\n this[1] = y;\n }\n }\n\n set(x: number, y: number): this {\n this[0] = x;\n this[1] = y;\n return this.check();\n }\n\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n return this.check();\n }\n\n fromObject(object: {x: number; y: number}): this {\n if (config.debug) {\n checkNumber(object.x);\n checkNumber(object.y);\n }\n this[0] = object.x;\n this[1] = object.y;\n return this.check();\n }\n\n override toObject(object: {x?: number; y?: number}): {x: number; y: number} {\n object.x = this[0];\n object.y = this[1];\n return object as {x: number; y: number};\n }\n\n // Getters/setters\n\n get ELEMENTS(): number {\n return 2;\n }\n\n /**\n * Returns angle from x axis\n * @returns\n */\n horizontalAngle(): number {\n return Math.atan2(this.y, this.x);\n }\n\n /**\n * Returns angle from y axis\n * @returns\n */\n verticalAngle(): number {\n return Math.atan2(this.x, this.y);\n }\n\n // Transforms\n\n /**\n * Transforms as point\n * @param matrix4\n * @returns\n */\n transform(matrix4: Readonly<NumericArray>): this {\n return this.transformAsPoint(matrix4);\n }\n\n /**\n * transforms as point (4th component is implicitly 1)\n * @param matrix4\n * @returns\n */\n transformAsPoint(matrix4: Readonly<NumericArray>): this {\n vec2_transformMat4(this, this, matrix4);\n return this.check();\n }\n\n /**\n * transforms as vector (4th component is implicitly 0, ignores translation. slightly faster)\n * @param matrix4\n * @returns\n */\n transformAsVector(matrix4: Readonly<NumericArray>): this {\n vec2_transformMat4AsVector(this, this, matrix4);\n return this.check();\n }\n\n transformByMatrix3(matrix3: Readonly<NumericArray>): this {\n vec2_transformMat3(this, this, matrix3);\n return this.check();\n }\n\n transformByMatrix2x3(matrix2x3: Readonly<NumericArray>): this {\n vec2_transformMat2d(this, this, matrix2x3);\n return this.check();\n }\n\n transformByMatrix2(matrix2: Readonly<NumericArray>): this {\n vec2_transformMat2(this, this, matrix2);\n return this.check();\n }\n}\n"],"file":"vector2.js"}
@@ -1,10 +1,10 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import Vector from './base/vector';
2
+ import { Vector } from './base/vector';
3
3
  /**
4
4
  * Three-element vector class.
5
5
  * Subclass of Array<number>
6
6
  */
7
- export default class Vector3 extends Vector {
7
+ export declare class Vector3 extends Vector {
8
8
  static get ZERO(): Vector3;
9
9
  /**
10
10
  * @class
@@ -1 +1 @@
1
- {"version":3,"file":"vector3.d.ts","sourceRoot":"","sources":["../../src/classes/vector3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,MAAM,MAAM,eAAe,CAAC;AAYnC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IACzC,MAAM,KAAK,IAAI,IAAI,OAAO,CAMzB;IAED;;;;;OAKG;gBACS,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAmBhF,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1C,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAY3D,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;IASzF,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAID,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAM7C,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK3C,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAQ7F,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKhD,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMvD,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAIhE"}
1
+ {"version":3,"file":"vector3.d.ts","sourceRoot":"","sources":["../../src/classes/vector3.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAqBrC;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;IACjC,MAAM,KAAK,IAAI,IAAI,OAAO,CAMzB;IAED;;;;;OAKG;gBACS,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAmBhF,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1C,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAYlD,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG;QAC/D,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX;IASD,IAAI,QAAQ,IAAI,MAAM,CAErB;IACD,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAID,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAM7C,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK3C,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAK7F,OAAO,CAAC,EAAC,OAAO,EAAE,MAAe,EAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;KAAC,GAAG,IAAI;IAQ7F,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKhD,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAMvD,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKzD,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAIhE"}
@@ -1,11 +1,11 @@
1
- import Vector from "./base/vector.js";
1
+ import { Vector } from "./base/vector.js";
2
2
  import { config, isArray } from "../lib/common.js";
3
3
  import { checkNumber } from "../lib/validators.js";
4
- import * as vec3 from 'gl-matrix/vec3';
4
+ import { angle as vec3_angle, cross as vec3_cross, rotateX as vec3_rotateX, rotateY as vec3_rotateY, rotateZ as vec3_rotateZ, transformMat4 as vec3_transformMat4, transformMat3 as vec3_transformMat3, transformQuat as vec3_transformQuat } from "../gl-matrix/vec3.js";
5
5
  import { vec3_transformMat2, vec3_transformMat4AsVector } from "../lib/gl-matrix-extras.js";
6
6
  const ORIGIN = [0, 0, 0];
7
7
  let ZERO;
8
- export default class Vector3 extends Vector {
8
+ export class Vector3 extends Vector {
9
9
  static get ZERO() {
10
10
  if (!ZERO) {
11
11
  ZERO = new Vector3(0, 0, 0);
@@ -80,11 +80,11 @@ export default class Vector3 extends Vector {
80
80
  }
81
81
 
82
82
  angle(vector) {
83
- return vec3.angle(this, vector);
83
+ return vec3_angle(this, vector);
84
84
  }
85
85
 
86
86
  cross(vector) {
87
- vec3.cross(this, this, vector);
87
+ vec3_cross(this, this, vector);
88
88
  return this.check();
89
89
  }
90
90
 
@@ -92,7 +92,7 @@ export default class Vector3 extends Vector {
92
92
  radians,
93
93
  origin = ORIGIN
94
94
  }) {
95
- vec3.rotateX(this, this, origin, radians);
95
+ vec3_rotateX(this, this, origin, radians);
96
96
  return this.check();
97
97
  }
98
98
 
@@ -100,7 +100,7 @@ export default class Vector3 extends Vector {
100
100
  radians,
101
101
  origin = ORIGIN
102
102
  }) {
103
- vec3.rotateY(this, this, origin, radians);
103
+ vec3_rotateY(this, this, origin, radians);
104
104
  return this.check();
105
105
  }
106
106
 
@@ -108,7 +108,7 @@ export default class Vector3 extends Vector {
108
108
  radians,
109
109
  origin = ORIGIN
110
110
  }) {
111
- vec3.rotateZ(this, this, origin, radians);
111
+ vec3_rotateZ(this, this, origin, radians);
112
112
  return this.check();
113
113
  }
114
114
 
@@ -117,7 +117,7 @@ export default class Vector3 extends Vector {
117
117
  }
118
118
 
119
119
  transformAsPoint(matrix4) {
120
- vec3.transformMat4(this, this, matrix4);
120
+ vec3_transformMat4(this, this, matrix4);
121
121
  return this.check();
122
122
  }
123
123
 
@@ -127,7 +127,7 @@ export default class Vector3 extends Vector {
127
127
  }
128
128
 
129
129
  transformByMatrix3(matrix3) {
130
- vec3.transformMat3(this, this, matrix3);
130
+ vec3_transformMat3(this, this, matrix3);
131
131
  return this.check();
132
132
  }
133
133
 
@@ -137,7 +137,7 @@ export default class Vector3 extends Vector {
137
137
  }
138
138
 
139
139
  transformByQuaternion(quaternion) {
140
- vec3.transformQuat(this, this, quaternion);
140
+ vec3_transformQuat(this, this, quaternion);
141
141
  return this.check();
142
142
  }
143
143