X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fguid.cpp;h=1369abaa5d2fb1d1248a9a72a42c86c2904ce50e;hb=241290ec883794d1579593182b337277f6ef5182;hp=a2a4ac4ce2239158e49e2ce935bdc827565a8f15;hpb=cc54c38609ee9745ad678e5e9b9d7d2912be9c95;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/guid.cpp b/synfig-core/trunk/src/synfig/guid.cpp index a2a4ac4..1369aba 100644 --- a/synfig-core/trunk/src/synfig/guid.cpp +++ b/synfig-core/trunk/src/synfig/guid.cpp @@ -33,6 +33,7 @@ #endif #include "guid.h" +#include "quick_rng.h" #include #include #include @@ -76,50 +77,6 @@ using namespace synfig; /* === M E T H O D S ======================================================= */ -// A fast 32-bit linear congruential random number generator -class quick_rng -{ - unsigned long next; -public: - quick_rng(unsigned long seed=0):next(seed) { } - - void set_seed(unsigned long x) - { - next=x; - } - - unsigned long i32() - { - static const unsigned long a(1664525); - static const unsigned long c(1013904223); - - return next=next*a+c; - } - - unsigned long i16() - { - return i32()>>16; - } - - float f() - { - static const float m(int(65535)); - - return float(i16())/m; - } - - unsigned long operator()(const unsigned long& m) - { - if(m==65536) - return i16(); - else - if(m<=65536) - return i16()%m; - else - return i32()%m; - } -}; - #define GUID_RNG quick_rng //#define GUID_RNG subtractive_rng