Options
All
  • Public
  • Public/Protected
  • All
Menu

vec2-fn

Index

Type aliases

Vec2Array

Vec2Array<T>: T

Vec2-like array object.

Type parameters

  • T: number[] = [number, number]

Vec2Param

Vec2Param: Vec2 | Vec2Array

A Vec2 array or object.

Vec2Readonly

Vec2Readonly: Readonly<Vec2>

Readonly Vec2

Variables

Const APPROX_THRESHOLD

APPROX_THRESHOLD: 1e-8 = 0.00000001

Approximate threshold for approx comparison

Const MINUS_ONE

MINUS_ONE: Vec2Readonly = ...

Constant readonly Vec2 with both values equalling -1

Const ONE

ONE: Vec2Readonly = ...

Constant readonly Vec2 with both values equalling 1

Const PRECISION

PRECISION: 11 = 11

The number of decimal places calculations are made to.

Const VEC2_DOWN

VEC2_DOWN: Vec2Readonly = ...

Normalized Vec2 pointing down

Const VEC2_DOWN_LEFT

VEC2_DOWN_LEFT: Vec2Readonly = ...

Normalized Vec2 pointing down-left

Const VEC2_DOWN_RIGHT

VEC2_DOWN_RIGHT: Vec2Readonly = ...

Normalized Vec2 pointing down-right

Const VEC2_LEFT

VEC2_LEFT: Vec2Readonly = ...

Normalized Vec2 pointing left

Const VEC2_RIGHT

VEC2_RIGHT: Vec2Readonly = ...

Normalized Vec2 pointing right

Const VEC2_UP

VEC2_UP: Vec2Readonly = ...

Normalized Vec2 pointing up

Const VEC2_UP_LEFT

VEC2_UP_LEFT: Vec2Readonly = ...

Normalized Vec2 pointing up-left

Const VEC2_UP_RIGHT

VEC2_UP_RIGHT: Vec2Readonly = ...

Normalized Vec2 pointing up-right

Const ZERO

ZERO: Vec2Readonly = ...

Constant readonly Vec2 with both values equalling 0

Functions

abs

  • abs<T>(target: T): T
  • abs<D>(target: Vec2Param, dest?: D): D
  • Calculate vec2 absolute value.

    example
    abs({ x: -1, y: -1 }); // -> { x: 0, y: 0 }
    

    Type parameters

    Parameters

    • target: T

      Target vector.

    Returns T

    • A reference to the modified target vector.
  • Calculate vec2 absolute value.

    example
    abs({ x: -1, y: -1 }); // -> { x: 0, y: 0 }
    

    Type parameters

    Parameters

    • target: Vec2Param

      Target vector.

    • Optional dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination object.

add

  • Add vectors together.

    example
    add({ x: -1, y: -1 }, { x: 1, y: 1 }); // -> { x: 0, y: 0 }
    

    Type parameters

    Parameters

    • target: T

      Target vector.

    • value: Vec2Param | number

      The vector to add.

    Returns T

    • A reference to the modified target object.
  • Add vectors together.

    example
    let result = { x: 0, y: 0 };
    
    add({ x: -1, y: -1 }, { x: 1, y: 1 }, result); // -> { x: 0, y: 0 }
    

    Type parameters

    Parameters

    • target: Vec2Param

      Target vector.

    • value: Vec2Param | number

      The vector to add.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination object.

angleTo

  • Calculate angle.

    Parameters

    • to: Vec2Param

      Vector to calculate to.

    • from: Vec2Param = ...

      Vector to calculate from. Defaults to ZERO.

    Returns number

    • Number angle result.

approx

  • Calculate whether two vectors are approximately equal.

    Parameters

    • v1: Vec2Param

      First vector for comparison.

    • v2: Vec2Param

      Second vector for comparison.

    • threshold: number = ...

    Returns boolean

    • Whether the vectors are approximately equal or not.

ceil

  • ceil<T>(target: T): T
  • ceil<D>(target: Vec2Param, dest: D): D
  • Ceil the values of a vector.

    Type parameters

    Parameters

    • target: T

      The target vector.

    Returns T

    • A reference to the modified target vector.
  • Ceil the values of a vector.

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination vector.

clamp

  • Clamp a vector by min and max limits.

    Type parameters

    Parameters

    • target: T

      Target object.

    • vMin: Vec2Param | number

      Minimum vector.

    • vMax: Vec2Param | number

      Maximum vector.

    Returns T

    • A reference to the modified target object.
  • Clamp a vector by min and max limits.

    Type parameters

    Parameters

    • target: Vec2Param

      Target object.

    • vMin: Vec2Param | number

      Minimum vector.

    • vMax: Vec2Param | number

      Maximum vector.

    • dest: D

      Destination object to store the values.

    Returns D

    • A reference to the modified destination object.

copy

  • Copy one vectors values to another.

    Type parameters

    Parameters

    • target: Vec2Param

      Target to be copied from.

    • dest: D

      The destination object.

    Returns D

    • The destination object reference.

distance

distanceSq

  • Get the squared distance between two vectors.

    Parameters

    Returns number

    • Number distance squared result.

divide

  • Divide two vectors.

    Type parameters

    Parameters

    • target: T

      Target vector.

    • value: Vec2Param | number

      The vector to divide by.

    Returns T

    • A reference to the modified target object.
  • Divide two vectors.

    Type parameters

    Parameters

    • target: Vec2Param

      Target vector.

    • value: Vec2Param | number

      The vector to divide by.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination object.

dot

  • Calculate the dot product of two vectors.

    Parameters

    Returns number

    • Number result of the dot product.

dotPerp

  • Calculate the perpendicular dot product of two vectors.

    Parameters

    Returns number

    • Number result of the perpendicular dot product.

