Serializable
public final class Quaternion extends Object implements Serializable
Instance of this class are guaranteed to be immutable.
Modifier and Type | Field | Description |
---|---|---|
static Quaternion |
I |
i
|
static Quaternion |
IDENTITY |
Identity quaternion.
|
static Quaternion |
J |
j
|
static Quaternion |
K |
k
|
static Quaternion |
ZERO |
Zero quaternion.
|
Constructor | 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 | 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–2018 Hipparchus.org. All rights reserved.