@3dlyra/vector3
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

Vector3

This library is the 3D vector part of the 3DLyra's math library.

Installation

npm i @3dlyra/vector3

Example

import * as Vector3 from "@3dlyra/vector3"

// Euclidean distance between two vectors
{
  const a = Vector3.create() // Float32Array[ 0, 0, 0 ]
  const b = Vector3.create( 1, 2, 3 )

  console.log( Vector3.distance( a, b ) ) // 3.7416573867739413
}

// Angle between two vectors
{
  const a = Vector3.create( 1, 0, 0 )
  const b = Vector3.create( 0, 1, 0 )

  console.log( Vector3.angleBetween( a, b ) ) // 1.5707963267948966 (=== Math.PI / 2)
}

API

// type vec3 = Float32Array( 3 )
// type quaternion = Float32Array( 4 ) [or use @3dlyra/quaternion]
// type matrix4 = Float32Array( 16 ) [or use @3dlyra/matrix4]

create( x?: number, y?: number, z?: number ): vec3
equals( a: vec3, b: vec3, accuracy?: number ): boolean
add( a: vec3, b: vec3 ): vec3
sub( a: vec3, b: vec3 ): vec3
mul( a: vec3, b: vec3 ): vec3
div( a: vec3, b: vec3 ): vec3
min( a: vec3, b: vec3 ): vec3
max( a: vec3, b: vec3 ): vec3
clamp( v3: vec3, min: vec3, max: vec3 ): vec3
dot( a: vec3, b: vec3 ): number
cross( a: vec3, b: vec3 ): vec3
floor( v3: vec3 ): vec3
ceil( v3: vec3 ): vec3
round( v3: vec3 ): vec3
trunc( v3: vec3 ): vec3
length( v3: vec3 ): number
distance( a: vec3, b: vec3 ): number
angleBetween( a: vec3, b: vec3 ): number
negate( v3: vec3 ): vec3
inverse( v3: vec3 ): vec3
normalize( v3: vec3 ): vec3
applyQuaternion( v3: vec3, quat: quaternion ): vec3
applyMatrix4( v3: vec3, m4: matrix4 ): vec3
fromLonLat( targetLon: number, targetLat: number, centerLon: number, centerLat: number, scale?: number ): vec3;

Readme

Keywords

Package Sidebar

Install

npm i @3dlyra/vector3

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

10.6 kB

Total Files

4

Last publish

Collaborators

  • 3dlyra