Added mapValueClamped()

This commit is contained in:
2021-08-20 13:16:30 +02:00
parent b60122ff4a
commit e4176f9d0c

View File

@ -3,6 +3,7 @@
// system includes
#include <utility>
#include <type_traits>
#include <algorithm>
namespace cpputils {
namespace literals {
@ -101,6 +102,17 @@ T mapValue(T x, T in_min, T in_max, T out_min, T out_max)
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
template<typename T>
T mapValueClamped(T x, T in_min, T in_max, T out_min, T out_max)
{
if (x < std::min(in_min, in_max))
x = std::min(in_min, in_max);
else if (x > std::max(in_min, in_max))
x = std::max(in_min, in_max);
return mapValue(x, in_min, in_max, out_min, out_max);
}
template<typename First, typename ... T>
bool is_in(First &&first, T && ... t)
{