rubidium@8121: /* $Id$ */ rubidium@8121: rubidium@8121: /** @file geometry_type.hpp All geometry types in OpenTTD. */ rubidium@8121: rubidium@8121: #ifndef GEOMETRY_TYPE_HPP rubidium@8121: #define GEOMETRY_TYPE_HPP rubidium@8121: skidd13@8126: #if defined(__AMIGA__) skidd13@8126: /* AmigaOS already has a Point declared */ skidd13@8126: #define Point OTTD_Point skidd13@8126: #endif /* __AMIGA__ */ skidd13@8126: egladil@8127: #if defined(__APPLE__) egladil@8127: /* Mac OS X already has both Rect and Point declared */ egladil@8127: #define Rect OTTD_Rect egladil@8127: #define Point OTTD_Point egladil@8127: #endif /* __APPLE__ */ egladil@8127: egladil@8127: rubidium@9077: /** Coordinates of a point in 2D */ rubidium@8121: struct Point { rubidium@8121: int x; rubidium@8121: int y; rubidium@8121: }; rubidium@8121: rubidium@9077: /** Dimensions (a width and height) of a rectangle in 2D */ rubidium@8121: struct Dimension { rubidium@8121: int width; rubidium@8121: int height; rubidium@8121: }; rubidium@8121: rubidium@9077: /** Specification of a rectangle with absolute coordinates of all edges */ rubidium@8121: struct Rect { rubidium@8121: int left; rubidium@8121: int top; rubidium@8121: int right; rubidium@8121: int bottom; rubidium@8121: }; rubidium@8121: rubidium@9077: /** rubidium@9077: * Specification of a rectangle with an absolute top-left coordinate and a rubidium@9077: * (relative) width/height rubidium@9077: */ rubidium@8121: struct PointDimension { rubidium@8121: int x; rubidium@8121: int y; rubidium@8121: int width; rubidium@8121: int height; rubidium@8121: }; rubidium@8121: rubidium@9077: /** A pair of two integers */ rubidium@8121: struct Pair { rubidium@8121: int a; rubidium@8121: int b; rubidium@8121: }; rubidium@8121: rubidium@8121: #endif /* GEOMETRY_TYPE_HPP */