direction_func.h File Reference

Different functions related to conversions between directions. More...

#include "direction_type.h"

Go to the source code of this file.

Functions

static Direction ReverseDir (Direction d)
 Return the reverse of a direction.
static DirDiff DirDifference (Direction d0, Direction d1)
 Calculate the difference between to directions.
static DirDiff ChangeDirDiff (DirDiff d, DirDiff delta)
 Applies two differences together.
static Direction ChangeDir (Direction d, DirDiff delta)
 Change a direction by a given difference.
static DiagDirection ReverseDiagDir (DiagDirection d)
 Returns the reverse direction of the given DiagDirection.
static DiagDirection ChangeDiagDir (DiagDirection d, DiagDirDiff delta)
 Applies a difference on a DiagDirection.
static DiagDirection DirToDiagDir (Direction dir)
 Convert a Direction to a DiagDirection.
static Direction DiagDirToDir (DiagDirection dir)
 Convert a DiagDirection to a Direction.
static Axis OtherAxis (Axis a)
 Select the other axis as provided.
static Axis DiagDirToAxis (DiagDirection d)
 Convert a DiagDirection to the axis.
static DiagDirection AxisToDiagDir (Axis a)
 Converts an Axis to a DiagDirection.
static Direction AxisToDirection (Axis a)
 Converts an Axis to a Direction.
static DiagDirection XYNSToDiagDir (Axis xy, uint ns)
 Convert an axis and a flag for north/south into a DiagDirection.
static bool IsValidDiagDirection (DiagDirection d)
 Checks if an interger value is a valid DiagDirection.
static bool IsValidDirection (Direction d)
 Checks if an integer value is a valid Direction.
static bool IsValidAxis (Axis d)
 Checks if an integer value is a valid Axis.


Detailed Description

Different functions related to conversions between directions.

Definition in file direction_func.h.


Function Documentation

static DiagDirection AxisToDiagDir ( Axis  a  )  [inline, static]

Converts an Axis to a DiagDirection.

This function returns the DiagDirection which belongs to the axis. As 2 directions are mapped to an axis this function returns the one which points to south, either south-west (on X axis) or south-east (on Y axis)

Parameters:
a The axis
Returns:
The direction pointed to south

Definition at line 165 of file direction_func.h.

Referenced by CmdBuildBridge(), DrawBridgePillars(), GetNorthernBridgeEnd(), GetSouthernBridgeEnd(), and TrainApproachingCrossing().

static Direction AxisToDirection ( Axis  a  )  [inline, static]

Converts an Axis to a Direction.

This function returns the Direction which belongs to the axis. As 2 directions are mapped to an axis this function returns the one which points to south, either south-west (on X axis) or south-east (on Y axis)

Parameters:
a The axis
Returns:
The direction pointed to south

Definition at line 181 of file direction_func.h.

static DiagDirection ChangeDiagDir ( DiagDirection  d,
DiagDirDiff  delta 
) [inline, static]

Applies a difference on a DiagDirection.

This function applies a difference on a DiagDirection and returns the new DiagDirection.

Parameters:
d The DiagDirection
delta The difference to applie on
Returns:
The new direction which was calculated

Definition at line 88 of file direction_func.h.

Referenced by GrowTownInTile(), IsNeighborRoadTile(), and TrainExitDir().

static Direction ChangeDir ( Direction  d,
DirDiff  delta 
) [inline, static]

Change a direction by a given difference.

This functions returns a new direction of the given direction which is rotated by the given difference.

Parameters:
d The direction to get a new direction from
delta The offset/drift applied to the direction
Returns:
The new direction

Definition at line 60 of file direction_func.h.

Referenced by AircraftController(), and DisasterTick_Submarine().

static DirDiff ChangeDirDiff ( DirDiff  d,
DirDiff  delta 
) [inline, static]

Applies two differences together.

This function adds two differences together and return the resulting difference. So adding two DIRDIFF_REVERSE together results in the DIRDIFF_SAME difference.

Parameters:
d The first difference
delta The second difference to add on
Returns:
The resulting difference

Definition at line 45 of file direction_func.h.

static Axis DiagDirToAxis ( DiagDirection  d  )  [inline, static]

Convert a DiagDirection to the axis.

This function returns the axis which belongs to the given DiagDirection. The axis X belongs to the DiagDirection north-east and south-west.

Parameters:
d The DiagDirection
Returns:
The axis which belongs to the direction

