diff options
Diffstat (limited to 'source/blender/blenlib/intern/rand.cc')
-rw-r--r-- | source/blender/blenlib/intern/rand.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/rand.cc b/source/blender/blenlib/intern/rand.cc index 27774cad31b..17bf5585f3f 100644 --- a/source/blender/blenlib/intern/rand.cc +++ b/source/blender/blenlib/intern/rand.cc @@ -374,6 +374,15 @@ void RandomNumberGenerator::seed_random(uint32_t seed) this->seed(seed + hash[seed & 255]); } +int RandomNumberGenerator::round_probabilistic(float x) +{ + /* Support for negative values can be added when necessary. */ + BLI_assert(x >= 0.0f); + const float round_up_probability = fractf(x); + const bool round_up = round_up_probability > this->get_float(); + return (int)x + (int)round_up; +} + float2 RandomNumberGenerator::get_unit_float2() { float a = (float)(M_PI * 2.0) * this->get_float(); |