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

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 (135) hide show
  1. package/dist/classes/base/math-array.d.ts +3 -3
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/{esm/classes → classes}/base/math-array.js +3 -2
  4. package/dist/classes/base/math-array.js.map +1 -0
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/{esm/classes → classes}/base/matrix.js +3 -3
  7. package/dist/classes/base/matrix.js.map +1 -0
  8. package/dist/{esm/classes → classes}/base/vector.js +3 -3
  9. package/dist/classes/base/vector.js.map +1 -0
  10. package/dist/classes/euler.d.ts +1 -1
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/{esm/classes → classes}/euler.js +4 -4
  13. package/dist/classes/euler.js.map +1 -0
  14. package/dist/classes/matrix3.d.ts +1 -1
  15. package/dist/classes/matrix3.d.ts.map +1 -1
  16. package/dist/{esm/classes → classes}/matrix3.js +4 -4
  17. package/dist/classes/matrix3.js.map +1 -0
  18. package/dist/classes/matrix4.d.ts +1 -1
  19. package/dist/classes/matrix4.d.ts.map +1 -1
  20. package/dist/{esm/classes → classes}/matrix4.js +3 -3
  21. package/dist/classes/matrix4.js.map +1 -0
  22. package/dist/classes/pose.d.ts +1 -1
  23. package/dist/classes/pose.d.ts.map +1 -1
  24. package/dist/{esm/classes → classes}/pose.js +3 -3
  25. package/dist/classes/pose.js.map +1 -0
  26. package/dist/classes/quaternion.d.ts +1 -1
  27. package/dist/classes/quaternion.d.ts.map +1 -1
  28. package/dist/{esm/classes → classes}/quaternion.js +3 -3
  29. package/dist/classes/quaternion.js.map +1 -0
  30. package/dist/classes/spherical-coordinates.d.ts +3 -3
  31. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  32. package/dist/{esm/classes → classes}/spherical-coordinates.js +3 -3
  33. package/dist/classes/spherical-coordinates.js.map +1 -0
  34. package/dist/classes/vector2.d.ts.map +1 -1
  35. package/dist/{esm/classes → classes}/vector2.js +4 -4
  36. package/dist/classes/vector2.js.map +1 -0
  37. package/dist/classes/vector3.d.ts.map +1 -1
  38. package/dist/{esm/classes → classes}/vector3.js +4 -4
  39. package/dist/classes/vector3.js.map +1 -0
  40. package/dist/classes/vector4.d.ts +1 -1
  41. package/dist/classes/vector4.d.ts.map +1 -1
  42. package/dist/{esm/classes → classes}/vector4.js +4 -4
  43. package/dist/classes/vector4.js.map +1 -0
  44. package/dist/{es5/docs → docs}/README.md +0 -0
  45. package/dist/index.cjs +2335 -0
  46. package/dist/index.js +16 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/{esm/lib → lib}/assert.js +0 -0
  49. package/dist/lib/assert.js.map +1 -0
  50. package/dist/lib/common.d.ts +1 -1
  51. package/dist/lib/common.d.ts.map +1 -1
  52. package/dist/{esm/lib → lib}/common.js +3 -7
  53. package/dist/lib/common.js.map +1 -0
  54. package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
  55. package/dist/lib/gl-matrix-extras.js.map +1 -0
  56. package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
  57. package/dist/{es5/lib → lib}/gl-matrix.d.js.map +0 -0
  58. package/dist/{esm/lib → lib}/math-utils.js +0 -0
  59. package/dist/lib/math-utils.js.map +1 -0
  60. package/dist/lib/validators.d.ts +1 -1
  61. package/dist/lib/validators.d.ts.map +1 -1
  62. package/dist/{esm/lib → lib}/validators.js +1 -1
  63. package/dist/lib/validators.js.map +1 -0
  64. package/package.json +7 -6
  65. package/src/classes/base/math-array.ts +10 -6
  66. package/src/classes/base/matrix.ts +1 -1
  67. package/src/classes/base/vector.ts +1 -1
  68. package/src/classes/euler.ts +4 -4
  69. package/src/classes/matrix3.ts +8 -4
  70. package/src/classes/matrix4.ts +7 -2
  71. package/src/classes/quaternion.ts +6 -4
  72. package/src/classes/spherical-coordinates.ts +2 -1
  73. package/src/classes/vector2.ts +1 -0
  74. package/src/classes/vector3.ts +1 -0
  75. package/src/classes/vector4.ts +6 -4
  76. package/src/lib/common.ts +3 -7
  77. package/src/lib/validators.ts +2 -2
  78. package/dist/es5/classes/base/math-array.js +0 -348
  79. package/dist/es5/classes/base/math-array.js.map +0 -1
  80. package/dist/es5/classes/base/matrix.js +0 -108
  81. package/dist/es5/classes/base/matrix.js.map +0 -1
  82. package/dist/es5/classes/base/vector.js +0 -210
  83. package/dist/es5/classes/base/vector.js.map +0 -1
  84. package/dist/es5/classes/euler.js +0 -654
  85. package/dist/es5/classes/euler.js.map +0 -1
  86. package/dist/es5/classes/matrix3.js +0 -284
  87. package/dist/es5/classes/matrix3.js.map +0 -1
  88. package/dist/es5/classes/matrix4.js +0 -574
  89. package/dist/es5/classes/matrix4.js.map +0 -1
  90. package/dist/es5/classes/pose.js +0 -159
  91. package/dist/es5/classes/pose.js.map +0 -1
  92. package/dist/es5/classes/quaternion.js +0 -323
  93. package/dist/es5/classes/quaternion.js.map +0 -1
  94. package/dist/es5/classes/spherical-coordinates.js +0 -208
  95. package/dist/es5/classes/spherical-coordinates.js.map +0 -1
  96. package/dist/es5/classes/vector2.js +0 -156
  97. package/dist/es5/classes/vector2.js.map +0 -1
  98. package/dist/es5/classes/vector3.js +0 -213
  99. package/dist/es5/classes/vector3.js.map +0 -1
  100. package/dist/es5/classes/vector4.js +0 -185
  101. package/dist/es5/classes/vector4.js.map +0 -1
  102. package/dist/es5/index.js +0 -236
  103. package/dist/es5/index.js.map +0 -1
  104. package/dist/es5/lib/assert.js +0 -13
  105. package/dist/es5/lib/assert.js.map +0 -1
  106. package/dist/es5/lib/common.js +0 -255
  107. package/dist/es5/lib/common.js.map +0 -1
  108. package/dist/es5/lib/gl-matrix-extras.js +0 -61
  109. package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
  110. package/dist/es5/lib/gl-matrix.d.js +0 -2
  111. package/dist/es5/lib/math-utils.js +0 -34
  112. package/dist/es5/lib/math-utils.js.map +0 -1
  113. package/dist/es5/lib/validators.js +0 -53
  114. package/dist/es5/lib/validators.js.map +0 -1
  115. package/dist/esm/classes/base/math-array.js.map +0 -1
  116. package/dist/esm/classes/base/matrix.js.map +0 -1
  117. package/dist/esm/classes/base/vector.js.map +0 -1
  118. package/dist/esm/classes/euler.js.map +0 -1
  119. package/dist/esm/classes/matrix3.js.map +0 -1
  120. package/dist/esm/classes/matrix4.js.map +0 -1
  121. package/dist/esm/classes/pose.js.map +0 -1
  122. package/dist/esm/classes/quaternion.js.map +0 -1
  123. package/dist/esm/classes/spherical-coordinates.js.map +0 -1
  124. package/dist/esm/classes/vector2.js.map +0 -1
  125. package/dist/esm/classes/vector3.js.map +0 -1
  126. package/dist/esm/classes/vector4.js.map +0 -1
  127. package/dist/esm/docs/README.md +0 -0
  128. package/dist/esm/index.js +0 -16
  129. package/dist/esm/index.js.map +0 -1
  130. package/dist/esm/lib/assert.js.map +0 -1
  131. package/dist/esm/lib/common.js.map +0 -1
  132. package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
  133. package/dist/esm/lib/gl-matrix.d.js.map +0 -1
  134. package/dist/esm/lib/math-utils.js.map +0 -1
  135. package/dist/esm/lib/validators.js.map +0 -1
