@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,9 +1,9 @@
1
- import Matrix from "./base/matrix.js";
1
+ import { Matrix } from "./base/matrix.js";
2
2
  import { checkVector } from "../lib/validators.js";
3
3
  import { vec4_transformMat3 } from "../lib/gl-matrix-extras.js";
4
- import * as mat3 from 'gl-matrix/mat3';
5
- import * as vec2 from 'gl-matrix/vec2';
6
- import * as vec3 from 'gl-matrix/vec3';
4
+ import { fromQuat as mat3_fromQuat, determinant as mat3_determinant, transpose as mat3_transpose, invert as mat3_invert, multiply as mat3_multiply, rotate as mat3_rotate, scale as mat3_scale, translate as mat3_translate } from "../gl-matrix/mat3.js";
5
+ import { transformMat3 as vec2_transformMat3 } from "../gl-matrix/vec2.js";
6
+ import { transformMat3 as vec3_transformMat3 } from "../gl-matrix/vec3.js";
7
7
  var INDICES;
8
8
 
9
9
  (function (INDICES) {
@@ -19,7 +19,7 @@ var INDICES;
19
19
  })(INDICES || (INDICES = {}));
20
20
 
21
21
  const IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
22
- export default class Matrix3 extends Matrix {
22
+ export class Matrix3 extends Matrix {
23
23
  static get IDENTITY() {
24
24
  return getIdentityMatrix();
25
25
  }
@@ -74,7 +74,7 @@ export default class Matrix3 extends Matrix {
74
74
  }
75
75
 
76
76
  fromQuaternion(q) {
77
- mat3.fromQuat(this, q);
77
+ mat3_fromQuat(this, q);
78
78
  return this.check();
79
79
  }
80
80
 
@@ -105,46 +105,46 @@ export default class Matrix3 extends Matrix {
105
105
  }
106
106
 
107
107
  determinant() {
108
- return mat3.determinant(this);
108
+ return mat3_determinant(this);
109
109
  }
110
110
 
111
111
  transpose() {
112
- mat3.transpose(this, this);
112
+ mat3_transpose(this, this);
113
113
  return this.check();
114
114
  }
115
115
 
116
116
  invert() {
117
- mat3.invert(this, this);
117
+ mat3_invert(this, this);
118
118
  return this.check();
119
119
  }
120
120
 
121
121
  multiplyLeft(a) {
122
- mat3.multiply(this, a, this);
122
+ mat3_multiply(this, a, this);
123
123
  return this.check();
124
124
  }
125
125
 
126
126
  multiplyRight(a) {
127
- mat3.multiply(this, this, a);
127
+ mat3_multiply(this, this, a);
128
128
  return this.check();
129
129
  }
130
130
 
131
131
  rotate(radians) {
132
- mat3.rotate(this, this, radians);
132
+ mat3_rotate(this, this, radians);
133
133
  return this.check();
134
134
  }
135
135
 
136
136
  scale(factor) {
137
137
  if (Array.isArray(factor)) {
138
- mat3.scale(this, this, factor);
138
+ mat3_scale(this, this, factor);
139
139
  } else {
140
- mat3.scale(this, this, [factor, factor]);
140
+ mat3_scale(this, this, [factor, factor]);
141
141
  }
142
142
 
143
143
  return this.check();
144
144
  }
145
145
 
146
146
  translate(vec) {
147
- mat3.translate(this, this, vec);
147
+ mat3_translate(this, this, vec);
148
148
  return this.check();
149
149
  }
150
150
 
@@ -153,11 +153,11 @@ export default class Matrix3 extends Matrix {
153
153
 
154
154
  switch (vector.length) {
155
155
  case 2:
156
- out = vec2.transformMat3(result || [-0, -0], vector, this);
156
+ out = vec2_transformMat3(result || [-0, -0], vector, this);
157
157
  break;
158
158
 
159
159
  case 3:
160
- out = vec3.transformMat3(result || [-0, -0, -0], vector, this);
160
+ out = vec3_transformMat3(result || [-0, -0, -0], vector, this);
161
161
  break;
162
162
 
163
163
  case 4:
@@ -1 +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
+ {"version":3,"sources":["../../src/classes/matrix3.ts"],"names":["Matrix","checkVector","vec4_transformMat3","fromQuat","mat3_fromQuat","determinant","mat3_determinant","transpose","mat3_transpose","invert","mat3_invert","multiply","mat3_multiply","rotate","mat3_rotate","scale","mat3_scale","translate","mat3_translate","transformMat3","vec2_transformMat3","vec3_transformMat3","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","set","m00","m10","m20","m01","m11","m21","m02","m12","m22","setRowMajor","multiplyLeft","a","multiplyRight","radians","factor","vec","transform","vector","result","out","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\nimport {vec4_transformMat3} from '../lib/gl-matrix-extras';\n\nimport {\n fromQuat as mat3_fromQuat,\n determinant as mat3_determinant,\n transpose as mat3_transpose,\n invert as mat3_invert,\n multiply as mat3_multiply,\n rotate as mat3_rotate,\n scale as mat3_scale,\n translate as mat3_translate\n} from '../gl-matrix/mat3';\nimport {transformMat3 as vec2_transformMat3} from '../gl-matrix/vec2';\nimport {transformMat3 as vec3_transformMat3} 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 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 */\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) as NumericArray;\n break;\n case 3:\n out = vec3_transformMat3(result || [-0, -0, -0], vector, this) as NumericArray;\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
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,
@@ -19,7 +19,7 @@ declare enum INDICES {
19
19
  COL3ROW3 = 15
20
20
  }
21
21
  /** 4x4 matrix */
22
- export default class Matrix4 extends Matrix {
22
+ export declare class Matrix4 extends Matrix {
23
23
  static get IDENTITY(): Readonly<Matrix4>;
24
24
  static get ZERO(): Readonly<Matrix4>;
25
25
  get ELEMENTS(): number;
@@ -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,10 +1,10 @@
1
- import Matrix from "./base/matrix.js";
1
+ import { Matrix } from "./base/matrix.js";
2
2
  import { checkVector } from "../lib/validators.js";
3
3
  import { vec2_transformMat4AsVector, vec3_transformMat4AsVector } from "../lib/gl-matrix-extras.js";
4
- import * as mat4 from 'gl-matrix/mat4';
5
- import * as vec2 from 'gl-matrix/vec2';
6
- import * as vec3 from 'gl-matrix/vec3';
7
- import * as vec4 from 'gl-matrix/vec4';
4
+ import { fromQuat as mat4_fromQuat, frustum as mat4_frustum, lookAt as mat4_lookAt, ortho as mat4_ortho, perspective as mat4_perspective, determinant as mat4_determinant, transpose as mat4_transpose, invert as mat4_invert, multiply as mat4_multiply, rotateX as mat4_rotateX, rotateY as mat4_rotateY, rotateZ as mat4_rotateZ, rotate as mat4_rotate, scale as mat4_scale, translate as mat4_translate } from "../gl-matrix/mat4.js";
5
+ import { transformMat4 as vec2_transformMat4 } from "../gl-matrix/vec2.js";
6
+ import { transformMat4 as vec3_transformMat4 } from "../gl-matrix/vec3.js";
7
+ import { transformMat4 as vec4_transformMat4 } from "../gl-matrix/vec4.js";
8
8
  var INDICES;
9
9
 
10
10
  (function (INDICES) {
@@ -31,7 +31,7 @@ const DEFAULT_ASPECT = 1;
31
31
  const DEFAULT_NEAR = 0.1;
32
32
  const DEFAULT_FAR = 500;
33
33
  const IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
34
- export default class Matrix4 extends Matrix {
34
+ export class Matrix4 extends Matrix {
35
35
  static get IDENTITY() {
36
36
  return getIdentityMatrix();
37
37
  }
@@ -151,7 +151,7 @@ export default class Matrix4 extends Matrix {
151
151
  }
152
152
 
153
153
  fromQuaternion(quaternion) {
154
- mat4.fromQuat(this, quaternion);
154
+ mat4_fromQuat(this, quaternion);
155
155
  return this.check();
156
156
  }
157
157
 
@@ -168,7 +168,7 @@ export default class Matrix4 extends Matrix {
168
168
  if (far === Infinity) {
169
169
  computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);
170
170
  } else {
171
- mat4.frustum(this, left, right, bottom, top, near, far);
171
+ mat4_frustum(this, left, right, bottom, top, near, far);
172
172
  }
173
173
 
174
174
  return this.check();
@@ -180,7 +180,7 @@ export default class Matrix4 extends Matrix {
180
180
  center = [0, 0, 0],
181
181
  up = [0, 1, 0]
182
182
  } = view;
183
- mat4.lookAt(this, eye, center, up);
183
+ mat4_lookAt(this, eye, center, up);
184
184
  return this.check();
185
185
  }
186
186
 
@@ -193,7 +193,7 @@ export default class Matrix4 extends Matrix {
193
193
  near = DEFAULT_NEAR,
194
194
  far = DEFAULT_FAR
195
195
  } = view;
196
- mat4.ortho(this, left, right, bottom, top, near, far);
196
+ mat4_ortho(this, left, right, bottom, top, near, far);
197
197
  return this.check();
198
198
  }
199
199
 
@@ -227,12 +227,12 @@ export default class Matrix4 extends Matrix {
227
227
  far = 500
228
228
  } = view;
229
229
  checkRadians(fovy);
230
- mat4.perspective(this, fovy, aspect, near, far);
230
+ mat4_perspective(this, fovy, aspect, near, far);
231
231
  return this.check();
232
232
  }
233
233
 
234
234
  determinant() {
235
- return mat4.determinant(this);
235
+ return mat4_determinant(this);
236
236
  }
237
237
 
238
238
  getScale(result = [-0, -0, -0]) {
@@ -295,37 +295,37 @@ export default class Matrix4 extends Matrix {
295
295
  }
296
296
 
297
297
  transpose() {
298
- mat4.transpose(this, this);
298
+ mat4_transpose(this, this);
299
299
  return this.check();
300
300
  }
301
301
 
302
302
  invert() {
303
- mat4.invert(this, this);
303
+ mat4_invert(this, this);
304
304
  return this.check();
305
305
  }
306
306
 
307
307
  multiplyLeft(a) {
308
- mat4.multiply(this, a, this);
308
+ mat4_multiply(this, a, this);
309
309
  return this.check();
310
310
  }
311
311
 
312
312
  multiplyRight(a) {
313
- mat4.multiply(this, this, a);
313
+ mat4_multiply(this, this, a);
314
314
  return this.check();
315
315
  }
316
316
 
317
317
  rotateX(radians) {
318
- mat4.rotateX(this, this, radians);
318
+ mat4_rotateX(this, this, radians);
319
319
  return this.check();
320
320
  }
321
321
 
322
322
  rotateY(radians) {
323
- mat4.rotateY(this, this, radians);
323
+ mat4_rotateY(this, this, radians);
324
324
  return this.check();
325
325
  }
326
326
 
327
327
  rotateZ(radians) {
328
- mat4.rotateZ(this, this, radians);
328
+ mat4_rotateZ(this, this, radians);
329
329
  return this.check();
330
330
  }
331
331
 
@@ -334,23 +334,23 @@ export default class Matrix4 extends Matrix {
334
334
  }
335
335
 
336
336
  rotateAxis(radians, axis) {
337
- mat4.rotate(this, this, radians, axis);
337
+ mat4_rotate(this, this, radians, axis);
338
338
  return this.check();
339
339
  }
340
340
 
341
341
  scale(factor) {
342
- mat4.scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
342
+ mat4_scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
343
343
  return this.check();
344
344
  }
345
345
 
346
346
  translate(vector) {
347
- mat4.translate(this, this, vector);
347
+ mat4_translate(this, this, vector);
348
348
  return this.check();
349
349
  }
350
350
 
351
351
  transform(vector, result) {
352
352
  if (vector.length === 4) {
353
- result = vec4.transformMat4(result || [-0, -0, -0, -0], vector, this);
353
+ result = vec4_transformMat4(result || [-0, -0, -0, -0], vector, this);
354
354
  checkVector(result, 4);
355
355
  return result;
356
356
  }
@@ -366,11 +366,11 @@ export default class Matrix4 extends Matrix {
366
366
 
367
367
  switch (length) {
368
368
  case 2:
369
- out = vec2.transformMat4(result || [-0, -0], vector, this);
369
+ out = vec2_transformMat4(result || [-0, -0], vector, this);
370
370
  break;
371
371
 
372
372
  case 3:
373
- out = vec3.transformMat4(result || [-0, -0, -0], vector, this);
373
+ out = vec3_transformMat4(result || [-0, -0, -0], vector, this);
374
374
  break;
375
375
 
376
376
  default:
@@ -1 +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"}
1
+ {"version":3,"sources":["../../src/classes/matrix4.ts"],"names":["Matrix","checkVector","vec2_transformMat4AsVector","vec3_transformMat4AsVector","fromQuat","mat4_fromQuat","frustum","mat4_frustum","lookAt","mat4_lookAt","ortho","mat4_ortho","perspective","mat4_perspective","determinant","mat4_determinant","transpose","mat4_transpose","invert","mat4_invert","multiply","mat4_multiply","rotateX","mat4_rotateX","rotateY","mat4_rotateY","rotateZ","mat4_rotateZ","rotate","mat4_rotate","scale","mat4_scale","translate","mat4_translate","transformMat4","vec2_transformMat4","vec3_transformMat4","vec4_transformMat4","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","view","left","right","bottom","top","near","far","Infinity","computeInfinitePerspectiveOffCenter","eye","center","up","orthographic","fovy","aspect","focalDistance","checkRadians","halfY","tan","getScale","sqrt","getTranslation","getRotation","scaleResult","inverseScale0","inverseScale1","inverseScale2","getRotationMatrix3","multiplyLeft","a","multiplyRight","radians","rotateXYZ","angleXYZ","rotateAxis","axis","factor","vector","transform","transformAsPoint","out","Error","transformAsVector","transformPoint","transformVector","transformDirection","makeRotationX","makeTranslation","x","y","z","possiblyDegrees","column0Row0","column1Row1","column2Row0","column2Row1","column2Row2","column2Row3","column3Row2"],"mappings":"SAIQA,M;SACAC,W;SAGAC,0B,EAA4BC,0B;SAGlCC,QAAQ,IAAIC,a,EACZC,OAAO,IAAIC,Y,EACXC,MAAM,IAAIC,W,EACVC,KAAK,IAAIC,U,EACTC,WAAW,IAAIC,gB,EACfC,WAAW,IAAIC,gB,EACfC,SAAS,IAAIC,c,EACbC,MAAM,IAAIC,W,EACVC,QAAQ,IAAIC,a,EACZC,OAAO,IAAIC,Y,EACXC,OAAO,IAAIC,Y,EACXC,OAAO,IAAIC,Y,EACXC,MAAM,IAAIC,W,EACVC,KAAK,IAAIC,U,EACTC,SAAS,IAAIC,c;SAEPC,aAAa,IAAIC,kB;SACjBD,aAAa,IAAIE,kB;SACjBF,aAAa,IAAIG,kB;IAEpBC,O;;WAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;AAAAA,EAAAA,O,CAAAA,O;GAAAA,O,KAAAA,O;;AAmBL,MAAMC,YAAY,GAAI,KAAKC,IAAI,CAACC,EAAX,GAAiB,GAAtC;AACA,MAAMC,cAAc,GAAG,CAAvB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA,MAAMC,WAAW,GAAG,GAApB;AAEA,MAAMC,eAAe,GAAGC,MAAM,CAACC,MAAP,CAAc,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAlC,EAAqC,CAArC,EAAwC,CAAxC,EAA2C,CAA3C,EAA8C,CAA9C,CAAd,CAAxB;AAGA,OAAO,MAAMC,OAAN,SAAsBhD,MAAtB,CAA6B;AACf,aAARiD,QAAQ,GAAsB;AACvC,WAAOC,iBAAiB,EAAxB;AACD;;AAEc,aAAJC,IAAI,GAAsB;AACnC,WAAOC,aAAa,EAApB;AACD;;AAEW,MAARC,QAAQ,GAAW;AACrB,WAAO,EAAP;AACD;;AAEO,MAAJC,IAAI,GAAW;AACjB,WAAO,CAAP;AACD;;AAEU,MAAPhB,OAAO,GAAmB;AAC5B,WAAOA,OAAP;AACD;;AAEDiB,EAAAA,WAAW,CAACC,KAAD,EAAiC;AAE1C,UAAM,CAAC,CAAP,EAAU,CAAC,CAAX,EAAc,CAAC,CAAf,EAAkB,CAAC,CAAnB,EAAsB,CAAC,CAAvB,EAA0B,CAAC,CAA3B,EAA8B,CAAC,CAA/B,EAAkC,CAAC,CAAnC,EAAsC,CAAC,CAAvC,EAA0C,CAAC,CAA3C,EAA8C,CAAC,CAA/C,EAAkD,CAAC,CAAnD,EAAsD,CAAC,CAAvD,EAA0D,CAAC,CAA3D,EAA8D,CAAC,CAA/D,EAAkE,CAAC,CAAnE;;AACA,QAAIC,SAAS,CAACC,MAAV,KAAqB,CAArB,IAA0BC,KAAK,CAACC,OAAN,CAAcJ,KAAd,CAA9B,EAAoD;AAClD,WAAKK,IAAL,CAAUL,KAAV;AACD,KAFD,MAEO;AACL,WAAKM,QAAL;AACD;AACF;;AAEDD,EAAAA,IAAI,CAACL,KAAD,EAAsC;AACxC,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,CAAL,IAAUA,KAAK,CAAC,CAAD,CAAf;AACA,SAAK,EAAL,IAAWA,KAAK,CAAC,EAAD,CAAhB;AACA,SAAK,EAAL,IAAWA,KAAK,CAAC,EAAD,CAAhB;AACA,SAAK,EAAL,IAAWA,KAAK,CAAC,EAAD,CAAhB;AACA,SAAK,EAAL,IAAWA,KAAK,CAAC,EAAD,CAAhB;AACA,SAAK,EAAL,IAAWA,KAAK,CAAC,EAAD,CAAhB;AACA,SAAK,EAAL,IAAWA,KAAK,CAAC,EAAD,CAAhB;AACA,WAAO,KAAKO,KAAL,EAAP;AACD;;AAGDC,EAAAA,GAAG,CACDC,GADC,EAEDC,GAFC,EAGDC,GAHC,EAIDC,GAJC,EAKDC,GALC,EAMDC,GANC,EAODC,GAPC,EAQDC,GARC,EASDC,GATC,EAUDC,GAVC,EAWDC,GAXC,EAYDC,GAZC,EAaDC,GAbC,EAcDC,GAdC,EAeDC,GAfC,EAgBDC,GAhBC,EAiBK;AACN,SAAK,CAAL,IAAUf,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,WAAO,KAAKjB,KAAL,EAAP;AACD;;AAIDkB,EAAAA,WAAW,CACThB,GADS,EAETI,GAFS,EAGTI,GAHS,EAITI,GAJS,EAKTX,GALS,EAMTI,GANS,EAOTI,GAPS,EAQTI,GARS,EASTX,GATS,EAUTI,GAVS,EAWTI,GAXS,EAYTI,GAZS,EAaTX,GAbS,EAcTI,GAdS,EAeTI,GAfS,EAgBTI,GAhBS,EAiBH;AACN,SAAK,CAAL,IAAUf,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,CAAL,IAAUC,GAAV;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,SAAK,EAAL,IAAWC,GAAX;AACA,WAAO,KAAKjB,KAAL,EAAP;AACD;;AAEDmB,EAAAA,UAAU,CAACC,MAAD,EAAqC;AAC7CA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,EAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,EAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,EAAL,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,EAAL,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,CAAL,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,CAAL,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,EAAL,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,EAAL,CAAb;AACA,WAAOA,MAAP;AACD;;AAKDrB,EAAAA,QAAQ,GAAS;AACf,WAAO,KAAKD,IAAL,CAAUhB,eAAV,CAAP;AACD;;AAQDuC,EAAAA,UAAU,CAACC,MAAD,EAAqC;AAC7C,WAAO,KAAKtB,KAAL,EAAP;AACD;;AAODuB,EAAAA,cAAc,CAACC,UAAD,EAA2C;AACvDlF,IAAAA,aAAa,CAAC,IAAD,EAAOkF,UAAP,CAAb;AACA,WAAO,KAAKxB,KAAL,EAAP;AACD;;AAYDzD,EAAAA,OAAO,CAACkF,IAAD,EAOE;AACP,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,KAAP;AAAcC,MAAAA,MAAd;AAAsBC,MAAAA,GAAtB;AAA2BC,MAAAA,IAAI,GAAGlD,YAAlC;AAAgDmD,MAAAA,GAAG,GAAGlD;AAAtD,QAAqE4C,IAA3E;;AACA,QAAIM,GAAG,KAAKC,QAAZ,EAAsB;AACpBC,MAAAA,mCAAmC,CAAC,IAAD,EAAOP,IAAP,EAAaC,KAAb,EAAoBC,MAApB,EAA4BC,GAA5B,EAAiCC,IAAjC,CAAnC;AACD,KAFD,MAEO;AACLtF,MAAAA,YAAY,CAAC,IAAD,EAAOkF,IAAP,EAAaC,KAAb,EAAoBC,MAApB,EAA4BC,GAA5B,EAAiCC,IAAjC,EAAuCC,GAAvC,CAAZ;AACD;;AACD,WAAO,KAAK/B,KAAL,EAAP;AACD;;AAUDvD,EAAAA,MAAM,CAACgF,IAAD,EAIG;AACP,UAAM;AAACS,MAAAA,GAAD;AAAMC,MAAAA,MAAM,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAf;AAA0BC,MAAAA,EAAE,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP;AAA/B,QAA4CX,IAAlD;AACA/E,IAAAA,WAAW,CAAC,IAAD,EAAOwF,GAAP,EAAYC,MAAZ,EAAoBC,EAApB,CAAX;AACA,WAAO,KAAKpC,KAAL,EAAP;AACD;;AAaDrD,EAAAA,KAAK,CAAC8E,IAAD,EAOI;AACP,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA,KAAP;AAAcC,MAAAA,MAAd;AAAsBC,MAAAA,GAAtB;AAA2BC,MAAAA,IAAI,GAAGlD,YAAlC;AAAgDmD,MAAAA,GAAG,GAAGlD;AAAtD,QAAqE4C,IAA3E;AACA7E,IAAAA,UAAU,CAAC,IAAD,EAAO8E,IAAP,EAAaC,KAAb,EAAoBC,MAApB,EAA4BC,GAA5B,EAAiCC,IAAjC,EAAuCC,GAAvC,CAAV;AACA,WAAO,KAAK/B,KAAL,EAAP;AACD;;AAYDqC,EAAAA,YAAY,CAACZ,IAAD,EAMH;AACP,UAAM;AACJa,MAAAA,IAAI,GAAG9D,YADH;AAEJ+D,MAAAA,MAAM,GAAG5D,cAFL;AAGJ6D,MAAAA,aAAa,GAAG,CAHZ;AAIJV,MAAAA,IAAI,GAAGlD,YAJH;AAKJmD,MAAAA,GAAG,GAAGlD;AALF,QAMF4C,IANJ;AAQAgB,IAAAA,YAAY,CAACH,IAAD,CAAZ;AAEA,UAAMI,KAAK,GAAGJ,IAAI,GAAG,CAArB;AACA,UAAMT,GAAG,GAAGW,aAAa,GAAG/D,IAAI,CAACkE,GAAL,CAASD,KAAT,CAA5B;AACA,UAAMf,KAAK,GAAGE,GAAG,GAAGU,MAApB;AAEA,WAAO,KAAK5F,KAAL,CAAW;AAChB+E,MAAAA,IAAI,EAAE,CAACC,KADS;AAEhBA,MAAAA,KAFgB;AAGhBC,MAAAA,MAAM,EAAE,CAACC,GAHO;AAIhBA,MAAAA,GAJgB;AAKhBC,MAAAA,IALgB;AAMhBC,MAAAA;AANgB,KAAX,CAAP;AAQD;;AAUDlF,EAAAA,WAAW,CAAC4E,IAAD,EAA2E;AACpF,UAAM;AAACa,MAAAA,IAAI,GAAI,KAAK7D,IAAI,CAACC,EAAX,GAAiB,GAAzB;AAA8B6D,MAAAA,MAAM,GAAG,CAAvC;AAA0CT,MAAAA,IAAI,GAAG,GAAjD;AAAsDC,MAAAA,GAAG,GAAG;AAA5D,QAAmEN,IAAzE;AACAgB,IAAAA,YAAY,CAACH,IAAD,CAAZ;AACAxF,IAAAA,gBAAgB,CAAC,IAAD,EAAOwF,IAAP,EAAaC,MAAb,EAAqBT,IAArB,EAA2BC,GAA3B,CAAhB;AACA,WAAO,KAAK/B,KAAL,EAAP;AACD;;AAIDjD,EAAAA,WAAW,GAAW;AACpB,WAAOC,gBAAgB,CAAC,IAAD,CAAvB;AACD;;AAQD4F,EAAAA,QAAQ,CAACxB,MAAoB,GAAG,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,CAAxB,EAAoD;AAE1DA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY3C,IAAI,CAACoE,IAAL,CAAU,KAAK,CAAL,IAAU,KAAK,CAAL,CAAV,GAAoB,KAAK,CAAL,IAAU,KAAK,CAAL,CAA9B,GAAwC,KAAK,CAAL,IAAU,KAAK,CAAL,CAA5D,CAAZ;AACAzB,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY3C,IAAI,CAACoE,IAAL,CAAU,KAAK,CAAL,IAAU,KAAK,CAAL,CAAV,GAAoB,KAAK,CAAL,IAAU,KAAK,CAAL,CAA9B,GAAwC,KAAK,CAAL,IAAU,KAAK,CAAL,CAA5D,CAAZ;AACAzB,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY3C,IAAI,CAACoE,IAAL,CAAU,KAAK,CAAL,IAAU,KAAK,CAAL,CAAV,GAAoB,KAAK,CAAL,IAAU,KAAK,CAAL,CAA9B,GAAwC,KAAK,EAAL,IAAW,KAAK,EAAL,CAA7D,CAAZ;AAIA,WAAOzB,MAAP;AACD;;AAOD0B,EAAAA,cAAc,CAAC1B,MAAoB,GAAG,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,CAAxB,EAAoD;AAChEA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,EAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,EAAL,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,EAAL,CAAZ;AACA,WAAOA,MAAP;AACD;;AAQD2B,EAAAA,WAAW,CAAC3B,MAAD,EAAwB4B,WAAxB,EAAkE;AAC3E5B,IAAAA,MAAM,GAAGA,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,EAAa,CAAC,CAAd,EAAiB,CAAC,CAAlB,EAAqB,CAAC,CAAtB,EAAyB,CAAC,CAA1B,EAA6B,CAAC,CAA9B,EAAiC,CAAC,CAAlC,EAAqC,CAAC,CAAtC,EAAyC,CAAC,CAA1C,EAA6C,CAAC,CAA9C,EAAiD,CAAC,CAAlD,EAAqD,CAAC,CAAtD,EAAyD,CAAC,CAA1D,EAA6D,CAAC,CAA9D,CAAnB;AACA4B,IAAAA,WAAW,GAAGA,WAAW,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,CAA7B;AACA,UAAMjF,KAAK,GAAG,KAAK6E,QAAL,CAAcI,WAAd,CAAd;AACA,UAAMC,aAAa,GAAG,IAAIlF,KAAK,CAAC,CAAD,CAA/B;AACA,UAAMmF,aAAa,GAAG,IAAInF,KAAK,CAAC,CAAD,CAA/B;AACA,UAAMoF,aAAa,GAAG,IAAIpF,KAAK,CAAC,CAAD,CAA/B;AACAqD,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU6B,aAAtB;AACA7B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU8B,aAAtB;AACA9B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU+B,aAAtB;AACA/B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU6B,aAAtB;AACA7B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU8B,aAAtB;AACA9B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU+B,aAAtB;AACA/B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU6B,aAAtB;AACA7B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU8B,aAAtB;AACA9B,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,KAAK,EAAL,IAAW+B,aAAxB;AACA/B,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACAA,IAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACA,WAAOA,MAAP;AACD;;AAQDgC,EAAAA,kBAAkB,CAAChC,MAAD,EAAwB4B,WAAxB,EAAkE;AAClF5B,IAAAA,MAAM,GAAGA,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,EAAa,CAAC,CAAd,EAAiB,CAAC,CAAlB,EAAqB,CAAC,CAAtB,EAAyB,CAAC,CAA1B,EAA6B,CAAC,CAA9B,EAAiC,CAAC,CAAlC,CAAnB;AACA4B,IAAAA,WAAW,GAAGA,WAAW,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,CAA7B;AACA,UAAMjF,KAAK,GAAG,KAAK6E,QAAL,CAAcI,WAAd,CAAd;AACA,UAAMC,aAAa,GAAG,IAAIlF,KAAK,CAAC,CAAD,CAA/B;AACA,UAAMmF,aAAa,GAAG,IAAInF,KAAK,CAAC,CAAD,CAA/B;AACA,UAAMoF,aAAa,GAAG,IAAIpF,KAAK,CAAC,CAAD,CAA/B;AACAqD,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU6B,aAAtB;AACA7B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU8B,aAAtB;AACA9B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU+B,aAAtB;AACA/B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU6B,aAAtB;AACA7B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU8B,aAAtB;AACA9B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU+B,aAAtB;AACA/B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU6B,aAAtB;AACA7B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,CAAL,IAAU8B,aAAtB;AACA9B,IAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,KAAK,EAAL,IAAW+B,aAAvB;AACA,WAAO/B,MAAP;AACD;;AAIDnE,EAAAA,SAAS,GAAS;AAChBC,IAAAA,cAAc,CAAC,IAAD,EAAO,IAAP,CAAd;AACA,WAAO,KAAK8C,KAAL,EAAP;AACD;;AAED7C,EAAAA,MAAM,GAAS;AACbC,IAAAA,WAAW,CAAC,IAAD,EAAO,IAAP,CAAX;AACA,WAAO,KAAK4C,KAAL,EAAP;AACD;;AAIDqD,EAAAA,YAAY,CAACC,CAAD,EAAkC;AAC5ChG,IAAAA,aAAa,CAAC,IAAD,EAAOgG,CAAP,EAAU,IAAV,CAAb;AACA,WAAO,KAAKtD,KAAL,EAAP;AACD;;AAEDuD,EAAAA,aAAa,CAACD,CAAD,EAAkC;AAC7ChG,IAAAA,aAAa,CAAC,IAAD,EAAO,IAAP,EAAagG,CAAb,CAAb;AACA,WAAO,KAAKtD,KAAL,EAAP;AACD;;AAGDzC,EAAAA,OAAO,CAACiG,OAAD,EAAwB;AAC7BhG,IAAAA,YAAY,CAAC,IAAD,EAAO,IAAP,EAAagG,OAAb,CAAZ;AAEA,WAAO,KAAKxD,KAAL,EAAP;AACD;;AAGDvC,EAAAA,OAAO,CAAC+F,OAAD,EAAwB;AAC7B9F,IAAAA,YAAY,CAAC,IAAD,EAAO,IAAP,EAAa8F,OAAb,CAAZ;AAEA,WAAO,KAAKxD,KAAL,EAAP;AACD;;AAODrC,EAAAA,OAAO,CAAC6F,OAAD,EAAwB;AAC7B5F,IAAAA,YAAY,CAAC,IAAD,EAAO,IAAP,EAAa4F,OAAb,CAAZ;AAEA,WAAO,KAAKxD,KAAL,EAAP;AACD;;AAODyD,EAAAA,SAAS,CAACC,QAAD,EAAyC;AAChD,WAAO,KAAKnG,OAAL,CAAamG,QAAQ,CAAC,CAAD,CAArB,EAA0BjG,OAA1B,CAAkCiG,QAAQ,CAAC,CAAD,CAA1C,EAA+C/F,OAA/C,CAAuD+F,QAAQ,CAAC,CAAD,CAA/D,CAAP;AACD;;AAQDC,EAAAA,UAAU,CAACH,OAAD,EAAkBI,IAAlB,EAAsD;AAC9D9F,IAAAA,WAAW,CAAC,IAAD,EAAO,IAAP,EAAa0F,OAAb,EAAsBI,IAAtB,CAAX;AACA,WAAO,KAAK5D,KAAL,EAAP;AACD;;AAOQjC,EAAAA,KAAK,CAAC8F,MAAD,EAAgD;AAC5D7F,IAAAA,UAAU,CAAC,IAAD,EAAO,IAAP,EAAa4B,KAAK,CAACC,OAAN,CAAcgE,MAAd,IAAwBA,MAAxB,GAAiC,CAACA,MAAD,EAASA,MAAT,EAAiBA,MAAjB,CAA9C,CAAV;AACA,WAAO,KAAK7D,KAAL,EAAP;AACD;;AAOD/B,EAAAA,SAAS,CAAC6F,MAAD,EAAuC;AAC9C5F,IAAAA,cAAc,CAAC,IAAD,EAAO,IAAP,EAAa4F,MAAb,CAAd;AACA,WAAO,KAAK9D,KAAL,EAAP;AACD;;AAUD+D,EAAAA,SAAS,CAACD,MAAD,EAAiC1C,MAAjC,EAAsE;AAC7E,QAAI0C,MAAM,CAACnE,MAAP,KAAkB,CAAtB,EAAyB;AACvByB,MAAAA,MAAM,GAAG9C,kBAAkB,CAAC8C,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,EAAa,CAAC,CAAd,CAAX,EAA6B0C,MAA7B,EAAqC,IAArC,CAA3B;AACA5H,MAAAA,WAAW,CAACkF,MAAD,EAAS,CAAT,CAAX;AACA,aAAOA,MAAP;AACD;;AACD,WAAO,KAAK4C,gBAAL,CAAsBF,MAAtB,EAA8B1C,MAA9B,CAAP;AACD;;AAQD4C,EAAAA,gBAAgB,CAACF,MAAD,EAAiC1C,MAAjC,EAAsE;AACpF,UAAM;AAACzB,MAAAA;AAAD,QAAWmE,MAAjB;AACA,QAAIG,GAAJ;;AACA,YAAQtE,MAAR;AACE,WAAK,CAAL;AACEsE,QAAAA,GAAG,GAAG7F,kBAAkB,CAACgD,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAAX,EAAqB0C,MAArB,EAA6B,IAA7B,CAAxB;AACA;;AACF,WAAK,CAAL;AACEG,QAAAA,GAAG,GAAG5F,kBAAkB,CAAC+C,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,CAAX,EAAyB0C,MAAzB,EAAiC,IAAjC,CAAxB;AACA;;AACF;AACE,cAAM,IAAII,KAAJ,CAAU,gBAAV,CAAN;AARJ;;AAUAhI,IAAAA,WAAW,CAAC+H,GAAD,EAAMH,MAAM,CAACnE,MAAb,CAAX;AACA,WAAOsE,GAAP;AACD;;AAQDE,EAAAA,iBAAiB,CAACL,MAAD,EAAiC1C,MAAjC,EAAsE;AACrF,QAAI6C,GAAJ;;AACA,YAAQH,MAAM,CAACnE,MAAf;AACE,WAAK,CAAL;AACEsE,QAAAA,GAAG,GAAG9H,0BAA0B,CAACiF,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAAX,EAAqB0C,MAArB,EAA6B,IAA7B,CAAhC;AACA;;AACF,WAAK,CAAL;AACEG,QAAAA,GAAG,GAAG7H,0BAA0B,CAACgF,MAAM,IAAI,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,CAAX,EAAyB0C,MAAzB,EAAiC,IAAjC,CAAhC;AACA;;AACF;AACE,cAAM,IAAII,KAAJ,CAAU,gBAAV,CAAN;AARJ;;AAUAhI,IAAAA,WAAW,CAAC+H,GAAD,EAAMH,MAAM,CAACnE,MAAb,CAAX;AACA,WAAOsE,GAAP;AACD;;AAGDG,EAAAA,cAAc,CAACN,MAAD,EAAiC1C,MAAjC,EAAsE;AAClF,WAAO,KAAK4C,gBAAL,CAAsBF,MAAtB,EAA8B1C,MAA9B,CAAP;AACD;;AAGDiD,EAAAA,eAAe,CAACP,MAAD,EAAiC1C,MAAjC,EAAsE;AACnF,WAAO,KAAK4C,gBAAL,CAAsBF,MAAtB,EAA8B1C,MAA9B,CAAP;AACD;;AAGDkD,EAAAA,kBAAkB,CAACR,MAAD,EAAiC1C,MAAjC,EAAsE;AACtF,WAAO,KAAK+C,iBAAL,CAAuBL,MAAvB,EAA+B1C,MAA/B,CAAP;AACD;;AAIDmD,EAAAA,aAAa,CAACf,OAAD,EAAwB;AACnC,WAAO,KAAKzD,QAAL,GAAgBxC,OAAhB,CAAwBiG,OAAxB,CAAP;AACD;;AAEDgB,EAAAA,eAAe,CAACC,CAAD,EAAYC,CAAZ,EAAuBC,CAAvB,EAAwC;AACrD,WAAO,KAAK5E,QAAL,GAAgB9B,SAAhB,CAA0B,CAACwG,CAAD,EAAIC,CAAJ,EAAOC,CAAP,CAA1B,CAAP;AACD;;AAtjBiC;AA0jBpC,IAAIvF,IAAJ;AACA,IAAIF,QAAJ;;AAEA,SAASG,aAAT,GAA4C;AAC1C,MAAI,CAACD,IAAL,EAAW;AACTA,IAAAA,IAAI,GAAG,IAAIH,OAAJ,CAAY,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAlC,EAAqC,CAArC,EAAwC,CAAxC,EAA2C,CAA3C,EAA8C,CAA9C,CAAZ,CAAP;AACAF,IAAAA,MAAM,CAACC,MAAP,CAAcI,IAAd;AACD;;AACD,SAAOA,IAAP;AACD;;AAED,SAASD,iBAAT,GAAsC;AACpC,MAAI,CAACD,QAAL,EAAe;AACbA,IAAAA,QAAQ,GAAG,IAAID,OAAJ,EAAX;AACAF,IAAAA,MAAM,CAACC,MAAP,CAAcE,QAAd;AACD;;AACD,SAAOA,QAAP;AACD;;AAID,SAASuD,YAAT,CAAsBmC,eAAtB,EAA+C;AAC7C,MAAIA,eAAe,GAAGnG,IAAI,CAACC,EAAL,GAAU,CAAhC,EAAmC;AACjC,UAAMwF,KAAK,CAAC,kBAAD,CAAX;AACD;AACF;;AAGD,SAASjC,mCAAT,CACEb,MADF,EAEEM,IAFF,EAGEC,KAHF,EAIEC,MAJF,EAKEC,GALF,EAMEC,IANF,EAOgB;AACd,QAAM+C,WAAW,GAAI,IAAI/C,IAAL,IAAcH,KAAK,GAAGD,IAAtB,CAApB;AACA,QAAMoD,WAAW,GAAI,IAAIhD,IAAL,IAAcD,GAAG,GAAGD,MAApB,CAApB;AACA,QAAMmD,WAAW,GAAG,CAACpD,KAAK,GAAGD,IAAT,KAAkBC,KAAK,GAAGD,IAA1B,CAApB;AACA,QAAMsD,WAAW,GAAG,CAACnD,GAAG,GAAGD,MAAP,KAAkBC,GAAG,GAAGD,MAAxB,CAApB;AACA,QAAMqD,WAAW,GAAG,CAAC,CAArB;AACA,QAAMC,WAAW,GAAG,CAAC,CAArB;AACA,QAAMC,WAAW,GAAG,CAAC,CAAD,GAAKrD,IAAzB;AACAV,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAYyD,WAAZ;AACAzD,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY0D,WAAZ;AACA1D,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;AACAA,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY2D,WAAZ;AACA3D,EAAAA,MAAM,CAAC,CAAD,CAAN,GAAY4D,WAAZ;AACA5D,EAAAA,MAAM,CAAC,EAAD,CAAN,GAAa6D,WAAb;AACA7D,EAAAA,MAAM,CAAC,EAAD,CAAN,GAAa8D,WAAb;AACA9D,EAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACAA,EAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACAA,EAAAA,MAAM,CAAC,EAAD,CAAN,GAAa+D,WAAb;AACA/D,EAAAA,MAAM,CAAC,EAAD,CAAN,GAAa,CAAb;AACA,SAAOA,MAAP;AACD","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 {\n fromQuat as mat4_fromQuat,\n frustum as mat4_frustum,\n lookAt as mat4_lookAt,\n ortho as mat4_ortho,\n perspective as mat4_perspective,\n determinant as mat4_determinant,\n transpose as mat4_transpose,\n invert as mat4_invert,\n multiply as mat4_multiply,\n rotateX as mat4_rotateX,\n rotateY as mat4_rotateY,\n rotateZ as mat4_rotateZ,\n rotate as mat4_rotate,\n scale as mat4_scale,\n translate as mat4_translate\n} from '../gl-matrix/mat4';\nimport {transformMat4 as vec2_transformMat4} from '../gl-matrix/vec2';\nimport {transformMat4 as vec3_transformMat4} from '../gl-matrix/vec3';\nimport {transformMat4 as vec4_transformMat4} 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 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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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) as NumericArray;\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) as NumericArray;\n break;\n case 3:\n out = vec3_transformMat4(result || [-0, -0, -0], vector, this) as NumericArray;\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"}
@@ -1,8 +1,8 @@
1
- import Matrix4 from './matrix4';
2
- import Vector3 from './vector3';
3
- import Euler from './euler';
1
+ import { Matrix4 } from './matrix4';
2
+ import { Vector3 } from './vector3';
3
+ import { Euler } from './euler';
4
4
  import { NumericArray } from '@math.gl/types';
5
- type PoseOptions = {
5
+ declare type PoseOptions = {
6
6
  position?: Readonly<NumericArray>;
7
7
  orientation?: Readonly<NumericArray>;
8
8
  x?: number;
@@ -12,7 +12,7 @@ type PoseOptions = {
12
12
  pitch?: number;
13
13
  yaw?: number;
14
14
  };
15
- export default class Pose {
15
+ export declare class Pose {
16
16
  readonly position: Vector3;
17
17
  readonly orientation: Euler;
18
18
  constructor({ x, y, z, roll, pitch, yaw, position, orientation }?: PoseOptions);
@@ -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,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
+ {"version":3,"file":"pose.d.ts","sourceRoot":"","sources":["../../src/classes/pose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,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,qBAAa,IAAI;IACf,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,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import Matrix4 from "./matrix4.js";
3
- import Vector3 from "./vector3.js";
4
- import Euler from "./euler.js";
5
- export default class Pose {
2
+ import { Matrix4 } from "./matrix4.js";
3
+ import { Vector3 } from "./vector3.js";
4
+ import { Euler } from "./euler.js";
5
+ export class Pose {
6
6
  constructor({
7
7
  x = 0,
8
8
  y = 0,