@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,159 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _matrix = _interopRequireDefault(require("./matrix4"));
17
-
18
- var _vector = _interopRequireDefault(require("./vector3"));
19
-
20
- var _euler = _interopRequireDefault(require("./euler"));
21
-
22
- var Pose = function () {
23
- function Pose() {
24
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
25
- _ref$x = _ref.x,
26
- x = _ref$x === void 0 ? 0 : _ref$x,
27
- _ref$y = _ref.y,
28
- y = _ref$y === void 0 ? 0 : _ref$y,
29
- _ref$z = _ref.z,
30
- z = _ref$z === void 0 ? 0 : _ref$z,
31
- _ref$roll = _ref.roll,
32
- roll = _ref$roll === void 0 ? 0 : _ref$roll,
33
- _ref$pitch = _ref.pitch,
34
- pitch = _ref$pitch === void 0 ? 0 : _ref$pitch,
35
- _ref$yaw = _ref.yaw,
36
- yaw = _ref$yaw === void 0 ? 0 : _ref$yaw,
37
- position = _ref.position,
38
- orientation = _ref.orientation;
39
-
40
- (0, _classCallCheck2.default)(this, Pose);
41
- (0, _defineProperty2.default)(this, "position", void 0);
42
- (0, _defineProperty2.default)(this, "orientation", void 0);
43
-
44
- if (Array.isArray(position) && position.length === 3) {
45
- this.position = new _vector.default(position);
46
- } else {
47
- this.position = new _vector.default(x, y, z);
48
- }
49
-
50
- if (Array.isArray(orientation) && orientation.length === 4) {
51
- this.orientation = new _euler.default(orientation, orientation[3]);
52
- } else {
53
- this.orientation = new _euler.default(roll, pitch, yaw, _euler.default.RollPitchYaw);
54
- }
55
- }
56
-
57
- (0, _createClass2.default)(Pose, [{
58
- key: "x",
59
- get: function get() {
60
- return this.position.x;
61
- },
62
- set: function set(value) {
63
- this.position.x = value;
64
- }
65
- }, {
66
- key: "y",
67
- get: function get() {
68
- return this.position.y;
69
- },
70
- set: function set(value) {
71
- this.position.y = value;
72
- }
73
- }, {
74
- key: "z",
75
- get: function get() {
76
- return this.position.z;
77
- },
78
- set: function set(value) {
79
- this.position.z = value;
80
- }
81
- }, {
82
- key: "roll",
83
- get: function get() {
84
- return this.orientation.roll;
85
- },
86
- set: function set(value) {
87
- this.orientation.roll = value;
88
- }
89
- }, {
90
- key: "pitch",
91
- get: function get() {
92
- return this.orientation.pitch;
93
- },
94
- set: function set(value) {
95
- this.orientation.pitch = value;
96
- }
97
- }, {
98
- key: "yaw",
99
- get: function get() {
100
- return this.orientation.yaw;
101
- },
102
- set: function set(value) {
103
- this.orientation.yaw = value;
104
- }
105
- }, {
106
- key: "getPosition",
107
- value: function getPosition() {
108
- return this.position;
109
- }
110
- }, {
111
- key: "getOrientation",
112
- value: function getOrientation() {
113
- return this.orientation;
114
- }
115
- }, {
116
- key: "equals",
117
- value: function equals(pose) {
118
- if (!pose) {
119
- return false;
120
- }
121
-
122
- return this.position.equals(pose.position) && this.orientation.equals(pose.orientation);
123
- }
124
- }, {
125
- key: "exactEquals",
126
- value: function exactEquals(pose) {
127
- if (!pose) {
128
- return false;
129
- }
130
-
131
- return this.position.exactEquals(pose.position) && this.orientation.exactEquals(pose.orientation);
132
- }
133
- }, {
134
- key: "getTransformationMatrix",
135
- value: function getTransformationMatrix() {
136
- var sr = Math.sin(this.roll);
137
- var sp = Math.sin(this.pitch);
138
- var sw = Math.sin(this.yaw);
139
- var cr = Math.cos(this.roll);
140
- var cp = Math.cos(this.pitch);
141
- var cw = Math.cos(this.yaw);
142
- return new _matrix.default().setRowMajor(cw * cp, -sw * cr + cw * sp * sr, sw * sr + cw * sp * cr, this.x, sw * cp, cw * cr + sw * sp * sr, -cw * sr + sw * sp * cr, this.y, -sp, cp * sr, cp * cr, this.z, 0, 0, 0, 1);
143
- }
144
- }, {
145
- key: "getTransformationMatrixFromPose",
146
- value: function getTransformationMatrixFromPose(pose) {
147
- return new _matrix.default().multiplyRight(this.getTransformationMatrix()).multiplyRight(pose.getTransformationMatrix().invert());
148
- }
149
- }, {
150
- key: "getTransformationMatrixToPose",
151
- value: function getTransformationMatrixToPose(pose) {
152
- return new _matrix.default().multiplyRight(pose.getTransformationMatrix()).multiplyRight(this.getTransformationMatrix().invert());
153
- }
154
- }]);
155
- return Pose;
156
- }();
157
-
158
- exports.default = Pose;
159
- //# sourceMappingURL=pose.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/classes/pose.ts"],"names":["Pose","x","y","z","roll","pitch","yaw","position","orientation","Array","isArray","length","Vector3","Euler","RollPitchYaw","value","pose","equals","exactEquals","sr","Math","sin","sp","sw","cr","cos","cp","cw","Matrix4","setRowMajor","multiplyRight","getTransformationMatrix","invert"],"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,323 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _mathArray = _interopRequireDefault(require("./base/math-array"));
23
-
24
- var _validators = require("../lib/validators");
25
-
26
- var _vector = _interopRequireDefault(require("./vector4"));
27
-
28
- var quat = _interopRequireWildcard(require("gl-matrix/quat"));
29
-
30
- var vec4 = _interopRequireWildcard(require("gl-matrix/vec4"));
31
-
32
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
-
34
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
-
40
- var IDENTITY_QUATERNION = [0, 0, 0, 1];
41
-
42
- var Quaternion = function (_MathArray) {
43
- (0, _inherits2.default)(Quaternion, _MathArray);
44
-
45
- var _super = _createSuper(Quaternion);
46
-
47
- function Quaternion() {
48
- var _this;
49
-
50
- var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
51
- var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
52
- var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
53
- var w = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
54
- (0, _classCallCheck2.default)(this, Quaternion);
55
- _this = _super.call(this, -0, -0, -0, -0);
56
-
57
- if (Array.isArray(x) && arguments.length === 1) {
58
- _this.copy(x);
59
- } else {
60
- _this.set(x, y, z, w);
61
- }
62
-
63
- return _this;
64
- }
65
-
66
- (0, _createClass2.default)(Quaternion, [{
67
- key: "copy",
68
- value: function copy(array) {
69
- this[0] = array[0];
70
- this[1] = array[1];
71
- this[2] = array[2];
72
- this[3] = array[3];
73
- return this.check();
74
- }
75
- }, {
76
- key: "set",
77
- value: function set(x, y, z, w) {
78
- this[0] = x;
79
- this[1] = y;
80
- this[2] = z;
81
- this[3] = w;
82
- return this.check();
83
- }
84
- }, {
85
- key: "fromObject",
86
- value: function fromObject(object) {
87
- this[0] = object.x;
88
- this[1] = object.y;
89
- this[2] = object.z;
90
- this[3] = object.w;
91
- return this.check();
92
- }
93
- }, {
94
- key: "fromMatrix3",
95
- value: function fromMatrix3(m) {
96
- quat.fromMat3(this, m);
97
- return this.check();
98
- }
99
- }, {
100
- key: "fromAxisRotation",
101
- value: function fromAxisRotation(axis, rad) {
102
- quat.setAxisAngle(this, axis, rad);
103
- return this.check();
104
- }
105
- }, {
106
- key: "identity",
107
- value: function identity() {
108
- quat.identity(this);
109
- return this.check();
110
- }
111
- }, {
112
- key: "setAxisAngle",
113
- value: function setAxisAngle(axis, rad) {
114
- return this.fromAxisRotation(axis, rad);
115
- }
116
- }, {
117
- key: "ELEMENTS",
118
- get: function get() {
119
- return 4;
120
- }
121
- }, {
122
- key: "x",
123
- get: function get() {
124
- return this[0];
125
- },
126
- set: function set(value) {
127
- this[0] = (0, _validators.checkNumber)(value);
128
- }
129
- }, {
130
- key: "y",
131
- get: function get() {
132
- return this[1];
133
- },
134
- set: function set(value) {
135
- this[1] = (0, _validators.checkNumber)(value);
136
- }
137
- }, {
138
- key: "z",
139
- get: function get() {
140
- return this[2];
141
- },
142
- set: function set(value) {
143
- this[2] = (0, _validators.checkNumber)(value);
144
- }
145
- }, {
146
- key: "w",
147
- get: function get() {
148
- return this[3];
149
- },
150
- set: function set(value) {
151
- this[3] = (0, _validators.checkNumber)(value);
152
- }
153
- }, {
154
- key: "len",
155
- value: function len() {
156
- return quat.length(this);
157
- }
158
- }, {
159
- key: "lengthSquared",
160
- value: function lengthSquared() {
161
- return quat.squaredLength(this);
162
- }
163
- }, {
164
- key: "dot",
165
- value: function dot(a) {
166
- return quat.dot(this, a);
167
- }
168
- }, {
169
- key: "rotationTo",
170
- value: function rotationTo(vectorA, vectorB) {
171
- quat.rotationTo(this, vectorA, vectorB);
172
- return this.check();
173
- }
174
- }, {
175
- key: "add",
176
- value: function add(a) {
177
- quat.add(this, this, a);
178
- return this.check();
179
- }
180
- }, {
181
- key: "calculateW",
182
- value: function calculateW() {
183
- quat.calculateW(this, this);
184
- return this.check();
185
- }
186
- }, {
187
- key: "conjugate",
188
- value: function conjugate() {
189
- quat.conjugate(this, this);
190
- return this.check();
191
- }
192
- }, {
193
- key: "invert",
194
- value: function invert() {
195
- quat.invert(this, this);
196
- return this.check();
197
- }
198
- }, {
199
- key: "lerp",
200
- value: function lerp(a, b, t) {
201
- if (t === undefined) {
202
- return this.lerp(this, a, b);
203
- }
204
-
205
- quat.lerp(this, a, b, t);
206
- return this.check();
207
- }
208
- }, {
209
- key: "multiplyRight",
210
- value: function multiplyRight(a) {
211
- quat.multiply(this, this, a);
212
- return this.check();
213
- }
214
- }, {
215
- key: "multiplyLeft",
216
- value: function multiplyLeft(a) {
217
- quat.multiply(this, a, this);
218
- return this.check();
219
- }
220
- }, {
221
- key: "normalize",
222
- value: function normalize() {
223
- var length = this.len();
224
- var l = length > 0 ? 1 / length : 0;
225
- this[0] = this[0] * l;
226
- this[1] = this[1] * l;
227
- this[2] = this[2] * l;
228
- this[3] = this[3] * l;
229
-
230
- if (length === 0) {
231
- this[3] = 1;
232
- }
233
-
234
- return this.check();
235
- }
236
- }, {
237
- key: "rotateX",
238
- value: function rotateX(rad) {
239
- quat.rotateX(this, this, rad);
240
- return this.check();
241
- }
242
- }, {
243
- key: "rotateY",
244
- value: function rotateY(rad) {
245
- quat.rotateY(this, this, rad);
246
- return this.check();
247
- }
248
- }, {
249
- key: "rotateZ",
250
- value: function rotateZ(rad) {
251
- quat.rotateZ(this, this, rad);
252
- return this.check();
253
- }
254
- }, {
255
- key: "scale",
256
- value: function scale(b) {
257
- quat.scale(this, this, b);
258
- return this.check();
259
- }
260
- }, {
261
- key: "slerp",
262
- value: function slerp(arg0, arg1, arg2) {
263
- var start;
264
- var target;
265
- var ratio;
266
-
267
- switch (arguments.length) {
268
- case 1:
269
- var _ref = arg0;
270
- var _ref$start = _ref.start;
271
- start = _ref$start === void 0 ? IDENTITY_QUATERNION : _ref$start;
272
- target = _ref.target;
273
- ratio = _ref.ratio;
274
- break;
275
-
276
- case 2:
277
- start = this;
278
- target = arg0;
279
- ratio = arg1;
280
- break;
281
-
282
- default:
283
- start = arg0;
284
- target = arg1;
285
- ratio = arg2;
286
- }
287
-
288
- quat.slerp(this, start, target, ratio);
289
- return this.check();
290
- }
291
- }, {
292
- key: "transformVector4",
293
- value: function transformVector4(vector) {
294
- var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _vector.default();
295
- vec4.transformQuat(result, vector, this);
296
- return (0, _validators.checkVector)(result, 4);
297
- }
298
- }, {
299
- key: "lengthSq",
300
- value: function lengthSq() {
301
- return this.lengthSquared();
302
- }
303
- }, {
304
- key: "setFromAxisAngle",
305
- value: function setFromAxisAngle(axis, rad) {
306
- return this.setAxisAngle(axis, rad);
307
- }
308
- }, {
309
- key: "premultiply",
310
- value: function premultiply(a) {
311
- return this.multiplyLeft(a);
312
- }
313
- }, {
314
- key: "multiply",
315
- value: function multiply(a) {
316
- return this.multiplyRight(a);
317
- }
318
- }]);
319
- return Quaternion;
320
- }(_mathArray.default);
321
-
322
- exports.default = Quaternion;
323
- //# sourceMappingURL=quaternion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/classes/quaternion.ts"],"names":["IDENTITY_QUATERNION","Quaternion","x","y","z","w","Array","isArray","arguments","length","copy","set","array","check","object","m","quat","fromMat3","axis","rad","setAxisAngle","identity","fromAxisRotation","value","squaredLength","a","dot","vectorA","vectorB","rotationTo","add","calculateW","conjugate","invert","b","t","undefined","lerp","multiply","len","l","rotateX","rotateY","rotateZ","scale","arg0","arg1","arg2","start","target","ratio","slerp","vector","result","Vector4","vec4","transformQuat","lengthSquared","multiplyLeft","multiplyRight","MathArray"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport MathArray from './base/math-array';\nimport {checkNumber, checkVector} from '../lib/validators';\nimport Vector4 from './vector4';\nimport * as quat from 'gl-matrix/quat';\nimport * as vec4 from 'gl-matrix/vec4';\nimport {NumericArray} from '@math.gl/types';\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 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 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 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"}