@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
@@ -1,72 +1,74 @@
1
1
  /**
2
- * Represents a 4D vector with various operations.
2
+ * Documentation for 2D Vector class.
3
+ * @module Vec2
3
4
  */
4
- export declare class Vec4 {
5
+ /**
6
+ * Represents a 2D vector with various operations.
7
+ */
8
+ export declare class Vec2 {
5
9
  #private;
6
10
  /**
7
- * Creates a new Vec4 instance.
8
- * @param x - The x-coordinate of the vector.
9
- * @param y - The y-coordinate of the vector.
10
- * @param z - The z-coordinate of the vector.
11
- * @param w - The w-coordinate of the vector.
11
+ * Creates a new Vec2 instance.
12
+ * @param {number} x - The x-coordinate of the vector.
13
+ * @param {number} y - The y-coordinate of the vector.
12
14
  */
13
- constructor(x?: number, y?: number, z?: number, w?: number);
15
+ constructor(x?: number, y?: number);
14
16
  /**
15
17
  * Adds two vectors.
16
18
  * @param v - The first vector.
17
19
  * @param w - The second vector.
18
- * @returns A new Vec3 instance representing the sum.
20
+ * @returns A new Vec2 instance representing the sum.
19
21
  */
20
- static add(v: Vec4, w: Vec4): Vec4;
22
+ static add(v: Vec2, w: Vec2): Vec2;
21
23
  /**
22
24
  * Subtracts one vector from another.
23
25
  * @param v - The vector to subtract from.
24
26
  * @param w - The vector to subtract.
25
27
  * @returns A new Vec2 instance representing the difference.
26
28
  */
27
- static subtract(v: Vec4, w: Vec4): Vec4;
29
+ static subtract(v: Vec2, w: Vec2): Vec2;
28
30
  /**
29
31
  * Multiplies one vector with another.
30
32
  * @param v - The first vector.
31
33
  * @param w - The second vector.
32
- * @returns A new Vec4 instance representing the multiplied value.
34
+ * @returns A new Vec2 instance representing the multiplied value.
33
35
  */
34
- static multiply(v: Vec4, w: Vec4): Vec4;
36
+ static multiply(v: Vec2, w: Vec2): Vec2;
35
37
  /**
36
38
  * Divides one vector with another.
37
39
  * @param v - Divident.
38
40
  * @param w - Divisor.
39
- * @returns A new Vec4 instance representing the divided value.
41
+ * @returns A new Vec2 instance representing the divided value.
40
42
  */
41
- static divide(v: Vec4, w: Vec4): Vec4;
43
+ static divide(v: Vec2, w: Vec2): Vec2;
42
44
  /**
43
45
  * Calculates the angle between two vectors.
44
46
  * @param v - The first vector.
45
47
  * @param w - The second vector.
46
48
  * @returns The angle between the vectors in radians.
47
49
  */
48
- static angleBetween(v: Vec4, w: Vec4): number;
50
+ static angleBetween(v: Vec2, w: Vec2): number;
49
51
  /**
50
52
  * Calculates the Euclidean distance between two vectors.
51
53
  * @param v - The first vector.
52
54
  * @param w - The second vector.
53
55
  * @returns The distance between the vectors.
54
56
  */
55
- static distance(v: Vec4, w: Vec4): number;
57
+ static distance(v: Vec2, w: Vec2): number;
56
58
  /**
57
59
  * Calculates the Chebyshev distance between two vectors.
58
60
  * @param v - The first vector.
59
61
  * @param w - The second vector.
60
62
  * @returns The Chebyshev distance between the vectors.
61
63
  */
62
- static distanceChebyshev(v: Vec4, w: Vec4): number;
64
+ static distanceChebyshev(v: Vec2, w: Vec2): number;
63
65
  /**
64
66
  * Calculates the Manhattan distance between two vectors.
65
67
  * @param v - The first vector.
66
68
  * @param w - The second vector.
67
69
  * @returns The Manhattan distance between the vectors.
68
70
  */
69
- static distanceManhattan(v: Vec4, w: Vec4): number;
71
+ static distanceManhattan(v: Vec2, w: Vec2): number;
70
72
  /**
71
73
  * Calculates the Minkowski distance between two vectors.
72
74
  * @param v - The first vector.
@@ -74,69 +76,78 @@ export declare class Vec4 {
74
76
  * @param p - The order of the Minkowski distance.
75
77
  * @returns The Minkowski distance between the vectors.
76
78
  */
77
- static distanceMinkowski(v: Vec4, w: Vec4, p: number): number;
79
+ static distanceMinkowski(v: Vec2, w: Vec2, p: number): number;
78
80
  /**
79
81
  * Calculates the squared Euclidean distance between two vectors.
80
82
  * @param v - The first vector.
81
83
  * @param w - The second vector.
82
84
  * @returns The squared distance between the vectors.
83
85
  */
84
- static distanceSq(v: Vec4, w: Vec4): number;
86
+ static distanceSq(v: Vec2, w: Vec2): number;
85
87
  /**
86
88
  * Calculates the dot product of two vectors.
87
89
  * @param v - The first vector.
88
90
  * @param w - The second vector.
89
- * @returns The dot product of the two vectors.
91
+ * @returns The dot product of the vectors.
92
+ */
93
+ static dot(v: Vec2, w: Vec2): number;
94
+ /**
95
+ * Calculates the cross product of two vectors.
96
+ * @param v - The first vector.
97
+ * @param w - The second vector.
98
+ * @returns The cross product scalar value.
90
99
  */
91
- static dot(v: Vec4, w: Vec4): number;
100
+ static cross(v: Vec2, w: Vec2): number;
92
101
  /**
93
- * Reflects a vector across a normal vector.
94
- * The normal vector should be normalized (unit length).
102
+ * Reflects the vector across a normal vector.
95
103
  * @param v - The vector to reflect.
96
104
  * @param normal - The normal vector to reflect across (must be normalized).
97
- * @returns A new Vec4 instance representing the reflected vector.
105
+ * @returns A new Vec2 instance representing the reflected vector.
106
+ */
107
+ static reflect(v: Vec2, normal: Vec2): Vec2;
108
+ /**
109
+ * Creates a Vec2 instance from polar coordinates.
110
+ * @param r - The radius.
111
+ * @param theta - The angle in radians.
112
+ * @returns A new Vec2 instance.
98
113
  */
99
- static reflect(v: Vec4, normal: Vec4): Vec4;
114
+ static fromPolarCoords(r: number, theta: number): Vec2;
100
115
  /**
101
- * Creates an immutable Vec4-like object.
116
+ * Creates an immutable Vec2-like object.
102
117
  * @param x - The x-coordinate of the vector.
103
118
  * @param y - The y-coordinate of the vector.
104
- * @returns An immutable object with Vec4-like properties.
105
- */
106
- static immutable(x?: number, y?: number, z?: number, w?: number): {
107
- readonly x: number;
108
- readonly y: number;
109
- readonly z: number;
110
- readonly w: number;
111
- readonly xyzw: readonly number[];
112
- readonly magnitude: number;
113
- readonly magnitudeSq: number;
114
- readonly angleW: number;
115
- readonly angleX: number;
116
- readonly angleY: number;
117
- readonly angleZ: number;
118
- readonly isInfinite: boolean;
119
- readonly isNaN: boolean;
120
- readonly isZero: boolean;
121
- };
119
+ * @returns An immutable object with Vec2-like properties.
120
+ */
121
+ static immutable(x?: number, y?: number): Readonly<{
122
+ angleX: number;
123
+ angleY: number;
124
+ isInfinite: boolean;
125
+ isNaN: boolean;
126
+ isZero: boolean;
127
+ magnitude: number;
128
+ magnitudeSq: number;
129
+ x: number;
130
+ xy: readonly number[];
131
+ y: number;
132
+ }>;
122
133
  /**
123
134
  * Checks if a vector has infinite components.
124
135
  * @param v - The vector to check.
125
136
  * @returns True if the vector has infinite components, false otherwise.
126
137
  */
127
- static isInfinite(v: Vec4): boolean;
138
+ static isInfinite(v: Vec2): boolean;
128
139
  /**
129
140
  * Checks if a vector has NaN components.
130
141
  * @param v - The vector to check.
131
142
  * @returns True if the vector has NaN components, false otherwise.
132
143
  */
133
- static isNaN(v: Vec4): boolean;
144
+ static isNaN(v: Vec2): boolean;
134
145
  /**
135
146
  * Checks if a vector is zero.
136
147
  * @param v - The vector to check.
137
148
  * @returns True if the vector is zero, false otherwise.
138
149
  */
139
- static isZero(v: Vec4): boolean;
150
+ static isZero(v: Vec2): boolean;
140
151
  /**
141
152
  * Performs linear interpolation between two vectors.
142
153
  * @param v - The first vector.
@@ -144,46 +155,46 @@ export declare class Vec4 {
144
155
  * @param t - The interpolation parameter (0 to 1).
145
156
  * @returns A new Vec2 instance representing the interpolated vector.
146
157
  */
147
- static lerp(v: Vec4, w: Vec4, t: number): Vec4;
158
+ static lerp(v: Vec2, w: Vec2, t: number): Vec2;
148
159
  /**
149
160
  * Negates a vector.
150
161
  * @param v - The vector to negate.
151
162
  * @returns A new Vec2 instance representing the negated vector.
152
163
  */
153
- static negate(v: Vec4): Vec4;
164
+ static negate(v: Vec2): Vec2;
154
165
  /**
155
166
  * Normalizes a vector.
156
167
  * @param v - The vector to normalize.
157
168
  * @returns A new Vec2 instance representing the normalized vector.
158
169
  */
159
- static normalize(v: Vec4): Vec4;
170
+ static normalize(v: Vec2): Vec2;
160
171
  /**
161
172
  * Projects one vector onto another.
162
173
  * @param v - The vector to project.
163
174
  * @param w - The vector to project onto.
164
175
  * @returns A new Vec2 instance representing the projected vector.
165
176
  */
166
- static project(v: Vec4, w: Vec4): Vec4;
177
+ static project(v: Vec2, w: Vec2): Vec2;
167
178
  /**
168
179
  * Creates a random unit vector.
169
180
  * @param random - A function that returns a random number between 0 and 1.
170
- * @returns A new Vec4 instance representing a random unit vector.
181
+ * @returns A new Vec2 instance representing a random unit vector.
171
182
  */
172
- static random(random?: () => number): Vec4;
183
+ static random(random?: () => number): Vec2;
173
184
  /**
174
185
  * Checks if two vectors are equal.
175
186
  * @param v - The first vector.
176
187
  * @param w - The second vector.
177
188
  * @returns True if the vectors are equal, false otherwise.
178
189
  */
179
- static satisfyEquality(v: Vec4, w: Vec4): boolean;
190
+ static satisfyEquality(v: Vec2, w: Vec2): boolean;
180
191
  /**
181
192
  * Checks if two vectors are opposite.
182
193
  * @param v - The first vector.
183
194
  * @param w - The second vector.
184
195
  * @returns True if the vectors are opposite, false otherwise.
185
196
  */
186
- static satisfyOpposition(v: Vec4, w: Vec4): boolean;
197
+ static satisfyOpposition(v: Vec2, w: Vec2): boolean;
187
198
  /**
188
199
  * Compares a vector with another vector using an epsilon value for floating-point comparison.
189
200
  * @param v - The first vector.
@@ -191,50 +202,48 @@ export declare class Vec4 {
191
202
  * @param epsilon - The maximum difference between components to consider them equal.
192
203
  * @returns True if the vectors are equal within epsilon, false otherwise.
193
204
  */
194
- static equals(v: Vec4, w: Vec4, epsilon?: number): boolean;
205
+ static equals(v: Vec2, w: Vec2, epsilon?: number): boolean;
195
206
  /**
196
207
  * Scales a vector by a scalar value.
197
208
  * @param v - The vector to scale.
198
209
  * @param c - The scalar value.
199
210
  * @returns A new Vec2 instance representing the scaled vector.
200
211
  */
201
- static scale(v: Vec4, c: number): Vec4;
212
+ static scale(v: Vec2, c: number): Vec2;
202
213
  /**
203
214
  * Creates a zero vector.
204
- * @returns A new Vec4 instance representing a zero vector.
215
+ * @returns A new Vec2 instance representing a zero vector.
205
216
  */
206
- static zero(): Vec4;
217
+ static zero(): Vec2;
207
218
  /**
208
219
  * Creates a vector with all components set to 1.0.
209
- * @returns A new Vec4 instance representing a vector with all components set to 1.0.
220
+ * @returns A new Vec2 instance representing a vector with all components set to 1.0.
210
221
  */
211
- static one(): Vec4;
222
+ static one(): Vec2;
212
223
  /**
213
- * Creates a Vec4 from an array.
214
- * @returns A new Vec4 instance.
224
+ * Creates a Vec2 from an array.
225
+ * @param {[number, number] | number[]} arr - An array containing the x and y coordinates.
226
+ * @returns {Vec2} A new Vec2 instance.
215
227
  */
216
- static fromArray(arr: [number, number, number, number] | number[]): Vec4;
228
+ static fromArray(arr: [number, number] | number[]): Vec2;
217
229
  /**
218
- * Creates a Vec4 from an object with x, y, z and w properties.
219
- * @returns A new Vec4 instance.
230
+ * Creates a Vec2 from an object with x and y properties.
231
+ * @param {{ x: number; y: number }} obj - An object with x and y properties.
232
+ * @returns {Vec2} A new Vec2 instance.
220
233
  */
221
234
  static fromObject(obj: {
222
235
  x: number;
223
236
  y: number;
224
- z: number;
225
- w: number;
226
- }): Vec4;
237
+ }): Vec2;
227
238
  /**
228
- * Creates a Vec3 instance from a JSON-parsed object.
239
+ * Creates a Vec2 instance from a JSON-parsed object.
229
240
  * @param json - The JSON-parsed object containing x and y properties.
230
- * @returns A new Vec4 instance.
241
+ * @returns A new Vec2 instance.
231
242
  */
