@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,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reflect2D = void 0;
|
|
4
|
+
const dot_2d_js_1 = require("./dot-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Reflects the vector across a normal vector.
|
|
7
|
+
* The normal vector should be normalized (unit length).
|
|
8
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]` to reflect
|
|
9
|
+
* @param {ArrayVector2D} normal - Normal vector to reflect across (must be normalized)
|
|
10
|
+
* @returns {ArrayVector2D} The reflected vector
|
|
11
|
+
*/
|
|
12
|
+
const reflect2D = (xy, normal) => {
|
|
13
|
+
const dot = (0, dot_2d_js_1.dot2D)(xy, normal);
|
|
14
|
+
return [xy[0] - 2 * dot * normal[0], xy[1] - 2 * dot * normal[1]];
|
|
15
|
+
};
|
|
16
|
+
exports.reflect2D = reflect2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Rotates a 2D point around an arbitrary axis point
|
|
4
|
+
* @param {ArrayVector2D} xy - Point to rotate
|
|
5
|
+
* @param {number} phi - Rotation angle in radians
|
|
6
|
+
* @param {ArrayVector2D} axis - Rotation axis point (default: `[0, 0]`)
|
|
7
|
+
* @returns {ArrayVector2D} The rotated vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const rotate2D: (xy: ArrayVector2D, phi: number, axis?: ArrayVector2D) => ArrayVector2D;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rotate2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Rotates a 2D point around an arbitrary axis point
|
|
6
|
+
* @param {ArrayVector2D} xy - Point to rotate
|
|
7
|
+
* @param {number} phi - Rotation angle in radians
|
|
8
|
+
* @param {ArrayVector2D} axis - Rotation axis point (default: `[0, 0]`)
|
|
9
|
+
* @returns {ArrayVector2D} The rotated vector
|
|
10
|
+
*/
|
|
11
|
+
const rotate2D = (xy, phi, axis = [0, 0]) => {
|
|
12
|
+
const cos = Math.cos(phi);
|
|
13
|
+
const sin = Math.sin(phi);
|
|
14
|
+
// No need to translate if axis is [0, 0]
|
|
15
|
+
if (axis[0] === 0 && axis[1] === 0) {
|
|
16
|
+
return [xy[0] * cos - xy[1] * sin, xy[0] * sin + xy[1] * cos];
|
|
17
|
+
}
|
|
18
|
+
// Translate point to origin (relative to axis)
|
|
19
|
+
const translatedX = xy[0] - axis[0];
|
|
20
|
+
const translatedY = xy[1] - axis[1];
|
|
21
|
+
// Rotate around origin
|
|
22
|
+
const rotatedX = translatedX * cos - translatedY * sin;
|
|
23
|
+
const rotatedY = translatedX * sin + translatedY * cos;
|
|
24
|
+
// Translate back
|
|
25
|
+
return [rotatedX + axis[0], rotatedY + axis[1]];
|
|
26
|
+
};
|
|
27
|
+
exports.rotate2D = rotate2D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Sets the magnitude (length) of a 2D vector, maintaining its direction.
|
|
4
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
5
|
+
* @param {number} newMag - New magnitude
|
|
6
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
7
|
+
* @returns {ArrayVector2D} The adjusted vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const setMagnitude2D: (xy: ArrayVector2D, newMag: number, m?: number) => ArrayVector2D;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setMagnitude2D = void 0;
|
|
4
|
+
const magnitude_2d_js_1 = require("./magnitude-2d.js");
|
|
5
|
+
/**
|
|
6
|
+
* Sets the magnitude (length) of a 2D vector, maintaining its direction.
|
|
7
|
+
* @param {ArrayVector2D} xy - Vector as `[x, y]`
|
|
8
|
+
* @param {number} newMag - New magnitude
|
|
9
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude2D(xy)`)
|
|
10
|
+
* @returns {ArrayVector2D} The adjusted vector
|
|
11
|
+
*/
|
|
12
|
+
const setMagnitude2D = (xy, newMag, m = (0, magnitude_2d_js_1.magnitude2D)(xy)) => [
|
|
13
|
+
(xy[0] / m) * newMag,
|
|
14
|
+
(xy[1] / m) * newMag,
|
|
15
|
+
];
|
|
16
|
+
exports.setMagnitude2D = setMagnitude2D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector2D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Subtracts a 2D vector from another.
|
|
4
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
5
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
6
|
+
* @returns {ArrayVector2D} The difference between vectors
|
|
7
|
+
*/
|
|
8
|
+
export declare const subtract2D: (xy1: ArrayVector2D, xy2: ArrayVector2D) => ArrayVector2D;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subtract2D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Subtracts a 2D vector from another.
|
|
6
|
+
* @param {ArrayVector2D} xy1 - First vector as `[x, y]`
|
|
7
|
+
* @param {ArrayVector2D} xy2 - Second vector as `[x, y]`
|
|
8
|
+
* @returns {ArrayVector2D} The difference between vectors
|
|
9
|
+
*/
|
|
10
|
+
const subtract2D = (xy1, xy2) => [xy1[0] - xy2[0], xy1[1] - xy2[1]];
|
|
11
|
+
exports.subtract2D = subtract2D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Adds two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]` as [x, y, z]
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]` as [x, y, z]
|
|
6
|
+
* @returns {ArrayVector3D} The sum of the vectors
|
|
7
|
+
*/
|
|
8
|
+
export declare const add3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => ArrayVector3D;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.add3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Adds two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]` as [x, y, z]
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]` as [x, y, z]
|
|
8
|
+
* @returns {ArrayVector3D} The sum of the vectors
|
|
9
|
+
*/
|
|
10
|
+
const add3D = (xyz1, xyz2) => [
|
|
11
|
+
xyz1[0] + xyz2[0],
|
|
12
|
+
xyz1[1] + xyz2[1],
|
|
13
|
+
xyz1[2] + xyz2[2],
|
|
14
|
+
];
|
|
15
|
+
exports.add3D = add3D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the angle between two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @param {number} [m1] - Optional first vector magnitude (default: `magnitude3D(xyz1)`)
|
|
7
|
+
* @param {number} [m2] - Optional second vector magnitude (default: `magnitude3D(xyz2)`)
|
|
8
|
+
* @returns {number} Angle between the vectors in radians
|
|
9
|
+
*/
|
|
10
|
+
export declare const angleBetween3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D, m1?: number, m2?: number) => number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleBetween3D = void 0;
|
|
4
|
+
const magnitude_3d_1 = require("./magnitude-3d");
|
|
5
|
+
/**
|
|
6
|
+
* Calculates the angle between two 3D vectors.
|
|
7
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
8
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
9
|
+
* @param {number} [m1] - Optional first vector magnitude (default: `magnitude3D(xyz1)`)
|
|
10
|
+
* @param {number} [m2] - Optional second vector magnitude (default: `magnitude3D(xyz2)`)
|
|
11
|
+
* @returns {number} Angle between the vectors in radians
|
|
12
|
+
*/
|
|
13
|
+
const angleBetween3D = (xyz1, xyz2, m1 = (0, magnitude_3d_1.magnitude3D)(xyz1), m2 = (0, magnitude_3d_1.magnitude3D)(xyz2)) => Math.acos((xyz1[0] * xyz2[0] + xyz1[1] * xyz2[1] + xyz1[2] * xyz2[2]) / (m1 * m2));
|
|
14
|
+
exports.angleBetween3D = angleBetween3D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Gets the angle between a 3D vector and the positive x-axis in radians.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @returns {number} Angle in radians, always in the range [0, 2π)
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleX3D: (xyz: ArrayVector3D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleX3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Gets the angle between a 3D vector and the positive x-axis in radians.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @returns {number} Angle in radians, always in the range [0, 2π)
|
|
8
|
+
*/
|
|
9
|
+
const angleX3D = (xyz) => Math.atan2(Math.sqrt(xyz[1] ** 2 + xyz[2] ** 2), xyz[0]);
|
|
10
|
+
exports.angleX3D = angleX3D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Gets the angle between a 3D vector and the positive y-axis in radians.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @returns {number} Angle in radians, always in the range [0, 2π)
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleY3D: (xyz: ArrayVector3D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleY3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Gets the angle between a 3D vector and the positive y-axis in radians.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @returns {number} Angle in radians, always in the range [0, 2π)
|
|
8
|
+
*/
|
|
9
|
+
const angleY3D = (xyz) => Math.atan2(Math.sqrt(xyz[2] ** 2 + xyz[0] ** 2), xyz[1]);
|
|
10
|
+
exports.angleY3D = angleY3D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Gets the angle between a 3D vector and the positive z-axis in radians.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @returns {number} Angle in radians, always in the range [0, 2π)
|
|
6
|
+
*/
|
|
7
|
+
export declare const angleZ3D: (xyz: ArrayVector3D) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.angleZ3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Gets the angle between a 3D vector and the positive z-axis in radians.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @returns {number} Angle in radians, always in the range [0, 2π)
|
|
8
|
+
*/
|
|
9
|
+
const angleZ3D = (xyz) => Math.atan2(Math.sqrt(xyz[0] ** 2 + xyz[1] ** 2), xyz[2]);
|
|
10
|
+
exports.angleZ3D = angleZ3D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Clamps the magnitude of a vector between min and max.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @param {number} min - Minimum magnitude
|
|
6
|
+
* @param {number} max - Maximum magnitude
|
|
7
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude3D(xyz)`)
|
|
8
|
+
* @returns {ArrayVector3D} The clamped vector
|
|
9
|
+
*/
|
|
10
|
+
export declare const clamp3D: (xyz: ArrayVector3D, min: number, max: number, m?: number) => ArrayVector3D;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clamp3D = void 0;
|
|
4
|
+
const magnitude_3d_1 = require("./magnitude-3d");
|
|
5
|
+
/**
|
|
6
|
+
* Clamps the magnitude of a vector between min and max.
|
|
7
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
8
|
+
* @param {number} min - Minimum magnitude
|
|
9
|
+
* @param {number} max - Maximum magnitude
|
|
10
|
+
* @param {number} [m] - Optional current magnitude (default: `magnitude3D(xyz)`)
|
|
11
|
+
* @returns {ArrayVector3D} The clamped vector
|
|
12
|
+
*/
|
|
13
|
+
const clamp3D = (xyz, min, max, m = (0, magnitude_3d_1.magnitude3D)(xyz)) => m > max
|
|
14
|
+
? [(xyz[0] / m) * max, (xyz[1] / m) * max, (xyz[2] / m) * max]
|
|
15
|
+
: m < min
|
|
16
|
+
? [(xyz[0] / m) * min, (xyz[1] / m) * min, (xyz[2] / m) * min]
|
|
17
|
+
: xyz;
|
|
18
|
+
exports.clamp3D = clamp3D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clone3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Clone a 3D vector.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @returns {ArrayVector3D} The cloned vector
|
|
8
|
+
*/
|
|
9
|
+
const clone3D = (xyz) => [xyz[0], xyz[1], xyz[2]];
|
|
10
|
+
exports.clone3D = clone3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the cross product of two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @returns {ArrayVector3D} The cross product
|
|
7
|
+
*/
|
|
8
|
+
export declare const cross3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => ArrayVector3D;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cross3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the cross product of two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @returns {ArrayVector3D} The cross product
|
|
9
|
+
*/
|
|
10
|
+
const cross3D = (xyz1, xyz2) => [
|
|
11
|
+
xyz1[1] * xyz2[2] - xyz1[2] * xyz2[1],
|
|
12
|
+
xyz1[2] * xyz2[0] - xyz1[0] * xyz2[2],
|
|
13
|
+
xyz1[0] * xyz2[1] - xyz1[1] * xyz2[0],
|
|
14
|
+
];
|
|
15
|
+
exports.cross3D = cross3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Euclidean distance between two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @returns {number} Euclidian distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distance3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distance3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Euclidean distance between two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @returns {number} Euclidian distance
|
|
9
|
+
*/
|
|
10
|
+
const distance3D = (xyz1, xyz2) => Math.sqrt((xyz1[0] - xyz2[0]) ** 2 + (xyz1[1] - xyz2[1]) ** 2 + (xyz1[2] - xyz2[2]) ** 2);
|
|
11
|
+
exports.distance3D = distance3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Chebyshev distance between two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]` as
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]` as
|
|
6
|
+
* @returns {number} Chebyshev distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distanceChebyshev3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceChebyshev3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Chebyshev distance between two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]` as
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]` as
|
|
8
|
+
* @returns {number} Chebyshev distance
|
|
9
|
+
*/
|
|
10
|
+
const distanceChebyshev3D = (xyz1, xyz2) => {
|
|
11
|
+
const absX = Math.abs(xyz1[0] - xyz2[0]);
|
|
12
|
+
const absY = Math.abs(xyz1[1] - xyz2[1]);
|
|
13
|
+
const absZ = Math.abs(xyz1[2] - xyz2[2]);
|
|
14
|
+
return absX >= absY && absX >= absZ ? absX : absY >= absZ ? absY : absZ;
|
|
15
|
+
};
|
|
16
|
+
exports.distanceChebyshev3D = distanceChebyshev3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Manhattan distance between two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @returns {number} Manhattan distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distanceManhattan3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceManhattan3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Manhattan distance between two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @returns {number} Manhattan distance
|
|
9
|
+
*/
|
|
10
|
+
const distanceManhattan3D = (xyz1, xyz2) => Math.abs(xyz1[0] - xyz2[0]) + Math.abs(xyz1[1] - xyz2[1]) + Math.abs(xyz1[2] - xyz2[2]);
|
|
11
|
+
exports.distanceManhattan3D = distanceManhattan3D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the Minkowski distance between two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @param {number} p - Order of the Minkowski distance
|
|
7
|
+
* @returns {number} Minkowski distance
|
|
8
|
+
*/
|
|
9
|
+
export declare const distanceMinkowski3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D, p: number) => number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceMinkowski3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the Minkowski distance between two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @param {number} p - Order of the Minkowski distance
|
|
9
|
+
* @returns {number} Minkowski distance
|
|
10
|
+
*/
|
|
11
|
+
const distanceMinkowski3D = (xyz1, xyz2, p) => (Math.abs(xyz1[0] - xyz2[0]) ** p + Math.abs(xyz1[1] - xyz2[1]) ** p + Math.abs(xyz1[2] - xyz2[2]) ** p) ** (1 / p);
|
|
12
|
+
exports.distanceMinkowski3D = distanceMinkowski3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the squared Euclidean distance between two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @returns {number} Squared Euclidian distance
|
|
7
|
+
*/
|
|
8
|
+
export declare const distanceSq3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.distanceSq3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the squared Euclidean distance between two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @returns {number} Squared Euclidian distance
|
|
9
|
+
*/
|
|
10
|
+
const distanceSq3D = (xyz1, xyz2) => (xyz1[0] - xyz2[0]) ** 2 + (xyz1[1] - xyz2[1]) ** 2 + (xyz1[2] - xyz2[2]) ** 2;
|
|
11
|
+
exports.distanceSq3D = distanceSq3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Divides one 3D vector with 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 divided vector
|
|
7
|
+
*/
|
|
8
|
+
export declare const divide3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => ArrayVector3D;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.divide3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Divides one 3D vector with 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 divided vector
|
|
9
|
+
*/
|
|
10
|
+
const divide3D = (xyz1, xyz2) => [
|
|
11
|
+
xyz2[0] === 0 ? Number.POSITIVE_INFINITY : xyz1[0] / xyz2[0],
|
|
12
|
+
xyz2[1] === 0 ? Number.POSITIVE_INFINITY : xyz1[1] / xyz2[1],
|
|
13
|
+
xyz2[2] === 0 ? Number.POSITIVE_INFINITY : xyz1[2] / xyz2[2],
|
|
14
|
+
];
|
|
15
|
+
exports.divide3D = divide3D;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates the dot product of two 3D vectors.
|
|
4
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
5
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
6
|
+
* @returns {number} Dot product
|
|
7
|
+
*/
|
|
8
|
+
export declare const dot3D: (xyz1: ArrayVector3D, xyz2: ArrayVector3D) => number;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dot3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the dot product of two 3D vectors.
|
|
6
|
+
* @param {ArrayVector3D} xyz1 - First vector as `[x, y, z]`
|
|
7
|
+
* @param {ArrayVector3D} xyz2 - Second vector as `[x, y, z]`
|
|
8
|
+
* @returns {number} Dot product
|
|
9
|
+
*/
|
|
10
|
+
const dot3D = (xyz1, xyz2) => xyz1[0] * xyz2[0] + xyz1[1] * xyz2[1] + xyz1[2] * xyz2[2];
|
|
11
|
+
exports.dot3D = dot3D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a vector from cylindrical coordinates.
|
|
4
|
+
* @param {number} r - Radius
|
|
5
|
+
* @param {number} phi - Angle in radians
|
|
6
|
+
* @param {number} z - Vector z axis
|
|
7
|
+
* @returns {ArrayVector3D} Vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const fromCylindricalCoords: (r: number, phi: number, z: number) => ArrayVector3D;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromCylindricalCoords = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a vector from cylindrical coordinates.
|
|
6
|
+
* @param {number} r - Radius
|
|
7
|
+
* @param {number} phi - Angle in radians
|
|
8
|
+
* @param {number} z - Vector z axis
|
|
9
|
+
* @returns {ArrayVector3D} Vector
|
|
10
|
+
*/
|
|
11
|
+
const fromCylindricalCoords = (r, phi, z) => [
|
|
12
|
+
r * Math.cos(phi),
|
|
13
|
+
r * Math.sin(phi),
|
|
14
|
+
z,
|
|
15
|
+
];
|
|
16
|
+
exports.fromCylindricalCoords = fromCylindricalCoords;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates an ArrayVector3D from an object with x, y and z properties.
|
|
4
|
+
* @param {{ x: number; y: number; z: number }} vector3D - Object with x, y and z properties
|
|
5
|
+
* @returns {ArrayVector3D} Vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const fromObject3D: ({ x, y, z }: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
z: number;
|
|
11
|
+
}) => ArrayVector3D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromObject3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates an ArrayVector3D from an object with x, y and z properties.
|
|
6
|
+
* @param {{ x: number; y: number; z: number }} vector3D - Object with x, y and z properties
|
|
7
|
+
* @returns {ArrayVector3D} Vector
|
|
8
|
+
*/
|
|
9
|
+
const fromObject3D = ({ x, y, z }) => [x, y, z];
|
|
10
|
+
exports.fromObject3D = fromObject3D;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a 3D vector from spherical coordinates.
|
|
4
|
+
* @param {number} theta - First angle
|
|
5
|
+
* @param {number} phi - Second angle
|
|
6
|
+
* @param {number} [m] - Optional magnitude (default: `1`)
|
|
7
|
+
* @returns {ArrayVector3D} Vector
|
|
8
|
+
*/
|
|
9
|
+
export declare const fromSphericalCoords3D: (theta: number, phi: number, m?: number) => ArrayVector3D;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromSphericalCoords3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a 3D vector from spherical coordinates.
|
|
6
|
+
* @param {number} theta - First angle
|
|
7
|
+
* @param {number} phi - Second angle
|
|
8
|
+
* @param {number} [m] - Optional magnitude (default: `1`)
|
|
9
|
+
* @returns {ArrayVector3D} Vector
|
|
10
|
+
*/
|
|
11
|
+
const fromSphericalCoords3D = (theta, phi, m = 1) => [
|
|
12
|
+
m * Math.sin(theta) * Math.cos(phi),
|
|
13
|
+
m * Math.sin(theta) * Math.sin(phi),
|
|
14
|
+
m * Math.cos(theta),
|
|
15
|
+
];
|
|
16
|
+
exports.fromSphericalCoords3D = fromSphericalCoords3D;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ArrayVector3D } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create an immutable 3D vector.
|
|
4
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
5
|
+
* @returns {Readonly<ArrayVector3D>} The immutable vector
|
|
6
|
+
*/
|
|
7
|
+
export declare const immutable3D: (xyz: ArrayVector3D) => Readonly<ArrayVector3D>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.immutable3D = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Create an immutable 3D vector.
|
|
6
|
+
* @param {ArrayVector3D} xyz - Vector as `[x, y, z]`
|
|
7
|
+
* @returns {Readonly<ArrayVector3D>} The immutable vector
|
|
8
|
+
*/
|
|
9
|
+
const immutable3D = (xyz) => Object.freeze([xyz[0], xyz[1], xyz[2]]);
|
|
10
|
+
exports.immutable3D = immutable3D;
|