forked from Mirrorlandia_minetest/minetest
Add Lua helper functions vector.apply(v) math.sign(x, tolerance)
This commit is contained in:
parent
0e78aa296e
commit
2fd14e1bd5
@ -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)
|
|||||||
}
|
}
|
||||||
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
|
|||||||
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()
|
||||||
|
Loading…
Reference in New Issue
Block a user