232
243
  static fromJSON(json: {
233
244
  x: number;
234
245
  y: number;
235
- z: number;
236
- w: number;
237
- }): Vec4;
246
+ }): Vec2;
238
247
  /**
239
248
  * Gets the x-component of the vector.
240
249
  * @returns The x-component.
@@ -251,168 +260,153 @@ export declare class Vec4 {
251
260
  */
252
261
  get y(): number;
253
262
  /**
254
- * Sets the z-component of the vector.
255
- * @param y - The new z-component.
263
+ * Sets the y-component of the vector.
264
+ * @param y - The new y-component.
256
265
  */
257
266
  set y(y: number);
258
- /**
259
- * Gets the z-component of the vector.
260
- * @returns The z-component.
261
- */
262
- get z(): number;
263
- /**
264
- * Sets the z-component of the vector.
265
- * @param z - The new z-component.
266
- */
267
- set z(z: number);
268
- /**
269
- * Gets the w-component of the vector.
270
- * @returns The w-component.
271
- */
272
- get w(): number;
273
- /**
274
- * Sets the w-component of the vector.
275
- * @param w - The new w-component.
276
- */
277
- set w(w: number);
278
267
  /**
279
268
  * Gets a copy of the vector's components as an array.
280
- * @returns An array containing the x, y, z and w components of the vector.
269
+ * @returns An array containing the x and y components of the vector.
281
270
  */
