@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
package/docs/Vec2.md ADDED
@@ -0,0 +1,1827 @@
1
+ [@fimbul-works/vec](README.md) / Vec2
2
+
3
+ # Vec2
4
+
5
+ Documentation for 2D Vector class.
6
+
7
+ ## Classes
8
+
9
+ ### Vec2
10
+
11
+ Defined in: [vec2.ts:12](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L12)
12
+
13
+ Represents a 2D vector with various operations.
14
+
15
+ #### Constructors
16
+
17
+ ##### Constructor
18
+
19
+ ```ts
20
+ new Vec2(x, y): Vec2;
21
+ ```
22
+
23
+ Defined in: [vec2.ts:37](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L37)
24
+
25
+ Creates a new Vec2 instance.
26
+
27
+ ###### Parameters
28
+
29
+ | Parameter | Type | Default value | Description |
30
+ | ------ | ------ | ------ | ------ |
31
+ | `x` | `number` | `0` | The x-coordinate of the vector. |
32
+ | `y` | `number` | `x` | The y-coordinate of the vector. |
33
+
34
+ ###### Returns
35
+
36
+ [`Vec2`](#vec2)
37
+
38
+ #### Accessors
39
+
40
+ ##### angleX
41
+
42
+ ###### Get Signature
43
+
44
+ ```ts
45
+ get angleX(): number;
46
+ ```
47
+
48
+ Defined in: [vec2.ts:496](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L496)
49
+
50
+ Gets the angle between the vector and the positive x-axis in radians.
51
+
52
+ ###### Returns
53
+
54
+ `number`
55
+
56
+ The angle in radians, always in the range [0, 2π).
57
+
58
+ ###### Set Signature
59
+
60
+ ```ts
61
+ set angleX(phi): void;
62
+ ```
63
+
64
+ Defined in: [vec2.ts:504](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L504)
65
+
66
+ Sets the angle between the vector and the positive x-axis, maintaining the vector's magnitude.
67
+
68
+ ###### Parameters
69
+
70
+ | Parameter | Type | Description |
71
+ | ------ | ------ | ------ |
72
+ | `phi` | `number` | The new angle in radians. |
73
+
74
+ ###### Returns
75
+
76
+ `void`
77
+
78
+ ##### angleY
79
+
80
+ ###### Get Signature
81
+
82
+ ```ts
83
+ get angleY(): number;
84
+ ```
85
+
86
+ Defined in: [vec2.ts:515](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L515)
87
+
88
+ Gets the angle between the vector and the positive y-axis in radians.
89
+
90
+ ###### Returns
91
+
92
+ `number`
93
+
94
+ The angle in radians, always in the range [0, 2π).
95
+
96
+ ###### Set Signature
97
+
98
+ ```ts
99
+ set angleY(phi): void;
100
+ ```
101
+
102
+ Defined in: [vec2.ts:523](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L523)
103
+
104
+ Sets the angle between the vector and the positive y-axis, maintaining the vector's magnitude.
105
+
106
+ ###### Parameters
107
+
108
+ | Parameter | Type | Description |
109
+ | ------ | ------ | ------ |
110
+ | `phi` | `number` | The new angle in radians. |
111
+
112
+ ###### Returns
113
+
114
+ `void`
115
+
116
+ ##### magnitude
117
+
118
+ ###### Get Signature
119
+
120
+ ```ts
121
+ get magnitude(): number;
122
+ ```
123
+
124
+ Defined in: [vec2.ts:534](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L534)
125
+
126
+ Gets the magnitude (length) of the vector.
127
+
128
+ ###### Returns
129
+
130
+ `number`
131
+
132
+ The magnitude of the vector.
133
+
134
+ ###### Set Signature
135
+
136
+ ```ts
137
+ set magnitude(m): void;
138
+ ```
139
+
140
+ Defined in: [vec2.ts:542](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L542)
141
+
142
+ Sets the magnitude (length) of the vector, maintaining its direction.
143
+
144
+ ###### Parameters
145
+
146
+ | Parameter | Type | Description |
147
+ | ------ | ------ | ------ |
148
+ | `m` | `number` | The new magnitude. |
149
+
150
+ ###### Returns
151
+
152
+ `void`
153
+
154
+ ##### magnitudeSq
155
+
156
+ ###### Get Signature
157
+
158
+ ```ts
159
+ get magnitudeSq(): number;
160
+ ```
161
+
162
+ Defined in: [vec2.ts:554](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L554)
163
+
164
+ Gets the squared magnitude of the vector.
165
+ This is faster to compute than the actual magnitude and is useful for comparisons.
166
+
167
+ ###### Returns
168
+
169
+ `number`
170
+
171
+ The squared magnitude of the vector.
172
+
173
+ ##### x
174
+
175
+ ###### Get Signature
176
+
177
+ ```ts
178
+ get x(): number;
179
+ ```
180
+
181
+ Defined in: [vec2.ts:444](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L444)
182
+
183
+ Gets the x-component of the vector.
184
+
185
+ ###### Returns
186
+
187
+ `number`
188
+
189
+ The x-component.
190
+
191
+ ###### Set Signature
192
+
193
+ ```ts
194
+ set x(x): void;
195
+ ```
196
+
197
+ Defined in: [vec2.ts:452](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L452)
198
+
199
+ Sets the x-component of the vector.
200
+
201
+ ###### Parameters
202
+
203
+ | Parameter | Type | Description |
204
+ | ------ | ------ | ------ |
205
+ | `x` | `number` | The new x-component. |
206
+
207
+ ###### Returns
208
+
209
+ `void`
210
+
211
+ ##### xy
212
+
213
+ ###### Get Signature
214
+
215
+ ```ts
216
+ get xy(): [number, number];
217
+ ```
218
+
219
+ Defined in: [vec2.ts:478](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L478)
220
+
221
+ Gets a copy of the vector's components as an array.
222
+
223
+ ###### Returns
224
+
225
+ \[`number`, `number`\]
226
+
227
+ An array containing the x and y components of the vector.
228
+
229
+ ###### Set Signature
230
+
231
+ ```ts
232
+ set xy(xy): void;
233
+ ```
234
+
235
+ Defined in: [vec2.ts:486](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L486)
236
+
237
+ Sets both components of the vector at once.
238
+
239
+ ###### Parameters
240
+
241
+ | Parameter | Type | Description |
242
+ | ------ | ------ | ------ |
243
+ | `xy` | `number`[] \| \[`number`, `number`\] | An array containing the new x and y components. |
244
+
245
+ ###### Returns
246
+
247
+ `void`
248
+
249
+ ##### y
250
+
251
+ ###### Get Signature
252
+
253
+ ```ts
254
+ get y(): number;
255
+ ```
256
+
257
+ Defined in: [vec2.ts:461](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L461)
258
+
259
+ Gets the y-component of the vector.
260
+
261
+ ###### Returns
262
+
263
+ `number`
264
+
265
+ The y-component.
266
+
267
+ ###### Set Signature
268
+
269
+ ```ts
270
+ set y(y): void;
271
+ ```
272
+
273
+ Defined in: [vec2.ts:469](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L469)
274
+
275
+ Sets the y-component of the vector.
276
+
277
+ ###### Parameters
278
+
279
+ | Parameter | Type | Description |
280
+ | ------ | ------ | ------ |
281
+ | `y` | `number` | The new y-component. |
282
+
283
+ ###### Returns
284
+
285
+ `void`
286
+
287
+ #### Methods
288
+
289
+ ##### \[iterator\]()
290
+
291
+ ```ts
292
+ iterator: IterableIterator<number>;
293
+ ```
294
+
295
+ Defined in: [vec2.ts:960](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L960)
296
+
297
+ Makes the Vec2 instance iterable.
298
+
299
+ ###### Returns
300
+
301
+ `IterableIterator`\<`number`\>
302
+
303
+ ###### Yields
304
+
305
+ The x and y components of the vector.
306
+
307
+ ##### add()
308
+
309
+ ```ts
310
+ add(v): this;
311
+ ```
312
+
313
+ Defined in: [vec2.ts:563](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L563)
314
+
315
+ Adds another vector to this vector.
316
+
317
+ ###### Parameters
318
+
319
+ | Parameter | Type | Description |
320
+ | ------ | ------ | ------ |
321
+ | `v` | [`Vec2`](#vec2) | The vector to add. |
322
+
323
+ ###### Returns
324
+
325
+ `this`
326
+
327
+ This Vec2 instance for method chaining.
328
+
329
+ ##### angleBetween()
330
+
331
+ ```ts
332
+ angleBetween(v): number;
333
+ ```
334
+
335
+ Defined in: [vec2.ts:611](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L611)
336
+
337
+ Calculates the angle between this vector and another vector.
338
+
339
+ ###### Parameters
340
+
341
+ | Parameter | Type | Description |
342
+ | ------ | ------ | ------ |
343
+ | `v` | [`Vec2`](#vec2) | The other vector. |
344
+
345
+ ###### Returns
346
+
347
+ `number`
348
+
349
+ The angle between the vectors in radians.
350
+
351
+ ##### clamp()
352
+
353
+ ```ts
354
+ clamp(min, max): this;
355
+ ```
356
+
357
+ Defined in: [vec2.ts:625](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L625)
358
+
359
+ Clamps the magnitude of this vector between a minimum and maximum value.
360
+
361
+ ###### Parameters
362
+
363
+ | Parameter | Type | Description |
364
+ | ------ | ------ | ------ |
365
+ | `min` | `number` | The minimum magnitude. |
366
+ | `max` | `number` | The maximum magnitude. |
367
+
368
+ ###### Returns
369
+
370
+ `this`
371
+
372
+ This Vec2 instance for method chaining.
373
+
374
+ ##### clone()
375
+
376
+ ```ts
377
+ clone(): Vec2;
378
+ ```
379
+
380
+ Defined in: [vec2.ts:643](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L643)
381
+
382
+ Creates a copy of this vector.
383
+
384
+ ###### Returns
385
+
386
+ [`Vec2`](#vec2)
387
+
388
+ A new Vec2 instance with the same components.
389
+
390
+ ##### copy()
391
+
392
+ ```ts
393
+ copy(v): this;
394
+ ```
395
+
396
+ Defined in: [vec2.ts:652](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L652)
397
+
398
+ Copies the components of another vector to this vector.
399
+
400
+ ###### Parameters
401
+
402
+ | Parameter | Type | Description |
403
+ | ------ | ------ | ------ |
404
+ | `v` | [`Vec2`](#vec2) | The vector to copy from. |
405
+
406
+ ###### Returns
407
+
408
+ `this`
409
+
410
+ This Vec2 instance for method chaining.
411
+
412
+ ##### cross()
413
+
414
+ ```ts
415
+ cross(v): number;
416
+ ```
417
+
418
+ Defined in: [vec2.ts:721](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L721)
419
+
420
+ Calculates the cross product of this vector with another vector.
421
+
422
+ ###### Parameters
423
+
424
+ | Parameter | Type | Description |
425
+ | ------ | ------ | ------ |
426
+ | `v` | [`Vec2`](#vec2) | The other vector. |
427
+
428
+ ###### Returns
429
+
430
+ `number`
431
+
432
+ The cross product of the vectors.
433
+
434
+ ##### distance()
435
+
436
+ ```ts
437
+ distance(v): number;
438
+ ```
439
+
440
+ Defined in: [vec2.ts:664](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L664)
441
+
442
+ Calculates the distance between this vector and another vector.
443
+
444
+ ###### Parameters
445
+
446
+ | Parameter | Type | Description |
447
+ | ------ | ------ | ------ |
448
+ | `v` | [`Vec2`](#vec2) | The other vector. |
449
+
450
+ ###### Returns
451
+
452
+ `number`
453
+
454
+ The distance between the vectors.
455
+
456
+ ##### distanceChebyshev()
457
+
458
+ ```ts
459
+ distanceChebyshev(v): number;
460
+ ```
461
+
462
+ Defined in: [vec2.ts:673](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L673)
463
+
464
+ Calculates the Chebyshev distance between this vector and another vector.
465
+
466
+ ###### Parameters
467
+
468
+ | Parameter | Type | Description |
469
+ | ------ | ------ | ------ |
470
+ | `v` | [`Vec2`](#vec2) | The other vector. |
471
+
472
+ ###### Returns
473
+
474
+ `number`
475
+
476
+ The Chebyshev distance between the vectors.
477
+
478
+ ##### distanceManhattan()
479
+
480
+ ```ts
481
+ distanceManhattan(v): number;
482
+ ```
483
+
484
+ Defined in: [vec2.ts:684](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L684)
485
+
486
+ Calculates the Manhattan distance between this vector and another vector.
487
+
488
+ ###### Parameters
489
+
490
+ | Parameter | Type | Description |
491
+ | ------ | ------ | ------ |
492
+ | `v` | [`Vec2`](#vec2) | The other vector. |
493
+
494
+ ###### Returns
495
+
496
+ `number`
497
+
498
+ The Manhattan distance between the vectors.
499
+
500
+ ##### distanceMinkowski()
501
+
502
+ ```ts
503
+ distanceMinkowski(v, p): number;
504
+ ```
505
+
506
+ Defined in: [vec2.ts:694](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L694)
507
+
508
+ Calculates the Minkowski distance between this vector and another vector.
509
+
510
+ ###### Parameters
511
+
512
+ | Parameter | Type | Description |
513
+ | ------ | ------ | ------ |
514
+ | `v` | [`Vec2`](#vec2) | The other vector. |
515
+ | `p` | `number` | The order of the Minkowski distance. |
516
+
517
+ ###### Returns
518
+
519
+ `number`
520
+
521
+ The Minkowski distance between the vectors.
522
+
523
+ ##### distanceSq()
524
+
525
+ ```ts
526
+ distanceSq(v): number;
527
+ ```
528
+
529
+ Defined in: [vec2.ts:703](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L703)
530
+
531
+ Calculates the squared distance between this vector and another vector.
532
+
533
+ ###### Parameters
534
+
535
+ | Parameter | Type | Description |
536
+ | ------ | ------ | ------ |
537
+ | `v` | [`Vec2`](#vec2) | The other vector. |
538
+
539
+ ###### Returns
540
+
541
+ `number`
542
+
543
+ The squared distance between the vectors.
544
+
545
+ ##### divide()
546
+
547
+ ```ts
548
+ divide(v): this;
549
+ ```
550
+
551
+ Defined in: [vec2.ts:599](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L599)
552
+
553
+ Divides this vector with another vector.
554
+
555
+ ###### Parameters
556
+
557
+ | Parameter | Type | Description |
558
+ | ------ | ------ | ------ |
559
+ | `v` | [`Vec2`](#vec2) | The vector to divide with. |
560
+
561
+ ###### Returns
562
+
563
+ `this`
564
+
565
+ This Vec2 instance for method chaining.
566
+
567
+ ##### dot()
568
+
569
+ ```ts
570
+ dot(v): number;
571
+ ```
572
+
573
+ Defined in: [vec2.ts:712](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L712)
574
+
575
+ Calculates the dot product of this vector with another vector.
576
+
577
+ ###### Parameters
578
+
579
+ | Parameter | Type | Description |
580
+ | ------ | ------ | ------ |
581
+ | `v` | [`Vec2`](#vec2) | The other vector. |
582
+
583
+ ###### Returns
584
+
585
+ `number`
586
+
587
+ The dot product of the vectors.
588
+
589
+ ##### equals()
590
+
591
+ ```ts
592
+ equals(v, epsilon): boolean;
593
+ ```
594
+
595
+ Defined in: [vec2.ts:905](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L905)
596
+
597
+ Compares this vector with another vector using an epsilon value for floating-point comparison.
598
+
599
+ ###### Parameters
600
+
601
+ | Parameter | Type | Default value | Description |
602
+ | ------ | ------ | ------ | ------ |
603
+ | `v` | [`Vec2`](#vec2) | `undefined` | The vector to compare with. |
604
+ | `epsilon` | `number` | `Number.EPSILON` | The maximum difference between components to consider them equal. |
605
+
606
+ ###### Returns
607
+
608
+ `boolean`
609
+
610
+ True if the vectors are equal within epsilon, false otherwise.
611
+
612
+ ##### isInfinite()
613
+
614
+ ```ts
615
+ isInfinite(): boolean;
616
+ ```
617
+
618
+ Defined in: [vec2.ts:739](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L739)
619
+
620
+ Checks if this vector has infinite components.
621
+
622
+ ###### Returns
623
+
624
+ `boolean`
625
+
626
+ True if the vector has infinite components, false otherwise.
627
+
628
+ ##### isNaN()
629
+
630
+ ```ts
631
+ isNaN(): boolean;
632
+ ```
633
+
634
+ Defined in: [vec2.ts:754](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L754)
635
+
636
+ Checks if this vector has NaN components.
637
+
638
+ ###### Returns
639
+
640
+ `boolean`
641
+
642
+ True if the vector has NaN components, false otherwise.
643
+
644
+ ##### isZero()
645
+
646
+ ```ts
647
+ isZero(): boolean;
648
+ ```
649
+
650
+ Defined in: [vec2.ts:762](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L762)
651
+
652
+ Checks if this vector is zero.
653
+
654
+ ###### Returns
655
+
656
+ `boolean`
657
+
658
+ True if the vector is zero, false otherwise.
659
+
660
+ ##### limitMax()
661
+
662
+ ```ts
663
+ limitMax(max): this;
664
+ ```
665
+
666
+ Defined in: [vec2.ts:771](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L771)
667
+
668
+ Limits the maximum magnitude of this vector.
669
+
670
+ ###### Parameters
671
+
672
+ | Parameter | Type | Description |
673
+ | ------ | ------ | ------ |
674
+ | `max` | `number` | The maximum magnitude. |
675
+
676
+ ###### Returns
677
+
678
+ `this`
679
+
680
+ This Vec2 instance for method chaining.
681
+
682
+ ##### limitMin()
683
+
684
+ ```ts
685
+ limitMin(min): this;
686
+ ```
687
+
688
+ Defined in: [vec2.ts:786](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L786)
689
+
690
+ Limits the minimum magnitude of this vector.
691
+
692
+ ###### Parameters
693
+
694
+ | Parameter | Type | Description |
695
+ | ------ | ------ | ------ |
696
+ | `min` | `number` | The minimum magnitude. |
697
+
698
+ ###### Returns
699
+
700
+ `this`
701
+
702
+ This Vec2 instance for method chaining.
703
+
704
+ ##### lookAt()
705
+
706
+ ```ts
707
+ lookAt(v): this;
708
+ ```
709
+
710
+ Defined in: [vec2.ts:801](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L801)
711
+
712
+ Sets this vector to point towards another vector.
713
+
714
+ ###### Parameters
715
+
716
+ | Parameter | Type | Description |
717
+ | ------ | ------ | ------ |
718
+ | `v` | [`Vec2`](#vec2) | The vector to look at. |
719
+
720
+ ###### Returns
721
+
722
+ `this`
723
+
724
+ This Vec2 instance for method chaining.
725
+
726
+ ##### multiply()
727
+
728
+ ```ts
729
+ multiply(v): this;
730
+ ```
731
+
732
+ Defined in: [vec2.ts:587](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L587)
733
+
734
+ Multiplies this vector with another vector.
735
+
736
+ ###### Parameters
737
+
738
+ | Parameter | Type | Description |
739
+ | ------ | ------ | ------ |
740
+ | `v` | [`Vec2`](#vec2) | The vector to multiply with. |
741
+
742
+ ###### Returns
743
+
744
+ `this`
745
+
746
+ This Vec2 instance for method chaining.
747
+
748
+ ##### negate()
749
+
750
+ ```ts
751
+ negate(): this;
752
+ ```
753
+
754
+ Defined in: [vec2.ts:814](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L814)
755
+
756
+ Negates this vector.
757
+
758
+ ###### Returns
759
+
760
+ `this`
761
+
762
+ This Vec2 instance for method chaining.
763
+
764
+ ##### normalize()
765
+
766
+ ```ts
767
+ normalize(): this;
768
+ ```
769
+
770
+ Defined in: [vec2.ts:825](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L825)
771
+
772
+ Normalizes this vector.
773
+
774
+ ###### Returns
775
+
776
+ `this`
777
+
778
+ This Vec2 instance for method chaining.
779
+
780
+ ##### project()
781
+
782
+ ```ts
783
+ project(v): this;
784
+ ```
785
+
786
+ Defined in: [vec2.ts:838](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L838)
787
+
788
+ Projects this vector onto another vector.
789
+
790
+ ###### Parameters
791
+
792
+ | Parameter | Type | Description |
793
+ | ------ | ------ | ------ |
794
+ | `v` | [`Vec2`](#vec2) | The vector to project onto. |
795
+
796
+ ###### Returns
797
+
798
+ `this`
799
+
800
+ This Vec2 instance for method chaining.
801
+
802
+ ##### random()
803
+
804
+ ```ts
805
+ random(random): this;
806
+ ```
807
+
808
+ Defined in: [vec2.ts:856](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L856)
809
+
810
+ Sets this vector to a random direction with the same magnitude.
811
+
812
+ ###### Parameters
813
+
814
+ | Parameter | Type | Default value | Description |
815
+ | ------ | ------ | ------ | ------ |
816
+ | `random` | () => `number` | `Math.random` | A function that returns a random number between 0 and 1. |
817
+
818
+ ###### Returns
819
+
820
+ `this`
821
+
822
+ This Vec2 instance for method chaining.
823
+
824
+ ##### reflect()
825
+
826
+ ```ts
827
+ reflect(normal): Vec2;
828
+ ```
829
+
830
+ Defined in: [vec2.ts:730](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L730)
831
+
832
+ Reflects this vector across a normal vector.
833
+
834
+ ###### Parameters
835
+
836
+ | Parameter | Type | Description |
837
+ | ------ | ------ | ------ |
838
+ | `normal` | [`Vec2`](#vec2) | The normal vector to reflect across (must be normalized). |
839
+
840
+ ###### Returns
841
+
842
+ [`Vec2`](#vec2)
843
+
844
+ A new Vec2 instance representing the reflected vector.
845
+
846
+ ##### rotateZ()
847
+
848
+ ```ts
849
+ rotateZ(phi): this;
850
+ ```
851
+
852
+ Defined in: [vec2.ts:870](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L870)
853
+
854
+ Rotates this vector around the Z-axis.
855
+
856
+ ###### Parameters
857
+
858
+ | Parameter | Type | Description |
859
+ | ------ | ------ | ------ |
860
+ | `phi` | `number` | The angle of rotation in radians. |
861
+
862
+ ###### Returns
863
+
864
+ `this`
865
+
866
+ This Vec2 instance for method chaining.
867
+
868
+ ##### satisfyEquality()
869
+
870
+ ```ts
871
+ satisfyEquality(v): boolean;
872
+ ```
873
+
874
+ Defined in: [vec2.ts:886](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L886)
875
+
876
+ Checks if this vector is equal to another vector.
877
+
878
+ ###### Parameters
879
+
880
+ | Parameter | Type | Description |
881
+ | ------ | ------ | ------ |
882
+ | `v` | [`Vec2`](#vec2) | The other vector. |
883
+
884
+ ###### Returns
885
+
886
+ `boolean`
887
+
888
+ True if the vectors are equal, false otherwise.
889
+
890
+ ##### satisfyOpposition()
891
+
892
+ ```ts
893
+ satisfyOpposition(v): boolean;
894
+ ```
895
+
896
+ Defined in: [vec2.ts:895](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L895)
897
+
898
+ Checks if this vector is opposite to another vector.
899
+
900
+ ###### Parameters
901
+
902
+ | Parameter | Type | Description |
903
+ | ------ | ------ | ------ |
904
+ | `v` | [`Vec2`](#vec2) | The other vector. |
905
+
906
+ ###### Returns
907
+
908
+ `boolean`
909
+
910
+ True if the vectors are opposite, false otherwise.
911
+
912
+ ##### scale()
913
+
914
+ ```ts
915
+ scale(c): this;
916
+ ```
917
+
918
+ Defined in: [vec2.ts:914](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L914)
919
+
920
+ Scales this vector by a scalar value.
921
+
922
+ ###### Parameters
923
+
924
+ | Parameter | Type | Description |
925
+ | ------ | ------ | ------ |
926
+ | `c` | `number` | The scalar value. |
927
+
928
+ ###### Returns
929
+
930
+ `this`
931
+
932
+ This Vec2 instance for method chaining.
933
+
934
+ ##### subtract()
935
+
936
+ ```ts
937
+ subtract(v): this;
938
+ ```
939
+
940
+ Defined in: [vec2.ts:575](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L575)
941
+
942
+ Subtracts another vector from this vector.
943
+
944
+ ###### Parameters
945
+
946
+ | Parameter | Type | Description |
947
+ | ------ | ------ | ------ |
948
+ | `v` | [`Vec2`](#vec2) | The vector to subtract. |
949
+
950
+ ###### Returns
951
+
952
+ `this`
953
+
954
+ This Vec2 instance for method chaining.
955
+
956
+ ##### toJSON()
957
+
958
+ ```ts
959
+ toJSON(): {
960
+ x: number;
961
+ y: number;
962
+ };
963
+ ```
964
+
965
+ Defined in: [vec2.ts:985](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L985)
966
+
967
+ Serializes the vector to a JSON-friendly format.
968
+
969
+ ###### Returns
970
+
971
+ ```ts
972
+ {
973
+ x: number;
974
+ y: number;
975
+ }
976
+ ```
977
+
978
+ A JSON-friendly object representation of the vector.
979
+
980
+ | Name | Type | Defined in |
981
+ | ------ | ------ | ------ |
982
+ | `x` | `number` | [vec2.ts:985](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L985) |
983
+ | `y` | `number` | [vec2.ts:985](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L985) |
984
+
985
+ ##### toObject()
986
+
987
+ ```ts
988
+ toObject(): {
989
+ x: number;
990
+ y: number;
991
+ };
992
+ ```
993
+
994
+ Defined in: [vec2.ts:977](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L977)
995
+
996
+ Converts the vector to a plain object.
997
+
998
+ ###### Returns
999
+
1000
+ ```ts
1001
+ {
1002
+ x: number;
1003
+ y: number;
1004
+ }
1005
+ ```
1006
+
1007
+ An object with x and y properties.
1008
+
1009
+ | Name | Type | Defined in |
1010
+ | ------ | ------ | ------ |
1011
+ | `x` | `number` | [vec2.ts:977](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L977) |
1012
+ | `y` | `number` | [vec2.ts:977](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L977) |
1013
+
1014
+ ##### toString()
1015
+
1016
+ ```ts
1017
+ toString(): string;
1018
+ ```
1019
+
1020
+ Defined in: [vec2.ts:969](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L969)
1021
+
1022
+ Returns a string representation of the vector.
1023
+
1024
+ ###### Returns
1025
+
1026
+ `string`
1027
+
1028
+ A string in the format "Vec2(x, y)".
1029
+
1030
+ ##### turnLeft()
1031
+
1032
+ ```ts
1033
+ turnLeft(): this;
1034
+ ```
1035
+
1036
+ Defined in: [vec2.ts:925](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L925)
1037
+
1038
+ Rotates this vector 90 degrees to the left.
1039
+
1040
+ ###### Returns
1041
+
1042
+ `this`
1043
+
1044
+ This Vec2 instance for method chaining.
1045
+
1046
+ ##### turnRight()
1047
+
1048
+ ```ts
1049
+ turnRight(): this;
1050
+ ```
1051
+
1052
+ Defined in: [vec2.ts:937](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L937)
1053
+
1054
+ Rotates this vector 90 degrees to the right.
1055
+
1056
+ ###### Returns
1057
+
1058
+ `this`
1059
+
1060
+ This Vec2 instance for method chaining.
1061
+
1062
+ ##### zero()
1063
+
1064
+ ```ts
1065
+ zero(): this;
1066
+ ```
1067
+
1068
+ Defined in: [vec2.ts:949](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L949)
1069
+
1070
+ Sets this vector to zero.
1071
+
1072
+ ###### Returns
1073
+
1074
+ `this`
1075
+
1076
+ This Vec2 instance for method chaining.
1077
+
1078
+ ##### add()
1079
+
1080
+ ```ts
1081
+ static add(v, w): Vec2;
1082
+ ```
1083
+
1084
+ Defined in: [vec2.ts:49](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L49)
1085
+
1086
+ Adds two vectors.
1087
+
1088
+ ###### Parameters
1089
+
1090
+ | Parameter | Type | Description |
1091
+ | ------ | ------ | ------ |
1092
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1093
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1094
+
1095
+ ###### Returns
1096
+
1097
+ [`Vec2`](#vec2)
1098
+
1099
+ A new Vec2 instance representing the sum.
1100
+
1101
+ ##### angleBetween()
1102
+
1103
+ ```ts
1104
+ static angleBetween(v, w): number;
1105
+ ```
1106
+
1107
+ Defined in: [vec2.ts:89](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L89)
1108
+
1109
+ Calculates the angle between two vectors.
1110
+
1111
+ ###### Parameters
1112
+
1113
+ | Parameter | Type | Description |
1114
+ | ------ | ------ | ------ |
1115
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1116
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1117
+
1118
+ ###### Returns
1119
+
1120
+ `number`
1121
+
1122
+ The angle between the vectors in radians.
1123
+
1124
+ ##### cross()
1125
+
1126
+ ```ts
1127
+ static cross(v, w): number;
1128
+ ```
1129
+
1130
+ Defined in: [vec2.ts:166](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L166)
1131
+
1132
+ Calculates the cross product of two vectors.
1133
+
1134
+ ###### Parameters
1135
+
1136
+ | Parameter | Type | Description |
1137
+ | ------ | ------ | ------ |
1138
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1139
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1140
+
1141
+ ###### Returns
1142
+
1143
+ `number`
1144
+
1145
+ The cross product scalar value.
1146
+
1147
+ ##### distance()
1148
+
1149
+ ```ts
1150
+ static distance(v, w): number;
1151
+ ```
1152
+
1153
+ Defined in: [vec2.ts:103](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L103)
1154
+
1155
+ Calculates the Euclidean distance between two vectors.
1156
+
1157
+ ###### Parameters
1158
+
1159
+ | Parameter | Type | Description |
1160
+ | ------ | ------ | ------ |
1161
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1162
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1163
+
1164
+ ###### Returns
1165
+
1166
+ `number`
1167
+
1168
+ The distance between the vectors.
1169
+
1170
+ ##### distanceChebyshev()
1171
+
1172
+ ```ts
1173
+ static distanceChebyshev(v, w): number;
1174
+ ```
1175
+
1176
+ Defined in: [vec2.ts:113](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L113)
1177
+
1178
+ Calculates the Chebyshev distance between two vectors.
1179
+
1180
+ ###### Parameters
1181
+
1182
+ | Parameter | Type | Description |
1183
+ | ------ | ------ | ------ |
1184
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1185
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1186
+
1187
+ ###### Returns
1188
+
1189
+ `number`
1190
+
1191
+ The Chebyshev distance between the vectors.
1192
+
1193
+ ##### distanceManhattan()
1194
+
1195
+ ```ts
1196
+ static distanceManhattan(v, w): number;
1197
+ ```
1198
+
1199
+ Defined in: [vec2.ts:125](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L125)
1200
+
1201
+ Calculates the Manhattan distance between two vectors.
1202
+
1203
+ ###### Parameters
1204
+
1205
+ | Parameter | Type | Description |
1206
+ | ------ | ------ | ------ |
1207
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1208
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1209
+
1210
+ ###### Returns
1211
+
1212
+ `number`
1213
+
1214
+ The Manhattan distance between the vectors.
1215
+
1216
+ ##### distanceMinkowski()
1217
+
1218
+ ```ts
1219
+ static distanceMinkowski(
1220
+ v,
1221
+ w,
1222
+ p): number;
1223
+ ```
1224
+
1225
+ Defined in: [vec2.ts:136](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L136)
1226
+
1227
+ Calculates the Minkowski distance between two vectors.
1228
+
1229
+ ###### Parameters
1230
+
1231
+ | Parameter | Type | Description |
1232
+ | ------ | ------ | ------ |
1233
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1234
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1235
+ | `p` | `number` | The order of the Minkowski distance. |
1236
+
1237
+ ###### Returns
1238
+
1239
+ `number`
1240
+
1241
+ The Minkowski distance between the vectors.
1242
+
1243
+ ##### distanceSq()
1244
+
1245
+ ```ts
1246
+ static distanceSq(v, w): number;
1247
+ ```
1248
+
1249
+ Defined in: [vec2.ts:146](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L146)
1250
+
1251
+ Calculates the squared Euclidean distance between two vectors.
1252
+
1253
+ ###### Parameters
1254
+
1255
+ | Parameter | Type | Description |
1256
+ | ------ | ------ | ------ |
1257
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1258
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1259
+
1260
+ ###### Returns
1261
+
1262
+ `number`
1263
+
1264
+ The squared distance between the vectors.
1265
+
1266
+ ##### divide()
1267
+
1268
+ ```ts
1269
+ static divide(v, w): Vec2;
1270
+ ```
1271
+
1272
+ Defined in: [vec2.ts:79](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L79)
1273
+
1274
+ Divides one vector with another.
1275
+
1276
+ ###### Parameters
1277
+
1278
+ | Parameter | Type | Description |
1279
+ | ------ | ------ | ------ |
1280
+ | `v` | [`Vec2`](#vec2) | Divident. |
1281
+ | `w` | [`Vec2`](#vec2) | Divisor. |
1282
+
1283
+ ###### Returns
1284
+
1285
+ [`Vec2`](#vec2)
1286
+
1287
+ A new Vec2 instance representing the divided value.
1288
+
1289
+ ##### dot()
1290
+
1291
+ ```ts
1292
+ static dot(v, w): number;
1293
+ ```
1294
+
1295
+ Defined in: [vec2.ts:156](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L156)
1296
+
1297
+ Calculates the dot product of two vectors.
1298
+
1299
+ ###### Parameters
1300
+
1301
+ | Parameter | Type | Description |
1302
+ | ------ | ------ | ------ |
1303
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1304
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1305
+
1306
+ ###### Returns
1307
+
1308
+ `number`
1309
+
1310
+ The dot product of the vectors.
1311
+
1312
+ ##### equals()
1313
+
1314
+ ```ts
1315
+ static equals(
1316
+ v,
1317
+ w,
1318
+ epsilon): boolean;
1319
+ ```
1320
+
1321
+ Defined in: [vec2.ts:383](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L383)
1322
+
1323
+ Compares a vector with another vector using an epsilon value for floating-point comparison.
1324
+
1325
+ ###### Parameters
1326
+
1327
+ | Parameter | Type | Default value | Description |
1328
+ | ------ | ------ | ------ | ------ |
1329
+ | `v` | [`Vec2`](#vec2) | `undefined` | The first vector. |
1330
+ | `w` | [`Vec2`](#vec2) | `undefined` | The second vector. |
1331
+ | `epsilon` | `number` | `Number.EPSILON` | The maximum difference between components to consider them equal. |
1332
+
1333
+ ###### Returns
1334
+
1335
+ `boolean`
1336
+
1337
+ True if the vectors are equal within epsilon, false otherwise.
1338
+
1339
+ ##### fromArray()
1340
+
1341
+ ```ts
1342
+ static fromArray(arr): Vec2;
1343
+ ```
1344
+
1345
+ Defined in: [vec2.ts:418](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L418)
1346
+
1347
+ Creates a Vec2 from an array.
1348
+
1349
+ ###### Parameters
1350
+
1351
+ | Parameter | Type | Description |
1352
+ | ------ | ------ | ------ |
1353
+ | `arr` | `number`[] \| \[`number`, `number`\] | An array containing the x and y coordinates. |
1354
+
1355
+ ###### Returns
1356
+
1357
+ [`Vec2`](#vec2)
1358
+
1359
+ A new Vec2 instance.
1360
+
1361
+ ##### fromJSON()
1362
+
1363
+ ```ts
1364
+ static fromJSON(json): Vec2;
1365
+ ```
1366
+
1367
+ Defined in: [vec2.ts:436](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L436)
1368
+
1369
+ Creates a Vec2 instance from a JSON-parsed object.
1370
+
1371
+ ###### Parameters
1372
+
1373
+ | Parameter | Type | Description |
1374
+ | ------ | ------ | ------ |
1375
+ | `json` | \{ `x`: `number`; `y`: `number`; \} | The JSON-parsed object containing x and y properties. |
1376
+ | `json.x` | `number` | - |
1377
+ | `json.y` | `number` | - |
1378
+
1379
+ ###### Returns
1380
+
1381
+ [`Vec2`](#vec2)
1382
+
1383
+ A new Vec2 instance.
1384
+
1385
+ ##### fromObject()
1386
+
1387
+ ```ts
1388
+ static fromObject(obj): Vec2;
1389
+ ```
1390
+
1391
+ Defined in: [vec2.ts:427](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L427)
1392
+
1393
+ Creates a Vec2 from an object with x and y properties.
1394
+
1395
+ ###### Parameters
1396
+
1397
+ | Parameter | Type | Description |
1398
+ | ------ | ------ | ------ |
1399
+ | `obj` | \{ `x`: `number`; `y`: `number`; \} | An object with x and y properties. |
1400
+ | `obj.x` | `number` | - |
1401
+ | `obj.y` | `number` | - |
1402
+
1403
+ ###### Returns
1404
+
1405
+ [`Vec2`](#vec2)
1406
+
1407
+ A new Vec2 instance.
1408
+
1409
+ ##### fromPolarCoords()
1410
+
1411
+ ```ts
1412
+ static fromPolarCoords(r, theta): Vec2;
1413
+ ```
1414
+
1415
+ Defined in: [vec2.ts:187](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L187)
1416
+
1417
+ Creates a Vec2 instance from polar coordinates.
1418
+
1419
+ ###### Parameters
1420
+
1421
+ | Parameter | Type | Description |
1422
+ | ------ | ------ | ------ |
1423
+ | `r` | `number` | The radius. |
1424
+ | `theta` | `number` | The angle in radians. |
1425
+
1426
+ ###### Returns
1427
+
1428
+ [`Vec2`](#vec2)
1429
+
1430
+ A new Vec2 instance.
1431
+
1432
+ ##### immutable()
1433
+
1434
+ ```ts
1435
+ static immutable(x, y): Readonly<{
1436
+ angleX: number;
1437
+ angleY: number;
1438
+ isInfinite: boolean;
1439
+ isNaN: boolean;
1440
+ isZero: boolean;
1441
+ magnitude: number;
1442
+ magnitudeSq: number;
1443
+ x: number;
1444
+ xy: readonly number[];
1445
+ y: number;
1446
+ }>;
1447
+ ```
1448
+
1449
+ Defined in: [vec2.ts:197](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L197)
1450
+
1451
+ Creates an immutable Vec2-like object.
1452
+
1453
+ ###### Parameters
1454
+
1455
+ | Parameter | Type | Default value | Description |
1456
+ | ------ | ------ | ------ | ------ |
1457
+ | `x` | `number` | `0` | The x-coordinate of the vector. |
1458
+ | `y` | `number` | `0` | The y-coordinate of the vector. |
1459
+
1460
+ ###### Returns
1461
+
1462
+ `Readonly`\<\{
1463
+ `angleX`: `number`;
1464
+ `angleY`: `number`;
1465
+ `isInfinite`: `boolean`;
1466
+ `isNaN`: `boolean`;
1467
+ `isZero`: `boolean`;
1468
+ `magnitude`: `number`;
1469
+ `magnitudeSq`: `number`;
1470
+ `x`: `number`;
1471
+ `xy`: readonly `number`[];
1472
+ `y`: `number`;
1473
+ \}\>
1474
+
1475
+ An immutable object with Vec2-like properties.
1476
+
1477
+ ##### isInfinite()
1478
+
1479
+ ```ts
1480
+ static isInfinite(v): boolean;
1481
+ ```
1482
+
1483
+ Defined in: [vec2.ts:267](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L267)
1484
+
1485
+ Checks if a vector has infinite components.
1486
+
1487
+ ###### Parameters
1488
+
1489
+ | Parameter | Type | Description |
1490
+ | ------ | ------ | ------ |
1491
+ | `v` | [`Vec2`](#vec2) | The vector to check. |
1492
+
1493
+ ###### Returns
1494
+
1495
+ `boolean`
1496
+
1497
+ True if the vector has infinite components, false otherwise.
1498
+
1499
+ ##### isNaN()
1500
+
1501
+ ```ts
1502
+ static isNaN(v): boolean;
1503
+ ```
1504
+
1505
+ Defined in: [vec2.ts:283](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L283)
1506
+
1507
+ Checks if a vector has NaN components.
1508
+
1509
+ ###### Parameters
1510
+
1511
+ | Parameter | Type | Description |
1512
+ | ------ | ------ | ------ |
1513
+ | `v` | [`Vec2`](#vec2) | The vector to check. |
1514
+
1515
+ ###### Returns
1516
+
1517
+ `boolean`
1518
+
1519
+ True if the vector has NaN components, false otherwise.
1520
+
1521
+ ##### isZero()
1522
+
1523
+ ```ts
1524
+ static isZero(v): boolean;
1525
+ ```
1526
+
1527
+ Defined in: [vec2.ts:292](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L292)
1528
+
1529
+ Checks if a vector is zero.
1530
+
1531
+ ###### Parameters
1532
+
1533
+ | Parameter | Type | Description |
1534
+ | ------ | ------ | ------ |
1535
+ | `v` | [`Vec2`](#vec2) | The vector to check. |
1536
+
1537
+ ###### Returns
1538
+
1539
+ `boolean`
1540
+
1541
+ True if the vector is zero, false otherwise.
1542
+
1543
+ ##### lerp()
1544
+
1545
+ ```ts
1546
+ static lerp(
1547
+ v,
1548
+ w,
1549
+ t): Vec2;
1550
+ ```
1551
+
1552
+ Defined in: [vec2.ts:303](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L303)
1553
+
1554
+ Performs linear interpolation between two vectors.
1555
+
1556
+ ###### Parameters
1557
+
1558
+ | Parameter | Type | Description |
1559
+ | ------ | ------ | ------ |
1560
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1561
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1562
+ | `t` | `number` | The interpolation parameter (0 to 1). |
1563
+
1564
+ ###### Returns
1565
+
1566
+ [`Vec2`](#vec2)
1567
+
1568
+ A new Vec2 instance representing the interpolated vector.
1569
+
1570
+ ##### multiply()
1571
+
1572
+ ```ts
1573
+ static multiply(v, w): Vec2;
1574
+ ```
1575
+
1576
+ Defined in: [vec2.ts:69](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L69)
1577
+
1578
+ Multiplies one vector with another.
1579
+
1580
+ ###### Parameters
1581
+
1582
+ | Parameter | Type | Description |
1583
+ | ------ | ------ | ------ |
1584
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1585
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1586
+
1587
+ ###### Returns
1588
+
1589
+ [`Vec2`](#vec2)
1590
+
1591
+ A new Vec2 instance representing the multiplied value.
1592
+
1593
+ ##### negate()
1594
+
1595
+ ```ts
1596
+ static negate(v): Vec2;
1597
+ ```
1598
+
1599
+ Defined in: [vec2.ts:316](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L316)
1600
+
1601
+ Negates a vector.
1602
+
1603
+ ###### Parameters
1604
+
1605
+ | Parameter | Type | Description |
1606
+ | ------ | ------ | ------ |
1607
+ | `v` | [`Vec2`](#vec2) | The vector to negate. |
1608
+
1609
+ ###### Returns
1610
+
1611
+ [`Vec2`](#vec2)
1612
+
1613
+ A new Vec2 instance representing the negated vector.
1614
+
1615
+ ##### normalize()
1616
+
1617
+ ```ts
1618
+ static normalize(v): Vec2;
1619
+ ```
1620
+
1621
+ Defined in: [vec2.ts:325](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L325)
1622
+
1623
+ Normalizes a vector.
1624
+
1625
+ ###### Parameters
1626
+
1627
+ | Parameter | Type | Description |
1628
+ | ------ | ------ | ------ |
1629
+ | `v` | [`Vec2`](#vec2) | The vector to normalize. |
1630
+
1631
+ ###### Returns
1632
+
1633
+ [`Vec2`](#vec2)
1634
+
1635
+ A new Vec2 instance representing the normalized vector.
1636
+
1637
+ ##### one()
1638
+
1639
+ ```ts
1640
+ static one(): Vec2;
1641
+ ```
1642
+
1643
+ Defined in: [vec2.ts:409](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L409)
1644
+
1645
+ Creates a vector with all components set to 1.0.
1646
+
1647
+ ###### Returns
1648
+
1649
+ [`Vec2`](#vec2)
1650
+
1651
+ A new Vec2 instance representing a vector with all components set to 1.0.
1652
+
1653
+ ##### project()
1654
+
1655
+ ```ts
1656
+ static project(v, w): Vec2;
1657
+ ```
1658
+
1659
+ Defined in: [vec2.ts:336](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L336)
1660
+
1661
+ Projects one vector onto another.
1662
+
1663
+ ###### Parameters
1664
+
1665
+ | Parameter | Type | Description |
1666
+ | ------ | ------ | ------ |
1667
+ | `v` | [`Vec2`](#vec2) | The vector to project. |
1668
+ | `w` | [`Vec2`](#vec2) | The vector to project onto. |
1669
+
1670
+ ###### Returns
1671
+
1672
+ [`Vec2`](#vec2)
1673
+
1674
+ A new Vec2 instance representing the projected vector.
1675
+
1676
+ ##### random()
1677
+
1678
+ ```ts
1679
+ static random(random): Vec2;
1680
+ ```
1681
+
1682
+ Defined in: [vec2.ts:351](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L351)
1683
+
1684
+ Creates a random unit vector.
1685
+
1686
+ ###### Parameters
1687
+
1688
+ | Parameter | Type | Default value | Description |
1689
+ | ------ | ------ | ------ | ------ |
1690
+ | `random` | () => `number` | `Math.random` | A function that returns a random number between 0 and 1. |
1691
+
1692
+ ###### Returns
1693
+
1694
+ [`Vec2`](#vec2)
1695
+
1696
+ A new Vec2 instance representing a random unit vector.
1697
+
1698
+ ##### reflect()
1699
+
1700
+ ```ts
1701
+ static reflect(v, normal): Vec2;
1702
+ ```
1703
+
1704
+ Defined in: [vec2.ts:176](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L176)
1705
+
1706
+ Reflects the vector across a normal vector.
1707
+
1708
+ ###### Parameters
1709
+
1710
+ | Parameter | Type | Description |
1711
+ | ------ | ------ | ------ |
1712
+ | `v` | [`Vec2`](#vec2) | The vector to reflect. |
1713
+ | `normal` | [`Vec2`](#vec2) | The normal vector to reflect across (must be normalized). |
1714
+
1715
+ ###### Returns
1716
+
1717
+ [`Vec2`](#vec2)
1718
+
1719
+ A new Vec2 instance representing the reflected vector.
1720
+
1721
+ ##### satisfyEquality()
1722
+
1723
+ ```ts
1724
+ static satisfyEquality(v, w): boolean;
1725
+ ```
1726
+
1727
+ Defined in: [vec2.ts:362](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L362)
1728
+
1729
+ Checks if two vectors are equal.
1730
+
1731
+ ###### Parameters
1732
+
1733
+ | Parameter | Type | Description |
1734
+ | ------ | ------ | ------ |
1735
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1736
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1737
+
1738
+ ###### Returns
1739
+
1740
+ `boolean`
1741
+
1742
+ True if the vectors are equal, false otherwise.
1743
+
1744
+ ##### satisfyOpposition()
1745
+
1746
+ ```ts
1747
+ static satisfyOpposition(v, w): boolean;
1748
+ ```
1749
+
1750
+ Defined in: [vec2.ts:372](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L372)
1751
+
1752
+ Checks if two vectors are opposite.
1753
+
1754
+ ###### Parameters
1755
+
1756
+ | Parameter | Type | Description |
1757
+ | ------ | ------ | ------ |
1758
+ | `v` | [`Vec2`](#vec2) | The first vector. |
1759
+ | `w` | [`Vec2`](#vec2) | The second vector. |
1760
+
1761
+ ###### Returns
1762
+
1763
+ `boolean`
1764
+
1765
+ True if the vectors are opposite, false otherwise.
1766
+
1767
+ ##### scale()
1768
+
1769
+ ```ts
1770
+ static scale(v, c): Vec2;
1771
+ ```
1772
+
1773
+ Defined in: [vec2.ts:393](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L393)
1774
+
1775
+ Scales a vector by a scalar value.
1776
+
1777
+ ###### Parameters
1778
+
1779
+ | Parameter | Type | Description |
1780
+ | ------ | ------ | ------ |
1781
+ | `v` | [`Vec2`](#vec2) | The vector to scale. |
1782
+ | `c` | `number` | The scalar value. |
1783
+
1784
+ ###### Returns
1785
+
1786
+ [`Vec2`](#vec2)
1787
+
1788
+ A new Vec2 instance representing the scaled vector.
1789
+
1790
+ ##### subtract()
1791
+
1792
+ ```ts
1793
+ static subtract(v, w): Vec2;
1794
+ ```
1795
+
1796
+ Defined in: [vec2.ts:59](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L59)
1797
+
1798
+ Subtracts one vector from another.
1799
+
1800
+ ###### Parameters
1801
+
1802
+ | Parameter | Type | Description |
1803
+ | ------ | ------ | ------ |
1804
+ | `v` | [`Vec2`](#vec2) | The vector to subtract from. |
1805
+ | `w` | [`Vec2`](#vec2) | The vector to subtract. |
1806
+
1807
+ ###### Returns
1808
+
1809
+ [`Vec2`](#vec2)
1810
+
1811
+ A new Vec2 instance representing the difference.
1812
+
1813
+ ##### zero()
1814
+
1815
+ ```ts
1816
+ static zero(): Vec2;
1817
+ ```
1818
+
1819
+ Defined in: [vec2.ts:401](https://github.com/claus-codes/vec/blob/1a991556255e5555afd05799362abaa631fc20cc/src/vec2.ts#L401)
1820
+
1821
+ Creates a zero vector.
1822
+
1823
+ ###### Returns
1824
+
1825
+ [`Vec2`](#vec2)
1826
+
1827
+ A new Vec2 instance representing a zero vector.