blob: b16547ba5f1ca578fe631e4fa154b85187762601 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
local gmath = require "gears.math"
---@class QuarrelMath
local qmath = {}
-- TODO: Finish documenting these functions
function qmath.step_value(value, steps)
if value > steps[#steps - 1][1] then
return steps[#steps - 1][2]
end
for i, step in ipairs(steps) do
if step[1] <= value and value <= steps[i + 1][1] then
return step[2]
end
end
end
function qmath.translate_range(value, in_min, in_max, out_min, out_max)
return out_min + ((out_max - out_min) / (in_max - in_min)) * (value - in_min)
end
function qmath.percentage(value, max)
return gmath.round(value / max * 100)
end
function qmath.clamp(value, min, max)
return math.max(math.min(value, max), min)
end
return qmath
|