@math.gl/core 3.6.0-alpha.1 → 3.6.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/classes/base/math-array.d.ts +61 -31
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/classes/base/math-array.js +67 -65
  4. package/dist/classes/base/matrix.d.ts +12 -10
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/classes/base/matrix.js +2 -10
  7. package/dist/classes/base/vector.d.ts +37 -25
  8. package/dist/classes/base/vector.d.ts.map +1 -1
  9. package/dist/classes/base/vector.js +17 -24
  10. package/dist/classes/euler.d.ts +59 -55
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/classes/euler.js +57 -77
  13. package/dist/classes/matrix3.d.ts +58 -41
  14. package/dist/classes/matrix3.d.ts.map +1 -1
  15. package/dist/classes/matrix3.js +68 -59
  16. package/dist/classes/matrix4.d.ts +214 -90
  17. package/dist/classes/matrix4.d.ts.map +1 -1
  18. package/dist/classes/matrix4.js +252 -171
  19. package/dist/classes/pose.d.ts +29 -26
  20. package/dist/classes/pose.d.ts.map +1 -1
  21. package/dist/classes/pose.js +6 -23
  22. package/dist/classes/quaternion.d.ts +61 -40
  23. package/dist/classes/quaternion.d.ts.map +1 -1
  24. package/dist/classes/quaternion.js +49 -53
  25. package/dist/classes/spherical-coordinates.d.ts +45 -25
  26. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  27. package/dist/classes/spherical-coordinates.js +30 -24
  28. package/dist/classes/vector2.d.ts +51 -15
  29. package/dist/classes/vector2.d.ts.map +1 -1
  30. package/dist/classes/vector2.js +29 -23
  31. package/dist/classes/vector3.d.ts +47 -32
  32. package/dist/classes/vector3.d.ts.map +1 -1
  33. package/dist/classes/vector3.js +16 -30
  34. package/dist/classes/vector4.d.ts +37 -19
  35. package/dist/classes/vector4.d.ts.map +1 -1
  36. package/dist/classes/vector4.js +12 -24
  37. package/dist/es5/classes/base/math-array.js +248 -179
  38. package/dist/es5/classes/base/math-array.js.map +1 -1
  39. package/dist/es5/classes/base/matrix.js +74 -54
  40. package/dist/es5/classes/base/matrix.js.map +1 -1
  41. package/dist/es5/classes/base/vector.js +167 -121
  42. package/dist/es5/classes/base/vector.js.map +1 -1
  43. package/dist/es5/classes/euler.js +575 -480
  44. package/dist/es5/classes/euler.js.map +1 -1
  45. package/dist/es5/classes/matrix3.js +234 -158
  46. package/dist/es5/classes/matrix3.js.map +1 -1
  47. package/dist/es5/classes/matrix4.js +510 -417
  48. package/dist/es5/classes/matrix4.js.map +1 -1
  49. package/dist/es5/classes/pose.js +126 -101
  50. package/dist/es5/classes/pose.js.map +1 -1
  51. package/dist/es5/classes/quaternion.js +285 -213
  52. package/dist/es5/classes/quaternion.js.map +1 -1
  53. package/dist/es5/classes/spherical-coordinates.js +170 -125
  54. package/dist/es5/classes/spherical-coordinates.js.map +1 -1
  55. package/dist/es5/classes/vector2.js +118 -76
  56. package/dist/es5/classes/vector2.js.map +1 -1
  57. package/dist/es5/classes/vector3.js +171 -119
  58. package/dist/es5/classes/vector3.js.map +1 -1
  59. package/dist/es5/classes/vector4.js +141 -94
  60. package/dist/es5/classes/vector4.js.map +1 -1
  61. package/dist/es5/index.js +34 -34
  62. package/dist/es5/lib/common.js +56 -30
  63. package/dist/es5/lib/common.js.map +1 -1
  64. package/dist/es5/lib/gl-matrix-extras.js +14 -14
  65. package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
  66. package/dist/es5/lib/gl-matrix.d.js +2 -0
  67. package/dist/es5/lib/gl-matrix.d.js.map +1 -0
  68. package/dist/es5/lib/validators.js +5 -3
  69. package/dist/es5/lib/validators.js.map +1 -1
  70. package/dist/esm/classes/base/math-array.js +45 -47
  71. package/dist/esm/classes/base/math-array.js.map +1 -1
  72. package/dist/esm/classes/base/matrix.js +0 -11
  73. package/dist/esm/classes/base/matrix.js.map +1 -1
  74. package/dist/esm/classes/base/vector.js +0 -10
  75. package/dist/esm/classes/base/vector.js.map +1 -1
  76. package/dist/esm/classes/euler.js +61 -48
  77. package/dist/esm/classes/euler.js.map +1 -1
  78. package/dist/esm/classes/matrix3.js +55 -33
  79. package/dist/esm/classes/matrix3.js.map +1 -1
  80. package/dist/esm/classes/matrix4.js +156 -136
  81. package/dist/esm/classes/matrix4.js.map +1 -1
  82. package/dist/esm/classes/pose.js +8 -4
  83. package/dist/esm/classes/pose.js.map +1 -1
  84. package/dist/esm/classes/quaternion.js +37 -27
  85. package/dist/esm/classes/quaternion.js.map +1 -1
  86. package/dist/esm/classes/spherical-coordinates.js +15 -5
  87. package/dist/esm/classes/spherical-coordinates.js.map +1 -1
  88. package/dist/esm/classes/vector2.js.map +1 -1
  89. package/dist/esm/classes/vector3.js +7 -2
  90. package/dist/esm/classes/vector3.js.map +1 -1
  91. package/dist/esm/classes/vector4.js +7 -2
  92. package/dist/esm/classes/vector4.js.map +1 -1
  93. package/dist/esm/lib/common.js +8 -8
  94. package/dist/esm/lib/common.js.map +1 -1
  95. package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
  96. package/dist/esm/lib/gl-matrix.d.js +2 -0
  97. package/dist/esm/lib/gl-matrix.d.js.map +1 -0
  98. package/dist/esm/lib/validators.js.map +1 -1
  99. package/dist/lib/common.d.ts +14 -11
  100. package/dist/lib/common.d.ts.map +1 -1
  101. package/dist/lib/common.js +10 -23
  102. package/dist/lib/gl-matrix-extras.d.ts +6 -5
  103. package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
  104. package/dist/lib/gl-matrix-extras.js +0 -1
  105. package/dist/lib/validators.d.ts +5 -4
  106. package/dist/lib/validators.d.ts.map +1 -1
  107. package/dist/lib/validators.js +0 -19
  108. package/package.json +5 -5
  109. package/src/classes/base/math-array.ts +265 -0
  110. package/src/classes/base/{matrix.js → matrix.ts} +15 -19
  111. package/src/classes/base/{vector.js → vector.ts} +47 -54
  112. package/src/classes/{euler.js → euler.ts} +121 -221
  113. package/src/classes/matrix3.ts +253 -0
  114. package/src/classes/matrix4.ts +668 -0
  115. package/src/classes/{pose.js → pose.ts} +52 -49
  116. package/src/classes/{quaternion.js → quaternion.ts} +107 -95
  117. package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
  118. package/src/classes/vector2.ts +127 -0
  119. package/src/classes/{vector3.js → vector3.ts} +43 -55
  120. package/src/classes/{vector4.js → vector4.ts} +44 -48
  121. package/src/lib/common.ts +58 -37
  122. package/src/lib/gl-matrix-extras.ts +26 -5
  123. package/src/lib/gl-matrix.d.ts +266 -0
  124. package/src/lib/validators.ts +10 -6
  125. package/dist/es5/classes/base/math-array.d.js +0 -46
  126. package/dist/es5/classes/base/math-array.d.js.map +0 -1
  127. package/dist/es5/classes/base/matrix.d.js +0 -15
  128. package/dist/es5/classes/base/matrix.d.js.map +0 -1
  129. package/dist/es5/classes/base/vector.d.js +0 -24
  130. package/dist/es5/classes/base/vector.d.js.map +0 -1
  131. package/dist/es5/classes/euler.d.js +0 -45
  132. package/dist/es5/classes/euler.d.js.map +0 -1
  133. package/dist/es5/classes/matrix3.d.js +0 -25
  134. package/dist/es5/classes/matrix3.d.js.map +0 -1
  135. package/dist/es5/classes/matrix4.d.js +0 -25
  136. package/dist/es5/classes/matrix4.d.js.map +0 -1
  137. package/dist/es5/classes/pose.d.js +0 -25
  138. package/dist/es5/classes/pose.d.js.map +0 -1
  139. package/dist/es5/classes/quaternion.d.js +0 -27
  140. package/dist/es5/classes/quaternion.d.js.map +0 -1
  141. package/dist/es5/classes/spherical-coordinates.d.js +0 -27
  142. package/dist/es5/classes/spherical-coordinates.d.js.map +0 -1
  143. package/dist/es5/classes/vector2.d.js +0 -18
  144. package/dist/es5/classes/vector2.d.js.map +0 -1
  145. package/dist/es5/classes/vector3.d.js +0 -24
  146. package/dist/es5/classes/vector3.d.js.map +0 -1
  147. package/dist/es5/classes/vector4.d.js +0 -25
  148. package/dist/es5/classes/vector4.d.js.map +0 -1
  149. package/dist/esm/classes/base/math-array.d.js +0 -36
  150. package/dist/esm/classes/base/math-array.d.js.map +0 -1
  151. package/dist/esm/classes/base/matrix.d.js +0 -3
  152. package/dist/esm/classes/base/matrix.d.js.map +0 -1
  153. package/dist/esm/classes/base/vector.d.js +0 -13
  154. package/dist/esm/classes/base/vector.d.js.map +0 -1
  155. package/dist/esm/classes/euler.d.js +0 -55
  156. package/dist/esm/classes/euler.d.js.map +0 -1
  157. package/dist/esm/classes/matrix3.d.js +0 -15
  158. package/dist/esm/classes/matrix3.d.js.map +0 -1
  159. package/dist/esm/classes/matrix4.d.js +0 -15
  160. package/dist/esm/classes/matrix4.d.js.map +0 -1
  161. package/dist/esm/classes/pose.d.js +0 -18
  162. package/dist/esm/classes/pose.d.js.map +0 -1
  163. package/dist/esm/classes/quaternion.d.js +0 -19
  164. package/dist/esm/classes/quaternion.d.js.map +0 -1
  165. package/dist/esm/classes/spherical-coordinates.d.js +0 -22
  166. package/dist/esm/classes/spherical-coordinates.d.js.map +0 -1
  167. package/dist/esm/classes/vector2.d.js +0 -6
  168. package/dist/esm/classes/vector2.d.js.map +0 -1
  169. package/dist/esm/classes/vector3.d.js +0 -13
  170. package/dist/esm/classes/vector3.d.js.map +0 -1
  171. package/dist/esm/classes/vector4.d.js +0 -15
  172. package/dist/esm/classes/vector4.d.js.map +0 -1
  173. package/src/classes/base/math-array.d.ts +0 -55
  174. package/src/classes/base/math-array.js +0 -250
  175. package/src/classes/base/matrix.d.ts +0 -15
  176. package/src/classes/base/vector.d.ts +0 -45
  177. package/src/classes/euler.d.ts +0 -92
  178. package/src/classes/matrix3.d.ts +0 -91
  179. package/src/classes/matrix3.js +0 -225
  180. package/src/classes/matrix4.d.ts +0 -161
  181. package/src/classes/matrix4.js +0 -530
  182. package/src/classes/pose.d.ts +0 -92
  183. package/src/classes/quaternion.d.ts +0 -107
  184. package/src/classes/spherical-coordinates.d.ts +0 -87
  185. package/src/classes/vector2.d.ts +0 -65
  186. package/src/classes/vector2.js +0 -122
  187. package/src/classes/vector3.d.ts +0 -65
  188. package/src/classes/vector4.d.ts +0 -34
