@fimbul-works/vec 1.0.3 → 2.0.0

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