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