]> git.sesse.net Git - casparcg/blob - dependencies/SFML-1.6/include/SFML/System/Randomizer.hpp
Subtree merge of old SVN "dependencies" folder into the "master" git branch. You...
[casparcg] / dependencies / SFML-1.6 / include / SFML / System / Randomizer.hpp
1 ////////////////////////////////////////////////////////////\r
2 //\r
3 // SFML - Simple and Fast Multimedia Library\r
4 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)\r
5 //\r
6 // This software is provided 'as-is', without any express or implied warranty.\r
7 // In no event will the authors be held liable for any damages arising from the use of this software.\r
8 //\r
9 // Permission is granted to anyone to use this software for any purpose,\r
10 // including commercial applications, and to alter it and redistribute it freely,\r
11 // subject to the following restrictions:\r
12 //\r
13 // 1. The origin of this software must not be misrepresented;\r
14 //    you must not claim that you wrote the original software.\r
15 //    If you use this software in a product, an acknowledgment\r
16 //    in the product documentation would be appreciated but is not required.\r
17 //\r
18 // 2. Altered source versions must be plainly marked as such,\r
19 //    and must not be misrepresented as being the original software.\r
20 //\r
21 // 3. This notice may not be removed or altered from any source distribution.\r
22 //\r
23 ////////////////////////////////////////////////////////////\r
24 \r
25 #ifndef SFML_RANDOMIZER_HPP\r
26 #define SFML_RANDOMIZER_HPP\r
27 \r
28 ////////////////////////////////////////////////////////////\r
29 // Headers\r
30 ////////////////////////////////////////////////////////////\r
31 #include <SFML/Config.hpp>\r
32 \r
33 \r
34 namespace sf\r
35 {\r
36 ////////////////////////////////////////////////////////////\r
37 /// Randomizer is an utility class for generating pseudo-random\r
38 /// numbers\r
39 ////////////////////////////////////////////////////////////\r
40 class SFML_API Randomizer\r
41 {\r
42 public :\r
43 \r
44     ////////////////////////////////////////////////////////////\r
45     /// Set the seed for the generator. Using a known seed\r
46     /// allows you to reproduce the same sequence of random number\r
47     ///\r
48     /// \param Seed : Number to use as the seed\r
49     ///\r
50     ////////////////////////////////////////////////////////////\r
51     static void SetSeed(unsigned int Seed);\r
52 \r
53     ////////////////////////////////////////////////////////////\r
54     /// Get the seed used to generate random numbers the generator.\r
55     ///\r
56     /// \return Current seed\r
57     ///\r
58     ////////////////////////////////////////////////////////////\r
59     static unsigned int GetSeed();\r
60 \r
61     ////////////////////////////////////////////////////////////\r
62     /// Get a random float number in a given range\r
63     ///\r
64     /// \return Start : Start of the range\r
65     /// \return End :   End of the range\r
66     ///\r
67     /// \return Random number in [Begin, End]\r
68     ///\r
69     ////////////////////////////////////////////////////////////\r
70     static float Random(float Begin, float End);\r
71 \r
72     ////////////////////////////////////////////////////////////\r
73     /// Get a random integer number in a given range\r
74     ///\r
75     /// \return Start : Start of the range\r
76     /// \return End :   End of the range\r
77     ///\r
78     /// \return Random number in [Begin, End]\r
79     ///\r
80     ////////////////////////////////////////////////////////////\r
81     static int Random(int Begin, int End);\r
82 \r
83 private :\r
84 \r
85     ////////////////////////////////////////////////////////////\r
86     // Static member variables\r
87     ////////////////////////////////////////////////////////////\r
88     static unsigned int ourSeed;\r
89 };\r
90 \r
91 } // namespace sf\r
92 \r
93 \r
94 #endif // SFML_RANDOMIZER_HPP\r