summaryrefslogtreecommitdiff
path: root/src/helpers/math/Direction.hpp
blob: 9905db4f80a0b570c7959adc082ea116c5350f67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

#include <cstdint>

namespace Math {
    enum eDirection : int8_t {
        DIRECTION_DEFAULT = -1,
        DIRECTION_UP,
        DIRECTION_RIGHT,
        DIRECTION_DOWN,
        DIRECTION_LEFT
    };

    inline eDirection fromChar(char x) {
        switch (x) {
            case 'r': return DIRECTION_RIGHT;
            case 'l': return DIRECTION_LEFT;
            case 't':
            case 'u': return DIRECTION_UP;
            case 'b':
            case 'd': return DIRECTION_DOWN;
            default: return DIRECTION_DEFAULT;
        }
    }

    inline const char* toString(eDirection d) {
        switch (d) {
            case DIRECTION_UP: return "up";
            case DIRECTION_DOWN: return "down";
            case DIRECTION_LEFT: return "left";
            case DIRECTION_RIGHT: return "right";
            default: return "default";
        }
    }
};