00001
00002
00009 #ifndef SLOPE_TYPE_H
00010 #define SLOPE_TYPE_H
00011
00012 #include "core/enum_type.hpp"
00013
00017 enum Corner {
00018 CORNER_W = 0,
00019 CORNER_S = 1,
00020 CORNER_E = 2,
00021 CORNER_N = 3,
00022 CORNER_END,
00023 CORNER_INVALID = 0xFF
00024 };
00025
00026
00043 enum Slope {
00044 SLOPE_FLAT = 0x00,
00045 SLOPE_W = 0x01,
00046 SLOPE_S = 0x02,
00047 SLOPE_E = 0x04,
00048 SLOPE_N = 0x08,
00049 SLOPE_STEEP = 0x10,
00050 SLOPE_NW = SLOPE_N | SLOPE_W,
00051 SLOPE_SW = SLOPE_S | SLOPE_W,
00052 SLOPE_SE = SLOPE_S | SLOPE_E,
00053 SLOPE_NE = SLOPE_N | SLOPE_E,
00054 SLOPE_EW = SLOPE_E | SLOPE_W,
00055 SLOPE_NS = SLOPE_N | SLOPE_S,
00056 SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W,
00057 SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S,
00058 SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E,
00059 SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N,
00060 SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W,
00061 SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS,
00062 SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE,
00063 SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN,
00064 SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW,
00065
00066 SLOPE_HALFTILE = 0x20,
00067 SLOPE_HALFTILE_MASK = 0xE0,
00068 SLOPE_HALFTILE_W = SLOPE_HALFTILE | (CORNER_W << 6),
00069 SLOPE_HALFTILE_S = SLOPE_HALFTILE | (CORNER_S << 6),
00070 SLOPE_HALFTILE_E = SLOPE_HALFTILE | (CORNER_E << 6),
00071 SLOPE_HALFTILE_N = SLOPE_HALFTILE | (CORNER_N << 6),
00072 };
00073 DECLARE_ENUM_AS_BIT_SET(Slope)
00074
00075
00076
00079 enum Foundation {
00080 FOUNDATION_NONE,
00081 FOUNDATION_LEVELED,
00082 FOUNDATION_INCLINED_X,
00083 FOUNDATION_INCLINED_Y,
00084 FOUNDATION_STEEP_LOWER,
00085
00086
00087 FOUNDATION_STEEP_BOTH,
00088 FOUNDATION_HALFTILE_W,
00089 FOUNDATION_HALFTILE_S,
00090 FOUNDATION_HALFTILE_E,
00091 FOUNDATION_HALFTILE_N,
00092
00093
00094 FOUNDATION_RAIL_W,
00095 FOUNDATION_RAIL_S,
00096 FOUNDATION_RAIL_E,
00097 FOUNDATION_RAIL_N,
00098
00099 FOUNDATION_INVALID = 0xFF
00100 };
00101
00102 #endif