@fimbul-works/vec 1.0.3 → 2.0.0

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 (560) hide show
  1. package/README.md +208 -85
  2. package/dist/cjs/2d/add-2d.d.ts +8 -0
  3. package/dist/cjs/2d/add-2d.js +11 -0
  4. package/dist/cjs/2d/angle-between-2d.d.ts +8 -0
  5. package/dist/cjs/2d/angle-between-2d.js +11 -0
  6. package/dist/cjs/2d/angle-x-2d.d.ts +7 -0
  7. package/dist/cjs/2d/angle-x-2d.js +10 -0
  8. package/dist/cjs/2d/angle-y-2d.d.ts +7 -0
  9. package/dist/cjs/2d/angle-y-2d.js +10 -0
  10. package/dist/cjs/2d/clamp-2d.d.ts +10 -0
  11. package/dist/cjs/2d/clamp-2d.js +14 -0
  12. package/dist/cjs/2d/clone-2d.d.ts +7 -0
  13. package/dist/cjs/2d/clone-2d.js +10 -0
  14. package/dist/cjs/2d/cross-2d.d.ts +8 -0
  15. package/dist/cjs/2d/cross-2d.js +11 -0
  16. package/dist/cjs/2d/distance-2d.d.ts +8 -0
  17. package/dist/cjs/2d/distance-2d.js +11 -0
  18. package/dist/cjs/2d/distance-chebyshev-2d.d.ts +8 -0
  19. package/dist/cjs/2d/distance-chebyshev-2d.js +15 -0
  20. package/dist/cjs/2d/distance-manhattan-2d.d.ts +8 -0
  21. package/dist/cjs/2d/distance-manhattan-2d.js +11 -0
  22. package/dist/cjs/2d/distance-minkowski-2d.d.ts +9 -0
  23. package/dist/cjs/2d/distance-minkowski-2d.js +12 -0
  24. package/dist/cjs/2d/distance-sq-2d.d.ts +8 -0
  25. package/dist/cjs/2d/distance-sq-2d.js +11 -0
  26. package/dist/cjs/2d/divide-2d.d.ts +8 -0
  27. package/dist/cjs/2d/divide-2d.js +14 -0
  28. package/dist/cjs/2d/dot-2d.d.ts +8 -0
  29. package/dist/cjs/2d/dot-2d.js +11 -0
  30. package/dist/cjs/2d/from-angle-x-2d.d.ts +8 -0
  31. package/dist/cjs/2d/from-angle-x-2d.js +14 -0
  32. package/dist/cjs/2d/from-angle-y-2d.d.ts +8 -0
  33. package/dist/cjs/2d/from-angle-y-2d.js +14 -0
  34. package/dist/cjs/2d/from-object-2d.d.ts +10 -0
  35. package/dist/cjs/2d/from-object-2d.js +10 -0
  36. package/dist/cjs/2d/from-polar-coords-2d.d.ts +8 -0
  37. package/dist/cjs/2d/from-polar-coords-2d.js +11 -0
  38. package/dist/cjs/2d/immutable-2d.d.ts +7 -0
  39. package/dist/cjs/2d/immutable-2d.js +10 -0
  40. package/dist/cjs/2d/index.d.ts +47 -0
  41. package/dist/cjs/2d/index.js +63 -0
  42. package/dist/cjs/2d/is-equal-2d.d.ts +8 -0
  43. package/dist/cjs/2d/is-equal-2d.js +11 -0
  44. package/dist/cjs/2d/is-equal-approx-2d.d.ts +9 -0
  45. package/dist/cjs/2d/is-equal-approx-2d.js +12 -0
  46. package/dist/cjs/2d/is-infinite-2d.d.ts +7 -0
  47. package/dist/cjs/2d/is-infinite-2d.js +13 -0
  48. package/dist/cjs/2d/is-nan-2d.d.ts +7 -0
  49. package/dist/cjs/2d/is-nan-2d.js +10 -0
  50. package/dist/cjs/2d/is-opposite-2d.d.ts +8 -0
  51. package/dist/cjs/2d/is-opposite-2d.js +11 -0
  52. package/dist/cjs/2d/is-zero-2d.d.ts +7 -0
  53. package/dist/cjs/2d/is-zero-2d.js +10 -0
  54. package/dist/cjs/2d/lerp-2d.d.ts +9 -0
  55. package/dist/cjs/2d/lerp-2d.js +15 -0
  56. package/dist/cjs/2d/limit-max-2d.d.ts +9 -0
  57. package/dist/cjs/2d/limit-max-2d.js +13 -0
  58. package/dist/cjs/2d/limit-min-2d.d.ts +9 -0
  59. package/dist/cjs/2d/limit-min-2d.js +13 -0
  60. package/dist/cjs/2d/look-at-2d.d.ts +10 -0
  61. package/dist/cjs/2d/look-at-2d.js +14 -0
  62. package/dist/cjs/2d/magnitude-2d.d.ts +7 -0
  63. package/dist/cjs/2d/magnitude-2d.js +10 -0
  64. package/dist/cjs/2d/magnitude-sq-2d.d.ts +7 -0
  65. package/dist/cjs/2d/magnitude-sq-2d.js +10 -0
  66. package/dist/cjs/2d/multiply-2d.d.ts +8 -0
  67. package/dist/cjs/2d/multiply-2d.js +11 -0
  68. package/dist/cjs/2d/negate-2d.d.ts +7 -0
  69. package/dist/cjs/2d/negate-2d.js +10 -0
  70. package/dist/cjs/2d/normalize-2d.d.ts +8 -0
  71. package/dist/cjs/2d/normalize-2d.js +12 -0
  72. package/dist/cjs/2d/one-2d.d.ts +6 -0
  73. package/dist/cjs/2d/one-2d.js +9 -0
  74. package/dist/cjs/2d/project-2d.d.ts +10 -0
  75. package/dist/cjs/2d/project-2d.js +17 -0
  76. package/dist/cjs/2d/random-2d.d.ts +7 -0
  77. package/dist/cjs/2d/random-2d.js +13 -0
  78. package/dist/cjs/2d/reflect-2d.d.ts +9 -0
  79. package/dist/cjs/2d/reflect-2d.js +16 -0
  80. package/dist/cjs/2d/rotate-2d.d.ts +9 -0
  81. package/dist/cjs/2d/rotate-2d.js +27 -0
  82. package/dist/cjs/2d/set-magnitude-2d.d.ts +9 -0
  83. package/dist/cjs/2d/set-magnitude-2d.js +16 -0
  84. package/dist/cjs/2d/subtract-2d.d.ts +8 -0
  85. package/dist/cjs/2d/subtract-2d.js +11 -0
  86. package/dist/cjs/2d/types.d.ts +4 -0
  87. package/dist/cjs/2d/types.js +2 -0
  88. package/dist/cjs/2d/zero-2d.d.ts +6 -0
  89. package/dist/cjs/2d/zero-2d.js +9 -0
  90. package/dist/cjs/3d/add-3d.d.ts +8 -0
  91. package/dist/cjs/3d/add-3d.js +15 -0
  92. package/dist/cjs/3d/angle-between-3d.d.ts +10 -0
  93. package/dist/cjs/3d/angle-between-3d.js +14 -0
  94. package/dist/cjs/3d/angle-x-3d.d.ts +7 -0
  95. package/dist/cjs/3d/angle-x-3d.js +10 -0
  96. package/dist/cjs/3d/angle-y-3d.d.ts +7 -0
  97. package/dist/cjs/3d/angle-y-3d.js +10 -0
  98. package/dist/cjs/3d/angle-z-3d.d.ts +7 -0
  99. package/dist/cjs/3d/angle-z-3d.js +10 -0
  100. package/dist/cjs/3d/clamp-3d.d.ts +10 -0
  101. package/dist/cjs/3d/clamp-3d.js +18 -0
  102. package/dist/cjs/3d/clone-3d.d.ts +7 -0
  103. package/dist/cjs/3d/clone-3d.js +10 -0
  104. package/dist/cjs/3d/cross-3d.d.ts +8 -0
  105. package/dist/cjs/3d/cross-3d.js +15 -0
  106. package/dist/cjs/3d/distance-3d.d.ts +8 -0
  107. package/dist/cjs/3d/distance-3d.js +11 -0
  108. package/dist/cjs/3d/distance-chebyshev-3d.d.ts +8 -0
  109. package/dist/cjs/3d/distance-chebyshev-3d.js +16 -0
  110. package/dist/cjs/3d/distance-manhattan-3d.d.ts +8 -0
  111. package/dist/cjs/3d/distance-manhattan-3d.js +11 -0
  112. package/dist/cjs/3d/distance-minkowski-3d.d.ts +9 -0
  113. package/dist/cjs/3d/distance-minkowski-3d.js +12 -0
  114. package/dist/cjs/3d/distance-sq-3d.d.ts +8 -0
  115. package/dist/cjs/3d/distance-sq-3d.js +11 -0
  116. package/dist/cjs/3d/divide-3d.d.ts +8 -0
  117. package/dist/cjs/3d/divide-3d.js +15 -0
  118. package/dist/cjs/3d/dot-3d.d.ts +8 -0
  119. package/dist/cjs/3d/dot-3d.js +11 -0
  120. package/dist/cjs/3d/from-cylindrical-coords-3d.d.ts +9 -0
  121. package/dist/cjs/3d/from-cylindrical-coords-3d.js +16 -0
  122. package/dist/cjs/3d/from-object-3d.d.ts +11 -0
  123. package/dist/cjs/3d/from-object-3d.js +10 -0
  124. package/dist/cjs/3d/from-spherical-coords-3d.d.ts +9 -0
  125. package/dist/cjs/3d/from-spherical-coords-3d.js +16 -0
  126. package/dist/cjs/3d/immutable-3d.d.ts +7 -0
  127. package/dist/cjs/3d/immutable-3d.js +10 -0
  128. package/dist/cjs/3d/index.d.ts +49 -0
  129. package/dist/cjs/3d/index.js +65 -0
  130. package/dist/cjs/3d/is-equal-3d.d.ts +8 -0
  131. package/dist/cjs/3d/is-equal-3d.js +11 -0
  132. package/dist/cjs/3d/is-equal-approx-3d.d.ts +9 -0
  133. package/dist/cjs/3d/is-equal-approx-3d.js +14 -0
  134. package/dist/cjs/3d/is-infinite-3d.d.ts +7 -0
  135. package/dist/cjs/3d/is-infinite-3d.js +15 -0
  136. package/dist/cjs/3d/is-nan-3d.d.ts +7 -0
  137. package/dist/cjs/3d/is-nan-3d.js +10 -0
  138. package/dist/cjs/3d/is-opposite-3d.d.ts +8 -0
  139. package/dist/cjs/3d/is-opposite-3d.js +11 -0
  140. package/dist/cjs/3d/is-zero-3d.d.ts +7 -0
  141. package/dist/cjs/3d/is-zero-3d.js +10 -0
  142. package/dist/cjs/3d/lerp-3d.d.ts +9 -0
  143. package/dist/cjs/3d/lerp-3d.js +16 -0
  144. package/dist/cjs/3d/limit-max-3d.d.ts +9 -0
  145. package/dist/cjs/3d/limit-max-3d.js +13 -0
  146. package/dist/cjs/3d/limit-min-3d.d.ts +9 -0
  147. package/dist/cjs/3d/limit-min-3d.js +13 -0
  148. package/dist/cjs/3d/look-at-3d.d.ts +10 -0
  149. package/dist/cjs/3d/look-at-3d.js +14 -0
  150. package/dist/cjs/3d/magnitude-3d.d.ts +7 -0
  151. package/dist/cjs/3d/magnitude-3d.js +10 -0
  152. package/dist/cjs/3d/magnitude-sq-3d.d.ts +7 -0
  153. package/dist/cjs/3d/magnitude-sq-3d.js +10 -0
  154. package/dist/cjs/3d/multiply-3d.d.ts +8 -0
  155. package/dist/cjs/3d/multiply-3d.js +15 -0
  156. package/dist/cjs/3d/negate-3d.d.ts +7 -0
  157. package/dist/cjs/3d/negate-3d.js +10 -0
  158. package/dist/cjs/3d/normalize-3d.d.ts +8 -0
  159. package/dist/cjs/3d/normalize-3d.js +12 -0
  160. package/dist/cjs/3d/one-3d.d.ts +6 -0
  161. package/dist/cjs/3d/one-3d.js +9 -0
  162. package/dist/cjs/3d/project-3d.d.ts +10 -0
  163. package/dist/cjs/3d/project-3d.js +17 -0
  164. package/dist/cjs/3d/random-3d.d.ts +7 -0
  165. package/dist/cjs/3d/random-3d.js +11 -0
  166. package/dist/cjs/3d/reflect-3d.d.ts +9 -0
  167. package/dist/cjs/3d/reflect-3d.js +16 -0
  168. package/dist/cjs/3d/rotate-x-3d.d.ts +9 -0
  169. package/dist/cjs/3d/rotate-x-3d.js +26 -0
  170. package/dist/cjs/3d/rotate-y-3d.d.ts +9 -0
  171. package/dist/cjs/3d/rotate-y-3d.js +26 -0
  172. package/dist/cjs/3d/rotate-z-3d.d.ts +9 -0
  173. package/dist/cjs/3d/rotate-z-3d.js +26 -0
  174. package/dist/cjs/3d/set-magnitude-3d.d.ts +9 -0
  175. package/dist/cjs/3d/set-magnitude-3d.js +13 -0
  176. package/dist/cjs/3d/subtract-3d.d.ts +8 -0
  177. package/dist/cjs/3d/subtract-3d.js +15 -0
  178. package/dist/cjs/3d/types.d.ts +4 -0
  179. package/dist/cjs/3d/types.js +2 -0
  180. package/dist/cjs/3d/zero-3d.d.ts +6 -0
  181. package/dist/cjs/3d/zero-3d.js +9 -0
  182. package/dist/cjs/4d/add-4d.d.ts +8 -0
  183. package/dist/cjs/4d/add-4d.js +16 -0
  184. package/dist/cjs/4d/angle-between-4d.d.ts +10 -0
  185. package/dist/cjs/4d/angle-between-4d.js +15 -0
  186. package/dist/cjs/4d/angle-w-4d.d.ts +7 -0
  187. package/dist/cjs/4d/angle-w-4d.js +10 -0
  188. package/dist/cjs/4d/angle-x-4d.d.ts +7 -0
  189. package/dist/cjs/4d/angle-x-4d.js +10 -0
  190. package/dist/cjs/4d/angle-y-4d.d.ts +7 -0
  191. package/dist/cjs/4d/angle-y-4d.js +10 -0
  192. package/dist/cjs/4d/angle-z-4d.d.ts +7 -0
  193. package/dist/cjs/4d/angle-z-4d.js +10 -0
  194. package/dist/cjs/4d/clamp-4d.d.ts +10 -0
  195. package/dist/cjs/4d/clamp-4d.js +18 -0
  196. package/dist/cjs/4d/clone-4d.d.ts +7 -0
  197. package/dist/cjs/4d/clone-4d.js +10 -0
  198. package/dist/cjs/4d/distance-4d.d.ts +8 -0
  199. package/dist/cjs/4d/distance-4d.js +11 -0
  200. package/dist/cjs/4d/distance-chebyshev-4d.d.ts +8 -0
  201. package/dist/cjs/4d/distance-chebyshev-4d.js +23 -0
  202. package/dist/cjs/4d/distance-manhattan-4d.d.ts +8 -0
  203. package/dist/cjs/4d/distance-manhattan-4d.js +14 -0
  204. package/dist/cjs/4d/distance-minkowski-4d.d.ts +9 -0
  205. package/dist/cjs/4d/distance-minkowski-4d.js +16 -0
  206. package/dist/cjs/4d/distance-sq-4d.d.ts +9 -0
  207. package/dist/cjs/4d/distance-sq-4d.js +12 -0
  208. package/dist/cjs/4d/divide-4d.d.ts +8 -0
  209. package/dist/cjs/4d/divide-4d.js +16 -0
  210. package/dist/cjs/4d/dot-4d.d.ts +8 -0
  211. package/dist/cjs/4d/dot-4d.js +11 -0
  212. package/dist/cjs/4d/from-object-4d.d.ts +12 -0
  213. package/dist/cjs/4d/from-object-4d.js +15 -0
  214. package/dist/cjs/4d/immutable-4d.d.ts +7 -0
  215. package/dist/cjs/4d/immutable-4d.js +10 -0
  216. package/dist/cjs/4d/index.d.ts +44 -0
  217. package/dist/cjs/4d/index.js +60 -0
  218. package/dist/cjs/4d/is-equal-4d.d.ts +8 -0
  219. package/dist/cjs/4d/is-equal-4d.js +11 -0
  220. package/dist/cjs/4d/is-equal-approx-4d.d.ts +9 -0
  221. package/dist/cjs/4d/is-equal-approx-4d.js +15 -0
  222. package/dist/cjs/4d/is-infinite-4d.d.ts +7 -0
  223. package/dist/cjs/4d/is-infinite-4d.js +17 -0
  224. package/dist/cjs/4d/is-nan-4d.d.ts +7 -0
  225. package/dist/cjs/4d/is-nan-4d.js +10 -0
  226. package/dist/cjs/4d/is-opposite-4d.d.ts +8 -0
  227. package/dist/cjs/4d/is-opposite-4d.js +11 -0
  228. package/dist/cjs/4d/is-zero-4d.d.ts +7 -0
  229. package/dist/cjs/4d/is-zero-4d.js +10 -0
  230. package/dist/cjs/4d/lerp-4d.d.ts +9 -0
  231. package/dist/cjs/4d/lerp-4d.js +17 -0
  232. package/dist/cjs/4d/limit-max-4d.d.ts +9 -0
  233. package/dist/cjs/4d/limit-max-4d.js +13 -0
  234. package/dist/cjs/4d/limit-min-4d.d.ts +9 -0
  235. package/dist/cjs/4d/limit-min-4d.js +13 -0
  236. package/dist/cjs/4d/look-at-4d.d.ts +10 -0
  237. package/dist/cjs/4d/look-at-4d.js +14 -0
  238. package/dist/cjs/4d/magnitude-4d.d.ts +7 -0
  239. package/dist/cjs/4d/magnitude-4d.js +10 -0
  240. package/dist/cjs/4d/magnitude-sq-4d.d.ts +8 -0
  241. package/dist/cjs/4d/magnitude-sq-4d.js +11 -0
  242. package/dist/cjs/4d/multiply-4d.d.ts +8 -0
  243. package/dist/cjs/4d/multiply-4d.js +16 -0
  244. package/dist/cjs/4d/negate-4d.d.ts +7 -0
  245. package/dist/cjs/4d/negate-4d.js +10 -0
  246. package/dist/cjs/4d/normalize-4d.d.ts +8 -0
  247. package/dist/cjs/4d/normalize-4d.js +17 -0
  248. package/dist/cjs/4d/one-4d.d.ts +6 -0
  249. package/dist/cjs/4d/one-4d.js +9 -0
  250. package/dist/cjs/4d/project-4d.d.ts +10 -0
  251. package/dist/cjs/4d/project-4d.js +18 -0
  252. package/dist/cjs/4d/random-4d.d.ts +7 -0
  253. package/dist/cjs/4d/random-4d.js +21 -0
  254. package/dist/cjs/4d/reflect-4d.d.ts +9 -0
  255. package/dist/cjs/4d/reflect-4d.js +21 -0
  256. package/dist/cjs/4d/set-magnitude-4d.d.ts +9 -0
  257. package/dist/cjs/4d/set-magnitude-4d.js +18 -0
  258. package/dist/cjs/4d/subtract-4d.d.ts +8 -0
  259. package/dist/cjs/4d/subtract-4d.js +16 -0
  260. package/dist/cjs/4d/types.d.ts +4 -0
  261. package/dist/cjs/4d/types.js +2 -0
  262. package/dist/cjs/4d/zero-4d.d.ts +6 -0
  263. package/dist/cjs/4d/zero-4d.js +9 -0
  264. package/dist/cjs/index.d.ts +7 -0
  265. package/dist/cjs/index.js +23 -0
  266. package/dist/cjs/package.json +1 -0
  267. package/dist/cjs/slerp.d.ts +21 -0
  268. package/dist/cjs/slerp.js +28 -0
  269. package/dist/{vec2.d.ts → cjs/vec2.d.ts} +10 -4
  270. package/dist/cjs/vec2.js +889 -0
  271. package/dist/{vec3.d.ts → cjs/vec3.d.ts} +159 -100
  272. package/dist/cjs/vec3.js +1045 -0
  273. package/dist/cjs/vec4.d.ts +602 -0
  274. package/dist/cjs/vec4.js +1101 -0
  275. package/dist/esm/2d/add-2d.d.ts +8 -0
  276. package/dist/esm/2d/add-2d.js +7 -0
  277. package/dist/esm/2d/angle-between-2d.d.ts +8 -0
  278. package/dist/esm/2d/angle-between-2d.js +7 -0
  279. package/dist/esm/2d/angle-x-2d.d.ts +7 -0
  280. package/dist/esm/2d/angle-x-2d.js +6 -0
  281. package/dist/esm/2d/angle-y-2d.d.ts +7 -0
  282. package/dist/esm/2d/angle-y-2d.js +6 -0
  283. package/dist/esm/2d/clamp-2d.d.ts +10 -0
  284. package/dist/esm/2d/clamp-2d.js +10 -0
  285. package/dist/esm/2d/clone-2d.d.ts +7 -0
  286. package/dist/esm/2d/clone-2d.js +6 -0
  287. package/dist/esm/2d/cross-2d.d.ts +8 -0
  288. package/dist/esm/2d/cross-2d.js +7 -0
  289. package/dist/esm/2d/distance-2d.d.ts +8 -0
  290. package/dist/esm/2d/distance-2d.js +7 -0
  291. package/dist/esm/2d/distance-chebyshev-2d.d.ts +8 -0
  292. package/dist/esm/2d/distance-chebyshev-2d.js +11 -0
  293. package/dist/esm/2d/distance-manhattan-2d.d.ts +8 -0
  294. package/dist/esm/2d/distance-manhattan-2d.js +7 -0
  295. package/dist/esm/2d/distance-minkowski-2d.d.ts +9 -0
  296. package/dist/esm/2d/distance-minkowski-2d.js +8 -0
  297. package/dist/esm/2d/distance-sq-2d.d.ts +8 -0
  298. package/dist/esm/2d/distance-sq-2d.js +7 -0
  299. package/dist/esm/2d/divide-2d.d.ts +8 -0
  300. package/dist/esm/2d/divide-2d.js +10 -0
  301. package/dist/esm/2d/dot-2d.d.ts +8 -0
  302. package/dist/esm/2d/dot-2d.js +7 -0
  303. package/dist/esm/2d/from-angle-x-2d.d.ts +8 -0
  304. package/dist/esm/2d/from-angle-x-2d.js +10 -0
  305. package/dist/esm/2d/from-angle-y-2d.d.ts +8 -0
  306. package/dist/esm/2d/from-angle-y-2d.js +10 -0
  307. package/dist/esm/2d/from-object-2d.d.ts +10 -0
  308. package/dist/esm/2d/from-object-2d.js +6 -0
  309. package/dist/esm/2d/from-polar-coords-2d.d.ts +8 -0
  310. package/dist/esm/2d/from-polar-coords-2d.js +7 -0
  311. package/dist/esm/2d/immutable-2d.d.ts +7 -0
  312. package/dist/esm/2d/immutable-2d.js +6 -0
  313. package/dist/esm/2d/index.d.ts +47 -0
  314. package/dist/esm/2d/index.js +47 -0
  315. package/dist/esm/2d/is-equal-2d.d.ts +8 -0
  316. package/dist/esm/2d/is-equal-2d.js +7 -0
  317. package/dist/esm/2d/is-equal-approx-2d.d.ts +9 -0
  318. package/dist/esm/2d/is-equal-approx-2d.js +8 -0
  319. package/dist/esm/2d/is-infinite-2d.d.ts +7 -0
  320. package/dist/esm/2d/is-infinite-2d.js +9 -0
  321. package/dist/esm/2d/is-nan-2d.d.ts +7 -0
  322. package/dist/esm/2d/is-nan-2d.js +6 -0
  323. package/dist/esm/2d/is-opposite-2d.d.ts +8 -0
  324. package/dist/esm/2d/is-opposite-2d.js +7 -0
  325. package/dist/esm/2d/is-zero-2d.d.ts +7 -0
  326. package/dist/esm/2d/is-zero-2d.js +6 -0
  327. package/dist/esm/2d/lerp-2d.d.ts +9 -0
  328. package/dist/esm/2d/lerp-2d.js +11 -0
  329. package/dist/esm/2d/limit-max-2d.d.ts +9 -0
  330. package/dist/esm/2d/limit-max-2d.js +9 -0
  331. package/dist/esm/2d/limit-min-2d.d.ts +9 -0
  332. package/dist/esm/2d/limit-min-2d.js +9 -0
  333. package/dist/esm/2d/look-at-2d.d.ts +10 -0
  334. package/dist/esm/2d/look-at-2d.js +10 -0
  335. package/dist/esm/2d/magnitude-2d.d.ts +7 -0
  336. package/dist/esm/2d/magnitude-2d.js +6 -0
  337. package/dist/esm/2d/magnitude-sq-2d.d.ts +7 -0
  338. package/dist/esm/2d/magnitude-sq-2d.js +6 -0
  339. package/dist/esm/2d/multiply-2d.d.ts +8 -0
  340. package/dist/esm/2d/multiply-2d.js +7 -0
  341. package/dist/esm/2d/negate-2d.d.ts +7 -0
  342. package/dist/esm/2d/negate-2d.js +6 -0
  343. package/dist/esm/2d/normalize-2d.d.ts +8 -0
  344. package/dist/esm/2d/normalize-2d.js +8 -0
  345. package/dist/esm/2d/one-2d.d.ts +6 -0
  346. package/dist/esm/2d/one-2d.js +5 -0
  347. package/dist/esm/2d/project-2d.d.ts +10 -0
  348. package/dist/esm/2d/project-2d.js +13 -0
  349. package/dist/esm/2d/random-2d.d.ts +7 -0
  350. package/dist/esm/2d/random-2d.js +9 -0
  351. package/dist/esm/2d/reflect-2d.d.ts +9 -0
  352. package/dist/esm/2d/reflect-2d.js +12 -0
  353. package/dist/esm/2d/rotate-2d.d.ts +9 -0
  354. package/dist/esm/2d/rotate-2d.js +23 -0
  355. package/dist/esm/2d/set-magnitude-2d.d.ts +9 -0
  356. package/dist/esm/2d/set-magnitude-2d.js +12 -0
  357. package/dist/esm/2d/subtract-2d.d.ts +8 -0
  358. package/dist/esm/2d/subtract-2d.js +7 -0
  359. package/dist/esm/2d/types.d.ts +4 -0
  360. package/dist/esm/2d/types.js +1 -0
  361. package/dist/esm/2d/zero-2d.d.ts +6 -0
  362. package/dist/esm/2d/zero-2d.js +5 -0
  363. package/dist/esm/3d/add-3d.d.ts +8 -0
  364. package/dist/esm/3d/add-3d.js +11 -0
  365. package/dist/esm/3d/angle-between-3d.d.ts +10 -0
  366. package/dist/esm/3d/angle-between-3d.js +10 -0
  367. package/dist/esm/3d/angle-x-3d.d.ts +7 -0
  368. package/dist/esm/3d/angle-x-3d.js +6 -0
  369. package/dist/esm/3d/angle-y-3d.d.ts +7 -0
  370. package/dist/esm/3d/angle-y-3d.js +6 -0
  371. package/dist/esm/3d/angle-z-3d.d.ts +7 -0
  372. package/dist/esm/3d/angle-z-3d.js +6 -0
  373. package/dist/esm/3d/clamp-3d.d.ts +10 -0
  374. package/dist/esm/3d/clamp-3d.js +14 -0
  375. package/dist/esm/3d/clone-3d.d.ts +7 -0
  376. package/dist/esm/3d/clone-3d.js +6 -0
  377. package/dist/esm/3d/cross-3d.d.ts +8 -0
  378. package/dist/esm/3d/cross-3d.js +11 -0
  379. package/dist/esm/3d/distance-3d.d.ts +8 -0
  380. package/dist/esm/3d/distance-3d.js +7 -0
  381. package/dist/esm/3d/distance-chebyshev-3d.d.ts +8 -0
  382. package/dist/esm/3d/distance-chebyshev-3d.js +12 -0
  383. package/dist/esm/3d/distance-manhattan-3d.d.ts +8 -0
  384. package/dist/esm/3d/distance-manhattan-3d.js +7 -0
  385. package/dist/esm/3d/distance-minkowski-3d.d.ts +9 -0
  386. package/dist/esm/3d/distance-minkowski-3d.js +8 -0
  387. package/dist/esm/3d/distance-sq-3d.d.ts +8 -0
  388. package/dist/esm/3d/distance-sq-3d.js +7 -0
  389. package/dist/esm/3d/divide-3d.d.ts +8 -0
  390. package/dist/esm/3d/divide-3d.js +11 -0
  391. package/dist/esm/3d/dot-3d.d.ts +8 -0
  392. package/dist/esm/3d/dot-3d.js +7 -0
  393. package/dist/esm/3d/from-cylindrical-coords-3d.d.ts +9 -0
  394. package/dist/esm/3d/from-cylindrical-coords-3d.js +12 -0
  395. package/dist/esm/3d/from-object-3d.d.ts +11 -0
  396. package/dist/esm/3d/from-object-3d.js +6 -0
  397. package/dist/esm/3d/from-spherical-coords-3d.d.ts +9 -0
  398. package/dist/esm/3d/from-spherical-coords-3d.js +12 -0
  399. package/dist/esm/3d/immutable-3d.d.ts +7 -0
  400. package/dist/esm/3d/immutable-3d.js +6 -0
  401. package/dist/esm/3d/index.d.ts +49 -0
  402. package/dist/esm/3d/index.js +49 -0
  403. package/dist/esm/3d/is-equal-3d.d.ts +8 -0
  404. package/dist/esm/3d/is-equal-3d.js +7 -0
  405. package/dist/esm/3d/is-equal-approx-3d.d.ts +9 -0
  406. package/dist/esm/3d/is-equal-approx-3d.js +10 -0
  407. package/dist/esm/3d/is-infinite-3d.d.ts +7 -0
  408. package/dist/esm/3d/is-infinite-3d.js +11 -0
  409. package/dist/esm/3d/is-nan-3d.d.ts +7 -0
  410. package/dist/esm/3d/is-nan-3d.js +6 -0
  411. package/dist/esm/3d/is-opposite-3d.d.ts +8 -0
  412. package/dist/esm/3d/is-opposite-3d.js +7 -0
  413. package/dist/esm/3d/is-zero-3d.d.ts +7 -0
  414. package/dist/esm/3d/is-zero-3d.js +6 -0
  415. package/dist/esm/3d/lerp-3d.d.ts +9 -0
  416. package/dist/esm/3d/lerp-3d.js +12 -0
  417. package/dist/esm/3d/limit-max-3d.d.ts +9 -0
  418. package/dist/esm/3d/limit-max-3d.js +9 -0
  419. package/dist/esm/3d/limit-min-3d.d.ts +9 -0
  420. package/dist/esm/3d/limit-min-3d.js +9 -0
  421. package/dist/esm/3d/look-at-3d.d.ts +10 -0
  422. package/dist/esm/3d/look-at-3d.js +10 -0
  423. package/dist/esm/3d/magnitude-3d.d.ts +7 -0
  424. package/dist/esm/3d/magnitude-3d.js +6 -0
  425. package/dist/esm/3d/magnitude-sq-3d.d.ts +7 -0
  426. package/dist/esm/3d/magnitude-sq-3d.js +6 -0
  427. package/dist/esm/3d/multiply-3d.d.ts +8 -0
  428. package/dist/esm/3d/multiply-3d.js +11 -0
  429. package/dist/esm/3d/negate-3d.d.ts +7 -0
  430. package/dist/esm/3d/negate-3d.js +6 -0
  431. package/dist/esm/3d/normalize-3d.d.ts +8 -0
  432. package/dist/esm/3d/normalize-3d.js +8 -0
  433. package/dist/esm/3d/one-3d.d.ts +6 -0
  434. package/dist/esm/3d/one-3d.js +5 -0
  435. package/dist/esm/3d/project-3d.d.ts +10 -0
  436. package/dist/esm/3d/project-3d.js +13 -0
  437. package/dist/esm/3d/random-3d.d.ts +7 -0
  438. package/dist/esm/3d/random-3d.js +7 -0
  439. package/dist/esm/3d/reflect-3d.d.ts +9 -0
  440. package/dist/esm/3d/reflect-3d.js +12 -0
  441. package/dist/esm/3d/rotate-x-3d.d.ts +9 -0
  442. package/dist/esm/3d/rotate-x-3d.js +22 -0
  443. package/dist/esm/3d/rotate-y-3d.d.ts +9 -0
  444. package/dist/esm/3d/rotate-y-3d.js +22 -0
  445. package/dist/esm/3d/rotate-z-3d.d.ts +9 -0
  446. package/dist/esm/3d/rotate-z-3d.js +22 -0
  447. package/dist/esm/3d/set-magnitude-3d.d.ts +9 -0
  448. package/dist/esm/3d/set-magnitude-3d.js +9 -0
  449. package/dist/esm/3d/subtract-3d.d.ts +8 -0
  450. package/dist/esm/3d/subtract-3d.js +11 -0
  451. package/dist/esm/3d/types.d.ts +4 -0
  452. package/dist/esm/3d/types.js +1 -0
  453. package/dist/esm/3d/zero-3d.d.ts +6 -0
  454. package/dist/esm/3d/zero-3d.js +5 -0
  455. package/dist/esm/4d/add-4d.d.ts +8 -0
  456. package/dist/esm/4d/add-4d.js +12 -0
  457. package/dist/esm/4d/angle-between-4d.d.ts +10 -0
  458. package/dist/esm/4d/angle-between-4d.js +11 -0
  459. package/dist/esm/4d/angle-w-4d.d.ts +7 -0
  460. package/dist/esm/4d/angle-w-4d.js +6 -0
  461. package/dist/esm/4d/angle-x-4d.d.ts +7 -0
  462. package/dist/esm/4d/angle-x-4d.js +6 -0
  463. package/dist/esm/4d/angle-y-4d.d.ts +7 -0
  464. package/dist/esm/4d/angle-y-4d.js +6 -0
  465. package/dist/esm/4d/angle-z-4d.d.ts +7 -0
  466. package/dist/esm/4d/angle-z-4d.js +6 -0
  467. package/dist/esm/4d/clamp-4d.d.ts +10 -0
  468. package/dist/esm/4d/clamp-4d.js +14 -0
  469. package/dist/esm/4d/clone-4d.d.ts +7 -0
  470. package/dist/esm/4d/clone-4d.js +6 -0
  471. package/dist/esm/4d/distance-4d.d.ts +8 -0
  472. package/dist/esm/4d/distance-4d.js +7 -0
  473. package/dist/esm/4d/distance-chebyshev-4d.d.ts +8 -0
  474. package/dist/esm/4d/distance-chebyshev-4d.js +19 -0
  475. package/dist/esm/4d/distance-manhattan-4d.d.ts +8 -0
  476. package/dist/esm/4d/distance-manhattan-4d.js +10 -0
  477. package/dist/esm/4d/distance-minkowski-4d.d.ts +9 -0
  478. package/dist/esm/4d/distance-minkowski-4d.js +12 -0
  479. package/dist/esm/4d/distance-sq-4d.d.ts +9 -0
  480. package/dist/esm/4d/distance-sq-4d.js +8 -0
  481. package/dist/esm/4d/divide-4d.d.ts +8 -0
  482. package/dist/esm/4d/divide-4d.js +12 -0
  483. package/dist/esm/4d/dot-4d.d.ts +8 -0
  484. package/dist/esm/4d/dot-4d.js +7 -0
  485. package/dist/esm/4d/from-object-4d.d.ts +12 -0
  486. package/dist/esm/4d/from-object-4d.js +11 -0
  487. package/dist/esm/4d/immutable-4d.d.ts +7 -0
  488. package/dist/esm/4d/immutable-4d.js +6 -0
  489. package/dist/esm/4d/index.d.ts +44 -0
  490. package/dist/esm/4d/index.js +44 -0
  491. package/dist/esm/4d/is-equal-4d.d.ts +8 -0
  492. package/dist/esm/4d/is-equal-4d.js +7 -0
  493. package/dist/esm/4d/is-equal-approx-4d.d.ts +9 -0
  494. package/dist/esm/4d/is-equal-approx-4d.js +11 -0
  495. package/dist/esm/4d/is-infinite-4d.d.ts +7 -0
  496. package/dist/esm/4d/is-infinite-4d.js +13 -0
  497. package/dist/esm/4d/is-nan-4d.d.ts +7 -0
  498. package/dist/esm/4d/is-nan-4d.js +6 -0
  499. package/dist/esm/4d/is-opposite-4d.d.ts +8 -0
  500. package/dist/esm/4d/is-opposite-4d.js +7 -0
  501. package/dist/esm/4d/is-zero-4d.d.ts +7 -0
  502. package/dist/esm/4d/is-zero-4d.js +6 -0
  503. package/dist/esm/4d/lerp-4d.d.ts +9 -0
  504. package/dist/esm/4d/lerp-4d.js +13 -0
  505. package/dist/esm/4d/limit-max-4d.d.ts +9 -0
  506. package/dist/esm/4d/limit-max-4d.js +9 -0
  507. package/dist/esm/4d/limit-min-4d.d.ts +9 -0
  508. package/dist/esm/4d/limit-min-4d.js +9 -0
  509. package/dist/esm/4d/look-at-4d.d.ts +10 -0
  510. package/dist/esm/4d/look-at-4d.js +10 -0
  511. package/dist/esm/4d/magnitude-4d.d.ts +7 -0
  512. package/dist/esm/4d/magnitude-4d.js +6 -0
  513. package/dist/esm/4d/magnitude-sq-4d.d.ts +8 -0
  514. package/dist/esm/4d/magnitude-sq-4d.js +7 -0
  515. package/dist/esm/4d/multiply-4d.d.ts +8 -0
  516. package/dist/esm/4d/multiply-4d.js +12 -0
  517. package/dist/esm/4d/negate-4d.d.ts +7 -0
  518. package/dist/esm/4d/negate-4d.js +6 -0
  519. package/dist/esm/4d/normalize-4d.d.ts +8 -0
  520. package/dist/esm/4d/normalize-4d.js +13 -0
  521. package/dist/esm/4d/one-4d.d.ts +6 -0
  522. package/dist/esm/4d/one-4d.js +5 -0
  523. package/dist/esm/4d/project-4d.d.ts +10 -0
  524. package/dist/esm/4d/project-4d.js +14 -0
  525. package/dist/esm/4d/random-4d.d.ts +7 -0
  526. package/dist/esm/4d/random-4d.js +17 -0
  527. package/dist/esm/4d/reflect-4d.d.ts +9 -0
  528. package/dist/esm/4d/reflect-4d.js +17 -0
  529. package/dist/esm/4d/set-magnitude-4d.d.ts +9 -0
  530. package/dist/esm/4d/set-magnitude-4d.js +14 -0
  531. package/dist/esm/4d/subtract-4d.d.ts +8 -0
  532. package/dist/esm/4d/subtract-4d.js +12 -0
  533. package/dist/esm/4d/types.d.ts +4 -0
  534. package/dist/esm/4d/types.js +1 -0
  535. package/dist/esm/4d/zero-4d.d.ts +6 -0
  536. package/dist/esm/4d/zero-4d.js +5 -0
  537. package/dist/esm/index.d.ts +7 -0
  538. package/dist/esm/index.js +7 -0
  539. package/dist/esm/slerp.d.ts +21 -0
  540. package/dist/esm/slerp.js +23 -0
  541. package/dist/{vec4.d.ts → esm/vec2.d.ts} +165 -157
  542. package/dist/{vec2.js → esm/vec2.js} +14 -6
  543. package/dist/esm/vec3.d.ts +614 -0
  544. package/dist/{vec3.js → esm/vec3.js} +190 -123
  545. package/dist/esm/vec4.d.ts +602 -0
  546. package/dist/{vec4.js → esm/vec4.js} +211 -130
  547. package/docs/ArrayVector2D.md +1090 -0
  548. package/docs/ArrayVector3D.md +1162 -0
  549. package/docs/ArrayVector4D.md +1019 -0
  550. package/docs/README.md +13 -0
  551. package/docs/Slerp.md +64 -0
  552. package/docs/Vec2.md +1827 -0
  553. package/docs/Vec3.md +2084 -0
  554. package/docs/Vec4.md +2031 -0
  555. package/package.json +95 -70
  556. package/VEC2.md +0 -147
  557. package/VEC3.md +0 -159
  558. package/VEC4.md +0 -146
  559. package/dist/index.d.ts +0 -3
  560. package/dist/index.js +0 -3
