org.firstinspires.ftc.robotcore.external.navigation

## Enum UnnormalizedAngleUnit

- java.lang.Object
- - java.lang.Enum<UnnormalizedAngleUnit>
  - - org.firstinspires.ftc.robotcore.external.navigation.UnnormalizedAngleUnit

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<UnnormalizedAngleUnit>

      public enum UnnormalizedAngleUnit
      extends java.lang.Enum<UnnormalizedAngleUnit>

  An `UnnormalizedAngleUnit` represents angles in different units of measure and provides utility methods to convert across units. `UnnormalizedAngleUnit` does not maintain angle information information internally, but only helps organize and use angle measures that may be maintained separately across various contexts.

  Angles can be distinguished along (at least) two axes:

  1. the fundamental unit (radians vs degrees)
  2. whether the angular quantity is normalized or not to the range of [-180,+180) degrees
  Normalized angles are of most utility when dealing with physical angles, as normalization removes ambiguity of representation. In particular, two angles can be compared for equality by subtracting them, normalizing, and testing whether the absolute value of the result is smaller than some tolerance threshold. This approach neatly handles all cases of cyclical wrapping without unexpected discontinuities.

  Unnormalized angles can be handy when the angular quantity is not a physical angle but some related quantity such as an angular velocity or acceleration, where the quantity in question lacks the 360-degree cyclical equivalence of a physical angle.

  `AngleUnit` expresses normalized angles, while `UnnormalizedAngleUnit` expresses unnormalized ones

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `DEGREES`
    `RADIANS`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `byte` | `bVal`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `fromDegrees(double degrees)`
    `float` | `fromDegrees(float degrees)`
    `double` | `fromRadians(double radians)`
    `float` | `fromRadians(float radians)`
    `double` | `fromUnit(UnnormalizedAngleUnit them, double theirs)`
    `float` | `fromUnit(UnnormalizedAngleUnit them, float theirs)`
    `AngleUnit` | `getNormalized()`
    `double` | `toDegrees(double inOurUnits)`
    `float` | `toDegrees(float inOurUnits)`
    `double` | `toRadians(double inOurUnits)`
    `float` | `toRadians(float inOurUnits)`
    `static UnnormalizedAngleUnit` | `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
    `static UnnormalizedAngleUnit[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### DEGREES

          public static final UnnormalizedAngleUnit DEGREES

    - #### RADIANS

          public static final UnnormalizedAngleUnit RADIANS

  - ### Field Detail

    - #### bVal

          public final byte bVal

  - ### Method Detail

    - #### values

          public static UnnormalizedAngleUnit[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (UnnormalizedAngleUnit c : UnnormalizedAngleUnit.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static UnnormalizedAngleUnit valueOf(java.lang.String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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:
        `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
        `java.lang.NullPointerException` - if the argument is null

    - #### fromDegrees

          public double fromDegrees(double degrees)

    - #### fromDegrees

          public float fromDegrees(float degrees)

    - #### fromRadians

          public double fromRadians(double radians)

    - #### fromRadians

          public float fromRadians(float radians)

    - #### fromUnit

          public double fromUnit(UnnormalizedAngleUnit them,
                                 double theirs)

    - #### fromUnit

          public float fromUnit(UnnormalizedAngleUnit them,
                                float theirs)

    - #### toDegrees

          public double toDegrees(double inOurUnits)

    - #### toDegrees

          public float toDegrees(float inOurUnits)

    - #### toRadians

          public double toRadians(double inOurUnits)

    - #### toRadians

          public float toRadians(float inOurUnits)

    - #### getNormalized

          public AngleUnit getNormalized()