282
- get xyzw(): [number, number, number, number];
271
+ get xy(): [number, number];
283
272
  /**
284
273
  * Sets both components of the vector at once.
285
- * @param xyzw - An array containing the new x, y and z components.
274
+ * @param xy - An array containing the new x and y components.
286
275
  */
287
- set xyzw(xyzw: [number, number, number, number] | number[]);
276
+ set xy(xy: [number, number] | number[]);
288
277
  /**
289
278
  * Gets the angle between the vector and the positive x-axis in radians.
290
279
  * @returns The angle in radians, always in the range [0, 2π).
291
280
  */
292
281
  get angleX(): number;
282
+ /**
283
+ * Sets the angle between the vector and the positive x-axis, maintaining the vector's magnitude.
284
+ * @param phi - The new angle in radians.
285
+ */
286
+ set angleX(phi: number);
293
287
  /**
294
288
  * Gets the angle between the vector and the positive y-axis in radians.
295
289
  * @returns The angle in radians, always in the range [0, 2π).
296
290
  */
297
291
  get angleY(): number;
298
292
  /**
299
- * Gets the angle between the vector and the positive z-axis in radians.
300
- * @returns The angle in radians, always in the range [0, 2π).
293
+ * Sets the angle between the vector and the positive y-axis, maintaining the vector's magnitude.
294
+ * @param phi - The new angle in radians.
301
295
  */
