Module vec4
vec4: A simple 3-component vector
vec4 (x, y, z, w) |
Create a new vector with components x, y, z:
(Can also be used to duplicate a vector: vec4(v)) |
copy (v) |
Create a copy of a vector: |
fromvec3 (v, w) |
Create a copy of a vec2 vector: |
fromvec2 (v, z, w) |
Create a copy of a vec3 vector: |
addnew (a, b) |
Add two vectors (or numbers) to create a new vector |
subnew (a, b) |
Subtract two vectors (or numbers) to create a new vector |
mulnew (a, b) |
Multiply two vectors (or numbers) to create a new vector |
divnew (a, b) |
Divide two vectors (or numbers) to create a new vector |
pownew (a, b) |
Raise to power two vectors (or numbers) to create a new vector |
modnew (a, b) |
Calculate modulo two vectors (or numbers) to create a new vector |
minnew (a, b) |
Calculate minimum of elements to create a new vector |
maxnew (a, b) |
Calculate maximum of elements to create a new vector |
lerpnew (a, b, f) |
create a vector from the linear interpolation of two vectors: |
dot (a, b) |
return the dot product of two vectors: |
distance (a, b) |
The distance between two vectors (two points)
(The relative distance from a to b) |
anglebetween (a, b) |
The angle between two vectors (two points)
(The relative angle from self to v) |
vec4:set (x, y, z, w) |
Set the components of a vector: |
vec4:add (v) |
Add a vector (or number) to self (in-place) |
vec4:sub (v) |
Subtract a vector (or number) to self (in-place) |
vec4:mul (v) |
Multiply a vector (or number) to self (in-place) |
vec4:div (v) |
Divide a vector (or number) to self (in-place) |
vec4:pow (v) |
Raise to power a vector (or number) to self (in-place) |
vec4:mod (v) |
Calculate modulo a vector (or number) to self (in-place) |
vec4:min (v) |
Calculate minimum of elements (in-place) |
vec4:max (v) |
Calculate maximum of elements (in-place) |
vec4:clip (lo, hi) |
Constrain vector to range (in-place) |
vec4:clip (lo, hi) |
Constrain vector to range to create a new vector |
vec4:relativewrap (dimx, dimy, dimz, dimw) |
Determine shortest relative vector in a toroidal space |
vec4:relativewrapnew (dimx, dimy, dimz, dimw) |
Create new vector as shortest relative vector in a toroidal space |
vec4:lerp (v, f) |
interpolate from self to v by factor of f |
vec4:normalize () |
set the length of the vector to 1 (unit vector)
(randomized direction if self length was zero) |
vec4:normalizenew () |
return a normalized copy of the vector
(randomized direction if self length was zero) |
vec4:limit (maximum) |
Impose a maximum magnitude
Rescales vector if greater than maximum |
vec4:limitnew (maximum) |
Create a copy of a vector, limited to a maximum magnitude
Rescales vector if greater than maximum |
vec4:setmag (m) |
Rescale a vector to a specific magnitude: |
vec4:setmagnew (m) |
Return a vector copy rescaled to a specific magnitude: |
vec4:length () |
return the length of a vector
(Can also use #vector) |
vec4:magSqr () |
return the squared length of a vector |
vec4:unpack () |
Return the four components of the vector as numbers |
Functions
-
vec4 (x, y, z, w)
-
Create a new vector with components x, y, z:
(Can also be used to duplicate a vector: vec4(v))
Parameters:
- x
number or vector (optional, default 0)
- y
number (optional, default 0)
- z
number (optional, default 0)
- w
number (optional, default 0)
-
copy (v)
-
Create a copy of a vector:
Parameters:
-
fromvec3 (v, w)
-
Create a copy of a vec2 vector:
Parameters:
- v
vec3
- w
number (optional, default 1)
-
fromvec2 (v, z, w)
-
Create a copy of a vec3 vector:
Parameters:
- v
vec3
- z
number (optional, default 0)
- w
number (optional, default 1)
-
addnew (a, b)
-
Add two vectors (or numbers) to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
subnew (a, b)
-
Subtract two vectors (or numbers) to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
mulnew (a, b)
-
Multiply two vectors (or numbers) to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
divnew (a, b)
-
Divide two vectors (or numbers) to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
pownew (a, b)
-
Raise to power two vectors (or numbers) to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
modnew (a, b)
-
Calculate modulo two vectors (or numbers) to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
minnew (a, b)
-
Calculate minimum of elements to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
maxnew (a, b)
-
Calculate maximum of elements to create a new vector
Parameters:
- a
vector or number
- b
vector or number
Returns:
new vector
-
lerpnew (a, b, f)
-
create a vector from the linear interpolation of two vectors:
Parameters:
- a
vector
- b
vector
- f
interpolation factor from a to b (0 = none, 1 = full)
Returns:
new vector
-
dot (a, b)
-
return the dot product of two vectors:
Parameters:
Returns:
dot product
-
distance (a, b)
-
The distance between two vectors (two points)
(The relative distance from a to b)
Parameters:
- a
target to measure distance from
- b
target to measure distance to
Returns:
distance
-
anglebetween (a, b)
-
The angle between two vectors (two points)
(The relative angle from self to v)
Parameters:
- a
vector to measure angle between
- b
vector to measure angle between
Returns:
distance
Class vec4
A four-component vector
-
vec4:set (x, y, z, w)
-
Set the components of a vector:
Parameters:
- x
component (optional, default 0)
- y
component (optional, default 0)
- z
component (optional, default 0)
- w
component (optional, default 0)
Returns:
self
-
vec4:add (v)
-
Add a vector (or number) to self (in-place)
Parameters:
- v
number or vector to add
Returns:
self
-
vec4:sub (v)
-
Subtract a vector (or number) to self (in-place)
Parameters:
- v
number or vector to sub
Returns:
self
-
vec4:mul (v)
-
Multiply a vector (or number) to self (in-place)
Parameters:
- v
number or vector to mul
Returns:
self
-
vec4:div (v)
-
Divide a vector (or number) to self (in-place)
Parameters:
- v
number or vector to div
Returns:
self
-
vec4:pow (v)
-
Raise to power a vector (or number) to self (in-place)
Parameters:
- v
number or vector to pow
Returns:
self
-
vec4:mod (v)
-
Calculate modulo a vector (or number) to self (in-place)
Parameters:
- v
number or vector to mod
Returns:
self
-
vec4:min (v)
-
Calculate minimum of elements (in-place)
Parameters:
Returns:
self
-
vec4:max (v)
-
Calculate maximum of elements (in-place)
Parameters:
Returns:
self
-
vec4:clip (lo, hi)
-
Constrain vector to range (in-place)
Parameters:
- lo
vector or number minimum value
- hi
vector or number minimum value
Returns:
self
-
vec4:clip (lo, hi)
-
Constrain vector to range to create a new vector
Parameters:
- lo
vector or number minimum value
- hi
vector or number minimum value
Returns:
new vector
-
vec4:relativewrap (dimx, dimy, dimz, dimw)
-
Determine shortest relative vector in a toroidal space
Parameters:
- dimx
width of space (optional, default 1)
- dimy
height of space (optional, default dimx)
- dimz
depth of space (optional, default dimx)
- dimw
fourth dimension of space (optional, default dimx)
Returns:
self
-
vec4:relativewrapnew (dimx, dimy, dimz, dimw)
-
Create new vector as shortest relative vector in a toroidal space
Parameters:
- dimx
width of space (optional, default 1)
- dimy
height of space (optional, default dimx)
- dimz
depth of space (optional, default dimx)
- dimw
fourth dimension of space (optional, default dimx)
Returns:
new vector
-
vec4:lerp (v, f)
-
interpolate from self to v by factor of f
Parameters:
- v
vector
- f
interpolation factor from self to v (0 = none, 1 = full)
Returns:
self
-
vec4:normalize ()
-
set the length of the vector to 1 (unit vector)
(randomized direction if self length was zero)
Returns:
self
-
vec4:normalizenew ()
-
return a normalized copy of the vector
(randomized direction if self length was zero)
Returns:
vector of length 1 (unit vector)
-
vec4:limit (maximum)
-
Impose a maximum magnitude
Rescales vector if greater than maximum
Parameters:
- maximum
maximum magnitude of vector
Returns:
self
-
vec4:limitnew (maximum)
-
Create a copy of a vector, limited to a maximum magnitude
Rescales vector if greater than maximum
Parameters:
- maximum
maximum magnitude of vector
Returns:
new vector
-
vec4:setmag (m)
-
Rescale a vector to a specific magnitude:
Parameters:
Returns:
self
-
vec4:setmagnew (m)
-
Return a vector copy rescaled to a specific magnitude:
Parameters:
Returns:
new vector
-
vec4:length ()
-
return the length of a vector
(Can also use #vector)
Returns:
length
-
vec4:magSqr ()
-
return the squared length of a vector
Returns:
length
-
vec4:unpack ()
-
Return the four components of the vector as numbers