@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,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rotateY3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Rotates a 3D vector around the y-axis.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @param {number} phi - Angle of rotation in radians
|
|
8
|
+
* @param {ArrayVector3D} axis - Rotation axis point (default: `[0, 0, 0]`)
|
|
9
|
+
* @returns {ArrayVector3D} The rotated vector
|
|
10
|
+
*/
|
|
11
|
+
const rotateY3D = (xyz, phi, axis = [0, 0, 0]) => {
|
|
12
|
+
const cosPhi = Math.cos(phi);
|
|
13
|
+
const sinPhi = Math.sin(phi);
|
|
14
|
+
if (axis[0] === 0 && axis[1] === 0 && axis[2] === 0) {
|
|
15
|
+
return [xyz[0] * cosPhi + xyz[2] * sinPhi, xyz[1], -xyz[0] * sinPhi + xyz[2] * cosPhi];
|
|
16
|
+
}
|
|
17
|
+
// Translate point to origin (relative to axis)
|
|
18
|
+
const translatedX = xyz[0] - axis[0];
|
|
19
|
+
const translatedZ = xyz[2] - axis[2];
|
|
20
|
+
// Rotate around origin
|
|
21
|
+
const rotatedX = translatedX * cosPhi + translatedZ * sinPhi;
|
|
22
|
+
const rotatedZ = -translatedX * sinPhi + translatedZ * cosPhi;
|
|
23
|
+
// Translate back
|
|
24
|
+
return [rotatedX + axis[0], xyz[1], rotatedZ + axis[2]];
|
|
25
|
+
};
|
|
26
|
+
exports.rotateY3D = rotateY3D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Rotates a 3D vector around the z-axis.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @param {number} phi - Angle of rotation in radians
|
|
6
|
+
* @param {ArrayVector3D} axis - Rotation axis point (default: `[0, 0, 0]`)
|
|
7
|
+
* @returns {ArrayVector3D} The rotated vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const rotateZ3D: (xyz: ArrayVector3D, phi: number, axis?: ArrayVector3D) => ArrayVector3D;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rotateZ3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Rotates a 3D vector around the z-axis.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @param {number} phi - Angle of rotation in radians
|
|
8
|
+
* @param {ArrayVector3D} axis - Rotation axis point (default: `[0, 0, 0]`)
|
|
9
|
+
* @returns {ArrayVector3D} The rotated vector
|
|
10
|
+
*/
|
|
11
|
+
const rotateZ3D = (xyz, phi, axis = [0, 0, 0]) => {
|
|
12
|
+
const cosPhi = Math.cos(phi);
|
|
13
|
+
const sinPhi = Math.sin(phi);
|
|
14
|
+
if (axis[0] === 0 && axis[1] === 0 && axis[2] === 0) {
|
|
15
|
+
return [xyz[0] * cosPhi - xyz[1] * sinPhi, xyz[0] * sinPhi + xyz[1] * cosPhi, xyz[2]];
|
|
16
|
+
}
|
|
17
|
+
// Translate point to origin (relative to axis)
|
|
18
|
+
const translatedX = xyz[0] - axis[0];
|
|
19
|
+
const translatedY = xyz[1] - axis[1];
|
|
20
|
+
// Rotate around origin
|
|
21
|
+
const rotatedX = translatedX * cosPhi - translatedY * sinPhi;
|
|
22
|
+
const rotatedY = translatedX * sinPhi + translatedY * cosPhi;
|
|
23
|
+
// Translate back
|
|
24
|
+
return [rotatedX + axis[0], rotatedY + axis[1], xyz[2]];
|
|
25
|
+
};
|
|
26
|
+
exports.rotateZ3D = rotateZ3D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Sets the magnitude (length) of a 3D vector, maintaining its direction.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @param {number} newMagnitude - New magnitude
|
|
6
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude3D(xyz)`)
|
|
7
|
+
* @returns {ArrayVector3D} The adjusted vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const setMagnitude3D: (xyz: ArrayVector3D, newMagnitude: number, m?: number) => ArrayVector3D;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setMagnitude3D = void 0;
|
|
4
|
+
const magnitude_3d_js_1 = require("./magnitude-3d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Sets the magnitude (length) of a 3D vector, maintaining its direction.
|
|
7
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
8
|
+
* @param {number} newMagnitude - New magnitude
|
|
9
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude3D(xyz)`)
|
|
10
|
+
* @returns {ArrayVector3D} The adjusted vector
|
|
11
|
+
*/
|
|
12
|
+
const setMagnitude3D = (xyz, newMagnitude, m = (0, magnitude_3d_js_1.magnitude3D)(xyz)) => [(xyz[0] / m) * newMagnitude, (xyz[1] / m) * newMagnitude, (xyz[2] / m) * newMagnitude];
|
|
13
|
+
exports.setMagnitude3D = setMagnitude3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Subtracts a 3D vector from another.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @returns {ArrayVector3D} The difference between the vectors
|
|
7
|
+
*/
|
|
8
|
+
export declare const subtract3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => ArrayVector3D;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subtract3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Subtracts a 3D vector from another.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @returns {ArrayVector3D} The difference between the vectors
|
|
9
|
+
*/
|
|
10
|
+
const subtract3D = (xyz1, xyz2) => [
|
|
11
|
+
xyz1[0] - xyz2[0],
|
|
12
|
+
xyz1[1] - xyz2[1],
|
|
13
|
+
xyz1[2] - xyz2[2],
|
|
14
|
+
];
|
|
15
|
+
exports.subtract3D = subtract3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Adds two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @returns {ArrayVector4D} The sum of the vectors
|
|
7
|
+
*/
|
|
8
|
+
export declare const add4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => ArrayVector4D;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.add4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Adds two 4D vectors.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @returns {ArrayVector4D} The sum of the vectors
|
|
9
|
+
*/
|
|
10
|
+
const add4D = (xyzw1, xyzw2) => [
|
|
11
|
+
xyzw1[0] + xyzw2[0],
|
|
12
|
+
xyzw1[1] + xyzw2[1],
|
|
13
|
+
xyzw1[2] + xyzw2[2],
|
|
14
|
+
xyzw1[3] + xyzw2[3],
|
|
15
|
+
];
|
|
16
|
+
exports.add4D = add4D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the angle between two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @param {number} [m1] - Optional magnitude of the first vector (default: `magnitude4D(xyzw1)`)
|
|
7
|
+
* @param {number} [m2] - Optional magnitude of the second vector (default: `magnitude4D(xyzw2)`)
|
|
8
|
+
* @returns {number} The angle in radians
|
|
9
|
+
*/
|
|
10
|
+
export declare const angleBetween4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D, m1?: number, m2?: number) => number;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleBetween4D = void 0;
|
|
4
|
+
const dot_4d_js_1 = require("./dot-4d.js");
|
|
5
|
+
const magnitude_4d_js_1 = require("./magnitude-4d.js");
|
|
6
|
+
/**
|
|
7
|
+
* Calculates the angle between two 4D vectors.
|
|
8
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
9
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
10
|
+
* @param {number} [m1] - Optional magnitude of the first vector (default: `magnitude4D(xyzw1)`)
|
|
11
|
+
* @param {number} [m2] - Optional magnitude of the second vector (default: `magnitude4D(xyzw2)`)
|
|
12
|
+
* @returns {number} The angle in radians
|
|
13
|
+
*/
|
|
14
|
+
const angleBetween4D = (xyzw1, xyzw2, m1 = (0, magnitude_4d_js_1.magnitude4D)(xyzw1), m2 = (0, magnitude_4d_js_1.magnitude4D)(xyzw2)) => Math.acos((0, dot_4d_js_1.dot4D)(xyzw1, xyzw2) / (m1 * m2));
|
|
15
|
+
exports.angleBetween4D = angleBetween4D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the angle between a 4D vector and the positive w-axis.
|
|
4
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
5
|
+
* @returns {number} The angle in radians
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleW4D: (xyzw: ArrayVector4D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleW4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the angle between a 4D vector and the positive w-axis.
|
|
6
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {number} The angle in radians
|
|
8
|
+
*/
|
|
9
|
+
const angleW4D = (xyzw) => Math.atan2(Math.sqrt(xyzw[0] ** 2 + xyzw[1] ** 2 + xyzw[2] ** 2), xyzw[3]);
|
|
10
|
+
exports.angleW4D = angleW4D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the angle between a 4D vector and the positive x-axis.
|
|
4
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
5
|
+
* @returns {number} The angle in radians
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleX4D: (xyzw: ArrayVector4D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleX4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the angle between a 4D vector and the positive x-axis.
|
|
6
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {number} The angle in radians
|
|
8
|
+
*/
|
|
9
|
+
const angleX4D = (xyzw) => Math.atan2(Math.sqrt(xyzw[1] ** 2 + xyzw[2] ** 2 + xyzw[3] ** 2), xyzw[0]);
|
|
10
|
+
exports.angleX4D = angleX4D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the angle between a 4D vector and the positive y-axis.
|
|
4
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
5
|
+
* @returns {number} The angle in radians
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleY4D: (xyzw: ArrayVector4D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleY4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the angle between a 4D vector and the positive y-axis.
|
|
6
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {number} The angle in radians
|
|
8
|
+
*/
|
|
9
|
+
const angleY4D = (xyzw) => Math.atan2(Math.sqrt(xyzw[2] ** 2 + xyzw[3] ** 2 + xyzw[0] ** 2), xyzw[1]);
|
|
10
|
+
exports.angleY4D = angleY4D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the angle between a 4D vector and the positive z-axis.
|
|
4
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
5
|
+
* @returns {number} The angle in radians
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleZ4D: (xyzw: ArrayVector4D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleZ4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the angle between a 4D vector and the positive z-axis.
|
|
6
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {number} The angle in radians
|
|
8
|
+
*/
|
|
9
|
+
const angleZ4D = (xyzw) => Math.atan2(Math.sqrt(xyzw[3] ** 2 + xyzw[0] ** 2 + xyzw[1] ** 2), xyzw[2]);
|
|
10
|
+
exports.angleZ4D = angleZ4D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Clamps the magnitude of a 4D vector between min and max.
|
|
4
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
5
|
+
* @param {number} min - Minimum magnitude
|
|
6
|
+
* @param {number} max - Maximum magnitude
|
|
7
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude4D(xyzw)`)
|
|
8
|
+
* @returns {ArrayVector4D} The clamped vector
|
|
9
|
+
*/
|
|
10
|
+
export declare const clamp4D: (xyzw: ArrayVector4D, min: number, max: number, m?: number) => ArrayVector4D;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clamp4D = void 0;
|
|
4
|
+
const magnitude_4d_js_1 = require("./magnitude-4d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Clamps the magnitude of a 4D vector between min and max.
|
|
7
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
8
|
+
* @param {number} min - Minimum magnitude
|
|
9
|
+
* @param {number} max - Maximum magnitude
|
|
10
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude4D(xyzw)`)
|
|
11
|
+
* @returns {ArrayVector4D} The clamped vector
|
|
12
|
+
*/
|
|
13
|
+
const clamp4D = (xyzw, min, max, m = (0, magnitude_4d_js_1.magnitude4D)(xyzw)) => m > max
|
|
14
|
+
? [(xyzw[0] / m) * max, (xyzw[1] / m) * max, (xyzw[2] / m) * max, (xyzw[3] / m) * max]
|
|
15
|
+
: m < min
|
|
16
|
+
? [(xyzw[0] / m) * min, (xyzw[1] / m) * min, (xyzw[2] / m) * min, (xyzw[3] / m) * min]
|
|
17
|
+
: xyzw;
|
|
18
|
+
exports.clamp4D = clamp4D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clone4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Clone a 4D vector.
|
|
6
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {ArrayVector4D} The cloned vector
|
|
8
|
+
*/
|
|
9
|
+
const clone4D = (xyzw) => [xyzw[0], xyzw[1], xyzw[2], xyzw[3]];
|
|
10
|
+
exports.clone4D = clone4D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Euclidean distance between two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @returns {number} The distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distance4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distance4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Euclidean distance between two 4D vectors.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @returns {number} The distance
|
|
9
|
+
*/
|
|
10
|
+
const distance4D = (xyzw1, xyzw2) => Math.sqrt((xyzw1[0] - xyzw2[0]) ** 2 + (xyzw1[1] - xyzw2[1]) ** 2 + (xyzw1[2] - xyzw2[2]) ** 2 + (xyzw1[3] - xyzw2[3]) ** 2);
|
|
11
|
+
exports.distance4D = distance4D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Chebyshev distance between two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @returns {number} The Chebyshev distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distanceChebyshev4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => number;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceChebyshev4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Chebyshev distance between two 4D vectors.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @returns {number} The Chebyshev distance
|
|
9
|
+
*/
|
|
10
|
+
const distanceChebyshev4D = (xyzw1, xyzw2) => {
|
|
11
|
+
const absX = Math.abs(xyzw1[0] - xyzw2[0]);
|
|
12
|
+
const absY = Math.abs(xyzw1[1] - xyzw2[1]);
|
|
13
|
+
const absZ = Math.abs(xyzw1[2] - xyzw2[2]);
|
|
14
|
+
const absW = Math.abs(xyzw1[3] - xyzw2[3]);
|
|
15
|
+
return absX >= absY && absX >= absZ && absX >= absW
|
|
16
|
+
? absX
|
|
17
|
+
: absY >= absZ && absY >= absW
|
|
18
|
+
? absY
|
|
19
|
+
: absZ >= absW
|
|
20
|
+
? absZ
|
|
21
|
+
: absW;
|
|
22
|
+
};
|
|
23
|
+
exports.distanceChebyshev4D = distanceChebyshev4D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Manhattan distance between two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @returns {number} The Manhattan distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distanceManhattan4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceManhattan4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Manhattan distance between two 4D vectors.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @returns {number} The Manhattan distance
|
|
9
|
+
*/
|
|
10
|
+
const distanceManhattan4D = (xyzw1, xyzw2) => Math.abs(xyzw1[0] - xyzw2[0]) +
|
|
11
|
+
Math.abs(xyzw1[1] - xyzw2[1]) +
|
|
12
|
+
Math.abs(xyzw1[2] - xyzw2[2]) +
|
|
13
|
+
Math.abs(xyzw1[3] - xyzw2[3]);
|
|
14
|
+
exports.distanceManhattan4D = distanceManhattan4D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Minkowski distance between two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @param {number} p - The order of the Minkowski distance
|
|
7
|
+
* @returns {number} The Minkowski distance
|
|
8
|
+
*/
|
|
9
|
+
export declare const distanceMinkowski4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D, p: number) => number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceMinkowski4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Minkowski distance between two 4D vectors.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @param {number} p - The order of the Minkowski distance
|
|
9
|
+
* @returns {number} The Minkowski distance
|
|
10
|
+
*/
|
|
11
|
+
const distanceMinkowski4D = (xyzw1, xyzw2, p) => (Math.abs(xyzw1[0] - xyzw2[0]) ** p +
|
|
12
|
+
Math.abs(xyzw1[1] - xyzw2[1]) ** p +
|
|
13
|
+
Math.abs(xyzw1[2] - xyzw2[2]) ** p +
|
|
14
|
+
Math.abs(xyzw1[3] - xyzw2[3]) ** p) **
|
|
15
|
+
(1 / p);
|
|
16
|
+
exports.distanceMinkowski4D = distanceMinkowski4D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the squared Euclidean distance between two 4D vectors.
|
|
4
|
+
* Faster than distance for comparisons.
|
|
5
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
6
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {number} The squared distance
|
|
8
|
+
*/
|
|
9
|
+
export declare const distanceSq4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceSq4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the squared Euclidean distance between two 4D vectors.
|
|
6
|
+
* Faster than distance for comparisons.
|
|
7
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
8
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
9
|
+
* @returns {number} The squared distance
|
|
10
|
+
*/
|
|
11
|
+
const distanceSq4D = (xyzw1, xyzw2) => (xyzw1[0] - xyzw2[0]) ** 2 + (xyzw1[1] - xyzw2[1]) ** 2 + (xyzw1[2] - xyzw2[2]) ** 2 + (xyzw1[3] - xyzw2[3]) ** 2;
|
|
12
|
+
exports.distanceSq4D = distanceSq4D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Divides two 4D vectors component-wise.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @returns {ArrayVector4D} The divided vector
|
|
7
|
+
*/
|
|
8
|
+
export declare const divide4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => ArrayVector4D;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.divide4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Divides two 4D vectors component-wise.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @returns {ArrayVector4D} The divided vector
|
|
9
|
+
*/
|
|
10
|
+
const divide4D = (xyzw1, xyzw2) => [
|
|
11
|
+
xyzw2[0] === 0 ? Number.POSITIVE_INFINITY : xyzw1[0] / xyzw2[0],
|
|
12
|
+
xyzw2[1] === 0 ? Number.POSITIVE_INFINITY : xyzw1[1] / xyzw2[1],
|
|
13
|
+
xyzw2[2] === 0 ? Number.POSITIVE_INFINITY : xyzw1[2] / xyzw2[2],
|
|
14
|
+
xyzw2[3] === 0 ? Number.POSITIVE_INFINITY : xyzw1[3] / xyzw2[3],
|
|
15
|
+
];
|
|
16
|
+
exports.divide4D = divide4D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the dot product of two 4D vectors.
|
|
4
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
5
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
6
|
+
* @returns {number} The dot product
|
|
7
|
+
*/
|
|
8
|
+
export declare const dot4D: (xyzw1: ArrayVector4D, xyzw2: ArrayVector4D) => number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dot4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the dot product of two 4D vectors.
|
|
6
|
+
* @param {ArrayVector4D} xyzw1 - First vector as `[x, y, z, w]`
|
|
7
|
+
* @param {ArrayVector4D} xyzw2 - Second vector as `[x, y, z, w]`
|
|
8
|
+
* @returns {number} The dot product
|
|
9
|
+
*/
|
|
10
|
+
const dot4D = (xyzw1, xyzw2) => xyzw1[0] * xyzw2[0] + xyzw1[1] * xyzw2[1] + xyzw1[2] * xyzw2[2] + xyzw1[3] * xyzw2[3];
|
|
11
|
+
exports.dot4D = dot4D;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a 4D vector from an object with x, y, z, w properties.
|
|
4
|
+
* @param {{ x: number; y: number; z: number; w: number }} obj - Object with x, y, z, w properties
|
|
5
|
+
* @returns {ArrayVector4D} 4D vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const fromObject4D: ({ x, y, z, w }: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
z: number;
|
|
11
|
+
w: number;
|
|
12
|
+
}) => ArrayVector4D;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromObject4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a 4D vector from an object with x, y, z, w properties.
|
|
6
|
+
* @param {{ x: number; y: number; z: number; w: number }} obj - Object with x, y, z, w properties
|
|
7
|
+
* @returns {ArrayVector4D} 4D vector
|
|
8
|
+
*/
|
|
9
|
+
const fromObject4D = ({ x, y, z, w }) => [
|
|
10
|
+
x,
|
|
11
|
+
y,
|
|
12
|
+
z,
|
|
13
|
+
w,
|
|
14
|
+
];
|
|
15
|
+
exports.fromObject4D = fromObject4D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector4D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create an immutable 4D vector.
|
|
4
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
5
|
+
* @returns {Readonly<ArrayVector4D>} The immutable vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const immutable4D: (xyzw: ArrayVector4D) => Readonly<ArrayVector4D>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.immutable4D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Create an immutable 4D vector.
|
|
6
|
+
* @param {ArrayVector4D} xyzw - Vector as `[x, y, z, w]`
|
|
7
|
+
* @returns {Readonly<ArrayVector4D>} The immutable vector
|
|
8
|
+
*/
|
|
9
|
+
const immutable4D = (xyzw) => Object.freeze([xyzw[0], xyzw[1], xyzw[2], xyzw[3]]);
|
|
10
|
+
exports.immutable4D = immutable4D;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documentation for functional 4D Vector array operations.
|
|
3
|
+
* @module ArrayVector4D
|
|
4
|
+
*/
|
|
5
|
+
export * from "./add-4d.js";
|
|
6
|
+
export * from "./angle-between-4d.js";
|
|
7
|
+
export * from "./angle-w-4d.js";
|
|
8
|
+
export * from "./angle-x-4d.js";
|
|
9
|
+
export * from "./angle-y-4d.js";
|
|
10
|
+
export * from "./angle-z-4d.js";
|
|
11
|
+
export * from "./clamp-4d.js";
|
|
12
|
+
export * from "./clone-4d.js";
|
|
13
|
+
export * from "./distance-4d.js";
|
|
14
|
+
export * from "./distance-chebyshev-4d.js";
|
|
15
|
+
export * from "./distance-manhattan-4d.js";
|
|
16
|
+
export * from "./distance-minkowski-4d.js";
|
|
17
|
+
export * from "./distance-sq-4d.js";
|
|
18
|
+
export * from "./divide-4d.js";
|
|
19
|
+
export * from "./dot-4d.js";
|
|
20
|
+
export * from "./from-object-4d.js";
|
|
21
|
+
export * from "./immutable-4d.js";
|
|
22
|
+
export * from "./is-equal-4d.js";
|
|
23
|
+
export * from "./is-equal-approx-4d.js";
|
|
24
|
+
export * from "./is-infinite-4d.js";
|
|
25
|
+
export * from "./is-nan-4d.js";
|
|
26
|
+
export * from "./is-opposite-4d.js";
|
|
27
|
+
export * from "./is-zero-4d.js";
|
|
28
|
+
export * from "./lerp-4d.js";
|
|
29
|
+
export * from "./limit-max-4d.js";
|
|
30
|
+
export * from "./limit-min-4d.js";
|
|
31
|
+
export * from "./look-at-4d.js";
|
|
32
|
+
export * from "./magnitude-4d.js";
|
|
33
|
+
export * from "./magnitude-sq-4d.js";
|
|
34
|
+
export * from "./multiply-4d.js";
|
|
35
|
+
export * from "./negate-4d.js";
|
|
36
|
+
export * from "./normalize-4d.js";
|
|
37
|
+
export * from "./one-4d.js";
|
|
38
|
+
export * from "./project-4d.js";
|
|
39
|
+
export * from "./random-4d.js";
|
|
40
|
+
export * from "./reflect-4d.js";
|
|
41
|
+
export * from "./set-magnitude-4d.js";
|
|
42
|
+
export * from "./subtract-4d.js";
|
|
43
|
+
export * from "./types.js";
|
|
44
|
+
export * from "./zero-4d.js";
|