@@ -5,7 +5,7 @@ export default 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;
8
- abstract fromObject(object: object): this;
8
+ abstract fromObject(object: Record<string, unknown>): this;
9
9
  /**
10
10
  * Clone the current object
11
11
  * @returns a new copy of this object
@@ -14,8 +14,8 @@ 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
- from(arrayOrObject: Readonly<NumericArray> | object): this;
18
- to<T extends NumericArray | object>(arrayOrObject: T): T;
17
+ from(arrayOrObject: Readonly<NumericArray> | Record<string, unknown>): this;
18
+ to<T extends NumericArray | Record<string, unknown>>(arrayOrObject: T): T;
19
19
  toTarget(target: this): this;
20
20
  /** @deprecated */
21
21
  toFloat32Array(): Float32Array;
@@ -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,GAAG,IAAI;IAIzC;;;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,GAAG,IAAI;IAI1D,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC;IASxD,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAI5B,kBAAkB;IAClB,cAAc,IAAI,YAAY;IAI9B,QAAQ,IAAI,MAAM;IAIlB,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;IAa3E,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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"}
@@ -23,7 +23,7 @@ function _extendableBuiltin(cls) {
23
23
  return ExtendableBuiltin;
24
24
  }
25
25
 
26
- import { config, formatValue, equals, isArray } from '../../lib/common';
26
+ import { config, formatValue, equals, isArray } from "../../lib/common.js";
27
27
  export default class MathArray extends _extendableBuiltin(Array) {
28
28
  clone() {
29
29
  return new this.constructor().copy(this);
@@ -122,7 +122,8 @@ export default class MathArray extends _extendableBuiltin(Array) {
122
122
 
123
123
  for (let i = 0; i < this.ELEMENTS; ++i) {
124
124
  const ai = a[i];
125
- this[i] = ai + t * (b[i] - ai);
125
+ const endValue = typeof b === 'number' ? b : b[i];
126
+ this[i] = ai + t * (endValue - ai);
126
127
  }
127
128
 
128
129
  return this.check();
@@ -0,0 +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":"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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 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 +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;IAa5B,QAAQ,IAAI,MAAM;IAmBlB,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,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,6 +1,6 @@
1
- import MathArray from './math-array';
2
- import { checkNumber } from '../../lib/validators';
3
- import { config } from '../../lib/common';
1
+ import MathArray from "./math-array.js";
2
+ import { checkNumber } from "../../lib/validators.js";
3
+ import { config } from "../../lib/common.js";
4
4
  export default class Matrix extends MathArray {
5
5
  toString() {
6
6
  let string = '[';
@@ -0,0 +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,6 +1,6 @@
1
- import MathArray from './math-array';
2
- import { checkNumber } from '../../lib/validators';
3
- import assert from '../../lib/assert';
1
+ import MathArray from "./math-array.js";
2
+ import { checkNumber } from "../../lib/validators.js";
3
+ import assert from "../../lib/assert.js";
4
4
  export default class Vector extends MathArray {
5
5
  get x() {
6
6
  return this[0];
@@ -0,0 +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"}
@@ -30,7 +30,7 @@ export default class Euler extends MathArray {
30
30
  */
31
31
  constructor(x?: number, y?: number, z?: number, order?: RotationOrder);
32
32
  fromQuaternion(quaternion: Readonly<NumericArray>): this;
33
- fromObject(object: object): this;
33
+ fromObject(object: Record<string, unknown>): this;
34
34
  copy(array: Readonly<NumericArray>): this;
35
35
  set(x: number, y: number, z: number, order: RotationOrder): this;
36
36
  validate(): boolean;
@@ -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":"AAEA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAS5C,aAAK,aAAa;IAChB,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,IAAI;CACR;AAED,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,SAAS;IAE1C,MAAM,KAAK,GAAG,IAAI,aAAa,CAE9B;IACD,MAAM,KAAK,GAAG,IAAI,aAAa,CAE9B;IACD,MAAM,KAAK,GAAG,IAAI,aAAa,CAE9B;IACD,MAAM,KAAK,GAAG,IAAI,aAAa,CAE9B;IACD,MAAM,KAAK,GAAG,IAAI,aAAa,CAE9B;IACD,MAAM,KAAK,GAAG,IAAI,aAAa,CAE9B;IACD,MAAM,KAAK,YAAY,IAAI,aAAa,CAEvC;IACD,MAAM,KAAK,YAAY,IAAI,aAAa,CAEvC;IACD,MAAM,KAAK,cAAc,IAAI,OAAO,aAAa,CAEhD;IACD,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM;IAGlD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;;;;OAMG;gBACS,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,KAAK,gBAAqB;IAa3D,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAgBxD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAUjD,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAWzC,GAAG,CAAC,CAAC,QAAI,EAAE,CAAC,QAAI,EAAE,CAAC,QAAI,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAQ3C,QAAQ,IAAI,OAAO;IAUnB,OAAO,CAAC,KAAK,GAAE,YAAiB,EAAE,MAAM,GAAE,MAAU,GAAG,YAAY;IAQ5E,QAAQ,CAAC,KAAK,GAAE,YAAiB,EAAE,MAAM,GAAE,MAAU,GAAG,YAAY;IAQpE,SAAS,CAAC,MAAM,GAAE,YAA2B,GAAG,YAAY;IAS5D,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAGD,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAGD,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IACD,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAGD,IAAI,KAAK,IAAI,aAAa,CAEzB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,EAE7B;IAGD,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAKzD,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;IAW3E,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhE,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,GAAE,aAAkC,GAAG,IAAI;IAO9F,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY;IAKhD,aAAa,IAAI,UAAU;IA4B3B,mBAAmB,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,gBAAqB,GAAG,IAAI;IAgFhF,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY;IA2HtD,YAAY,IAAI,UAAU;CAc3B"}
@@ -1,7 +1,7 @@
1
- import MathArray from './base/math-array';
2
- import Quaternion from './quaternion';
3
- import { clamp } from '../lib/common';
4
- import { checkNumber } from '../lib/validators';
1
+ import MathArray from "./base/math-array.js";
2
+ import Quaternion from "./quaternion.js";
3
+ import { clamp } from "../lib/common.js";
4
+ import { checkNumber } from "../lib/validators.js";
5
5
  const ERR_UNKNOWN_ORDER = 'Unknown Euler angle order';
6
6
  const ALMOST_ONE = 0.99999;
7
7
  var RotationOrder;
@@ -0,0 +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,5 +1,5 @@
1
- import Matrix from './base/matrix';
2
1
  import { NumericArray } from '@math.gl/types';
2
+ import Matrix from './base/matrix';
3
3
  declare enum INDICES {
4
4
  COL0ROW0 = 0,
5
5
  COL0ROW1 = 1,
@@ -1 +1 @@
1
- {"version":3,"file":"matrix3.d.ts","sourceRoot":"","sources":["../../src/classes/matrix3.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,eAAe,CAAC;AAOnC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,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;IAKrC,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAS1C,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,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,6 +1,6 @@
1
- import Matrix from './base/matrix';
2
- import { checkVector } from '../lib/validators';
3
- import { vec4_transformMat3 } from '../lib/gl-matrix-extras';
1
+ import Matrix from "./base/matrix.js";
2
+ import { checkVector } from "../lib/validators.js";
3
+ import { vec4_transformMat3 } from "../lib/gl-matrix-extras.js";
4
4
  import * as mat3 from 'gl-matrix/mat3';
5
5
  import * as vec2 from 'gl-matrix/vec2';
6
6
  import * as vec3 from 'gl-matrix/vec3';
@@ -186,7 +186,7 @@ export default class Matrix3 extends Matrix {
186
186
 
187
187
  }
188
188
  let ZERO_MATRIX3;
189
- let IDENTITY_MATRIX3;
189
+ let IDENTITY_MATRIX3 = null;
190
190
 
191
191
  function getZeroMatrix() {
192
192
  if (!ZERO_MATRIX3) {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/matrix3.ts"],"names":["Matrix","checkVector","vec4_transformMat3","mat3","vec2","vec3","INDICES","IDENTITY_MATRIX","Object","freeze","Matrix3","IDENTITY","getIdentityMatrix","ZERO","getZeroMatrix","ELEMENTS","RANK","constructor","array","args","arguments","length","Array","isArray","copy","identity","check","fromObject","object","fromQuaternion","q","fromQuat","set","m00","m10","m20","m01","m11","m21","m02","m12","m22","setRowMajor","determinant","transpose","invert","multiplyLeft","a","multiply","multiplyRight","rotate","radians","scale","factor","translate","vec","transform","vector","result","out","transformMat3","Error","transformVector","transformVector2","transformVector3","ZERO_MATRIX3","IDENTITY_MATRIX3"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\n\nimport {NumericArray} from '@math.gl/types';\nimport Matrix from './base/matrix';\nimport {checkVector} from '../lib/validators';\n/* eslint-disable camelcase */\nimport {vec4_transformMat3} from '../lib/gl-matrix-extras';\n// @ts-ignore gl-matrix types...\nimport * as mat3 from 'gl-matrix/mat3';\n// @ts-ignore gl-matrix types...\nimport * as vec2 from 'gl-matrix/vec2';\n// @ts-ignore gl-matrix types...\nimport * as vec3 from 'gl-matrix/vec3';\n\nenum INDICES {\n COL0ROW0 = 0,\n COL0ROW1 = 1,\n COL0ROW2 = 2,\n COL1ROW0 = 3,\n COL1ROW1 = 4,\n COL1ROW2 = 5,\n COL2ROW0 = 6,\n COL2ROW1 = 7,\n COL2ROW2 = 8\n}\n\nconst IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\nexport default class Matrix3 extends Matrix {\n static get IDENTITY(): Readonly<Matrix3> {\n return getIdentityMatrix();\n }\n\n static get ZERO(): Readonly<Matrix3> {\n return getZeroMatrix();\n }\n\n get ELEMENTS(): number {\n return 9;\n }\n\n get RANK(): number {\n return 3;\n }\n\n get INDICES(): typeof INDICES {\n return INDICES;\n }\n\n constructor(array?: Readonly<NumericArray>);\n /** @deprecated */\n constructor(...args: number[]);\n\n constructor(array?: number | Readonly<NumericArray>, ...args: number[]) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0, -0, -0, -0, -0, -0);\n if (arguments.length === 1 && Array.isArray(array)) {\n this.copy(array);\n } else if (args.length > 0) {\n this.copy([array as number, ...args]);\n } else {\n this.identity();\n }\n }\n\n copy(array: Readonly<NumericArray>): this {\n // Element wise copy for performance\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n this[4] = array[4];\n this[5] = array[5];\n this[6] = array[6];\n this[7] = array[7];\n this[8] = array[8];\n return this.check();\n }\n\n // Constructors\n\n identity(): this {\n return this.copy(IDENTITY_MATRIX);\n }\n\n /**\n *\n * @param object\n * @returns self\n */\n fromObject(object: {[key: string]: any}): this {\n return this.check();\n }\n\n // Calculates a 3x3 matrix from the given quaternion\n // q quat Quaternion to create matrix from\n fromQuaternion(q: Readonly<NumericArray>): this {\n mat3.fromQuat(this, q);\n return this.check();\n }\n\n /**\n * accepts column major order, stores in column major order\n */\n // eslint-disable-next-line max-params\n set(\n m00: number,\n m10: number,\n m20: number,\n m01: number,\n m11: number,\n m21: number,\n m02: number,\n m12: number,\n m22: number\n ): this {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m01;\n this[4] = m11;\n this[5] = m21;\n this[6] = m02;\n this[7] = m12;\n this[8] = m22;\n return this.check();\n }\n\n /**\n * accepts row major order, stores as column major\n */\n // eslint-disable-next-line max-params\n setRowMajor(\n m00: number,\n m01: number,\n m02: number,\n m10: number,\n m11: number,\n m12: number,\n m20: number,\n m21: number,\n m22: number\n ): this {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m01;\n this[4] = m11;\n this[5] = m21;\n this[6] = m02;\n this[7] = m12;\n this[8] = m22;\n return this.check();\n }\n\n // Accessors\n\n determinant(): number {\n return mat3.determinant(this);\n }\n\n // Modifiers\n transpose(): this {\n mat3.transpose(this, this);\n return this.check();\n }\n\n /** Invert a matrix. Note that this can fail if the matrix is not invertible */\n invert(): this {\n mat3.invert(this, this);\n return this.check();\n }\n\n // Operations\n multiplyLeft(a: NumericArray): this {\n mat3.multiply(this, a, this);\n return this.check();\n }\n\n multiplyRight(a: NumericArray): this {\n mat3.multiply(this, this, a);\n return this.check();\n }\n\n rotate(radians: number): NumericArray {\n mat3.rotate(this, this, radians);\n return this.check();\n }\n\n override scale(factor: NumericArray | number): this {\n if (Array.isArray(factor)) {\n mat3.scale(this, this, factor);\n } else {\n mat3.scale(this, this, [factor as number, factor as number]);\n }\n return this.check();\n }\n\n translate(vec: NumericArray): this {\n mat3.translate(this, this, vec);\n return this.check();\n }\n\n // Transforms\n transform(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n let out: NumericArray;\n switch (vector.length) {\n case 2:\n out = vec2.transformMat3(result || [-0, -0], vector, this);\n break;\n case 3:\n out = vec3.transformMat3(result || [-0, -0, -0], vector, this);\n break;\n case 4:\n out = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(out, vector.length);\n return out;\n }\n\n /** @deprecated */\n transformVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transform(vector, result);\n }\n\n /** @deprecated */\n transformVector2(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transform(vector, result);\n }\n\n /** @deprecated */\n transformVector3(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transform(vector, result);\n }\n}\n\nlet ZERO_MATRIX3: Matrix3 | null;\nlet IDENTITY_MATRIX3: Matrix3 | null = null;\n\nfunction getZeroMatrix(): Readonly<Matrix3> {\n if (!ZERO_MATRIX3) {\n ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);\n Object.freeze(ZERO_MATRIX3);\n }\n return ZERO_MATRIX3;\n}\n\nfunction getIdentityMatrix(): Matrix3 {\n if (!IDENTITY_MATRIX3) {\n IDENTITY_MATRIX3 = new Matrix3();\n Object.freeze(IDENTITY_MATRIX3);\n }\n return IDENTITY_MATRIX3;\n}\n"],"file":"matrix3.js"}
@@ -1,5 +1,5 @@
1
- import Matrix from './base/matrix';
2
1
  import { NumericArray } from '@math.gl/types';
2
+ import Matrix from './base/matrix';
3
3
  declare enum INDICES {
4
4
  COL0ROW0 = 0,
5
5
  COL0ROW1 = 1,
@@ -1 +1 @@
1
- {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import Matrix from './base/matrix';
2
- import { checkVector } from '../lib/validators';
3
- import { vec2_transformMat4AsVector, vec3_transformMat4AsVector } from '../lib/gl-matrix-extras';
1
+ import Matrix from "./base/matrix.js";
2
+ import { checkVector } from "../lib/validators.js";
3
+ import { vec2_transformMat4AsVector, vec3_transformMat4AsVector } from "../lib/gl-matrix-extras.js";
4
4
  import * as mat4 from 'gl-matrix/mat4';
5
5
  import * as vec2 from 'gl-matrix/vec2';
6
6
  import * as vec3 from 'gl-matrix/vec3';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/matrix4.ts"],"names":["Matrix","checkVector","vec2_transformMat4AsVector","vec3_transformMat4AsVector","mat4","vec2","vec3","vec4","INDICES","DEFAULT_FOVY","Math","PI","DEFAULT_ASPECT","DEFAULT_NEAR","DEFAULT_FAR","IDENTITY_MATRIX","Object","freeze","Matrix4","IDENTITY","getIdentityMatrix","ZERO","getZeroMatrix","ELEMENTS","RANK","constructor","array","arguments","length","Array","isArray","copy","identity","check","set","m00","m10","m20","m30","m01","m11","m21","m31","m02","m12","m22","m32","m03","m13","m23","m33","setRowMajor","toRowMajor","result","fromObject","object","fromQuaternion","quaternion","fromQuat","frustum","view","left","right","bottom","top","near","far","Infinity","computeInfinitePerspectiveOffCenter","lookAt","eye","center","up","ortho","orthographic","fovy","aspect","focalDistance","checkRadians","halfY","tan","perspective","determinant","getScale","sqrt","getTranslation","getRotation","scaleResult","scale","inverseScale0","inverseScale1","inverseScale2","getRotationMatrix3","transpose","invert","multiplyLeft","a","multiply","multiplyRight","rotateX","radians","rotateY","rotateZ","rotateXYZ","angleXYZ","rotateAxis","axis","rotate","factor","translate","vector","transform","transformMat4","transformAsPoint","out","Error","transformAsVector","transformPoint","transformVector","transformDirection","makeRotationX","makeTranslation","x","y","z","possiblyDegrees","column0Row0","column1Row1","column2Row0","column2Row1","column2Row2","column2Row3","column3Row2"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\n\nimport {NumericArray} from '@math.gl/types';\nimport Matrix from './base/matrix';\nimport {checkVector} from '../lib/validators';\n\n/* eslint-disable camelcase */\nimport {vec2_transformMat4AsVector, vec3_transformMat4AsVector} from '../lib/gl-matrix-extras';\n// @ts-ignore gl-matrix types...\nimport * as mat4 from 'gl-matrix/mat4';\n// @ts-ignore gl-matrix types...\nimport * as vec2 from 'gl-matrix/vec2';\n// @ts-ignore gl-matrix types...\nimport * as vec3 from 'gl-matrix/vec3';\n// @ts-ignore gl-matrix types...\nimport * as vec4 from 'gl-matrix/vec4';\n\nenum INDICES {\n COL0ROW0 = 0,\n COL0ROW1 = 1,\n COL0ROW2 = 2,\n COL0ROW3 = 3,\n COL1ROW0 = 4,\n COL1ROW1 = 5,\n COL1ROW2 = 6,\n COL1ROW3 = 7,\n COL2ROW0 = 8,\n COL2ROW1 = 9,\n COL2ROW2 = 10,\n COL2ROW3 = 11,\n COL3ROW0 = 12,\n COL3ROW1 = 13,\n COL3ROW2 = 14,\n COL3ROW3 = 15\n}\n\nconst DEFAULT_FOVY = (45 * Math.PI) / 180;\nconst DEFAULT_ASPECT = 1;\nconst DEFAULT_NEAR = 0.1;\nconst DEFAULT_FAR = 500;\n\nconst IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);\n\n/** 4x4 matrix */\nexport default class Matrix4 extends Matrix {\n static get IDENTITY(): Readonly<Matrix4> {\n return getIdentityMatrix();\n }\n\n static get ZERO(): Readonly<Matrix4> {\n return getZeroMatrix();\n }\n\n get ELEMENTS(): number {\n return 16;\n }\n\n get RANK(): number {\n return 4;\n }\n\n get INDICES(): typeof INDICES {\n return INDICES;\n }\n\n constructor(array?: Readonly<NumericArray>) {\n // PERF NOTE: initialize elements as double precision numbers\n super(-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0);\n if (arguments.length === 1 && Array.isArray(array)) {\n this.copy(array);\n } else {\n this.identity();\n }\n }\n\n copy(array: Readonly<NumericArray>): this {\n this[0] = array[0];\n this[1] = array[1];\n this[2] = array[2];\n this[3] = array[3];\n this[4] = array[4];\n this[5] = array[5];\n this[6] = array[6];\n this[7] = array[7];\n this[8] = array[8];\n this[9] = array[9];\n this[10] = array[10];\n this[11] = array[11];\n this[12] = array[12];\n this[13] = array[13];\n this[14] = array[14];\n this[15] = array[15];\n return this.check();\n }\n\n // eslint-disable-next-line max-params\n set(\n m00: number,\n m10: number,\n m20: number,\n m30: number,\n m01: number,\n m11: number,\n m21: number,\n m31: number,\n m02: number,\n m12: number,\n m22: number,\n m32: number,\n m03: number,\n m13: number,\n m23: number,\n m33: number\n ): this {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m30;\n this[4] = m01;\n this[5] = m11;\n this[6] = m21;\n this[7] = m31;\n this[8] = m02;\n this[9] = m12;\n this[10] = m22;\n this[11] = m32;\n this[12] = m03;\n this[13] = m13;\n this[14] = m23;\n this[15] = m33;\n return this.check();\n }\n\n // accepts row major order, stores as column major\n // eslint-disable-next-line max-params\n setRowMajor(\n m00: number,\n m01: number,\n m02: number,\n m03: number,\n m10: number,\n m11: number,\n m12: number,\n m13: number,\n m20: number,\n m21: number,\n m22: number,\n m23: number,\n m30: number,\n m31: number,\n m32: number,\n m33: number\n ): this {\n this[0] = m00;\n this[1] = m10;\n this[2] = m20;\n this[3] = m30;\n this[4] = m01;\n this[5] = m11;\n this[6] = m21;\n this[7] = m31;\n this[8] = m02;\n this[9] = m12;\n this[10] = m22;\n this[11] = m32;\n this[12] = m03;\n this[13] = m13;\n this[14] = m23;\n this[15] = m33;\n return this.check();\n }\n\n toRowMajor(result: NumericArray): NumericArray {\n result[0] = this[0];\n result[1] = this[4];\n result[2] = this[8];\n result[3] = this[12];\n result[4] = this[1];\n result[5] = this[5];\n result[6] = this[9];\n result[7] = this[13];\n result[8] = this[2];\n result[9] = this[6];\n result[10] = this[10];\n result[11] = this[14];\n result[12] = this[3];\n result[13] = this[7];\n result[14] = this[11];\n result[15] = this[15];\n return result;\n }\n\n // Constructors\n\n /** Set to identity matrix */\n identity(): this {\n return this.copy(IDENTITY_MATRIX);\n }\n\n /**\n *\n * @param object\n * @returns self\n */\n fromObject(object: {[key: string]: any}): this {\n return this.check();\n }\n\n /**\n * Calculates a 4x4 matrix from the given quaternion\n * @param quaternion Quaternion to create matrix from\n * @returns self\n */\n fromQuaternion(quaternion: Readonly<NumericArray>): this {\n mat4.fromQuat(this, quaternion);\n return this.check();\n }\n\n /**\n * Generates a frustum matrix with the given bounds\n * @param view.left - Left bound of the frustum\n * @param view.right - Right bound of the frustum\n * @param view.bottom - Bottom bound of the frustum\n * @param view.top - Top bound of the frustum\n * @param view.near - Near bound of the frustum\n * @param view.far - Far bound of the frustum. Can be set to Infinity.\n * @returns self\n */\n frustum(view: {\n left: number;\n right: number;\n bottom: number;\n top: number;\n near: number;\n far?: number;\n }): this {\n const {left, right, bottom, top, near = DEFAULT_NEAR, far = DEFAULT_FAR} = view;\n if (far === Infinity) {\n computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);\n } else {\n mat4.frustum(this, left, right, bottom, top, near, far);\n }\n return this.check();\n }\n\n /**\n * Generates a look-at matrix with the given eye position, focal point,\n * and up axis\n * @param view.eye - (vector) Position of the viewer\n * @param view.center - (vector) Point the viewer is looking at\n * @param view.up - (vector) Up axis\n * @returns self\n */\n lookAt(view: {\n eye: Readonly<NumericArray>;\n center?: Readonly<NumericArray>;\n up?: Readonly<NumericArray>;\n }): this {\n const {eye, center = [0, 0, 0], up = [0, 1, 0]} = view;\n mat4.lookAt(this, eye, center, up);\n return this.check();\n }\n\n /**\n * Generates a orthogonal projection matrix with the given bounds\n * from \"traditional\" view space parameters\n * @param view.left - Left bound of the frustum\n * @param view.right number Right bound of the frustum\n * @param view.bottom - Bottom bound of the frustum\n * @param view.top number Top bound of the frustum\n * @param view.near - Near bound of the frustum\n * @param view.far number Far bound of the frustum\n * @returns self\n */\n ortho(view: {\n left: number;\n right: number;\n bottom: number;\n top: number;\n near?: number;\n far?: number;\n }): this {\n const {left, right, bottom, top, near = DEFAULT_NEAR, far = DEFAULT_FAR} = view;\n mat4.ortho(this, left, right, bottom, top, near, far);\n return this.check();\n }\n\n /**\n * Generates an orthogonal projection matrix with the same parameters\n * as a perspective matrix (plus focalDistance)\n * @param view.fovy Vertical field of view in radians\n * @param view.aspect Aspect ratio. Typically viewport width / viewport height\n * @param view.focalDistance Distance in the view frustum used for extent calculations\n * @param view.near Near bound of the frustum\n * @param view.far Far bound of the frustum\n * @returns self\n */\n orthographic(view: {\n fovy?: number;\n aspect?: number;\n focalDistance?: number;\n near?: number;\n far?: number;\n }): this {\n const {\n fovy = DEFAULT_FOVY,\n aspect = DEFAULT_ASPECT,\n focalDistance = 1,\n near = DEFAULT_NEAR,\n far = DEFAULT_FAR\n } = view;\n\n checkRadians(fovy);\n\n const halfY = fovy / 2;\n const top = focalDistance * Math.tan(halfY); // focus_plane is the distance from the camera\n const right = top * aspect;\n\n return this.ortho({\n left: -right,\n right,\n bottom: -top,\n top,\n near,\n far\n });\n }\n\n /**\n * Generates a perspective projection matrix with the given bounds\n * @param view.fovy Vertical field of view in radians\n * @param view.aspect Aspect ratio. typically viewport width/height\n * @param view.near Near bound of the frustum\n * @param view.far Far bound of the frustum\n * @returns self\n */\n perspective(view: {fovy: number; aspect?: number; near?: number; far?: number}): this {\n const {fovy = (45 * Math.PI) / 180, aspect = 1, near = 0.1, far = 500} = view;\n checkRadians(fovy);\n mat4.perspective(this, fovy, aspect, near, far);\n return this.check();\n }\n\n // Accessors\n\n determinant(): number {\n return mat4.determinant(this);\n }\n\n /**\n * Extracts the non-uniform scale assuming the matrix is an affine transformation.\n * The scales are the \"lengths\" of the column vectors in the upper-left 3x3 matrix.\n * @param result\n * @returns self\n */\n getScale(result: NumericArray = [-0, -0, -0]): NumericArray {\n // explicit is faster than hypot...\n result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);\n result[1] = Math.sqrt(this[4] * this[4] + this[5] * this[5] + this[6] * this[6]);\n result[2] = Math.sqrt(this[8] * this[8] + this[9] * this[9] + this[10] * this[10]);\n // result[0] = Math.hypot(this[0], this[1], this[2]);\n // result[1] = Math.hypot(this[4], this[5], this[6]);\n // result[2] = Math.hypot(this[8], this[9], this[10]);\n return result;\n }\n\n /**\n * Gets the translation portion, assuming the matrix is a affine transformation matrix.\n * @param result\n * @returns self\n */\n getTranslation(result: NumericArray = [-0, -0, -0]): NumericArray {\n result[0] = this[12];\n result[1] = this[13];\n result[2] = this[14];\n return result;\n }\n\n /**\n * Gets upper left 3x3 pure rotation matrix (non-scaling), assume affine transformation matrix\n * @param result\n * @param scaleResult\n * @returns self\n */\n getRotation(result?: NumericArray, scaleResult?: NumericArray): NumericArray {\n result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];\n scaleResult = scaleResult || [-0, -0, -0];\n const scale = this.getScale(scaleResult);\n const inverseScale0 = 1 / scale[0];\n const inverseScale1 = 1 / scale[1];\n const inverseScale2 = 1 / scale[2];\n result[0] = this[0] * inverseScale0;\n result[1] = this[1] * inverseScale1;\n result[2] = this[2] * inverseScale2;\n result[3] = 0;\n result[4] = this[4] * inverseScale0;\n result[5] = this[5] * inverseScale1;\n result[6] = this[6] * inverseScale2;\n result[7] = 0;\n result[8] = this[8] * inverseScale0;\n result[9] = this[9] * inverseScale1;\n result[10] = this[10] * inverseScale2;\n result[11] = 0;\n result[12] = 0;\n result[13] = 0;\n result[14] = 0;\n result[15] = 1;\n return result;\n }\n\n /**\n *\n * @param result\n * @param scaleResult\n * @returns self\n */\n getRotationMatrix3(result?: NumericArray, scaleResult?: NumericArray): NumericArray {\n result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0];\n scaleResult = scaleResult || [-0, -0, -0];\n const scale = this.getScale(scaleResult);\n const inverseScale0 = 1 / scale[0];\n const inverseScale1 = 1 / scale[1];\n const inverseScale2 = 1 / scale[2];\n result[0] = this[0] * inverseScale0;\n result[1] = this[1] * inverseScale1;\n result[2] = this[2] * inverseScale2;\n result[3] = this[4] * inverseScale0;\n result[4] = this[5] * inverseScale1;\n result[5] = this[6] * inverseScale2;\n result[6] = this[8] * inverseScale0;\n result[7] = this[9] * inverseScale1;\n result[8] = this[10] * inverseScale2;\n return result;\n }\n\n // Modifiers\n\n transpose(): this {\n mat4.transpose(this, this);\n return this.check();\n }\n\n invert(): this {\n mat4.invert(this, this);\n return this.check();\n }\n\n // Operations\n\n multiplyLeft(a: Readonly<NumericArray>): this {\n mat4.multiply(this, a, this);\n return this.check();\n }\n\n multiplyRight(a: Readonly<NumericArray>): this {\n mat4.multiply(this, this, a);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the X axis\n rotateX(radians: number): this {\n mat4.rotateX(this, this, radians);\n // mat4.rotate(this, this, radians, [1, 0, 0]);\n return this.check();\n }\n\n // Rotates a matrix by the given angle around the Y axis.\n rotateY(radians: number): this {\n mat4.rotateY(this, this, radians);\n // mat4.rotate(this, this, radians, [0, 1, 0]);\n return this.check();\n }\n\n /**\n * Rotates a matrix by the given angle around the Z axis.\n * @param radians\n * @returns self\n */\n rotateZ(radians: number): this {\n mat4.rotateZ(this, this, radians);\n // mat4.rotate(this, this, radians, [0, 0, 1]);\n return this.check();\n }\n\n /**\n *\n * @param param0\n * @returns self\n */\n rotateXYZ(angleXYZ: Readonly<NumericArray>): this {\n return this.rotateX(angleXYZ[0]).rotateY(angleXYZ[1]).rotateZ(angleXYZ[2]);\n }\n\n /**\n *\n * @param radians\n * @param axis\n * @returns self\n */\n rotateAxis(radians: number, axis: Readonly<NumericArray>): this {\n mat4.rotate(this, this, radians, axis);\n return this.check();\n }\n\n /**\n *\n * @param factor\n * @returns self\n */\n override scale(factor: number | Readonly<NumericArray>): this {\n mat4.scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);\n return this.check();\n }\n\n /**\n *\n * @param vec\n * @returns self\n */\n translate(vector: Readonly<NumericArray>): this {\n mat4.translate(this, this, vector);\n return this.check();\n }\n\n // Transforms\n\n /**\n * Transforms any 2, 3 or 4 element vector. 2 and 3 elements are treated as points\n * @param vector\n * @param result\n * @returns self\n */\n transform(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n if (vector.length === 4) {\n result = vec4.transformMat4(result || [-0, -0, -0, -0], vector, this);\n checkVector(result, 4);\n return result;\n }\n return this.transformAsPoint(vector, result);\n }\n\n /**\n * Transforms any 2 or 3 element array as point (w implicitly 1)\n * @param vector\n * @param result\n * @returns self\n */\n transformAsPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n const {length} = vector;\n let out: NumericArray;\n switch (length) {\n case 2:\n out = vec2.transformMat4(result || [-0, -0], vector, this);\n break;\n case 3:\n out = vec3.transformMat4(result || [-0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(out, vector.length);\n return out;\n }\n\n /**\n * Transforms any 2 or 3 element array as vector (w implicitly 0)\n * @param vector\n * @param result\n * @returns self\n */\n transformAsVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n let out: NumericArray;\n switch (vector.length) {\n case 2:\n out = vec2_transformMat4AsVector(result || [-0, -0], vector, this);\n break;\n case 3:\n out = vec3_transformMat4AsVector(result || [-0, -0, -0], vector, this);\n break;\n default:\n throw new Error('Illegal vector');\n }\n checkVector(out, vector.length);\n return out;\n }\n\n /** @deprecated */\n transformPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transformAsPoint(vector, result);\n }\n\n /** @deprecated */\n transformVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transformAsPoint(vector, result);\n }\n\n /** @deprecated */\n transformDirection(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray {\n return this.transformAsVector(vector, result);\n }\n\n // three.js math API compatibility\n\n makeRotationX(radians: number): this {\n return this.identity().rotateX(radians);\n }\n\n makeTranslation(x: number, y: number, z: number): this {\n return this.identity().translate([x, y, z]);\n }\n}\n\n// TODO initializing static members directly is an option, but make sure no tree-shaking issues\nlet ZERO: Matrix4;\nlet IDENTITY: Matrix4;\n\nfunction getZeroMatrix(): Readonly<Matrix4> {\n if (!ZERO) {\n ZERO = new Matrix4([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n Object.freeze(ZERO);\n }\n return ZERO;\n}\n\nfunction getIdentityMatrix(): Matrix4 {\n if (!IDENTITY) {\n IDENTITY = new Matrix4();\n Object.freeze(IDENTITY);\n }\n return IDENTITY;\n}\n\n// HELPER FUNCTIONS\n\nfunction checkRadians(possiblyDegrees: number) {\n if (possiblyDegrees > Math.PI * 2) {\n throw Error('expected radians');\n }\n}\n\n// eslint-disable-next-line max-params\nfunction computeInfinitePerspectiveOffCenter(\n result: NumericArray,\n left: number,\n right: number,\n bottom: number,\n top: number,\n near: number\n): NumericArray {\n const column0Row0 = (2 * near) / (right - left);\n const column1Row1 = (2 * near) / (top - bottom);\n const column2Row0 = (right + left) / (right - left);\n const column2Row1 = (top + bottom) / (top - bottom);\n const column2Row2 = -1;\n const column2Row3 = -1;\n const column3Row2 = -2 * near;\n result[0] = column0Row0;\n result[1] = 0;\n result[2] = 0;\n result[3] = 0;\n result[4] = 0;\n result[5] = column1Row1;\n result[6] = 0;\n result[7] = 0;\n result[8] = column2Row0;\n result[9] = column2Row1;\n result[10] = column2Row2;\n result[11] = column2Row3;\n result[12] = 0;\n result[13] = 0;\n result[14] = column3Row2;\n result[15] = 0;\n return result;\n}\n"],"file":"matrix4.js"}
@@ -2,7 +2,7 @@ import Matrix4 from './matrix4';
2
2
  import Vector3 from './vector3';
3
3
  import Euler from './euler';
4
4
  import { NumericArray } from '@math.gl/types';
5
- declare type PoseOptions = {
5
+ type PoseOptions = {
6
6
  position?: Readonly<NumericArray>;
7
7
  orientation?: Readonly<NumericArray>;
8
8
  x?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;gBAEhB,EACV,CAAK,EACL,CAAK,EACL,CAAK,EACL,IAAQ,EACR,KAAS,EACT,GAAO,EACP,QAAQ,EACR,WAAW,EACZ,GAAE,WAAgB;IAcnB,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,WAAW,IAAI,OAAO;IAItB,cAAc,IAAI,KAAK;IAIvB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAO3B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAShC,uBAAuB,IAAI,OAAO;IA8BlC,+BAA+B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAMpD,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAKnD"}
1
+ {"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;gBAEhB,EACV,CAAK,EACL,CAAK,EACL,CAAK,EACL,IAAQ,EACR,KAAS,EACT,GAAO,EACP,QAAQ,EACR,WAAW,EACZ,GAAE,WAAgB;IAcnB,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAEtB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAEpB;IAED,WAAW,IAAI,OAAO;IAItB,cAAc,IAAI,KAAK;IAIvB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAO3B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAShC,uBAAuB,IAAI,OAAO;IA8BlC,+BAA+B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAMpD,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAKnD"}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import Matrix4 from './matrix4';
3
- import Vector3 from './vector3';
4
- import Euler from './euler';
2
+ import Matrix4 from "./matrix4.js";
3
+ import Vector3 from "./vector3.js";
4
+ import Euler from "./euler.js";
5
5
  export default class Pose {
6
6
  constructor({
7
7
  x = 0,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/pose.ts"],"names":["Matrix4","Vector3","Euler","Pose","constructor","x","y","z","roll","pitch","yaw","position","orientation","Array","isArray","length","RollPitchYaw","value","getPosition","getOrientation","equals","pose","exactEquals","getTransformationMatrix","sr","Math","sin","sp","sw","cr","cos","cp","cw","setRowMajor","getTransformationMatrixFromPose","multiplyRight","invert","getTransformationMatrixToPose"],"mappings":"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","sourcesContent":["// Copyright (c) 2017 Uber Technologies, Inc.\n// MIT License\nimport Matrix4 from './matrix4';\nimport Vector3 from './vector3';\nimport Euler from './euler';\nimport {NumericArray} from '@math.gl/types';\n\ntype PoseOptions = {\n position?: Readonly<NumericArray>;\n orientation?: Readonly<NumericArray>;\n x?: number;\n y?: number;\n z?: number;\n roll?: number;\n pitch?: number;\n yaw?: number;\n};\n\nexport default class Pose {\n readonly position: Vector3;\n readonly orientation: Euler;\n\n constructor({\n x = 0,\n y = 0,\n z = 0,\n roll = 0,\n pitch = 0,\n yaw = 0,\n position,\n orientation\n }: PoseOptions = {}) {\n if (Array.isArray(position) && position.length === 3) {\n this.position = new Vector3(position);\n } else {\n this.position = new Vector3(x, y, z);\n }\n if (Array.isArray(orientation) && orientation.length === 4) {\n // @ts-expect-error\n this.orientation = new Euler(orientation, orientation[3]);\n } else {\n this.orientation = new Euler(roll, pitch, yaw, Euler.RollPitchYaw);\n }\n }\n\n get x(): number {\n return this.position.x;\n }\n\n set x(value: number) {\n this.position.x = value;\n }\n\n get y(): number {\n return this.position.y;\n }\n\n set y(value: number) {\n this.position.y = value;\n }\n\n get z(): number {\n return this.position.z;\n }\n\n set z(value: number) {\n this.position.z = value;\n }\n\n get roll(): number {\n return this.orientation.roll;\n }\n\n set roll(value: number) {\n this.orientation.roll = value;\n }\n\n get pitch(): number {\n return this.orientation.pitch;\n }\n set pitch(value: number) {\n this.orientation.pitch = value;\n }\n\n get yaw(): number {\n return this.orientation.yaw;\n }\n\n set yaw(value: number) {\n this.orientation.yaw = value;\n }\n\n getPosition(): Vector3 {\n return this.position;\n }\n\n getOrientation(): Euler {\n return this.orientation;\n }\n\n equals(pose: Pose): boolean {\n if (!pose) {\n return false;\n }\n return this.position.equals(pose.position) && this.orientation.equals(pose.orientation);\n }\n\n exactEquals(pose: Pose): boolean {\n if (!pose) {\n return false;\n }\n return (\n this.position.exactEquals(pose.position) && this.orientation.exactEquals(pose.orientation)\n );\n }\n\n getTransformationMatrix(): Matrix4 {\n // setup pre computations for the sin/cos of the angles\n const sr = Math.sin(this.roll);\n const sp = Math.sin(this.pitch);\n const sw = Math.sin(this.yaw);\n const cr = Math.cos(this.roll);\n const cp = Math.cos(this.pitch);\n const cw = Math.cos(this.yaw);\n\n // Create matrix\n return new Matrix4().setRowMajor(\n cw * cp, // 0,0\n -sw * cr + cw * sp * sr, // 0,1\n sw * sr + cw * sp * cr, // 0,2\n this.x, // 0,3\n sw * cp, // 1,0\n cw * cr + sw * sp * sr, // 1,1\n -cw * sr + sw * sp * cr, // 1,2\n this.y, // 1,3\n -sp, // 2,0\n cp * sr, // 2,1\n cp * cr, // 2,2\n this.z, // 2,3\n 0,\n 0,\n 0,\n 1\n );\n }\n\n getTransformationMatrixFromPose(pose: Pose): Matrix4 {\n return new Matrix4()\n .multiplyRight(this.getTransformationMatrix())\n .multiplyRight(pose.getTransformationMatrix().invert());\n }\n\n getTransformationMatrixToPose(pose: Pose): Matrix4 {\n return new Matrix4()\n .multiplyRight(pose.getTransformationMatrix())\n .multiplyRight(this.getTransformationMatrix().invert());\n }\n}\n"],"file":"pose.js"}
@@ -1,5 +1,5 @@
1
- import MathArray from './base/math-array';
2
1
  import { NumericArray } from '@math.gl/types';
2
+ import MathArray from './base/math-array';
3
3
  export default class Quaternion extends MathArray {
4
4
  constructor(x?: number | Readonly<NumericArray>, y?: number, z?: number, w?: number);
5
5
  copy(array: Readonly<NumericArray>): this;
@@ -1 +1 @@
1
- {"version":3,"file":"quaternion.d.ts","sourceRoot":"","sources":["../../src/classes/quaternion.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAK1C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,SAAS;gBACnC,CAAC,GAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAK,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI;IAWvE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAQzC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAQtE;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK5C,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjE,4CAA4C;IAC5C,QAAQ,IAAI,IAAI;IAYhB,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7D,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAGD,GAAG,IAAI,MAAM;IAKb,aAAa,IAAI,MAAM;IAMvB,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM;IAoBtC,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAgB9D,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAOpC,UAAU,IAAI,IAAI;IAOlB,SAAS,IAAI,IAAI;IAMjB,MAAM,IAAI,IAAI;IAMd,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IASrF,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK9C,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAM7C,SAAS,IAAI,IAAI;IAgBjB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM1B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtB,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAC1D,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IACzF,KAAK,CAAC,MAAM,EAAE;QACZ,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,IAAI;IA8CR,gBAAgB,CACd,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAC9B,MAAM,GAAE,YAA4B,GACnC,YAAY;IAMf,QAAQ,IAAI,MAAM;IAIlB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIjE,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAI5C,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;CAG1C"}
1
+ {"version":3,"file":"quaternion.d.ts","sourceRoot":"","sources":["../../src/classes/quaternion.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import MathArray from './base/math-array';
2
- import { checkNumber, checkVector } from '../lib/validators';
3
- import Vector4 from './vector4';
1
+ import MathArray from "./base/math-array.js";
2
+ import { checkNumber, checkVector } from "../lib/validators.js";
3
+ import Vector4 from "./vector4.js";
4
4
  import * as quat from 'gl-matrix/quat';
5
5
  import * as vec4 from 'gl-matrix/vec4';
6
6
  const IDENTITY_QUATERNION = [0, 0, 0, 1];