#include "voxel.h" void face_to_vec(Face face, ivec3 out) { glm_ivec3_zero(out); switch (face) { case POS_X: out[0] = 1; break; case NEG_X: out[0] = -1; break; case POS_Y: out[1] = 1; break; case NEG_Y: out[1] = -1; break; case POS_Z: out[2] = 1; break; case NEG_Z: out[2] = -1; break; } } Face face_opposite(Face face) { switch (face) { case POS_X: return NEG_X; case NEG_X: return POS_X; case POS_Y: return NEG_Y; case NEG_Y: return POS_Y; case POS_Z: return NEG_Z; case NEG_Z: return POS_Z; } return 0; } void face_perpendicular(Face face, Face out[2]) { switch (face) { case POS_X: out[0] = NEG_Z; out[1] = NEG_Y; break; case NEG_X: out[0] = POS_Y; out[1] = POS_Z; break; case POS_Y: out[0] = NEG_X; out[1] = NEG_Z; break; case NEG_Y: out[0] = POS_Z; out[1] = POS_X; break; case POS_Z: out[0] = NEG_Y; out[1] = NEG_X; break; case NEG_Z: out[0] = POS_X; out[1] = POS_Y; break; } }