Class Vector1D.Unit

All Implemented Interfaces:
Point<Vector1D>, Spatial, Vector<Vector1D>
Enclosing class:
Vector1D

public static final class Vector1D.Unit extends Vector1D
Represent unit vectors. This allows optimizations to be performed for certain operations.
  • Field Details

    • PLUS

      public static final Vector1D.Unit PLUS
      Unit vector (coordinates: 1).
    • MINUS

      public static final Vector1D.Unit MINUS
      Negation of unit vector (coordinates: -1).
  • Constructor Details

    • Unit

      private Unit(double x)
      Simple constructor. Callers are responsible for ensuring that the given values represent a normalized vector.
      Parameters:
      x - abscissa (first coordinate value)
  • Method Details

    • norm

      public double norm()
      Get the L2 norm (commonly known as the Euclidean norm) for the vector. This corresponds to the common notion of vector magnitude or length and is defined as the square root of the sum of the squares of all vector components.
      Specified by:
      norm in interface Vector<Vector1D>
      Overrides:
      norm in class Vector1D
      Returns:
      L2 norm for the vector
      See Also:
    • normSq

      public double normSq()
      Get the square of the L2 norm (also known as the Euclidean norm) for the vector. This is equal to the sum of the squares of all vector components.
      Specified by:
      normSq in interface Vector<Vector1D>
      Overrides:
      normSq in class Vector1D
      Returns:
      square of the L2 norm for the vector
      See Also:
    • normalize

      public Vector1D.Unit normalize()
      Get a normalized vector aligned with the instance. The returned vector has a magnitude of 1.
      Specified by:
      normalize in interface Vector<Vector1D>
      Overrides:
      normalize in class Vector1D
      Returns:
      normalized vector
      See Also:
    • normalizeOrNull

      public Vector1D.Unit normalizeOrNull()
      Attempt to compute a normalized vector aligned with the instance, returning null if such a vector cannot be computed. This method is equivalent to Vector.normalize() but returns null instead of throwing an exception on failure.
      Specified by:
      normalizeOrNull in interface Vector<Vector1D>
      Overrides:
      normalizeOrNull in class Vector1D
      Returns:
      normalized vector or null if such a vector cannot be computed, i.e. if the norm is zero, NaN, or infinite
      See Also:
    • withNorm

      public Vector1D withNorm(double mag)
      Returns a vector with the same direction but with the given norm. This is equivalent to calling vec.normalize().scalarMultiply(mag) but without the intermediate vector.
      Specified by:
      withNorm in interface Vector<Vector1D>
      Overrides:
      withNorm in class Vector1D
      Parameters:
      mag - The vector norm
      Returns:
      a vector with the same direction as the current instance but the given norm
    • negate

      public Vector1D negate()
      Get the negation of the instance.
      Specified by:
      negate in interface Vector<Vector1D>
      Overrides:
      negate in class Vector1D
      Returns:
      a new vector which is the negation of the instance
    • from

      public static Vector1D.Unit from(double x)
      Create a normalized vector.
      Parameters:
      x - Vector coordinate.
      Returns:
      a vector whose norm is 1.
      Throws:
      IllegalArgumentException - if the norm of the given value is zero, NaN, or infinite
    • from

      public static Vector1D.Unit from(Vector1D v)
      Create a normalized vector.
      Parameters:
      v - Vector.
      Returns:
      a vector whose norm is 1.
      Throws:
      IllegalArgumentException - if the norm of the given value is zero, NaN, or infinite
    • tryCreateNormalized

      private static Vector1D.Unit tryCreateNormalized(double x, boolean throwOnFailure)
      Attempt to create a normalized vector from the given coordinate values. If throwOnFailure is true, an exception is thrown if a normalized vector cannot be created. Otherwise, null is returned.
      Parameters:
      x - x coordinate
      throwOnFailure - if true, an exception will be thrown if a normalized vector cannot be created
      Returns:
      normalized vector or null if one cannot be created and throwOnFailure is false
      Throws:
      IllegalArgumentException - if the computed norm is zero, NaN, or infinite