302
- get angleZ(): number;
296
+ set angleY(phi: number);
303
297
  /**
304
- * Gets the angle between the vector and the positive w-axis in radians.
305
- * @returns The angle in radians, always in the range [0, 2π).
298
+ * Gets the magnitude (length) of the vector.
299
+ * @returns The magnitude of the vector.
306
300
  */
307
- get angleW(): number;
301
+ get magnitude(): number;
308
302
  /**
309
303
  * Sets the magnitude (length) of the vector, maintaining its direction.
310
304
  * @param m - The new magnitude.
311
305
  */
312
- get magnitude(): number;
306
+ set magnitude(m: number);
313
307
  /**
314
308
  * Gets the squared magnitude of the vector.
315
309
  * This is faster to compute than the actual magnitude and is useful for comparisons.
316
310
  * @returns The squared magnitude of the vector.
317
311
  */
318
312
  get magnitudeSq(): number;
319
- /**
320
- * Sets the magnitude (length) of the vector, maintaining its direction.
321
- * @param m - The new magnitude.
322
- */
323
- set magnitude(m: number);
324
313
  /**
325
314
  * Adds another vector to this vector.
326
315
  * @param v - The vector to add.
327
- * @returns This Vec4 instance for method chaining.
316
+ * @returns This Vec2 instance for method chaining.
328
317
  */
