]> git.mxchange.org Git - simgear.git/blob - simgear/math/sg_random.h
Modified Files:
[simgear.git] / simgear / math / sg_random.h
1 /**
2  * \file sg_random.h
3  * Routines to handle random number generation and hide platform differences.
4  */
5
6 // Written by Curtis Olson, started July 1997.
7 //
8 // Copyright (C) 1997  Curtis L. Olson  - http://www.flightgear.org/~curt
9 //
10 // This library is free software; you can redistribute it and/or
11 // modify it under the terms of the GNU Library General Public
12 // License as published by the Free Software Foundation; either
13 // version 2 of the License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 // Library General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with this program; if not, write to the Free Software
22 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
23 //
24 // $Id$
25
26
27 #ifndef _SG_RANDOM_H
28 #define _SG_RANDOM_H
29
30
31 #ifdef __cplusplus                                                          
32 extern "C" {                            
33 #endif                                   
34
35
36 /**
37  * Seed the random number generater with time() so we don't see the
38  * same sequence every time.
39  */
40 void sg_srandom_time();
41
42 /**
43  * Seed the random number generater with time() in 10 minute intervals
44  * so we get the same sequence within 10 minutes interval.
45  * This is useful for synchronizing two display systems.
46  */
47 void sg_srandom_time_10();
48
49 /**
50  * Seed the random number generater with your own seed so can set up
51  * repeatable randomization.
52  * @param seed random number generator seed
53  */
54 void sg_srandom( unsigned int seed );
55
56 /**
57  * Return a random number between [0.0, 1.0)
58  * @return next "random" number in the "random" sequence
59  */
60 double sg_random();
61
62
63 #ifdef __cplusplus
64 }
65 #endif
66
67
68 #endif // _SG_RANDOM_H
69
70