@math.gl/core 4.0.0-alpha.1 → 4.0.0-alpha.3

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 +1614 -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,7 +1,7 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
2
  import { ConfigurationOptions } from '../../lib/common';
3
3
  /** Base class for vectors and matrices */
4
- export default abstract class MathArray extends Array<number> {
4
+ export declare abstract class MathArray extends Array<number> {
5
5
  /** Number of elements (values) in this array */
6
6
  abstract get ELEMENTS(): number;
7
7
  abstract copy(vector: Readonly<NumericArray>): this;
@@ -14,6 +14,7 @@ export default abstract class MathArray extends Array<number> {
14
14
  fromArray(array: Readonly<NumericArray>, offset?: number): this;
15
15
  toArray<TypedArray>(targetArray: TypedArray, offset?: number): TypedArray;
16
16
  toArray(targetArray?: number[], offset?: number): NumericArray;
17
+ toObject(targetObject: Record<string, unknown>): Record<string, unknown>;
17
18
  from(arrayOrObject: Readonly<NumericArray> | Record<string, unknown>): this;
18
19
  to<T extends NumericArray | Record<string, unknown>>(arrayOrObject: T): T;
19
20
  toTarget(target: this): this;
@@ -1 +1 @@
1
- {"version":3,"file":"math-array.d.ts","sourceRoot":"","sources":["../../../src/classes/base/math-array.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,oBAAoB,EAAuC,MAAM,kBAAkB,CAAC;AAE5F,0CAA0C;AAC1C,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,SAAU,SAAQ,KAAK,CAAC,MAAM,CAAC;IAC3D,gDAAgD;IAChD,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC;IAEhC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAEnD,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI1D;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;IAOlE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU;IACzE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY;IAS9D,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO3E,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC;IASzE,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI5B,kBAAkB;IAClB,cAAc,IAAI,YAAY;IAIrB,QAAQ,IAAI,MAAM;IAI3B,0CAA0C;IAC1C,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAQhD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO;IAY9C,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO;IAcnD,wCAAwC;IACxC,MAAM,IAAI,IAAI;IAOd,+CAA+C;IAC/C,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAChD,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAc3E,cAAc;IACd,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,cAAc;IACd,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOjF,GAAG,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IAS/C,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IASpD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAanD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAStC,8EAA8E;IAC9E,KAAK,IAAI,IAAI;IAOb,gFAAgF;IAChF,QAAQ,IAAI,OAAO;IAUnB,kBAAkB;IAClB,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAIpC,kBAAkB;IAClB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1B,kBAAkB;IAClB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAO1B,kBAAkB;IAClB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1B,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASpC,kBAAkB;IAClB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7B,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAO3C,kBAAkB;IAClB,IAAI,QAAQ,IAAI,YAAY,CAE3B;CACF"}
1
+ {"version":3,"file":"math-array.d.ts","sourceRoot":"","sources":["../../../src/classes/base/math-array.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ function _extendableBuiltin(cls) {
24
24
  }
25
25
 
26
26
  import { config, formatValue, equals, isArray } from "../../lib/common.js";
27
- export default class MathArray extends _extendableBuiltin(Array) {
27
+ export class MathArray extends _extendableBuiltin(Array) {
28
28
  clone() {
29
29
  return new this.constructor().copy(this);
30
30
  }
@@ -45,6 +45,10 @@ export default class MathArray extends _extendableBuiltin(Array) {
45
45
  return targetArray;
46
46
  }
47
47
 
48
+ toObject(targetObject) {
49
+ return targetObject;
50
+ }
51
+
48
52
  from(arrayOrObject) {
49
53
  return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
50
54
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/base/math-array.ts"],"names":["config","formatValue","equals","isArray","MathArray","Array","clone","constructor","copy","fromArray","array","offset","i","ELEMENTS","check","toArray","targetArray","from","arrayOrObject","fromObject","to","toObject","toTarget","target","toFloat32Array","Float32Array","toString","formatString","opts","string","printTypes","name","length","exactEquals","negate","lerp","a","b","t","undefined","ai","endValue","min","vector","Math","max","clamp","minVector","maxVector","add","vectors","subtract","scale","multiplyByScalar","scalar","debug","validate","Error","valid","Number","isFinite","sub","setScalar","addScalar","subScalar","multiplyScalar","divideScalar","clampScalar","elements"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;SAE8BA,M,EAAQC,W,EAAaC,M,EAAQC,O;AAG3D,eAAe,MAAeC,SAAf,4BAAiCC,KAAjC,EAA+C;AAc5DC,EAAAA,KAAK,GAAS;AAEZ,WAAO,IAAI,KAAKC,WAAT,GAAuBC,IAAvB,CAA4B,IAA5B,CAAP;AACD;;AAEDC,EAAAA,SAAS,CAACC,KAAD,EAAgCC,MAAc,GAAG,CAAjD,EAA0D;AACjE,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAUF,KAAK,CAACE,CAAC,GAAGD,MAAL,CAAf;AACD;;AACD,WAAO,KAAKG,KAAL,EAAP;AACD;;AAKDC,EAAAA,OAAO,CAACC,WAAyB,GAAG,EAA7B,EAAiCL,MAAc,GAAG,CAAlD,EAAmE;AACxE,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtCI,MAAAA,WAAW,CAACL,MAAM,GAAGC,CAAV,CAAX,GAA0B,KAAKA,CAAL,CAA1B;AACD;;AACD,WAAOI,WAAP;AACD;;AAEDC,EAAAA,IAAI,CAACC,aAAD,EAAwE;AAC1E,WAAOb,KAAK,CAACF,OAAN,CAAce,aAAd,IACH,KAAKV,IAAL,CAAUU,aAAV,CADG,GAGH,KAAKC,UAAL,CAAgBD,aAAhB,CAHJ;AAID;;AAEDE,EAAAA,EAAE,CAAmDF,aAAnD,EAAwE;AAExE,QAAIA,aAAa,KAAK,IAAtB,EAA4B;AAC1B,aAAO,IAAP;AACD;;AAED,WAAOf,OAAO,CAACe,aAAD,CAAP,GAAyB,KAAKH,OAAL,CAAaG,aAAb,CAAzB,GAAuD,KAAKG,QAAL,CAAcH,aAAd,CAA9D;AACD;;AAEDI,EAAAA,QAAQ,CAACC,MAAD,EAAqB;AAC3B,WAAOA,MAAM,GAAG,KAAKH,EAAL,CAAQG,MAAR,CAAH,GAAqB,IAAlC;AACD;;AAGDC,EAAAA,cAAc,GAAiB;AAC7B,WAAO,IAAIC,YAAJ,CAAiB,IAAjB,CAAP;AACD;;AAEQC,EAAAA,QAAQ,GAAW;AAC1B,WAAO,KAAKC,YAAL,CAAkB3B,MAAlB,CAAP;AACD;;AAGD2B,EAAAA,YAAY,CAACC,IAAD,EAAqC;AAC/C,QAAIC,MAAM,GAAG,EAAb;;AACA,SAAK,IAAIjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtCiB,MAAAA,MAAM,IAAI,CAACjB,CAAC,GAAG,CAAJ,GAAQ,IAAR,GAAe,EAAhB,IAAsBX,WAAW,CAAC,KAAKW,CAAL,CAAD,EAAUgB,IAAV,CAA3C;AACD;;AACD,qBAAUA,IAAI,CAACE,UAAL,GAAkB,KAAKvB,WAAL,CAAiBwB,IAAnC,GAA0C,EAApD,cAA0DF,MAA1D;AACD;;AAED3B,EAAAA,MAAM,CAACQ,KAAD,EAAyC;AAC7C,QAAI,CAACA,KAAD,IAAU,KAAKsB,MAAL,KAAgBtB,KAAK,CAACsB,MAApC,EAA4C;AAC1C,aAAO,KAAP;AACD;;AACD,SAAK,IAAIpB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,UAAI,CAACV,MAAM,CAAC,KAAKU,CAAL,CAAD,EAAUF,KAAK,CAACE,CAAD,CAAf,CAAX,EAAgC;AAC9B,eAAO,KAAP;AACD;AACF;;AACD,WAAO,IAAP;AACD;;AAEDqB,EAAAA,WAAW,CAACvB,KAAD,EAAyC;AAClD,QAAI,CAACA,KAAD,IAAU,KAAKsB,MAAL,KAAgBtB,KAAK,CAACsB,MAApC,EAA4C;AAC1C,aAAO,KAAP;AACD;;AACD,SAAK,IAAIpB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,UAAI,KAAKA,CAAL,MAAYF,KAAK,CAACE,CAAD,CAArB,EAA0B;AACxB,eAAO,KAAP;AACD;AACF;;AACD,WAAO,IAAP;AACD;;AAKDsB,EAAAA,MAAM,GAAS;AACb,SAAK,IAAItB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAU,CAAC,KAAKA,CAAL,CAAX;AACD;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAMDqB,EAAAA,IAAI,CAACC,CAAD,EAA4BC,CAA5B,EAAgEC,CAAhE,EAAkF;AACpF,QAAIA,CAAC,KAAKC,SAAV,EAAqB;AACnB,aAAO,KAAKJ,IAAL,CAAU,IAAV,EAAgBC,CAAhB,EAAmBC,CAAnB,CAAP;AACD;;AACD,SAAK,IAAIzB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,YAAM4B,EAAE,GAAGJ,CAAC,CAACxB,CAAD,CAAZ;AACA,YAAM6B,QAAQ,GAAG,OAAOJ,CAAP,KAAa,QAAb,GAAwBA,CAAxB,GAA4BA,CAAC,CAACzB,CAAD,CAA9C;AACA,WAAKA,CAAL,IAAU4B,EAAE,GAAGF,CAAC,IAAIG,QAAQ,GAAGD,EAAf,CAAhB;AACD;;AACD,WAAO,KAAK1B,KAAL,EAAP;AACD;;AAGD4B,EAAAA,GAAG,CAACC,MAAD,EAAuC;AACxC,SAAK,IAAI/B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAUgC,IAAI,CAACF,GAAL,CAASC,MAAM,CAAC/B,CAAD,CAAf,EAAoB,KAAKA,CAAL,CAApB,CAAV;AACD;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAGD+B,EAAAA,GAAG,CAACF,MAAD,EAAuC;AACxC,SAAK,IAAI/B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAUgC,IAAI,CAACC,GAAL,CAASF,MAAM,CAAC/B,CAAD,CAAf,EAAoB,KAAKA,CAAL,CAApB,CAAV;AACD;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAEDgC,EAAAA,KAAK,CAACC,SAAD,EAAoCC,SAApC,EAA6E;AAChF,SAAK,IAAIpC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAUgC,IAAI,CAACF,GAAL,CAASE,IAAI,CAACC,GAAL,CAAS,KAAKjC,CAAL,CAAT,EAAkBmC,SAAS,CAACnC,CAAD,CAA3B,CAAT,EAA0CoC,SAAS,CAACpC,CAAD,CAAnD,CAAV;AACD;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAEDmC,EAAAA,GAAG,CAAC,GAAGC,OAAJ,EAA6C;AAC9C,SAAK,MAAMP,MAAX,IAAqBO,OAArB,EAA8B;AAC5B,WAAK,IAAItC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,aAAKA,CAAL,KAAW+B,MAAM,CAAC/B,CAAD,CAAjB;AACD;AACF;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAEDqC,EAAAA,QAAQ,CAAC,GAAGD,OAAJ,EAA6C;AACnD,SAAK,MAAMP,MAAX,IAAqBO,OAArB,EAA8B;AAC5B,WAAK,IAAItC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,aAAKA,CAAL,KAAW+B,MAAM,CAAC/B,CAAD,CAAjB;AACD;AACF;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAEDsC,EAAAA,KAAK,CAACA,KAAD,EAA+C;AAClD,QAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,WAAK,IAAIxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,aAAKA,CAAL,KAAWwC,KAAX;AACD;AACF,KAJD,MAIO;AACL,WAAK,IAAIxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAT,IAAqBD,CAAC,GAAGwC,KAAK,CAACpB,MAA/C,EAAuD,EAAEpB,CAAzD,EAA4D;AAC1D,aAAKA,CAAL,KAAWwC,KAAK,CAACxC,CAAD,CAAhB;AACD;AACF;;AACD,WAAO,KAAKE,KAAL,EAAP;AACD;;AAMDuC,EAAAA,gBAAgB,CAACC,MAAD,EAAuB;AACrC,SAAK,IAAI1C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,KAAW0C,MAAX;AACD;;AACD,WAAO,KAAKxC,KAAL,EAAP;AACD;;AAKDA,EAAAA,KAAK,GAAS;AACZ,QAAId,MAAM,CAACuD,KAAP,IAAgB,CAAC,KAAKC,QAAL,EAArB,EAAsC;AACpC,YAAM,IAAIC,KAAJ,oBAAsB,KAAKlD,WAAL,CAAiBwB,IAAvC,0CAAN;AACD;;AACD,WAAO,IAAP;AACD;;AAGDyB,EAAAA,QAAQ,GAAY;AAClB,QAAIE,KAAK,GAAG,KAAK1B,MAAL,KAAgB,KAAKnB,QAAjC;;AACA,SAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC8C,MAAAA,KAAK,GAAGA,KAAK,IAAIC,MAAM,CAACC,QAAP,CAAgB,KAAKhD,CAAL,CAAhB,CAAjB;AACD;;AACD,WAAO8C,KAAP;AACD;;AAKDG,EAAAA,GAAG,CAACzB,CAAD,EAAkC;AACnC,WAAO,KAAKe,QAAL,CAAcf,CAAd,CAAP;AACD;;AAGD0B,EAAAA,SAAS,CAAC1B,CAAD,EAAkB;AACzB,SAAK,IAAIxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAUwB,CAAV;AACD;;AACD,WAAO,KAAKtB,KAAL,EAAP;AACD;;AAGDiD,EAAAA,SAAS,CAAC3B,CAAD,EAAkB;AACzB,SAAK,IAAIxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,KAAWwB,CAAX;AACD;;AACD,WAAO,KAAKtB,KAAL,EAAP;AACD;;AAGDkD,EAAAA,SAAS,CAAC5B,CAAD,EAAkB;AACzB,WAAO,KAAK2B,SAAL,CAAe,CAAC3B,CAAhB,CAAP;AACD;;AAGD6B,EAAAA,cAAc,CAACX,MAAD,EAAuB;AAGnC,SAAK,IAAI1C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,KAAW0C,MAAX;AACD;;AACD,WAAO,KAAKxC,KAAL,EAAP;AACD;;AAGDoD,EAAAA,YAAY,CAAC9B,CAAD,EAAkB;AAC5B,WAAO,KAAKiB,gBAAL,CAAsB,IAAIjB,CAA1B,CAAP;AACD;;AAGD+B,EAAAA,WAAW,CAACzB,GAAD,EAAcG,GAAd,EAAiC;AAC1C,SAAK,IAAIjC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtC,WAAKA,CAAL,IAAUgC,IAAI,CAACF,GAAL,CAASE,IAAI,CAACC,GAAL,CAAS,KAAKjC,CAAL,CAAT,EAAkB8B,GAAlB,CAAT,EAAiCG,GAAjC,CAAV;AACD;;AACD,WAAO,KAAK/B,KAAL,EAAP;AACD;;AAGW,MAARsD,QAAQ,GAAiB;AAC3B,WAAO,IAAP;AACD;;AAtQ2D","sourcesContent":["// math.gl, MIT License\nimport {NumericArray} from '@math.gl/types';\nimport {ConfigurationOptions, config, formatValue, equals, isArray} from '../../lib/common';\n\n/** Base class for vectors and matrices */\nexport default abstract class MathArray extends Array<number> {\n /** Number of elements (values) in this array */\n abstract get ELEMENTS(): number;\n\n abstract copy(vector: Readonly<NumericArray>): this;\n\n abstract fromObject(object: Record<string, unknown>): this;\n\n // Common methods\n\n /**\n * Clone the current object\n * @returns a new copy of this object\n */\n clone(): this {\n // @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return new this.constructor().copy(this); // eslint-disable-line\n }\n\n fromArray(array: Readonly<NumericArray>, offset: number = 0): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = array[i + offset];\n }\n return this.check();\n }\n\n toArray<TypedArray>(targetArray: TypedArray, offset?: number): TypedArray;\n toArray(targetArray?: number[], offset?: number): NumericArray;\n\n toArray(targetArray: NumericArray = [], offset: number = 0): NumericArray {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n targetArray[offset + i] = this[i];\n }\n return targetArray;\n }\n\n from(arrayOrObject: Readonly<NumericArray> | Record<string, unknown>): this {\n return Array.isArray(arrayOrObject)\n ? this.copy(arrayOrObject)\n : // @ts-ignore\n this.fromObject(arrayOrObject);\n }\n\n to<T extends NumericArray | Record<string, unknown>>(arrayOrObject: T): T {\n // @ts-ignore\n if (arrayOrObject === this) {\n return this;\n }\n // @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.\n return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);\n }\n\n toTarget(target: this): this {\n return target ? this.to(target) : this;\n }\n\n /** @deprecated */\n toFloat32Array(): Float32Array {\n return new Float32Array(this);\n }\n\n override toString(): string {\n return this.formatString(config);\n }\n\n /** Formats string according to options */\n formatString(opts: ConfigurationOptions): string {\n let string = '';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);\n }\n return `${opts.printTypes ? this.constructor.name : ''}[${string}]`;\n }\n\n equals(array: Readonly<NumericArray>): boolean {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (!equals(this[i], array[i])) {\n return false;\n }\n }\n return true;\n }\n\n exactEquals(array: Readonly<NumericArray>): boolean {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (this[i] !== array[i]) {\n return false;\n }\n }\n return true;\n }\n\n // Modifiers\n\n /** Negates all values in this object */\n negate(): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = -this[i];\n }\n return this.check();\n }\n\n /** Linearly interpolates between two values */\n lerp(a: Readonly<NumericArray>, t: number): this;\n lerp(a: Readonly<NumericArray>, b: Readonly<NumericArray>, t: number): this;\n\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 for (let i = 0; i < this.ELEMENTS; ++i) {\n const ai = a[i];\n const endValue = typeof b === 'number' ? b : b[i];\n this[i] = ai + t * (endValue - ai);\n }\n return this.check();\n }\n\n /** Minimal */\n min(vector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(vector[i], this[i]);\n }\n return this.check();\n }\n\n /** Maximal */\n max(vector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.max(vector[i], this[i]);\n }\n return this.check();\n }\n\n clamp(minVector: Readonly<NumericArray>, maxVector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);\n }\n return this.check();\n }\n\n add(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += vector[i];\n }\n }\n return this.check();\n }\n\n subtract(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] -= vector[i];\n }\n }\n return this.check();\n }\n\n scale(scale: number | Readonly<NumericArray>): this {\n if (typeof scale === 'number') {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scale;\n }\n } else {\n for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {\n this[i] *= scale[i];\n }\n }\n return this.check();\n }\n\n /**\n * Multiplies all elements by `scale`\n * Note: `Matrix4.multiplyByScalar` only scales its 3x3 \"minor\"\n */\n multiplyByScalar(scalar: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n // Debug checks\n\n /** Throws an error if array length is incorrect or contains illegal values */\n check(): this {\n if (config.debug && !this.validate()) {\n throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);\n }\n return this;\n }\n\n /** Returns false if the array length is incorrect or contains illegal values */\n validate(): boolean {\n let valid = this.length === this.ELEMENTS;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n valid = valid && Number.isFinite(this[i]);\n }\n return valid;\n }\n\n // three.js compatibility\n\n /** @deprecated */\n sub(a: Readonly<NumericArray>): this {\n return this.subtract(a);\n }\n\n /** @deprecated */\n setScalar(a: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = a;\n }\n return this.check();\n }\n\n /** @deprecated */\n addScalar(a: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += a;\n }\n return this.check();\n }\n\n /** @deprecated */\n subScalar(a: number): this {\n return this.addScalar(-a);\n }\n\n /** @deprecated */\n multiplyScalar(scalar: number): this {\n // Multiplies all elements\n // `Matrix4.scale` only scales its 3x3 \"minor\"\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n /** @deprecated */\n divideScalar(a: number): this {\n return this.multiplyByScalar(1 / a);\n }\n\n /** @deprecated */\n clampScalar(min: number, max: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], min), max);\n }\n return this.check();\n }\n\n /** @deprecated */\n get elements(): NumericArray {\n return this;\n }\n}\n"],"file":"math-array.js"}
1
+ {"version":3,"sources":["../../../src/classes/base/math-array.ts"],"names":["config","formatValue","equals","isArray","MathArray","Array","clone","constructor","copy","fromArray","array","offset","i","ELEMENTS","check","toArray","targetArray","toObject","targetObject","from","arrayOrObject","fromObject","to","toTarget","target","toFloat32Array","Float32Array","toString","formatString","opts","string","printTypes","name","length","exactEquals","negate","lerp","a","b","t","undefined","ai","endValue","min","vector","Math","max","clamp","minVector","maxVector","add","vectors","subtract","scale","multiplyByScalar","scalar","debug","validate","Error","valid","Number","isFinite","sub","setScalar","addScalar","subScalar","multiplyScalar","divideScalar","clampScalar","elements"],"mappings":"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","sourcesContent":["// math.gl, MIT License\nimport {NumericArray} from '@math.gl/types';\nimport {ConfigurationOptions, config, formatValue, equals, isArray} from '../../lib/common';\n\n/** Base class for vectors and matrices */\nexport abstract class MathArray extends Array<number> {\n /** Number of elements (values) in this array */\n abstract get ELEMENTS(): number;\n\n abstract copy(vector: Readonly<NumericArray>): this;\n\n abstract fromObject(object: Record<string, unknown>): this;\n\n // Common methods\n\n /**\n * Clone the current object\n * @returns a new copy of this object\n */\n clone(): this {\n // @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return new this.constructor().copy(this); // eslint-disable-line\n }\n\n fromArray(array: Readonly<NumericArray>, offset: number = 0): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = array[i + offset];\n }\n return this.check();\n }\n\n toArray<TypedArray>(targetArray: TypedArray, offset?: number): TypedArray;\n toArray(targetArray?: number[], offset?: number): NumericArray;\n\n toArray(targetArray: NumericArray = [], offset: number = 0): NumericArray {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n targetArray[offset + i] = this[i];\n }\n return targetArray;\n }\n\n toObject(targetObject: Record<string, unknown>): Record<string, unknown> {\n return targetObject;\n }\n\n from(arrayOrObject: Readonly<NumericArray> | Record<string, unknown>): this {\n return Array.isArray(arrayOrObject)\n ? this.copy(arrayOrObject)\n : // @ts-ignore\n this.fromObject(arrayOrObject);\n }\n\n to<T extends NumericArray | Record<string, unknown>>(arrayOrObject: T): T {\n // @ts-ignore\n if (arrayOrObject === this) {\n return this as T;\n }\n // @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.\n return isArray(arrayOrObject) ? this.toArray(arrayOrObject) : this.toObject(arrayOrObject);\n }\n\n toTarget(target: this): this {\n return target ? this.to(target) : this;\n }\n\n /** @deprecated */\n toFloat32Array(): Float32Array {\n return new Float32Array(this);\n }\n\n override toString(): string {\n return this.formatString(config);\n }\n\n /** Formats string according to options */\n formatString(opts: ConfigurationOptions): string {\n let string = '';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += (i > 0 ? ', ' : '') + formatValue(this[i], opts);\n }\n return `${opts.printTypes ? this.constructor.name : ''}[${string}]`;\n }\n\n equals(array: Readonly<NumericArray>): boolean {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (!equals(this[i], array[i])) {\n return false;\n }\n }\n return true;\n }\n\n exactEquals(array: Readonly<NumericArray>): boolean {\n if (!array || this.length !== array.length) {\n return false;\n }\n for (let i = 0; i < this.ELEMENTS; ++i) {\n if (this[i] !== array[i]) {\n return false;\n }\n }\n return true;\n }\n\n // Modifiers\n\n /** Negates all values in this object */\n negate(): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = -this[i];\n }\n return this.check();\n }\n\n /** Linearly interpolates between two values */\n lerp(a: Readonly<NumericArray>, t: number): this;\n lerp(a: Readonly<NumericArray>, b: Readonly<NumericArray>, t: number): this;\n\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 for (let i = 0; i < this.ELEMENTS; ++i) {\n const ai = a[i];\n const endValue = typeof b === 'number' ? b : b[i];\n this[i] = ai + t * (endValue - ai);\n }\n return this.check();\n }\n\n /** Minimal */\n min(vector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(vector[i], this[i]);\n }\n return this.check();\n }\n\n /** Maximal */\n max(vector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.max(vector[i], this[i]);\n }\n return this.check();\n }\n\n clamp(minVector: Readonly<NumericArray>, maxVector: Readonly<NumericArray>): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], minVector[i]), maxVector[i]);\n }\n return this.check();\n }\n\n add(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += vector[i];\n }\n }\n return this.check();\n }\n\n subtract(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] -= vector[i];\n }\n }\n return this.check();\n }\n\n scale(scale: number | Readonly<NumericArray>): this {\n if (typeof scale === 'number') {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scale;\n }\n } else {\n for (let i = 0; i < this.ELEMENTS && i < scale.length; ++i) {\n this[i] *= scale[i];\n }\n }\n return this.check();\n }\n\n /**\n * Multiplies all elements by `scale`\n * Note: `Matrix4.multiplyByScalar` only scales its 3x3 \"minor\"\n */\n multiplyByScalar(scalar: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n // Debug checks\n\n /** Throws an error if array length is incorrect or contains illegal values */\n check(): this {\n if (config.debug && !this.validate()) {\n throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);\n }\n return this;\n }\n\n /** Returns false if the array length is incorrect or contains illegal values */\n validate(): boolean {\n let valid = this.length === this.ELEMENTS;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n valid = valid && Number.isFinite(this[i]);\n }\n return valid;\n }\n\n // three.js compatibility\n\n /** @deprecated */\n sub(a: Readonly<NumericArray>): this {\n return this.subtract(a);\n }\n\n /** @deprecated */\n setScalar(a: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = a;\n }\n return this.check();\n }\n\n /** @deprecated */\n addScalar(a: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] += a;\n }\n return this.check();\n }\n\n /** @deprecated */\n subScalar(a: number): this {\n return this.addScalar(-a);\n }\n\n /** @deprecated */\n multiplyScalar(scalar: number): this {\n // Multiplies all elements\n // `Matrix4.scale` only scales its 3x3 \"minor\"\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= scalar;\n }\n return this.check();\n }\n\n /** @deprecated */\n divideScalar(a: number): this {\n return this.multiplyByScalar(1 / a);\n }\n\n /** @deprecated */\n clampScalar(min: number, max: number): this {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] = Math.min(Math.max(this[i], min), max);\n }\n return this.check();\n }\n\n /** @deprecated */\n get elements(): NumericArray {\n return this;\n }\n}\n"],"file":"math-array.js"}
@@ -1,7 +1,7 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import MathArray from './math-array';
2
+ import { MathArray } from './math-array';
3
3
  /** Base class for matrices */
4
- export default abstract class Matrix extends MathArray {
4
+ export declare abstract class Matrix extends MathArray {
5
5
  abstract get RANK(): number;
6
6
  toString(): string;
7
7
  getElementIndex(row: number, col: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/classes/base/matrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,8BAA8B;AAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAO,SAAQ,SAAS;IACpD,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAanB,QAAQ,IAAI,MAAM;IAmB3B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAKjD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzD,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS;IACvE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAUxC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAO3E"}
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../../src/classes/base/matrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAIvC,8BAA8B;AAC9B,8BAAsB,MAAO,SAAQ,SAAS;IAC5C,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAanB,QAAQ,IAAI,MAAM;IAmB3B,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAKjD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzD,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS;IACvE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAaxC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAO3E"}
@@ -1,7 +1,7 @@
1
- import MathArray from "./math-array.js";
1
+ import { MathArray } from "./math-array.js";
2
2
  import { checkNumber } from "../../lib/validators.js";
3
3
  import { config } from "../../lib/common.js";
4
- export default class Matrix extends MathArray {
4
+ export class Matrix extends MathArray {
5
5
  toString() {
6
6
  let string = '[';
7
7
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/base/matrix.ts"],"names":["MathArray","checkNumber","config","Matrix","toString","string","printRowMajor","row","RANK","col","i","ELEMENTS","getElementIndex","getElement","setElement","value","getColumn","columnIndex","result","Array","fill","firstIndex","setColumn","columnVector"],"mappings":"OAGOA,S;SACCC,W;SACAC,M;AAGR,eAAe,MAAeC,MAAf,SAA8BH,SAA9B,CAAwC;AAc5CI,EAAAA,QAAQ,GAAW;AAC1B,QAAIC,MAAM,GAAG,GAAb;;AACA,QAAIH,MAAM,CAACI,aAAX,EAA0B;AACxBD,MAAAA,MAAM,IAAI,YAAV;;AACA,WAAK,IAAIE,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKC,IAA7B,EAAmC,EAAED,GAArC,EAA0C;AACxC,aAAK,IAAIE,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKD,IAA7B,EAAmC,EAAEC,GAArC,EAA0C;AACxCJ,UAAAA,MAAM,eAAQ,KAAKI,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,CAAR,CAAN;AACD;AACF;AACF,KAPD,MAOO;AACLF,MAAAA,MAAM,IAAI,eAAV;;AACA,WAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtCL,QAAAA,MAAM,eAAQ,KAAKK,CAAL,CAAR,CAAN;AACD;AACF;;AACDL,IAAAA,MAAM,IAAI,GAAV;AACA,WAAOA,MAAP;AACD;;AAEDO,EAAAA,eAAe,CAACL,GAAD,EAAcE,GAAd,EAAmC;AAChD,WAAOA,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAzB;AACD;;AAGDM,EAAAA,UAAU,CAACN,GAAD,EAAcE,GAAd,EAAmC;AAC3C,WAAO,KAAKA,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,CAAP;AACD;;AAGDO,EAAAA,UAAU,CAACP,GAAD,EAAcE,GAAd,EAA2BM,KAA3B,EAAgD;AACxD,SAAKN,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,IAA8BN,WAAW,CAACc,KAAD,CAAzC;AACA,WAAO,IAAP;AACD;;AAIDC,EAAAA,SAAS,CAACC,WAAD,EAAsBC,MAAgB,GAAG,IAAIC,KAAJ,CAAU,KAAKX,IAAf,EAAqBY,IAArB,CAA0B,CAAC,CAA3B,CAAzC,EAAkF;AACzF,UAAMC,UAAU,GAAGJ,WAAW,GAAG,KAAKT,IAAtC;;AACA,SAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKF,IAAzB,EAA+B,EAAEE,CAAjC,EAAoC;AAClCQ,MAAAA,MAAM,CAACR,CAAD,CAAN,GAAY,KAAKW,UAAU,GAAGX,CAAlB,CAAZ;AACD;;AACD,WAAOQ,MAAP;AACD;;AAEDI,EAAAA,SAAS,CAACL,WAAD,EAAsBM,YAAtB,EAAkE;AACzE,UAAMF,UAAU,GAAGJ,WAAW,GAAG,KAAKT,IAAtC;;AACA,SAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKF,IAAzB,EAA+B,EAAEE,CAAjC,EAAoC;AAClC,WAAKW,UAAU,GAAGX,CAAlB,IAAuBa,YAAY,CAACb,CAAD,CAAnC;AACD;;AACD,WAAO,IAAP;AACD;;AAhEoD","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport {config} from '../../lib/common';\n\n/** Base class for matrices */\nexport default abstract class Matrix extends MathArray {\n abstract get RANK(): number;\n\n // fromObject(object) {\n // const array = object.elements;\n // return this.fromRowMajor(array);\n // }\n // toObject(object) {\n // const array = object.elements;\n // this.toRowMajor(array);\n // return object;\n // }\n\n // TODO better override formatString?\n override toString(): string {\n let string = '[';\n if (config.printRowMajor) {\n string += 'row-major:';\n for (let row = 0; row < this.RANK; ++row) {\n for (let col = 0; col < this.RANK; ++col) {\n string += ` ${this[col * this.RANK + row]}`;\n }\n }\n } else {\n string += 'column-major:';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += ` ${this[i]}`;\n }\n }\n string += ']';\n return string;\n }\n\n getElementIndex(row: number, col: number): number {\n return col * this.RANK + row;\n }\n\n // By default assumes row major indices\n getElement(row: number, col: number): number {\n return this[col * this.RANK + row];\n }\n\n // By default assumes row major indices\n setElement(row: number, col: number, value: number): this {\n this[col * this.RANK + row] = checkNumber(value);\n return this;\n }\n getColumn<NumArrayT>(columnIndex: number, result: NumArrayT): NumArrayT;\n getColumn(columnIndex: number): number[];\n\n getColumn(columnIndex: number, result: number[] = new Array(this.RANK).fill(-0)): number[] {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n result[i] = this[firstIndex + i];\n }\n return result;\n }\n\n setColumn(columnIndex: number, columnVector: Readonly<NumericArray>): this {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n this[firstIndex + i] = columnVector[i];\n }\n return this;\n }\n}\n"],"file":"matrix.js"}
1
+ {"version":3,"sources":["../../../src/classes/base/matrix.ts"],"names":["MathArray","checkNumber","config","Matrix","toString","string","printRowMajor","row","RANK","col","i","ELEMENTS","getElementIndex","getElement","setElement","value","getColumn","columnIndex","result","Array","fill","firstIndex","setColumn","columnVector"],"mappings":"SAGQA,S;SACAC,W;SACAC,M;AAGR,OAAO,MAAeC,MAAf,SAA8BH,SAA9B,CAAwC;AAcpCI,EAAAA,QAAQ,GAAW;AAC1B,QAAIC,MAAM,GAAG,GAAb;;AACA,QAAIH,MAAM,CAACI,aAAX,EAA0B;AACxBD,MAAAA,MAAM,IAAI,YAAV;;AACA,WAAK,IAAIE,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKC,IAA7B,EAAmC,EAAED,GAArC,EAA0C;AACxC,aAAK,IAAIE,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAG,KAAKD,IAA7B,EAAmC,EAAEC,GAArC,EAA0C;AACxCJ,UAAAA,MAAM,eAAQ,KAAKI,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,CAAR,CAAN;AACD;AACF;AACF,KAPD,MAOO;AACLF,MAAAA,MAAM,IAAI,eAAV;;AACA,WAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKC,QAAzB,EAAmC,EAAED,CAArC,EAAwC;AACtCL,QAAAA,MAAM,eAAQ,KAAKK,CAAL,CAAR,CAAN;AACD;AACF;;AACDL,IAAAA,MAAM,IAAI,GAAV;AACA,WAAOA,MAAP;AACD;;AAEDO,EAAAA,eAAe,CAACL,GAAD,EAAcE,GAAd,EAAmC;AAChD,WAAOA,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAzB;AACD;;AAGDM,EAAAA,UAAU,CAACN,GAAD,EAAcE,GAAd,EAAmC;AAC3C,WAAO,KAAKA,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,CAAP;AACD;;AAGDO,EAAAA,UAAU,CAACP,GAAD,EAAcE,GAAd,EAA2BM,KAA3B,EAAgD;AACxD,SAAKN,GAAG,GAAG,KAAKD,IAAX,GAAkBD,GAAvB,IAA8BN,WAAW,CAACc,KAAD,CAAzC;AACA,WAAO,IAAP;AACD;;AAIDC,EAAAA,SAAS,CACPC,WADO,EAEPC,MAAgB,GAAG,IAAIC,KAAJ,CAAkB,KAAKX,IAAvB,EAA6BY,IAA7B,CAAkC,CAAC,CAAnC,CAFZ,EAGG;AACV,UAAMC,UAAU,GAAGJ,WAAW,GAAG,KAAKT,IAAtC;;AACA,SAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKF,IAAzB,EAA+B,EAAEE,CAAjC,EAAoC;AAClCQ,MAAAA,MAAM,CAACR,CAAD,CAAN,GAAY,KAAKW,UAAU,GAAGX,CAAlB,CAAZ;AACD;;AACD,WAAOQ,MAAP;AACD;;AAEDI,EAAAA,SAAS,CAACL,WAAD,EAAsBM,YAAtB,EAAkE;AACzE,UAAMF,UAAU,GAAGJ,WAAW,GAAG,KAAKT,IAAtC;;AACA,SAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKF,IAAzB,EAA+B,EAAEE,CAAjC,EAAoC;AAClC,WAAKW,UAAU,GAAGX,CAAlB,IAAuBa,YAAY,CAACb,CAAD,CAAnC;AACD;;AACD,WAAO,IAAP;AACD;;AAnE4C","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport {MathArray} from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport {config} from '../../lib/common';\n\n/** Base class for matrices */\nexport abstract class Matrix extends MathArray {\n abstract get RANK(): number;\n\n // fromObject(object) {\n // const array = object.elements;\n // return this.fromRowMajor(array);\n // }\n // toObject(object) {\n // const array = object.elements;\n // this.toRowMajor(array);\n // return object;\n // }\n\n // TODO better override formatString?\n override toString(): string {\n let string = '[';\n if (config.printRowMajor) {\n string += 'row-major:';\n for (let row = 0; row < this.RANK; ++row) {\n for (let col = 0; col < this.RANK; ++col) {\n string += ` ${this[col * this.RANK + row]}`;\n }\n }\n } else {\n string += 'column-major:';\n for (let i = 0; i < this.ELEMENTS; ++i) {\n string += ` ${this[i]}`;\n }\n }\n string += ']';\n return string;\n }\n\n getElementIndex(row: number, col: number): number {\n return col * this.RANK + row;\n }\n\n // By default assumes row major indices\n getElement(row: number, col: number): number {\n return this[col * this.RANK + row];\n }\n\n // By default assumes row major indices\n setElement(row: number, col: number, value: number): this {\n this[col * this.RANK + row] = checkNumber(value);\n return this;\n }\n getColumn<NumArrayT>(columnIndex: number, result: NumArrayT): NumArrayT;\n getColumn(columnIndex: number): number[];\n\n getColumn(\n columnIndex: number,\n result: number[] = new Array<number>(this.RANK).fill(-0)\n ): number[] {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n result[i] = this[firstIndex + i];\n }\n return result;\n }\n\n setColumn(columnIndex: number, columnVector: Readonly<NumericArray>): this {\n const firstIndex = columnIndex * this.RANK;\n for (let i = 0; i < this.RANK; ++i) {\n this[firstIndex + i] = columnVector[i];\n }\n return this;\n }\n}\n"],"file":"matrix.js"}
@@ -1,7 +1,7 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import MathArray from './math-array';
2
+ import { MathArray } from './math-array';
3
3
  /** Base class for vectors with at least 2 elements */
4
- export default abstract class Vector extends MathArray {
4
+ export declare abstract class Vector extends MathArray {
5
5
  get x(): number;
6
6
  set x(value: number);
7
7
  get y(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/classes/base/vector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,sDAAsD;AACtD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAO,SAAQ,SAAS;IAGpD,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED;;;;;OAKG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAInD,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAS1D,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAU9C,SAAS,IAAI,IAAI;IAUjB,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IASpD,MAAM,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IAWlD,QAAQ,IAAI,MAAM;IAGlB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAGlD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAIzD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAK/B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAI3E,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAI5D"}
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/classes/base/vector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAIvC,sDAAsD;AACtD,8BAAsB,MAAO,SAAQ,SAAS;IAG5C,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED;;;;;OAKG;IACH,GAAG,IAAI,MAAM;IAIb;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAInD,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAS1D,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAU9C,SAAS,IAAI,IAAI;IAUjB,QAAQ,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IASpD,MAAM,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI;IAWlD,QAAQ,IAAI,MAAM;IAGlB,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAGlD,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAIzD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAK/B,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5C,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAItE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAI3E,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAI5D"}
@@ -1,7 +1,7 @@
1
- import MathArray from "./math-array.js";
1
+ import { MathArray } from "./math-array.js";
2
2
  import { checkNumber } from "../../lib/validators.js";
3
- import assert from "../../lib/assert.js";
4
- export default class Vector extends MathArray {
3
+ import { assert } from "../../lib/assert.js";
4
+ export class Vector extends MathArray {
5
5
  get x() {
6
6
  return this[0];
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/base/vector.ts"],"names":["MathArray","checkNumber","assert","Vector","x","value","y","len","Math","sqrt","lengthSquared","magnitude","length","i","ELEMENTS","magnitudeSquared","distance","mathArray","distanceSquared","dist","dot","product","normalize","check","multiply","vectors","vector","divide","lengthSq","distanceTo","distanceToSquared","getComponent","setComponent","addVectors","a","b","copy","add","subVectors","subtract","multiplyVectors","addScaledVector","constructor","multiplyScalar"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport MathArray from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport assert from '../../lib/assert';\n\n/** Base class for vectors with at least 2 elements */\nexport default abstract class Vector extends MathArray {\n // ACCESSORS\n\n get x(): number {\n return this[0];\n }\n\n set x(value: number) {\n this[0] = checkNumber(value);\n }\n\n get y(): number {\n return this[1];\n }\n\n set y(value: number) {\n this[1] = checkNumber(value);\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n *\n * @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements\n * Instead we provide `len` and `magnitude`\n */\n len(): number {\n return Math.sqrt(this.lengthSquared());\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n */\n magnitude(): number {\n return this.len();\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n lengthSquared(): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n length += this[i] * this[i];\n }\n return length;\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n magnitudeSquared(): number {\n return this.lengthSquared();\n }\n\n distance(mathArray: Readonly<NumericArray>): number {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n\n distanceSquared(mathArray: Readonly<NumericArray>): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const dist = this[i] - mathArray[i];\n length += dist * dist;\n }\n return checkNumber(length);\n }\n\n dot(mathArray: Readonly<NumericArray>): number {\n let product = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n product += this[i] * mathArray[i];\n }\n return checkNumber(product);\n }\n\n // MODIFIERS\n\n normalize(): this {\n const length = this.magnitude();\n if (length !== 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= length;\n }\n }\n return this.check();\n }\n\n multiply(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= vector[i];\n }\n }\n return this.check();\n }\n\n divide(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= vector[i];\n }\n }\n return this.check();\n }\n\n // THREE.js compatibility\n\n lengthSq(): number {\n return this.lengthSquared();\n }\n distanceTo(vector: Readonly<NumericArray>): number {\n return this.distance(vector);\n }\n distanceToSquared(vector: Readonly<NumericArray>): number {\n return this.distanceSquared(vector);\n }\n\n getComponent(i: number): number {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n\n setComponent(i: number, value: number): this {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n this[i] = value;\n return this.check();\n }\n\n addVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).add(b);\n }\n\n subVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).subtract(b);\n }\n\n multiplyVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).multiply(b);\n }\n\n addScaledVector(a: Readonly<NumericArray>, b: number): this {\n // @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return this.add((new this.constructor(a) as this).multiplyScalar(b));\n }\n}\n"],"file":"vector.js"}
1
+ {"version":3,"sources":["../../../src/classes/base/vector.ts"],"names":["MathArray","checkNumber","assert","Vector","x","value","y","len","Math","sqrt","lengthSquared","magnitude","length","i","ELEMENTS","magnitudeSquared","distance","mathArray","distanceSquared","dist","dot","product","normalize","check","multiply","vectors","vector","divide","lengthSq","distanceTo","distanceToSquared","getComponent","setComponent","addVectors","a","b","copy","add","subVectors","subtract","multiplyVectors","addScaledVector","constructor","multiplyScalar"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {NumericArray} from '@math.gl/types';\nimport {MathArray} from './math-array';\nimport {checkNumber} from '../../lib/validators';\nimport {assert} from '../../lib/assert';\n\n/** Base class for vectors with at least 2 elements */\nexport abstract class Vector extends MathArray {\n // ACCESSORS\n\n get x(): number {\n return this[0];\n }\n\n set x(value: number) {\n this[0] = checkNumber(value);\n }\n\n get y(): number {\n return this[1];\n }\n\n set y(value: number) {\n this[1] = checkNumber(value);\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n *\n * @note `length` is a reserved word for Arrays, so `v.length()` will return number of elements\n * Instead we provide `len` and `magnitude`\n */\n len(): number {\n return Math.sqrt(this.lengthSquared());\n }\n\n /**\n * Returns the length of the vector from the origin to the point described by this vector\n */\n magnitude(): number {\n return this.len();\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n lengthSquared(): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n length += this[i] * this[i];\n }\n return length;\n }\n\n /**\n * Returns the squared length of the vector from the origin to the point described by this vector\n */\n magnitudeSquared(): number {\n return this.lengthSquared();\n }\n\n distance(mathArray: Readonly<NumericArray>): number {\n return Math.sqrt(this.distanceSquared(mathArray));\n }\n\n distanceSquared(mathArray: Readonly<NumericArray>): number {\n let length = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n const dist = this[i] - mathArray[i];\n length += dist * dist;\n }\n return checkNumber(length);\n }\n\n dot(mathArray: Readonly<NumericArray>): number {\n let product = 0;\n for (let i = 0; i < this.ELEMENTS; ++i) {\n product += this[i] * mathArray[i];\n }\n return checkNumber(product);\n }\n\n // MODIFIERS\n\n normalize(): this {\n const length = this.magnitude();\n if (length !== 0) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= length;\n }\n }\n return this.check();\n }\n\n multiply(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] *= vector[i];\n }\n }\n return this.check();\n }\n\n divide(...vectors: Readonly<NumericArray>[]): this {\n for (const vector of vectors) {\n for (let i = 0; i < this.ELEMENTS; ++i) {\n this[i] /= vector[i];\n }\n }\n return this.check();\n }\n\n // THREE.js compatibility\n\n lengthSq(): number {\n return this.lengthSquared();\n }\n distanceTo(vector: Readonly<NumericArray>): number {\n return this.distance(vector);\n }\n distanceToSquared(vector: Readonly<NumericArray>): number {\n return this.distanceSquared(vector);\n }\n\n getComponent(i: number): number {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n return checkNumber(this[i]);\n }\n\n setComponent(i: number, value: number): this {\n assert(i >= 0 && i < this.ELEMENTS, 'index is out of range');\n this[i] = value;\n return this.check();\n }\n\n addVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).add(b);\n }\n\n subVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).subtract(b);\n }\n\n multiplyVectors(a: Readonly<NumericArray>, b: Readonly<NumericArray>): this {\n return this.copy(a).multiply(b);\n }\n\n addScaledVector(a: Readonly<NumericArray>, b: number): this {\n // @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.\n return this.add((new this.constructor(a) as this).multiplyScalar(b));\n }\n}\n"],"file":"vector.js"}
@@ -1,5 +1,5 @@
1
- import MathArray from './base/math-array';
2
- import Quaternion from './quaternion';
1
+ import { MathArray } from './base/math-array';
2
+ import { Quaternion } from './quaternion';
3
3
  import { NumericArray } from '@math.gl/types';
4
4
  declare enum RotationOrder {
5
5
  ZYX = 0,
@@ -9,7 +9,7 @@ declare enum RotationOrder {
9
9
  YZX = 4,
10
10
  XYZ = 5
11
11
  }
12
- export default class Euler extends MathArray {
12
+ export declare class Euler extends MathArray {
13
13
  static get ZYX(): RotationOrder;
14
14
  static get YXZ(): RotationOrder;
15
15
  static get XZY(): RotationOrder;
@@ -1 +1 @@
1
- {"version":3,"file":"euler.d.ts","sourceRoot":"","sources":["../../src/classes/euler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"euler.d.ts","sourceRoot":"","sources":["../../src/classes/euler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import MathArray from "./base/math-array.js";
2
- import Quaternion from "./quaternion.js";
1
+ import { MathArray } from "./base/math-array.js";
2
+ import { Quaternion } from "./quaternion.js";
3
3
  import { clamp } from "../lib/common.js";
4
4
  import { checkNumber } from "../lib/validators.js";
5
5
  const ERR_UNKNOWN_ORDER = 'Unknown Euler angle order';
@@ -15,7 +15,7 @@ var RotationOrder;
15
15
  RotationOrder[RotationOrder["XYZ"] = 5] = "XYZ";
16
16
  })(RotationOrder || (RotationOrder = {}));
17
17
 
18
- export default class Euler extends MathArray {
18
+ export class Euler extends MathArray {
19
19
  static get ZYX() {
20
20
  return RotationOrder.ZYX;
21
21
  }
@@ -269,7 +269,7 @@ export default class Euler extends MathArray {
269
269
  getQuaternion() {
270
270
  const q = new Quaternion();
271
271
 
272
- switch (this[4]) {
272
+ switch (this[3]) {
273
273
  case RotationOrder.XYZ:
274
274
  return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);
275
275
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/classes/euler.ts"],"names":["MathArray","Quaternion","clamp","checkNumber","ERR_UNKNOWN_ORDER","ALMOST_ONE","RotationOrder","Euler","ZYX","YXZ","XZY","ZXY","YZX","XYZ","RollPitchYaw","DefaultOrder","RotationOrders","rotationOrder","order","ELEMENTS","constructor","x","y","z","arguments","length","Array","isArray","fromVector3","set","fromQuaternion","quaternion","w","ysqr","t0","t1","t2","t3","t4","roll","Math","atan2","pitch","asin","yaw","fromObject","object","Error","copy","array","Number","isFinite","check","validate","validateOrder","toArray","offset","toArray4","toVector3","result","value","alpha","beta","gamma","phi","theta","psi","checkOrder","v","fromArray","undefined","fromRollPitchYaw","fromRotationMatrix","m","_fromRotationMatrix","getRotationMatrix","_getRotationMatrix","getQuaternion","q","rotateX","rotateY","rotateZ","m11","m12","m13","m21","m22","m23","m31","m32","m33","abs","te","a","cos","c","e","b","sin","d","f","ae","af","be","bf","ce","cf","de","df","ac","ad","bc","bd","toQuaternion","cy","sy","cr","sr","cp","sp"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport MathArray from './base/math-array';\nimport Quaternion from './quaternion';\nimport {NumericArray} from '@math.gl/types';\n\nimport {clamp} from '../lib/common';\nimport {checkNumber} from '../lib/validators';\n\n// Internal constants\nconst ERR_UNKNOWN_ORDER = 'Unknown Euler angle order';\nconst ALMOST_ONE = 0.99999;\n\nenum RotationOrder {\n ZYX = 0,\n YXZ = 1,\n XZY = 2,\n ZXY = 3,\n YZX = 4,\n XYZ = 5\n}\n\nexport default class Euler extends MathArray {\n // Constants\n static get ZYX(): RotationOrder {\n return RotationOrder.ZYX;\n }\n static get YXZ(): RotationOrder {\n return RotationOrder.YXZ;\n }\n static get XZY(): RotationOrder {\n return RotationOrder.XZY;\n }\n static get ZXY(): RotationOrder {\n return RotationOrder.ZXY;\n }\n static get YZX(): RotationOrder {\n return RotationOrder.YZX;\n }\n static get XYZ(): RotationOrder {\n return RotationOrder.XYZ;\n }\n static get RollPitchYaw(): RotationOrder {\n return RotationOrder.ZYX;\n }\n static get DefaultOrder(): RotationOrder {\n return RotationOrder.ZYX;\n }\n static get RotationOrders(): typeof RotationOrder {\n return RotationOrder;\n }\n static rotationOrder(order: RotationOrder): string {\n return RotationOrder[order];\n }\n get ELEMENTS(): number {\n return 4;\n }\n\n /**\n * @class\n * @param {Number | Number[]} x\n * @param {Number=} [y]\n * @param {Number=} [z]\n * @param {Number=} [order]\n */\n constructor(x = 0, y = 0, z = 0, order = Euler.DefaultOrder) {\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 (arguments.length > 0 && Array.isArray(arguments[0])) {\n // eslint-disable-next-line prefer-rest-params\n // @ts-expect-error\n this.fromVector3(...arguments);\n } else {\n this.set(x, y, z, order);\n }\n }\n\n fromQuaternion(quaternion: Readonly<NumericArray>): this {\n const [x, y, z, w] = quaternion;\n const ysqr = y * y;\n const t0 = -2 * (ysqr + z * z) + 1;\n const t1 = +2 * (x * y + w * z);\n let t2 = -2 * (x * z - w * y);\n const t3 = +2 * (y * z + w * x);\n const t4 = -2 * (x * x + ysqr) + 1;\n t2 = t2 > 1 ? 1 : t2;\n t2 = t2 < -1 ? -1 : t2;\n const roll = Math.atan2(t3, t4);\n const pitch = Math.asin(t2);\n const yaw = Math.atan2(t1, t0);\n return this.set(roll, pitch, yaw, Euler.RollPitchYaw);\n }\n\n fromObject(object: Record<string, unknown>): this {\n throw new Error('not implemented');\n // return this.set(object.x, object.y, object.z, object.order);\n }\n\n // fromQuaternion(q, order) {\n // this._fromRotationMat[-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n // return this.check();\n // }\n // If copied array does contain fourth element, preserves currently set order\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n // @ts-expect-error\n this[3] = Number.isFinite(array[3]) || this.order;\n return this.check();\n }\n\n // Sets the three angles, and optionally sets the rotation order\n // If order is not specified, preserves currently set order\n set(x = 0, y = 0, z = 0, order: RotationOrder): this {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n this[3] = Number.isFinite(order) ? order : this[3];\n return this.check();\n }\n\n override validate(): boolean {\n return (\n validateOrder(this[3]) &&\n Number.isFinite(this[0]) &&\n Number.isFinite(this[1]) &&\n Number.isFinite(this[2])\n );\n }\n\n // Does not copy the orientation element\n override toArray(array: NumericArray = [], offset: number = 0): NumericArray {\n array[offset] = this[0];\n array[offset + 1] = this[1];\n array[offset + 2] = this[2];\n return array;\n }\n\n // Copies the orientation element\n toArray4(array: NumericArray = [], offset: number = 0): NumericArray {\n array[offset] = this[0];\n array[offset + 1] = this[1];\n array[offset + 2] = this[2];\n array[offset + 3] = this[3];\n return array;\n }\n\n toVector3(result: NumericArray = [-0, -0, -0]): NumericArray {\n result[0] = this[0];\n result[1] = this[1];\n result[2] = this[2];\n return result;\n }\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n // x, y, z angle notation (note: only corresponds to axis in XYZ orientation)\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 // alpha, beta, gamma angle notation\n get alpha(): number {\n return this[0];\n }\n set alpha(value: number) {\n this[0] = checkNumber(value);\n }\n\n get beta(): number {\n return this[1];\n }\n set beta(value: number) {\n this[1] = checkNumber(value);\n }\n\n get gamma(): number {\n return this[2];\n }\n set gamma(value: number) {\n this[2] = checkNumber(value);\n }\n\n // phi, theta, psi angle notation\n get phi(): number {\n return this[0];\n }\n set phi(value: number) {\n this[0] = checkNumber(value);\n }\n\n get theta(): number {\n return this[1];\n }\n set theta(value: number) {\n this[1] = checkNumber(value);\n }\n\n get psi(): number {\n return this[2];\n }\n set psi(value: number) {\n this[2] = checkNumber(value);\n }\n // roll, pitch, yaw angle notation\n\n get roll(): number {\n return this[0];\n }\n set roll(value: number) {\n this[0] = checkNumber(value);\n }\n\n get pitch(): number {\n return this[1];\n }\n set pitch(value: number) {\n this[1] = checkNumber(value);\n }\n\n get yaw(): number {\n return this[2];\n }\n set yaw(value: number) {\n this[2] = checkNumber(value);\n }\n\n // rotation order, in all three angle notations\n get order(): RotationOrder {\n return this[3];\n }\n set order(value: RotationOrder) {\n this[3] = checkOrder(value);\n }\n\n // Constructors\n fromVector3(v: Readonly<NumericArray>, order: RotationOrder): this {\n return this.set(v[0], v[1], v[2], Number.isFinite(order) ? order : this[3]);\n }\n\n // TODO - with and without 4th element\n override fromArray(array: Readonly<NumericArray>, offset: number = 0): this {\n this[0] = array[0 + offset];\n this[1] = array[1 + offset];\n this[2] = array[2 + offset];\n if (array[3] !== undefined) {\n this[3] = array[3];\n }\n return this.check();\n }\n\n // Common ZYX rotation order\n fromRollPitchYaw(roll: number, pitch: number, yaw: number): this {\n return this.set(roll, pitch, yaw, RotationOrder.ZYX);\n }\n\n fromRotationMatrix(m: Readonly<NumericArray>, order: RotationOrder = Euler.DefaultOrder): this {\n this._fromRotationMatrix(m, order);\n return this.check();\n }\n\n // ACCESSORS\n\n getRotationMatrix(m: NumericArray): NumericArray {\n return this._getRotationMatrix(m);\n }\n\n // TODO - move to Quaternion\n getQuaternion(): Quaternion {\n const q = new Quaternion();\n switch (this[4]) {\n case RotationOrder.XYZ:\n return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);\n case RotationOrder.YXZ:\n return q.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);\n case RotationOrder.ZXY:\n return q.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);\n case RotationOrder.ZYX:\n return q.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);\n case RotationOrder.YZX:\n return q.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);\n case RotationOrder.XZY:\n return q.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n }\n\n // INTERNAL METHODS\n // Conversion from Euler to rotation matrix and from matrix to Euler\n // Adapted from three.js under MIT license\n // // WARNING: this discards revolution information -bhouston\n // reorder(newOrder) {\n // const q = new Quaternion().setFromEuler(this);\n // return this.setFromQuaternion(q, newOrder);\n /* eslint-disable complexity, max-statements, one-var */\n _fromRotationMatrix(m: Readonly<NumericArray>, order = Euler.DefaultOrder): this {\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n const m11 = m[0],\n m12 = m[4],\n m13 = m[8];\n const m21 = m[1],\n m22 = m[5],\n m23 = m[9];\n const m31 = m[2],\n m32 = m[6],\n m33 = m[10];\n order = order || this[3];\n switch (order) {\n case Euler.XYZ:\n this[1] = Math.asin(clamp(m13, -1, 1));\n if (Math.abs(m13) < ALMOST_ONE) {\n this[0] = Math.atan2(-m23, m33);\n this[2] = Math.atan2(-m12, m11);\n } else {\n this[0] = Math.atan2(m32, m22);\n this[2] = 0;\n }\n break;\n case Euler.YXZ:\n this[0] = Math.asin(-clamp(m23, -1, 1));\n if (Math.abs(m23) < ALMOST_ONE) {\n this[1] = Math.atan2(m13, m33);\n this[2] = Math.atan2(m21, m22);\n } else {\n this[1] = Math.atan2(-m31, m11);\n this[2] = 0;\n }\n break;\n case Euler.ZXY:\n this[0] = Math.asin(clamp(m32, -1, 1));\n if (Math.abs(m32) < ALMOST_ONE) {\n this[1] = Math.atan2(-m31, m33);\n this[2] = Math.atan2(-m12, m22);\n } else {\n this[1] = 0;\n this[2] = Math.atan2(m21, m11);\n }\n break;\n case Euler.ZYX:\n this[1] = Math.asin(-clamp(m31, -1, 1));\n if (Math.abs(m31) < ALMOST_ONE) {\n this[0] = Math.atan2(m32, m33);\n this[2] = Math.atan2(m21, m11);\n } else {\n this[0] = 0;\n this[2] = Math.atan2(-m12, m22);\n }\n break;\n case Euler.YZX:\n this[2] = Math.asin(clamp(m21, -1, 1));\n if (Math.abs(m21) < ALMOST_ONE) {\n this[0] = Math.atan2(-m23, m22);\n this[1] = Math.atan2(-m31, m11);\n } else {\n this[0] = 0;\n this[1] = Math.atan2(m13, m33);\n }\n break;\n case Euler.XZY:\n this[2] = Math.asin(-clamp(m12, -1, 1));\n if (Math.abs(m12) < ALMOST_ONE) {\n this[0] = Math.atan2(m32, m22);\n this[1] = Math.atan2(m13, m11);\n } else {\n this[0] = Math.atan2(-m23, m33);\n this[1] = 0;\n }\n break;\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n this[3] = order;\n return this;\n }\n\n _getRotationMatrix(result: NumericArray): NumericArray {\n const te = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n const x = this.x,\n y = this.y,\n z = this.z;\n const a = Math.cos(x);\n const c = Math.cos(y);\n const e = Math.cos(z);\n const b = Math.sin(x);\n const d = Math.sin(y);\n const f = Math.sin(z);\n switch (this[3]) {\n case Euler.XYZ: {\n const ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = -c * f;\n te[8] = d;\n te[1] = af + be * d;\n te[5] = ae - bf * d;\n te[9] = -b * c;\n te[2] = bf - ae * d;\n te[6] = be + af * d;\n te[10] = a * c;\n break;\n }\n case Euler.YXZ: {\n const ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce + df * b;\n te[4] = de * b - cf;\n te[8] = a * d;\n te[1] = a * f;\n te[5] = a * e;\n te[9] = -b;\n te[2] = cf * b - de;\n te[6] = df + ce * b;\n te[10] = a * c;\n break;\n }\n case Euler.ZXY: {\n const ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce - df * b;\n te[4] = -a * f;\n te[8] = de + cf * b;\n te[1] = cf + de * b;\n te[5] = a * e;\n te[9] = df - ce * b;\n te[2] = -a * d;\n te[6] = b;\n te[10] = a * c;\n break;\n }\n case Euler.ZYX: {\n const ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = be * d - af;\n te[8] = ae * d + bf;\n te[1] = c * f;\n te[5] = bf * d + ae;\n te[9] = af * d - be;\n te[2] = -d;\n te[6] = b * c;\n te[10] = a * c;\n break;\n }\n case Euler.YZX: {\n const ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = bd - ac * f;\n te[8] = bc * f + ad;\n te[1] = f;\n te[5] = a * e;\n te[9] = -b * e;\n te[2] = -d * e;\n te[6] = ad * f + bc;\n te[10] = ac - bd * f;\n break;\n }\n case Euler.XZY: {\n const ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = -f;\n te[8] = d * e;\n te[1] = ac * f + bd;\n te[5] = a * e;\n te[9] = ad * f - bc;\n te[2] = bc * f - ad;\n te[6] = b * e;\n te[10] = bd * f + ac;\n break;\n }\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n // last column\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n // bottom row\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return te;\n }\n\n toQuaternion(): Quaternion {\n // Abbreviations for the various angular functions\n const cy = Math.cos(this.yaw * 0.5);\n const sy = Math.sin(this.yaw * 0.5);\n const cr = Math.cos(this.roll * 0.5);\n const sr = Math.sin(this.roll * 0.5);\n const cp = Math.cos(this.pitch * 0.5);\n const sp = Math.sin(this.pitch * 0.5);\n const w = cy * cr * cp + sy * sr * sp;\n const x = cy * sr * cp - sy * cr * sp;\n const y = cy * cr * sp + sy * sr * cp;\n const z = sy * cr * cp - cy * sr * sp;\n return new Quaternion(x, y, z, w);\n }\n}\n\n// HELPER FUNCTIONS\n\nfunction validateOrder(value: number): boolean {\n return value >= 0 && value < 6;\n}\n\nfunction checkOrder(value: number) {\n if (value < 0 && value >= 6) {\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n return value;\n}\n"],"file":"euler.js"}
1
+ {"version":3,"sources":["../../src/classes/euler.ts"],"names":["MathArray","Quaternion","clamp","checkNumber","ERR_UNKNOWN_ORDER","ALMOST_ONE","RotationOrder","Euler","ZYX","YXZ","XZY","ZXY","YZX","XYZ","RollPitchYaw","DefaultOrder","RotationOrders","rotationOrder","order","ELEMENTS","constructor","x","y","z","arguments","length","Array","isArray","fromVector3","set","fromQuaternion","quaternion","w","ysqr","t0","t1","t2","t3","t4","roll","Math","atan2","pitch","asin","yaw","fromObject","object","Error","copy","array","Number","isFinite","check","validate","validateOrder","toArray","offset","toArray4","toVector3","result","value","alpha","beta","gamma","phi","theta","psi","checkOrder","v","fromArray","undefined","fromRollPitchYaw","fromRotationMatrix","m","_fromRotationMatrix","getRotationMatrix","_getRotationMatrix","getQuaternion","q","rotateX","rotateY","rotateZ","m11","m12","m13","m21","m22","m23","m31","m32","m33","abs","te","a","cos","c","e","b","sin","d","f","ae","af","be","bf","ce","cf","de","df","ac","ad","bc","bd","toQuaternion","cy","sy","cr","sr","cp","sp"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport {MathArray} from './base/math-array';\nimport {Quaternion} from './quaternion';\nimport {NumericArray} from '@math.gl/types';\n\nimport {clamp} from '../lib/common';\nimport {checkNumber} from '../lib/validators';\n\n// Internal constants\nconst ERR_UNKNOWN_ORDER = 'Unknown Euler angle order';\nconst ALMOST_ONE = 0.99999;\n\nenum RotationOrder {\n ZYX = 0,\n YXZ = 1,\n XZY = 2,\n ZXY = 3,\n YZX = 4,\n XYZ = 5\n}\n\nexport class Euler extends MathArray {\n // Constants\n static get ZYX(): RotationOrder {\n return RotationOrder.ZYX;\n }\n static get YXZ(): RotationOrder {\n return RotationOrder.YXZ;\n }\n static get XZY(): RotationOrder {\n return RotationOrder.XZY;\n }\n static get ZXY(): RotationOrder {\n return RotationOrder.ZXY;\n }\n static get YZX(): RotationOrder {\n return RotationOrder.YZX;\n }\n static get XYZ(): RotationOrder {\n return RotationOrder.XYZ;\n }\n static get RollPitchYaw(): RotationOrder {\n return RotationOrder.ZYX;\n }\n static get DefaultOrder(): RotationOrder {\n return RotationOrder.ZYX;\n }\n static get RotationOrders(): typeof RotationOrder {\n return RotationOrder;\n }\n static rotationOrder(order: RotationOrder): string {\n return RotationOrder[order];\n }\n get ELEMENTS(): number {\n return 4;\n }\n\n /**\n * @class\n * @param {Number | Number[]} x\n * @param {Number=} [y]\n * @param {Number=} [z]\n * @param {Number=} [order]\n */\n constructor(x = 0, y = 0, z = 0, order = Euler.DefaultOrder) {\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 (arguments.length > 0 && Array.isArray(arguments[0])) {\n // eslint-disable-next-line prefer-rest-params\n // @ts-expect-error\n this.fromVector3(...arguments);\n } else {\n this.set(x, y, z, order);\n }\n }\n\n fromQuaternion(quaternion: Readonly<NumericArray>): this {\n const [x, y, z, w] = quaternion;\n const ysqr = y * y;\n const t0 = -2 * (ysqr + z * z) + 1;\n const t1 = +2 * (x * y + w * z);\n let t2 = -2 * (x * z - w * y);\n const t3 = +2 * (y * z + w * x);\n const t4 = -2 * (x * x + ysqr) + 1;\n t2 = t2 > 1 ? 1 : t2;\n t2 = t2 < -1 ? -1 : t2;\n const roll = Math.atan2(t3, t4);\n const pitch = Math.asin(t2);\n const yaw = Math.atan2(t1, t0);\n return this.set(roll, pitch, yaw, Euler.RollPitchYaw);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fromObject(object: Record<string, unknown>): this {\n throw new Error('not implemented');\n // return this.set(object.x, object.y, object.z, object.order);\n }\n\n // fromQuaternion(q, order) {\n // this._fromRotationMat[-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n // return this.check();\n // }\n // If copied array does contain fourth element, preserves currently set order\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n // @ts-expect-error\n this[3] = Number.isFinite(array[3]) || this.order;\n return this.check();\n }\n\n // Sets the three angles, and optionally sets the rotation order\n // If order is not specified, preserves currently set order\n set(x = 0, y = 0, z = 0, order: RotationOrder): this {\n this[0] = x;\n this[1] = y;\n this[2] = z;\n this[3] = Number.isFinite(order) ? order : this[3];\n return this.check();\n }\n\n override validate(): boolean {\n return (\n validateOrder(this[3]) &&\n Number.isFinite(this[0]) &&\n Number.isFinite(this[1]) &&\n Number.isFinite(this[2])\n );\n }\n\n // Does not copy the orientation element\n override toArray(array: NumericArray = [], offset: number = 0): NumericArray {\n array[offset] = this[0];\n array[offset + 1] = this[1];\n array[offset + 2] = this[2];\n return array;\n }\n\n // Copies the orientation element\n toArray4(array: NumericArray = [], offset: number = 0): NumericArray {\n array[offset] = this[0];\n array[offset + 1] = this[1];\n array[offset + 2] = this[2];\n array[offset + 3] = this[3];\n return array;\n }\n\n toVector3(result: NumericArray = [-0, -0, -0]): NumericArray {\n result[0] = this[0];\n result[1] = this[1];\n result[2] = this[2];\n return result;\n }\n /* eslint-disable no-multi-spaces, brace-style, no-return-assign */\n // x, y, z angle notation (note: only corresponds to axis in XYZ orientation)\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 // alpha, beta, gamma angle notation\n get alpha(): number {\n return this[0];\n }\n set alpha(value: number) {\n this[0] = checkNumber(value);\n }\n\n get beta(): number {\n return this[1];\n }\n set beta(value: number) {\n this[1] = checkNumber(value);\n }\n\n get gamma(): number {\n return this[2];\n }\n set gamma(value: number) {\n this[2] = checkNumber(value);\n }\n\n // phi, theta, psi angle notation\n get phi(): number {\n return this[0];\n }\n set phi(value: number) {\n this[0] = checkNumber(value);\n }\n\n get theta(): number {\n return this[1];\n }\n set theta(value: number) {\n this[1] = checkNumber(value);\n }\n\n get psi(): number {\n return this[2];\n }\n set psi(value: number) {\n this[2] = checkNumber(value);\n }\n // roll, pitch, yaw angle notation\n\n get roll(): number {\n return this[0];\n }\n set roll(value: number) {\n this[0] = checkNumber(value);\n }\n\n get pitch(): number {\n return this[1];\n }\n set pitch(value: number) {\n this[1] = checkNumber(value);\n }\n\n get yaw(): number {\n return this[2];\n }\n set yaw(value: number) {\n this[2] = checkNumber(value);\n }\n\n // rotation order, in all three angle notations\n get order(): RotationOrder {\n return this[3];\n }\n set order(value: RotationOrder) {\n this[3] = checkOrder(value);\n }\n\n // Constructors\n fromVector3(v: Readonly<NumericArray>, order: RotationOrder): this {\n return this.set(v[0], v[1], v[2], Number.isFinite(order) ? order : this[3]);\n }\n\n // TODO - with and without 4th element\n override fromArray(array: Readonly<NumericArray>, offset: number = 0): this {\n this[0] = array[0 + offset];\n this[1] = array[1 + offset];\n this[2] = array[2 + offset];\n if (array[3] !== undefined) {\n this[3] = array[3];\n }\n return this.check();\n }\n\n // Common ZYX rotation order\n fromRollPitchYaw(roll: number, pitch: number, yaw: number): this {\n return this.set(roll, pitch, yaw, RotationOrder.ZYX);\n }\n\n fromRotationMatrix(m: Readonly<NumericArray>, order: RotationOrder = Euler.DefaultOrder): this {\n this._fromRotationMatrix(m, order);\n return this.check();\n }\n\n // ACCESSORS\n\n getRotationMatrix(m: NumericArray): NumericArray {\n return this._getRotationMatrix(m);\n }\n\n // TODO - move to Quaternion\n getQuaternion(): Quaternion {\n const q = new Quaternion();\n switch (this[3]) {\n case RotationOrder.XYZ:\n return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);\n case RotationOrder.YXZ:\n return q.rotateY(this[0]).rotateX(this[1]).rotateZ(this[2]);\n case RotationOrder.ZXY:\n return q.rotateZ(this[0]).rotateX(this[1]).rotateY(this[2]);\n case RotationOrder.ZYX:\n return q.rotateZ(this[0]).rotateY(this[1]).rotateX(this[2]);\n case RotationOrder.YZX:\n return q.rotateY(this[0]).rotateZ(this[1]).rotateX(this[2]);\n case RotationOrder.XZY:\n return q.rotateX(this[0]).rotateZ(this[1]).rotateY(this[2]);\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n }\n\n // INTERNAL METHODS\n // Conversion from Euler to rotation matrix and from matrix to Euler\n // Adapted from three.js under MIT license\n // // WARNING: this discards revolution information -bhouston\n // reorder(newOrder) {\n // const q = new Quaternion().setFromEuler(this);\n // return this.setFromQuaternion(q, newOrder);\n /* eslint-disable complexity, max-statements, one-var */\n _fromRotationMatrix(m: Readonly<NumericArray>, order = Euler.DefaultOrder): this {\n // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n const m11 = m[0],\n m12 = m[4],\n m13 = m[8];\n const m21 = m[1],\n m22 = m[5],\n m23 = m[9];\n const m31 = m[2],\n m32 = m[6],\n m33 = m[10];\n order = order || this[3];\n switch (order) {\n case Euler.XYZ:\n this[1] = Math.asin(clamp(m13, -1, 1));\n if (Math.abs(m13) < ALMOST_ONE) {\n this[0] = Math.atan2(-m23, m33);\n this[2] = Math.atan2(-m12, m11);\n } else {\n this[0] = Math.atan2(m32, m22);\n this[2] = 0;\n }\n break;\n case Euler.YXZ:\n this[0] = Math.asin(-clamp(m23, -1, 1));\n if (Math.abs(m23) < ALMOST_ONE) {\n this[1] = Math.atan2(m13, m33);\n this[2] = Math.atan2(m21, m22);\n } else {\n this[1] = Math.atan2(-m31, m11);\n this[2] = 0;\n }\n break;\n case Euler.ZXY:\n this[0] = Math.asin(clamp(m32, -1, 1));\n if (Math.abs(m32) < ALMOST_ONE) {\n this[1] = Math.atan2(-m31, m33);\n this[2] = Math.atan2(-m12, m22);\n } else {\n this[1] = 0;\n this[2] = Math.atan2(m21, m11);\n }\n break;\n case Euler.ZYX:\n this[1] = Math.asin(-clamp(m31, -1, 1));\n if (Math.abs(m31) < ALMOST_ONE) {\n this[0] = Math.atan2(m32, m33);\n this[2] = Math.atan2(m21, m11);\n } else {\n this[0] = 0;\n this[2] = Math.atan2(-m12, m22);\n }\n break;\n case Euler.YZX:\n this[2] = Math.asin(clamp(m21, -1, 1));\n if (Math.abs(m21) < ALMOST_ONE) {\n this[0] = Math.atan2(-m23, m22);\n this[1] = Math.atan2(-m31, m11);\n } else {\n this[0] = 0;\n this[1] = Math.atan2(m13, m33);\n }\n break;\n case Euler.XZY:\n this[2] = Math.asin(-clamp(m12, -1, 1));\n if (Math.abs(m12) < ALMOST_ONE) {\n this[0] = Math.atan2(m32, m22);\n this[1] = Math.atan2(m13, m11);\n } else {\n this[0] = Math.atan2(-m23, m33);\n this[1] = 0;\n }\n break;\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n this[3] = order;\n return this;\n }\n\n _getRotationMatrix(result: NumericArray): NumericArray {\n const te = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n const x = this.x,\n y = this.y,\n z = this.z;\n const a = Math.cos(x);\n const c = Math.cos(y);\n const e = Math.cos(z);\n const b = Math.sin(x);\n const d = Math.sin(y);\n const f = Math.sin(z);\n switch (this[3]) {\n case Euler.XYZ: {\n const ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = -c * f;\n te[8] = d;\n te[1] = af + be * d;\n te[5] = ae - bf * d;\n te[9] = -b * c;\n te[2] = bf - ae * d;\n te[6] = be + af * d;\n te[10] = a * c;\n break;\n }\n case Euler.YXZ: {\n const ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce + df * b;\n te[4] = de * b - cf;\n te[8] = a * d;\n te[1] = a * f;\n te[5] = a * e;\n te[9] = -b;\n te[2] = cf * b - de;\n te[6] = df + ce * b;\n te[10] = a * c;\n break;\n }\n case Euler.ZXY: {\n const ce = c * e,\n cf = c * f,\n de = d * e,\n df = d * f;\n te[0] = ce - df * b;\n te[4] = -a * f;\n te[8] = de + cf * b;\n te[1] = cf + de * b;\n te[5] = a * e;\n te[9] = df - ce * b;\n te[2] = -a * d;\n te[6] = b;\n te[10] = a * c;\n break;\n }\n case Euler.ZYX: {\n const ae = a * e,\n af = a * f,\n be = b * e,\n bf = b * f;\n te[0] = c * e;\n te[4] = be * d - af;\n te[8] = ae * d + bf;\n te[1] = c * f;\n te[5] = bf * d + ae;\n te[9] = af * d - be;\n te[2] = -d;\n te[6] = b * c;\n te[10] = a * c;\n break;\n }\n case Euler.YZX: {\n const ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = bd - ac * f;\n te[8] = bc * f + ad;\n te[1] = f;\n te[5] = a * e;\n te[9] = -b * e;\n te[2] = -d * e;\n te[6] = ad * f + bc;\n te[10] = ac - bd * f;\n break;\n }\n case Euler.XZY: {\n const ac = a * c,\n ad = a * d,\n bc = b * c,\n bd = b * d;\n te[0] = c * e;\n te[4] = -f;\n te[8] = d * e;\n te[1] = ac * f + bd;\n te[5] = a * e;\n te[9] = ad * f - bc;\n te[2] = bc * f - ad;\n te[6] = b * e;\n te[10] = bd * f + ac;\n break;\n }\n default:\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n // last column\n te[3] = 0;\n te[7] = 0;\n te[11] = 0;\n // bottom row\n te[12] = 0;\n te[13] = 0;\n te[14] = 0;\n te[15] = 1;\n return te;\n }\n\n toQuaternion(): Quaternion {\n // Abbreviations for the various angular functions\n const cy = Math.cos(this.yaw * 0.5);\n const sy = Math.sin(this.yaw * 0.5);\n const cr = Math.cos(this.roll * 0.5);\n const sr = Math.sin(this.roll * 0.5);\n const cp = Math.cos(this.pitch * 0.5);\n const sp = Math.sin(this.pitch * 0.5);\n const w = cy * cr * cp + sy * sr * sp;\n const x = cy * sr * cp - sy * cr * sp;\n const y = cy * cr * sp + sy * sr * cp;\n const z = sy * cr * cp - cy * sr * sp;\n return new Quaternion(x, y, z, w);\n }\n}\n\n// HELPER FUNCTIONS\n\nfunction validateOrder(value: number): boolean {\n return value >= 0 && value < 6;\n}\n\nfunction checkOrder(value: number) {\n if (value < 0 && value >= 6) {\n throw new Error(ERR_UNKNOWN_ORDER);\n }\n return value;\n}\n"],"file":"euler.js"}
@@ -1,5 +1,5 @@
1
1
  import { NumericArray } from '@math.gl/types';
2
- import Matrix from './base/matrix';
2
+ import { Matrix } from './base/matrix';
3
3
  declare enum INDICES {
4
4
  COL0ROW0 = 0,
5
5
  COL0ROW1 = 1,
@@ -11,7 +11,7 @@ declare enum INDICES {
11
11
  COL2ROW1 = 7,
12
12
  COL2ROW2 = 8
13
13
  }
14
- export default class Matrix3 extends Matrix {
14
+ export declare class Matrix3 extends Matrix {
15
15
  static get IDENTITY(): Readonly<Matrix3>;
16
16
  static get ZERO(): Readonly<Matrix3>;
17
17
  get ELEMENTS(): number;
@@ -30,6 +30,9 @@ export default class Matrix3 extends Matrix {
30
30
  fromObject(object: {
31
31
  [key: string]: any;
32
32
  }): this;
33
+ /** Calculates a 3x3 matrix from the given quaternion
34
+ * q quat Quaternion to create matrix from
35
+ */
33
36
  fromQuaternion(q: Readonly<NumericArray>): this;
34
37
  /**
35
38
  * accepts column major order, stores in column major order
@@ -1 +1 @@
1
- {"version":3,"file":"matrix3.d.ts","sourceRoot":"","sources":["../../src/classes/matrix3.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,MAAM,MAAM,eAAe,CAAC;AAWnC,aAAK,OAAO;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;CACb;AAID,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IACzC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEvC;IAED,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEnC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,OAAO,CAE5B;gBAEW,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IAC1C,kBAAkB;gBACN,GAAG,IAAI,EAAE,MAAM,EAAE;IAc7B,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAgBzC,QAAQ,IAAI,IAAI;IAIhB;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,IAAI;IAM9C,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK/C;;OAEG;IAEH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAaP;;OAEG;IAEH,WAAW,CACT,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAeP,WAAW,IAAI,MAAM;IAKrB,SAAS,IAAI,IAAI;IAKjB,+EAA+E;IAC/E,MAAM,IAAI,IAAI;IAMd,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAKnC,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAK5B,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IASnD,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAMlC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAmB9E,kBAAkB;IAClB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAIpF,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAIrF,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;CAGtF"}
1
+ {"version":3,"file":"matrix3.d.ts","sourceRoot":"","sources":["../../src/classes/matrix3.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAkBrC,aAAK,OAAO;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;CACb;AAID,qBAAa,OAAQ,SAAQ,MAAM;IACjC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEvC;IAED,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEnC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,OAAO,CAE5B;gBAEW,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IAC1C,kBAAkB;gBACN,GAAG,IAAI,EAAE,MAAM,EAAE;IAc7B,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAgBzC,QAAQ,IAAI,IAAI;IAIhB;;;;OAIG;IAEH,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,IAAI;IAI9C;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK/C;;OAEG;IAEH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAaP;;OAEG;IAEH,WAAW,CACT,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAeP,WAAW,IAAI,MAAM;IAKrB,SAAS,IAAI,IAAI;IAKjB,+EAA+E;IAC/E,MAAM,IAAI,IAAI;IAMd,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAKnC,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAK5B,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IASnD,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAMlC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAmB9E,kBAAkB;IAClB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAIpF,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAIrF,kBAAkB;IAClB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;CAGtF"}