public final class YawPitchRoll extends Object implements IEquatable<YawPitchRoll>, IEquatableEpsilon<YawPitchRoll>, ImmutableValueType
ElementaryRotations
about a reference set of axes. The orientation and associated set of axes which result from the first elementary rotation
are modified by a second elementary rotation, again performed about the original reference set of axes.
Likewise, the third elementary rotation is performed about the original reference set of axes to further modify
the orientation. This differs from an EulerSequence where the sequence
of rotations are performed about the consecutive set of axes which result from the successive elementary rotations.
To obtain the yaw (heading), pitch (elevation), and roll (bank) orientation of the vehicle body axis relative
to a local North-East-Down axes of the vehicle
as a series of consecutive elementary rotations, use a 321 EulerSequence.
| Constructor and Description |
|---|
YawPitchRoll()
Initializes a new instance.
|
YawPitchRoll(AngleAxisRotation rotation,
YawPitchRollIndicator sequence)
Initializes a
EulerSequence sequence from the provided AngleAxisRotation and sequence. |
YawPitchRoll(double angle1,
double angle2,
double angle3,
YawPitchRollIndicator sequence)
Initializes a
YawPitchRoll sequence from the provided angles and sequence. |
YawPitchRoll(ElementaryRotation firstRotation,
ElementaryRotation secondRotation,
ElementaryRotation thirdRotation)
Initializes a
YawPitchRoll sequence from the provided ElementaryRotation instances. |
YawPitchRoll(EulerSequence sequence)
Initializes a
YawPitchRoll sequence from the provided EulerSequence. |
YawPitchRoll(Matrix3By3 matrix,
YawPitchRollIndicator sequence)
Initializes a
YawPitchRoll sequence from the provided Matrix3By3 and sequence. |
YawPitchRoll(UnitQuaternion quaternion,
YawPitchRollIndicator sequence)
Initializes a
YawPitchRoll sequence from the provided UnitQuaternion and sequence. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj)
Indicates whether another object is exactly equal to this instance.
|
static boolean |
equals(YawPitchRoll left,
YawPitchRoll right)
Returns
true if the two instances are exactly equal. |
boolean |
equalsEpsilon(YawPitchRoll other,
double epsilon)
Returns
true if all of the elements of this quaternion are within epsilon
of the same elements of the specified quaternion. |
boolean |
equalsType(YawPitchRoll other)
Indicates whether another instance of this type is exactly equal to this instance.
|
static AxisIndicator |
firstAxis(YawPitchRollIndicator sequence)
Determines the first axis indicator from the provided
YawPitchRollIndicator. |
ElementaryRotation |
getFirstRotation()
Gets the first rotation.
|
ElementaryRotation |
getSecondRotation()
Gets the second rotation.
|
YawPitchRollIndicator |
getSequence()
Gets the order of the axes rotations for this instance.
|
ElementaryRotation |
getThirdRotation()
Gets the third rotation.
|
int |
hashCode()
Returns a hash code for this instance, which is suitable for use in hashing algorithms and data structures like a hash table.
|
static YawPitchRollIndicator |
indicator(AxisIndicator first,
AxisIndicator second,
AxisIndicator third)
Composes a
YawPitchRollIndicator from three individual AxisIndicator items. |
YawPitchRoll |
invert()
Inverts this instance, yielding a new
YawPitchRoll sequence. |
static boolean |
notEquals(YawPitchRoll left,
YawPitchRoll right)
Returns
true if the two instances are not exactly equal. |
static AxisIndicator |
secondAxis(YawPitchRollIndicator sequence)
Determines the second axis indicator from the provided
YawPitchRollIndicator. |
static AxisIndicator |
thirdAxis(YawPitchRollIndicator sequence)
Determines the third axis indicator from the provided
YawPitchRollIndicator. |
String |
toString()
Returns the value of this set of
YawPitchRoll coordinates in the form "first rotation, second rotation, third rotation" |
public YawPitchRoll()
public YawPitchRoll(double angle1,
double angle2,
double angle3,
@Nonnull
YawPitchRollIndicator sequence)
YawPitchRoll sequence from the provided angles and sequence.angle1 - The first angle.angle2 - The second angle.angle3 - The third angle.sequence - The sequence.public YawPitchRoll(@Nonnull ElementaryRotation firstRotation, @Nonnull ElementaryRotation secondRotation, @Nonnull ElementaryRotation thirdRotation)
YawPitchRoll sequence from the provided ElementaryRotation instances.firstRotation - The first rotation.secondRotation - The second rotation.thirdRotation - The third rotation.public YawPitchRoll(@Nonnull EulerSequence sequence)
YawPitchRoll sequence from the provided EulerSequence.sequence - The Euler sequence.public YawPitchRoll(@Nonnull Matrix3By3 matrix, @Nonnull YawPitchRollIndicator sequence)
YawPitchRoll sequence from the provided Matrix3By3 and sequence.
Note that the matrix must be an orthogonal rotation matrix.
matrix - The orthogonal rotation matrix.sequence - The sequence.public YawPitchRoll(@Nonnull UnitQuaternion quaternion, @Nonnull YawPitchRollIndicator sequence)
YawPitchRoll sequence from the provided UnitQuaternion and sequence.quaternion - The unit quaternion.sequence - The sequence.public YawPitchRoll(@Nonnull AngleAxisRotation rotation, @Nonnull YawPitchRollIndicator sequence)
EulerSequence sequence from the provided AngleAxisRotation and sequence.rotation - The rotation.sequence - The sequence.@Nonnull public static YawPitchRollIndicator indicator(@Nonnull AxisIndicator first, @Nonnull AxisIndicator second, @Nonnull AxisIndicator third)
YawPitchRollIndicator from three individual AxisIndicator items.first - The first axis of rotation.second - The second axis of rotation.third - The third axis of rotation.@Nonnull public static AxisIndicator firstAxis(@Nonnull YawPitchRollIndicator sequence)
YawPitchRollIndicator.sequence - The order of the axes of rotation.@Nonnull public static AxisIndicator secondAxis(@Nonnull YawPitchRollIndicator sequence)
YawPitchRollIndicator.sequence - The order of the axes of rotation.@Nonnull public static AxisIndicator thirdAxis(@Nonnull YawPitchRollIndicator sequence)
YawPitchRollIndicator.sequence - The order of the axes of rotation.@Nonnull public final ElementaryRotation getFirstRotation()
@Nonnull public final ElementaryRotation getSecondRotation()
@Nonnull public final ElementaryRotation getThirdRotation()
@Nonnull public final YawPitchRollIndicator getSequence()
@Nonnull public final YawPitchRoll invert()
YawPitchRoll sequence.YawPitchRoll.public boolean equals(Object obj)
equals in class Objectobj - The object to compare to this instance.true if obj is an instance of this type and represents the same value as this instance; otherwise false.Object.hashCode(),
HashMappublic final boolean equalsType(@Nonnull YawPitchRoll other)
equalsType in interface IEquatable<YawPitchRoll>other - The instance to compare to this instance.true if other represents the same value as this instance; otherwise false.public final boolean equalsEpsilon(@Nonnull YawPitchRoll other, double epsilon)
true if all of the elements of this quaternion are within epsilon
of the same elements of the specified quaternion. That is, in order for the quaternions to be
considered equal (and for this function to return true), the absolute value of the
difference between each of their elements must be less than or equal to epsilon.equalsEpsilon in interface IEquatableEpsilon<YawPitchRoll>other - The Quaternion to compare to this quaternion.epsilon - The largest difference between the elements of the quaternions for which they will be considered equal.true if the quaternions are equal as defined by the epsilon value.public int hashCode()
hashCode in class ObjectObject.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)public String toString()
YawPitchRoll coordinates in the form "first rotation, second rotation, third rotation"public static boolean equals(@Nonnull YawPitchRoll left, @Nonnull YawPitchRoll right)
true if the two instances are exactly equal.left - The instance to compare to right.right - The instance to compare to left.true if left represents the same value as right; otherwise false.public static boolean notEquals(@Nonnull YawPitchRoll left, @Nonnull YawPitchRoll right)
true if the two instances are not exactly equal.left - The instance to compare to right.right - The instance to compare to left.true if left does not represent the same value as right; otherwise false.