diff options
Diffstat (limited to 'src/direction.h')
| -rw-r--r-- | src/direction.h | 17 |
1 files changed, 17 insertions, 0 deletions
| diff --git a/src/direction.h b/src/direction.h index 3dd95f9..595693f 100644 --- a/src/direction.h +++ b/src/direction.h | |||
| @@ -90,4 +90,21 @@ inline Direction directionFacingPoint(vec2i point) { | |||
| 90 | } | 90 | } |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | inline Direction cardinalDirectionFacingPoint(vec2i point) { | ||
| 94 | double theta = atan2(point.y(), point.x()); | ||
| 95 | theta /= M_PI; | ||
| 96 | |||
| 97 | if (theta < -3.0/4.0) { | ||
| 98 | return Direction::left; | ||
| 99 | } else if (theta < -1.0/4.0) { | ||
| 100 | return Direction::down; | ||
| 101 | } else if (theta < 1.0/4.0) { | ||
| 102 | return Direction::right; | ||
| 103 | } else if (theta < 3.0/4.0) { | ||
| 104 | return Direction::up; | ||
| 105 | } else { | ||
| 106 | return Direction::left; | ||
| 107 | } | ||
| 108 | } | ||
| 109 | |||
| 93 | #endif /* end of include guard: DIRECTION_H_AB66A90E */ | 110 | #endif /* end of include guard: DIRECTION_H_AB66A90E */ |