equal

  • Check whether two vectors are exactly equal to system precision.

    Parameters

    Returns boolean

    • Boolean result of whether the vectors are equal.

floor

  • floor<T>(target: T): T
  • floor<D>(target: Vec2Param, dest: D): D
  • Floor the values of a vector.

    Type parameters

    Parameters

    • target: T

      The target vector.

    Returns T

    • A reference to the modified target vector.
  • Floor the values of a vector.

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination vector.

isOne

  • Check whether a vector is exactly equal to one (1,1).

    Parameters

    Returns boolean

    • Boolean result of whether the vector is equal to one.

isVec2LikeArray

  • isVec2LikeArray<T>(value: T): value is T extends [number, number] ? T : never
  • Check whether a value is a vec2-like array.

    Type parameters

    • T: unknown

    Parameters

    • value: T

      Input value to check.

    Returns value is T extends [number, number] ? T : never

    • Boolean result of whether the input is a vec2-like array.

isVec2LikeObject

  • isVec2LikeObject<T>(value: T): value is T extends Vec2 ? T : never
  • Check whether a value is a vec2-like object.

    Type parameters

    • T: unknown

    Parameters

    • value: T

      Input value to check.

    Returns value is T extends Vec2 ? T : never

    • Boolean result of whether the input is a vec2-like object.

isZero

  • Check whether a vector is exactly equal to zero (0,0).

    Parameters

    Returns boolean

    • Boolean result of whether the vector is equal to zero.

length

  • Get the length of a vector.

    Parameters

    Returns number

    • The number result of the vector length.

lengthSq

  • Get the squared length of a vector.

    Parameters

    Returns number

    • The number result of the squared vector length.

lerp

  • lerp<T, V>(target: T, value: V, k: number): T
  • lerp<D>(target: Vec2Param, value: Vec2Param, k: number, dest: D): D
  • Linear interpolate two vectors.

    Type parameters

    Parameters

    • target: T

      Vector A.

    • value: V

      Vector B.

    • k: number

      The amount to interpolate by.

    Returns T

    • A reference to the modified target object.
  • Linear interpolate two vectors.

    Type parameters

    Parameters

    • target: Vec2Param

      Vector A.

    • value: Vec2Param

      Vector B.

    • k: number

      The amount to interpolate by.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination object.

max

  • max<D>(dest: D, ...values: (Vec2Param | number)[]): D
  • Returns the max x and y of a set of vectors.

    Type parameters

    Parameters

    • dest: D

      -

    • Rest ...values: (Vec2Param | number)[]

      -

    Returns D

    -

min

  • min<D>(dest: D, ...values: (Vec2Param | number)[]): D
  • Returns the min x and y of a set of vectors.

    Type parameters

    Parameters

    • dest: D
    • Rest ...values: (Vec2Param | number)[]

      -

    Returns D

    -

multiply

  • Multiply two vectors.

    Type parameters

    Parameters

    • target: T

      The target vector.

    • value: Vec2Param | number

      The vector to multiply by.

    Returns T

    • A reference to the modified target object.
  • Multiply two vectors.

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • value: Vec2Param | number

      The vector to multiply by.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination object.

negate

  • negate<T>(target: T): T
  • negate<D>(target: Vec2Param, dest: D): D
  • Negate a vector.

    Type parameters

    Parameters

    • target: T

      The target vector.

    Returns T

    • A reference to the modified target vector.
  • Negate a vector.

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination vector.

normalize

  • normalize<T>(target: T): T
  • normalize<D>(target: Vec2Param, dest?: D): D
  • Normalize a vector.

    Type parameters

    Parameters

    • target: T

      Target can be vec object or array.

    Returns T

    • The modified target object.
  • Normalize a vector.

    Type parameters

    Parameters

    • target: Vec2Param

      Target can be vec object or array.

    • Optional dest: D

      destination object to store the result.

    Returns D

    • A reference to the destination object.

rotate

  • rotate<T>(target: T, angle: number): T
  • rotate<D>(target: Vec2Param, angle: number, dest?: D): D
  • Rotate a vector around zero point.

    readonly
    • A reference to the modified target vector.

    Type parameters

    Parameters

    • target: T

      The target vector.

    • angle: number

      The amount of rotation to apply in radians.

    Returns T

  • Rotate a vector around zero point.

    readonly
    • A reference to the modified destination vector.

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • angle: number

      The amount of rotation to apply in radians.

    • Optional dest: D

      Optional destination object to store the result.

    Returns D

round

  • round<T>(target: T): T
  • round<D>(target: Vec2Param, dest: D): D
  • Round the values of a vector.

    Type parameters

    Parameters

    • target: T

      The target vector.

    Returns T

    • A reference to the modified target vector.
  • Round the values of a vector.

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination vector.

subtract

  • Subtract one vector from another.

    example
    subtract({ x: 1, y: 1 }, { x: 1, y: 1 }); // -> { x: 0, y: 0 }
    

    Type parameters

    Parameters

    • target: T

      The target vector.

    • value: Vec2Param | number

      The vector to subtract.

    Returns T

    • A reference to the modified target vector.
  • Subtract one vector from another.

    example
    let result = { x: 0, y: 0 };
    subtract({ x: 1, y: 1 }, { x: 1, y: 1 }, result); // -> { x: 0, y: 0 }
    

    Type parameters

    Parameters

    • target: Vec2Param

      The target vector.

    • value: Vec2Param | number

      The vector to subtract.

    • Optional dest: D

      Destination object to store the result.

    Returns D

    • A reference to the modified destination vector.

toArray

toObject

zero

  • zero<T>(target: T): T
  • Set vector to zero.

    Type parameters

    Parameters

    • target: T

      Target Vec2-like object the values will be written to.

    Returns T

    • A reference to the object the result was written to.