@math.gl/core 3.6.3 → 4.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/classes/base/math-array.d.ts +5 -4
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/{esm/classes → classes}/base/math-array.js +8 -3
  4. package/dist/classes/base/math-array.js.map +1 -0
  5. package/dist/classes/base/matrix.d.ts +2 -2
  6. package/dist/classes/base/matrix.d.ts.map +1 -1
  7. package/dist/{esm/classes → classes}/base/matrix.js +4 -4
  8. package/dist/classes/base/matrix.js.map +1 -0
  9. package/dist/classes/base/vector.d.ts +2 -2
  10. package/dist/classes/base/vector.d.ts.map +1 -1
  11. package/dist/{esm/classes → classes}/base/vector.js +4 -4
  12. package/dist/classes/base/vector.js.map +1 -0
  13. package/dist/classes/euler.d.ts +4 -4
  14. package/dist/classes/euler.d.ts.map +1 -1
  15. package/dist/{esm/classes → classes}/euler.js +6 -6
  16. package/dist/classes/euler.js.map +1 -0
  17. package/dist/classes/matrix3.d.ts +5 -2
  18. package/dist/classes/matrix3.d.ts.map +1 -1
  19. package/dist/{esm/classes → classes}/matrix3.js +20 -20
  20. package/dist/classes/matrix3.js.map +1 -0
  21. package/dist/classes/matrix4.d.ts +2 -2
  22. package/dist/classes/matrix4.d.ts.map +1 -1
  23. package/dist/{esm/classes → classes}/matrix4.js +27 -27
  24. package/dist/classes/matrix4.js.map +1 -0
  25. package/dist/classes/pose.d.ts +4 -4
  26. package/dist/classes/pose.d.ts.map +1 -1
  27. package/dist/{esm/classes → classes}/pose.js +4 -4
  28. package/dist/classes/pose.js.map +1 -0
  29. package/dist/classes/quaternion.d.ts +2 -2
  30. package/dist/classes/quaternion.d.ts.map +1 -1
  31. package/dist/{esm/classes → classes}/quaternion.js +26 -26
  32. package/dist/classes/quaternion.js.map +1 -0
  33. package/dist/classes/spherical-coordinates.d.ts +2 -2
  34. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  35. package/dist/{esm/classes → classes}/spherical-coordinates.js +5 -5
  36. package/dist/classes/spherical-coordinates.js.map +1 -0
  37. package/dist/classes/vector2.d.ts +2 -2
  38. package/dist/classes/vector2.d.ts.map +1 -1
  39. package/dist/{esm/classes → classes}/vector2.js +10 -10
  40. package/dist/classes/vector2.js.map +1 -0
  41. package/dist/classes/vector3.d.ts +2 -2
  42. package/dist/classes/vector3.d.ts.map +1 -1
  43. package/dist/{esm/classes → classes}/vector3.js +14 -14
  44. package/dist/classes/vector3.js.map +1 -0
  45. package/dist/classes/vector4.d.ts +3 -3
  46. package/dist/classes/vector4.d.ts.map +1 -1
  47. package/dist/{esm/classes → classes}/vector4.js +8 -8
  48. package/dist/classes/vector4.js.map +1 -0
  49. package/dist/gl-matrix/common.d.ts +38 -0
  50. package/dist/gl-matrix/common.d.ts.map +1 -0
  51. package/dist/gl-matrix/common.js +19 -0
  52. package/dist/gl-matrix/common.js.map +1 -0
  53. package/dist/gl-matrix/mat3.d.ts +295 -0
  54. package/dist/gl-matrix/mat3.d.ts.map +1 -0
  55. package/dist/gl-matrix/mat3.js +489 -0
  56. package/dist/gl-matrix/mat3.js.map +1 -0
  57. package/dist/gl-matrix/mat4.d.ts +577 -0
  58. package/dist/gl-matrix/mat4.d.ts.map +1 -0
  59. package/dist/gl-matrix/mat4.js +1455 -0
  60. package/dist/gl-matrix/mat4.js.map +1 -0
  61. package/dist/gl-matrix/quat.d.ts +357 -0
  62. package/dist/gl-matrix/quat.d.ts.map +1 -0
  63. package/dist/gl-matrix/quat.js +315 -0
  64. package/dist/gl-matrix/quat.js.map +1 -0
  65. package/dist/gl-matrix/vec2.d.ts +373 -0
  66. package/dist/gl-matrix/vec2.d.ts.map +1 -0
  67. package/dist/gl-matrix/vec2.js +257 -0
  68. package/dist/gl-matrix/vec2.js.map +1 -0
  69. package/dist/gl-matrix/vec3.d.ts +416 -0
  70. package/dist/gl-matrix/vec3.d.ts.map +1 -0
  71. package/dist/gl-matrix/vec3.js +384 -0
  72. package/dist/gl-matrix/vec3.js.map +1 -0
  73. package/dist/gl-matrix/vec4.d.ts +340 -0
  74. package/dist/gl-matrix/vec4.d.ts.map +1 -0
  75. package/dist/gl-matrix/vec4.js +334 -0
  76. package/dist/gl-matrix/vec4.js.map +1 -0
  77. package/dist/gl-matrix/wip/index.d.ts +5 -0
  78. package/dist/gl-matrix/wip/index.d.ts.map +1 -0
  79. package/dist/gl-matrix/wip/index.js +12 -0
  80. package/dist/gl-matrix/wip/index.js.map +1 -0
  81. package/dist/gl-matrix/wip/mat2.d.ts +229 -0
  82. package/dist/gl-matrix/wip/mat2.d.ts.map +1 -0
  83. package/dist/gl-matrix/wip/mat2.js +208 -0
  84. package/dist/gl-matrix/wip/mat2.js.map +1 -0
  85. package/dist/gl-matrix/wip/mat2d.d.ts +244 -0
  86. package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -0
  87. package/dist/gl-matrix/wip/mat2d.js +251 -0
  88. package/dist/gl-matrix/wip/mat2d.js.map +1 -0
  89. package/dist/gl-matrix/wip/quat2.d.ts +352 -0
  90. package/dist/gl-matrix/wip/quat2.d.ts.map +1 -0
  91. package/dist/gl-matrix/wip/quat2.js +482 -0
  92. package/dist/gl-matrix/wip/quat2.js.map +1 -0
  93. package/dist/gl-matrix/wip/types.d.js +2 -0
  94. package/dist/{esm/lib/gl-matrix.d.js.map → gl-matrix/wip/types.d.js.map} +1 -1
  95. package/dist/index.cjs +3788 -0
  96. package/dist/index.d.ts +15 -14
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +17 -0
  99. package/dist/index.js.map +1 -0
  100. package/dist/lib/assert.d.ts +1 -1
  101. package/dist/lib/assert.d.ts.map +1 -1
  102. package/dist/lib/assert.js +6 -0
  103. package/dist/lib/assert.js.map +1 -0
  104. package/dist/lib/common.d.ts +10 -5
  105. package/dist/lib/common.d.ts.map +1 -1
  106. package/dist/{esm/lib → lib}/common.js +11 -9
  107. package/dist/lib/common.js.map +1 -0
  108. package/dist/lib/gl-matrix-extras.js.map +1 -0
  109. package/dist/lib/math-utils.d.ts +24 -27
  110. package/dist/lib/math-utils.d.ts.map +1 -1
  111. package/dist/lib/math-utils.js +25 -0
  112. package/dist/lib/math-utils.js.map +1 -0
  113. package/dist/lib/validators.d.ts +1 -1
  114. package/dist/lib/validators.d.ts.map +1 -1
  115. package/dist/{esm/lib → lib}/validators.js +2 -2
  116. package/dist/lib/validators.js.map +1 -0
  117. package/package.json +6 -6
  118. package/src/classes/base/math-array.ts +16 -8
  119. package/src/classes/base/matrix.ts +7 -4
  120. package/src/classes/base/vector.ts +4 -4
  121. package/src/classes/euler.ts +9 -8
  122. package/src/classes/matrix3.ts +37 -24
  123. package/src/classes/matrix4.ts +48 -29
  124. package/src/classes/pose.ts +4 -4
  125. package/src/classes/quaternion.ts +54 -32
  126. package/src/classes/spherical-coordinates.ts +5 -4
  127. package/src/classes/vector2.ts +13 -9
  128. package/src/classes/vector3.ts +26 -12
  129. package/src/classes/vector4.ts +14 -10
  130. package/src/gl-matrix/common.js +58 -0
  131. package/src/gl-matrix/mat3.js +842 -0
  132. package/src/gl-matrix/mat4.js +2169 -0
  133. package/src/gl-matrix/quat.ts +789 -0
  134. package/src/gl-matrix/vec2.js +629 -0
  135. package/src/gl-matrix/vec3.js +827 -0
  136. package/src/gl-matrix/vec4.js +675 -0
  137. package/src/gl-matrix/wip/index.js +15 -0
  138. package/src/gl-matrix/wip/mat2.js +442 -0
  139. package/src/gl-matrix/wip/mat2d.js +505 -0
  140. package/src/gl-matrix/wip/quat2.ts +886 -0
  141. package/src/gl-matrix/wip/types.d.ts +93 -0
  142. package/src/index.ts +16 -14
  143. package/src/lib/assert.ts +1 -1
  144. package/src/lib/common.ts +31 -19
  145. package/src/lib/math-utils.ts +24 -26
  146. package/src/lib/validators.ts +3 -3
  147. package/dist/es5/classes/base/math-array.js +0 -348
  148. package/dist/es5/classes/base/math-array.js.map +0 -1
  149. package/dist/es5/classes/base/matrix.js +0 -108
  150. package/dist/es5/classes/base/matrix.js.map +0 -1
  151. package/dist/es5/classes/base/vector.js +0 -210
  152. package/dist/es5/classes/base/vector.js.map +0 -1
  153. package/dist/es5/classes/euler.js +0 -654
  154. package/dist/es5/classes/euler.js.map +0 -1
  155. package/dist/es5/classes/matrix3.js +0 -284
  156. package/dist/es5/classes/matrix3.js.map +0 -1
  157. package/dist/es5/classes/matrix4.js +0 -574
  158. package/dist/es5/classes/matrix4.js.map +0 -1
  159. package/dist/es5/classes/pose.js +0 -159
  160. package/dist/es5/classes/pose.js.map +0 -1
  161. package/dist/es5/classes/quaternion.js +0 -323
  162. package/dist/es5/classes/quaternion.js.map +0 -1
  163. package/dist/es5/classes/spherical-coordinates.js +0 -208
  164. package/dist/es5/classes/spherical-coordinates.js.map +0 -1
  165. package/dist/es5/classes/vector2.js +0 -156
  166. package/dist/es5/classes/vector2.js.map +0 -1
  167. package/dist/es5/classes/vector3.js +0 -213
  168. package/dist/es5/classes/vector3.js.map +0 -1
  169. package/dist/es5/classes/vector4.js +0 -185
  170. package/dist/es5/classes/vector4.js.map +0 -1
  171. package/dist/es5/docs/README.md +0 -0
  172. package/dist/es5/index.js +0 -236
  173. package/dist/es5/index.js.map +0 -1
  174. package/dist/es5/lib/assert.js +0 -13
  175. package/dist/es5/lib/assert.js.map +0 -1
  176. package/dist/es5/lib/common.js +0 -255
  177. package/dist/es5/lib/common.js.map +0 -1
  178. package/dist/es5/lib/gl-matrix-extras.js +0 -61
  179. package/dist/es5/lib/gl-matrix-extras.js.map +0 -1
  180. package/dist/es5/lib/gl-matrix.d.js +0 -2
  181. package/dist/es5/lib/math-utils.js +0 -34
  182. package/dist/es5/lib/math-utils.js.map +0 -1
  183. package/dist/es5/lib/validators.js +0 -53
  184. package/dist/es5/lib/validators.js.map +0 -1
  185. package/dist/esm/classes/base/math-array.js.map +0 -1
  186. package/dist/esm/classes/base/matrix.js.map +0 -1
  187. package/dist/esm/classes/base/vector.js.map +0 -1
  188. package/dist/esm/classes/euler.js.map +0 -1
  189. package/dist/esm/classes/matrix3.js.map +0 -1
  190. package/dist/esm/classes/matrix4.js.map +0 -1
  191. package/dist/esm/classes/pose.js.map +0 -1
  192. package/dist/esm/classes/quaternion.js.map +0 -1
  193. package/dist/esm/classes/spherical-coordinates.js.map +0 -1
  194. package/dist/esm/classes/vector2.js.map +0 -1
  195. package/dist/esm/classes/vector3.js.map +0 -1
  196. package/dist/esm/classes/vector4.js.map +0 -1
  197. package/dist/esm/docs/README.md +0 -0
  198. package/dist/esm/index.js +0 -16
  199. package/dist/esm/index.js.map +0 -1
  200. package/dist/esm/lib/assert.js +0 -6
  201. package/dist/esm/lib/assert.js.map +0 -1
  202. package/dist/esm/lib/common.js.map +0 -1
  203. package/dist/esm/lib/gl-matrix-extras.js.map +0 -1
  204. package/dist/esm/lib/math-utils.js +0 -27
  205. package/dist/esm/lib/math-utils.js.map +0 -1
  206. package/dist/esm/lib/validators.js.map +0 -1
  207. package/src/docs/README.md +0 -0
  208. /package/dist/{esm/lib → lib}/gl-matrix-extras.js +0 -0
  209. /package/dist/{esm/lib → lib}/gl-matrix.d.js +0 -0
  210. /package/dist/{es5/lib → lib}/gl-matrix.d.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/gl-matrix/vec4.js"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","clone","a","fromValues","x","y","z","w","copy","set","add","b","subtract","multiply","divide","ceil","Math","floor","min","max","round","scale","scaleAndAdd","distance","sqrt","squaredDistance","length","squaredLength","negate","inverse","normalize","len","dot","cross","u","v","A","B","C","D","E","F","G","H","I","J","lerp","t","ax","ay","az","aw","random","undefined","v1","v2","v3","v4","s1","s2","RANDOM","d","transformMat4","m","transformQuat","q","qx","qy","qz","qw","ix","iy","iz","iw","zero","str","exactEquals","equals","a0","a1","a2","a3","b0","b1","b2","b3","abs","EPSILON","sub","mul","div","dist","sqrDist","sqrLen","forEach","vec","stride","offset","count","fn","arg","i","l"],"mappings":"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","sourcesContent":["// @eslint-disable\n// @ts-nocheck\n\nimport * as glMatrix from './common.js';\n\n/**\n * 4 Dimensional Vector\n * @module vec4\n */\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(4);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n return out;\n}\n\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {ReadonlyVec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n\n/**\n * Creates a new vec4 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} a new 4D vector\n */\nexport function fromValues(x, y, z, w) {\n const out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the source vector\n * @returns {vec4} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n\n/**\n * Multiplies two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n\n/**\n * Math.ceil the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to ceil\n * @returns {vec4} out\n */\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n\n/**\n * Math.floor the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to floor\n * @returns {vec4} out\n */\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n\n/**\n * Returns the maximum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n\n/**\n * symmetric round the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to round\n * @returns {vec4} out\n */\nexport function round(out, a) {\n out[0] = glMatrix.round(a[0]);\n out[1] = glMatrix.round(a[1]);\n out[2] = glMatrix.round(a[2]);\n out[3] = glMatrix.round(a[3]);\n return out;\n}\n\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n\n/**\n * Adds two vec4's after scaling the second operand by a scalar value\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec4} out\n */\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n\n/**\n * Calculates the euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} distance between a and b\n */\nexport function distance(a, b) {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n const z = b[2] - a[2];\n const w = b[3] - a[3];\n return Math.sqrt(x * x + y * y + z * z + w * w);\n}\n\n/**\n * Calculates the squared euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} squared distance between a and b\n */\nexport function squaredDistance(a, b) {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n const z = b[2] - a[2];\n const w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n\n/**\n * Calculates the length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate length of\n * @returns {Number} length of a\n */\nexport function length(a) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const w = a[3];\n return Math.sqrt(x * x + y * y + z * z + w * w);\n}\n\n/**\n * Calculates the squared length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\nexport function squaredLength(a) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n\n/**\n * Negates the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to negate\n * @returns {vec4} out\n */\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n\n/**\n * Returns the inverse of the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to invert\n * @returns {vec4} out\n */\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to normalize\n * @returns {vec4} out\n */\nexport function normalize(out, a) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const w = a[3];\n let len = x * x + y * y + z * z + w * w;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} dot product of a and b\n */\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n\n/**\n * Returns the cross-product of three vectors in a 4-dimensional space\n *\n * @param {ReadonlyVec4} result the receiving vector\n * @param {ReadonlyVec4} U the first vector\n * @param {ReadonlyVec4} V the second vector\n * @param {ReadonlyVec4} W the third vector\n * @returns {vec4} result\n */\nexport function cross(out, u, v, w) {\n const A = v[0] * w[1] - v[1] * w[0];\n const B = v[0] * w[2] - v[2] * w[0];\n const C = v[0] * w[3] - v[3] * w[0];\n const D = v[1] * w[2] - v[2] * w[1];\n const E = v[1] * w[3] - v[3] * w[1];\n const F = v[2] * w[3] - v[3] * w[2];\n const G = u[0];\n const H = u[1];\n const I = u[2];\n const J = u[3];\n\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n\n return out;\n}\n\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec4} out\n */\nexport function lerp(out, a, b, t) {\n const ax = a[0];\n const ay = a[1];\n const az = a[2];\n const aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec4} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If omitted, a unit vector will be returned\n * @returns {vec4} out\n */\nexport function random(out, scale) {\n scale = scale === undefined ? 1.0 : scale;\n\n // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n let v1;\n let v2;\n let v3;\n let v4;\n let s1;\n let s2;\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n const d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec4} out\n */\nexport function transformMat4(out, a, m) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n\n/**\n * Transforms the vec4 with a quat\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec4} out\n */\nexport function transformQuat(out, a, q) {\n const x = a[0];\n const y = a[1];\n const z = a[2];\n const qx = q[0];\n const qy = q[1];\n const qz = q[2];\n const qw = q[3];\n\n // calculate quat * vec\n const ix = qw * x + qy * z - qz * y;\n const iy = qw * y + qz * x - qx * z;\n const iz = qw * z + qx * y - qy * x;\n const iw = -qx * x - qy * y - qz * z;\n\n // calculate result * inverse quat\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n\n/**\n * Set the components of a vec4 to zero\n *\n * @param {vec4} out the receiving vector\n * @returns {vec4} out\n */\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec4} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\nexport function str(a) {\n return `vec4(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]})`;\n}\n\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const a3 = a[3];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n const b3 = b[3];\n return (\n Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\n Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3))\n );\n}\n\n/**\n * Alias for {@link vec4.subtract}\n * @function\n */\nexport const sub = subtract;\n\n/**\n * Alias for {@link vec4.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link vec4.divide}\n * @function\n */\nexport const div = divide;\n\n/**\n * Alias for {@link vec4.distance}\n * @function\n */\nexport const dist = distance;\n\n/**\n * Alias for {@link vec4.squaredDistance}\n * @function\n */\nexport const sqrDist = squaredDistance;\n\n/**\n * Alias for {@link vec4.length}\n * @function\n */\nexport const len = length;\n\n/**\n * Alias for {@link vec4.squaredLength}\n * @function\n */\nexport const sqrLen = squaredLength;\n\n/**\n * Perform some operation over an array of vec4s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\nexport const forEach = (function () {\n const vec = create();\n\n return function (a, stride, offset, count, fn, arg) {\n let i;\n let l;\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n})();\n"],"file":"vec4.js"}
