@fimbul-works/vec 1.1.0 → 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 (558) hide show
  1. package/README.md +208 -95
  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 +4 -0
  265. package/dist/cjs/index.js +4 -0
  266. package/dist/cjs/package.json +1 -1
  267. package/dist/cjs/slerp.d.ts +21 -0
  268. package/dist/cjs/slerp.js +28 -0
  269. package/dist/cjs/vec2.d.ts +10 -4
  270. package/dist/cjs/vec2.js +13 -6
  271. package/dist/cjs/vec3.d.ts +121 -106
  272. package/dist/cjs/vec3.js +127 -129
  273. package/dist/cjs/vec4.d.ts +118 -100
  274. package/dist/cjs/vec4.js +134 -134
  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 +4 -0
  538. package/dist/esm/index.js +4 -0
  539. package/dist/esm/slerp.d.ts +21 -0
  540. package/dist/esm/slerp.js +23 -0
  541. package/dist/esm/vec2.d.ts +10 -4
  542. package/dist/esm/vec2.js +13 -6
  543. package/dist/esm/vec3.d.ts +121 -106
  544. package/dist/esm/vec3.js +127 -129
  545. package/dist/esm/vec4.d.ts +118 -100
  546. package/dist/esm/vec4.js +134 -134
  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 +30 -9
  556. package/VEC2.md +0 -147
  557. package/VEC3.md +0 -172
  558. package/VEC4.md +0 -161
@@ -1,3 +1,7 @@
1
+ export * from "./2d/index.js";
2
+ export * from "./3d/index.js";
3
+ export * from "./4d/index.js";
4
+ export * from "./slerp.js";
1
5
  export * from "./vec2.js";
2
6
  export * from "./vec3.js";
3
7
  export * from "./vec4.js";
package/dist/cjs/index.js CHANGED
@@ -14,6 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./2d/index.js"), exports);
18
+ __exportStar(require("./3d/index.js"), exports);
19
+ __exportStar(require("./4d/index.js"), exports);
20
+ __exportStar(require("./slerp.js"), exports);
17
21
  __exportStar(require("./vec2.js"), exports);
18
22
  __exportStar(require("./vec3.js"), exports);
19
23
  __exportStar(require("./vec4.js"), exports);
@@ -1 +1 @@
1
- {"type":"commonjs"}
1
+ {"type":"commonjs"} pnpm build:docs
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Documentation for spherical linear interpolation functions.
3
+ * @module Slerp
4
+ */
5
+ /**
6
+ * Spherical linear interpolation for angles (in radians).
7
+ * Handles wrapping around 2π correctly.
8
+ * @param {number} from - Start angle in radians
9
+ * @param {number} to - End angle in radians
10
+ * @param {number} t - Interpolation factor (0-1)
11
+ * @returns {number} Interpolated angle
12
+ */
13
+ export declare const slerp: (from: number, to: number, t: number) => number;
14
+ /**
15
+ * Spherical linear interpolation for angles (in degrees).
16
+ * @param {number} from - Start angle in degrees
17
+ * @param {number} to - End angle in degrees
18
+ * @param {number} t - Interpolation factor (0-1)
19
+ * @returns {number} Interpolated angle
20
+ */
21
+ export declare const slerpDegrees: (from: number, to: number, t: number) => number;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * Documentation for spherical linear interpolation functions.
4
+ * @module Slerp
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.slerpDegrees = exports.slerp = void 0;
8
+ const PI2 = 2 * Math.PI;
9
+ const PI3 = 3 * Math.PI;
10
+ /**
11
+ * Spherical linear interpolation for angles (in radians).
12
+ * Handles wrapping around 2π correctly.
13
+ * @param {number} from - Start angle in radians
14
+ * @param {number} to - End angle in radians
15
+ * @param {number} t - Interpolation factor (0-1)
16
+ * @returns {number} Interpolated angle
17
+ */
18
+ const slerp = (from, to, t) => from + (((((to - from) % PI2) + PI3) % PI2) - Math.PI) * t;
19
+ exports.slerp = slerp;
20
+ /**
21
+ * Spherical linear interpolation for angles (in degrees).
22
+ * @param {number} from - Start angle in degrees
23
+ * @param {number} to - End angle in degrees
24
+ * @param {number} t - Interpolation factor (0-1)
25
+ * @returns {number} Interpolated angle
26
+ */
27
+ const slerpDegrees = (from, to, t) => from + (((((to - from) % 360) + 540) % 360) - 180) * t;
28
+ exports.slerpDegrees = slerpDegrees;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Documentation for 2D Vector class.
3
+ * @module Vec2
4
+ */
1
5
  /**
2
6
  * Represents a 2D vector with various operations.
3
7
  */