329
- add(v: Vec4): this;
318
+ add(v: Vec2): this;
330
319
  /**
331
320
  * Subtracts another vector from this vector.
332
321
  * @param v - The vector to subtract.
333
- * @returns This Vec4 instance for method chaining.
322
+ * @returns This Vec2 instance for method chaining.
334
323
  */
335
- subtract(v: Vec4): this;
324
+ subtract(v: Vec2): this;
336
325
  /**
337
326
  * Multiplies this vector with another vector.
338
327
  * @param v - The vector to multiply with.
339
- * @returns This Vec4 instance for method chaining.
328
+ * @returns This Vec2 instance for method chaining.
340
329
  */
341
- multiply(v: Vec4): this;
330
+ multiply(v: Vec2): this;
342
331
  /**
343
332
  * Divides this vector with another vector.
344
333
  * @param v - The vector to divide with.
345
- * @returns This Vec4 instance for method chaining.
334
+ * @returns This Vec2 instance for method chaining.
346
335
  */
347
- divide(v: Vec4): this;
336
+ divide(v: Vec2): this;
348
337
  /**
349
338
  * Calculates the angle between this vector and another vector.
350
339
  * @param v - The other vector.
351
340
  * @returns The angle between the vectors in radians.
352
341
  */
353
- angleBetween(v: Vec4): number;
342
+ angleBetween(v: Vec2): number;
354
343
  /**
355
344
  * Clamps the magnitude of this vector between a minimum and maximum value.
356
345
  * @param min - The minimum magnitude.
357
346
  * @param max - The maximum magnitude.
358
- * @returns This Vec4 instance for method chaining.
347
+ * @returns This Vec2 instance for method chaining.
359
348
  */
360
349
  clamp(min: number, max: number): this;
361
350
  /**
362
351
  * Creates a copy of this vector.
363
- * @returns A new Vec4 instance with the same components.
352
+ * @returns A new Vec2 instance with the same components.
364
353
  */
