#include "board.h" #include "mw.h" int constrain(int amt, int low, int high) { if (amt < low) return low; else if (amt > high) return high; else return amt; } void alignSensors(int16_t *src, int16_t *dest, uint8_t rotation) { switch (rotation) { case CW0_DEG: dest[X] = src[X]; dest[Y] = src[Y]; dest[Z] = src[Z]; break; case CW90_DEG: dest[X] = src[Y]; dest[Y] = -src[X]; dest[Z] = src[Z]; break; case CW180_DEG: dest[X] = -src[X]; dest[Y] = -src[Y]; dest[Z] = src[Z]; break; case CW270_DEG: dest[X] = -src[Y]; dest[Y] = src[X]; dest[Z] = src[Z]; break; case CW0_DEG_FLIP: dest[X] = -src[X]; dest[Y] = src[Y]; dest[Z] = -src[Z]; break; case CW90_DEG_FLIP: dest[X] = src[Y]; dest[Y] = src[X]; dest[Z] = -src[Z]; break; case CW180_DEG_FLIP: dest[X] = src[X]; dest[Y] = -src[Y]; dest[Z] = -src[Z]; break; case CW270_DEG_FLIP: dest[X] = -src[Y]; dest[Y] = -src[X]; dest[Z] = -src[Z]; break; default: break; } }