local qmath = {} 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.clamp(value, min, max) return math.max(math.min(value, max), min) end return qmath