# StationRect Struct Reference

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

`#include <base_station_base.h>`

Inheritance diagram for StationRect:

## 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
CommandCost | BeforeAddTile (TileIndex tile, StationRectMode mode)
CommandCost | BeforeAddRect (TileIndex tile, int w, int h, StationRectMode mode)
bool | AfterRemoveTile (BaseStation *st, TileIndex tile)
bool | AfterRemoveRect (BaseStation *st, TileArea ta)
StationRect & | operator= (const 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 31 of file base_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 369 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 434 of file station.cpp.

References GetStationIndex(), IsTileType(), MP_STATION, TILE_AREA_LOOP, and TileXY().

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

- src/base_station_base.h
- src/station.cpp