@fimbul-works/vec 1.0.3 → 2.0.0

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