vector

Built-in vector library, loaded by requiring vector

Functions:

vector

vector(x: number, y: number, z: number): vector

ArgumentTypeDescription

x

number

X coordinate of 3D position

y

number

Y coordinate of 3D position

z

number

Z coordinate of 3D position

Creates a new vector object. Please note that you need to load the built-in vector library with require "vector"

:angles

vector_object:angles(): number, number, number

Converts the vector to an angle and returns the pitch, yaw and roll

:dist2d

vector_object:dist2d(other: vector): number

ArgumentTypeDescription

other

vector

Other vector

Returns the cross product / vector product of itself and another vector

:dist

vector_object:dist(other: vector): number

ArgumentTypeDescription

other

vector

Vector to calculate the distance to

Returns the 3d distance to another vector

:dist

vector_object:dist(other: vector): number

ArgumentTypeDescription

other

vector

Vector to calculate the distance to

Returns the 2d distance to another vector

:dot

vector_object:dot(): number

Returns the dot product of the vector

:init

vector_object:init(x: number, y: number, z: number): vector

ArgumentTypeDescription

x

number

X coordinate of 3D position

y

number

Y coordinate of 3D position

z

number

Z coordinate of 3D position

Overwrites the X, Y and Z coordinates of the vector object, returning itself

:init_from_angles

vector_object:init_from_angles(pitch: number, yaw: number[, roll: number]): vector

ArgumentTypeDescription

pitch

number

Pitch component of angle

yaw

number

Yaw component of angle

roll

number

Roll component of angle

Converts the pitch, yaw and roll passed to a forward vector and overwrites the X, Y and Z coordinates with that. Returns itself

:length

vector_object:length(): number

Returns the length (magnitude)

:length2d

vector_object:length2d(): number

Returns the 2d length (X and Y components)

:length2dsqr

vector_object:length2dsqr(): number

Returns the squared 2d length (X and Y components, faster than :length2d)

:lengthsqr

vector_object:lengthsqr(): number

Returns the squared length (faster than :length)

:lerp

vector_object:lerp(to: vector, percentage: number): vector

ArgumentTypeDescription

to

vector

Vector to lerp to

percentage

number

Interpolation percentage (0-1)

Interpolates by the specified percentage between the 2 vectors.

:normalize

vector_object:normalize()

Normalizes the vector, dividing it by it's own length (resulting in a unit vector with length = 1)

:normalized

vector_object:normalized(): vector

Returns a new unit vector, divided it by it's own length

:scale

vector_object:scale(scalar: number)

ArgumentTypeDescription

scalar

number

Scalar value

Scales the vector by the specified value.

:scaled

vector_object:scaled(scalar: number): vector

ArgumentTypeDescription

scalar

number

Scalar value

Returns a new vector, scaled by the specified value.

:to

vector_object:to(other: vector): vector

ArgumentTypeDescription

other

vector

Other vector

Returns the forward vector from itself to another vector

:unpack

vector_object:unpack(): number, number, number

Returns the X, Y and Z coordinate of the vector object. They can also be accessed by vec.x, vec.y, etc

:vectors

vector_object:vectors(): vector, vector

Returns the right and up vector of a forward vector

Last updated