Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Vector

A point or direction in 3d space

Hierarchy

  • Vector

Implements

  • Iterable<number>

Index

Constructors

constructor

  • new Vector(x: number, y: number, z: number): Vector
  • Make a vector {x, y, z} from coordinate values

    Parameters

    • x: number

      Y coordinate

    • y: number
    • z: number

    Returns Vector

Properties

0

0: number

X coordinate

1

1: number

Y coordinate

2

2: number

Z coordinate

x

x: number

X coordinate

y

y: number

Y coordinate

z

z: number

Z coordinate

Methods

[Symbol.iterator]

  • [Symbol.iterator](): Iterator<number>

add

  • add(b: Vector | [x: number, y: number, z: number]): Vector
  • Add another vector and return the result

    Parameters

    • b: Vector | [x: number, y: number, z: number]

      Vector to add

    Returns Vector

clampVectorMagnitude

  • clampVectorMagnitude(min: number, max: number): Vector
  • Clamp the vector length between a min and max length

    Parameters

    • min: number

      Minimum length of resulting vector

    • max: number

      Maximum length of resulting vector

    Returns Vector

clone

distance

  • distance(b: Vector | [x: number, y: number, z: number]): number
  • Compute the distance to another vector

    Parameters

    • b: Vector | [x: number, y: number, z: number]

      Vector to compute the distance to

    Returns number

divide

  • Divide by a number

    Parameters

    • b: number

      Number to divide the vector by

    Returns Vector

dot

  • dot(b: Vector | [x: number, y: number, z: number]): number
  • Compute the dot product

    Parameters

    • b: Vector | [x: number, y: number, z: number]

      Vector to compute the dot product with

    Returns number

equals

  • equals(b: Vector | [x: number, y: number, z: number], errorTolerance: number): boolean
  • Return true if this vector is equal to vector b (a == b) within a specified error tolerance

    Parameters

    • b: Vector | [x: number, y: number, z: number]

      Vector to compare to

    • errorTolerance: number

      Maximum total difference

    Returns boolean

findClosestPointOnLine

  • findClosestPointOnLine(lineOrigin: Vector | [x: number, y: number, z: number], lineDirection: Vector | [x: number, y: number, z: number]): Vector
  • Find the closest point on an infinite line

    Parameters

    • lineOrigin: Vector | [x: number, y: number, z: number]

      Point of reference on the line

    • lineDirection: Vector | [x: number, y: number, z: number]

      Direction of the line

    Returns Vector

findClosestPointOnSegment

  • findClosestPointOnSegment(segmentStart: Vector | [x: number, y: number, z: number], segmentEnd: Vector | [x: number, y: number, z: number]): Vector
  • Find the closest point to this vector on a line segment

    Parameters

    • segmentStart: Vector | [x: number, y: number, z: number]

      Start of the segment

    • segmentEnd: Vector | [x: number, y: number, z: number]

      End of the segment

    Returns Vector

findLookAtRotation

  • findLookAtRotation(target: Vector | [x: number, y: number, z: number]): Rotator
  • Find a rotation for an object at this location to point at a target location

    Parameters

    • target: Vector | [x: number, y: number, z: number]

      Target location to point at

    Returns Rotator

getDistanceToLine

  • getDistanceToLine(lineOrigin: Vector | [x: number, y: number, z: number], lineDirection: Vector | [x: number, y: number, z: number]): number
  • Find the distance to the closest point on an infinite line

    Parameters

    • lineOrigin: Vector | [x: number, y: number, z: number]

      Point of reference on the line

    • lineDirection: Vector | [x: number, y: number, z: number]

      Direction of the line

    Returns number

getDistanceToSegment

  • getDistanceToSegment(segmentStart: Vector | [x: number, y: number, z: number], segmentEnd: Vector | [x: number, y: number, z: number]): number
  • Find the distance to the closest point on a line segment

    Parameters

    • segmentStart: Vector | [x: number, y: number, z: number]

      Start of the segment

    • segmentEnd: Vector | [x: number, y: number, z: number]

      End of the segment

    Returns number

getMaxElement

  • getMaxElement(): number
  • Find the maximum element (x, y, or y)

    Returns number