@@ -0,0 +1,1090 @@
1
+ [@fimbul-works/vec](README.md) / ArrayVector2D
2
+
3
+ # ArrayVector2D
4
+
5
+ Documentation for functional 2D Vector array operations.
6
+
7
+ ## Type Aliases
8
+
9
+ ### ArrayVector2D
10
+
11
+ ```ts
12
+ type ArrayVector2D = [number, number];
13
+ ```
14
+
15
+ Defined in: [2d/types.ts:4](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/types.ts#L4)
16
+
17
+ 2D vector as an array.
18
+
19
+ ## Functions
20
+
21
+ ### add2D()
22
+
23
+ ```ts
24
+ function add2D(xy1, xy2): ArrayVector2D;
25
+ ```
26
+
27
+ Defined in: [2d/add-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/add-2d.ts#L9)
28
+
29
+ Adds one 2D vectors.
30
+
31
+ #### Parameters
32
+
33
+ | Parameter | Type | Description |
34
+ | ------ | ------ | ------ |
35
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
36
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
37
+
38
+ #### Returns
39
+
40
+ [`ArrayVector2D`](#arrayvector2d)
41
+
42
+ The sum of the vectors
43
+
44
+ ***
45
+
46
+ ### angleBetween2D()
47
+
48
+ ```ts
49
+ function angleBetween2D(xy1, xy2): number;
50
+ ```
51
+
52
+ Defined in: [2d/angle-between-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/angle-between-2d.ts#L9)
53
+
54
+ Calculates the angle between two 2D vectors.
55
+
56
+ #### Parameters
57
+
58
+ | Parameter | Type | Description |
59
+ | ------ | ------ | ------ |
60
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
61
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
62
+
63
+ #### Returns
64
+
65
+ `number`
66
+
67
+ Angle between the vectors in radians
68
+
69
+ ***
70
+
71
+ ### angleX2D()
72
+
73
+ ```ts
74
+ function angleX2D(xy): number;
75
+ ```
76
+
77
+ Defined in: [2d/angle-x-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/angle-x-2d.ts#L8)
78
+
79
+ Gets the angle between a 2D vector and the positive x-axis in radians.
80
+
81
+ #### Parameters
82
+
83
+ | Parameter | Type | Description |
84
+ | ------ | ------ | ------ |
85
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
86
+
87
+ #### Returns
88
+
89
+ `number`
90
+
91
+ Angle in radians, always in the range [0, 2π)
92
+
93
+ ***
94
+
95
+ ### angleY2D()
96
+
97
+ ```ts
98
+ function angleY2D(xy): number;
99
+ ```
100
+
101
+ Defined in: [2d/angle-y-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/angle-y-2d.ts#L8)
102
+
103
+ Gets the angle between a 2D vector and the positive y-axis in radians.
104
+
105
+ #### Parameters
106
+
107
+ | Parameter | Type | Description |
108
+ | ------ | ------ | ------ |
109
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
110
+
111
+ #### Returns
112
+
113
+ `number`
114
+
115
+ Angle in radians, always in the range [0, 2π)
116
+
117
+ ***
118
+
119
+ ### clamp2D()
120
+
121
+ ```ts
122
+ function clamp2D(
123
+ xy,
124
+ min,
125
+ max,
126
+ m?): ArrayVector2D;
127
+ ```
128
+
129
+ Defined in: [2d/clamp-2d.ts:12](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/clamp-2d.ts#L12)
130
+
131
+ Clamps the magnitude of a 2D vector between a minimum and maximum value.
132
+
133
+ #### Parameters
134
+
135
+ | Parameter | Type | Description |
136
+ | ------ | ------ | ------ |
137
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
138
+ | `min` | `number` | Minimum magnitude |
139
+ | `max` | `number` | Maximum magnitude |
140
+ | `m?` | `number` | Optional current magnitude (default: `magnitude2D(xy)`) |
141
+
142
+ #### Returns
143
+
144
+ [`ArrayVector2D`](#arrayvector2d)
145
+
146
+ The clamped vector
147
+
148
+ ***
149
+
150
+ ### clone2D()
151
+
152
+ ```ts
153
+ function clone2D(xy): ArrayVector2D;
154
+ ```
155
+
156
+ Defined in: [2d/clone-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/clone-2d.ts#L8)
157
+
158
+ Clone a 2D vector.
159
+
160
+ #### Parameters
161
+
162
+ | Parameter | Type | Description |
163
+ | ------ | ------ | ------ |
164
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
165
+
166
+ #### Returns
167
+
168
+ [`ArrayVector2D`](#arrayvector2d)
169
+
170
+ The cloned vector
171
+
172
+ ***
173
+
174
+ ### cross2D()
175
+
176
+ ```ts
177
+ function cross2D(xy1, xy2): number;
178
+ ```
179
+
180
+ Defined in: [2d/cross-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/cross-2d.ts#L9)
181
+
182
+ Calculates the cross product of two 2D vectors.
183
+
184
+ #### Parameters
185
+
186
+ | Parameter | Type | Description |
187
+ | ------ | ------ | ------ |
188
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
189
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
190
+
191
+ #### Returns
192
+
193
+ `number`
194
+
195
+ Cross product
196
+
197
+ ***
198
+
199
+ ### distance2D()
200
+
201
+ ```ts
202
+ function distance2D(xy1, xy2): number;
203
+ ```
204
+
205
+ Defined in: [2d/distance-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/distance-2d.ts#L9)
206
+
207
+ Calculate the Euclidean distance between two 2D vectors.
208
+
209
+ #### Parameters
210
+
211
+ | Parameter | Type | Description |
212
+ | ------ | ------ | ------ |
213
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
214
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
215
+
216
+ #### Returns
217
+
218
+ `number`
219
+
220
+ Euclidean distance
221
+
222
+ ***
223
+
224
+ ### distanceChebyshev2D()
225
+
226
+ ```ts
227
+ function distanceChebyshev2D(xy1, xy2): number;
228
+ ```
229
+
230
+ Defined in: [2d/distance-chebyshev-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/distance-chebyshev-2d.ts#L9)
231
+
232
+ Calculates the Chebyshev distance between two 2D vectors.
233
+
234
+ #### Parameters
235
+
236
+ | Parameter | Type | Description |
237
+ | ------ | ------ | ------ |
238
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
239
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
240
+
241
+ #### Returns
242
+
243
+ `number`
244
+
245
+ Chebyshev distance
246
+
247
+ ***
248
+
249
+ ### distanceManhattan2D()
250
+
251
+ ```ts
252
+ function distanceManhattan2D(xy1, xy2): number;
253
+ ```
254
+
255
+ Defined in: [2d/distance-manhattan-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/distance-manhattan-2d.ts#L9)
256
+
257
+ Calculates the Manhattan distance between two 2D vectors.
258
+
259
+ #### Parameters
260
+
261
+ | Parameter | Type | Description |
262
+ | ------ | ------ | ------ |
263
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
264
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
265
+
266
+ #### Returns
267
+
268
+ `number`
269
+
270
+ Manhattan distance
271
+
272
+ ***
273
+
274
+ ### distanceMinkowski2D()
275
+
276
+ ```ts
277
+ function distanceMinkowski2D(
278
+ xy1,
279
+ xy2,
280
+ p): number;
281
+ ```
282
+
283
+ Defined in: [2d/distance-minkowski-2d.ts:10](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/distance-minkowski-2d.ts#L10)
284
+
285
+ Calculates the Minkowski distance between two 2D vectors.
286
+
287
+ #### Parameters
288
+
289
+ | Parameter | Type | Description |
290
+ | ------ | ------ | ------ |
291
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
292
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
293
+ | `p` | `number` | Order of the Minkowski distance |
294
+
295
+ #### Returns
296
+
297
+ `number`
298
+
299
+ Minkowski distance
300
+
301
+ ***
302
+
303
+ ### distanceSq2D()
304
+
305
+ ```ts
306
+ function distanceSq2D(xy1, xy2): number;
307
+ ```
308
+
309
+ Defined in: [2d/distance-sq-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/distance-sq-2d.ts#L9)
310
+
311
+ Calculates the squared Euclidean distance between two 2D vectors.
312
+
313
+ #### Parameters
314
+
315
+ | Parameter | Type | Description |
316
+ | ------ | ------ | ------ |
317
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
318
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
319
+
320
+ #### Returns
321
+
322
+ `number`
323
+
324
+ Squared distance
325
+
326
+ ***
327
+
328
+ ### divide2D()
329
+
330
+ ```ts
331
+ function divide2D(xy1, xy2): ArrayVector2D;
332
+ ```
333
+
334
+ Defined in: [2d/divide-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/divide-2d.ts#L9)
335
+
336
+ Divides one 2D vector with another.
337
+
338
+ #### Parameters
339
+
340
+ | Parameter | Type | Description |
341
+ | ------ | ------ | ------ |
342
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
343
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
344
+
345
+ #### Returns
346
+
347
+ [`ArrayVector2D`](#arrayvector2d)
348
+
349
+ The divided value
350
+
351
+ ***
352
+
353
+ ### dot2D()
354
+
355
+ ```ts
356
+ function dot2D(xy1, xy2): number;
357
+ ```
358
+
359
+ Defined in: [2d/dot-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/dot-2d.ts#L9)
360
+
361
+ Calculates the dot product of two vectors.
362
+
363
+ #### Parameters
364
+
365
+ | Parameter | Type | Description |
366
+ | ------ | ------ | ------ |
367
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
368
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
369
+
370
+ #### Returns
371
+
372
+ `number`
373
+
374
+ Dot product
375
+
376
+ ***
377
+
378
+ ### fromAngleX2D()
379
+
380
+ ```ts
381
+ function fromAngleX2D(phi, magnitude): ArrayVector2D;
382
+ ```
383
+
384
+ Defined in: [2d/from-angle-x-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/from-angle-x-2d.ts#L9)
385
+
386
+ Creates an ArrayVector2D from x-axis angle.
387
+
388
+ #### Parameters
389
+
390
+ | Parameter | Type | Default value | Description |
391
+ | ------ | ------ | ------ | ------ |
392
+ | `phi` | `number` | `undefined` | Angle in radians |
393
+ | `magnitude` | `number` | `1` | Optional magnitude of the vector (default: `1`) |
394
+
395
+ #### Returns
396
+
397
+ [`ArrayVector2D`](#arrayvector2d)
398
+
399
+ Vector
400
+
401
+ ***
402
+
403
+ ### fromAngleY2D()
404
+
405
+ ```ts
406
+ function fromAngleY2D(phi, magnitude): ArrayVector2D;
407
+ ```
408
+
409
+ Defined in: [2d/from-angle-y-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/from-angle-y-2d.ts#L9)
410
+
411
+ Creates an ArrayVector2D from y-axis angle.
412
+
413
+ #### Parameters
414
+
415
+ | Parameter | Type | Default value | Description |
416
+ | ------ | ------ | ------ | ------ |
417
+ | `phi` | `number` | `undefined` | Angle in radians |
418
+ | `magnitude` | `number` | `1` | Optional magnitude of the vector (default: `1`) |
419
+
420
+ #### Returns
421
+
422
+ [`ArrayVector2D`](#arrayvector2d)
423
+
424
+ Vector
425
+
426
+ ***
427
+
428
+ ### fromObject2D()
429
+
430
+ ```ts
431
+ function fromObject2D(vector2D): ArrayVector2D;
432
+ ```
433
+
434
+ Defined in: [2d/from-object-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/from-object-2d.ts#L8)
435
+
436
+ Creates an `ArrayVector2D` from an object with x and y properties.
437
+
438
+ #### Parameters
439
+
440
+ | Parameter | Type | Description |
441
+ | ------ | ------ | ------ |
442
+ | `vector2D` | \{ `x`: `number`; `y`: `number`; \} | Object with x and y properties |
443
+ | `vector2D.x` | `number` | - |
444
+ | `vector2D.y` | `number` | - |
445
+
446
+ #### Returns
447
+
448
+ [`ArrayVector2D`](#arrayvector2d)
449
+
450
+ 2D vector as an array
451
+
452
+ ***
453
+
454
+ ### fromPolarCoords2D()
455
+
456
+ ```ts
457
+ function fromPolarCoords2D(phi, m?): ArrayVector2D;
458
+ ```
459
+
460
+ Defined in: [2d/from-polar-coords-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/from-polar-coords-2d.ts#L9)
461
+
462
+ Creates an `ArrayVector2D` from polar coordinates.
463
+
464
+ #### Parameters
465
+
466
+ | Parameter | Type | Default value | Description |
467
+ | ------ | ------ | ------ | ------ |
468
+ | `phi` | `number` | `undefined` | Angle in radians |
469
+ | `m?` | `number` | `1` | Optional magnitude (default: `1`) |
470
+
471
+ #### Returns
472
+
473
+ [`ArrayVector2D`](#arrayvector2d)
474
+
475
+ Vector
476
+
477
+ ***
478
+
479
+ ### immutable2D()
480
+
481
+ ```ts
482
+ function immutable2D(xy): readonly [number, number];
483
+ ```
484
+
485
+ Defined in: [2d/immutable-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/immutable-2d.ts#L8)
486
+
487
+ Create an immutable 2D vector.
488
+
489
+ #### Parameters
490
+
491
+ | Parameter | Type | Description |
492
+ | ------ | ------ | ------ |
493
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
494
+
495
+ #### Returns
496
+
497
+ readonly \[`number`, `number`\]
498
+
499
+ The immutable vector
500
+
501
+ ***
502
+
503
+ ### isEqual2D()
504
+
505
+ ```ts
506
+ function isEqual2D(xy1, xy2): boolean;
507
+ ```
508
+
509
+ Defined in: [2d/is-equal-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/is-equal-2d.ts#L9)
510
+
511
+ Checks if two 2D vectors are equal.
512
+
513
+ #### Parameters
514
+
515
+ | Parameter | Type | Description |
516
+ | ------ | ------ | ------ |
517
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
518
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
519
+
520
+ #### Returns
521
+
522
+ `boolean`
523
+
524
+ `true` if the vectors are equal, `false` otherwise
525
+
526
+ ***
527
+
528
+ ### isEqualApprox2D()
529
+
530
+ ```ts
531
+ function isEqualApprox2D(
532
+ xy1,
533
+ xy2,
534
+ epsilon): boolean;
535
+ ```
536
+
537
+ Defined in: [2d/is-equal-approx-2d.ts:10](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/is-equal-approx-2d.ts#L10)
538
+
539
+ Compares a 2D vector with another vector using an epsilon value for floating-point comparison.
540
+
541
+ #### Parameters
542
+
543
+ | Parameter | Type | Default value | Description |
544
+ | ------ | ------ | ------ | ------ |
545
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | `undefined` | First vector as `[x, y]` |
546
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | `undefined` | Second vector as `[x, y]` |
547
+ | `epsilon` | `number` | `Number.EPSILON` | Maximum difference between components to consider them equal (default: `Number.EPSILON`) |
548
+
549
+ #### Returns
550
+
551
+ `boolean`
552
+
553
+ `true` if the vectors are equal, `false` otherwise
554
+
555
+ ***
556
+
557
+ ### isInfinite2D()
558
+
559
+ ```ts
560
+ function isInfinite2D(xy): boolean;
561
+ ```
562
+
563
+ Defined in: [2d/is-infinite-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/is-infinite-2d.ts#L8)
564
+
565
+ Checks if a vector has infinite components.
566
+
567
+ #### Parameters
568
+
569
+ | Parameter | Type | Description |
570
+ | ------ | ------ | ------ |
571
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
572
+
573
+ #### Returns
574
+
575
+ `boolean`
576
+
577
+ `true` if the vector has infinite components, `false` otherwise
578
+
579
+ ***
580
+
581
+ ### isNaN2D()
582
+
583
+ ```ts
584
+ function isNaN2D(xy): boolean;
585
+ ```
586
+
587
+ Defined in: [2d/is-nan-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/is-nan-2d.ts#L8)
588
+
589
+ Checks if a vector has NaN components.
590
+
591
+ #### Parameters
592
+
593
+ | Parameter | Type | Description |
594
+ | ------ | ------ | ------ |
595
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
596
+
597
+ #### Returns
598
+
599
+ `boolean`
600
+
601
+ `true` if the vector has `NaN` components, `false` otherwise.
602
+
603
+ ***
604
+
605
+ ### isOpposite2D()
606
+
607
+ ```ts
608
+ function isOpposite2D(xy1, xy2): boolean;
609
+ ```
610
+
611
+ Defined in: [2d/is-opposite-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/is-opposite-2d.ts#L9)
612
+
613
+ Checks if two 2D vectors are opposite.
614
+
615
+ #### Parameters
616
+
617
+ | Parameter | Type | Description |
618
+ | ------ | ------ | ------ |
619
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
620
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
621
+
622
+ #### Returns
623
+
624
+ `boolean`
625
+
626
+ `true` if the vectors are opposite, `false` otherwise
627
+
628
+ ***
629
+
630
+ ### isZero2D()
631
+
632
+ ```ts
633
+ function isZero2D(xy): boolean;
634
+ ```
635
+
636
+ Defined in: [2d/is-zero-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/is-zero-2d.ts#L8)
637
+
638
+ Checks if a vector is zero.
639
+
640
+ #### Parameters
641
+
642
+ | Parameter | Type | Description |
643
+ | ------ | ------ | ------ |
644
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
645
+
646
+ #### Returns
647
+
648
+ `boolean`
649
+
650
+ `true` if the vector is zero, `false` otherwise
651
+
652
+ ***
653
+
654
+ ### lerp2D()
655
+
656
+ ```ts
657
+ function lerp2D(
658
+ xy1,
659
+ xy2,
660
+ t): ArrayVector2D;
661
+ ```
662
+
663
+ Defined in: [2d/lerp-2d.ts:10](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/lerp-2d.ts#L10)
664
+
665
+ Performs linear interpolation between two 2D vectors.
666
+
667
+ #### Parameters
668
+
669
+ | Parameter | Type | Description |
670
+ | ------ | ------ | ------ |
671
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
672
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
673
+ | `t` | `number` | Interpolation parameter |
674
+
675
+ #### Returns
676
+
677
+ [`ArrayVector2D`](#arrayvector2d)
678
+
679
+ The interpolated vector
680
+
681
+ ***
682
+
683
+ ### limitMax2D()
684
+
685
+ ```ts
686
+ function limitMax2D(
687
+ xy,
688
+ max,
689
+ m?): ArrayVector2D;
690
+ ```
691
+
692
+ Defined in: [2d/limit-max-2d.ts:11](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/limit-max-2d.ts#L11)
693
+
694
+ Limits the maximum magnitude of a 2D vector.
695
+
696
+ #### Parameters
697
+
698
+ | Parameter | Type | Description |
699
+ | ------ | ------ | ------ |
700
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
701
+ | `max` | `number` | Maximum magnitude |
702
+ | `m?` | `number` | Optional current magnitude (default: `magnitude2D(xy)`) |
703
+
704
+ #### Returns
705
+
706
+ [`ArrayVector2D`](#arrayvector2d)
707
+
708
+ The limited vector
709
+
710
+ ***
711
+
712
+ ### limitMin2D()
713
+
714
+ ```ts
715
+ function limitMin2D(
716
+ xy,
717
+ min,
718
+ m?): ArrayVector2D;
719
+ ```
720
+
721
+ Defined in: [2d/limit-min-2d.ts:11](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/limit-min-2d.ts#L11)
722
+
723
+ Limits the maximum magnitude of a 2D vector.
724
+
725
+ #### Parameters
726
+
727
+ | Parameter | Type | Description |
728
+ | ------ | ------ | ------ |
729
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
730
+ | `min` | `number` | Minimum magnitude |
731
+ | `m?` | `number` | Optional current magnitude (default: `magnitude2D(xy)`) |
732
+
733
+ #### Returns
734
+
735
+ [`ArrayVector2D`](#arrayvector2d)
736
+
737
+ The limited vector
738
+
739
+ ***
740
+
741
+ ### lookAt2D()
742
+
743
+ ```ts
744
+ function lookAt2D(
745
+ xy1,
746
+ xy2,
747
+ m1?,
748
+ m2?): ArrayVector2D;
749
+ ```
750
+
751
+ Defined in: [2d/look-at-2d.ts:12](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/look-at-2d.ts#L12)
752
+
753
+ Calculates the 2D vector angle of a vector pointing at another.
754
+
755
+ #### Parameters
756
+
757
+ | Parameter | Type | Description |
758
+ | ------ | ------ | ------ |
759
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
760
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` (target to look at) |
761
+ | `m1?` | `number` | Optional current magnitude of the first vector (default: magnitude2D(xy1)) |
762
+ | `m2?` | `number` | Optional current magnitude of the second vector (default: magnitude2D(xy2)) |
763
+
764
+ #### Returns
765
+
766
+ [`ArrayVector2D`](#arrayvector2d)
767
+
768
+ Vector pointing at the target with the magnitude of xy1
769
+
770
+ ***
771
+
772
+ ### magnitude2D()
773
+
774
+ ```ts
775
+ function magnitude2D(xy): number;
776
+ ```
777
+
778
+ Defined in: [2d/magnitude-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/magnitude-2d.ts#L8)
779
+
780
+ Calculates the magnitude of a 2D vector.
781
+
782
+ #### Parameters
783
+
784
+ | Parameter | Type | Description |
785
+ | ------ | ------ | ------ |
786
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
787
+
788
+ #### Returns
789
+
790
+ `number`
791
+
792
+ Magnitude of the vector
793
+
794
+ ***
795
+
796
+ ### magnitudeSq2D()
797
+
798
+ ```ts
799
+ function magnitudeSq2D(xy): number;
800
+ ```
801
+
802
+ Defined in: [2d/magnitude-sq-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/magnitude-sq-2d.ts#L8)
803
+
804
+ Calculate the squared magnitude of a 2D vector.
805
+
806
+ #### Parameters
807
+
808
+ | Parameter | Type | Description |
809
+ | ------ | ------ | ------ |
810
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
811
+
812
+ #### Returns
813
+
814
+ `number`
815
+
816
+ Squared magnitude
817
+
818
+ ***
819
+
820
+ ### multiply2D()
821
+
822
+ ```ts
823
+ function multiply2D(xy1, xy2): ArrayVector2D;
824
+ ```
825
+
826
+ Defined in: [2d/multiply-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/multiply-2d.ts#L9)
827
+
828
+ Multiplies one 2D vector with another component-wise.
829
+
830
+ #### Parameters
831
+
832
+ | Parameter | Type | Description |
833
+ | ------ | ------ | ------ |
834
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
835
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
836
+
837
+ #### Returns
838
+
839
+ [`ArrayVector2D`](#arrayvector2d)
840
+
841
+ The multiplied vector
842
+
843
+ ***
844
+
845
+ ### negate2D()
846
+
847
+ ```ts
848
+ function negate2D(xy): ArrayVector2D;
849
+ ```
850
+
851
+ Defined in: [2d/negate-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/negate-2d.ts#L8)
852
+
853
+ Negates a 2D vector.
854
+
855
+ #### Parameters
856
+
857
+ | Parameter | Type | Description |
858
+ | ------ | ------ | ------ |
859
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
860
+
861
+ #### Returns
862
+
863
+ [`ArrayVector2D`](#arrayvector2d)
864
+
865
+ The negated vector
866
+
867
+ ***
868
+
869
+ ### normalize2D()
870
+
871
+ ```ts
872
+ function normalize2D(xy, m?): ArrayVector2D;
873
+ ```
874
+
875
+ Defined in: [2d/normalize-2d.ts:10](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/normalize-2d.ts#L10)
876
+
877
+ Normalize a 2D vector.
878
+
879
+ #### Parameters
880
+
881
+ | Parameter | Type | Description |
882
+ | ------ | ------ | ------ |
883
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
884
+ | `m?` | `number` | Optional current magnitude (default: `magnitude2D(xy)`) |
885
+
886
+ #### Returns
887
+
888
+ [`ArrayVector2D`](#arrayvector2d)
889
+
890
+ The normalized vector
891
+
892
+ ***
893
+
894
+ ### one2D()
895
+
896
+ ```ts
897
+ function one2D(): ArrayVector2D;
898
+ ```
899
+
900
+ Defined in: [2d/one-2d.ts:7](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/one-2d.ts#L7)
901
+
902
+ Creates a 2D vector with all components set to 1.0.
903
+
904
+ #### Returns
905
+
906
+ [`ArrayVector2D`](#arrayvector2d)
907
+
908
+ Vector `[1, 1]`
909
+
910
+ ***
911
+
912
+ ### project2D()
913
+
914
+ ```ts
915
+ function project2D(
916
+ xy1,
917
+ xy2,
918
+ m1?,
919
+ m2?): ArrayVector2D;
920
+ ```
921
+
922
+ Defined in: [2d/project-2d.ts:12](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/project-2d.ts#L12)
923
+
924
+ Projects one 2D vector onto another.
925
+
926
+ #### Parameters
927
+
928
+ | Parameter | Type | Description |
929
+ | ------ | ------ | ------ |
930
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | Vector to project |
931
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Vector to project onto |
932
+ | `m1?` | `number` | Optional magnitude of the first vector (default: `magnitude2D(xy1)`) |
933
+ | `m2?` | `number` | Optional magnitude of the second vector (default: `magnitude2D(xy2)`) |
934
+
935
+ #### Returns
936
+
937
+ [`ArrayVector2D`](#arrayvector2d)
938
+
939
+ The projected vector
940
+
941
+ ***
942
+
943
+ ### random2D()
944
+
945
+ ```ts
946
+ function random2D(random): ArrayVector2D;
947
+ ```
948
+
949
+ Defined in: [2d/random-2d.ts:8](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/random-2d.ts#L8)
950
+
951
+ Creates a random unit 2D vector.
952
+
953
+ #### Parameters
954
+
955
+ | Parameter | Type | Default value | Description |
956
+ | ------ | ------ | ------ | ------ |
957
+ | `random` | () => `number` | `Math.random` | A function that returns a random number between 0 and 1 (default: `Math.random`) |
958
+
959
+ #### Returns
960
+
961
+ [`ArrayVector2D`](#arrayvector2d)
962
+
963
+ Random unit vector
964
+
965
+ ***
966
+
967
+ ### reflect2D()
968
+
969
+ ```ts
970
+ function reflect2D(xy, normal): ArrayVector2D;
971
+ ```
972
+
973
+ Defined in: [2d/reflect-2d.ts:11](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/reflect-2d.ts#L11)
974
+
975
+ Reflects the vector across a normal vector.
976
+ The normal vector should be normalized (unit length).
977
+
978
+ #### Parameters
979
+
980
+ | Parameter | Type | Description |
981
+ | ------ | ------ | ------ |
982
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` to reflect |
983
+ | `normal` | [`ArrayVector2D`](#arrayvector2d) | Normal vector to reflect across (must be normalized) |
984
+
985
+ #### Returns
986
+
987
+ [`ArrayVector2D`](#arrayvector2d)
988
+
989
+ The reflected vector
990
+
991
+ ***
992
+
993
+ ### rotate2D()
994
+
995
+ ```ts
996
+ function rotate2D(
997
+ xy,
998
+ phi,
999
+ axis): ArrayVector2D;
1000
+ ```
1001
+
1002
+ Defined in: [2d/rotate-2d.ts:10](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/rotate-2d.ts#L10)
1003
+
1004
+ Rotates a 2D point around an arbitrary axis point
1005
+
1006
+ #### Parameters
1007
+
1008
+ | Parameter | Type | Description |
1009
+ | ------ | ------ | ------ |
1010
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Point to rotate |
1011
+ | `phi` | `number` | Rotation angle in radians |
1012
+ | `axis` | [`ArrayVector2D`](#arrayvector2d) | Rotation axis point (default: `[0, 0]`) |
1013
+
1014
+ #### Returns
1015
+
1016
+ [`ArrayVector2D`](#arrayvector2d)
1017
+
1018
+ The rotated vector
1019
+
1020
+ ***
1021
+
1022
+ ### setMagnitude2D()
1023
+
1024
+ ```ts
1025
+ function setMagnitude2D(
1026
+ xy,
1027
+ newMag,
1028
+ m?): ArrayVector2D;
1029
+ ```
1030
+
1031
+ Defined in: [2d/set-magnitude-2d.ts:11](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/set-magnitude-2d.ts#L11)
1032
+
1033
+ Sets the magnitude (length) of a 2D vector, maintaining its direction.
1034
+
1035
+ #### Parameters
1036
+
1037
+ | Parameter | Type | Description |
1038
+ | ------ | ------ | ------ |
1039
+ | `xy` | [`ArrayVector2D`](#arrayvector2d) | Vector as `[x, y]` |
1040
+ | `newMag` | `number` | New magnitude |
1041
+ | `m?` | `number` | Optional current magnitude (default: `magnitude2D(xy)`) |
1042
+
1043
+ #### Returns
1044
+
1045
+ [`ArrayVector2D`](#arrayvector2d)
1046
+
1047
+ The adjusted vector
1048
+
1049
+ ***
1050
+
1051
+ ### subtract2D()
1052
+
1053
+ ```ts
1054
+ function subtract2D(xy1, xy2): ArrayVector2D;
1055
+ ```
1056
+
1057
+ Defined in: [2d/subtract-2d.ts:9](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/subtract-2d.ts#L9)
1058
+
1059
+ Subtracts a 2D vector from another.
1060
+
1061
+ #### Parameters
1062
+
1063
+ | Parameter | Type | Description |
1064
+ | ------ | ------ | ------ |
1065
+ | `xy1` | [`ArrayVector2D`](#arrayvector2d) | First vector as `[x, y]` |
1066
+ | `xy2` | [`ArrayVector2D`](#arrayvector2d) | Second vector as `[x, y]` |
1067
+
1068
+ #### Returns
1069
+
1070
+ [`ArrayVector2D`](#arrayvector2d)
1071
+
1072
+ The difference between vectors
1073
+
1074
+ ***
1075
+
1076
+ ### zero2D()
1077
+
1078
+ ```ts
1079
+ function zero2D(): ArrayVector2D;
1080
+ ```
1081
+
1082
+ Defined in: [2d/zero-2d.ts:7](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/2d/zero-2d.ts#L7)
1083
+
1084
+ Creates a zero 2D vector.
1085
+
1086
+ #### Returns
1087
+
1088
+ [`ArrayVector2D`](#arrayvector2d)
1089
+
1090
+ Vector `[0, 0]`