1 #ifndef __SHAPES_H__ 2 #define __SHAPES_H__ 3 4 #define ROW0 0x0001 5 #define ROW1 0x0002 6 #define ROW2 0x0004 7 #define ROW3 0x0008 8 #define ROW4 0x0010 9 #define ROW5 0x0020 10 #define ROW6 0x0040 11 #define ROW7 0x0080 12 #define ROW8 0x0100 13 #define ROW9 0x0200 14 #define ROW10 0x0400 15 #define ROW11 0x0800 16 #define ROW12 0x1000 17 #define ROW13 0x2000 18 #define ROW14 0x4000 19 #define ROW15 0x8000 20 21 #define TOP_HORIZONTAL ROW0 22 #define UPPER_RIGHT_VERTICAL ROW1 23 #define LOWER_RIGHT_VERTICAL ROW2 24 #define BOTTOM_HORIZONTAL ROW3 25 #define LOWER_LEFT_VERTICAL ROW4 26 #define UPPER_LEFT_VERTICAL ROW5 27 #define LEFT_MIDDLE_HORIZONTAL ROW6 28 #define RIGHT_MIDDLE_HORIZONTAL ROW7 29 #define UPPER_LEFT_DIAGONAL ROW8 30 #define UPPER_CENTRE_VERTICAL ROW9 31 #define UPPER_RIGHT_DIAGONAL ROW10 32 #define LOWER_RIGHT_DIAGONAL ROW11 33 #define LOWER_CENTRE_VERTICAL ROW12 34 #define LOWER_LEFT_DIAGONAL ROW13 35 #define DECIMAL_POINT ROW14 36 37 #define TOP_EDGE TOP_HORIZONTAL 38 #define UPPER_ELEMENTS (UPPER_LEFT_VERTICAL | UPPER_RIGHT_VERTICAL | UPPER_LEFT_DIAGONAL | UPPER_RIGHT_DIAGONAL | UPPER_CENTRE_VERTICAL) 39 #define MIDDLE_ELEMENTS (LEFT_MIDDLE_HORIZONTAL | RIGHT_MIDDLE_HORIZONTAL) 40 #define LOWER_ELEMENTS (LOWER_LEFT_VERTICAL | LOWER_RIGHT_VERTICAL | LOWER_LEFT_DIAGONAL | LOWER_RIGHT_DIAGONAL | LOWER_CENTRE_VERTICAL) 41 #define BOTTOM_EDGE BOTTOM_HORIZONTAL 42 43 #define LEFT_EDGE (LOWER_LEFT_VERTICAL | UPPER_LEFT_VERTICAL) 44 #define LEFT_ELEMENTS (LEFT_MIDDLE_HORIZONTAL | UPPER_LEFT_DIAGONAL | LOWER_LEFT_DIAGONAL) 45 #define CENTRE_ELEMENTS (UPPER_CENTRE_VERTICAL | LOWER_CENTRE_VERTICAL) 46 #define RIGHT_ELEMENTS (RIGHT_MIDDLE_HORIZONTAL | UPPER_RIGHT_DIAGONAL | LOWER_RIGHT_DIAGONAL) 47 #define RIGHT_EDGE (LOWER_RIGHT_VERTICAL | UPPER_RIGHT_VERTICAL) 48 49 #define OUTER_FRAME (TOP_HORIZONTAL | RIGHT_EDGE | BOTTOM_HORIZONTAL | LEFT_EDGE) 50 #define PLUS (LEFT_MIDDLE_HORIZONTAL | RIGHT_MIDDLE_HORIZONTAL | UPPER_CENTRE_VERTICAL | LOWER_CENTRE_VERTICAL) 51 #define DIAGONALS (UPPER_LEFT_DIAGONAL | UPPER_RIGHT_DIAGONAL | LOWER_RIGHT_DIAGONAL | LOWER_LEFT_DIAGONAL) 52 #define INNER_ELEMENTS (PLUS | DIAGONALS) 53 #define HORIZONTALS (TOP_HORIZONTAL | BOTTOM_HORIZONTAL | LEFT_MIDDLE_HORIZONTAL | RIGHT_MIDDLE_HORIZONTAL) 54 55 #define UPPER_TRIANGLE (TOP_HORIZONTAL | UPPER_LEFT_DIAGONAL | UPPER_RIGHT_DIAGONAL) 56 #define LOWER_TRIANGLE (BOTTOM_HORIZONTAL | LOWER_LEFT_DIAGONAL | LOWER_RIGHT_DIAGONAL) 57 #define LEFT_TRIANGLE (UPPER_LEFT_VERTICAL | LOWER_LEFT_VERTICAL | UPPER_LEFT_DIAGONAL | LOWER_LEFT_DIAGONAL) 58 #define UPPER_LEFT_TRIANGLE (UPPER_LEFT_VERTICAL | UPPER_LEFT_DIAGONAL | LEFT_MIDDLE_HORIZONTAL) 59 #define LOWER_LEFT_TRIANGLE (LOWER_LEFT_VERTICAL | LOWER_LEFT_DIAGONAL | LEFT_MIDDLE_HORIZONTAL) 60 #define RIGHT_TRIANGLE (UPPER_RIGHT_VERTICAL | LOWER_RIGHT_VERTICAL | UPPER_RIGHT_DIAGONAL | LOWER_RIGHT_DIAGONAL) 61 #define UPPER_RIGHT_TRIANGLE (UPPER_RIGHT_VERTICAL | UPPER_RIGHT_DIAGONAL | RIGHT_MIDDLE_HORIZONTAL) 62 #define LOWER_RIGHT_TRIANGLE (LOWER_RIGHT_VERTICAL | LOWER_RIGHT_DIAGONAL | RIGHT_MIDDLE_HORIZONTAL) 63 64 #endif /* __SHAPES_H__ */