jubilant-funicular
Random.h
1 #ifndef NTA_RANDOM_H_INCLUDED
2 #define NTA_RANDOM_H_INCLUDED
3 
4 #include <random>
5 
6 #include "nta/MyEngine.h"
7 
8 #ifndef RAND_MAX
9 #define RAND_MAX 0x7FFF
10 #endif // RAND_MAX
11 
12 namespace nta {
14  class Random {
15  private:
16  static std::default_random_engine m_generator;
17  public:
19  static void init();
21  static bool randBool() { return rand()%2==0; }
23  static long randInt(long min, long max);
24  static long randInt(long max) { return randInt(0,max); }
25  static long randInt() { return randInt(0,RAND_MAX); }
27  static float randFloat(float min, float max);
28  static float randFloat(float max) { return randFloat(0,max); }
29  static float randFloat() { return randFloat(0,1); }
31  static float randGaussian(float mean, float sd);
33  static glm::vec3 randRGB() { return glm::vec3(randFloat(), randFloat(), randFloat()); }
34  static glm::vec4 randRGBA() { return glm::vec4(randFloat(), randFloat(), randFloat(), randFloat()); }
36  static glm::vec2 randVec2(float min, float max) { return glm::vec2(randFloat(min, max), randFloat(min, max)); }
38  static std::default_random_engine getRNG() { return m_generator; }
39  };
40 }
41 
42 #endif // NTA_RANDOM_H_INCLUDED
nta::Random::randFloat
static float randFloat(float min, float max)
returns a random float in the specified range (uniform distribution)
Definition: Random.cpp:16
nta::Random
Used for generating random numbers.
Definition: Random.h:14
nta::Random::init
static void init()
initializes random number generation
Definition: Random.cpp:8
nta::Random::randGaussian
static float randGaussian(float mean, float sd)
returns a random float using the specified distribution
Definition: Random.cpp:19
nta::Random::randRGB
static glm::vec3 randRGB()
returns a random color
Definition: Random.h:33
nta
Definition: Animation2D.h:6
nta::Random::getRNG
static std::default_random_engine getRNG()
returns the random number generator
Definition: Random.h:38
nta::Random::randBool
static bool randBool()
randomly returns true or false
Definition: Random.h:21
nta::Random::randVec2
static glm::vec2 randVec2(float min, float max)
returna a random vector
Definition: Random.h:36