@@ -0,0 +1,5 @@
1
+ import * as mat2 from "./mat2.js";
2
+ import * as mat2d from "./mat2d.js";
3
+ import * as quat2 from "./quat2.js";
4
+ export { glMatrix, mat2, mat2d, mat3, mat4, quat, quat2, vec2, vec3, vec4 };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gl-matrix/wip/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import * as glMatrix from './common.js';
2
+ import * as mat2 from './mat2.js';
3
+ import * as mat2d from './mat2d.js';
4
+ import * as mat3 from './mat3.js';
5
+ import * as mat4 from './mat4.js';
6
+ import * as quat from './quat.js';
7
+ import * as quat2 from './quat2.js';
8
+ import * as vec2 from './vec2.js';
9
+ import * as vec3 from './vec3.js';
10
+ import * as vec4 from './vec4.js';
11
+ export { glMatrix, mat2, mat2d, mat3, mat4, quat, quat2, vec2, vec3, vec4 };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/gl-matrix/wip/index.js"],"names":["glMatrix","mat2","mat2d","mat3","mat4","quat","quat2","vec2","vec3","vec4"],"mappings":"AAGA,OAAO,KAAKA,QAAZ,MAA0B,aAA1B;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AACA,OAAO,KAAKC,KAAZ,MAAuB,YAAvB;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AACA,OAAO,KAAKC,KAAZ,MAAuB,YAAvB;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AACA,OAAO,KAAKC,IAAZ,MAAsB,WAAtB;AAEA,SAAQT,QAAR,EAAkBC,IAAlB,EAAwBC,KAAxB,EAA+BC,IAA/B,EAAqCC,IAArC,EAA2CC,IAA3C,EAAiDC,KAAjD,EAAwDC,IAAxD,EAA8DC,IAA9D,EAAoEC,IAApE","sourcesContent":["// @eslint-disable\n// @ts-nocheck\n\nimport * as glMatrix from './common.js';\nimport * as mat2 from './mat2.js';\nimport * as mat2d from './mat2d.js';\nimport * as mat3 from './mat3.js';\nimport * as mat4 from './mat4.js';\nimport * as quat from './quat.js';\nimport * as quat2 from './quat2.js';\nimport * as vec2 from './vec2.js';\nimport * as vec3 from './vec3.js';\nimport * as vec4 from './vec4.js';\n\nexport {glMatrix, mat2, mat2d, mat3, mat4, quat, quat2, vec2, vec3, vec4};\n"],"file":"index.js"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * 2x2 Matrix
3
+ * @module mat2
4
+ */
5
+ /**
6
+ * Creates a new identity mat2
7
+ *
8
+ * @returns {mat2} a new 2x2 matrix
9
+ */
10
+ export function create(): mat2;
11
+ /**
12
+ * Creates a new mat2 initialized with values from an existing matrix
13
+ *
14
+ * @param {ReadonlyMat2} a matrix to clone
15
+ * @returns {mat2} a new 2x2 matrix
16
+ */
17
+ export function clone(a: ReadonlyMat2): mat2;
18
+ /**
19
+ * Copy the values from one mat2 to another
20
+ *
21
+ * @param {mat2} out the receiving matrix
22
+ * @param {ReadonlyMat2} a the source matrix
23
+ * @returns {mat2} out
24
+ */
25
+ export function copy(out: mat2, a: ReadonlyMat2): mat2;
26
+ /**
27
+ * Set a mat2 to the identity matrix
28
+ *
29
+ * @param {mat2} out the receiving matrix
30
+ * @returns {mat2} out
31
+ */
32
+ export function identity(out: mat2): mat2;
33
+ /**
34
+ * Create a new mat2 with the given values
35
+ *
36
+ * @param {Number} m00 Component in column 0, row 0 position (index 0)
37
+ * @param {Number} m01 Component in column 0, row 1 position (index 1)
38
+ * @param {Number} m10 Component in column 1, row 0 position (index 2)
39
+ * @param {Number} m11 Component in column 1, row 1 position (index 3)
40
+ * @returns {mat2} out A new 2x2 matrix
41
+ */
42
+ export function fromValues(m00: number, m01: number, m10: number, m11: number): mat2;
43
+ /**
44
+ * Set the components of a mat2 to the given values
45
+ *
46
+ * @param {mat2} out the receiving matrix
47
+ * @param {Number} m00 Component in column 0, row 0 position (index 0)
48
+ * @param {Number} m01 Component in column 0, row 1 position (index 1)
49
+ * @param {Number} m10 Component in column 1, row 0 position (index 2)
50
+ * @param {Number} m11 Component in column 1, row 1 position (index 3)
51
+ * @returns {mat2} out
52
+ */
53
+ export function set(out: mat2, m00: number, m01: number, m10: number, m11: number): mat2;
54
+ /**
55
+ * Transpose the values of a mat2
56
+ *
57
+ * @param {mat2} out the receiving matrix
58
+ * @param {ReadonlyMat2} a the source matrix
59
+ * @returns {mat2} out
60
+ */
61
+ export function transpose(out: mat2, a: ReadonlyMat2): mat2;
62
+ /**
63
+ * Inverts a mat2
64
+ *
65
+ * @param {mat2} out the receiving matrix
66
+ * @param {ReadonlyMat2} a the source matrix
67
+ * @returns {mat2} out
68
+ */
69
+ export function invert(out: mat2, a: ReadonlyMat2): mat2;
70
+ /**
71
+ * Calculates the adjugate of a mat2
72
+ *
73
+ * @param {mat2} out the receiving matrix
74
+ * @param {ReadonlyMat2} a the source matrix
75
+ * @returns {mat2} out
76
+ */
77
+ export function adjoint(out: mat2, a: ReadonlyMat2): mat2;
78
+ /**
79
+ * Calculates the determinant of a mat2
80
+ *
81
+ * @param {ReadonlyMat2} a the source matrix
82
+ * @returns {Number} determinant of a
83
+ */
84
+ export function determinant(a: ReadonlyMat2): number;
85
+ /**
86
+ * Multiplies two mat2's
87
+ *
88
+ * @param {mat2} out the receiving matrix
89
+ * @param {ReadonlyMat2} a the first operand
90
+ * @param {ReadonlyMat2} b the second operand
91
+ * @returns {mat2} out
92
+ */
93
+ export function multiply(out: mat2, a: ReadonlyMat2, b: ReadonlyMat2): mat2;
94
+ /**
95
+ * Rotates a mat2 by the given angle
96
+ *
97
+ * @param {mat2} out the receiving matrix
98
+ * @param {ReadonlyMat2} a the matrix to rotate
99
+ * @param {Number} rad the angle to rotate the matrix by
100
+ * @returns {mat2} out
101
+ */
102
+ export function rotate(out: mat2, a: ReadonlyMat2, rad: number): mat2;
103
+ /**
104
+ * Scales the mat2 by the dimensions in the given vec2
105
+ *
106
+ * @param {mat2} out the receiving matrix
107
+ * @param {ReadonlyMat2} a the matrix to rotate
108
+ * @param {ReadonlyVec2} v the vec2 to scale the matrix by
109
+ * @returns {mat2} out
110
+ **/
111
+ export function scale(out: mat2, a: ReadonlyMat2, v: ReadonlyVec2): mat2;
112
+ /**
113
+ * Creates a matrix from a given angle
114
+ * This is equivalent to (but much faster than):
115
+ *
116
+ * mat2.identity(dest);
117
+ * mat2.rotate(dest, dest, rad);
118
+ *
119
+ * @param {mat2} out mat2 receiving operation result
120
+ * @param {Number} rad the angle to rotate the matrix by
121
+ * @returns {mat2} out
122
+ */
123
+ export function fromRotation(out: mat2, rad: number): mat2;
124
+ /**
125
+ * Creates a matrix from a vector scaling
126
+ * This is equivalent to (but much faster than):
127
+ *
128
+ * mat2.identity(dest);
129
+ * mat2.scale(dest, dest, vec);
130
+ *
131
+ * @param {mat2} out mat2 receiving operation result
132
+ * @param {ReadonlyVec2} v Scaling vector
133
+ * @returns {mat2} out
134
+ */
135
+ export function fromScaling(out: mat2, v: ReadonlyVec2): mat2;
136
+ /**
137
+ * Returns a string representation of a mat2
138
+ *
139
+ * @param {ReadonlyMat2} a matrix to represent as a string
140
+ * @returns {String} string representation of the matrix
141
+ */
142
+ export function str(a: ReadonlyMat2): string;
143
+ /**
144
+ * Returns Frobenius norm of a mat2
145
+ *
146
+ * @param {ReadonlyMat2} a the matrix to calculate Frobenius norm of
147
+ * @returns {Number} Frobenius norm
148
+ */
149
+ export function frob(a: ReadonlyMat2): number;
150
+ /**
151
+ * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix
152
+ * @param {ReadonlyMat2} L the lower triangular matrix
153
+ * @param {ReadonlyMat2} D the diagonal matrix
154
+ * @param {ReadonlyMat2} U the upper triangular matrix
155
+ * @param {ReadonlyMat2} a the input matrix to factorize
156
+ */
157
+ export function LDU(L: ReadonlyMat2, D: ReadonlyMat2, U: ReadonlyMat2, a: ReadonlyMat2): ReadonlyMat2[];
158
+ /**
159
+ * Adds two mat2's
160
+ *
161
+ * @param {mat2} out the receiving matrix
162
+ * @param {ReadonlyMat2} a the first operand
163
+ * @param {ReadonlyMat2} b the second operand
164
+ * @returns {mat2} out
165
+ */
166
+ export function add(out: mat2, a: ReadonlyMat2, b: ReadonlyMat2): mat2;
167
+ /**
168
+ * Subtracts matrix b from matrix a
169
+ *
170
+ * @param {mat2} out the receiving matrix
171
+ * @param {ReadonlyMat2} a the first operand
172
+ * @param {ReadonlyMat2} b the second operand
173
+ * @returns {mat2} out
174
+ */
175
+ export function subtract(out: mat2, a: ReadonlyMat2, b: ReadonlyMat2): mat2;
176
+ /**
177
+ * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
178
+ *
179
+ * @param {ReadonlyMat2} a The first matrix.
180
+ * @param {ReadonlyMat2} b The second matrix.
181
+ * @returns {Boolean} True if the matrices are equal, false otherwise.
182
+ */
183
+ export function exactEquals(a: ReadonlyMat2, b: ReadonlyMat2): boolean;
184
+ /**
185
+ * Returns whether or not the matrices have approximately the same elements in the same position.
186
+ *
187
+ * @param {ReadonlyMat2} a The first matrix.
188
+ * @param {ReadonlyMat2} b The second matrix.
189
+ * @returns {Boolean} True if the matrices are equal, false otherwise.
190
+ */
191
+ export function equals(a: ReadonlyMat2, b: ReadonlyMat2): boolean;
192
+ /**
193
+ * Multiply each element of the matrix by a scalar.
194
+ *
195
+ * @param {mat2} out the receiving matrix
196
+ * @param {ReadonlyMat2} a the matrix to scale
197
+ * @param {Number} b amount to scale the matrix's elements by
198
+ * @returns {mat2} out
199
+ */
200
+ export function multiplyScalar(out: mat2, a: ReadonlyMat2, b: number): mat2;
201
+ /**
202
+ * Adds two mat2's after multiplying each element of the second operand by a scalar value.
203
+ *
204
+ * @param {mat2} out the receiving vector
205
+ * @param {ReadonlyMat2} a the first operand
206
+ * @param {ReadonlyMat2} b the second operand
207
+ * @param {Number} scale the amount to scale b's elements by before adding
208
+ * @returns {mat2} out
209
+ */
210
+ export function multiplyScalarAndAdd(out: mat2, a: ReadonlyMat2, b: ReadonlyMat2, scale: number): mat2;
211
+ /**
212
+ * Multiplies two mat2's
213
+ *
214
+ * @param {mat2} out the receiving matrix
215
+ * @param {ReadonlyMat2} a the first operand
216
+ * @param {ReadonlyMat2} b the second operand
217
+ * @returns {mat2} out
218
+ */
219
+ export function mul(out: mat2, a: ReadonlyMat2, b: ReadonlyMat2): mat2;
220
+ /**
221
+ * Subtracts matrix b from matrix a
222
+ *
223
+ * @param {mat2} out the receiving matrix
224
+ * @param {ReadonlyMat2} a the first operand
225
+ * @param {ReadonlyMat2} b the second operand
226
+ * @returns {mat2} out
227
+ */
228
+ export function sub(out: mat2, a: ReadonlyMat2, b: ReadonlyMat2): mat2;
229
+ //# sourceMappingURL=mat2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mat2.d.ts","sourceRoot":"","sources":["../../../src/gl-matrix/wip/mat2.js"],"names":[],"mappings":"AAKA;;;GAGG;AAEH;;;;GAIG;AACH,0BAFa,IAAI,CAWhB;AAED;;;;;GAKG;AACH,yBAHW,YAAY,GACV,IAAI,CAShB;AAED;;;;;;GAMG;AACH,0BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAQhB;AAED;;;;;GAKG;AACH,8BAHW,IAAI,GACF,IAAI,CAQhB;AAED;;;;;;;;GAQG;AACH,gFAFa,IAAI,CAShB;AAED;;;;;;;;;GASG;AACH,yBAPW,IAAI,uDAKF,IAAI,CAQhB;AAED;;;;;;GAMG;AACH,+BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAiBhB;AAED;;;;;;GAMG;AACH,4BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAsBhB;AAED;;;;;;GAMG;AACH,6BAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAWhB;AAED;;;;;GAKG;AACH,+BAHW,YAAY,UAKtB;AAED;;;;;;;GAOG;AACH,8BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAgBhB;AAED;;;;;;;GAOG;AACH,4BALW,IAAI,KACJ,YAAY,gBAEV,IAAI,CAchB;AAED;;;;;;;IAOI;AACJ,2BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAchB;AAED;;;;;;;;;;GAUG;AACH,kCAJW,IAAI,gBAEF,IAAI,CAUhB;AAED;;;;;;;;;;GAUG;AACH,iCAJW,IAAI,KACJ,YAAY,GACV,IAAI,CAQhB;AAED;;;;;GAKG;AACH,uBAHW,YAAY,UAKtB;AAED;;;;;GAKG;AACH,wBAHW,YAAY,UAKtB;AAED;;;;;;GAMG;AAEH,uBANW,YAAY,KACZ,YAAY,KACZ,YAAY,KACZ,YAAY,kBAStB;AAED;;;;;;;GAOG;AACH,yBALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAQhB;AAED;;;;;;;GAOG;AACH,8BALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAQhB;AAED;;;;;;GAMG;AACH,+BAJW,YAAY,KACZ,YAAY,WAKtB;AAED;;;;;;GAMG;AACH,0BAJW,YAAY,KACZ,YAAY,WAkBtB;AAED;;;;;;;GAOG;AACH,oCALW,IAAI,KACJ,YAAY,cAEV,IAAI,CAQhB;AAED;;;;;;;;GAQG;AACH,0CANW,IAAI,KACJ,YAAY,KACZ,YAAY,kBAEV,IAAI,CAQhB;AAlPD;;;;;;;GAOG;AACH,yBALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAgBhB;AA0ID;;;;;;;GAOG;AACH,yBALW,IAAI,KACJ,YAAY,KACZ,YAAY,GACV,IAAI,CAQhB"}
@@ -0,0 +1,208 @@
1
+ import * as glMatrix from './common.js';
2
+ export function create() {
3
+ let out = new glMatrix.ARRAY_TYPE(4);
4
+
5
+ if (glMatrix.ARRAY_TYPE != Float32Array) {
6
+ out[1] = 0;
7
+ out[2] = 0;
8
+ }
9
+
10
+ out[0] = 1;
11
+ out[3] = 1;
12
+ return out;
13
+ }
14
+ export function clone(a) {
15
+ let out = new glMatrix.ARRAY_TYPE(4);
16
+ out[0] = a[0];
17
+ out[1] = a[1];
18
+ out[2] = a[2];
19
+ out[3] = a[3];
20
+ return out;
21
+ }
22
+ export function copy(out, a) {
23
+ out[0] = a[0];
24
+ out[1] = a[1];
25
+ out[2] = a[2];
26
+ out[3] = a[3];
27
+ return out;
28
+ }
29
+ export function identity(out) {
30
+ out[0] = 1;
31
+ out[1] = 0;
32
+ out[2] = 0;
33
+ out[3] = 1;
34
+ return out;
35
+ }
36
+ export function fromValues(m00, m01, m10, m11) {
37
+ let out = new glMatrix.ARRAY_TYPE(4);
38
+ out[0] = m00;
39
+ out[1] = m01;
40
+ out[2] = m10;
41
+ out[3] = m11;
42
+ return out;
43
+ }
44
+ export function set(out, m00, m01, m10, m11) {
45
+ out[0] = m00;
46
+ out[1] = m01;
47
+ out[2] = m10;
48
+ out[3] = m11;
49
+ return out;
50
+ }
51
+ export function transpose(out, a) {
52
+ if (out === a) {
53
+ let a1 = a[1];
54
+ out[1] = a[2];
55
+ out[2] = a1;
56
+ } else {
57
+ out[0] = a[0];
58
+ out[1] = a[2];
59
+ out[2] = a[1];
60
+ out[3] = a[3];
61
+ }
62
+
63
+ return out;
64
+ }
65
+ export function invert(out, a) {
66
+ let a0 = a[0],
67
+ a1 = a[1],
68
+ a2 = a[2],
69
+ a3 = a[3];
70
+ let det = a0 * a3 - a2 * a1;
71
+
72
+ if (!det) {
73
+ return null;
74
+ }
75
+
76
+ det = 1.0 / det;
77
+ out[0] = a3 * det;
78
+ out[1] = -a1 * det;
79
+ out[2] = -a2 * det;
80
+ out[3] = a0 * det;
81
+ return out;
82
+ }
83
+ export function adjoint(out, a) {
84
+ let a0 = a[0];
85
+ out[0] = a[3];
86
+ out[1] = -a[1];
87
+ out[2] = -a[2];
88
+ out[3] = a0;
89
+ return out;
90
+ }
91
+ export function determinant(a) {
92
+ return a[0] * a[3] - a[2] * a[1];
93
+ }
94
+ export function multiply(out, a, b) {
95
+ let a0 = a[0],
96
+ a1 = a[1],
97
+ a2 = a[2],
98
+ a3 = a[3];
99
+ let b0 = b[0],
100
+ b1 = b[1],
101
+ b2 = b[2],
102
+ b3 = b[3];
103
+ out[0] = a0 * b0 + a2 * b1;
104
+ out[1] = a1 * b0 + a3 * b1;
105
+ out[2] = a0 * b2 + a2 * b3;
106
+ out[3] = a1 * b2 + a3 * b3;
107
+ return out;
108
+ }
109
+ export function rotate(out, a, rad) {
110
+ let a0 = a[0],
111
+ a1 = a[1],
112
+ a2 = a[2],
113
+ a3 = a[3];
114
+ let s = Math.sin(rad);
115
+ let c = Math.cos(rad);
116
+ out[0] = a0 * c + a2 * s;
117
+ out[1] = a1 * c + a3 * s;
118
+ out[2] = a0 * -s + a2 * c;
119
+ out[3] = a1 * -s + a3 * c;
120
+ return out;
121
+ }
122
+ export function scale(out, a, v) {
123
+ let a0 = a[0],
124
+ a1 = a[1],
125
+ a2 = a[2],
126
+ a3 = a[3];
127
+ let v0 = v[0],
128
+ v1 = v[1];
129
+ out[0] = a0 * v0;
130
+ out[1] = a1 * v0;
131
+ out[2] = a2 * v1;
132
+ out[3] = a3 * v1;
133
+ return out;
134
+ }
135
+ export function fromRotation(out, rad) {
136
+ let s = Math.sin(rad);
137
+ let c = Math.cos(rad);
138
+ out[0] = c;
139
+ out[1] = s;
140
+ out[2] = -s;
141
+ out[3] = c;
142
+ return out;
143
+ }
144
+ export function fromScaling(out, v) {
145
+ out[0] = v[0];
146
+ out[1] = 0;
147
+ out[2] = 0;
148
+ out[3] = v[1];
149
+ return out;
150
+ }
151
+ export function str(a) {
152
+ return 'mat2(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';
153
+ }
154
+ export function frob(a) {
155
+ return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3]);
156
+ }
157
+ export function LDU(L, D, U, a) {
158
+ L[2] = a[2] / a[0];
159
+ U[0] = a[0];
160
+ U[1] = a[1];
161
+ U[3] = a[3] - L[2] * U[1];
162
+ return [L, D, U];
163
+ }
164
+ export function add(out, a, b) {
165
+ out[0] = a[0] + b[0];
166
+ out[1] = a[1] + b[1];
167
+ out[2] = a[2] + b[2];
168
+ out[3] = a[3] + b[3];
169
+ return out;
170
+ }
171
+ export function subtract(out, a, b) {
172
+ out[0] = a[0] - b[0];
173
+ out[1] = a[1] - b[1];
174
+ out[2] = a[2] - b[2];
175
+ out[3] = a[3] - b[3];
176
+ return out;
177
+ }
178
+ export function exactEquals(a, b) {
179
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];
180
+ }
181
+ export function equals(a, b) {
182
+ let a0 = a[0],
183
+ a1 = a[1],
184
+ a2 = a[2],
185
+ a3 = a[3];
186
+ let b0 = b[0],
187
+ b1 = b[1],
188
+ b2 = b[2],
189
+ b3 = b[3];
190
+ return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));
191
+ }
192
+ export function multiplyScalar(out, a, b) {
193
+ out[0] = a[0] * b;
194
+ out[1] = a[1] * b;
195
+ out[2] = a[2] * b;
196
+ out[3] = a[3] * b;
197
+ return out;
198
+ }
199
+ export function multiplyScalarAndAdd(out, a, b, scale) {
200
+ out[0] = a[0] + b[0] * scale;
201
+ out[1] = a[1] + b[1] * scale;
202
+ out[2] = a[2] + b[2] * scale;
203
+ out[3] = a[3] + b[3] * scale;
204
+ return out;
205
+ }
206
+ export const mul = multiply;
207
+ export const sub = subtract;
208
+ //# sourceMappingURL=mat2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/gl-matrix/wip/mat2.js"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","clone","a","copy","identity","fromValues","m00","m01","m10","m11","set","transpose","a1","invert","a0","a2","a3","det","adjoint","determinant","multiply","b","b0","b1","b2","b3","rotate","rad","s","Math","sin","c","cos","scale","v","v0","v1","fromRotation","fromScaling","str","frob","sqrt","LDU","L","D","U","add","subtract","exactEquals","equals","abs","EPSILON","max","multiplyScalar","multiplyScalarAndAdd","mul","sub"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport * as glMatrix from './common.js';\n\n/**\n * 2x2 Matrix\n * @module mat2\n */\n\n/**\n * Creates a new identity mat2\n *\n * @returns {mat2} a new 2x2 matrix\n */\nexport function create() {\n let out = new glMatrix.ARRAY_TYPE(4);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n }\n out[0] = 1;\n out[3] = 1;\n return out;\n}\n\n/**\n * Creates a new mat2 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat2} a matrix to clone\n * @returns {mat2} a new 2x2 matrix\n */\nexport function clone(a) {\n let out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n\n/**\n * Copy the values from one mat2 to another\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the source matrix\n * @returns {mat2} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n\n/**\n * Set a mat2 to the identity matrix\n *\n * @param {mat2} out the receiving matrix\n * @returns {mat2} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n}\n\n/**\n * Create a new mat2 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m10 Component in column 1, row 0 position (index 2)\n * @param {Number} m11 Component in column 1, row 1 position (index 3)\n * @returns {mat2} out A new 2x2 matrix\n */\nexport function fromValues(m00, m01, m10, m11) {\n let out = new glMatrix.ARRAY_TYPE(4);\n out[0] = m00;\n out[1] = m01;\n out[2] = m10;\n out[3] = m11;\n return out;\n}\n\n/**\n * Set the components of a mat2 to the given values\n *\n * @param {mat2} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m10 Component in column 1, row 0 position (index 2)\n * @param {Number} m11 Component in column 1, row 1 position (index 3)\n * @returns {mat2} out\n */\nexport function set(out, m00, m01, m10, m11) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m10;\n out[3] = m11;\n return out;\n}\n\n/**\n * Transpose the values of a mat2\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the source matrix\n * @returns {mat2} out\n */\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache\n // some values\n if (out === a) {\n let a1 = a[1];\n out[1] = a[2];\n out[2] = a1;\n } else {\n out[0] = a[0];\n out[1] = a[2];\n out[2] = a[1];\n out[3] = a[3];\n }\n\n return out;\n}\n\n/**\n * Inverts a mat2\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the source matrix\n * @returns {mat2} out\n */\nexport function invert(out, a) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n\n // Calculate the determinant\n let det = a0 * a3 - a2 * a1;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = a3 * det;\n out[1] = -a1 * det;\n out[2] = -a2 * det;\n out[3] = a0 * det;\n\n return out;\n}\n\n/**\n * Calculates the adjugate of a mat2\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the source matrix\n * @returns {mat2} out\n */\nexport function adjoint(out, a) {\n // Caching this value is necessary if out == a\n let a0 = a[0];\n out[0] = a[3];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a0;\n\n return out;\n}\n\n/**\n * Calculates the determinant of a mat2\n *\n * @param {ReadonlyMat2} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n return a[0] * a[3] - a[2] * a[1];\n}\n\n/**\n * Multiplies two mat2's\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the first operand\n * @param {ReadonlyMat2} b the second operand\n * @returns {mat2} out\n */\nexport function multiply(out, a, b) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n let b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = a0 * b0 + a2 * b1;\n out[1] = a1 * b0 + a3 * b1;\n out[2] = a0 * b2 + a2 * b3;\n out[3] = a1 * b2 + a3 * b3;\n return out;\n}\n\n/**\n * Rotates a mat2 by the given angle\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat2} out\n */\nexport function rotate(out, a, rad) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n let s = Math.sin(rad);\n let c = Math.cos(rad);\n out[0] = a0 * c + a2 * s;\n out[1] = a1 * c + a3 * s;\n out[2] = a0 * -s + a2 * c;\n out[3] = a1 * -s + a3 * c;\n return out;\n}\n\n/**\n * Scales the mat2 by the dimensions in the given vec2\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the matrix to rotate\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat2} out\n **/\nexport function scale(out, a, v) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n let v0 = v[0],\n v1 = v[1];\n out[0] = a0 * v0;\n out[1] = a1 * v0;\n out[2] = a2 * v1;\n out[3] = a3 * v1;\n return out;\n}\n\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat2.identity(dest);\n * mat2.rotate(dest, dest, rad);\n *\n * @param {mat2} out mat2 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat2} out\n */\nexport function fromRotation(out, rad) {\n let s = Math.sin(rad);\n let c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = -s;\n out[3] = c;\n return out;\n}\n\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat2.identity(dest);\n * mat2.scale(dest, dest, vec);\n *\n * @param {mat2} out mat2 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat2} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = v[1];\n return out;\n}\n\n/**\n * Returns a string representation of a mat2\n *\n * @param {ReadonlyMat2} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return 'mat2(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + a[3] + ')';\n}\n\n/**\n * Returns Frobenius norm of a mat2\n *\n * @param {ReadonlyMat2} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3]);\n}\n\n/**\n * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix\n * @param {ReadonlyMat2} L the lower triangular matrix\n * @param {ReadonlyMat2} D the diagonal matrix\n * @param {ReadonlyMat2} U the upper triangular matrix\n * @param {ReadonlyMat2} a the input matrix to factorize\n */\n\nexport function LDU(L, D, U, a) {\n L[2] = a[2] / a[0];\n U[0] = a[0];\n U[1] = a[1];\n U[3] = a[3] - L[2] * U[1];\n return [L, D, U];\n}\n\n/**\n * Adds two mat2's\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the first operand\n * @param {ReadonlyMat2} b the second operand\n * @returns {mat2} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the first operand\n * @param {ReadonlyMat2} b the second operand\n * @returns {mat2} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat2} a The first matrix.\n * @param {ReadonlyMat2} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat2} a The first matrix.\n * @param {ReadonlyMat2} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n let a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n let b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return (\n Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\n Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3))\n );\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat2} out the receiving matrix\n * @param {ReadonlyMat2} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat2} out\n */\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n\n/**\n * Adds two mat2's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat2} out the receiving vector\n * @param {ReadonlyMat2} a the first operand\n * @param {ReadonlyMat2} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat2} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n\n/**\n * Alias for {@link mat2.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link mat2.subtract}\n * @function\n */\nexport const sub = subtract;\n"],"file":"mat2.js"}