Add Lua helper functions vector.apply(v) math.sign(x, tolerance)

master
SmallJoker 2014-12-05 23:18:52 +01:00 committed by Kahrl
parent 0e78aa296e
commit 2fd14e1bd5
3 changed files with 23 additions and 0 deletions

View File

@ -212,6 +212,17 @@ function math.hypot(x, y)
return x * math.sqrt(1 + t * t) return x * math.sqrt(1 + t * t)
end end
--------------------------------------------------------------------------------
function math.sign(x, tolerance)
tolerance = tolerance or 0
if x > tolerance then
return 1
elseif x < -tolerance then
return -1
end
return 0
end
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function get_last_folder(text,count) function get_last_folder(text,count)
local parts = text:split(DIR_DELIM) local parts = text:split(DIR_DELIM)

View File

@ -39,6 +39,14 @@ function vector.round(v)
} }
end end
function vector.apply(v, func)
return {
x = func(v.x),
y = func(v.y),
z = func(v.z)
}
end
function vector.distance(a, b) function vector.distance(a, b)
local x = a.x - b.x local x = a.x - b.x
local y = a.y - b.y local y = a.y - b.y

View File

@ -1280,6 +1280,7 @@ vector.distance(p1, p2) -> number
vector.length(v) -> number vector.length(v) -> number
vector.normalize(v) -> vector vector.normalize(v) -> vector
vector.round(v) -> vector vector.round(v) -> vector
vector.apply(v, func) -> vector
vector.equals(v1, v2) -> bool vector.equals(v1, v2) -> bool
For the following functions x can be either a vector or a number. For the following functions x can be either a vector or a number.
vector.add(v, x) -> vector vector.add(v, x) -> vector
@ -1296,6 +1297,9 @@ dump(obj, dumped={})
math.hypot(x, y) math.hypot(x, y)
^ Get the hypotenuse of a triangle with legs x and y. ^ Get the hypotenuse of a triangle with legs x and y.
Useful for distance calculation. Useful for distance calculation.
math.sign(x, tolerance)
^ Get the sign of a number
Optional: Also returns 0 when the absolute value is within the tolerance (default 0)
string:split(separator) string:split(separator)
^ e.g. string:split("a,b", ",") == {"a","b"} ^ e.g. string:split("a,b", ",") == {"a","b"}
string:trim() string:trim()