tron@3636: /* $Id$ */ tron@3636: KUDr@6307: /** @file slope.h */ KUDr@6307: tron@3636: #ifndef SLOPE_H tron@3636: #define SLOPE_H tron@3636: bjarni@6298: enum Slope { rubidium@4344: SLOPE_FLAT = 0x00, rubidium@4344: SLOPE_W = 0x01, rubidium@4344: SLOPE_S = 0x02, rubidium@4344: SLOPE_E = 0x04, rubidium@4344: SLOPE_N = 0x08, rubidium@4344: SLOPE_STEEP = 0x10, rubidium@4344: SLOPE_NW = SLOPE_N | SLOPE_W, rubidium@4344: SLOPE_SW = SLOPE_S | SLOPE_W, rubidium@4344: SLOPE_SE = SLOPE_S | SLOPE_E, rubidium@4344: SLOPE_NE = SLOPE_N | SLOPE_E, rubidium@4344: SLOPE_EW = SLOPE_E | SLOPE_W, rubidium@4344: SLOPE_NS = SLOPE_N | SLOPE_S, tron@3636: SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, rubidium@4344: SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, rubidium@4344: SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, rubidium@4344: SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, rubidium@4344: SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W, rubidium@4344: SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS, rubidium@4344: SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE, rubidium@4344: SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, rubidium@4344: SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW bjarni@6298: }; tron@3636: tron@3636: static inline bool IsSteepSlope(Slope s) tron@3636: { tron@3636: return (s & SLOPE_STEEP) != 0; tron@3636: } tron@3636: tron@3636: static inline Slope ComplementSlope(Slope s) tron@3636: { tron@3636: assert(!IsSteepSlope(s)); tron@3636: return (Slope)(0xF ^ s); tron@3636: } tron@3636: peter1138@4666: #endif /* SLOPE_H */