diff options
author | Stijn Buys <ingar@osirion.org> | 2008-01-30 17:30:10 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-01-30 17:30:10 +0000 |
commit | 4fd8d5c71365e58e6dff36fc756d8e2e55204db7 (patch) | |
tree | 851c86f497ce3bfa7050ae5634f50f888d6d80f8 /src/math/functions.cc | |
parent | 28180e6b6763e4ce5d65c02e4df5380f11e6d10a (diff) |
math module
Diffstat (limited to 'src/math/functions.cc')
-rw-r--r-- | src/math/functions.cc | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/math/functions.cc b/src/math/functions.cc new file mode 100644 index 0000000..0e394c1 --- /dev/null +++ b/src/math/functions.cc @@ -0,0 +1,64 @@ +/* + common/functions.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +// project headers +#include "math/functions.h" + +namespace math { + +float min(float a, float b) { + return (a < b ? a : b); +} + +float max(float a, float b) { + return (a > b ? a : b); +} + +int min(int a, int b) { + return (a < b ? a : b); +} + +int max(int a, int b) { + return (a > b ? a : b); +} + +float randomf(const float max) { + return ((float) rand() / (float) RAND_MAX) * max; +} + +unsigned randomi(const unsigned int max) { + return ((unsigned int)(rand() % max)); +} + +float degrees180f(float angle) { + float r = angle; + while (r <= -180.0f) + r += 360.0f; + while (r >= 180.0f) + r -= 360.0f; + return r; +} + +float degrees360f(float angle) { + float r = angle; + while (r < 0.0f) + r += 360.0f; + while (r >= 360.0f) + r -= 360.0f; + return r; +} + +float sgnf(float value) +{ + if (value < 0 ) + return -1; + else if (value == 0 ) + return 0; + + return 1; +} + +} // namespace math |