Search Results for

    Show / Hide Table of Contents

    Class DirectionHelpers

    Defines extension methods and helpers for the Direction enum.

    Inheritance
    object
    DirectionHelpers
    Namespace: AS2
    Assembly: .dll
    Syntax
    public static class DirectionHelpers

    Methods

    | Edit this page View Source

    AddTo(Direction, Direction, bool)

    Adds this direction value to the given direction. The current direction is interpreted as an amount of rotation relative to the E direction that is to be added to the given other direction. This can be used to convert local directions to global directions.

    Declaration
    public static Direction AddTo(this Direction d, Direction other, bool clockwise = false)
    Parameters
    Type Name Description
    Direction d

    The current direction to be interpreted as an amount of rotation.

    Direction other

    The offset direction to which the first direction should be added.

    bool clockwise

    If true, interpret the first direction as clockwise rotation instead of counter-clockwise.

    Returns
    Type Description
    Direction
    | Edit this page View Source

    Cardinal(int)

    Returns the cardinal direction corresponding to the given integer. The cardinal directions are numbered 0,...,5, with 0 being E and values increasing counter- clockwise.

    Declaration
    public static Direction Cardinal(int d)
    Parameters
    Type Name Description
    int d

    The integer representing a cardinal direction. If negative, the result will be NONE.

    Returns
    Type Description
    Direction

    The cardinal direction identified by the integer d.

    | Edit this page View Source

    DistanceTo(Direction, Direction, bool)

    Returns the number of 30 degree rotations needed to make direction d match direction target.

    Declaration
    public static int DistanceTo(this Direction d, Direction target, bool clockwise = false)
    Parameters
    Type Name Description
    Direction d

    The direction to be rotated.

    Direction target

    The target direction to be matched.

    bool clockwise

    If true, rotate in clockwise direction instead of counter-clockwise.

    Returns
    Type Description
    int

    The number of counter-clockwise or clockwise 30 degree rotations necessary to align d with target.

    | Edit this page View Source

    FromInitDir(Compass)

    Translates the Initialization.Compass enum into the Direction enum.

    Declaration
    public static Direction FromInitDir(Initialization.Compass initDir)
    Parameters
    Type Name Description
    Initialization.Compass initDir

    A compass direction specified in the Initialization.Compass enum.

    Returns
    Type Description
    Direction

    The Direction corresponding to initDir.

    | Edit this page View Source

    IsCardinal(Direction)

    Checks if this is a cardinal direction.

    See also IsSecondary(Direction).

    Declaration
    public static bool IsCardinal(this Direction d)
    Parameters
    Type Name Description
    Direction d

    The direction to check.

    Returns
    Type Description
    bool

    true if and only if this is a cardinal direction.

    | Edit this page View Source

    IsSecondary(Direction)

    Checks if this is a secondary direction.

    See also IsCardinal(Direction).

    Declaration
    public static bool IsSecondary(this Direction d)
    Parameters
    Type Name Description
    Direction d

    The direction to check.

    Returns
    Type Description
    bool

    true if and only if this is a secondary direction.

    | Edit this page View Source

    Iterate30(Direction, int, bool)

    Creates an array of consecutive cardinal and secondary directions.

    Declaration
    public static Direction[] Iterate30(Direction start, int number, bool clockwise = false)
    Parameters
    Type Name Description
    Direction start

    The first element of the array. If the value is NONE, all directions in the array will be NONE.

    int number

    The number of elements in the array. The array will have length 0 for any value less than or equal to 0. If the value is greater than 12, the directions will start repeating.

    bool clockwise

    If true, the directions are listed in clockwise order.

    Returns
    Type Description
    Direction[]

    An array containing number directions, starting at start.

    | Edit this page View Source

    Iterate60(Direction, int, bool)

    Creates an array of consecutive cardinal or secondary directions.

    Declaration
    public static Direction[] Iterate60(Direction start, int number, bool clockwise = false)
    Parameters
    Type Name Description
    Direction start

    The first element of the array. If this is a cardinal/secondary direction, all directions in the array will be cardinal/secondary. If the value is NONE, all directions will be NONE.

    int number

    The number of elements in the array. The array will have length 0 for any value less than or equal to 0. If the value is greater than 6, the directions will start repeating.

    bool clockwise

    If true, the directions are listed in clockwise order.

    Returns
    Type Description
    Direction[]

    An array containing number directions, starting at start.

    | Edit this page View Source

    Opposite(Direction)

    Returns the direction directly opposite to this direction.

    If d is (not) a cardinal direction, then the result will also (not) be a cardinal direction.

    Declaration
    public static Direction Opposite(this Direction d)
    Parameters
    Type Name Description
    Direction d

    The current direction.

    Returns
    Type Description
    Direction

    The direction directly opposite of d.

    | Edit this page View Source

    Rotate30(Direction, int)

    Returns the given direction rotated by 30 degrees times the given amount in counter-clockwise direction. Negative values rotate in clockwise direction.

    If d is (not) a cardinal direction, then the result will also (not) be a cardinal direction if and only if the given amount is even. If amount is odd, one of d and the result will be a cardinal direction and the other one will not be a cardinal direction.

    Declaration
    public static Direction Rotate30(this Direction d, int amount)
    Parameters
    Type Name Description
    Direction d

    The current direction.

    int amount

    The number of times to rotate by 30 degrees in clockwise direction.

    Returns
    Type Description
    Direction

    Direction d rotated by 30 degrees times amount in counter-clockwise direction.

    | Edit this page View Source

    Rotate60(Direction, int)

    Returns the given direction rotated by 60 degrees times the given amount in counter-clockwise direction. Negative values rotate in clockwise direction.

    If d is (not) a cardinal direction, then the result will also (not) be a cardinal direction.

    Declaration
    public static Direction Rotate60(this Direction d, int amount)
    Parameters
    Type Name Description
    Direction d

    The current direction.

    int amount

    The number of times to rotate by 60 degrees in clockwise direction.

    Returns
    Type Description
    Direction

    Direction d rotated by 60 degrees times amount in counter-clockwise direction.

    | Edit this page View Source

    Secondary(int)

    Returns the secondary direction corresponding to the given integer. The secondary direction for integer i is obtained by rotating the cardinal direction with index i counter-clockwise by 30 degrees.

    Declaration
    public static Direction Secondary(int d)
    Parameters
    Type Name Description
    int d

    The integer representing a cardinal direction. If negative, the result will be NONE.

    Returns
    Type Description
    Direction

    The secondary direction corresponding to the cardinal direction that is identified by the integer d.

    | Edit this page View Source

    Subtract(Direction, Direction, bool)

    Subtracts the given direction from this global direction. The current direction is interpreted as the result of adding a rotation x to the given other direction, where x can be clockwise or counter- clockwise rotation. This method finds and returns x. It can be used to convert global directions to local directions.

    Declaration
    public static Direction Subtract(this Direction d, Direction other, bool clockwise = false)
    Parameters
    Type Name Description
    Direction d

    The current global direction.

    Direction other

    The global direction used as offset.

    bool clockwise

    If true, the resulting direction is interpreted as clockwise rotation instead of counter-clockwise.

    Returns
    Type Description
    Direction

    A direction indicating the amoutn of rotation that must be added to other to get d.

    | Edit this page View Source

    ToInt(Direction)

    Maps this direction to its integer representation. Every cardinal direction is mapped to the same value as the secondary direction obtained by a 30 degree counter-clockwise rotation. Thus, there are 6 pairs of directions, which are mapped to the integers 0,...,5. The integer values increase with counter- clockwise rotation. The special direction NONE is represented by -1.

    Declaration
    public static int ToInt(this Direction d)
    Parameters
    Type Name Description
    Direction d

    The direction to be mapped to an integer.

    Returns
    Type Description
    int

    The integer representing the given cardinal or secondary direction.

    • Edit this page
    • View Source
    In this article
    Back to top AmoebotSim 2.0 Documentation v1.11
    Copyright © 2025 AmoebotSim 2.0 Authors
    Generated by DocFX