Skip to content

Latest commit

 

History

History
58 lines (52 loc) · 1.63 KB

README.md

File metadata and controls

58 lines (52 loc) · 1.63 KB

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;