@fimbul-works/vec 1.0.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/README.md +208 -85
  2. package/dist/cjs/2d/add-2d.d.ts +8 -0
  3. package/dist/cjs/2d/add-2d.js +11 -0
  4. package/dist/cjs/2d/angle-between-2d.d.ts +8 -0
  5. package/dist/cjs/2d/angle-between-2d.js +11 -0
  6. package/dist/cjs/2d/angle-x-2d.d.ts +7 -0
  7. package/dist/cjs/2d/angle-x-2d.js +10 -0
  8. package/dist/cjs/2d/angle-y-2d.d.ts +7 -0
  9. package/dist/cjs/2d/angle-y-2d.js +10 -0
  10. package/dist/cjs/2d/clamp-2d.d.ts +10 -0
  11. package/dist/cjs/2d/clamp-2d.js +14 -0
  12. package/dist/cjs/2d/clone-2d.d.ts +7 -0
  13. package/dist/cjs/2d/clone-2d.js +10 -0
  14. package/dist/cjs/2d/cross-2d.d.ts +8 -0
  15. package/dist/cjs/2d/cross-2d.js +11 -0
  16. package/dist/cjs/2d/distance-2d.d.ts +8 -0
  17. package/dist/cjs/2d/distance-2d.js +11 -0
  18. package/dist/cjs/2d/distance-chebyshev-2d.d.ts +8 -0
  19. package/dist/cjs/2d/distance-chebyshev-2d.js +15 -0
  20. package/dist/cjs/2d/distance-manhattan-2d.d.ts +8 -0
  21. package/dist/cjs/2d/distance-manhattan-2d.js +11 -0
  22. package/dist/cjs/2d/distance-minkowski-2d.d.ts +9 -0
  23. package/dist/cjs/2d/distance-minkowski-2d.js +12 -0
  24. package/dist/cjs/2d/distance-sq-2d.d.ts +8 -0
  25. package/dist/cjs/2d/distance-sq-2d.js +11 -0
  26. package/dist/cjs/2d/divide-2d.d.ts +8 -0
  27. package/dist/cjs/2d/divide-2d.js +14 -0
  28. package/dist/cjs/2d/dot-2d.d.ts +8 -0
  29. package/dist/cjs/2d/dot-2d.js +11 -0
  30. package/dist/cjs/2d/from-angle-x-2d.d.ts +8 -0
  31. package/dist/cjs/2d/from-angle-x-2d.js +14 -0
  32. package/dist/cjs/2d/from-angle-y-2d.d.ts +8 -0
  33. package/dist/cjs/2d/from-angle-y-2d.js +14 -0
  34. package/dist/cjs/2d/from-object-2d.d.ts +10 -0
  35. package/dist/cjs/2d/from-object-2d.js +10 -0
  36. package/dist/cjs/2d/from-polar-coords-2d.d.ts +8 -0
  37. package/dist/cjs/2d/from-polar-coords-2d.js +11 -0
  38. package/dist/cjs/2d/immutable-2d.d.ts +7 -0
  39. package/dist/cjs/2d/immutable-2d.js +10 -0
  40. package/dist/cjs/2d/index.d.ts +47 -0
  41. package/dist/cjs/2d/index.js +63 -0
  42. package/dist/cjs/2d/is-equal-2d.d.ts +8 -0
  43. package/dist/cjs/2d/is-equal-2d.js +11 -0
  44. package/dist/cjs/2d/is-equal-approx-2d.d.ts +9 -0
  45. package/dist/cjs/2d/is-equal-approx-2d.js +12 -0
  46. package/dist/cjs/2d/is-infinite-2d.d.ts +7 -0
  47. package/dist/cjs/2d/is-infinite-2d.js +13 -0
  48. package/dist/cjs/2d/is-nan-2d.d.ts +7 -0
  49. package/dist/cjs/2d/is-nan-2d.js +10 -0
  50. package/dist/cjs/2d/is-opposite-2d.d.ts +8 -0
  51. package/dist/cjs/2d/is-opposite-2d.js +11 -0
  52. package/dist/cjs/2d/is-zero-2d.d.ts +7 -0
  53. package/dist/cjs/2d/is-zero-2d.js +10 -0
  54. package/dist/cjs/2d/lerp-2d.d.ts +9 -0
  55. package/dist/cjs/2d/lerp-2d.js +15 -0
  56. package/dist/cjs/2d/limit-max-2d.d.ts +9 -0
  57. package/dist/cjs/2d/limit-max-2d.js +13 -0
  58. package/dist/cjs/2d/limit-min-2d.d.ts +9 -0
  59. package/dist/cjs/2d/limit-min-2d.js +13 -0
  60. package/dist/cjs/2d/look-at-2d.d.ts +10 -0
  61. package/dist/cjs/2d/look-at-2d.js +14 -0
  62. package/dist/cjs/2d/magnitude-2d.d.ts +7 -0
  63. package/dist/cjs/2d/magnitude-2d.js +10 -0
  64. package/dist/cjs/2d/magnitude-sq-2d.d.ts +7 -0
  65. package/dist/cjs/2d/magnitude-sq-2d.js +10 -0
  66. package/dist/cjs/2d/multiply-2d.d.ts +8 -0
  67. package/dist/cjs/2d/multiply-2d.js +11 -0
  68. package/dist/cjs/2d/negate-2d.d.ts +7 -0
  69. package/dist/cjs/2d/negate-2d.js +10 -0
  70. package/dist/cjs/2d/normalize-2d.d.ts +8 -0
  71. package/dist/cjs/2d/normalize-2d.js +12 -0
  72. package/dist/cjs/2d/one-2d.d.ts +6 -0
  73. package/dist/cjs/2d/one-2d.js +9 -0
  74. package/dist/cjs/2d/project-2d.d.ts +10 -0
  75. package/dist/cjs/2d/project-2d.js +17 -0
  76. package/dist/cjs/2d/random-2d.d.ts +7 -0
  77. package/dist/cjs/2d/random-2d.js +13 -0
  78. package/dist/cjs/2d/reflect-2d.d.ts +9 -0
  79. package/dist/cjs/2d/reflect-2d.js +16 -0
  80. package/dist/cjs/2d/rotate-2d.d.ts +9 -0
  81. package/dist/cjs/2d/rotate-2d.js +27 -0
  82. package/dist/cjs/2d/set-magnitude-2d.d.ts +9 -0
  83. package/dist/cjs/2d/set-magnitude-2d.js +16 -0
  84. package/dist/cjs/2d/subtract-2d.d.ts +8 -0
  85. package/dist/cjs/2d/subtract-2d.js +11 -0
  86. package/dist/cjs/2d/types.d.ts +4 -0
  87. package/dist/cjs/2d/types.js +2 -0
  88. package/dist/cjs/2d/zero-2d.d.ts +6 -0
  89. package/dist/cjs/2d/zero-2d.js +9 -0
  90. package/dist/cjs/3d/add-3d.d.ts +8 -0
  91. package/dist/cjs/3d/add-3d.js +15 -0
  92. package/dist/cjs/3d/angle-between-3d.d.ts +10 -0
  93. package/dist/cjs/3d/angle-between-3d.js +14 -0
  94. package/dist/cjs/3d/angle-x-3d.d.ts +7 -0
  95. package/dist/cjs/3d/angle-x-3d.js +10 -0
  96. package/dist/cjs/3d/angle-y-3d.d.ts +7 -0
  97. package/dist/cjs/3d/angle-y-3d.js +10 -0
  98. package/dist/cjs/3d/angle-z-3d.d.ts +7 -0
  99. package/dist/cjs/3d/angle-z-3d.js +10 -0
  100. package/dist/cjs/3d/clamp-3d.d.ts +10 -0
  101. package/dist/cjs/3d/clamp-3d.js +18 -0
  102. package/dist/cjs/3d/clone-3d.d.ts +7 -0
  103. package/dist/cjs/3d/clone-3d.js +10 -0
  104. package/dist/cjs/3d/cross-3d.d.ts +8 -0
  105. package/dist/cjs/3d/cross-3d.js +15 -0
  106. package/dist/cjs/3d/distance-3d.d.ts +8 -0
  107. package/dist/cjs/3d/distance-3d.js +11 -0
  108. package/dist/cjs/3d/distance-chebyshev-3d.d.ts +8 -0
  109. package/dist/cjs/3d/distance-chebyshev-3d.js +16 -0
  110. package/dist/cjs/3d/distance-manhattan-3d.d.ts +8 -0
  111. package/dist/cjs/3d/distance-manhattan-3d.js +11 -0
  112. package/dist/cjs/3d/distance-minkowski-3d.d.ts +9 -0
  113. package/dist/cjs/3d/distance-minkowski-3d.js +12 -0
  114. package/dist/cjs/3d/distance-sq-3d.d.ts +8 -0
  115. package/dist/cjs/3d/distance-sq-3d.js +11 -0
  116. package/dist/cjs/3d/divide-3d.d.ts +8 -0
  117. package/dist/cjs/3d/divide-3d.js +15 -0
  118. package/dist/cjs/3d/dot-3d.d.ts +8 -0
  119. package/dist/cjs/3d/dot-3d.js +11 -0
  120. package/dist/cjs/3d/from-cylindrical-coords-3d.d.ts +9 -0
  121. package/dist/cjs/3d/from-cylindrical-coords-3d.js +16 -0
  122. package/dist/cjs/3d/from-object-3d.d.ts +11 -0
  123. package/dist/cjs/3d/from-object-3d.js +10 -0
  124. package/dist/cjs/3d/from-spherical-coords-3d.d.ts +9 -0
  125. package/dist/cjs/3d/from-spherical-coords-3d.js +16 -0
  126. package/dist/cjs/3d/immutable-3d.d.ts +7 -0
  127. package/dist/cjs/3d/immutable-3d.js +10 -0
  128. package/dist/cjs/3d/index.d.ts +49 -0
  129. package/dist/cjs/3d/index.js +65 -0
  130. package/dist/cjs/3d/is-equal-3d.d.ts +8 -0
  131. package/dist/cjs/3d/is-equal-3d.js +11 -0
  132. package/dist/cjs/3d/is-equal-approx-3d.d.ts +9 -0
  133. package/dist/cjs/3d/is-equal-approx-3d.js +14 -0
  134. package/dist/cjs/3d/is-infinite-3d.d.ts +7 -0
  135. package/dist/cjs/3d/is-infinite-3d.js +15 -0
  136. package/dist/cjs/3d/is-nan-3d.d.ts +7 -0
  137. package/dist/cjs/3d/is-nan-3d.js +10 -0
  138. package/dist/cjs/3d/is-opposite-3d.d.ts +8 -0
  139. package/dist/cjs/3d/is-opposite-3d.js +11 -0
  140. package/dist/cjs/3d/is-zero-3d.d.ts +7 -0
  141. package/dist/cjs/3d/is-zero-3d.js +10 -0
  142. package/dist/cjs/3d/lerp-3d.d.ts +9 -0
  143. package/dist/cjs/3d/lerp-3d.js +16 -0
  144. package/dist/cjs/3d/limit-max-3d.d.ts +9 -0
  145. package/dist/cjs/3d/limit-max-3d.js +13 -0
  146. package/dist/cjs/3d/limit-min-3d.d.ts +9 -0
  147. package/dist/cjs/3d/limit-min-3d.js +13 -0
  148. package/dist/cjs/3d/look-at-3d.d.ts +10 -0
  149. package/dist/cjs/3d/look-at-3d.js +14 -0
  150. package/dist/cjs/3d/magnitude-3d.d.ts +7 -0
  151. package/dist/cjs/3d/magnitude-3d.js +10 -0
  152. package/dist/cjs/3d/magnitude-sq-3d.d.ts +7 -0
  153. package/dist/cjs/3d/magnitude-sq-3d.js +10 -0
  154. package/dist/cjs/3d/multiply-3d.d.ts +8 -0
  155. package/dist/cjs/3d/multiply-3d.js +15 -0
  156. package/dist/cjs/3d/negate-3d.d.ts +7 -0
  157. package/dist/cjs/3d/negate-3d.js +10 -0
  158. package/dist/cjs/3d/normalize-3d.d.ts +8 -0
  159. package/dist/cjs/3d/normalize-3d.js +12 -0
  160. package/dist/cjs/3d/one-3d.d.ts +6 -0
  161. package/dist/cjs/3d/one-3d.js +9 -0
  162. package/dist/cjs/3d/project-3d.d.ts +10 -0
  163. package/dist/cjs/3d/project-3d.js +17 -0
  164. package/dist/cjs/3d/random-3d.d.ts +7 -0
  165. package/dist/cjs/3d/random-3d.js +11 -0
  166. package/dist/cjs/3d/reflect-3d.d.ts +9 -0
  167. package/dist/cjs/3d/reflect-3d.js +16 -0
  168. package/dist/cjs/3d/rotate-x-3d.d.ts +9 -0
  169. package/dist/cjs/3d/rotate-x-3d.js +26 -0
  170. package/dist/cjs/3d/rotate-y-3d.d.ts +9 -0
  171. package/dist/cjs/3d/rotate-y-3d.js +26 -0
  172. package/dist/cjs/3d/rotate-z-3d.d.ts +9 -0
  173. package/dist/cjs/3d/rotate-z-3d.js +26 -0
  174. package/dist/cjs/3d/set-magnitude-3d.d.ts +9 -0
  175. package/dist/cjs/3d/set-magnitude-3d.js +13 -0
  176. package/dist/cjs/3d/subtract-3d.d.ts +8 -0
  177. package/dist/cjs/3d/subtract-3d.js +15 -0
  178. package/dist/cjs/3d/types.d.ts +4 -0
  179. package/dist/cjs/3d/types.js +2 -0
  180. package/dist/cjs/3d/zero-3d.d.ts +6 -0
  181. package/dist/cjs/3d/zero-3d.js +9 -0
  182. package/dist/cjs/4d/add-4d.d.ts +8 -0
  183. package/dist/cjs/4d/add-4d.js +16 -0
  184. package/dist/cjs/4d/angle-between-4d.d.ts +10 -0
  185. package/dist/cjs/4d/angle-between-4d.js +15 -0
  186. package/dist/cjs/4d/angle-w-4d.d.ts +7 -0
  187. package/dist/cjs/4d/angle-w-4d.js +10 -0
  188. package/dist/cjs/4d/angle-x-4d.d.ts +7 -0
  189. package/dist/cjs/4d/angle-x-4d.js +10 -0
  190. package/dist/cjs/4d/angle-y-4d.d.ts +7 -0
  191. package/dist/cjs/4d/angle-y-4d.js +10 -0
  192. package/dist/cjs/4d/angle-z-4d.d.ts +7 -0
  193. package/dist/cjs/4d/angle-z-4d.js +10 -0
  194. package/dist/cjs/4d/clamp-4d.d.ts +10 -0
  195. package/dist/cjs/4d/clamp-4d.js +18 -0
  196. package/dist/cjs/4d/clone-4d.d.ts +7 -0
  197. package/dist/cjs/4d/clone-4d.js +10 -0
  198. package/dist/cjs/4d/distance-4d.d.ts +8 -0
  199. package/dist/cjs/4d/distance-4d.js +11 -0
  200. package/dist/cjs/4d/distance-chebyshev-4d.d.ts +8 -0
  201. package/dist/cjs/4d/distance-chebyshev-4d.js +23 -0
  202. package/dist/cjs/4d/distance-manhattan-4d.d.ts +8 -0
  203. package/dist/cjs/4d/distance-manhattan-4d.js +14 -0
  204. package/dist/cjs/4d/distance-minkowski-4d.d.ts +9 -0
  205. package/dist/cjs/4d/distance-minkowski-4d.js +16 -0
  206. package/dist/cjs/4d/distance-sq-4d.d.ts +9 -0
  207. package/dist/cjs/4d/distance-sq-4d.js +12 -0
  208. package/dist/cjs/4d/divide-4d.d.ts +8 -0
  209. package/dist/cjs/4d/divide-4d.js +16 -0
  210. package/dist/cjs/4d/dot-4d.d.ts +8 -0
  211. package/dist/cjs/4d/dot-4d.js +11 -0
  212. package/dist/cjs/4d/from-object-4d.d.ts +12 -0
  213. package/dist/cjs/4d/from-object-4d.js +15 -0
  214. package/dist/cjs/4d/immutable-4d.d.ts +7 -0
  215. package/dist/cjs/4d/immutable-4d.js +10 -0
  216. package/dist/cjs/4d/index.d.ts +44 -0
  217. package/dist/cjs/4d/index.js +60 -0
  218. package/dist/cjs/4d/is-equal-4d.d.ts +8 -0
  219. package/dist/cjs/4d/is-equal-4d.js +11 -0
  220. package/dist/cjs/4d/is-equal-approx-4d.d.ts +9 -0
  221. package/dist/cjs/4d/is-equal-approx-4d.js +15 -0
  222. package/dist/cjs/4d/is-infinite-4d.d.ts +7 -0
  223. package/dist/cjs/4d/is-infinite-4d.js +17 -0
  224. package/dist/cjs/4d/is-nan-4d.d.ts +7 -0
  225. package/dist/cjs/4d/is-nan-4d.js +10 -0
  226. package/dist/cjs/4d/is-opposite-4d.d.ts +8 -0
  227. package/dist/cjs/4d/is-opposite-4d.js +11 -0
  228. package/dist/cjs/4d/is-zero-4d.d.ts +7 -0
  229. package/dist/cjs/4d/is-zero-4d.js +10 -0
  230. package/dist/cjs/4d/lerp-4d.d.ts +9 -0
  231. package/dist/cjs/4d/lerp-4d.js +17 -0
  232. package/dist/cjs/4d/limit-max-4d.d.ts +9 -0
  233. package/dist/cjs/4d/limit-max-4d.js +13 -0
  234. package/dist/cjs/4d/limit-min-4d.d.ts +9 -0
  235. package/dist/cjs/4d/limit-min-4d.js +13 -0
  236. package/dist/cjs/4d/look-at-4d.d.ts +10 -0
  237. package/dist/cjs/4d/look-at-4d.js +14 -0
  238. package/dist/cjs/4d/magnitude-4d.d.ts +7 -0
  239. package/dist/cjs/4d/magnitude-4d.js +10 -0
  240. package/dist/cjs/4d/magnitude-sq-4d.d.ts +8 -0
  241. package/dist/cjs/4d/magnitude-sq-4d.js +11 -0
  242. package/dist/cjs/4d/multiply-4d.d.ts +8 -0
  243. package/dist/cjs/4d/multiply-4d.js +16 -0
  244. package/dist/cjs/4d/negate-4d.d.ts +7 -0
  245. package/dist/cjs/4d/negate-4d.js +10 -0
  246. package/dist/cjs/4d/normalize-4d.d.ts +8 -0
  247. package/dist/cjs/4d/normalize-4d.js +17 -0
  248. package/dist/cjs/4d/one-4d.d.ts +6 -0
  249. package/dist/cjs/4d/one-4d.js +9 -0
  250. package/dist/cjs/4d/project-4d.d.ts +10 -0
  251. package/dist/cjs/4d/project-4d.js +18 -0
  252. package/dist/cjs/4d/random-4d.d.ts +7 -0
  253. package/dist/cjs/4d/random-4d.js +21 -0
  254. package/dist/cjs/4d/reflect-4d.d.ts +9 -0
  255. package/dist/cjs/4d/reflect-4d.js +21 -0
  256. package/dist/cjs/4d/set-magnitude-4d.d.ts +9 -0
  257. package/dist/cjs/4d/set-magnitude-4d.js +18 -0
  258. package/dist/cjs/4d/subtract-4d.d.ts +8 -0
  259. package/dist/cjs/4d/subtract-4d.js +16 -0
  260. package/dist/cjs/4d/types.d.ts +4 -0
  261. package/dist/cjs/4d/types.js +2 -0
  262. package/dist/cjs/4d/zero-4d.d.ts +6 -0
  263. package/dist/cjs/4d/zero-4d.js +9 -0
  264. package/dist/cjs/index.d.ts +7 -0
  265. package/dist/cjs/index.js +23 -0
  266. package/dist/cjs/package.json +1 -0
  267. package/dist/cjs/slerp.d.ts +21 -0
  268. package/dist/cjs/slerp.js +28 -0
  269. package/dist/{vec2.d.ts → cjs/vec2.d.ts} +10 -4
  270. package/dist/cjs/vec2.js +889 -0
  271. package/dist/{vec3.d.ts → cjs/vec3.d.ts} +159 -100
  272. package/dist/cjs/vec3.js +1045 -0
  273. package/dist/cjs/vec4.d.ts +602 -0
  274. package/dist/cjs/vec4.js +1101 -0
  275. package/dist/esm/2d/add-2d.d.ts +8 -0
  276. package/dist/esm/2d/add-2d.js +7 -0
  277. package/dist/esm/2d/angle-between-2d.d.ts +8 -0
  278. package/dist/esm/2d/angle-between-2d.js +7 -0
  279. package/dist/esm/2d/angle-x-2d.d.ts +7 -0
  280. package/dist/esm/2d/angle-x-2d.js +6 -0
  281. package/dist/esm/2d/angle-y-2d.d.ts +7 -0
  282. package/dist/esm/2d/angle-y-2d.js +6 -0
  283. package/dist/esm/2d/clamp-2d.d.ts +10 -0
  284. package/dist/esm/2d/clamp-2d.js +10 -0
  285. package/dist/esm/2d/clone-2d.d.ts +7 -0
  286. package/dist/esm/2d/clone-2d.js +6 -0
  287. package/dist/esm/2d/cross-2d.d.ts +8 -0
  288. package/dist/esm/2d/cross-2d.js +7 -0
  289. package/dist/esm/2d/distance-2d.d.ts +8 -0
  290. package/dist/esm/2d/distance-2d.js +7 -0
  291. package/dist/esm/2d/distance-chebyshev-2d.d.ts +8 -0
  292. package/dist/esm/2d/distance-chebyshev-2d.js +11 -0
  293. package/dist/esm/2d/distance-manhattan-2d.d.ts +8 -0
  294. package/dist/esm/2d/distance-manhattan-2d.js +7 -0
  295. package/dist/esm/2d/distance-minkowski-2d.d.ts +9 -0
  296. package/dist/esm/2d/distance-minkowski-2d.js +8 -0
  297. package/dist/esm/2d/distance-sq-2d.d.ts +8 -0
  298. package/dist/esm/2d/distance-sq-2d.js +7 -0
  299. package/dist/esm/2d/divide-2d.d.ts +8 -0
  300. package/dist/esm/2d/divide-2d.js +10 -0
  301. package/dist/esm/2d/dot-2d.d.ts +8 -0
  302. package/dist/esm/2d/dot-2d.js +7 -0
  303. package/dist/esm/2d/from-angle-x-2d.d.ts +8 -0
  304. package/dist/esm/2d/from-angle-x-2d.js +10 -0
  305. package/dist/esm/2d/from-angle-y-2d.d.ts +8 -0
  306. package/dist/esm/2d/from-angle-y-2d.js +10 -0
  307. package/dist/esm/2d/from-object-2d.d.ts +10 -0
  308. package/dist/esm/2d/from-object-2d.js +6 -0
  309. package/dist/esm/2d/from-polar-coords-2d.d.ts +8 -0
  310. package/dist/esm/2d/from-polar-coords-2d.js +7 -0
  311. package/dist/esm/2d/immutable-2d.d.ts +7 -0
  312. package/dist/esm/2d/immutable-2d.js +6 -0
  313. package/dist/esm/2d/index.d.ts +47 -0
  314. package/dist/esm/2d/index.js +47 -0
  315. package/dist/esm/2d/is-equal-2d.d.ts +8 -0
  316. package/dist/esm/2d/is-equal-2d.js +7 -0
  317. package/dist/esm/2d/is-equal-approx-2d.d.ts +9 -0
  318. package/dist/esm/2d/is-equal-approx-2d.js +8 -0
  319. package/dist/esm/2d/is-infinite-2d.d.ts +7 -0
  320. package/dist/esm/2d/is-infinite-2d.js +9 -0
  321. package/dist/esm/2d/is-nan-2d.d.ts +7 -0
  322. package/dist/esm/2d/is-nan-2d.js +6 -0
  323. package/dist/esm/2d/is-opposite-2d.d.ts +8 -0
  324. package/dist/esm/2d/is-opposite-2d.js +7 -0
  325. package/dist/esm/2d/is-zero-2d.d.ts +7 -0
  326. package/dist/esm/2d/is-zero-2d.js +6 -0
  327. package/dist/esm/2d/lerp-2d.d.ts +9 -0
  328. package/dist/esm/2d/lerp-2d.js +11 -0
  329. package/dist/esm/2d/limit-max-2d.d.ts +9 -0
  330. package/dist/esm/2d/limit-max-2d.js +9 -0
  331. package/dist/esm/2d/limit-min-2d.d.ts +9 -0
  332. package/dist/esm/2d/limit-min-2d.js +9 -0
  333. package/dist/esm/2d/look-at-2d.d.ts +10 -0
  334. package/dist/esm/2d/look-at-2d.js +10 -0
  335. package/dist/esm/2d/magnitude-2d.d.ts +7 -0
  336. package/dist/esm/2d/magnitude-2d.js +6 -0
  337. package/dist/esm/2d/magnitude-sq-2d.d.ts +7 -0
  338. package/dist/esm/2d/magnitude-sq-2d.js +6 -0
  339. package/dist/esm/2d/multiply-2d.d.ts +8 -0
  340. package/dist/esm/2d/multiply-2d.js +7 -0
  341. package/dist/esm/2d/negate-2d.d.ts +7 -0
  342. package/dist/esm/2d/negate-2d.js +6 -0
  343. package/dist/esm/2d/normalize-2d.d.ts +8 -0
  344. package/dist/esm/2d/normalize-2d.js +8 -0
  345. package/dist/esm/2d/one-2d.d.ts +6 -0
  346. package/dist/esm/2d/one-2d.js +5 -0
  347. package/dist/esm/2d/project-2d.d.ts +10 -0
  348. package/dist/esm/2d/project-2d.js +13 -0
  349. package/dist/esm/2d/random-2d.d.ts +7 -0
  350. package/dist/esm/2d/random-2d.js +9 -0
  351. package/dist/esm/2d/reflect-2d.d.ts +9 -0
  352. package/dist/esm/2d/reflect-2d.js +12 -0
  353. package/dist/esm/2d/rotate-2d.d.ts +9 -0
  354. package/dist/esm/2d/rotate-2d.js +23 -0
  355. package/dist/esm/2d/set-magnitude-2d.d.ts +9 -0
  356. package/dist/esm/2d/set-magnitude-2d.js +12 -0
  357. package/dist/esm/2d/subtract-2d.d.ts +8 -0
  358. package/dist/esm/2d/subtract-2d.js +7 -0
  359. package/dist/esm/2d/types.d.ts +4 -0
  360. package/dist/esm/2d/types.js +1 -0
  361. package/dist/esm/2d/zero-2d.d.ts +6 -0
  362. package/dist/esm/2d/zero-2d.js +5 -0
  363. package/dist/esm/3d/add-3d.d.ts +8 -0
  364. package/dist/esm/3d/add-3d.js +11 -0
  365. package/dist/esm/3d/angle-between-3d.d.ts +10 -0
  366. package/dist/esm/3d/angle-between-3d.js +10 -0
  367. package/dist/esm/3d/angle-x-3d.d.ts +7 -0
  368. package/dist/esm/3d/angle-x-3d.js +6 -0
  369. package/dist/esm/3d/angle-y-3d.d.ts +7 -0
  370. package/dist/esm/3d/angle-y-3d.js +6 -0
  371. package/dist/esm/3d/angle-z-3d.d.ts +7 -0
  372. package/dist/esm/3d/angle-z-3d.js +6 -0
  373. package/dist/esm/3d/clamp-3d.d.ts +10 -0
  374. package/dist/esm/3d/clamp-3d.js +14 -0
  375. package/dist/esm/3d/clone-3d.d.ts +7 -0
  376. package/dist/esm/3d/clone-3d.js +6 -0
  377. package/dist/esm/3d/cross-3d.d.ts +8 -0
  378. package/dist/esm/3d/cross-3d.js +11 -0
  379. package/dist/esm/3d/distance-3d.d.ts +8 -0
  380. package/dist/esm/3d/distance-3d.js +7 -0
  381. package/dist/esm/3d/distance-chebyshev-3d.d.ts +8 -0
  382. package/dist/esm/3d/distance-chebyshev-3d.js +12 -0
  383. package/dist/esm/3d/distance-manhattan-3d.d.ts +8 -0
  384. package/dist/esm/3d/distance-manhattan-3d.js +7 -0
  385. package/dist/esm/3d/distance-minkowski-3d.d.ts +9 -0
  386. package/dist/esm/3d/distance-minkowski-3d.js +8 -0
  387. package/dist/esm/3d/distance-sq-3d.d.ts +8 -0
  388. package/dist/esm/3d/distance-sq-3d.js +7 -0
  389. package/dist/esm/3d/divide-3d.d.ts +8 -0
  390. package/dist/esm/3d/divide-3d.js +11 -0
  391. package/dist/esm/3d/dot-3d.d.ts +8 -0
  392. package/dist/esm/3d/dot-3d.js +7 -0
  393. package/dist/esm/3d/from-cylindrical-coords-3d.d.ts +9 -0
  394. package/dist/esm/3d/from-cylindrical-coords-3d.js +12 -0
  395. package/dist/esm/3d/from-object-3d.d.ts +11 -0
  396. package/dist/esm/3d/from-object-3d.js +6 -0
  397. package/dist/esm/3d/from-spherical-coords-3d.d.ts +9 -0
  398. package/dist/esm/3d/from-spherical-coords-3d.js +12 -0
  399. package/dist/esm/3d/immutable-3d.d.ts +7 -0
  400. package/dist/esm/3d/immutable-3d.js +6 -0
  401. package/dist/esm/3d/index.d.ts +49 -0
  402. package/dist/esm/3d/index.js +49 -0
  403. package/dist/esm/3d/is-equal-3d.d.ts +8 -0
  404. package/dist/esm/3d/is-equal-3d.js +7 -0
  405. package/dist/esm/3d/is-equal-approx-3d.d.ts +9 -0
  406. package/dist/esm/3d/is-equal-approx-3d.js +10 -0
  407. package/dist/esm/3d/is-infinite-3d.d.ts +7 -0
  408. package/dist/esm/3d/is-infinite-3d.js +11 -0
  409. package/dist/esm/3d/is-nan-3d.d.ts +7 -0
  410. package/dist/esm/3d/is-nan-3d.js +6 -0
  411. package/dist/esm/3d/is-opposite-3d.d.ts +8 -0
  412. package/dist/esm/3d/is-opposite-3d.js +7 -0
  413. package/dist/esm/3d/is-zero-3d.d.ts +7 -0
  414. package/dist/esm/3d/is-zero-3d.js +6 -0
  415. package/dist/esm/3d/lerp-3d.d.ts +9 -0
  416. package/dist/esm/3d/lerp-3d.js +12 -0
  417. package/dist/esm/3d/limit-max-3d.d.ts +9 -0
  418. package/dist/esm/3d/limit-max-3d.js +9 -0
  419. package/dist/esm/3d/limit-min-3d.d.ts +9 -0
  420. package/dist/esm/3d/limit-min-3d.js +9 -0
  421. package/dist/esm/3d/look-at-3d.d.ts +10 -0
  422. package/dist/esm/3d/look-at-3d.js +10 -0
  423. package/dist/esm/3d/magnitude-3d.d.ts +7 -0
  424. package/dist/esm/3d/magnitude-3d.js +6 -0
  425. package/dist/esm/3d/magnitude-sq-3d.d.ts +7 -0
  426. package/dist/esm/3d/magnitude-sq-3d.js +6 -0
  427. package/dist/esm/3d/multiply-3d.d.ts +8 -0
  428. package/dist/esm/3d/multiply-3d.js +11 -0
  429. package/dist/esm/3d/negate-3d.d.ts +7 -0
  430. package/dist/esm/3d/negate-3d.js +6 -0
  431. package/dist/esm/3d/normalize-3d.d.ts +8 -0
  432. package/dist/esm/3d/normalize-3d.js +8 -0
  433. package/dist/esm/3d/one-3d.d.ts +6 -0
  434. package/dist/esm/3d/one-3d.js +5 -0
  435. package/dist/esm/3d/project-3d.d.ts +10 -0
  436. package/dist/esm/3d/project-3d.js +13 -0
  437. package/dist/esm/3d/random-3d.d.ts +7 -0
  438. package/dist/esm/3d/random-3d.js +7 -0
  439. package/dist/esm/3d/reflect-3d.d.ts +9 -0
  440. package/dist/esm/3d/reflect-3d.js +12 -0
  441. package/dist/esm/3d/rotate-x-3d.d.ts +9 -0
  442. package/dist/esm/3d/rotate-x-3d.js +22 -0
  443. package/dist/esm/3d/rotate-y-3d.d.ts +9 -0
  444. package/dist/esm/3d/rotate-y-3d.js +22 -0
  445. package/dist/esm/3d/rotate-z-3d.d.ts +9 -0
  446. package/dist/esm/3d/rotate-z-3d.js +22 -0
  447. package/dist/esm/3d/set-magnitude-3d.d.ts +9 -0
  448. package/dist/esm/3d/set-magnitude-3d.js +9 -0
  449. package/dist/esm/3d/subtract-3d.d.ts +8 -0
  450. package/dist/esm/3d/subtract-3d.js +11 -0
  451. package/dist/esm/3d/types.d.ts +4 -0
  452. package/dist/esm/3d/types.js +1 -0
  453. package/dist/esm/3d/zero-3d.d.ts +6 -0
  454. package/dist/esm/3d/zero-3d.js +5 -0
  455. package/dist/esm/4d/add-4d.d.ts +8 -0
  456. package/dist/esm/4d/add-4d.js +12 -0
  457. package/dist/esm/4d/angle-between-4d.d.ts +10 -0
  458. package/dist/esm/4d/angle-between-4d.js +11 -0
  459. package/dist/esm/4d/angle-w-4d.d.ts +7 -0
  460. package/dist/esm/4d/angle-w-4d.js +6 -0
  461. package/dist/esm/4d/angle-x-4d.d.ts +7 -0
  462. package/dist/esm/4d/angle-x-4d.js +6 -0
  463. package/dist/esm/4d/angle-y-4d.d.ts +7 -0
  464. package/dist/esm/4d/angle-y-4d.js +6 -0
  465. package/dist/esm/4d/angle-z-4d.d.ts +7 -0
  466. package/dist/esm/4d/angle-z-4d.js +6 -0
  467. package/dist/esm/4d/clamp-4d.d.ts +10 -0
  468. package/dist/esm/4d/clamp-4d.js +14 -0
  469. package/dist/esm/4d/clone-4d.d.ts +7 -0
  470. package/dist/esm/4d/clone-4d.js +6 -0
  471. package/dist/esm/4d/distance-4d.d.ts +8 -0
  472. package/dist/esm/4d/distance-4d.js +7 -0
  473. package/dist/esm/4d/distance-chebyshev-4d.d.ts +8 -0
  474. package/dist/esm/4d/distance-chebyshev-4d.js +19 -0
  475. package/dist/esm/4d/distance-manhattan-4d.d.ts +8 -0
  476. package/dist/esm/4d/distance-manhattan-4d.js +10 -0
  477. package/dist/esm/4d/distance-minkowski-4d.d.ts +9 -0
  478. package/dist/esm/4d/distance-minkowski-4d.js +12 -0
  479. package/dist/esm/4d/distance-sq-4d.d.ts +9 -0
  480. package/dist/esm/4d/distance-sq-4d.js +8 -0
  481. package/dist/esm/4d/divide-4d.d.ts +8 -0
  482. package/dist/esm/4d/divide-4d.js +12 -0
  483. package/dist/esm/4d/dot-4d.d.ts +8 -0
  484. package/dist/esm/4d/dot-4d.js +7 -0
  485. package/dist/esm/4d/from-object-4d.d.ts +12 -0
  486. package/dist/esm/4d/from-object-4d.js +11 -0
  487. package/dist/esm/4d/immutable-4d.d.ts +7 -0
  488. package/dist/esm/4d/immutable-4d.js +6 -0
  489. package/dist/esm/4d/index.d.ts +44 -0
  490. package/dist/esm/4d/index.js +44 -0
  491. package/dist/esm/4d/is-equal-4d.d.ts +8 -0
  492. package/dist/esm/4d/is-equal-4d.js +7 -0
  493. package/dist/esm/4d/is-equal-approx-4d.d.ts +9 -0
  494. package/dist/esm/4d/is-equal-approx-4d.js +11 -0
  495. package/dist/esm/4d/is-infinite-4d.d.ts +7 -0
  496. package/dist/esm/4d/is-infinite-4d.js +13 -0
  497. package/dist/esm/4d/is-nan-4d.d.ts +7 -0
  498. package/dist/esm/4d/is-nan-4d.js +6 -0
  499. package/dist/esm/4d/is-opposite-4d.d.ts +8 -0
  500. package/dist/esm/4d/is-opposite-4d.js +7 -0
  501. package/dist/esm/4d/is-zero-4d.d.ts +7 -0
  502. package/dist/esm/4d/is-zero-4d.js +6 -0
  503. package/dist/esm/4d/lerp-4d.d.ts +9 -0
  504. package/dist/esm/4d/lerp-4d.js +13 -0
  505. package/dist/esm/4d/limit-max-4d.d.ts +9 -0
  506. package/dist/esm/4d/limit-max-4d.js +9 -0
  507. package/dist/esm/4d/limit-min-4d.d.ts +9 -0
  508. package/dist/esm/4d/limit-min-4d.js +9 -0
  509. package/dist/esm/4d/look-at-4d.d.ts +10 -0
  510. package/dist/esm/4d/look-at-4d.js +10 -0
  511. package/dist/esm/4d/magnitude-4d.d.ts +7 -0
  512. package/dist/esm/4d/magnitude-4d.js +6 -0
  513. package/dist/esm/4d/magnitude-sq-4d.d.ts +8 -0
  514. package/dist/esm/4d/magnitude-sq-4d.js +7 -0
  515. package/dist/esm/4d/multiply-4d.d.ts +8 -0
  516. package/dist/esm/4d/multiply-4d.js +12 -0
  517. package/dist/esm/4d/negate-4d.d.ts +7 -0
  518. package/dist/esm/4d/negate-4d.js +6 -0
  519. package/dist/esm/4d/normalize-4d.d.ts +8 -0
  520. package/dist/esm/4d/normalize-4d.js +13 -0
  521. package/dist/esm/4d/one-4d.d.ts +6 -0
  522. package/dist/esm/4d/one-4d.js +5 -0
  523. package/dist/esm/4d/project-4d.d.ts +10 -0
  524. package/dist/esm/4d/project-4d.js +14 -0
  525. package/dist/esm/4d/random-4d.d.ts +7 -0
  526. package/dist/esm/4d/random-4d.js +17 -0
  527. package/dist/esm/4d/reflect-4d.d.ts +9 -0
  528. package/dist/esm/4d/reflect-4d.js +17 -0
  529. package/dist/esm/4d/set-magnitude-4d.d.ts +9 -0
  530. package/dist/esm/4d/set-magnitude-4d.js +14 -0
  531. package/dist/esm/4d/subtract-4d.d.ts +8 -0
  532. package/dist/esm/4d/subtract-4d.js +12 -0
  533. package/dist/esm/4d/types.d.ts +4 -0
  534. package/dist/esm/4d/types.js +1 -0
  535. package/dist/esm/4d/zero-4d.d.ts +6 -0
  536. package/dist/esm/4d/zero-4d.js +5 -0
  537. package/dist/esm/index.d.ts +7 -0
  538. package/dist/esm/index.js +7 -0
  539. package/dist/esm/slerp.d.ts +21 -0
  540. package/dist/esm/slerp.js +23 -0
  541. package/dist/{vec4.d.ts → esm/vec2.d.ts} +165 -157
  542. package/dist/{vec2.js → esm/vec2.js} +14 -6
  543. package/dist/esm/vec3.d.ts +614 -0
  544. package/dist/{vec3.js → esm/vec3.js} +190 -123
  545. package/dist/esm/vec4.d.ts +602 -0
  546. package/dist/{vec4.js → esm/vec4.js} +211 -130
  547. package/docs/ArrayVector2D.md +1090 -0
  548. package/docs/ArrayVector3D.md +1162 -0
  549. package/docs/ArrayVector4D.md +1019 -0
  550. package/docs/README.md +13 -0
  551. package/docs/Slerp.md +64 -0
  552. package/docs/Vec2.md +1827 -0
  553. package/docs/Vec3.md +2084 -0
  554. package/docs/Vec4.md +2031 -0
  555. package/package.json +95 -70
  556. package/VEC2.md +0 -147
  557. package/VEC3.md +0 -159
  558. package/VEC4.md +0 -146
  559. package/dist/index.d.ts +0 -3
  560. package/dist/index.js +0 -3