@@ -0,0 +1,253 @@
1
+ // Copyright (c) 2017 Uber Technologies, Inc.
2
+ // MIT License
3
+ import Matrix from './base/matrix';
4
+ import {checkVector} from '../lib/validators';
5
+ /* eslint-disable camelcase */
6
+ import {vec4_transformMat3} from '../lib/gl-matrix-extras';
7
+ import * as mat3 from 'gl-matrix/mat3';
8
+ import * as vec2 from 'gl-matrix/vec2';
9
+ import * as vec3 from 'gl-matrix/vec3';
10
+ import {NumericArray} from '@math.gl/types';
11
+
12
+ enum INDICES {
13
+ COL0ROW0 = 0,
14
+ COL0ROW1 = 1,
15
+ COL0ROW2 = 2,
16
+ COL1ROW0 = 3,
17
+ COL1ROW1 = 4,
18
+ COL1ROW2 = 5,
19
+ COL2ROW0 = 6,
20
+ COL2ROW1 = 7,
21
+ COL2ROW2 = 8
22
+ }
23
+
24
+ const IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
25
+
26
+ export default class Matrix3 extends Matrix {
27
+ static get IDENTITY(): Readonly<Matrix3> {
28
+ return getIdentityMatrix();
29
+ }
30
+
31
+ static get ZERO(): Readonly<Matrix3> {
32
+ return getZeroMatrix();
33
+ }
34
+
35
+ get ELEMENTS(): number {
36
+ return 9;
37
+ }
38
+
39
+ get RANK(): number {
40
+ return 3;
41
+ }
42
+
43
+ get INDICES(): typeof INDICES {
44
+ return INDICES;
45
+ }
46
+
47
+ constructor(array?: Readonly<NumericArray>);
48
+ /** @deprecated */
49
+ constructor(...args: number[]);
50
+
51
+ constructor(array?: number | Readonly<NumericArray>, ...args: number[]) {
52
+ // PERF NOTE: initialize elements as double precision numbers
53
+ super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
54
+ if (arguments.length === 1 && Array.isArray(array)) {
55
+ this.copy(array);
56
+ } else if (args.length > 0) {
57
+ this.copy([array as number, ...args]);
58
+ } else {
59
+ this.identity();
60
+ }
61
+ }
62
+
63
+ copy(array: Readonly<NumericArray>): this {
64
+ // Element wise copy for performance
65
+ this[0] = array[0];
66
+ this[1] = array[1];
67
+ this[2] = array[2];
68
+ this[3] = array[3];
69
+ this[4] = array[4];
70
+ this[5] = array[5];
71
+ this[6] = array[6];
72
+ this[7] = array[7];
73
+ this[8] = array[8];
74
+ return this.check();
75
+ }
76
+
77
+ // Constructors
78
+
79
+ identity(): this {
80
+ return this.copy(IDENTITY_MATRIX);
81
+ }
82
+
83
+ /**
84
+ *
85
+ * @param object
86
+ * @returns self
87
+ */
88
+ fromObject(object: {[key: string]: any}): this {
89
+ return this.check();
90
+ }
91
+
92
+ // Calculates a 3x3 matrix from the given quaternion
93
+ // q quat Quaternion to create matrix from
94
+ fromQuaternion(q: Readonly<NumericArray>): this {
95
+ mat3.fromQuat(this, q);
96
+ return this.check();
97
+ }
98
+
99
+ /**
100
+ * accepts column major order, stores in column major order
101
+ */
102
+ // eslint-disable-next-line max-params
103
+ set(
104
+ m00: number,
105
+ m10: number,
106
+ m20: number,
107
+ m01: number,
108
+ m11: number,
109
+ m21: number,
110
+ m02: number,
111
+ m12: number,
112
+ m22: number
113
+ ): this {
114
+ this[0] = m00;
115
+ this[1] = m10;
116
+ this[2] = m20;
117
+ this[3] = m01;
118
+ this[4] = m11;
119
+ this[5] = m21;
120
+ this[6] = m02;
121
+ this[7] = m12;
122
+ this[8] = m22;
123
+ return this.check();
124
+ }
125
+
126
+ /**
127
+ * accepts row major order, stores as column major
128
+ */
129
+ // eslint-disable-next-line max-params
130
+ setRowMajor(
131
+ m00: number,
132
+ m01: number,
133
+ m02: number,
134
+ m10: number,
135
+ m11: number,
136
+ m12: number,
137
+ m20: number,
138
+ m21: number,
139
+ m22: number
140
+ ): this {
141
+ this[0] = m00;
142
+ this[1] = m10;
143
+ this[2] = m20;
144
+ this[3] = m01;
145
+ this[4] = m11;
146
+ this[5] = m21;
147
+ this[6] = m02;
148
+ this[7] = m12;
149
+ this[8] = m22;
150
+ return this.check();
151
+ }
152
+
153
+ // Accessors
154
+
155
+ determinant(): number {
156
+ return mat3.determinant(this);
157
+ }
158
+
159
+ // Modifiers
160
+ transpose(): this {
161
+ mat3.transpose(this, this);
162
+ return this.check();
163
+ }
164
+
165
+ /** Invert a matrix. Note that this can fail if the matrix is not invertible */
166
+ invert(): this {
167
+ mat3.invert(this, this);
168
+ return this.check();
169
+ }
170
+
171
+ // Operations
172
+ multiplyLeft(a: NumericArray): this {
173
+ mat3.multiply(this, a, this);
174
+ return this.check();
175
+ }
176
+
177
+ multiplyRight(a: NumericArray): this {
178
+ mat3.multiply(this, this, a);
179
+ return this.check();
180
+ }
181
+
182
+ rotate(radians: number): NumericArray {
183
+ mat3.rotate(this, this, radians);
184
+ return this.check();
185
+ }
186
+
187
+ scale(factor: NumericArray | number): this {
188
+ if (Array.isArray(factor)) {
189
+ mat3.scale(this, this, factor);
190
+ } else {
191
+ mat3.scale(this, this, [factor as number, factor as number]);
192
+ }
193
+ return this.check();
194
+ }
195
+
196
+ translate(vec: NumericArray): this {
197
+ mat3.translate(this, this, vec);
198
+ return this.check();
199
+ }
200
+
201
+ // Transforms
202
+ transform(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {
203
+ switch (vector.length) {
204
+ case 2:
205
+ result = vec2.transformMat3(result || [-0, -0], vector, this);
206
+ break;
207
+ case 3:
208
+ result = vec3.transformMat3(result || [-0, -0, -0], vector, this);
209
+ break;
210
+ case 4:
211
+ result = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
212
+ break;
213
+ default:
214
+ throw new Error('Illegal vector');
215
+ }
216
+ checkVector(result, vector.length);
217
+ return result;
218
+ }
219
+
220
+ /** @deprecated */
221
+ transformVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {
222
+ return this.transform(vector, result);
223
+ }
224
+
225
+ /** @deprecated */
226
+ transformVector2(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {
227
+ return this.transform(vector, result);
228
+ }
229
+
230
+ /** @deprecated */
231
+ transformVector3(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {
232
+ return this.transform(vector, result);
233
+ }
234
+ }
235
+
236
+ let ZERO_MATRIX3;
237
+ let IDENTITY_MATRIX3;
238
+
239
+ function getZeroMatrix(): Readonly<Matrix3> {
240
+ if (!ZERO_MATRIX3) {
241
+ ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
242
+ Object.freeze(ZERO_MATRIX3);
243
+ }
244
+ return ZERO_MATRIX3;
245
+ }
246
+
247
+ function getIdentityMatrix(): Matrix3 {
248
+ if (!IDENTITY_MATRIX3) {
249
+ IDENTITY_MATRIX3 = new Matrix3();
250
+ Object.freeze(IDENTITY_MATRIX3);
251
+ }
252
+ return IDENTITY_MATRIX3;
253
+ }