diff options
author | eray orçunus <erayorcunus@gmail.com> | 2019-06-20 13:22:44 +0200 |
---|---|---|
committer | eray orçunus <erayorcunus@gmail.com> | 2019-06-20 16:31:14 +0200 |
commit | 7cfff963f792d37692c7c5355bffbe776dcd3639 (patch) | |
tree | 56c846811df4b118fe3246db09b5848b451af297 /src/General.h | |
parent | Merge pull request #25 from gennariarmando/master (diff) | |
download | re3-7cfff963f792d37692c7c5355bffbe776dcd3639.tar re3-7cfff963f792d37692c7c5355bffbe776dcd3639.tar.gz re3-7cfff963f792d37692c7c5355bffbe776dcd3639.tar.bz2 re3-7cfff963f792d37692c7c5355bffbe776dcd3639.tar.lz re3-7cfff963f792d37692c7c5355bffbe776dcd3639.tar.xz re3-7cfff963f792d37692c7c5355bffbe776dcd3639.tar.zst re3-7cfff963f792d37692c7c5355bffbe776dcd3639.zip |
Diffstat (limited to '')
-rw-r--r-- | src/General.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/General.h b/src/General.h index 41bdf5d7..fd78edaa 100644 --- a/src/General.h +++ b/src/General.h @@ -40,6 +40,48 @@ public: } } + static float LimitRadianAngle(float angle) + { + if (angle < -25.0f) + angle = -25.0f; + + if (angle > 25.0f) + angle = 25.0f; + + float result = angle; + + while (result >= PI) { + result -= 2 * PI; + } + + while (result < -PI) { + result += 2 * PI; + } + + return result; + } + + static float GetRadianAngleBetweenPoints(float x1, float y1, float x2, float y2) + { + float x = x2 - x1; + float y = y2 - y1; + + if (y == 0.0f) + y = 0.0001f; + + if (x > 0.0f) { + if (y > 0.0f) + return 2 * PI - atan2(x / y, 1.0f); + else + return -atan2(x / y, 1.0f); + } else { + if (y > 0.0f) + return -(PI + atan2(x / y, 1.0f)); + else + return -atan2(x / y, 1.0f); + } + } + // not too sure about all these... static uint16 GetRandomNumber(void) { return myrand() & 0xFFFF; } |