365
- clone(): Vec4;
354
+ clone(): Vec2;
366
355
  /**
367
356
  * Copies the components of another vector to this vector.
368
357
  * @param v - The vector to copy from.
369
358
  * @returns This Vec2 instance for method chaining.
370
359
  */
371
- copy(v: Vec4): this;
360
+ copy(v: Vec2): this;
372
361
  /**
373
362
  * Calculates the distance between this vector and another vector.
374
363
  * @param v - The other vector.
375
364
  * @returns The distance between the vectors.
376
365
  */
377
- distance(v: Vec4): number;
366
+ distance(v: Vec2): number;
378
367
  /**
379
368
  * Calculates the Chebyshev distance between this vector and another vector.
380
- * @param v - The first vector.
369
+ * @param v - The other vector.
381
370
  * @returns The Chebyshev distance between the vectors.
382
371
  */
383
- distanceChebyshev(v: Vec4): number;
372
+ distanceChebyshev(v: Vec2): number;
384
373
  /**
385
374
  * Calculates the Manhattan distance between this vector and another vector.
386
375
  * @param v - The other vector.
387
376
  * @returns The Manhattan distance between the vectors.
388
377
  */
389
- distanceManhattan(v: Vec4): number;
378
+ distanceManhattan(v: Vec2): number;
390
379
  /**
391
- * Calculates the Minkowski distance between thisvector and another vector.
380
+ * Calculates the Minkowski distance between this vector and another vector.
392
381
  * @param v - The other vector.
393
382
  * @param p - The order of the Minkowski distance.
394
383
  * @returns The Minkowski distance between the vectors.
395
384
  */
396
- distanceMinkowski(v: Vec4, p: number): number;
385
+ distanceMinkowski(v: Vec2, p: number): number;
397
386
  /**
398
387
  * Calculates the squared distance between this vector and another vector.
399
388
  * @param v - The other vector.
400
389
  * @returns The squared distance between the vectors.
401
390
  */
402
- distanceSq(v: Vec4): number;
391
+ distanceSq(v: Vec2): number;
403
392
  /**
404
393
  * Calculates the dot product of this vector with another vector.
405
394
  * @param v - The other vector.
406
395
  * @returns The dot product of the vectors.
407
396
  */
408
- dot(v: Vec4): number;
397
+ dot(v: Vec2): number;
398
+ /**
399
+ * Calculates the cross product of this vector with another vector.
400
+ * @param v - The other vector.
401
+ * @returns The cross product of the vectors.
402
+ */
403
+ cross(v: Vec2): number;
409
404
  /**
410
405
  * Reflects this vector across a normal vector.
411
- * The normal vector should be normalized (unit length).
412
406
  * @param normal - The normal vector to reflect across (must be normalized).
413
- * @returns This Vec4 instance for method chaining.
407
+ * @returns A new Vec2 instance representing the reflected vector.
414
408
  */
415
- reflect(normal: Vec4): this;
409
+ reflect(normal: Vec2): Vec2;
416
410
  /**
417
411
  * Checks if this vector has infinite components.
418
412
  * @returns True if the vector has infinite components, false otherwise.
@@ -437,86 +431,100 @@ export declare class Vec4 {
437
431
  /**
438
432
  * Limits the minimum magnitude of this vector.
439
433
  * @param min - The minimum magnitude.
440
- * @returns This Vec4 instance for method chaining.
434
+ * @returns This Vec2 instance for method chaining.
441
435
  */
442
436
  limitMin(min: number): this;
443
437
  /**
444
438
  * Sets this vector to point towards another vector.
445
439
  * @param v - The vector to look at.
446
- * @returns This Vec4 instance for method chaining.
440
+ * @returns This Vec2 instance for method chaining.
447
441
  */
448
- lookAt(v: Vec4): this;
442
+ lookAt(v: Vec2): this;
449
443
  /**
450
444
  * Negates this vector.
451
- * @returns This Vec4 instance for method chaining.
445
+ * @returns This Vec2 instance for method chaining.
452
446
  */
