Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/math/functions.cc')
-rw-r--r--src/math/functions.cc64
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