Skip to main content

Vector4

A 4D vector, often used for homogeneous coordinates in WebGL shaders and transforms.

Implements

Index

Constructors

constructor

  • Vector4(x: number, y: number, z: number, w: number): Vector4
  • Parameters

    • x: number

      X component

    • y: number

      Y component

    • z: number

      Z component

    • w: number

      W component

    Returns Vector4

Properties

publicstaticEQUALS_EPSILON

EQUALS_EPSILON: number = 0.001

Get or set the vector equals epsilon, by default 0.001 meaning vectors within that tolerance will be considered equal.

Accessors

publicmagnitude

  • get magnitude(): number
  • set magnitude(newMagnitude: number): void
  • Magnitude (length) of the Vector


    Returns number

  • Parameters

    • newMagnitude: number

    Returns void

publicw

  • get w(): number
  • set w(val: number): void
  • Returns number

  • Parameters

    • val: number

    Returns void

publicx

  • get x(): number
  • set x(val: number): void
  • Returns number

  • Parameters

    • val: number

    Returns void

publicy

  • get y(): number
  • set y(val: number): void
  • Returns number

  • Parameters

    • val: number

    Returns void

publicz

  • get z(): number
  • set z(val: number): void
  • Returns number

  • Parameters

    • val: number

    Returns void

publicstaticOne

  • A (1, 1, 1, 1) vector


    Returns Vector4

publicstaticZero

  • A (0, 0, 0, 0) vector


    Returns Vector4

Methods

publicadd

publicaddEqual

  • Adds one vector to this one modifying the original


    Parameters

    Returns Vector4

publicaverage

  • Returns midpoint between this and target point


    Parameters

    Returns Vector4

publicclampMagnitude

  • clampMagnitude(magnitude: number): Vector4
  • Clamps the current vector's magnitude mutating it


    Parameters

    • magnitude: number

    Returns Vector4

publicclone

  • Creates new vector that has the same values as the previous.


    Parameters

    Returns Vector4

publicdistance

  • Distance to another vector or magnitude if omitted


    Parameters

    Returns number

publicdot

  • Performs a dot product with another vector


    Parameters

    Returns number

publicequals

  • equals(vector: Vector4, tolerance?: number): boolean
  • Compares this vector against another and tests for equality


    Parameters

    • vector: Vector4
    • tolerance: number = Vector4.EQUALS_EPSILON

    Returns boolean

publiclerp

  • Linearly interpolates between current vector and target vector.


    Parameters

    Returns Vector4

publicnegate

  • Negates current vector


    Returns Vector4

publicnormalize

  • Normalizes a non-zero vector. Zero vectors return a new zero vector.


    Returns Vector4

publicscale

publicscaleEqual

  • Scales this vector by a factor and modifies the original


    Parameters

    • size: number

    Returns Vector4

publicsetTo

  • setTo(x: number, y: number, z: number, w: number): void
  • Sets all 4 components at once, THIS MUTATES the current vector.


    Parameters

    • x: number
    • y: number
    • z: number
    • w: number

    Returns void

publicsquareDistance

  • squareDistance(v?: Vector4): number
  • Parameters

    Returns number

publicsub

publicsubEqual

  • Subtracts a vector from this one modifying the original


    Parameters

    Returns Vector4

publictoArray

  • toArray(dest?: number[], offset?: number): number[]
  • toArray(dest: Float32Array, offset?: number): Float32Array
  • Copies components out into an array or Float32Array


    Parameters

    • optionaldest: number[]
    • optionaloffset: number

    Returns number[]

publictoFloat32Array

  • toFloat32Array(): Float32Array
  • Converts to a Float32Array suitable for WebGL uniforms


    Returns Float32Array

publictoString

  • toString(fixed?: number): string
  • Returns a string representation of the vector.


    Parameters

    • optionalfixed: number

    Returns string

publictoVector3

  • Projects back down to 3D via perspective divide (x/w, y/w, z/w)


    Returns Vector3

publictransform

  • Transforms this vector using a 4x4 Matrix


    Parameters

    Returns Vector4

publicstaticdistance

  • Calculates distance between two Vectors


    Parameters

    Returns number

publicstaticfromArray

  • fromArray(array: number[] | Float32Array<ArrayBufferLike>, offset?: number): Vector4
  • Creates a Vector4 from an array [x, y, z, w]


    Parameters

    • array: number[] | Float32Array<ArrayBufferLike>
    • offset: number = 0

    Returns Vector4

publicstaticfromDirection

  • Creates a homogeneous direction vector (w = 0) from a Vector3


    Parameters

    Returns Vector4

publicstaticfromPoint

  • Creates a homogeneous point vector (w = 1) from a Vector3


    Parameters

    Returns Vector4

publicstaticisValid

  • Checks if vector is not null, undefined, or if any of its components are NaN or Infinity.


    Parameters

    Returns boolean

publicstaticmax

publicstaticmin