public final class Quaternion extends Object implements Serializable
Instance of this class are guaranteed to be immutable.
Modifier and Type | Field and Description |
---|---|
static Quaternion |
I
i
|
static Quaternion |
IDENTITY
Identity quaternion.
|
static Quaternion |
J
j
|
static Quaternion |
K
k
|
static Quaternion |
ZERO
Zero quaternion.
|
Constructor and Description |
---|
Quaternion(double[] v)
Builds a pure quaternion from a vector (assuming that the scalar
part is zero).
|
Quaternion(double scalar,
double[] v)
Builds a quaternion from scalar and vector parts.
|
Quaternion(double a,
double b,
double c,
double d)
Builds a quaternion from its components.
|
Modifier and Type | Method and Description |
---|---|
Quaternion |
add(Quaternion q)
Computes the sum of the instance and another quaternion.
|
static Quaternion |
add(Quaternion q1,
Quaternion q2)
Computes the sum of two quaternions.
|
double |
dotProduct(Quaternion q)
Computes the dot-product of the instance by a quaternion.
|
static double |
dotProduct(Quaternion q1,
Quaternion q2)
Computes the dot-product of two quaternions.
|
boolean |
equals(Object other) |
boolean |
equals(Quaternion q,
double eps)
Checks whether this instance is equal to another quaternion
within a given tolerance.
|
Quaternion |
getConjugate()
Returns the conjugate quaternion of the instance.
|
Quaternion |
getInverse()
Returns the inverse of this instance.
|
double |
getNorm()
Computes the norm of the quaternion.
|
Quaternion |
getPositivePolarForm()
Returns the polar form of the quaternion.
|
double |
getQ0()
Gets the first component of the quaternion (scalar part).
|
double |
getQ1()
Gets the second component of the quaternion (first component
of the vector part).
|
double |
getQ2()
Gets the third component of the quaternion (second component
of the vector part).
|
double |
getQ3()
Gets the fourth component of the quaternion (third component
of the vector part).
|
double |
getScalarPart()
Gets the scalar part of the quaternion.
|
double[] |
getVectorPart()
Gets the three components of the vector part of the quaternion.
|
int |
hashCode() |
boolean |
isPureQuaternion(double eps)
Checks whether the instance is a pure quaternion within a given
tolerance.
|
boolean |
isUnitQuaternion(double eps)
Checks whether the instance is a unit quaternion within a given
tolerance.
|
Quaternion |
multiply(double alpha)
Multiplies the instance by a scalar.
|
Quaternion |
multiply(Quaternion q)
Returns the Hamilton product of the instance by a quaternion.
|
static Quaternion |
multiply(Quaternion q1,
Quaternion q2)
Returns the Hamilton product of two quaternions.
|
Quaternion |
normalize()
Computes the normalized quaternion (the versor of the instance).
|
Quaternion |
subtract(Quaternion q)
Subtracts a quaternion from the instance.
|
static Quaternion |
subtract(Quaternion q1,
Quaternion q2)
Subtracts two quaternions.
|
String |
toString() |
public static final Quaternion IDENTITY
public static final Quaternion ZERO
public static final Quaternion I
public static final Quaternion J
public static final Quaternion K
public Quaternion(double a, double b, double c, double d)
a
- Scalar component.b
- First vector component.c
- Second vector component.d
- Third vector component.public Quaternion(double scalar, double[] v) throws MathIllegalArgumentException
scalar
- Scalar part of the quaternion.v
- Components of the vector part of the quaternion.MathIllegalArgumentException
- if the array length is not 3.public Quaternion(double[] v)
v
- Components of the vector part of the pure quaternion.public Quaternion getConjugate()
public static Quaternion multiply(Quaternion q1, Quaternion q2)
q1
- First quaternion.q2
- Second quaternion.q1
and q2
, in that order.public Quaternion multiply(Quaternion q)
q
- Quaternion.q
, in that order.public static Quaternion add(Quaternion q1, Quaternion q2)
q1
- Quaternion.q2
- Quaternion.q1
and q2
.public Quaternion add(Quaternion q)
q
- Quaternion.q
public static Quaternion subtract(Quaternion q1, Quaternion q2)
q1
- First Quaternion.q2
- Second quaternion.q1
and q2
.public Quaternion subtract(Quaternion q)
q
- Quaternion.q
.public static double dotProduct(Quaternion q1, Quaternion q2)
q1
- Quaternion.q2
- Quaternion.q1
and q2
.public double dotProduct(Quaternion q)
q
- Quaternion.q
.public double getNorm()
public Quaternion normalize()
MathIllegalArgumentException
- if the norm of the quaternion is zero.public boolean equals(Quaternion q, double eps)
q
- Quaternion with which to compare the current quaternion.eps
- Tolerance.true
if the each of the components are equal
within the allowed absolute error.public boolean isUnitQuaternion(double eps)
eps
- Tolerance (absolute error).true
if the norm is 1 within the given tolerance,
false
otherwisepublic boolean isPureQuaternion(double eps)
eps
- Tolerance (absolute error).true
if the scalar part of the quaternion is zero.public Quaternion getPositivePolarForm()
public Quaternion getInverse()
MathIllegalArgumentException
- if the norm (squared) of the quaternion is zero.public double getQ0()
public double getQ1()
public double getQ2()
public double getQ3()
public double getScalarPart()
getQ0()
public double[] getVectorPart()
public Quaternion multiply(double alpha)
alpha
- Scalar factor.Copyright © 2016–2020 Hipparchus.org. All rights reserved.