StationRect Struct Reference

StationRect - used to track station spread out rectangle - cheaper than scanning whole map. More...

#include <station_base.h>

Inheritance diagram for StationRect:

Rect

Public Types

enum  StationRectMode { ADD_TEST = 0, ADD_TRY, ADD_FORCE }

Public Member Functions

void MakeEmpty ()
bool PtInExtendedRect (int x, int y, int distance=0) const
 Determines whether a given point (x, y) is within a certain distance of the station rectangle.
bool IsEmpty () const
bool BeforeAddTile (TileIndex tile, StationRectMode mode)
bool BeforeAddRect (TileIndex tile, int w, int h, StationRectMode mode)
bool AfterRemoveTile (Station *st, TileIndex tile)
bool AfterRemoveRect (Station *st, TileIndex tile, int w, int h)
StationRectoperator= (Rect src)

Static Public Member Functions

static bool ScanForStationTiles (StationID st_id, int left_a, int top_a, int right_a, int bottom_a)
 Check whether station tiles of the given station id exist in the given rectangle.

Detailed Description

StationRect - used to track station spread out rectangle - cheaper than scanning whole map.

Definition at line 90 of file station_base.h.


Member Function Documentation

bool StationRect::PtInExtendedRect ( int  x,
int  y,
int  distance = 0 
) const

Determines whether a given point (x, y) is within a certain distance of the station rectangle.

Note:
x and y are in Tile coordinates
Parameters:
x X coordinate
y Y coordinate
distance The maxmium distance a point may have (L1 norm)
Returns:
true if the point is within distance tiles of the station rectangle

Definition at line 288 of file station.cpp.

bool StationRect::ScanForStationTiles ( StationID  st_id,
int  left_a,
int  top_a,
int  right_a,
int  bottom_a 
) [static]

Check whether station tiles of the given station id exist in the given rectangle.

Parameters:
st_id Station ID to look for in the rectangle
left_a Minimal tile X edge of the rectangle
top_a Minimal tile Y edge of the rectangle
right_a Maximal tile X edge of the rectangle (inclusive)
bottom_a Maximal tile Y edge of the rectangle (inclusive)
Returns:
true if a station tile with the given st_id exists in the rectangle, false otherwise

Definition at line 348 of file station.cpp.

References BEGIN_TILE_LOOP, END_TILE_LOOP, GetStationIndex(), IsTileType(), MP_STATION, and TileXY().


The documentation for this struct was generated from the following files:

Generated on Wed Dec 23 20:13:18 2009 for OpenTTD by  doxygen 1.5.6