@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.
- package/README.md +208 -85
- package/dist/cjs/2d/add-2d.d.ts +8 -0
- package/dist/cjs/2d/add-2d.js +11 -0
- package/dist/cjs/2d/angle-between-2d.d.ts +8 -0
- package/dist/cjs/2d/angle-between-2d.js +11 -0
- package/dist/cjs/2d/angle-x-2d.d.ts +7 -0
- package/dist/cjs/2d/angle-x-2d.js +10 -0
- package/dist/cjs/2d/angle-y-2d.d.ts +7 -0
- package/dist/cjs/2d/angle-y-2d.js +10 -0
- package/dist/cjs/2d/clamp-2d.d.ts +10 -0
- package/dist/cjs/2d/clamp-2d.js +14 -0
- package/dist/cjs/2d/clone-2d.d.ts +7 -0
- package/dist/cjs/2d/clone-2d.js +10 -0
- package/dist/cjs/2d/cross-2d.d.ts +8 -0
- package/dist/cjs/2d/cross-2d.js +11 -0
- package/dist/cjs/2d/distance-2d.d.ts +8 -0
- package/dist/cjs/2d/distance-2d.js +11 -0
- package/dist/cjs/2d/distance-chebyshev-2d.d.ts +8 -0
- package/dist/cjs/2d/distance-chebyshev-2d.js +15 -0
- package/dist/cjs/2d/distance-manhattan-2d.d.ts +8 -0
- package/dist/cjs/2d/distance-manhattan-2d.js +11 -0
- package/dist/cjs/2d/distance-minkowski-2d.d.ts +9 -0
- package/dist/cjs/2d/distance-minkowski-2d.js +12 -0
- package/dist/cjs/2d/distance-sq-2d.d.ts +8 -0
- package/dist/cjs/2d/distance-sq-2d.js +11 -0
- package/dist/cjs/2d/divide-2d.d.ts +8 -0
- package/dist/cjs/2d/divide-2d.js +14 -0
- package/dist/cjs/2d/dot-2d.d.ts +8 -0
- package/dist/cjs/2d/dot-2d.js +11 -0
- package/dist/cjs/2d/from-angle-x-2d.d.ts +8 -0
- package/dist/cjs/2d/from-angle-x-2d.js +14 -0
- package/dist/cjs/2d/from-angle-y-2d.d.ts +8 -0
- package/dist/cjs/2d/from-angle-y-2d.js +14 -0
- package/dist/cjs/2d/from-object-2d.d.ts +10 -0
- package/dist/cjs/2d/from-object-2d.js +10 -0
- package/dist/cjs/2d/from-polar-coords-2d.d.ts +8 -0
- package/dist/cjs/2d/from-polar-coords-2d.js +11 -0
- package/dist/cjs/2d/immutable-2d.d.ts +7 -0
- package/dist/cjs/2d/immutable-2d.js +10 -0
- package/dist/cjs/2d/index.d.ts +47 -0
- package/dist/cjs/2d/index.js +63 -0
- package/dist/cjs/2d/is-equal-2d.d.ts +8 -0
- package/dist/cjs/2d/is-equal-2d.js +11 -0
- package/dist/cjs/2d/is-equal-approx-2d.d.ts +9 -0
- package/dist/cjs/2d/is-equal-approx-2d.js +12 -0
- package/dist/cjs/2d/is-infinite-2d.d.ts +7 -0
- package/dist/cjs/2d/is-infinite-2d.js +13 -0
- package/dist/cjs/2d/is-nan-2d.d.ts +7 -0
- package/dist/cjs/2d/is-nan-2d.js +10 -0
- package/dist/cjs/2d/is-opposite-2d.d.ts +8 -0
- package/dist/cjs/2d/is-opposite-2d.js +11 -0
- package/dist/cjs/2d/is-zero-2d.d.ts +7 -0
- package/dist/cjs/2d/is-zero-2d.js +10 -0
- package/dist/cjs/2d/lerp-2d.d.ts +9 -0
- package/dist/cjs/2d/lerp-2d.js +15 -0
- package/dist/cjs/2d/limit-max-2d.d.ts +9 -0
- package/dist/cjs/2d/limit-max-2d.js +13 -0
- package/dist/cjs/2d/limit-min-2d.d.ts +9 -0
- package/dist/cjs/2d/limit-min-2d.js +13 -0
- package/dist/cjs/2d/look-at-2d.d.ts +10 -0
- package/dist/cjs/2d/look-at-2d.js +14 -0
- package/dist/cjs/2d/magnitude-2d.d.ts +7 -0
- package/dist/cjs/2d/magnitude-2d.js +10 -0
- package/dist/cjs/2d/magnitude-sq-2d.d.ts +7 -0
- package/dist/cjs/2d/magnitude-sq-2d.js +10 -0
- package/dist/cjs/2d/multiply-2d.d.ts +8 -0
- package/dist/cjs/2d/multiply-2d.js +11 -0
- package/dist/cjs/2d/negate-2d.d.ts +7 -0
- package/dist/cjs/2d/negate-2d.js +10 -0
- package/dist/cjs/2d/normalize-2d.d.ts +8 -0
- package/dist/cjs/2d/normalize-2d.js +12 -0
- package/dist/cjs/2d/one-2d.d.ts +6 -0
- package/dist/cjs/2d/one-2d.js +9 -0
- package/dist/cjs/2d/project-2d.d.ts +10 -0
- package/dist/cjs/2d/project-2d.js +17 -0
- package/dist/cjs/2d/random-2d.d.ts +7 -0
- package/dist/cjs/2d/random-2d.js +13 -0
- package/dist/cjs/2d/reflect-2d.d.ts +9 -0
- package/dist/cjs/2d/reflect-2d.js +16 -0
- package/dist/cjs/2d/rotate-2d.d.ts +9 -0
- package/dist/cjs/2d/rotate-2d.js +27 -0
- package/dist/cjs/2d/set-magnitude-2d.d.ts +9 -0
- package/dist/cjs/2d/set-magnitude-2d.js +16 -0
- package/dist/cjs/2d/subtract-2d.d.ts +8 -0
- package/dist/cjs/2d/subtract-2d.js +11 -0
- package/dist/cjs/2d/types.d.ts +4 -0
- package/dist/cjs/2d/types.js +2 -0
- package/dist/cjs/2d/zero-2d.d.ts +6 -0
- package/dist/cjs/2d/zero-2d.js +9 -0
- package/dist/cjs/3d/add-3d.d.ts +8 -0
- package/dist/cjs/3d/add-3d.js +15 -0
- package/dist/cjs/3d/angle-between-3d.d.ts +10 -0
- package/dist/cjs/3d/angle-between-3d.js +14 -0
- package/dist/cjs/3d/angle-x-3d.d.ts +7 -0
- package/dist/cjs/3d/angle-x-3d.js +10 -0
- package/dist/cjs/3d/angle-y-3d.d.ts +7 -0
- package/dist/cjs/3d/angle-y-3d.js +10 -0
- package/dist/cjs/3d/angle-z-3d.d.ts +7 -0
- package/dist/cjs/3d/angle-z-3d.js +10 -0
- package/dist/cjs/3d/clamp-3d.d.ts +10 -0
- package/dist/cjs/3d/clamp-3d.js +18 -0
- package/dist/cjs/3d/clone-3d.d.ts +7 -0
- package/dist/cjs/3d/clone-3d.js +10 -0
- package/dist/cjs/3d/cross-3d.d.ts +8 -0
- package/dist/cjs/3d/cross-3d.js +15 -0
- package/dist/cjs/3d/distance-3d.d.ts +8 -0
- package/dist/cjs/3d/distance-3d.js +11 -0
- package/dist/cjs/3d/distance-chebyshev-3d.d.ts +8 -0
- package/dist/cjs/3d/distance-chebyshev-3d.js +16 -0
- package/dist/cjs/3d/distance-manhattan-3d.d.ts +8 -0
- package/dist/cjs/3d/distance-manhattan-3d.js +11 -0
- package/dist/cjs/3d/distance-minkowski-3d.d.ts +9 -0
- package/dist/cjs/3d/distance-minkowski-3d.js +12 -0
- package/dist/cjs/3d/distance-sq-3d.d.ts +8 -0
- package/dist/cjs/3d/distance-sq-3d.js +11 -0
- package/dist/cjs/3d/divide-3d.d.ts +8 -0
- package/dist/cjs/3d/divide-3d.js +15 -0
- package/dist/cjs/3d/dot-3d.d.ts +8 -0
- package/dist/cjs/3d/dot-3d.js +11 -0
- package/dist/cjs/3d/from-cylindrical-coords-3d.d.ts +9 -0
- package/dist/cjs/3d/from-cylindrical-coords-3d.js +16 -0
- package/dist/cjs/3d/from-object-3d.d.ts +11 -0
- package/dist/cjs/3d/from-object-3d.js +10 -0
- package/dist/cjs/3d/from-spherical-coords-3d.d.ts +9 -0
- package/dist/cjs/3d/from-spherical-coords-3d.js +16 -0
- package/dist/cjs/3d/immutable-3d.d.ts +7 -0
- package/dist/cjs/3d/immutable-3d.js +10 -0
- package/dist/cjs/3d/index.d.ts +49 -0
- package/dist/cjs/3d/index.js +65 -0
- package/dist/cjs/3d/is-equal-3d.d.ts +8 -0
- package/dist/cjs/3d/is-equal-3d.js +11 -0
- package/dist/cjs/3d/is-equal-approx-3d.d.ts +9 -0
- package/dist/cjs/3d/is-equal-approx-3d.js +14 -0
- package/dist/cjs/3d/is-infinite-3d.d.ts +7 -0
- package/dist/cjs/3d/is-infinite-3d.js +15 -0
- package/dist/cjs/3d/is-nan-3d.d.ts +7 -0
- package/dist/cjs/3d/is-nan-3d.js +10 -0
- package/dist/cjs/3d/is-opposite-3d.d.ts +8 -0
- package/dist/cjs/3d/is-opposite-3d.js +11 -0
- package/dist/cjs/3d/is-zero-3d.d.ts +7 -0
- package/dist/cjs/3d/is-zero-3d.js +10 -0
- package/dist/cjs/3d/lerp-3d.d.ts +9 -0
- package/dist/cjs/3d/lerp-3d.js +16 -0
- package/dist/cjs/3d/limit-max-3d.d.ts +9 -0
- package/dist/cjs/3d/limit-max-3d.js +13 -0
- package/dist/cjs/3d/limit-min-3d.d.ts +9 -0
- package/dist/cjs/3d/limit-min-3d.js +13 -0
- package/dist/cjs/3d/look-at-3d.d.ts +10 -0
- package/dist/cjs/3d/look-at-3d.js +14 -0
- package/dist/cjs/3d/magnitude-3d.d.ts +7 -0
- package/dist/cjs/3d/magnitude-3d.js +10 -0
- package/dist/cjs/3d/magnitude-sq-3d.d.ts +7 -0
- package/dist/cjs/3d/magnitude-sq-3d.js +10 -0
- package/dist/cjs/3d/multiply-3d.d.ts +8 -0
- package/dist/cjs/3d/multiply-3d.js +15 -0
- package/dist/cjs/3d/negate-3d.d.ts +7 -0
- package/dist/cjs/3d/negate-3d.js +10 -0
- package/dist/cjs/3d/normalize-3d.d.ts +8 -0
- package/dist/cjs/3d/normalize-3d.js +12 -0
- package/dist/cjs/3d/one-3d.d.ts +6 -0
- package/dist/cjs/3d/one-3d.js +9 -0
- package/dist/cjs/3d/project-3d.d.ts +10 -0
- package/dist/cjs/3d/project-3d.js +17 -0
- package/dist/cjs/3d/random-3d.d.ts +7 -0
- package/dist/cjs/3d/random-3d.js +11 -0
- package/dist/cjs/3d/reflect-3d.d.ts +9 -0
- package/dist/cjs/3d/reflect-3d.js +16 -0
- package/dist/cjs/3d/rotate-x-3d.d.ts +9 -0
- package/dist/cjs/3d/rotate-x-3d.js +26 -0
- package/dist/cjs/3d/rotate-y-3d.d.ts +9 -0
- package/dist/cjs/3d/rotate-y-3d.js +26 -0
- package/dist/cjs/3d/rotate-z-3d.d.ts +9 -0
- package/dist/cjs/3d/rotate-z-3d.js +26 -0
- package/dist/cjs/3d/set-magnitude-3d.d.ts +9 -0
- package/dist/cjs/3d/set-magnitude-3d.js +13 -0
- package/dist/cjs/3d/subtract-3d.d.ts +8 -0
- package/dist/cjs/3d/subtract-3d.js +15 -0
- package/dist/cjs/3d/types.d.ts +4 -0
- package/dist/cjs/3d/types.js +2 -0
- package/dist/cjs/3d/zero-3d.d.ts +6 -0
- package/dist/cjs/3d/zero-3d.js +9 -0
- package/dist/cjs/4d/add-4d.d.ts +8 -0
- package/dist/cjs/4d/add-4d.js +16 -0
- package/dist/cjs/4d/angle-between-4d.d.ts +10 -0
- package/dist/cjs/4d/angle-between-4d.js +15 -0
- package/dist/cjs/4d/angle-w-4d.d.ts +7 -0
- package/dist/cjs/4d/angle-w-4d.js +10 -0
- package/dist/cjs/4d/angle-x-4d.d.ts +7 -0
- package/dist/cjs/4d/angle-x-4d.js +10 -0
- package/dist/cjs/4d/angle-y-4d.d.ts +7 -0
- package/dist/cjs/4d/angle-y-4d.js +10 -0
- package/dist/cjs/4d/angle-z-4d.d.ts +7 -0
- package/dist/cjs/4d/angle-z-4d.js +10 -0
- package/dist/cjs/4d/clamp-4d.d.ts +10 -0
- package/dist/cjs/4d/clamp-4d.js +18 -0
- package/dist/cjs/4d/clone-4d.d.ts +7 -0
- package/dist/cjs/4d/clone-4d.js +10 -0
- package/dist/cjs/4d/distance-4d.d.ts +8 -0
- package/dist/cjs/4d/distance-4d.js +11 -0
- package/dist/cjs/4d/distance-chebyshev-4d.d.ts +8 -0
- package/dist/cjs/4d/distance-chebyshev-4d.js +23 -0
- package/dist/cjs/4d/distance-manhattan-4d.d.ts +8 -0
- package/dist/cjs/4d/distance-manhattan-4d.js +14 -0
- package/dist/cjs/4d/distance-minkowski-4d.d.ts +9 -0
- package/dist/cjs/4d/distance-minkowski-4d.js +16 -0
- package/dist/cjs/4d/distance-sq-4d.d.ts +9 -0
- package/dist/cjs/4d/distance-sq-4d.js +12 -0
- package/dist/cjs/4d/divide-4d.d.ts +8 -0
- package/dist/cjs/4d/divide-4d.js +16 -0
- package/dist/cjs/4d/dot-4d.d.ts +8 -0
- package/dist/cjs/4d/dot-4d.js +11 -0
- package/dist/cjs/4d/from-object-4d.d.ts +12 -0
- package/dist/cjs/4d/from-object-4d.js +15 -0
- package/dist/cjs/4d/immutable-4d.d.ts +7 -0
- package/dist/cjs/4d/immutable-4d.js +10 -0
- package/dist/cjs/4d/index.d.ts +44 -0
- package/dist/cjs/4d/index.js +60 -0
- package/dist/cjs/4d/is-equal-4d.d.ts +8 -0
- package/dist/cjs/4d/is-equal-4d.js +11 -0
- package/dist/cjs/4d/is-equal-approx-4d.d.ts +9 -0
- package/dist/cjs/4d/is-equal-approx-4d.js +15 -0
- package/dist/cjs/4d/is-infinite-4d.d.ts +7 -0
- package/dist/cjs/4d/is-infinite-4d.js +17 -0
- package/dist/cjs/4d/is-nan-4d.d.ts +7 -0
- package/dist/cjs/4d/is-nan-4d.js +10 -0
- package/dist/cjs/4d/is-opposite-4d.d.ts +8 -0
- package/dist/cjs/4d/is-opposite-4d.js +11 -0
- package/dist/cjs/4d/is-zero-4d.d.ts +7 -0
- package/dist/cjs/4d/is-zero-4d.js +10 -0
- package/dist/cjs/4d/lerp-4d.d.ts +9 -0
- package/dist/cjs/4d/lerp-4d.js +17 -0
- package/dist/cjs/4d/limit-max-4d.d.ts +9 -0
- package/dist/cjs/4d/limit-max-4d.js +13 -0
- package/dist/cjs/4d/limit-min-4d.d.ts +9 -0
- package/dist/cjs/4d/limit-min-4d.js +13 -0
- package/dist/cjs/4d/look-at-4d.d.ts +10 -0
- package/dist/cjs/4d/look-at-4d.js +14 -0
- package/dist/cjs/4d/magnitude-4d.d.ts +7 -0
- package/dist/cjs/4d/magnitude-4d.js +10 -0
- package/dist/cjs/4d/magnitude-sq-4d.d.ts +8 -0
- package/dist/cjs/4d/magnitude-sq-4d.js +11 -0
- package/dist/cjs/4d/multiply-4d.d.ts +8 -0
- package/dist/cjs/4d/multiply-4d.js +16 -0
- package/dist/cjs/4d/negate-4d.d.ts +7 -0
- package/dist/cjs/4d/negate-4d.js +10 -0
- package/dist/cjs/4d/normalize-4d.d.ts +8 -0
- package/dist/cjs/4d/normalize-4d.js +17 -0
- package/dist/cjs/4d/one-4d.d.ts +6 -0
- package/dist/cjs/4d/one-4d.js +9 -0
- package/dist/cjs/4d/project-4d.d.ts +10 -0
- package/dist/cjs/4d/project-4d.js +18 -0
- package/dist/cjs/4d/random-4d.d.ts +7 -0
- package/dist/cjs/4d/random-4d.js +21 -0
- package/dist/cjs/4d/reflect-4d.d.ts +9 -0
- package/dist/cjs/4d/reflect-4d.js +21 -0
- package/dist/cjs/4d/set-magnitude-4d.d.ts +9 -0
- package/dist/cjs/4d/set-magnitude-4d.js +18 -0
- package/dist/cjs/4d/subtract-4d.d.ts +8 -0
- package/dist/cjs/4d/subtract-4d.js +16 -0
- package/dist/cjs/4d/types.d.ts +4 -0
- package/dist/cjs/4d/types.js +2 -0
- package/dist/cjs/4d/zero-4d.d.ts +6 -0
- package/dist/cjs/4d/zero-4d.js +9 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.js +23 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/slerp.d.ts +21 -0
- package/dist/cjs/slerp.js +28 -0
- package/dist/{vec2.d.ts → cjs/vec2.d.ts} +10 -4
- package/dist/cjs/vec2.js +889 -0
- package/dist/{vec3.d.ts → cjs/vec3.d.ts} +159 -100
- package/dist/cjs/vec3.js +1045 -0
- package/dist/cjs/vec4.d.ts +602 -0
- package/dist/cjs/vec4.js +1101 -0
- package/dist/esm/2d/add-2d.d.ts +8 -0
- package/dist/esm/2d/add-2d.js +7 -0
- package/dist/esm/2d/angle-between-2d.d.ts +8 -0
- package/dist/esm/2d/angle-between-2d.js +7 -0
- package/dist/esm/2d/angle-x-2d.d.ts +7 -0
- package/dist/esm/2d/angle-x-2d.js +6 -0
- package/dist/esm/2d/angle-y-2d.d.ts +7 -0
- package/dist/esm/2d/angle-y-2d.js +6 -0
- package/dist/esm/2d/clamp-2d.d.ts +10 -0
- package/dist/esm/2d/clamp-2d.js +10 -0
- package/dist/esm/2d/clone-2d.d.ts +7 -0
- package/dist/esm/2d/clone-2d.js +6 -0
- package/dist/esm/2d/cross-2d.d.ts +8 -0
- package/dist/esm/2d/cross-2d.js +7 -0
- package/dist/esm/2d/distance-2d.d.ts +8 -0
- package/dist/esm/2d/distance-2d.js +7 -0
- package/dist/esm/2d/distance-chebyshev-2d.d.ts +8 -0
- package/dist/esm/2d/distance-chebyshev-2d.js +11 -0
- package/dist/esm/2d/distance-manhattan-2d.d.ts +8 -0
- package/dist/esm/2d/distance-manhattan-2d.js +7 -0
- package/dist/esm/2d/distance-minkowski-2d.d.ts +9 -0
- package/dist/esm/2d/distance-minkowski-2d.js +8 -0
- package/dist/esm/2d/distance-sq-2d.d.ts +8 -0
- package/dist/esm/2d/distance-sq-2d.js +7 -0
- package/dist/esm/2d/divide-2d.d.ts +8 -0
- package/dist/esm/2d/divide-2d.js +10 -0
- package/dist/esm/2d/dot-2d.d.ts +8 -0
- package/dist/esm/2d/dot-2d.js +7 -0
- package/dist/esm/2d/from-angle-x-2d.d.ts +8 -0
- package/dist/esm/2d/from-angle-x-2d.js +10 -0
- package/dist/esm/2d/from-angle-y-2d.d.ts +8 -0
- package/dist/esm/2d/from-angle-y-2d.js +10 -0
- package/dist/esm/2d/from-object-2d.d.ts +10 -0
- package/dist/esm/2d/from-object-2d.js +6 -0
- package/dist/esm/2d/from-polar-coords-2d.d.ts +8 -0
- package/dist/esm/2d/from-polar-coords-2d.js +7 -0
- package/dist/esm/2d/immutable-2d.d.ts +7 -0
- package/dist/esm/2d/immutable-2d.js +6 -0
- package/dist/esm/2d/index.d.ts +47 -0
- package/dist/esm/2d/index.js +47 -0
- package/dist/esm/2d/is-equal-2d.d.ts +8 -0
- package/dist/esm/2d/is-equal-2d.js +7 -0
- package/dist/esm/2d/is-equal-approx-2d.d.ts +9 -0
- package/dist/esm/2d/is-equal-approx-2d.js +8 -0
- package/dist/esm/2d/is-infinite-2d.d.ts +7 -0
- package/dist/esm/2d/is-infinite-2d.js +9 -0
- package/dist/esm/2d/is-nan-2d.d.ts +7 -0
- package/dist/esm/2d/is-nan-2d.js +6 -0
- package/dist/esm/2d/is-opposite-2d.d.ts +8 -0
- package/dist/esm/2d/is-opposite-2d.js +7 -0
- package/dist/esm/2d/is-zero-2d.d.ts +7 -0
- package/dist/esm/2d/is-zero-2d.js +6 -0
- package/dist/esm/2d/lerp-2d.d.ts +9 -0
- package/dist/esm/2d/lerp-2d.js +11 -0
- package/dist/esm/2d/limit-max-2d.d.ts +9 -0
- package/dist/esm/2d/limit-max-2d.js +9 -0
- package/dist/esm/2d/limit-min-2d.d.ts +9 -0
- package/dist/esm/2d/limit-min-2d.js +9 -0
- package/dist/esm/2d/look-at-2d.d.ts +10 -0
- package/dist/esm/2d/look-at-2d.js +10 -0
- package/dist/esm/2d/magnitude-2d.d.ts +7 -0
- package/dist/esm/2d/magnitude-2d.js +6 -0
- package/dist/esm/2d/magnitude-sq-2d.d.ts +7 -0
- package/dist/esm/2d/magnitude-sq-2d.js +6 -0
- package/dist/esm/2d/multiply-2d.d.ts +8 -0
- package/dist/esm/2d/multiply-2d.js +7 -0
- package/dist/esm/2d/negate-2d.d.ts +7 -0
- package/dist/esm/2d/negate-2d.js +6 -0
- package/dist/esm/2d/normalize-2d.d.ts +8 -0
- package/dist/esm/2d/normalize-2d.js +8 -0
- package/dist/esm/2d/one-2d.d.ts +6 -0
- package/dist/esm/2d/one-2d.js +5 -0
- package/dist/esm/2d/project-2d.d.ts +10 -0
- package/dist/esm/2d/project-2d.js +13 -0
- package/dist/esm/2d/random-2d.d.ts +7 -0
- package/dist/esm/2d/random-2d.js +9 -0
- package/dist/esm/2d/reflect-2d.d.ts +9 -0
- package/dist/esm/2d/reflect-2d.js +12 -0
- package/dist/esm/2d/rotate-2d.d.ts +9 -0
- package/dist/esm/2d/rotate-2d.js +23 -0
- package/dist/esm/2d/set-magnitude-2d.d.ts +9 -0
- package/dist/esm/2d/set-magnitude-2d.js +12 -0
- package/dist/esm/2d/subtract-2d.d.ts +8 -0
- package/dist/esm/2d/subtract-2d.js +7 -0
- package/dist/esm/2d/types.d.ts +4 -0
- package/dist/esm/2d/types.js +1 -0
- package/dist/esm/2d/zero-2d.d.ts +6 -0
- package/dist/esm/2d/zero-2d.js +5 -0
- package/dist/esm/3d/add-3d.d.ts +8 -0
- package/dist/esm/3d/add-3d.js +11 -0
- package/dist/esm/3d/angle-between-3d.d.ts +10 -0
- package/dist/esm/3d/angle-between-3d.js +10 -0
- package/dist/esm/3d/angle-x-3d.d.ts +7 -0
- package/dist/esm/3d/angle-x-3d.js +6 -0
- package/dist/esm/3d/angle-y-3d.d.ts +7 -0
- package/dist/esm/3d/angle-y-3d.js +6 -0
- package/dist/esm/3d/angle-z-3d.d.ts +7 -0
- package/dist/esm/3d/angle-z-3d.js +6 -0
- package/dist/esm/3d/clamp-3d.d.ts +10 -0
- package/dist/esm/3d/clamp-3d.js +14 -0
- package/dist/esm/3d/clone-3d.d.ts +7 -0
- package/dist/esm/3d/clone-3d.js +6 -0
- package/dist/esm/3d/cross-3d.d.ts +8 -0
- package/dist/esm/3d/cross-3d.js +11 -0
- package/dist/esm/3d/distance-3d.d.ts +8 -0
- package/dist/esm/3d/distance-3d.js +7 -0
- package/dist/esm/3d/distance-chebyshev-3d.d.ts +8 -0
- package/dist/esm/3d/distance-chebyshev-3d.js +12 -0
- package/dist/esm/3d/distance-manhattan-3d.d.ts +8 -0
- package/dist/esm/3d/distance-manhattan-3d.js +7 -0
- package/dist/esm/3d/distance-minkowski-3d.d.ts +9 -0
- package/dist/esm/3d/distance-minkowski-3d.js +8 -0
- package/dist/esm/3d/distance-sq-3d.d.ts +8 -0
- package/dist/esm/3d/distance-sq-3d.js +7 -0
- package/dist/esm/3d/divide-3d.d.ts +8 -0
- package/dist/esm/3d/divide-3d.js +11 -0
- package/dist/esm/3d/dot-3d.d.ts +8 -0
- package/dist/esm/3d/dot-3d.js +7 -0
- package/dist/esm/3d/from-cylindrical-coords-3d.d.ts +9 -0
- package/dist/esm/3d/from-cylindrical-coords-3d.js +12 -0
- package/dist/esm/3d/from-object-3d.d.ts +11 -0
- package/dist/esm/3d/from-object-3d.js +6 -0
- package/dist/esm/3d/from-spherical-coords-3d.d.ts +9 -0
- package/dist/esm/3d/from-spherical-coords-3d.js +12 -0
- package/dist/esm/3d/immutable-3d.d.ts +7 -0
- package/dist/esm/3d/immutable-3d.js +6 -0
- package/dist/esm/3d/index.d.ts +49 -0
- package/dist/esm/3d/index.js +49 -0
- package/dist/esm/3d/is-equal-3d.d.ts +8 -0
- package/dist/esm/3d/is-equal-3d.js +7 -0
- package/dist/esm/3d/is-equal-approx-3d.d.ts +9 -0
- package/dist/esm/3d/is-equal-approx-3d.js +10 -0
- package/dist/esm/3d/is-infinite-3d.d.ts +7 -0
- package/dist/esm/3d/is-infinite-3d.js +11 -0
- package/dist/esm/3d/is-nan-3d.d.ts +7 -0
- package/dist/esm/3d/is-nan-3d.js +6 -0
- package/dist/esm/3d/is-opposite-3d.d.ts +8 -0
- package/dist/esm/3d/is-opposite-3d.js +7 -0
- package/dist/esm/3d/is-zero-3d.d.ts +7 -0
- package/dist/esm/3d/is-zero-3d.js +6 -0
- package/dist/esm/3d/lerp-3d.d.ts +9 -0
- package/dist/esm/3d/lerp-3d.js +12 -0
- package/dist/esm/3d/limit-max-3d.d.ts +9 -0
- package/dist/esm/3d/limit-max-3d.js +9 -0
- package/dist/esm/3d/limit-min-3d.d.ts +9 -0
- package/dist/esm/3d/limit-min-3d.js +9 -0
- package/dist/esm/3d/look-at-3d.d.ts +10 -0
- package/dist/esm/3d/look-at-3d.js +10 -0
- package/dist/esm/3d/magnitude-3d.d.ts +7 -0
- package/dist/esm/3d/magnitude-3d.js +6 -0
- package/dist/esm/3d/magnitude-sq-3d.d.ts +7 -0
- package/dist/esm/3d/magnitude-sq-3d.js +6 -0
- package/dist/esm/3d/multiply-3d.d.ts +8 -0
- package/dist/esm/3d/multiply-3d.js +11 -0
- package/dist/esm/3d/negate-3d.d.ts +7 -0
- package/dist/esm/3d/negate-3d.js +6 -0
- package/dist/esm/3d/normalize-3d.d.ts +8 -0
- package/dist/esm/3d/normalize-3d.js +8 -0
- package/dist/esm/3d/one-3d.d.ts +6 -0
- package/dist/esm/3d/one-3d.js +5 -0
- package/dist/esm/3d/project-3d.d.ts +10 -0
- package/dist/esm/3d/project-3d.js +13 -0
- package/dist/esm/3d/random-3d.d.ts +7 -0
- package/dist/esm/3d/random-3d.js +7 -0
- package/dist/esm/3d/reflect-3d.d.ts +9 -0
- package/dist/esm/3d/reflect-3d.js +12 -0
- package/dist/esm/3d/rotate-x-3d.d.ts +9 -0
- package/dist/esm/3d/rotate-x-3d.js +22 -0
- package/dist/esm/3d/rotate-y-3d.d.ts +9 -0
- package/dist/esm/3d/rotate-y-3d.js +22 -0
- package/dist/esm/3d/rotate-z-3d.d.ts +9 -0
- package/dist/esm/3d/rotate-z-3d.js +22 -0
- package/dist/esm/3d/set-magnitude-3d.d.ts +9 -0
- package/dist/esm/3d/set-magnitude-3d.js +9 -0
- package/dist/esm/3d/subtract-3d.d.ts +8 -0
- package/dist/esm/3d/subtract-3d.js +11 -0
- package/dist/esm/3d/types.d.ts +4 -0
- package/dist/esm/3d/types.js +1 -0
- package/dist/esm/3d/zero-3d.d.ts +6 -0
- package/dist/esm/3d/zero-3d.js +5 -0
- package/dist/esm/4d/add-4d.d.ts +8 -0
- package/dist/esm/4d/add-4d.js +12 -0
- package/dist/esm/4d/angle-between-4d.d.ts +10 -0
- package/dist/esm/4d/angle-between-4d.js +11 -0
- package/dist/esm/4d/angle-w-4d.d.ts +7 -0
- package/dist/esm/4d/angle-w-4d.js +6 -0
- package/dist/esm/4d/angle-x-4d.d.ts +7 -0
- package/dist/esm/4d/angle-x-4d.js +6 -0
- package/dist/esm/4d/angle-y-4d.d.ts +7 -0
- package/dist/esm/4d/angle-y-4d.js +6 -0
- package/dist/esm/4d/angle-z-4d.d.ts +7 -0
- package/dist/esm/4d/angle-z-4d.js +6 -0
- package/dist/esm/4d/clamp-4d.d.ts +10 -0
- package/dist/esm/4d/clamp-4d.js +14 -0
- package/dist/esm/4d/clone-4d.d.ts +7 -0
- package/dist/esm/4d/clone-4d.js +6 -0
- package/dist/esm/4d/distance-4d.d.ts +8 -0
- package/dist/esm/4d/distance-4d.js +7 -0
- package/dist/esm/4d/distance-chebyshev-4d.d.ts +8 -0
- package/dist/esm/4d/distance-chebyshev-4d.js +19 -0
- package/dist/esm/4d/distance-manhattan-4d.d.ts +8 -0
- package/dist/esm/4d/distance-manhattan-4d.js +10 -0
- package/dist/esm/4d/distance-minkowski-4d.d.ts +9 -0
- package/dist/esm/4d/distance-minkowski-4d.js +12 -0
- package/dist/esm/4d/distance-sq-4d.d.ts +9 -0
- package/dist/esm/4d/distance-sq-4d.js +8 -0
- package/dist/esm/4d/divide-4d.d.ts +8 -0
- package/dist/esm/4d/divide-4d.js +12 -0
- package/dist/esm/4d/dot-4d.d.ts +8 -0
- package/dist/esm/4d/dot-4d.js +7 -0
- package/dist/esm/4d/from-object-4d.d.ts +12 -0
- package/dist/esm/4d/from-object-4d.js +11 -0
- package/dist/esm/4d/immutable-4d.d.ts +7 -0
- package/dist/esm/4d/immutable-4d.js +6 -0
- package/dist/esm/4d/index.d.ts +44 -0
- package/dist/esm/4d/index.js +44 -0
- package/dist/esm/4d/is-equal-4d.d.ts +8 -0
- package/dist/esm/4d/is-equal-4d.js +7 -0
- package/dist/esm/4d/is-equal-approx-4d.d.ts +9 -0
- package/dist/esm/4d/is-equal-approx-4d.js +11 -0
- package/dist/esm/4d/is-infinite-4d.d.ts +7 -0
- package/dist/esm/4d/is-infinite-4d.js +13 -0
- package/dist/esm/4d/is-nan-4d.d.ts +7 -0
- package/dist/esm/4d/is-nan-4d.js +6 -0
- package/dist/esm/4d/is-opposite-4d.d.ts +8 -0
- package/dist/esm/4d/is-opposite-4d.js +7 -0
- package/dist/esm/4d/is-zero-4d.d.ts +7 -0
- package/dist/esm/4d/is-zero-4d.js +6 -0
- package/dist/esm/4d/lerp-4d.d.ts +9 -0
- package/dist/esm/4d/lerp-4d.js +13 -0
- package/dist/esm/4d/limit-max-4d.d.ts +9 -0
- package/dist/esm/4d/limit-max-4d.js +9 -0
- package/dist/esm/4d/limit-min-4d.d.ts +9 -0
- package/dist/esm/4d/limit-min-4d.js +9 -0
- package/dist/esm/4d/look-at-4d.d.ts +10 -0
- package/dist/esm/4d/look-at-4d.js +10 -0
- package/dist/esm/4d/magnitude-4d.d.ts +7 -0
- package/dist/esm/4d/magnitude-4d.js +6 -0
- package/dist/esm/4d/magnitude-sq-4d.d.ts +8 -0
- package/dist/esm/4d/magnitude-sq-4d.js +7 -0
- package/dist/esm/4d/multiply-4d.d.ts +8 -0
- package/dist/esm/4d/multiply-4d.js +12 -0
- package/dist/esm/4d/negate-4d.d.ts +7 -0
- package/dist/esm/4d/negate-4d.js +6 -0
- package/dist/esm/4d/normalize-4d.d.ts +8 -0
- package/dist/esm/4d/normalize-4d.js +13 -0
- package/dist/esm/4d/one-4d.d.ts +6 -0
- package/dist/esm/4d/one-4d.js +5 -0
- package/dist/esm/4d/project-4d.d.ts +10 -0
- package/dist/esm/4d/project-4d.js +14 -0
- package/dist/esm/4d/random-4d.d.ts +7 -0
- package/dist/esm/4d/random-4d.js +17 -0
- package/dist/esm/4d/reflect-4d.d.ts +9 -0
- package/dist/esm/4d/reflect-4d.js +17 -0
- package/dist/esm/4d/set-magnitude-4d.d.ts +9 -0
- package/dist/esm/4d/set-magnitude-4d.js +14 -0
- package/dist/esm/4d/subtract-4d.d.ts +8 -0
- package/dist/esm/4d/subtract-4d.js +12 -0
- package/dist/esm/4d/types.d.ts +4 -0
- package/dist/esm/4d/types.js +1 -0
- package/dist/esm/4d/zero-4d.d.ts +6 -0
- package/dist/esm/4d/zero-4d.js +5 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/slerp.d.ts +21 -0
- package/dist/esm/slerp.js +23 -0
- package/dist/{vec4.d.ts → esm/vec2.d.ts} +165 -157
- package/dist/{vec2.js → esm/vec2.js} +14 -6
- package/dist/esm/vec3.d.ts +614 -0
- package/dist/{vec3.js → esm/vec3.js} +190 -123
- package/dist/esm/vec4.d.ts +602 -0
- package/dist/{vec4.js → esm/vec4.js} +211 -130
- package/docs/ArrayVector2D.md +1090 -0
- package/docs/ArrayVector3D.md +1162 -0
- package/docs/ArrayVector4D.md +1019 -0
- package/docs/README.md +13 -0
- package/docs/Slerp.md +64 -0
- package/docs/Vec2.md +1827 -0
- package/docs/Vec3.md +2084 -0
- package/docs/Vec4.md +2031 -0
- package/package.json +95 -70
- package/VEC2.md +0 -147
- package/VEC3.md +0 -159
- package/VEC4.md +0 -146
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates an ArrayVector2D from y-axis angle.
|
|
4
|
+
* @param {number} phi - Angle in radians
|
|
5
|
+
* @param {number} magnitude - Optional magnitude of the vector (default: `1`)
|
|
6
|
+
* @returns {ArrayVector2D} Vector
|
|
7
|
+
*/
|
|
8
|
+
export declare const fromAngleY2D: (phi: number, magnitude?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromAngleY2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates an ArrayVector2D from y-axis angle.
|
|
6
|
+
* @param {number} phi - Angle in radians
|
|
7
|
+
* @param {number} magnitude - Optional magnitude of the vector (default: `1`)
|
|
8
|
+
* @returns {ArrayVector2D} Vector
|
|
9
|
+
*/
|
|
10
|
+
const fromAngleY2D = (phi, magnitude = 1) => [
|
|
11
|
+
magnitude * -Math.sin(phi),
|
|
12
|
+
magnitude * Math.cos(phi),
|
|
13
|
+
];
|
|
14
|
+
exports.fromAngleY2D = fromAngleY2D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates an `ArrayVector2D` from an object with x and y properties.
|
|
4
|
+
* @param {{ x: number, y: number }} vector2D - Object with x and y properties
|
|
5
|
+
* @returns {ArrayVector2D} 2D vector as an array
|
|
6
|
+
*/
|
|
7
|
+
export declare const fromObject2D: ({ x, y }: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}) => ArrayVector2D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromObject2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates an `ArrayVector2D` from an object with x and y properties.
|
|
6
|
+
* @param {{ x: number, y: number }} vector2D - Object with x and y properties
|
|
7
|
+
* @returns {ArrayVector2D} 2D vector as an array
|
|
8
|
+
*/
|
|
9
|
+
const fromObject2D = ({ x, y }) => [x, y];
|
|
10
|
+
exports.fromObject2D = fromObject2D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates an `ArrayVector2D` from polar coordinates.
|
|
4
|
+
* @param {number} phi - Angle in radians
|
|
5
|
+
* @param {number} [m] - Optional magnitude (default: `1`)
|
|
6
|
+
* @returns {ArrayVector2D} Vector
|
|
7
|
+
*/
|
|
8
|
+
export declare const fromPolarCoords2D: (phi: number, m?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromPolarCoords2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates an `ArrayVector2D` from polar coordinates.
|
|
6
|
+
* @param {number} phi - Angle in radians
|
|
7
|
+
* @param {number} [m] - Optional magnitude (default: `1`)
|
|
8
|
+
* @returns {ArrayVector2D} Vector
|
|
9
|
+
*/
|
|
10
|
+
const fromPolarCoords2D = (phi, m = 1) => [m * Math.cos(phi), m * Math.sin(phi)];
|
|
11
|
+
exports.fromPolarCoords2D = fromPolarCoords2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create an immutable 2D vector.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @returns {Readonly<ArrayVector2D>} The immutable vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const immutable2D: (xy: ArrayVector2D) => Readonly<ArrayVector2D>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.immutable2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Create an immutable 2D vector.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {Readonly<ArrayVector2D>} The immutable vector
|
|
8
|
+
*/
|
|
9
|
+
const immutable2D = (xy) => Object.freeze([xy[0], xy[1]]);
|
|
10
|
+
exports.immutable2D = immutable2D;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documentation for functional 2D Vector array operations.
|
|
3
|
+
* @module ArrayVector2D
|
|
4
|
+
*/
|
|
5
|
+
export * from "./add-2d.js";
|
|
6
|
+
export * from "./angle-between-2d.js";
|
|
7
|
+
export * from "./angle-x-2d.js";
|
|
8
|
+
export * from "./angle-y-2d.js";
|
|
9
|
+
export * from "./clamp-2d.js";
|
|
10
|
+
export * from "./clone-2d.js";
|
|
11
|
+
export * from "./cross-2d.js";
|
|
12
|
+
export * from "./distance-2d.js";
|
|
13
|
+
export * from "./distance-chebyshev-2d.js";
|
|
14
|
+
export * from "./distance-manhattan-2d.js";
|
|
15
|
+
export * from "./distance-minkowski-2d.js";
|
|
16
|
+
export * from "./distance-sq-2d.js";
|
|
17
|
+
export * from "./divide-2d.js";
|
|
18
|
+
export * from "./dot-2d.js";
|
|
19
|
+
export * from "./from-angle-x-2d.js";
|
|
20
|
+
export * from "./from-angle-y-2d.js";
|
|
21
|
+
export * from "./from-object-2d.js";
|
|
22
|
+
export * from "./from-polar-coords-2d.js";
|
|
23
|
+
export * from "./immutable-2d.js";
|
|
24
|
+
export * from "./is-equal-2d.js";
|
|
25
|
+
export * from "./is-equal-approx-2d.js";
|
|
26
|
+
export * from "./is-infinite-2d.js";
|
|
27
|
+
export * from "./is-nan-2d.js";
|
|
28
|
+
export * from "./is-opposite-2d.js";
|
|
29
|
+
export * from "./is-zero-2d.js";
|
|
30
|
+
export * from "./lerp-2d.js";
|
|
31
|
+
export * from "./limit-max-2d.js";
|
|
32
|
+
export * from "./limit-min-2d.js";
|
|
33
|
+
export * from "./look-at-2d.js";
|
|
34
|
+
export * from "./magnitude-2d.js";
|
|
35
|
+
export * from "./magnitude-sq-2d.js";
|
|
36
|
+
export * from "./multiply-2d.js";
|
|
37
|
+
export * from "./negate-2d.js";
|
|
38
|
+
export * from "./normalize-2d.js";
|
|
39
|
+
export * from "./one-2d.js";
|
|
40
|
+
export * from "./project-2d.js";
|
|
41
|
+
export * from "./random-2d.js";
|
|
42
|
+
export * from "./reflect-2d.js";
|
|
43
|
+
export * from "./rotate-2d.js";
|
|
44
|
+
export * from "./set-magnitude-2d.js";
|
|
45
|
+
export * from "./subtract-2d.js";
|
|
46
|
+
export * from "./types.js";
|
|
47
|
+
export * from "./zero-2d.js";
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* Documentation for functional 2D Vector array operations.
|
|
19
|
+
* @module ArrayVector2D
|
|
20
|
+
*/
|
|
21
|
+
__exportStar(require("./add-2d.js"), exports);
|
|
22
|
+
__exportStar(require("./angle-between-2d.js"), exports);
|
|
23
|
+
__exportStar(require("./angle-x-2d.js"), exports);
|
|
24
|
+
__exportStar(require("./angle-y-2d.js"), exports);
|
|
25
|
+
__exportStar(require("./clamp-2d.js"), exports);
|
|
26
|
+
__exportStar(require("./clone-2d.js"), exports);
|
|
27
|
+
__exportStar(require("./cross-2d.js"), exports);
|
|
28
|
+
__exportStar(require("./distance-2d.js"), exports);
|
|
29
|
+
__exportStar(require("./distance-chebyshev-2d.js"), exports);
|
|
30
|
+
__exportStar(require("./distance-manhattan-2d.js"), exports);
|
|
31
|
+
__exportStar(require("./distance-minkowski-2d.js"), exports);
|
|
32
|
+
__exportStar(require("./distance-sq-2d.js"), exports);
|
|
33
|
+
__exportStar(require("./divide-2d.js"), exports);
|
|
34
|
+
__exportStar(require("./dot-2d.js"), exports);
|
|
35
|
+
__exportStar(require("./from-angle-x-2d.js"), exports);
|
|
36
|
+
__exportStar(require("./from-angle-y-2d.js"), exports);
|
|
37
|
+
__exportStar(require("./from-object-2d.js"), exports);
|
|
38
|
+
__exportStar(require("./from-polar-coords-2d.js"), exports);
|
|
39
|
+
__exportStar(require("./immutable-2d.js"), exports);
|
|
40
|
+
__exportStar(require("./is-equal-2d.js"), exports);
|
|
41
|
+
__exportStar(require("./is-equal-approx-2d.js"), exports);
|
|
42
|
+
__exportStar(require("./is-infinite-2d.js"), exports);
|
|
43
|
+
__exportStar(require("./is-nan-2d.js"), exports);
|
|
44
|
+
__exportStar(require("./is-opposite-2d.js"), exports);
|
|
45
|
+
__exportStar(require("./is-zero-2d.js"), exports);
|
|
46
|
+
__exportStar(require("./lerp-2d.js"), exports);
|
|
47
|
+
__exportStar(require("./limit-max-2d.js"), exports);
|
|
48
|
+
__exportStar(require("./limit-min-2d.js"), exports);
|
|
49
|
+
__exportStar(require("./look-at-2d.js"), exports);
|
|
50
|
+
__exportStar(require("./magnitude-2d.js"), exports);
|
|
51
|
+
__exportStar(require("./magnitude-sq-2d.js"), exports);
|
|
52
|
+
__exportStar(require("./multiply-2d.js"), exports);
|
|
53
|
+
__exportStar(require("./negate-2d.js"), exports);
|
|
54
|
+
__exportStar(require("./normalize-2d.js"), exports);
|
|
55
|
+
__exportStar(require("./one-2d.js"), exports);
|
|
56
|
+
__exportStar(require("./project-2d.js"), exports);
|
|
57
|
+
__exportStar(require("./random-2d.js"), exports);
|
|
58
|
+
__exportStar(require("./reflect-2d.js"), exports);
|
|
59
|
+
__exportStar(require("./rotate-2d.js"), exports);
|
|
60
|
+
__exportStar(require("./set-magnitude-2d.js"), exports);
|
|
61
|
+
__exportStar(require("./subtract-2d.js"), exports);
|
|
62
|
+
__exportStar(require("./types.js"), exports);
|
|
63
|
+
__exportStar(require("./zero-2d.js"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if two 2D vectors are equal.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
6
|
+
* @returns {boolean} `true` if the vectors are equal, `false` otherwise
|
|
7
|
+
*/
|
|
8
|
+
export declare const isEqual2D: (xy1: ArrayVector2D, xy2: ArrayVector2D) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEqual2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if two 2D vectors are equal.
|
|
6
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
7
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
8
|
+
* @returns {boolean} `true` if the vectors are equal, `false` otherwise
|
|
9
|
+
*/
|
|
10
|
+
const isEqual2D = (xy1, xy2) => xy1[0] === xy2[0] && xy1[1] === xy2[1];
|
|
11
|
+
exports.isEqual2D = isEqual2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Compares a 2D vector with another vector using an epsilon value for floating-point comparison.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
6
|
+
* @param {number} epsilon - Maximum difference between components to consider them equal (default: `Number.EPSILON`)
|
|
7
|
+
* @returns {boolean} `true` if the vectors are equal, `false` otherwise
|
|
8
|
+
*/
|
|
9
|
+
export declare const isEqualApprox2D: (xy1: ArrayVector2D, xy2: ArrayVector2D, epsilon?: number) => boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEqualApprox2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Compares a 2D vector with another vector using an epsilon value for floating-point comparison.
|
|
6
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
7
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
8
|
+
* @param {number} epsilon - Maximum difference between components to consider them equal (default: `Number.EPSILON`)
|
|
9
|
+
* @returns {boolean} `true` if the vectors are equal, `false` otherwise
|
|
10
|
+
*/
|
|
11
|
+
const isEqualApprox2D = (xy1, xy2, epsilon = Number.EPSILON) => Math.abs(xy1[0] - xy2[0]) <= epsilon && Math.abs(xy1[1] - xy2[1]) <= epsilon;
|
|
12
|
+
exports.isEqualApprox2D = isEqualApprox2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a vector has infinite components.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @returns {ArrayVector2D} `true` if the vector has infinite components, `false` otherwise
|
|
6
|
+
*/
|
|
7
|
+
export declare const isInfinite2D: (xy: ArrayVector2D) => boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isInfinite2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a vector has infinite components.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {ArrayVector2D} `true` if the vector has infinite components, `false` otherwise
|
|
8
|
+
*/
|
|
9
|
+
const isInfinite2D = (xy) => xy[0] === Number.POSITIVE_INFINITY ||
|
|
10
|
+
xy[0] === Number.NEGATIVE_INFINITY ||
|
|
11
|
+
xy[1] === Number.POSITIVE_INFINITY ||
|
|
12
|
+
xy[1] === Number.NEGATIVE_INFINITY;
|
|
13
|
+
exports.isInfinite2D = isInfinite2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a vector has NaN components.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @returns {boolean} `true` if the vector has `NaN` components, `false` otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare const isNaN2D: (xy: ArrayVector2D) => boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isNaN2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a vector has NaN components.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {boolean} `true` if the vector has `NaN` components, `false` otherwise.
|
|
8
|
+
*/
|
|
9
|
+
const isNaN2D = (xy) => Number.isNaN(xy[0]) || Number.isNaN(xy[1]);
|
|
10
|
+
exports.isNaN2D = isNaN2D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if two 2D vectors are opposite.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
6
|
+
* @returns {boolean} `true` if the vectors are opposite, `false` otherwise
|
|
7
|
+
*/
|
|
8
|
+
export declare const isOpposite2D: (xy1: ArrayVector2D, xy2: ArrayVector2D) => boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isOpposite2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if two 2D vectors are opposite.
|
|
6
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
7
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
8
|
+
* @returns {boolean} `true` if the vectors are opposite, `false` otherwise
|
|
9
|
+
*/
|
|
10
|
+
const isOpposite2D = (xy1, xy2) => xy1[0] === -xy2[0] && xy1[1] === -xy2[1];
|
|
11
|
+
exports.isOpposite2D = isOpposite2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a vector is zero.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @returns {boolean} `true` if the vector is zero, `false` otherwise
|
|
6
|
+
*/
|
|
7
|
+
export declare const isZero2D: (xy: ArrayVector2D) => boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isZero2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Checks if a vector is zero.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {boolean} `true` if the vector is zero, `false` otherwise
|
|
8
|
+
*/
|
|
9
|
+
const isZero2D = (xy) => xy[0] === 0 && xy[1] === 0;
|
|
10
|
+
exports.isZero2D = isZero2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Performs linear interpolation between two 2D vectors.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
6
|
+
* @param {number} t - Interpolation parameter
|
|
7
|
+
* @returns {ArrayVector2D} The interpolated vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const lerp2D: (xy1: ArrayVector2D, xy2: ArrayVector2D, t: number) => ArrayVector2D;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lerp2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Performs linear interpolation between two 2D vectors.
|
|
6
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
7
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
8
|
+
* @param {number} t - Interpolation parameter
|
|
9
|
+
* @returns {ArrayVector2D} The interpolated vector
|
|
10
|
+
*/
|
|
11
|
+
const lerp2D = (xy1, xy2, t) => [
|
|
12
|
+
xy1[0] + (xy2[0] - xy1[0]) * t,
|
|
13
|
+
xy1[1] + (xy2[1] - xy1[1]) * t,
|
|
14
|
+
];
|
|
15
|
+
exports.lerp2D = lerp2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Limits the maximum magnitude of a 2D vector.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @param {number} max - Maximum magnitude
|
|
6
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
7
|
+
* @returns {ArrayVector2D} The limited vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const limitMax2D: (xy: ArrayVector2D, max: number, m?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.limitMax2D = void 0;
|
|
4
|
+
const magnitude_2d_js_1 = require("./magnitude-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Limits the maximum magnitude of a 2D vector.
|
|
7
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
8
|
+
* @param {number} max - Maximum magnitude
|
|
9
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
10
|
+
* @returns {ArrayVector2D} The limited vector
|
|
11
|
+
*/
|
|
12
|
+
const limitMax2D = (xy, max, m = (0, magnitude_2d_js_1.magnitude2D)(xy)) => m > max ? [(xy[0] / m) * max, (xy[1] / m) * max] : xy;
|
|
13
|
+
exports.limitMax2D = limitMax2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Limits the maximum magnitude of a 2D vector.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @param {number} min - Minimum magnitude
|
|
6
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
7
|
+
* @returns {ArrayVector2D} The limited vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const limitMin2D: (xy: ArrayVector2D, min: number, m?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.limitMin2D = void 0;
|
|
4
|
+
const magnitude_2d_js_1 = require("./magnitude-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Limits the maximum magnitude of a 2D vector.
|
|
7
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
8
|
+
* @param {number} min - Minimum magnitude
|
|
9
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
10
|
+
* @returns {ArrayVector2D} The limited vector
|
|
11
|
+
*/
|
|
12
|
+
const limitMin2D = (xy, min, m = (0, magnitude_2d_js_1.magnitude2D)(xy)) => m < min ? [(xy[0] / m) * min, (xy[1] / m) * min] : xy;
|
|
13
|
+
exports.limitMin2D = limitMin2D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the 2D vector angle of a vector pointing at another.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]` (target to look at)
|
|
6
|
+
* @param {number} [m1] - Optional current magnitude of the first vector (default: magnitude2D(xy1))
|
|
7
|
+
* @param {number} [m2] - Optional current magnitude of the second vector (default: magnitude2D(xy2))
|
|
8
|
+
* @returns {ArrayVector2D} Vector pointing at the target with the magnitude of xy1
|
|
9
|
+
*/
|
|
10
|
+
export declare const lookAt2D: (xy1: ArrayVector2D, xy2: ArrayVector2D, m1?: number, m2?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lookAt2D = void 0;
|
|
4
|
+
const magnitude_2d_js_1 = require("./magnitude-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Calculates the 2D vector angle of a vector pointing at another.
|
|
7
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
8
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]` (target to look at)
|
|
9
|
+
* @param {number} [m1] - Optional current magnitude of the first vector (default: magnitude2D(xy1))
|
|
10
|
+
* @param {number} [m2] - Optional current magnitude of the second vector (default: magnitude2D(xy2))
|
|
11
|
+
* @returns {ArrayVector2D} Vector pointing at the target with the magnitude of xy1
|
|
12
|
+
*/
|
|
13
|
+
const lookAt2D = (xy1, xy2, m1 = (0, magnitude_2d_js_1.magnitude2D)(xy1), m2 = (0, magnitude_2d_js_1.magnitude2D)(xy2)) => [(xy2[0] / m2) * m1, (xy2[1] / m2) * m1];
|
|
14
|
+
exports.lookAt2D = lookAt2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the magnitude of a 2D vector.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @returns {number} Magnitude of the vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const magnitude2D: (xy: ArrayVector2D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.magnitude2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the magnitude of a 2D vector.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {number} Magnitude of the vector
|
|
8
|
+
*/
|
|
9
|
+
const magnitude2D = (xy) => Math.sqrt(xy[0] ** 2 + xy[1] ** 2);
|
|
10
|
+
exports.magnitude2D = magnitude2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculate the squared magnitude of a 2D vector.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @returns {number} Squared magnitude
|
|
6
|
+
*/
|
|
7
|
+
export declare const magnitudeSq2D: (xy: ArrayVector2D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.magnitudeSq2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculate the squared magnitude of a 2D vector.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {number} Squared magnitude
|
|
8
|
+
*/
|
|
9
|
+
const magnitudeSq2D = (xy) => xy[0] ** 2 + xy[1] ** 2;
|
|
10
|
+
exports.magnitudeSq2D = magnitudeSq2D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Multiplies one 2D vector with another component-wise.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
6
|
+
* @returns {ArrayVector2D} The multiplied vector
|
|
7
|
+
*/
|
|
8
|
+
export declare const multiply2D: (xy1: ArrayVector2D, xy2: ArrayVector2D) => ArrayVector2D;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.multiply2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Multiplies one 2D vector with another component-wise.
|
|
6
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
7
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
8
|
+
* @returns {ArrayVector2D} The multiplied vector
|
|
9
|
+
*/
|
|
10
|
+
const multiply2D = (xy1, xy2) => [xy1[0] * xy2[0], xy1[1] * xy2[1]];
|
|
11
|
+
exports.multiply2D = multiply2D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.negate2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Negates a 2D vector.
|
|
6
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
7
|
+
* @returns {ArrayVector2D} The negated vector
|
|
8
|
+
*/
|
|
9
|
+
const negate2D = (xy) => [-xy[0], -xy[1]];
|
|
10
|
+
exports.negate2D = negate2D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Normalize a 2D vector.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
6
|
+
* @returns {ArrayVector2D} The normalized vector
|
|
7
|
+
*/
|
|
8
|
+
export declare const normalize2D: (xy: ArrayVector2D, m?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalize2D = void 0;
|
|
4
|
+
const magnitude_2d_js_1 = require("./magnitude-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Normalize a 2D vector.
|
|
7
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
8
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
9
|
+
* @returns {ArrayVector2D} The normalized vector
|
|
10
|
+
*/
|
|
11
|
+
const normalize2D = (xy, m = (0, magnitude_2d_js_1.magnitude2D)(xy)) => m === 0 ? [0, 0] : [xy[0] / m, xy[1] / m];
|
|
12
|
+
exports.normalize2D = normalize2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.one2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a 2D vector with all components set to 1.0.
|
|
6
|
+
* @returns {ArrayVector2D} Vector `[1, 1]`
|
|
7
|
+
*/
|
|
8
|
+
const one2D = () => [1, 1];
|
|
9
|
+
exports.one2D = one2D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Projects one 2D vector onto another.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - Vector to project
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Vector to project onto
|
|
6
|
+
* @param {number} [m1] - Optional magnitude of the first vector (default: `magnitude2D(xy1)`)
|
|
7
|
+
* @param {number} [m2] - Optional magnitude of the second vector (default: `magnitude2D(xy2)`)
|
|
8
|
+
* @returns {ArrayVector2D} The projected vector
|
|
9
|
+
*/
|
|
10
|
+
export declare const project2D: (xy1: ArrayVector2D, xy2: ArrayVector2D, m1?: number, m2?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.project2D = void 0;
|
|
4
|
+
const magnitude_2d_js_1 = require("./magnitude-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Projects one 2D vector onto another.
|
|
7
|
+
* @param {ArrayVector2D} xy1 - Vector to project
|
|
8
|
+
* @param {ArrayVector2D} xy2 - Vector to project onto
|
|
9
|
+
* @param {number} [m1] - Optional magnitude of the first vector (default: `magnitude2D(xy1)`)
|
|
10
|
+
* @param {number} [m2] - Optional magnitude of the second vector (default: `magnitude2D(xy2)`)
|
|
11
|
+
* @returns {ArrayVector2D} The projected vector
|
|
12
|
+
*/
|
|
13
|
+
const project2D = (xy1, xy2, m1 = (0, magnitude_2d_js_1.magnitude2D)(xy1), m2 = (0, magnitude_2d_js_1.magnitude2D)(xy2)) => {
|
|
14
|
+
const f = m1 * Math.cos(Math.atan2(xy1[0] * xy2[1] - xy1[1] * xy2[0], xy1[0] * xy2[0] + xy1[1] * xy2[1]));
|
|
15
|
+
return [(xy2[0] / m2) * f, (xy2[1] / m2) * f];
|
|
16
|
+
};
|
|
17
|
+
exports.project2D = project2D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a random unit 2D vector.
|
|
4
|
+
* @param {() => void} random - A function that returns a random number between 0 and 1 (default: `Math.random`)
|
|
5
|
+
* @returns {ArrayVector2D} Random unit vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const random2D: (random?: () => number) => ArrayVector2D;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.random2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a random unit 2D vector.
|
|
6
|
+
* @param {() => void} random - A function that returns a random number between 0 and 1 (default: `Math.random`)
|
|
7
|
+
* @returns {ArrayVector2D} Random unit vector
|
|
8
|
+
*/
|
|
9
|
+
const random2D = (random = Math.random) => {
|
|
10
|
+
const phi = random() * Math.PI * 2;
|
|
11
|
+
return [Math.cos(phi), Math.sin(phi)];
|
|
12
|
+
};
|
|
13
|
+
exports.random2D = random2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Reflects the vector across a normal vector.
|
|
4
|
+
* The normal vector should be normalized (unit length).
|
|
5
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]` to reflect
|
|
6
|
+
* @param {ArrayVector2D} normal - Normal vector to reflect across (must be normalized)
|
|
7
|
+
* @returns {ArrayVector2D} The reflected vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const reflect2D: (xy: ArrayVector2D, normal: ArrayVector2D) => ArrayVector2D;
|