453
447
  negate(): this;
454
448
  /**
455
449
  * Normalizes this vector.
456
- * @returns This Ve4 instance for method chaining.
450
+ * @returns This Vec2 instance for method chaining.
457
451
  */
458
452
  normalize(): this;
459
453
  /**
460
454
  * Projects this vector onto another vector.
461
455
  * @param v - The vector to project onto.
462
- * @returns This Vec4 instance for method chaining.
456
+ * @returns This Vec2 instance for method chaining.
463
457
  */
464
- project(v: Vec4): this;
458
+ project(v: Vec2): this;
465
459
  /**
466
460
  * Sets this vector to a random direction with the same magnitude.
467
461
  * @param random - A function that returns a random number between 0 and 1.
468
- * @returns This Vec4 instance for method chaining.
462
+ * @returns This Vec2 instance for method chaining.
469
463
  */
470
464
  random(random?: () => number): this;
465
+ /**
466
+ * Rotates this vector around the Z-axis.
467
+ * @param phi - The angle of rotation in radians.
468
+ * @returns This Vec2 instance for method chaining.
469
+ */
470
+ rotateZ(phi: number): this;
471
471
  /**
472
472
  * Checks if this vector is equal to another vector.
473
473
  * @param v - The other vector.
474
474
  * @returns True if the vectors are equal, false otherwise.
475
475
  */
476
- satisfyEquality(v: Vec4): boolean;
476
+ satisfyEquality(v: Vec2): boolean;
477
477
  /**
478
478
  * Checks if this vector is opposite to another vector.
479
479
  * @param v - The other vector.
480
480
  * @returns True if the vectors are opposite, false otherwise.
481
481
  */
482
- satisfyOpposition(v: Vec4): boolean;
482
+ satisfyOpposition(v: Vec2): boolean;
483
483
  /**
484
484
  * Compares this vector with another vector using an epsilon value for floating-point comparison.
485
485
  * @param v - The vector to compare with.
486
486
  * @param epsilon - The maximum difference between components to consider them equal.
487
487
  * @returns True if the vectors are equal within epsilon, false otherwise.
488
488
  */
489
- equals(v: Vec4, epsilon?: number): boolean;
489
+ equals(v: Vec2, epsilon?: number): boolean;
490
490
  /**
491
491
  * Scales this vector by a scalar value.
492
492
  * @param c - The scalar value.
493
- * @returns This Vec4 instance for method chaining.
493
+ * @returns This Vec2 instance for method chaining.
494
494
  */
495
495
  scale(c: number): this;
496
+ /**
497
+ * Rotates this vector 90 degrees to the left.
498
+ * @returns This Vec2 instance for method chaining.
499
+ */
500
+ turnLeft(): this;
501
+ /**
502
+ * Rotates this vector 90 degrees to the right.
503
+ * @returns This Vec2 instance for method chaining.
504
+ */
505
+ turnRight(): this;
496
506
  /**
497
507
  * Sets this vector to zero.
498
- * @returns This Vec4 instance for method chaining.
508
+ * @returns This Vec2 instance for method chaining.
499
509
  */
500
510
  zero(): this;
501
511
  /**
502
- * Makes the Vec4 instance iterable.
503
- * @yields The x, y, z and w components of the vector.
512
+ * Makes the Vec2 instance iterable.
513
+ * @yields The x and y components of the vector.
504
514
  */
505
515
  [Symbol.iterator](): IterableIterator<number>;
506
516
  /**
507
517
  * Returns a string representation of the vector.
508
- * @returns A string in the format "Vec4(x, y, z, w)".
518
+ * @returns A string in the format "Vec2(x, y)".
509
519
  */
510
520
  toString(): string;
511
521
  /**
512
522
  * Converts the vector to a plain object.
513
- * @returns An object with x, y, z and w properties.
523
+ * @returns An object with x and y properties.
514
524
  */
515
525
  toObject(): {
516
526
  x: number;
517
527
  y: number;
518
- z: number;
519
- w: number;
520
528
  };
521
529
  /**
522
530
  * Serializes the vector to a JSON-friendly format.