Definition at line 148 of file direction_func.h.

Referenced by CanEnterTileOwnerCheck(), CleanUpRoadBits(), CmdBuildBridge(), CmdBuildRoad(), CmdBuildTunnel(), DrawCatenaryRailway(), DrawTile_TunnelBridge(), ExploreSegment(), GetAnyRoadBits(), GetBridgeHeight(), IsWateredTile(), NeighbourHasReachableRoad(), RoadFindPathToDest(), SetRailwayStationPlatformReservation(), TrainApproachingCrossingTile(), and VehicleEnter_Track().

static Direction DiagDirToDir ( DiagDirection  dir  )  [inline, static]

Convert a DiagDirection to a Direction.

This function can be used to convert the 4-way DiagDirection to the 8-way Direction. As 4-way are less than 8-way not all possible directions can be calculated.

Parameters:
dir The direction to convert
Returns:
The resulting Direction

Definition at line 118 of file direction_func.h.

Referenced by CmdBuildRailVehicle(), CmdBuildRailWagon(), CmdBuildRoadVeh(), TrainCanLeaveTile(), and VehicleEnter_Track().

static DirDiff DirDifference ( Direction  d0,
Direction  d1 
) [inline, static]

Calculate the difference between to directions.

Parameters:
d0 The first direction as the base
d1 The second direction as the offset from the base
Returns:
The difference how the second directions drifts of the first one.

Definition at line 29 of file direction_func.h.

Referenced by AffectSpeedByDirChange(), AircraftController(), and GetTrainAcceleration().

static DiagDirection DirToDiagDir ( Direction  dir  )  [inline, static]

Convert a Direction to a DiagDirection.

This function can be used to convert the 8-way Direction to the 4-way DiagDirection. If the direction cannot be mapped its "rounded clockwise". So DIR_N becomes DIAGDIR_NE.

Parameters:
dir The direction to convert
Returns:
The resulting DiagDirection, maybe "rounded clockwise".

Definition at line 103 of file direction_func.h.

Referenced by CmdTurnRoadVeh(), DisasterTick_Submarine(), GetTrainAcceleration(), GetVehicleTrackdir(), IsWateredTile(), and TrainExitDir().

static bool IsValidAxis ( Axis  d  )  [inline, static]

Checks if an integer value is a valid Axis.

Parameters:
d The value to check
Returns:
True if the value belongs to an Axis, else false

Definition at line 225 of file direction_func.h.

References AXIS_END.

Referenced by CmdBuildRoadStop().

static bool IsValidDiagDirection ( DiagDirection  d  )  [inline, static]

Checks if an interger value is a valid DiagDirection.

Parameters:
d The value to check
Returns:
True if the value belongs to a DiagDirection, else false

Definition at line 203 of file direction_func.h.

References DIAGDIR_END.

Referenced by ChooseShipTrack(), CmdBuildRoadStop(), TileIndexDiffCByDiagDir(), and TileOffsByDiagDir().

static bool IsValidDirection ( Direction  d  )  [inline, static]

Checks if an integer value is a valid Direction.

Parameters:
d The value to check
Returns:
True if the value belongs to a Direction, else false

Definition at line 214 of file direction_func.h.

References DIR_END.

Referenced by TileIndexDiffCByDir(), and TileOffsByDir().

static Axis OtherAxis ( Axis  a  )  [inline, static]

Select the other axis as provided.

This is basically the not-operator for the axis.

Parameters:
a The given axis
Returns:
The other axis

Definition at line 132 of file direction_func.h.

Referenced by CmdBuildRoad().

static DiagDirection ReverseDiagDir ( DiagDirection  d  )  [inline, static]

static Direction ReverseDir ( Direction  d  )  [inline, static]

Return the reverse of a direction.

Parameters:
d The direction to get the reverse from
Returns:
The reverse Direction

Definition at line 16 of file direction_func.h.

Referenced by FindClosestTrainDepot(), TileLoop_Water(), and VehicleEnter_Track().

static DiagDirection XYNSToDiagDir ( Axis  xy,
uint  ns 
) [inline, static]

Convert an axis and a flag for north/south into a DiagDirection.

Parameters:
xy axis to convert
ns north -> 0, south -> 1
Returns:
the desired DiagDirection

Definition at line 192 of file direction_func.h.


Generated on Tue Dec 1 00:06:23 2009 for OpenTTD by  doxygen 1.5.6