getMinElement

  • getMinElement(): number
  • Find the minimum element (x, y, or z)

    Returns number

getReflectionVector

  • getReflectionVector(surfaceNormal: Vector | [x: number, y: number, z: number]): Vector
  • Returns this vector reflected across the given surface normal

    Parameters

    • surfaceNormal: Vector | [x: number, y: number, z: number]

      A normal of the surface to reflect on

    Returns Vector

isInBox

  • isInBox(boxOrigin: Vector | [x: number, y: number, z: number], boxExtent: Vector | [x: number, y: number, z: number]): boolean
  • Determines whether this vector is in a given box. Includes points on the box.

    Parameters

    • boxOrigin: Vector | [x: number, y: number, z: number]

      Origin of the box

    • boxExtent: Vector | [x: number, y: number, z: number]

      Extent of the box (distance in each axis from box origin)

    Returns boolean

magnitude

  • magnitude(): number
  • Return the length of this vector

    Returns number

magnitudeSquared

  • magnitudeSquared(): number
  • Return the squared length of this vector

    Returns number

multiply

  • Multipley element-wise (f*x, f*y, f*z)

    Parameters

    • f: number

    Returns Vector

negate

rotateAngleAxis

  • rotateAngleAxis(angleDeg: number, axis: Vector | [x: number, y: number, z: number]): Vector
  • Return result of rotating this vector around an axis

    Parameters

    • angleDeg: number

      Angle to rotate in degrees

    • axis: Vector | [x: number, y: number, z: number]

      Axis to rotate around

    Returns Vector

subtract

  • subtract(b: Vector | [x: number, y: number, z: number]): Vector
  • Subtract another vector and return the result

    Parameters

    • b: Vector | [x: number, y: number, z: number]

      Vector to subtract

    Returns Vector

toColor

toRotator

  • Create a rotator that orients X along the direction given by this vector

    Returns Rotator

toString

  • toString(): string
  • Convert to a string in the form 'X= Y= Z='

    Returns string

unit

Static getVectorArrayAverage

  • Find the average of an array of vectors

    Parameters

    • vectors: Vector[]

      An array of vectors to average

    Returns Vector

Static interpolateTo

  • interpolateTo(current: Vector | [x: number, y: number, z: number], target: Vector | [x: number, y: number, z: number], deltaTime: number, interpSpeed: number): Vector
  • Smoothly interpolate towards a varying target vector

    Parameters

    • current: Vector | [x: number, y: number, z: number]

      Current vector

    • target: Vector | [x: number, y: number, z: number]

      Target vector

    • deltaTime: number

      Time since last tick

    • interpSpeed: number

      Interpolation speed

    Returns Vector

Static interpolateToConstant

  • interpolateToConstant(current: Vector | [x: number, y: number, z: number], target: Vector | [x: number, y: number, z: number], deltaTime: number, interpSpeed: number): Vector
  • Smoothly interpolate towards a varying target vector at a constant rate

    Parameters

    • current: Vector | [x: number, y: number, z: number]

      Current vector

    • target: Vector | [x: number, y: number, z: number]

      Target vector

    • deltaTime: number

      Time since last tick

    • interpSpeed: number

      Interpolation speed

    Returns Vector

Static lerp

  • lerp(a: Vector | [x: number, y: number, z: number], b: Vector | [x: number, y: number, z: number], alpha: number): Vector
  • Linearly interpolate between a and b based on alpha

    Parameters

    • a: Vector | [x: number, y: number, z: number]

      First vector

    • b: Vector | [x: number, y: number, z: number]

      Second vector

    • alpha: number

      Result is 100% of a when alpha=0 and 100% of b when alpha=1

    Returns Vector

Static randomPointInBoundingBox

  • randomPointInBoundingBox(origin: Vector | [x: number, y: number, z: number], boxExtent: Vector | [x: number, y: number, z: number]): Vector
  • Return a random point within the specified bounding box

    Parameters

    • origin: Vector | [x: number, y: number, z: number]

      Origin of the box

    • boxExtent: Vector | [x: number, y: number, z: number]

      Extent of the box (distance in each axis from box origin)

    Returns Vector

Static randomUnitVector