Skip to content

3dlyra/vector3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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;

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published