vector

3D or 2D coordinate

Constructors

-- construct 2d vector
local vec_obj = vector(100, 100)

-- construct 3d vector
local vec_obj = vector(100, 100, 100)

-- construct null vector (0, 0, 0)
local vec_obj = vector()

-- construct vector from angles
local vec_obj = vector():angles(89, 45) -- pitch yaw
local vec_obj = vector():angles(qangle(89, 45))

Avaliable special methods: +, -, *, /, ==, #, tostring

length

vec_obj:length() number

length_sqr

vec_obj:length_sqr() number

Squared length, much faster than :length(), prefer to use this if you want to compare lengths.

length_2d

vec_obj:length_2d() number

Calculates length without z coordinate. If vec_obj is screen coord, z is 0 by default, you can use :length()

length_2d_sqr

vec_obj:length_2d_sqr() number

Squared 2d length, much faster than :length_2d().

closest_ray_point

vec_obj:closest_ray_ponit(start: vector, end: vector) vector

Finds closest point on ray to vec_obj.

dist_to_ray

vec_obj:dist_to_ray(start: vector, end: vector) number

Calculates distance between this vector and infinite ray.

dot

vec_obj:dot(other: vector) number

Dot product of two vectors.

cross

vec_obj:cross(other: vector) number

Cross product of two vectors.

dist

vec_obj:dist(other: vector) number

Distance from this point to other.

lerp

vec_obj:lerp(other: vector, weight: number) vector

to_screen

vec_obj:to_screen() vector

Transforms 3D vector to screen coordinate

Last updated