# slope_type.h

Go to the documentation of this file.

    00001 /* $Id: slope_type.h 16246 2009-05-06 22:31:52Z rubidium $ */
    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   /* Halftile foundations */
    00087   FOUNDATION_STEEP_BOTH,
    00088   FOUNDATION_HALFTILE_W,
    00089   FOUNDATION_HALFTILE_S,
    00090   FOUNDATION_HALFTILE_E,
    00091   FOUNDATION_HALFTILE_N,
    00092
    00093   /* Special anti-zig-zag foundations for single horizontal/vertical track */
    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 /* SLOPE_TYPE_H */