XFuFastRandom.cpp Source File

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# XFuFastRandom.cpp

Go to the documentation of this file.

    00001 /*! \file
    00002  * X-Forge Util <br>
    00003  * Copyright 2000-2003 Fathammer Ltd
    00004  *
    00005  * \brief Implementation of a 'fast' random class.
    00006  *
    00007  * \note This is the initial implementation of a 'fast' random (noise)
    00008  * function. It is not meant to generate too good random numbers, and is
    00009  * just meant as a 'noise' function (visual effects).
    00010  *
    00011  * $Id: XFuFastRandom.cpp,v 1.5 2003/08/12 13:34:08 lars Exp $
    00012  * $Date: 2003/08/12 13:34:08 $
    00013  * $Revision: 1.5 $
    00014  */
    00015
    00016 #include <xfcore/XFcCore.h>
    00017 #include <xfutil/XFuFastRandom.h>
    00018
    00019
    00020 XFuFastRandom::XFuFastRandom()
    00021 {
    00022     seed(XFcCore::getTick());
    00023 }
    00024
    00025
    00026 XFuFastRandom::XFuFastRandom(UINT32 aSeed)
    00027 {
    00028     seed(aSeed);
    00029 }
    00030
    00031
    00032 void XFuFastRandom::seed(UINT32 aSeed)
    00033 {
    00034     UINT32 s = aSeed & 31;
    00035     UINT32 t = aSeed ^ 0x14951C57;
    00036     mSeed2 = (t >> s) + (t << (32 - s));
    00037     s = (aSeed >> 5) & 31;
    00038     t = aSeed ^ 0x6C691B25;
    00039     mSeed1 = (t >> s) + (t << (32 - s));
    00040 }
    00041

|  | X-Forge Documentation Confidential Copyright © 2002-2003 Fathammer |  | Documentation generated with doxygen by Dimitri van Heesch