File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -3635,6 +3635,26 @@ class PShader {
36353635
36363636
36373637
3638+ // Java Random class
3639+ class Random {
3640+ ::std::mt19937 rng;
3641+ public:
3642+ Random () : rng(::std::random_device{}()) {}
3643+ explicit Random (long seed) : rng((unsigned )seed) {}
3644+ float nextFloat () { return ::std::uniform_real_distribution<float >(0 ,1 )(rng); }
3645+ double nextDouble (){ return ::std::uniform_real_distribution<double >(0 ,1 )(rng); }
3646+ int nextInt () { return (int )rng (); }
3647+ int nextInt (int n){ return ::std::uniform_int_distribution<int >(0 ,n-1 )(rng); }
3648+ long nextLong () { return (long )rng (); }
3649+ bool nextBoolean () { return rng ()&1 ; }
3650+ float nextGaussian () {
3651+ float u=nextFloat ()*2 -1 , v=nextFloat ()*2 -1 , s=u*u+v*v;
3652+ if (s>=1 ||s==0 ) return nextGaussian ();
3653+ float m=::std::sqrt (-2 *::std::log (s)/s); return u*m;
3654+ }
3655+ void setSeed (long seed) { rng.seed ((unsigned )seed); }
3656+ };
3657+
36383658// Java StringBuilder
36393659class StringBuilder {
36403660 ::std::string buf;
You can’t perform that action at this time.
0 commit comments