package/package.json CHANGED
@@ -1,70 +1,95 @@
1
- {
2
- "name": "@fimbul-works/vec",
3
- "version": "1.0.3",
4
- "description": "A comprehensive TypeScript vector math library providing 2D, 3D, and 4D vector operations with a focus on performance and type safety.",
5
- "type": "module",
6
- "private": false,
7
- "license": "MIT",
8
- "author": "FimbulWorks <contact@fimbul.works>",
9
- "homepage": "https://github.com/fimbul-works/vec#readme",
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/fimbul-works/vec.git"
13
- },
14
- "bugs": {
15
- "url": "https://github.com/fimbul-works/vec/issues"
16
- },
17
- "keywords": [
18
- "2d",
19
- "3d",
20
- "4d",
21
- "computer-graphics",
22
- "game-development",
23
- "geometry",
24
- "graphics",
25
- "linear-algebra",
26
- "math",
27
- "physics",
28
- "vector-math",
29
- "vector"
30
- ],
31
- "main": "./dist/index.js",
32
- "module": "./dist/index.js",
33
- "types": "./dist/index.d.ts",
34
- "files": ["dist", "README.md", "VEC2.md", "VEC3.md", "VEC4.md", "LICENSE"],
35
- "sideEffects": false,
36
- "scripts": {
37
- "dev": "tsc --watch",
38
- "build": "tsc --build --clean && tsc",
39
- "prepublishOnly": "npm run build"
40
- },
41
- "exports": {
42
- ".": {
43
- "types": "./dist/index.d.ts",
44
- "import": "./dist/index.js",
45
- "require": "./dist/index.js"
46
- },
47
- "./vec2": {
48
- "types": "./dist/vec2.d.ts",
49
- "import": "./dist/vec2.js",
50
- "require": "./dist/vec2.js"
51
- },
52
- "./vec3": {
53
- "types": "./dist/vec3.d.ts",
54
- "import": "./dist/vec3.js",
55
- "require": "./dist/vec3.js"
56
- },
57
- "./vec4": {
58
- "types": "./dist/vec4.d.ts",
59
- "import": "./dist/vec4.js",
60
- "require": "./dist/vec4.js"
61
- }
62
- },
63
- "engines": {
64
- "node": ">=16.0.0"
65
- },
66
- "devDependencies": {
67
- "@biomejs/biome": "^1.9.4",
68
- "typescript": "^5.6.2"
69
- }
70
- }
1
+ {
2
+ "name": "@fimbul-works/vec",
3
+ "version": "2.0.0",
4
+ "description": "A comprehensive TypeScript vector math library providing 2D, 3D, and 4D vector operations with a focus on performance and type safety.",
5
+ "type": "module",
6
+ "private": false,
7
+ "license": "MIT",
8
+ "author": "FimbulWorks <contact@fimbul.works>",
9
+ "homepage": "https://github.com/fimbul-works/vec#readme",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/fimbul-works/vec.git"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/fimbul-works/vec/issues"
16
+ },
17
+ "keywords": [
18
+ "2d",
19
+ "3d",
20
+ "4d",
21
+ "computer-graphics",
22
+ "game-development",
23
+ "gamedev",
24
+ "geometry",
25
+ "graphics",
26
+ "linear-algebra",
27
+ "math",
28
+ "physics",
29
+ "vector-math",
30
+ "vector"
31
+ ],
32
+ "main": "./dist/cjs/index.js",
33
+ "module": "./dist/esm/index.js",
34
+ "types": "./dist/esm/index.d.ts",
35
+ "files": [
36
+ "dist",
37
+ "docs",
38
+ "README.md",
39
+ "LICENSE"
40
+ ],
41
+ "sideEffects": false,
42
+ "scripts": {
43
+ "build": "rm -rf dist && pnpm build:esm && pnpm build:cjs pnpm build:docs",
44
+ "build:esm": "tsc -p tsconfig.json",
45
+ "build:cjs": "tsc -p tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
46
+ "build:docs": "typedoc",
47
+ "format": "npx biome format --write src",
48
+ "test": "vitest",
49
+ "prepublishOnly": "npm run build"
50
+ },
51
+ "exports": {
52
+ ".": {
53
+ "types": "./dist/esm/index.d.ts",
54
+ "import": "./dist/esm/index.js",
55
+ "require": "./dist/cjs/index.js"
56
+ },
57
+ "./2d": {
58
+ "types": "./dist/esm/2d/index.d.ts",
59
+ "import": "./dist/esm/2d/index.js",
60
+ "require": "./dist/cjs/2d/index.js"
61
+ },
62
+ "./3d": {
63
+ "types": "./dist/esm/3d/index.d.ts",
64
+ "import": "./dist/esm/3d/index.js",
65
+ "require": "./dist/cjs/3d/index.js"
66
+ },
67
+ "./4d": {
68
+ "types": "./dist/esm/4d/index.d.ts",
69
+ "import": "./dist/esm/4d/index.js",
70
+ "require": "./dist/cjs/4d/index.js"
71
+ },
72
+ "./vec2": {
73
+ "types": "./dist/esm/vec2.d.ts",
74
+ "import": "./dist/esm/vec2.js",
75
+ "require": "./dist/cjs/vec2.js"
76
+ },
77
+ "./vec3": {
78
+ "types": "./dist/esm/vec3.d.ts",
79
+ "import": "./dist/esm/vec3.js",
80
+ "require": "./dist/cjs/vec3.js"
81
+ },
82
+ "./vec4": {
83
+ "types": "./dist/esm/vec4.d.ts",
84
+ "import": "./dist/esm/vec4.js",
85
+ "require": "./dist/cjs/vec4.js"
86
+ }
87
+ },
88
+ "devDependencies": {
89
+ "@biomejs/biome": "^2.3.11",
90
+ "typedoc": "^0.28.15",
91
+ "typedoc-plugin-markdown": "^4.9.0",
92
+ "typescript": "^5.9.3",
93
+ "vitest": "^4.0.16"
94
+ }
95
+ }
package/VEC2.md DELETED
@@ -1,147 +0,0 @@
1
- # Vec2
2
-
3
- A 2D vector implementation with comprehensive mathematical operations and utility methods.
4
-
5
- ## Constructor
6
-
7
- ### Vec2
8
-
9
- - `constructor(x: number = 0, y: number = x)`: Creates a new vector with the given x and y coordinates
10
-
11
- ## Static Methods
12
-
13
- ### Creation and Conversion
14
-
15
- - `fromArray(arr: [number, number] | number[])`: Creates a Vec2 from an array
16
- - `fromObject(obj: { x: number; y: number })`: Creates a Vec2 from an object with x and y properties
17
- - `fromJSON(json: { x: number; y: number })`: Creates a Vec2 from a JSON object
18
- - `fromPolarCoords(r: number, theta: number)`: Creates a Vec2 from polar coordinates
19
- - `immutable(x: number = 0, y: number = 0)`: Creates an immutable Vec2-like object
20
- - `one()`: Creates a vector with all components set to 1.0
21
- - `random(random: () => number = Math.random)`: Creates a random unit vector
22
- - `zero()`: Creates a zero vector
23
-
24
- ### Vector Operations
25
-
26
- - `add(v: Vec2, w: Vec2)`: Adds two vectors
27
- - `subtract(v: Vec2, w: Vec2)`: Subtracts one vector from another
28
- - `multiply(v: Vec2, w: Vec2)`: Multiplies two vectors component-wise
29
- - `divide(v: Vec2, w: Vec2)`: Divides two vectors component-wise
30
- - `dot(v: Vec2, w: Vec2)`: Calculates the dot product
31
- - `cross(v: Vec2, w: Vec2)`: Calculates the cross product
32
- - `scale(v: Vec2, c: number)`: Scales a vector by a scalar value
33
- - `negate(v: Vec2)`: Negates a vector
34
- - `normalize(v: Vec2)`: Normalizes a vector
35
- - `project(v: Vec2, w: Vec2)`: Projects one vector onto another
36
- - `reflect(v: Vec2, normal: Vec2)`: Reflects a vector across a normal vector
37
- - `lerp(v: Vec2, w: Vec2, t: number)`: Performs linear interpolation between vectors
38
-
39
- ### Distance Calculations
40
-
41
- - `distance(v: Vec2, w: Vec2)`: Calculates Euclidean distance between vectors
42
- - `distanceSq(v: Vec2, w: Vec2)`: Calculates squared Euclidean distance
43
- - `distanceChebyshev(v: Vec2, w: Vec2)`: Calculates Chebyshev distance
44
- - `distanceManhattan(v: Vec2, w: Vec2)`: Calculates Manhattan distance
45
- - `distanceMinkowski(v: Vec2, w: Vec2, p: number)`: Calculates Minkowski distance
46
-
47
- ### Comparison and State
48
-
49
- - `angleBetween(v: Vec2, w: Vec2)`: Calculates angle between vectors
50
- - `equals(v: Vec2, w: Vec2, epsilon?: number)`: Compares vectors with optional epsilon
51
- - `isInfinite(v: Vec2)`: Checks if vector has infinite components
52
- - `isNaN(v: Vec2)`: Checks if vector has NaN components
53
- - `isZero(v: Vec2)`: Checks if vector is zero
54
- - `satisfyEquality(v: Vec2, w: Vec2)`: Checks if vectors are equal
55
- - `satisfyOpposition(v: Vec2, w: Vec2)`: Checks if vectors are opposite
56
-
57
- ## Instance Properties
58
-
59
- ### Getters and Setters
60
-
61
- - `x`: Gets or sets the x-component
62
- - `y`: Gets or sets the y-component
63
- - `xy`: Gets or sets both components as an array
64
- - `magnitude`: Gets or sets the vector's magnitude
65
- - `magnitudeSq`: Gets the squared magnitude (read-only)
66
- - `angleX`: Gets or sets the angle with positive x-axis
67
- - `angleY`: Gets or sets the angle with positive y-axis
68
-
69
- ## Instance Methods
70
-
71
- ### Vector Operations
72
-
73
- - `add(v: Vec2)`: Adds another vector
74
- - `subtract(v: Vec2)`: Subtracts another vector
75
- - `multiply(v: Vec2)`: Multiplies with another vector
76
- - `divide(v: Vec2)`: Divides by another vector
77
- - `scale(c: number)`: Scales by a scalar value
78
- - `normalize()`: Normalizes the vector
79
- - `negate()`: Negates the vector
80
- - `project(v: Vec2)`: Projects onto another vector
81
- - `reflect(normal: Vec2)`: Reflects across a normal vector
82
- - `rotateZ(phi: number)`: Rotates around Z-axis
83
- - `turnLeft()`: Rotates 90 degrees left
84
- - `turnRight()`: Rotates 90 degrees right
85
- - `zero()`: Sets to zero vector
86
- - `random(random?: () => number)`: Sets to random direction
87
-
88
- ### Distance Calculations
89
-
90
- - `distance(v: Vec2)`: Calculates Euclidean distance to another vector
91
- - `distanceSq(v: Vec2)`: Calculates squared Euclidean distance
92
- - `distanceChebyshev(v: Vec2)`: Calculates Chebyshev distance
93
- - `distanceManhattan(v: Vec2)`: Calculates Manhattan distance
94
- - `distanceMinkowski(v: Vec2, p: number)`: Calculates Minkowski distance
95
-
96
- ### Comparison and State
97
-
98
- - `angleBetween(v: Vec2)`: Calculates angle to another vector
99
- - `equals(v: Vec2, epsilon?: number)`: Compares with another vector
100
- - `isInfinite()`: Checks for infinite components
101
- - `isNaN()`: Checks for NaN components
102
- - `isZero()`: Checks if zero vector
103
- - `satisfyEquality(v: Vec2)`: Checks equality with another vector
104
- - `satisfyOpposition(v: Vec2)`: Checks opposition with another vector
105
-
106
- ### Magnitude Operations
107
-
108
- - `clamp(min: number, max: number)`: Clamps magnitude between values
109
- - `limitMax(max: number)`: Limits maximum magnitude
110
- - `limitMin(min: number)`: Limits minimum magnitude
111
-
112
- ### Utility Methods
113
-
114
- - `clone()`: Creates a copy of the vector
115
- - `copy(v: Vec2)`: Copies components from another vector
116
- - `lookAt(v: Vec2)`: Points towards another vector
117
- - `toString()`: Returns string representation
118
- - `toObject()`: Converts to plain object
119
- - `toJSON()`: Converts to JSON format
120
-
121
- ## Iteration
122
-
123
- Vec2 implements the iterator protocol, allowing it to be used with for...of loops and spread operators. The iterator yields the x and y components in order.
124
-
125
- ## Example Usage
126
-
127
- ```typescript
128
- // Create vectors
129
- const v1 = new Vec2(3, 4);
130
- const v2 = new Vec2(1, 2);
131
-
132
- // Basic operations
133
- const sum = Vec2.add(v1, v2);
134
- const dot = Vec2.dot(v1, v2);
135
-
136
- // Method chaining
137
- v1.normalize()
138
- .scale(2)
139
- .rotate(Math.PI / 4);
140
-
141
- // Get properties
142
- console.log(v1.magnitude);
143
- console.log(v1.angleX);
144
-
145
- // Convert to array
146
- const [x, y] = v1;
147
- ```
package/VEC3.md DELETED
@@ -1,159 +0,0 @@
1
- # Vec3
2
-
3
- A 3D vector implementation with comprehensive mathematical operations and utility methods.
4
-
5
- ## Constructor
6
-
7
- ### Vec3
8
-
9
- - `constructor(x: number = 0, y: number = 0, z: number = 0)`: Creates a new vector with the given x, y and z coordinates
10
-
11
- ## Static Methods
12
-
13
- ### Creation and Conversion
14
-
15
- - `fromArray(arr: [number, number, number] | number[])`: Creates a Vec3 from an array
16
- - `fromObject(obj: { x: number; y: number; z: number })`: Creates a Vec3 from an object with x, y and z properties
17
- - `fromJSON(json: { x: number; y: number; z: number })`: Creates a Vec3 from a JSON object
18
- - `fromCylindricalCoords(r: number, phi: number, z: number)`: Creates a Vec3 from cylindrical coordinates
19
- - `fromSphericalCoords(r: number, theta: number, phi: number)`: Creates a Vec3 from spherical coordinates
20
- - `immutable(x: number = 0, y: number = 0, z: number = 0)`: Creates an immutable Vec3-like object
21
- - `one()`: Creates a vector with all components set to 1.0
22
- - `random(random: () => number = Math.random)`: Creates a random unit vector
23
- - `zero()`: Creates a zero vector
24
-
25
- ### Vector Operations
26
-
27
- - `add(v: Vec3, w: Vec3)`: Adds two vectors
28
- - `subtract(v: Vec3, w: Vec3)`: Subtracts one vector from another
29
- - `multiply(v: Vec3, w: Vec3)`: Multiplies two vectors component-wise
30
- - `divide(v: Vec3, w: Vec3)`: Divides two vectors component-wise
31
- - `dot(v: Vec3, w: Vec3)`: Calculates the dot product
32
- - `cross(v: Vec3, w: Vec3)`: Calculates the cross product
33
- - `scale(v: Vec3, c: number)`: Scales a vector by a scalar value
34
- - `negate(v: Vec3)`: Negates a vector
35
- - `normalize(v: Vec3)`: Normalizes a vector
36
- - `project(v: Vec3, w: Vec3)`: Projects one vector onto another
37
- - `reflect(v: Vec3, normal: Vec3)`: Reflects a vector across a normal vector
38
- - `lerp(v: Vec3, w: Vec3, t: number)`: Performs linear interpolation between vectors
39
-
40
- ### Distance Calculations
41
-
42
- - `distance(v: Vec3, w: Vec3)`: Calculates Euclidean distance between vectors
43
- - `distanceSq(v: Vec3, w: Vec3)`: Calculates squared Euclidean distance
44
- - `distanceChebyshev(v: Vec3, w: Vec3)`: Calculates Chebyshev distance
45
- - `distanceManhattan(v: Vec3, w: Vec3)`: Calculates Manhattan distance
46
- - `distanceMinkowski(v: Vec3, w: Vec3, p: number)`: Calculates Minkowski distance
47
-
48
- ### Comparison and State
49
-
50
- - `angleBetween(v: Vec3, w: Vec3)`: Calculates angle between vectors
51
- - `equals(v: Vec3, w: Vec3, epsilon?: number)`: Compares vectors with optional epsilon
52
- - `isInfinite(v: Vec3)`: Checks if vector has infinite components
53
- - `isNaN(v: Vec3)`: Checks if vector has NaN components
54
- - `isZero(v: Vec3)`: Checks if vector is zero
55
- - `satisfyEquality(v: Vec3, w: Vec3)`: Checks if vectors are equal
56
- - `satisfyOpposition(v: Vec3, w: Vec3)`: Checks if vectors are opposite
57
-
58
- ## Instance Properties
59
-
60
- ### Getters and Setters
61
-
62
- - `x`: Gets or sets the x-component
63
- - `y`: Gets or sets the y-component
64
- - `z`: Gets or sets the z-component
65
- - `xyz`: Gets or sets all components as an array
66
- - `magnitude`: Gets or sets the vector's magnitude
67
- - `magnitudeSq`: Gets the squared magnitude (read-only)
68
- - `angleX`: Gets the angle with positive x-axis
69
- - `angleY`: Gets the angle with positive y-axis
70
- - `angleZ`: Gets the angle with positive z-axis
71
-
72
- ## Instance Methods
73
-
74
- ### Vector Operations
75
-
76
- - `add(v: Vec3)`: Adds another vector
77
- - `subtract(v: Vec3)`: Subtracts another vector
78
- - `multiply(v: Vec3)`: Multiplies with another vector
79
- - `divide(v: Vec3)`: Divides by another vector
80
- - `scale(c: number)`: Scales by a scalar value
81
- - `normalize()`: Normalizes the vector
82
- - `negate()`: Negates the vector
83
- - `project(v: Vec3)`: Projects onto another vector
84
- - `reflect(normal: Vec3)`: Reflects across a normal vector
85
- - `rotateX(phi: number)`: Rotates around X-axis
86
- - `rotateY(phi: number)`: Rotates around Y-axis
87
- - `rotateZ(phi: number)`: Rotates around Z-axis
88
- - `zero()`: Sets to zero vector
89
- - `random(random?: () => number)`: Sets to random direction
90
-
91
- ### Distance Calculations
92
-
93
- - `distance(v: Vec3)`: Calculates Euclidean distance to another vector
94
- - `distanceSq(v: Vec3)`: Calculates squared Euclidean distance
95
- - `distanceChebyshev(v: Vec3)`: Calculates Chebyshev distance
96
- - `distanceManhattan(v: Vec3)`: Calculates Manhattan distance
97
- - `distanceMinkowski(v: Vec3, p: number)`: Calculates Minkowski distance
98
-
99
- ### Cross Product
100
-
101
- - `cross(v: Vec3)`: Calculates the cross product with another vector
102
-
103
- ### Comparison and State
104
-
105
- - `angleBetween(v: Vec3)`: Calculates angle to another vector
106
- - `equals(v: Vec3, epsilon?: number)`: Compares with another vector
107
- - `isInfinite()`: Checks for infinite components
108
- - `isNaN()`: Checks for NaN components
109
- - `isZero()`: Checks if zero vector
110
- - `satisfyEquality(v: Vec3)`: Checks equality with another vector
111
- - `satisfyOpposition(v: Vec3)`: Checks opposition with another vector
112
-
113
- ### Magnitude Operations
114
-
115
- - `clamp(min: number, max: number)`: Clamps magnitude between values
116
- - `limitMax(max: number)`: Limits maximum magnitude
117
- - `limitMin(min: number)`: Limits minimum magnitude
118
-
119
- ### Utility Methods
120
-
121
- - `clone()`: Creates a copy of the vector
122
- - `copy(v: Vec3)`: Copies components from another vector
123
- - `lookAt(v: Vec3)`: Points towards another vector
124
- - `toString()`: Returns string representation
125
- - `toObject()`: Converts to plain object
126
- - `toJSON()`: Converts to JSON format
127
-
128
- ## Iteration
129
-
130
- Vec3 implements the iterator protocol, allowing it to be used with for...of loops and spread operators. The iterator yields the x, y, and z components in order.
131
-
132
- ## Example Usage
133
-
134
- ```typescript
135
- // Create vectors
136
- const v1 = new Vec3(3, 4, 5);
137
- const v2 = new Vec3(1, 2, 3);
138
-
139
- // Basic operations
140
- const sum = Vec3.add(v1, v2);
141
- const crossProduct = Vec3.cross(v1, v2);
142
- const dot = Vec3.dot(v1, v2);
143
-
144
- // Method chaining
145
- v1.normalize()
146
- .scale(2)
147
- .rotateX(Math.PI / 4);
148
-
149
- // Get properties
150
- console.log(v1.magnitude);
151
- console.log(v1.angleX);
152
-
153
- // Convert to array
154
- const [x, y, z] = v1;
155
-
156
- // Create from special coordinates
157
- const cylindrical = Vec3.fromCylindricalCoords(2, Math.PI/4, 5);
158
- const spherical = Vec3.fromSphericalCoords(2, Math.PI/3, Math.PI/4);
159
- ```
package/VEC4.md DELETED
@@ -1,146 +0,0 @@
1
- # Vec4
2
-
3
- A 4D vector implementation with comprehensive mathematical operations and utility methods.
4
-
5
- ## Constructor
6
-
7
- ### Vec4
8
-
9
- - `constructor(x: number = 0, y: number = 0, z: number = 0, w: number = 0)`: Creates a new vector with the given x, y, z, and w coordinates
10
-
11
- ## Static Methods
12
-
13
- ### Creation and Conversion
14
-
15
- - `fromArray(arr: [number, number, number, number] | number[])`: Creates a Vec4 from an array
16
- - `fromObject(obj: { x: number; y: number; z: number; w: number })`: Creates a Vec4 from an object with x, y, z, and w properties
17
- - `fromJSON(json: { x: number; y: number; z: number; w: number })`: Creates a Vec4 from a JSON object
18
- - `immutable(x: number = 0, y: number = 0, z: number = 0, w: number = 0)`: Creates an immutable Vec4-like object
19
- - `one()`: Creates a vector with all components set to 1.0
20
- - `random(random: () => number = Math.random)`: Creates a random unit vector
21
- - `zero()`: Creates a zero vector
22
-
23
- ### Vector Operations
24
-
25
- - `add(v: Vec4, w: Vec4)`: Adds two vectors
26
- - `subtract(v: Vec4, w: Vec4)`: Subtracts one vector from another
27
- - `multiply(v: Vec4, w: Vec4)`: Multiplies two vectors component-wise
28
- - `divide(v: Vec4, w: Vec4)`: Divides two vectors component-wise
29
- - `dot(v: Vec4, w: Vec4)`: Calculates the dot product
30
- - `scale(v: Vec4, c: number)`: Scales a vector by a scalar value
31
- - `negate(v: Vec4)`: Negates a vector
32
- - `normalize(v: Vec4)`: Normalizes a vector
33
- - `project(v: Vec4, w: Vec4)`: Projects one vector onto another
34
- - `reflect(v: Vec4, normal: Vec4)`: Reflects a vector across a normal vector
35
- - `lerp(v: Vec4, w: Vec4, t: number)`: Performs linear interpolation between vectors
36
-
37
- ### Distance Calculations
38
-
39
- - `distance(v: Vec4, w: Vec4)`: Calculates Euclidean distance between vectors
40
- - `distanceSq(v: Vec4, w: Vec4)`: Calculates squared Euclidean distance
41
- - `distanceChebyshev(v: Vec4, w: Vec4)`: Calculates Chebyshev distance
42
- - `distanceManhattan(v: Vec4, w: Vec4)`: Calculates Manhattan distance
43
- - `distanceMinkowski(v: Vec4, w: Vec4, p: number)`: Calculates Minkowski distance
44
-
45
- ### Comparison and State
46
-
47
- - `angleBetween(v: Vec4, w: Vec4)`: Calculates angle between vectors
48
- - `equals(v: Vec4, w: Vec4, epsilon?: number)`: Compares vectors with optional epsilon
49
- - `isInfinite(v: Vec4)`: Checks if vector has infinite components
50
- - `isNaN(v: Vec4)`: Checks if vector has NaN components
51
- - `isZero(v: Vec4)`: Checks if vector is zero
52
- - `satisfyEquality(v: Vec4, w: Vec4)`: Checks if vectors are equal
53
- - `satisfyOpposition(v: Vec4, w: Vec4)`: Checks if vectors are opposite
54
-
55
- ## Instance Properties
56
-
57
- ### Getters and Setters
58
-
59
- - `x`: Gets or sets the x-component
60
- - `y`: Gets or sets the y-component
61
- - `z`: Gets or sets the z-component
62
- - `w`: Gets or sets the w-component
63
- - `xyzw`: Gets or sets all components as an array
64
- - `magnitude`: Gets or sets the vector's magnitude
65
- - `magnitudeSq`: Gets the squared magnitude (read-only)
66
- - `angleX`: Gets the angle with positive x-axis
67
- - `angleY`: Gets the angle with positive y-axis
68
- - `angleZ`: Gets the angle with positive z-axis
69
- - `angleW`: Gets the angle with positive w-axis
70
-
71
- ## Instance Methods
72
-
73
- ### Vector Operations
74
-
75
- - `add(v: Vec4)`: Adds another vector
76
- - `subtract(v: Vec4)`: Subtracts another vector
77
- - `multiply(v: Vec4)`: Multiplies with another vector
78
- - `divide(v: Vec4)`: Divides by another vector
79
- - `scale(c: number)`: Scales by a scalar value
80
- - `normalize()`: Normalizes the vector
81
- - `negate()`: Negates the vector
82
- - `project(v: Vec4)`: Projects onto another vector
83
- - `reflect(normal: Vec4)`: Reflects across a normal vector
84
- - `zero()`: Sets to zero vector
85
- - `random(random?: () => number)`: Sets to random direction
86
-
87
- ### Distance Calculations
88
-
89
- - `distance(v: Vec4)`: Calculates Euclidean distance to another vector
90
- - `distanceSq(v: Vec4)`: Calculates squared Euclidean distance
91
- - `distanceChebyshev(v: Vec4)`: Calculates Chebyshev distance
92
- - `distanceManhattan(v: Vec4)`: Calculates Manhattan distance
93
- - `distanceMinkowski(v: Vec4, p: number)`: Calculates Minkowski distance
94
-
95
- ### Comparison and State
96
-
97
- - `angleBetween(v: Vec4)`: Calculates angle to another vector
98
- - `equals(v: Vec4, epsilon?: number)`: Compares with another vector
99
- - `isInfinite()`: Checks for infinite components
100
- - `isNaN()`: Checks for NaN components
101
- - `isZero()`: Checks if zero vector
102
- - `satisfyEquality(v: Vec4)`: Checks equality with another vector
103
- - `satisfyOpposition(v: Vec4)`: Checks opposition with another vector
104
-
105
- ### Magnitude Operations
106
-
107
- - `clamp(min: number, max: number)`: Clamps magnitude between values
108
- - `limitMax(max: number)`: Limits maximum magnitude
109
- - `limitMin(min: number)`: Limits minimum magnitude
110
-
111
- ### Utility Methods
112
-
113
- - `clone()`: Creates a copy of the vector
114
- - `copy(v: Vec4)`: Copies components from another vector
115
- - `lookAt(v: Vec4)`: Points towards another vector
116
- - `toString()`: Returns string representation
117
- - `toObject()`: Converts to plain object
118
- - `toJSON()`: Converts to JSON format
119
-
120
- ## Iteration
121
-
122
- Vec4 implements the iterator protocol, allowing it to be used with for...of loops and spread operators. The iterator yields the x, y, z, and w components in order.
123
-
124
- ## Example Usage
125
-
126
- ```typescript
127
- // Create vectors
128
- const v1 = new Vec4(1, 2, 3, 1); // Homogeneous coordinates
129
- const v2 = new Vec4(0, 1, 0, 0); // Direction vector
130
-
131
- // Basic operations
132
- const sum = Vec4.add(v1, v2);
133
- const dot = Vec4.dot(v1, v2);
134
-
135
- // Method chaining
136
- v1.normalize()
137
- .scale(2)
138
- .limitMax(5);
139
-
140
- // Get properties
141
- console.log(v1.magnitude);
142
- console.log(v1.angleX);
143
-
144
- // Convert to array
145
- const [x, y, z, w] = v1;
146
- ```
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./vec2.js";
2
- export * from "./vec3.js";
3
- export * from "./vec4.js";
package/dist/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from "./vec2.js";
2
- export * from "./vec3.js";
3
- export * from "./vec4.js";