add small helper to scalar range

This commit is contained in:
Green Sky 2023-03-04 02:35:06 +01:00
parent 7bce78167b
commit e9c62f9201
No known key found for this signature in database
2 changed files with 12 additions and 2 deletions

View File

@ -7,7 +7,7 @@ namespace MM::Random {
// Seeded (Pseudo-) Random Number Generator
struct SRNG {
// make shuffle compat
// make shuffle compat
// TODO: add more type info
using result_type = uint32_t;
@ -35,7 +35,7 @@ struct SRNG {
}
bool roll(float prob) {
return zeroToOne() <= prob;
return zeroToOne() <= prob; // TODO: just < ?
}
// more advanced

View File

@ -60,6 +60,16 @@ struct ScalarRange2 {
[[nodiscard]] constexpr bool inRange(T&& value) const {
return value >= min() && value <= max();
}
// lerp between min and max
[[nodiscard]] constexpr T map(const float a) const {
return min() * (1.f-a) + max() * a;
}
// reverse map
[[nodiscard]] constexpr float unmap(const T& v) const {
return (v - min()) / static_cast<float>(max() - min());
}
};
} // MM