@@ -5,8 +9,8 @@ export declare class Vec2 {
5
9
  #private;
6
10
  /**
7
11
  * Creates a new Vec2 instance.
8
- * @param x - The x-coordinate of the vector.
9
- * @param y - The y-coordinate of the vector.
12
+ * @param {number} x - The x-coordinate of the vector.
13
+ * @param {number} y - The y-coordinate of the vector.
10
14
  */
11
15
  constructor(x?: number, y?: number);
12
16
  /**
@@ -218,12 +222,14 @@ export declare class Vec2 {
218
222
  static one(): Vec2;
219
223
  /**
220
224
  * Creates a Vec2 from an array.
221
- * @returns A new Vec2 instance.
225
+ * @param {[number, number] | number[]} arr - An array containing the x and y coordinates.
226
+ * @returns {Vec2} A new Vec2 instance.
222
227
  */
223
228
  static fromArray(arr: [number, number] | number[]): Vec2;
224
229
  /**
225
230
  * Creates a Vec2 from an object with x and y properties.
226
- * @returns A new Vec2 instance.
231
+ * @param {{ x: number; y: number }} obj - An object with x and y properties.
232
+ * @returns {Vec2} A new Vec2 instance.
227
233
  */
228
234
  static fromObject(obj: {
229
235
  x: number;
package/dist/cjs/vec2.js CHANGED
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ /**
3
+ * Documentation for 2D Vector class.
4
+ * @module Vec2
5
+ */
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
7
  exports.Vec2 = void 0;
4
8
  const { PI, sin, cos, atan2, sqrt, abs } = Math;
@@ -13,8 +17,9 @@ class Vec2 {
13
17
  /**
14
18
  * Computes and updates the magnitude of the vector.
15
19
  * @private
16
- * @param x - The x-component of the vector.
17
- * @param y - The y-component of the vector.
20
+ * @param {number} x - The x-component of the vector.
21
+ * @param {number} y - The y-component of the vector.
22
+ * @returns {void}
18
23
  */
19
24
  #computeMagnitude(x = this.#xy[0], y = this.#xy[1]) {
20
25
  if (x !== this.#prevXY[0] || y !== this.#prevXY[1]) {
@@ -25,8 +30,8 @@ class Vec2 {
25
30
  }
26
31
  /**
27
32
  * Creates a new Vec2 instance.
28
- * @param x - The x-coordinate of the vector.
29
- * @param y - The y-coordinate of the vector.
33
+ * @param {number} x - The x-coordinate of the vector.
34
+ * @param {number} y - The y-coordinate of the vector.
30
35
  */
31
36
  constructor(x = 0, y = x) {
32
37
  this.#xy[0] = x;
@@ -361,14 +366,16 @@ class Vec2 {
361
366
  }
362
367
  /**
363
368
  * Creates a Vec2 from an array.
364
- * @returns A new Vec2 instance.
369
+ * @param {[number, number] | number[]} arr - An array containing the x and y coordinates.
370
+ * @returns {Vec2} A new Vec2 instance.
365
371
  */
366
372
  static fromArray(arr) {
367
373
  return new Vec2(arr[0] ?? 0, arr[1] ?? 0);
368
374
  }
369
375
  /**
370
376
  * Creates a Vec2 from an object with x and y properties.
371
- * @returns A new Vec2 instance.
377
+ * @param {{ x: number; y: number }} obj - An object with x and y properties.
378
+ * @returns {Vec2} A new Vec2 instance.
372
379
  */
373
380
  static fromObject(obj) {
374
381
  return new Vec2(obj.x, obj.y);
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Documentation for 3D Vector class.
3
+ * @module Vec3
4
+ */
1
5
  /**
2
6
  * Represents a 3D vector with various operations.
3
7
  */
@@ -5,23 +9,23 @@ export declare class Vec3 {
5
9
  #private;
6
10
  /**
7
11
  * Creates a new Vec3 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.
12
+ * @param {number} x - The x-coordinate of the vector.
13
+ * @param {number} y - The y-coordinate of the vector.
14
+ * @param {number} z - The z-coordinate of the vector.
11
15
  */
12
16
  constructor(x?: number, y?: number, z?: number);
13
17
  /**
14
18
  * Adds two vectors.
15
- * @param v - The first vector.
16
- * @param w - The second vector.
17
- * @returns A new Vec3 instance representing the sum.
19
+ * @param {Vec3} v - The first vector.
20
+ * @param {Vec3} w - The second vector.
21
+ * @returns {Vec3} A new Vec3 instance representing the sum.
18
22
  */
19
23
  static add(v: Vec3, w: Vec3): Vec3;
20
24
  /**
21
25
  * Subtracts one vector from another.
22
- * @param v - The vector to subtract from.
23
- * @param w - The vector to subtract.
24
- * @returns A new Vec2 instance representing the difference.
26
+ * @param {Vec3} v - The vector to subtract from.
27
+ * @param {Vec3} w - The vector to subtract.
28
+ * @returns {Vec3} A new Vec3 instance representing the difference.
25
29
  */
26
30
  static subtract(v: Vec3, w: Vec3): Vec3;
27
31
  /**
@@ -40,16 +44,16 @@ export declare class Vec3 {
40
44
  static divide(v: Vec3, w: Vec3): Vec3;
41
45
  /**
42
46
  * Calculates the angle between two vectors.
43
- * @param v - The first vector.
44
- * @param w - The second vector.
45
- * @returns The angle between the vectors in radians.
47
+ * @param {Vec3} v - The first vector.
48
+ * @param {Vec3} w - The second vector.
49
+ * @returns {number} The angle between the vectors in radians.
46
50
  */
47
51
  static angleBetween(v: Vec3, w: Vec3): number;
48
52
  /**
49
53
  * Calculates the cross product of two vectors.
50
- * @param v - The first vector.
51
- * @param w - The second vector.
52
- * @returns The cross product of the two vectors.
54
+ * @param {Vec3} v - The first vector.
55
+ * @param {Vec3} w - The second vector.
56
+ * @returns {Vec3} The cross product of the two vectors.
53
57
  */
54
58
  static cross(v: Vec3, w: Vec3): Vec3;
55
59
  /**
@@ -62,68 +66,69 @@ export declare class Vec3 {
62
66
  static reflect(v: Vec3, normal: Vec3): Vec3;
63
67
  /**
64
68
  * Calculates the Euclidean distance between two vectors.
65
- * @param v - The first vector.
66
- * @param w - The second vector.
67
- * @returns The distance between the vectors.
69
+ * @param {Vec3} v - The first vector.
70
+ * @param {Vec3} w - The second vector.
71
+ * @returns {number} The distance between the vectors.
68
72
  */
69
73
  static distance(v: Vec3, w: Vec3): number;
70
74
  /**
71
75
  * Calculates the Chebyshev distance between two vectors.
72
- * @param v - The first vector.
73
- * @param w - The second vector.
74
- * @returns The Chebyshev distance between the vectors.
76
+ * @param {Vec3} v - The first vector.
77
+ * @param {Vec3} w - The second vector.
78
+ * @returns {number} The Chebyshev distance between the vectors.
75
79
  */
76
80
  static distanceChebyshev(v: Vec3, w: Vec3): number;
77
81
  /**
78
82
  * Calculates the Manhattan distance between two vectors.
79
- * @param v - The first vector.
80
- * @param w - The second vector.
81
- * @returns The Manhattan distance between the vectors.
83
+ * @param {Vec3} v - The first vector.
84
+ * @param {Vec3} w - The second vector.
85
+ * @returns {number} The Manhattan distance between the vectors.
82
86
  */
83
87
  static distanceManhattan(v: Vec3, w: Vec3): number;
84
88
  /**
85
89
  * Calculates the Minkowski distance between two vectors.
86
- * @param v - The first vector.
87
- * @param w - The second vector.
88
- * @param p - The order of the Minkowski distance.
89
- * @returns The Minkowski distance between the vectors.
90
+ * @param {Vec3} v - The first vector.
91
+ * @param {Vec3} w - The second vector.
92
+ * @param {number} p - The order of the Minkowski distance.
93
+ * @returns {number} The Minkowski distance between the vectors.
90
94
  */
91
95
  static distanceMinkowski(v: Vec3, w: Vec3, p: number): number;
92
96
  /**
93
97
  * Calculates the squared Euclidean distance between two vectors.
94
- * @param v - The first vector.
95
- * @param w - The second vector.
96
- * @returns The squared distance between the vectors.
98
+ * @param {Vec3} v - The first vector.
99
+ * @param {Vec3} w - The second vector.
100
+ * @returns {number} The squared distance between the vectors.
97
101
  */
98
102
  static distanceSq(v: Vec3, w: Vec3): number;
99
103
  /**
100
104
  * Calculates the dot product of two vectors.
101
- * @param v - The first vector.
102
- * @param w - The second vector.
103
- * @returns The dot product of the two vectors.
105
+ * @param {Vec3} v - The first vector.
106
+ * @param {Vec3} w - The second vector.
107
+ * @returns {number} The dot product of the two vectors.
104
108
  */
105
109
  static dot(v: Vec3, w: Vec3): number;
106
110
  /**
107
111
  * Creates a Vec3 from cylindrical coordinates.
108
- * @param r - Radial distance from the z-axis
109
- * @param phi - Azimuthal angle in the x-y plane from the x-axis
110
- * @param z - Height above the x-y plane
111
- * @returns New Vec3 instance
112
+ * @param {number} r - Radial distance from the z-axis
113
+ * @param {number} phi - Azimuthal angle in the x-y plane from the x-axis
114
+ * @param {number} z - Height above the x-y plane
115
+ * @returns {Vec3} New Vec3 instance
112
116
  */
113
117
  static fromCylindricalCoords(r: number, phi: number, z: number): Vec3;
114
118
  /**
115
119
  * Creates a Vec3 from spherical coordinates.
116
- * @param r - Radial distance from origin
117
- * @param theta - Polar angle from the z-axis
118
- * @param phi - Azimuthal angle in the x-y plane from the x-axis
119
- * @returns New Vec3 instance
120
+ * @param {number} r - Radial distance from origin
121
+ * @param {number} theta - Polar angle from the z-axis
122
+ * @param {number} phi - Azimuthal angle in the x-y plane from the x-axis
123
+ * @returns {Vec3} New Vec3 instance
120
124
  */
121
125
  static fromSphericalCoords(r: number, theta: number, phi: number): Vec3;
122
126
  /**
123
127
  * Creates an immutable Vec3-like object.
124
- * @param x - The x-coordinate of the vector.
125
- * @param y - The y-coordinate of the vector.
126
- * @returns An immutable object with Vec3-like properties.
128
+ * @param {number} x - The x-coordinate of the vector.
129
+ * @param {number} y - The y-coordinate of the vector.
130
+ * @param {number} z - The z-coordinate of the vector.
131
+ * @returns {Readonly<{ x: number; y: number; z: number; xyz: readonly number[]; r: number; g: number; b: number; rgb: readonly number[]; magnitude: number; magnitudeSq: number; angleX: number; angleY: number; angleZ: number; isInfinite: boolean; isNaN: boolean; isZero: boolean }>} An immutable object with Vec3-like properties.
127
132
  */
128
133
  static immutable(x?: number, y?: number, z?: number): {
129
134
  readonly x: number;
@@ -145,67 +150,67 @@ export declare class Vec3 {
145
150
  };
146
151
  /**
147
152
  * Checks if a vector has infinite components.
148
- * @param v - The vector to check.
149
- * @returns True if the vector has infinite components, false otherwise.
153
+ * @param {Vec3} v - The vector to check.
154
+ * @returns {boolean} True if the vector has infinite components, false otherwise.
150
155
  */
151
156
  static isInfinite(v: Vec3): boolean;
152
157
  /**
153
158
  * Checks if a vector has NaN components.
154
- * @param v - The vector to check.
155
- * @returns True if the vector has NaN components, false otherwise.
159
+ * @param {Vec3} v - The vector to check.
160
+ * @returns {boolean} True if the vector has NaN components, false otherwise.
156
161
  */
157
162
  static isNaN(v: Vec3): boolean;
158
163
  /**
159
164
  * Checks if a vector is zero.
160
- * @param v - The vector to check.
161
- * @returns True if the vector is zero, false otherwise.
165
+ * @param {Vec3} v - The vector to check.
166
+ * @returns {boolean} True if the vector is zero, false otherwise.
162
167
  */
163
168
  static isZero(v: Vec3): boolean;
164
169
  /**
165
170
  * Performs linear interpolation between two vectors.
166
- * @param v - The first vector.
167
- * @param w - The second vector.
168
- * @param t - The interpolation parameter (0 to 1).
169
- * @returns A new Vec2 instance representing the interpolated vector.
171
+ * @param {Vec3} v - The first vector.
172
+ * @param {Vec3} w - The second vector.
173
+ * @param {number} t - The interpolation parameter (0 to 1).
174
+ * @returns {Vec3} A new Vec3 instance representing the interpolated vector.
170
175
  */
171
176
  static lerp(v: Vec3, w: Vec3, t: number): Vec3;
172
177
  /**
173
178
  * Negates a vector.
174
- * @param v - The vector to negate.
175
- * @returns A new Vec2 instance representing the negated vector.
179
+ * @param {Vec3} v - The vector to negate.
180
+ * @returns {Vec3} A new Vec3 instance representing the negated vector.
176
181
  */
177
182
  static negate(v: Vec3): Vec3;
178
183
  /**
179
184
  * Normalizes a vector.
180
- * @param v - The vector to normalize.
181
- * @returns A new Vec2 instance representing the normalized vector.
185
+ * @param {Vec3} v - The vector to normalize.
186
+ * @returns {Vec3} A new Vec3 instance representing the normalized vector.
182
187
  */
183
188
  static normalize(v: Vec3): Vec3;
184
189
  /**
185
190
  * Projects one vector onto another.
186
- * @param v - The vector to project.
187
- * @param w - The vector to project onto.
188
- * @returns A new Vec2 instance representing the projected vector.
191
+ * @param {Vec3} v - The vector to project.
192
+ * @param {Vec3} w - The vector to project onto.
193
+ * @returns {Vec3} A new Vec3 instance representing the projected vector.
189
194
  */
190
195
  static project(v: Vec3, w: Vec3): Vec3;
191
196
  /**
192
197
  * Creates a random unit vector.
193
- * @param random - A function that returns a random number between 0 and 1.
194
- * @returns A new Vec3 instance representing a random unit vector.
198
+ * @param {() => number} random - A function that returns a random number between 0 and 1.
199
+ * @returns {Vec3} A new Vec3 instance representing a random unit vector.
195
200
  */
196
201
  static random(random?: () => number): Vec3;
197
202
  /**
198
203
  * Checks if two vectors are equal.
199
- * @param v - The first vector.
200
- * @param w - The second vector.
201
- * @returns True if the vectors are equal, false otherwise.
204
+ * @param {Vec3} v - The first vector.
205
+ * @param {Vec3} w - The second vector.
206
+ * @returns {boolean} True if the vectors are equal, false otherwise.
202
207
  */
203
208
  static satisfyEquality(v: Vec3, w: Vec3): boolean;
204
209
  /**
205
210
  * Checks if two vectors are opposite.
206
- * @param v - The first vector.
207
- * @param w - The second vector.
208
- * @returns True if the vectors are opposite, false otherwise.
211
+ * @param {Vec3} v - The first vector.
212
+ * @param {Vec3} w - The second vector.
213
+ * @returns {boolean} True if the vectors are opposite, false otherwise.
209
214
  */
210
215
  static satisfyOpposition(v: Vec3, w: Vec3): boolean;
211
216
  /**
@@ -218,14 +223,14 @@ export declare class Vec3 {
218
223
  static equals(v: Vec3, w: Vec3, epsilon?: number): boolean;
219
224
  /**
220
225
  * Scales a vector by a scalar value.
221
- * @param v - The vector to scale.
222
- * @param c - The scalar value.
223
- * @returns A new Vec3 instance representing the scaled vector.
226
+ * @param {Vec3} v - The vector to scale.
227
+ * @param {number} c - The scalar value.
228
+ * @returns {Vec3} A new Vec3 instance representing the scaled vector.
224
229
  */
225
230
  static scale(v: Vec3, c: number): Vec3;
226
231
  /**
227
232
  * Creates a zero vector.
228
- * @returns A new Vec3 instance representing a zero vector.
233
+ * @returns {Vec3} A new Vec3 instance representing a zero vector.
229
234
  */
230
235
  static zero(): Vec3;
231
236
  /**
@@ -235,12 +240,14 @@ export declare class Vec3 {
235
240
  static one(): Vec3;
236
241
  /**
237
242
  * Creates a Vec3 from an array.
238
- * @returns A new Vec3 instance.
243
+ * @param {[number, number, number] | number[]} arr - An array containing the x, y, and z coordinates.
244
+ * @returns {Vec3} A new Vec3 instance.
239
245
  */
240
246
  static fromArray(arr: [number, number, number] | number[]): Vec3;
241
247
  /**
242
248
  * Creates a Vec3 from an object with x, y and z properties.
243
- * @returns A new Vec3 instance.
249
+ * @param {{ x: number; y: number; z: number }} obj - An object with x, y, and z properties.
250
+ * @returns {Vec3} A new Vec3 instance.
244
251
  */
245
252
  static fromObject(obj: {
246
253
  x: number;
@@ -259,82 +266,90 @@ export declare class Vec3 {
259
266
  }): Vec3;
260
267
  /**
261
268
  * Gets the x-component of the vector.
262
- * @returns The x-component.
269
+ * @returns {number} The x-component.
263
270
  */
264
271
  get x(): number;
265
272
  /**
266
273
  * Sets the x-component of the vector.
267
- * @param x - The new x-component.
274
+ * @param {number} x - The new x-component.
275
+ * @returns {void}
268
276
  */
269
277
  set x(x: number);
270
278
  /**
271
279
  * Gets the y-component of the vector.
272
- * @returns The y-component.
280
+ * @returns {number} The y-component.
273
281
  */
274
282
  get y(): number;
275
283
  /**
276
284
  * Sets the y-component of the vector.
277
- * @param y - The new y-component.
285
+ * @param {number} y - The new y-component.
286
+ * @returns {void}
278
287
  */
279
288
  set y(y: number);
280
289
  /**
281
290
  * Gets the z-component of the vector.
282
- * @returns The z-component.
291
+ * @returns {number} The z-component.
283
292
  */
284
293
  get z(): number;
285
294
  /**
286
295
  * Sets the z-component of the vector.
287
- * @param z - The new z-component.
296
+ * @param {number} z - The new z-component.
297
+ * @returns {void}
288
298
  */
289
299
  set z(z: number);
290
300
  /**
291
301
  * Gets a copy of the vector's components as an array.
292
- * @returns An array containing the x, y and z components of the vector.
302
+ * @returns {[number, number, number]} An array containing the x, y and z components of the vector.
293
303
  */
294
304
  get xyz(): [number, number, number];
295
305
  /**
296
306
  * Sets all components of the vector at once.
297
- * @param xyz - An array containing the new x, y and z components.
307
+ * @param {[number, number, number]} xyz - An array containing the new x, y and z components.
308
+ * @returns {void}
298
309
  */
299
310
  set xyz(xyz: [number, number, number]);
300
311
  /**
301
312
  * Gets the Red-component of a Color.
302
- * @returns The Red-component.
313
+ * @returns {number} The Red-component.
303
314
  */
304
315
  get r(): number;
305
316
  /**
306
317
  * Sets the Red-component of a Color.
307
- * @param r - The new Red-component.
318
+ * @param {number} r - The new Red-component.
319
+ * @returns {void}
308
320
  */
309
321
  set r(r: number);
310
322
  /**
311
323
  * Gets the Green-component of a Color.
312
- * @returns The Green-component.
324
+ * @returns {number} The Green-component.
313
325
  */
314
326
  get g(): number;
315
327
  /**
316
328
  * Sets the Green-component of the Color.
317
- * @param g - The new Green-component.
329
+ * @param {number} g - The new Green-component.
330
+ * @returns {void}
318
331
  */
319
332
  set g(g: number);
320
333
  /**
321
334
  * Gets the Blue-component of the color.
322
- * @returns The Blue-component.
335
+ * @returns {number} The Blue-component.
323
336
  */
324
337
  get b(): number;
325
338
  /**
326
339
  * Sets the Blue-component of the Color.
327
- * @param b - The new Blue-component.
340
+ * @param {number} b - The new Blue-component.
341
+ * @returns {void}
328
342
  */
329
343
  set b(b: number);
330
344
  /**
331
345
  * Gets a copy of the vector's components as an array.
332
- * @returns An array containing the x, y and z components of the vector.
346
+ * @returns {[number, number, number]} An array containing the x, y and z components of the vector.
333
347
  */
334
348
  get rgb(): [number, number, number];
335
349
  /**
336
350
  * Sets all components of the Color at once.
337
- * @param rgb - An array containing the new Red, Green and Blue components.
351
+ * @param {[number, number, number]} rgb - An array containing the new Red, Green and Blue components.
352
+ * @returns {void}
338
353
  */
339
354
  set rgb(rgb: [number, number, number]);
340
355
  /**
@@ -370,8 +385,8 @@ export declare class Vec3 {
370
385
  set magnitude(m: number);
371
386
  /**
372
387
  * Adds another vector to this vector.
373
- * @param v - The vector to add.
374
- * @returns This Vec3 instance for method chaining.
388
+ * @param {Vec3} v - The vector to add.
389
+ * @returns {this} This Vec3 instance for method chaining.
375
390
  */
376
391
  add(v: Vec3): this;
377
392
  /**
@@ -407,7 +422,7 @@ export declare class Vec3 {
407
422
  clamp(min: number, max: number): this;
408
423
  /**
409
424
  * Creates a copy of this vector.
410
- * @returns A new Vec3 instance with the same components.
425
+ * @returns {Vec3} A new Vec3 instance with the same components.
411
426
  */
412
427
  clone(): Vec3;
413
428
  /**
@@ -418,14 +433,14 @@ export declare class Vec3 {
418
433
  copy(v: Vec3): this;
419
434
  /**
420
435
  * Calculates the dot product of this vector with another vector.
421
- * @param v - The other vector.
422
- * @returns The dot product of the vectors.
436
+ * @param {Vec3} v - The other vector.
437
+ * @returns {number} The dot product of the vectors.
423
438
  */
424
439
  dot(v: Vec3): number;
425
440
  /**
426
441
  * Calculates cross product between this vector and another vector.
427
- * @param v - The other vector.
428
- * @returns The distance between the vectors.
442
+ * @param {Vec3} v - The other vector.
443
+ * @returns {this} This Vec3 instance for method chaining.
429
444
  */
430
445
  cross(v: Vec3): this;
431
446
  /**
@@ -443,21 +458,21 @@ export declare class Vec3 {
443
458
  distance(v: Vec3): number;
444
459
  /**
445
460
  * Calculates the Chebyshev distance between vector and another vector.
446
- * @param v - The other vector.
447
- * @returns The Chebyshev distance between the vectors.
461
+ * @param {Vec3} v - The other vector.
462
+ * @returns {number} The Chebyshev distance between the vectors.
448
463
  */
449
464
  distanceChebyshev(v: Vec3): number;
450
465
  /**
451
466
  * Calculates the Manhattan distance between vector and another vector.
452
- * @param v - The other vector.
453
- * @returns The Manhattan distance between the vectors.
467
+ * @param {Vec3} v - The other vector.
468
+ * @returns {number} The Manhattan distance between the vectors.
454
469
  */
455
470
  distanceManhattan(v: Vec3): number;
456
471
  /**
457
472
  * Calculates the Minkowski distance between this vector and another vector.
458
- * @param v - The other vector.
459
- * @param p - The order of the Minkowski distance.
460
- * @returns The Minkowski distance between the vectors.
473
+ * @param {Vec3} v - The other vector.
474
+ * @param {number} p - The order of the Minkowski distance.
475
+ * @returns {number} The Minkowski distance between the vectors.
461
476
  */
462
477
  distanceMinkowski(v: Vec3, p: number): number;
463
478
  /**