Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ode/ode-0.9/OPCODE/Ice/IceRandom.h @ 216

Last change on this file since 216 was 216, checked in by mathiask, 16 years ago

[Physik] add ode-0.9

File size: 1.5 KB
Line 
1///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2/**
3 *      Contains code for random generators.
4 *      \file           IceRandom.h
5 *      \author         Pierre Terdiman
6 *      \date           August, 9, 2001
7 */
8///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9
10///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11// Include Guard
12#ifndef __ICERANDOM_H__
13#define __ICERANDOM_H__
14
15        FUNCTION ICECORE_API    void    SRand(udword seed);
16        FUNCTION ICECORE_API    udword  Rand();
17
18        //! Returns a unit random floating-point value
19        inline_ float UnitRandomFloat() { return float(Rand()) * ONE_OVER_RAND_MAX;     }
20
21        //! Returns a random index so that 0<= index < max_index
22        ICECORE_API     udword GetRandomIndex(udword max_index);
23
24        class ICECORE_API BasicRandom
25        {
26                public:
27
28                //! Constructor
29                inline_                         BasicRandom(udword seed=0)      : mRnd(seed)    {}
30                //! Destructor
31                inline_                         ~BasicRandom()                                                          {}
32
33                inline_ void            SetSeed(udword seed)            { mRnd = seed;                                                                                  }
34                inline_ udword          GetCurrentValue()       const   { return mRnd;                                                                                  }
35                inline_ udword          Randomize()                                     { mRnd = mRnd * 2147001325 + 715136305; return mRnd;    }
36
37                private:
38                                udword          mRnd;
39        };
40
41#endif // __ICERANDOM_H__
42
Note: See TracBrowser for help on using the repository browser.