/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "direction.h" #include "assert/assert.h" float_t directionToAngle(const direction_t dir) { switch(dir) { case DIRECTION_NORTH: return (M_PI_2); case DIRECTION_SOUTH: return -(M_PI_2); case DIRECTION_EAST: return 0; case DIRECTION_WEST: return (M_PI); default: return 0; // Should never happen } } void directionGetVec2(const direction_t dir, vec2 out) { assertNotNull(out, "Output vector cannot be NULL"); switch(dir) { case DIRECTION_NORTH: out[0] = 0.0f; out[1] = 1.0f; break; case DIRECTION_SOUTH: out[0] = 0.0f; out[1] = -1.0f; break; case DIRECTION_EAST: out[0] = 1.0f; out[1] = 0.0f; break; case DIRECTION_WEST: out[0] = -1.0f; out[1] = 0.0f; break; default: assertUnreachable("Invalid direction"); } }