Module vec3

vec3: A simple 3-component vector

Functions

vec3 (x, y, z) Create a new vector with components x, y, z: (Can also be used to duplicate a vector: vec3(v))
copy (v) Create a copy of a vector:
fromvec2 (v, z) Create a copy of a vec2 vector:
vec3:set (x, y, z) Set the components of a vector:
vec3:add (v) Add a vector (or number) to self (in-place)
addnew (a, b) Add two vectors (or numbers) to create a new vector
vec3:sub (v) Subtract a vector (or number) to self (in-place)
subnew (a, b) Subtract two vectors (or numbers) to create a new vector
vec3:mul (v) Multiply a vector (or number) to self (in-place)
mulnew (a, b) Multiply two vectors (or numbers) to create a new vector
vec3:div (v) Divide a vector (or number) to self (in-place)
divnew (a, b) Divide two vectors (or numbers) to create a new vector
vec3:pow (v) Raise to power a vector (or number) to self (in-place)
pownew (a, b) Raise to power two vectors (or numbers) to create a new vector
vec3:mod (v) Calculate modulo a vector (or number) to self (in-place)
modnew (a, b) Calculate modulo two vectors (or numbers) to create a new vector
vec3:min (v) Calculate minimum of elements (in-place)
minnew (a, b) Calculate minimum of elements to create a new vector
vec3:max (v) Calculate maximum of elements (in-place)
maxnew (a, b) Calculate maximum of elements to create a new vector
vec3:clip (lo, hi) Constrain vector to range (in-place)
vec3:clip (lo, hi) Constrain vector to range to create a new vector
vec3:relativewrap (dimx, dimy, dimz) Determine shortest relative vector in a toroidal space
vec3:relativewrapnew (dimx, dimy) Create new vector as shortest relative vector in a toroidal space
vec3:lerp (v, f) interpolate from self to v by factor of f
lerpnew (a, b, f) create a vector from the linear interpolation of two vectors:
vec3:normalize () set the length of the vector to 1 (unit vector) (randomized direction if self length was zero)
vec3:normalizenew () return a normalized copy of the vector (randomized direction if self length was zero)
vec3:limit (maximum) Impose a maximum magnitude Rescales vector if greater than maximum
vec3:limitnew (maximum) Create a copy of a vector, limited to a maximum magnitude Rescales vector if greater than maximum
vec3:setmag (m) Rescale a vector to a specific magnitude:
vec3:setmagnew (m) Return a vector copy rescaled to a specific magnitude:
random (mag) Create a new vector in a uniformly random direction:
vec3:randomize (mag) Set to a vector of magnitude 1 in a uniformly random direction:
vec3:length () return the length of a vector (Can also use #vector)
dot (a, b) return the dot product of two vectors:
cross (a, b) return the cross product of two vectors:
vec3:distance (p) The distance between two vectors (two points) (The relative distance from self to p)
anglebetween (a, b) The angle between two vectors (two points) (The relative angle from self to v)


Functions

vec3 (x, y, z)
Create a new vector with components x, y, z: (Can also be used to duplicate a vector: vec3(v))

Parameters:

  • x number or vector (optional, default 0)
  • y number (optional, default 0)
  • z number (optional, default 0)
copy (v)
Create a copy of a vector:

Parameters:

  • v vector
fromvec2 (v, z)
Create a copy of a vec2 vector:

Parameters:

  • v vec3
  • z number
vec3:set (x, y, z)
Set the components of a vector:

Parameters:

  • x component
  • y component
  • z component

Returns:

    self
vec3:add (v)
Add a vector (or number) to self (in-place)

Parameters:

  • v number or vector to add

Returns:

    self
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
vec3:sub (v)
Subtract a vector (or number) to self (in-place)

Parameters:

  • v number or vector to sub

Returns:

    self
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
vec3:mul (v)
Multiply a vector (or number) to self (in-place)

Parameters:

  • v number or vector to mul

Returns:

    self
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
vec3:div (v)
Divide a vector (or number) to self (in-place)

Parameters:

  • v number or vector to div

Returns:

    self
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
vec3:pow (v)
Raise to power a vector (or number) to self (in-place)

Parameters:

  • v number or vector to pow

Returns:

    self
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
vec3:mod (v)
Calculate modulo a vector (or number) to self (in-place)

Parameters:

  • v number or vector to mod

Returns:

    self
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
vec3:min (v)
Calculate minimum of elements (in-place)

Parameters:

  • v number or vector limit

Returns:

    self
minnew (a, b)
Calculate minimum of elements to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec3:max (v)
Calculate maximum of elements (in-place)

Parameters:

  • v number or vector limit

Returns:

    self
maxnew (a, b)
Calculate maximum of elements to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec3:clip (lo, hi)
Constrain vector to range (in-place)

Parameters:

  • lo vector or number minimum value
  • hi vector or number minimum value

Returns:

    self
vec3: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
vec3:relativewrap (dimx, dimy, dimz)
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)

Returns:

    self
vec3:relativewrapnew (dimx, dimy)
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)

Returns:

    new vector
vec3: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
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
vec3:normalize ()
set the length of the vector to 1 (unit vector) (randomized direction if self length was zero)

Returns:

    self
vec3:normalizenew ()
return a normalized copy of the vector (randomized direction if self length was zero)

Returns:

    vector of length 1 (unit vector)
vec3:limit (maximum)
Impose a maximum magnitude Rescales vector if greater than maximum

Parameters:

  • maximum maximum magnitude of vector

Returns:

    self
vec3: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
vec3:setmag (m)
Rescale a vector to a specific magnitude:

Parameters:

  • m new magnitude

Returns:

    self
vec3:setmagnew (m)
Return a vector copy rescaled to a specific magnitude:

Parameters:

  • m new magnitude

Returns:

    new vector
random (mag)
Create a new vector in a uniformly random direction:

Parameters:

  • mag magnitude (optional, default 1)

Returns:

    new vector
vec3:randomize (mag)
Set to a vector of magnitude 1 in a uniformly random direction:

Parameters:

  • mag magnitude (optional, default 1)

Returns:

    self
vec3:length ()
return the length of a vector (Can also use #vector)

Returns:

    length
dot (a, b)
return the dot product of two vectors:

Parameters:

  • a vector
  • b vector

Returns:

    dot product
cross (a, b)
return the cross product of two vectors:

Parameters:

  • a vector
  • b vector

Returns:

    cross product
vec3:distance (p)
The distance between two vectors (two points) (The relative distance from self to p)

Parameters:

  • p 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
generated by LDoc 1.3