Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

SIG_Randomizer.cpp

00001 #include "SIGEL_Tools/SIG_Randomizer.h"
00002 
00003 #include <qdatetime.h>
00004 
00005 SIGEL_Tools::SIG_Randomizer::SIG_Randomizer()
00006   : next( 0 )
00007 {
00008   setNewSeed( 0 );
00009 };
00010 
00011 SIGEL_Tools::SIG_Randomizer::SIG_Randomizer(int seed)
00012   : next( 0 )
00013 {
00014   setNewSeed( seed );
00015 };
00016 
00017 void SIGEL_Tools::SIG_Randomizer::setNewSeed(int seed)
00018 {
00019   if (seed == 0)
00020     {
00021       QTime midNight( 0, 0 );
00022       next = midNight.secsTo( QTime::currentTime() );
00023     }
00024   else
00025     next = seed;
00026 }
00027 
00028 SIGEL_Tools::SIG_Randomizer::~SIG_Randomizer()
00029 { };
00030 
00031 int SIGEL_Tools::SIG_Randomizer::getRandomInt(int maximum)
00032 {
00033   next = next*1103515245 + 12345;
00034   int randomNumber = static_cast<unsigned int>( next / 65536 ) % 32768;
00035 
00036   if (maximum == 0)
00037     return 0;
00038   else
00039     return randomNumber % maximum;
00040 }
00041 
00042 long SIGEL_Tools::SIG_Randomizer::getRandomLong(long maximum)
00043 {
00044   return getRandomInt( static_cast<int>(maximum) );
00045 }
00046 
00047 
00048 
00049 

Generated at Mon Sep 3 01:32:28 2001 for PG 368 - SIGEL by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000