Skip to content
Snippets Groups Projects
Commit 2fd14e1b authored by SmallJoker's avatar SmallJoker Committed by Kahrl
Browse files

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

parent 0e78aa29
No related branches found
No related tags found
No related merge requests found
...@@ -212,6 +212,17 @@ function math.hypot(x, y) ...@@ -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)
......
...@@ -39,6 +39,14 @@ function vector.round(v) ...@@ -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
......
...@@ -1280,6 +1280,7 @@ vector.distance(p1, p2) -> number ...@@ -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={}) ...@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment