kick
|
00001 // 00002 // Created by morten on 06/12/14. 00003 // 00004 00005 #include "random.h" 00006 00007 namespace kick { 00008 Random::Random() : e1(rd()) { 00009 } 00010 00011 float Random::nextFloat(float min, float maxExcluding) { 00012 float r = next(); 00013 while (r == 1.0f){ 00014 r = next(); 00015 } 00016 return r*(maxExcluding-min) + min; 00017 } 00018 00019 int Random::nextInt(int min, int max) { 00020 return (int)floor(nextFloat(min, max)); 00021 } 00022 00023 float Random::next(){ 00024 return std::generate_canonical<float, 32>(e1);; 00025 } 00026 00027 void Random::seed(unsigned int s){ 00028 e1.seed(s); 00029 } 00030 }