Enum Class Direction

java.lang.Object
java.lang.Enum<Direction>
es.ull.mazesolver.util.Direction
All Implemented Interfaces:
Serializable, Comparable<Direction>, Constable

public enum Direction extends Enum<Direction> implements Serializable
Enum que representa una dirección de movimiento en 2D. Cada posible opción es un flag, por lo que se pueden hacer operaciones de bit para representar varias direcciones en la misma variable simultáneamente.
  • Enum Constant Details

  • Field Details

    • MAX_DIRECTIONS

      public static int MAX_DIRECTIONS
      Número máximo de direcciones.
    • val

      public short val
      Valor asociado a una dirección (campo de bits).
  • Method Details

    • values

      public static Direction[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static Direction valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • fromValue

      public static Direction fromValue(short value)
      Transforma un short en dirección, comparando sus valores directamente.
      Parameters:
      value - Valor (dentro de los valores posibles de dirección).
      Returns:
      Dirección asociada a ese valor.
    • fromIndex

      public static Direction fromIndex(int index)
      Devuelve la dirección asociada a un índice.
      Parameters:
      index - Índice de la dirección. El orden es el siguiente:
      1. NONE
      2. UP
      3. DOWN
      4. LEFT
      5. RIGHT
      Returns:
      Dirección asociada al índice.
    • fromPoints

      public static Direction fromPoints(Point p1, Point p2)
      Extrae la dirección asociada al paso entre 2 posiciones contiguas.
      Parameters:
      p1 - Posición de inicio.
      p2 - Posición de destino.
      Returns:
      La dirección que une los 2 puntos contiguos o null si los puntos no están contiguos,
    • random

      public static Direction random()
      Crea una dirección de forma aleatoria.
      Returns:
      Una dirección aleatoria. No va a ser Direction.NONE.
    • decompose

      public Pair<Integer,​Integer> decompose()
      Descompone la dirección en sus componentes x e y, con una magnitud de 1.
      Returns:
      Pareja con la descomposición de la dirección (x, y).
    • getOpposite

      public Direction getOpposite()
      Invierte la posición actual.
      Returns:
      Dirección contraria de la actual.
    • rotate

      public Direction rotate(Rotation rot)
      Rota la dirección absoluta actual en el sentido indicado.
      Parameters:
      rot - Sentido de rotación que aplicar.
      Returns:
      La nueva dirección rotada.
    • movePoint

      public Point movePoint(Point p)
      Desplaza un punto en la dirección y lo guarda en un punto nuevo.
      Parameters:
      p - Punto que se desea mover en esta dirección.
      Returns:
      Nuevo punto equivalente al indicado desplazado en esta dirección.
    • isVertical

      public boolean isVertical()
      Returns:
      Si la dirección es vertical.
    • isHorizontal

      public boolean isHorizontal()
      Returns:
      Si la dirección es horizontal.