public interface Quaterniondc
| Modifier and Type | Method and Description |
|---|---|
Quaterniond |
add(double x,
double y,
double z,
double w,
Quaterniond dest)
Add the quaternion
(x, y, z, w) to this quaternion and store the result in dest. |
Quaterniond |
add(Quaterniondc q2,
Quaterniond dest)
Add
q2 to this quaternion and store the result in dest. |
double |
angle()
Return the angle in radians represented by this quaternion rotation.
|
Quaterniond |
conjugate(Quaterniond dest)
Conjugate this quaternion and store the result in
dest. |
Quaterniond |
difference(Quaterniondc other,
Quaterniond dest)
Compute the difference between
this and the other quaternion
and store the result in dest. |
Quaterniond |
div(Quaterniondc b,
Quaterniond dest)
Divide
this quaternion by b and store the result in dest. |
double |
dot(Quaterniondc otherQuat)
Return the dot product of this
Quaterniond and otherQuat. |
Matrix3d |
get(Matrix3d dest)
Set the given destination matrix to the rotation represented by
this. |
Matrix3f |
get(Matrix3f dest)
Set the given destination matrix to the rotation represented by
this. |
Matrix4d |
get(Matrix4d dest)
Set the given destination matrix to the rotation represented by
this. |
Matrix4f |
get(Matrix4f dest)
Set the given destination matrix to the rotation represented by
this. |
Quaterniond |
get(Quaterniond dest)
Set the given
Quaterniond to the values of this. |
Vector3d |
getEulerAnglesXYZ(Vector3d eulerAngles)
Get the euler angles in radians in rotation sequence
XYZ of this quaternion and store them in the
provided parameter eulerAngles. |
Quaterniond |
integrate(double dt,
double vx,
double vy,
double vz,
Quaterniond dest)
Integrate the rotation given by the angular velocity
(vx, vy, vz) around the x, y and z axis, respectively,
with respect to the given elapsed time delta dt and add the differentiate rotation to the rotation represented by this quaternion
and store the result into dest. |
Quaterniond |
invert(Quaterniond dest)
Invert this quaternion and store the
normalized result in dest. |
double |
lengthSquared()
Return the square of the length of this quaternion.
|
Quaterniond |
lookAlong(double dirX,
double dirY,
double dirZ,
double upX,
double upY,
double upZ,
Quaterniond dest)
Apply a rotation to this quaternion that maps the given direction to the positive Z axis, and store the result in
dest. |
Quaterniond |
lookAlong(Vector3dc dir,
Vector3dc up,
Quaterniond dest)
Apply a rotation to this quaternion that maps the given direction to the positive Z axis, and store the result in
dest. |
Quaterniond |
mul(double qx,
double qy,
double qz,
double qw,
Quaterniond dest)
Multiply this quaternion by the quaternion represented via
(qx, qy, qz, qw) and store the result in dest. |
Quaterniond |
mul(Quaterniondc q,
Quaterniond dest)
Multiply this quaternion by
q and store the result in dest. |
Quaterniond |
nlerp(Quaterniondc q,
double factor,
Quaterniond dest)
Compute a linear (non-spherical) interpolation of
this and the given quaternion q
and store the result in dest. |
Quaterniond |
nlerpIterative(Quaterniondc q,
double alpha,
double dotThreshold,
Quaterniond dest)
Compute linear (non-spherical) interpolations of
this and the given quaternion q
iteratively and store the result in dest. |
Quaterniond |
normalize(Quaterniond dest)
Normalize this quaternion and store the result in
dest. |
Vector3d |
normalizedPositiveX(Vector3d dir)
Obtain the direction of
+X before the rotation transformation represented by this normalized quaternion is applied. |
Vector3d |
normalizedPositiveY(Vector3d dir)
Obtain the direction of
+Y before the rotation transformation represented by this normalized quaternion is applied. |
Vector3d |
normalizedPositiveZ(Vector3d dir)
Obtain the direction of
+Z before the rotation transformation represented by this normalized quaternion is applied. |
Vector3d |
positiveX(Vector3d dir)
Obtain the direction of
+X before the rotation transformation represented by this quaternion is applied. |
Vector3d |
positiveY(Vector3d dir)
Obtain the direction of
+Y before the rotation transformation represented by this quaternion is applied. |
Vector3d |
positiveZ(Vector3d dir)
Obtain the direction of
+Z before the rotation transformation represented by this quaternion is applied. |
Quaterniond |
premul(double qx,
double qy,
double qz,
double qw,
Quaterniond dest)
Pre-multiply this quaternion by the quaternion represented via
(qx, qy, qz, qw) and store the result in dest. |
Quaterniond |
premul(Quaterniondc q,
Quaterniond dest)
Pre-multiply this quaternion by
q and store the result in dest. |
Quaterniond |
rotateAxis(double angle,
double axisX,
double axisY,
double axisZ,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the specified axis
and store the result in dest. |
Quaterniond |
rotateAxis(double angle,
Vector3dc axis,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the specified axis
and store the result in dest. |
Quaterniond |
rotateLocalX(double angle,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the local x axis
and store the result in dest. |
Quaterniond |
rotateLocalY(double angle,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the local y axis
and store the result in dest. |
Quaterniond |
rotateLocalZ(double angle,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the local z axis
and store the result in dest. |
Quaterniond |
rotateTo(double fromDirX,
double fromDirY,
double fromDirZ,
double toDirX,
double toDirY,
double toDirZ,
Quaterniond dest)
Apply a rotation to
this that rotates the fromDir vector to point along toDir and
store the result in dest. |
Quaterniond |
rotateTo(Vector3dc fromDir,
Vector3dc toDir,
Quaterniond dest)
Apply a rotation to
this that rotates the fromDir vector to point along toDir and
store the result in dest. |
Quaterniond |
rotateX(double angle,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the x axis
and store the result in dest. |
Quaterniond |
rotateXYZ(double angleX,
double angleY,
double angleZ,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the cartesian base unit axes,
called the euler angles using rotation sequence XYZ and store the result in dest. |
Quaterniond |
rotateY(double angle,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the y axis
and store the result in dest. |
Quaterniond |
rotateYXZ(double angleY,
double angleX,
double angleZ,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the cartesian base unit axes,
called the euler angles, using the rotation sequence YXZ and store the result in dest. |
Quaterniond |
rotateZ(double angle,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the z axis
and store the result in dest. |
Quaterniond |
rotateZYX(double angleZ,
double angleY,
double angleX,
Quaterniond dest)
Apply a rotation to
this quaternion rotating the given radians about the cartesian base unit axes,
called the euler angles, using the rotation sequence ZYX and store the result in dest. |
Quaterniond |
scale(double factor,
Quaterniond dest)
Apply scaling to this quaternion, which results in any vector transformed by the quaternion to change
its length by the given
factor, and store the result in dest. |
Quaterniond |
slerp(Quaterniondc target,
double alpha,
Quaterniond dest)
|
Vector3d |
transform(double x,
double y,
double z,
Vector3d dest)
Transform the given vector
(x, y, z) by this quaternion and store the result in dest. |
Vector4d |
transform(double x,
double y,
double z,
Vector4d dest)
Transform the given vector
(x, y, z) by this quaternion and store the result in dest. |
Vector3d |
transform(Vector3d vec)
Transform the given vector by this quaternion.
|
Vector3d |
transform(Vector3dc vec,
Vector3d dest)
Transform the given vector by this quaternion and store the result in
dest. |
Vector4d |
transform(Vector4d vec)
Transform the given vector by this quaternion.
|
Vector4d |
transform(Vector4dc vec,
Vector4d dest)
Transform the given vector by this quaternion and store the result in
dest. |
Vector3d |
transformPositiveX(Vector3d dest)
Transform the vector
(1, 0, 0) by this quaternion. |
Vector4d |
transformPositiveX(Vector4d dest)
Transform the vector
(1, 0, 0) by this quaternion. |
Vector3d |
transformPositiveY(Vector3d dest)
Transform the vector
(0, 1, 0) by this quaternion. |
Vector4d |
transformPositiveY(Vector4d dest)
Transform the vector
(0, 1, 0) by this quaternion. |
Vector3d |
transformPositiveZ(Vector3d dest)
Transform the vector
(0, 0, 1) by this quaternion. |
Vector4d |
transformPositiveZ(Vector4d dest)
Transform the vector
(0, 0, 1) by this quaternion. |
Vector3d |
transformUnitPositiveX(Vector3d dest)
Transform the vector
(1, 0, 0) by this unit quaternion. |
Vector4d |
transformUnitPositiveX(Vector4d dest)
Transform the vector
(1, 0, 0) by this unit quaternion. |
Vector3d |
transformUnitPositiveY(Vector3d dest)
Transform the vector
(0, 1, 0) by this unit quaternion. |
Vector4d |
transformUnitPositiveY(Vector4d dest)
Transform the vector
(0, 1, 0) by this unit quaternion. |
Vector3d |
transformUnitPositiveZ(Vector3d dest)
Transform the vector
(0, 0, 1) by this unit quaternion. |
Vector4d |
transformUnitPositiveZ(Vector4d dest)
Transform the vector
(0, 0, 1) by this unit quaternion. |
double |
w() |
double |
x() |
double |
y() |
double |
z() |
double x()
double y()
double z()
double w()
Quaterniond normalize(Quaterniond dest)
dest.dest - will hold the resultQuaterniond add(double x, double y, double z, double w, Quaterniond dest)
(x, y, z, w) to this quaternion and store the result in dest.x - the x component of the vector party - the y component of the vector partz - the z component of the vector partw - the real/scalar componentdest - will hold the resultQuaterniond add(Quaterniondc q2, Quaterniond dest)
q2 to this quaternion and store the result in dest.q2 - the quaternion to add to thisdest - will hold the resultdouble dot(Quaterniondc otherQuat)
Quaterniond and otherQuat.otherQuat - the other quaterniondouble angle()
Matrix3d get(Matrix3d dest)
this.dest - the matrix to write the rotation intoMatrix3d.set(Quaterniondc)Matrix3f get(Matrix3f dest)
this.dest - the matrix to write the rotation intoMatrix3f.set(Quaterniondc)Matrix4d get(Matrix4d dest)
this.dest - the matrix to write the rotation intoMatrix4d.set(Quaterniondc)Matrix4f get(Matrix4f dest)
this.dest - the matrix to write the rotation intoMatrix4f.set(Quaterniondc)Quaterniond get(Quaterniond dest)
Quaterniond to the values of this.dest - the Quaterniond to setQuaterniond mul(Quaterniondc q, Quaterniond dest)
q and store the result in dest.
If T is this and Q is the given
quaternion, then the resulting quaternion R is:
R = T * Q
So, this method uses post-multiplication like the matrix classes, resulting in a
vector to be transformed by Q first, and then by T.
q - the quaternion to multiply this bydest - will hold the resultQuaterniond mul(double qx, double qy, double qz, double qw, Quaterniond dest)
(qx, qy, qz, qw) and store the result in dest.
If T is this and Q is the given
quaternion, then the resulting quaternion R is:
R = T * Q
So, this method uses post-multiplication like the matrix classes, resulting in a
vector to be transformed by Q first, and then by T.
qx - the x component of the quaternion to multiply this byqy - the y component of the quaternion to multiply this byqz - the z component of the quaternion to multiply this byqw - the w component of the quaternion to multiply this bydest - will hold the resultQuaterniond premul(Quaterniondc q, Quaterniond dest)
q and store the result in dest.
If T is this and Q is the given quaternion, then the resulting quaternion R is:
R = Q * T
So, this method uses pre-multiplication, resulting in a vector to be transformed by T first, and then by Q.
q - the quaternion to pre-multiply this bydest - will hold the resultQuaterniond premul(double qx, double qy, double qz, double qw, Quaterniond dest)
(qx, qy, qz, qw) and store the result in dest.
If T is this and Q is the given quaternion, then the resulting quaternion R is:
R = Q * T
So, this method uses pre-multiplication, resulting in a vector to be transformed by T first, and then by Q.
qx - the x component of the quaternion to multiply this byqy - the y component of the quaternion to multiply this byqz - the z component of the quaternion to multiply this byqw - the w component of the quaternion to multiply this bydest - will hold the resultVector3d transform(Vector3d vec)
vec - the vector to transformVector3d transformPositiveX(Vector3d dest)
(1, 0, 0) by this quaternion.dest - will hold the resultVector4d transformPositiveX(Vector4d dest)
(1, 0, 0) by this quaternion.
Only the first three components of the given 4D vector are modified.
dest - will hold the resultVector3d transformUnitPositiveX(Vector3d dest)
(1, 0, 0) by this unit quaternion.
This method is only applicable when this is a unit quaternion.
Reference: https://de.mathworks.com/
dest - will hold the resultVector4d transformUnitPositiveX(Vector4d dest)
(1, 0, 0) by this unit quaternion.
Only the first three components of the given 4D vector are modified.
This method is only applicable when this is a unit quaternion.
Reference: https://de.mathworks.com/
dest - will hold the resultVector3d transformPositiveY(Vector3d dest)
(0, 1, 0) by this quaternion.dest - will hold the resultVector4d transformPositiveY(Vector4d dest)
(0, 1, 0) by this quaternion.
Only the first three components of the given 4D vector are modified.
dest - will hold the resultVector3d transformUnitPositiveY(Vector3d dest)
(0, 1, 0) by this unit quaternion.
This method is only applicable when this is a unit quaternion.
Reference: https://de.mathworks.com/
dest - will hold the resultVector4d transformUnitPositiveY(Vector4d dest)
(0, 1, 0) by this unit quaternion.
Only the first three components of the given 4D vector are modified.
This method is only applicable when this is a unit quaternion.
Reference: https://de.mathworks.com/
dest - will hold the resultVector3d transformPositiveZ(Vector3d dest)
(0, 0, 1) by this quaternion.dest - will hold the resultVector4d transformPositiveZ(Vector4d dest)
(0, 0, 1) by this quaternion.
Only the first three components of the given 4D vector are modified.
dest - will hold the resultVector3d transformUnitPositiveZ(Vector3d dest)
(0, 0, 1) by this unit quaternion.
This method is only applicable when this is a unit quaternion.
Reference: https://de.mathworks.com/
dest - will hold the resultVector4d transformUnitPositiveZ(Vector4d dest)
(0, 0, 1) by this unit quaternion.
Only the first three components of the given 4D vector are modified.
This method is only applicable when this is a unit quaternion.
Reference: https://de.mathworks.com/
dest - will hold the resultVector4d transform(Vector4d vec)
Only the first three components of the given 4D vector are being used and modified.
vec - the vector to transformVector3d transform(Vector3dc vec, Vector3d dest)
dest.
This will apply the rotation described by this quaternion to the given vector.vec - the vector to transformdest - will hold the resultVector3d transform(double x, double y, double z, Vector3d dest)
(x, y, z) by this quaternion and store the result in dest.
This will apply the rotation described by this quaternion to the given vector.x - the x coordinate of the vector to transformy - the y coordinate of the vector to transformz - the z coordinate of the vector to transformdest - will hold the resultVector4d transform(Vector4dc vec, Vector4d dest)
dest.
This will apply the rotation described by this quaternion to the given vector.
Only the first three components of the given 4D vector are being used and set on the destination.
vec - the vector to transformdest - will hold the resultVector4d transform(double x, double y, double z, Vector4d dest)
(x, y, z) by this quaternion and store the result in dest.
This will apply the rotation described by this quaternion to the given vector.x - the x coordinate of the vector to transformy - the y coordinate of the vector to transformz - the z coordinate of the vector to transformdest - will hold the resultQuaterniond invert(Quaterniond dest)
normalized result in dest.
If this quaternion is already normalized, then conjugate(Quaterniond) should be used instead.
dest - will hold the resultconjugate(Quaterniond)Quaterniond div(Quaterniondc b, Quaterniond dest)
this quaternion by b and store the result in dest.
The division expressed using the inverse is performed in the following way:
dest = this * b^-1, where b^-1 is the inverse of b.
b - the Quaterniondc to divide this bydest - will hold the resultQuaterniond conjugate(Quaterniond dest)
dest.dest - will hold the resultdouble lengthSquared()
Quaterniond slerp(Quaterniondc target, double alpha, Quaterniond dest)
this unit quaternion and the specified
target unit quaternion using spherical linear interpolation using the specified interpolation factor alpha,
and store the result in dest.
This method resorts to non-spherical linear interpolation when the absolute dot product between this and target is
below 1E-6.
Reference: http://fabiensanglard.net
target - the target of the interpolation, which should be reached with alpha = 1.0alpha - the interpolation factor, within [0..1]dest - will hold the resultQuaterniond scale(double factor, Quaterniond dest)
factor, and store the result in dest.factor - the scaling factordest - will hold the resultQuaterniond integrate(double dt, double vx, double vy, double vz, Quaterniond dest)
(vx, vy, vz) around the x, y and z axis, respectively,
with respect to the given elapsed time delta dt and add the differentiate rotation to the rotation represented by this quaternion
and store the result into dest.
This method pre-multiplies the rotation given by dt and (vx, vy, vz) by this, so
the angular velocities are always relative to the local coordinate system of the rotation represented by this quaternion.
This method is equivalent to calling: rotateLocal(dt * vx, dt * vy, dt * vz, dest)
Reference: http://physicsforgames.blogspot.de/
dt - the delta timevx - the angular velocity around the x axisvy - the angular velocity around the y axisvz - the angular velocity around the z axisdest - will hold the resultQuaterniond nlerp(Quaterniondc q, double factor, Quaterniond dest)
this and the given quaternion q
and store the result in dest.
Reference: http://fabiensanglard.net
q - the other quaternionfactor - the interpolation factor. It is between 0.0 and 1.0dest - will hold the resultQuaterniond nlerpIterative(Quaterniondc q, double alpha, double dotThreshold, Quaterniond dest)
this and the given quaternion q
iteratively and store the result in dest.
This method performs a series of small-step nlerp interpolations to avoid doing a costly spherical linear interpolation, like
slerp,
by subdividing the rotation arc between this and q via non-spherical linear interpolations as long as
the absolute dot product of this and q is greater than the given dotThreshold parameter.
Thanks to @theagentd at http://www.java-gaming.org/ for providing the code.
q - the other quaternionalpha - the interpolation factor, between 0.0 and 1.0dotThreshold - the threshold for the dot product of this and q above which this method performs another iteration
of a small-step linear interpolationdest - will hold the resultQuaterniond lookAlong(Vector3dc dir, Vector3dc up, Quaterniond dest)
dest.
Because there are multiple possibilities for such a rotation, this method will choose the one that ensures the given up direction to remain
parallel to the plane spanned by the up and dir vectors.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
Reference: http://answers.unity3d.com
dir - the direction to map to the positive Z axisup - the vector which will be mapped to a vector parallel to the plane
spanned by the given dir and updest - will hold the resultlookAlong(double, double, double, double, double, double, Quaterniond)Quaterniond lookAlong(double dirX, double dirY, double dirZ, double upX, double upY, double upZ, Quaterniond dest)
dest.
Because there are multiple possibilities for such a rotation, this method will choose the one that ensures the given up direction to remain
parallel to the plane spanned by the up and dir vectors.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
Reference: http://answers.unity3d.com
dirX - the x-coordinate of the direction to look alongdirY - the y-coordinate of the direction to look alongdirZ - the z-coordinate of the direction to look alongupX - the x-coordinate of the up vectorupY - the y-coordinate of the up vectorupZ - the z-coordinate of the up vectordest - will hold the resultQuaterniond difference(Quaterniondc other, Quaterniond dest)
this and the other quaternion
and store the result in dest.
The difference is the rotation that has to be applied to get from
this rotation to other. If T is this, Q
is other and D is the computed difference, then the following equation holds:
T * D = Q
It is defined as: D = T^-1 * Q, where T^-1 denotes the inverse of T.
other - the other quaterniondest - will hold the resultQuaterniond rotateTo(double fromDirX, double fromDirY, double fromDirZ, double toDirX, double toDirY, double toDirZ, Quaterniond dest)
this that rotates the fromDir vector to point along toDir and
store the result in dest.
Since there can be multiple possible rotations, this method chooses the one with the shortest arc.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
Reference: stackoverflow.com
fromDirX - the x-coordinate of the direction to rotate into the destination directionfromDirY - the y-coordinate of the direction to rotate into the destination directionfromDirZ - the z-coordinate of the direction to rotate into the destination directiontoDirX - the x-coordinate of the direction to rotate totoDirY - the y-coordinate of the direction to rotate totoDirZ - the z-coordinate of the direction to rotate todest - will hold the resultQuaterniond rotateTo(Vector3dc fromDir, Vector3dc toDir, Quaterniond dest)
this that rotates the fromDir vector to point along toDir and
store the result in dest.
Because there can be multiple possible rotations, this method chooses the one with the shortest arc.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
fromDir - the starting directiontoDir - the destination directiondest - will hold the resultrotateTo(double, double, double, double, double, double, Quaterniond)Quaterniond rotateX(double angle, Quaterniond dest)
this quaternion rotating the given radians about the x axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angle - the angle in radians to rotate about the x axisdest - will hold the resultQuaterniond rotateY(double angle, Quaterniond dest)
this quaternion rotating the given radians about the y axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angle - the angle in radians to rotate about the y axisdest - will hold the resultQuaterniond rotateZ(double angle, Quaterniond dest)
this quaternion rotating the given radians about the z axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angle - the angle in radians to rotate about the z axisdest - will hold the resultQuaterniond rotateLocalX(double angle, Quaterniond dest)
this quaternion rotating the given radians about the local x axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be R * Q. So when transforming a
vector v with the new quaternion by using R * Q * v, the
rotation represented by this will be applied first!
angle - the angle in radians to rotate about the local x axisdest - will hold the resultQuaterniond rotateLocalY(double angle, Quaterniond dest)
this quaternion rotating the given radians about the local y axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be R * Q. So when transforming a
vector v with the new quaternion by using R * Q * v, the
rotation represented by this will be applied first!
angle - the angle in radians to rotate about the local y axisdest - will hold the resultQuaterniond rotateLocalZ(double angle, Quaterniond dest)
this quaternion rotating the given radians about the local z axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be R * Q. So when transforming a
vector v with the new quaternion by using R * Q * v, the
rotation represented by this will be applied first!
angle - the angle in radians to rotate about the local z axisdest - will hold the resultQuaterniond rotateXYZ(double angleX, double angleY, double angleZ, Quaterniond dest)
this quaternion rotating the given radians about the cartesian base unit axes,
called the euler angles using rotation sequence XYZ and store the result in dest.
This method is equivalent to calling: rotateX(angleX, dest).rotateY(angleY).rotateZ(angleZ)
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angleX - the angle in radians to rotate about the x axisangleY - the angle in radians to rotate about the y axisangleZ - the angle in radians to rotate about the z axisdest - will hold the resultQuaterniond rotateZYX(double angleZ, double angleY, double angleX, Quaterniond dest)
this quaternion rotating the given radians about the cartesian base unit axes,
called the euler angles, using the rotation sequence ZYX and store the result in dest.
This method is equivalent to calling: rotateZ(angleZ, dest).rotateY(angleY).rotateX(angleX)
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angleZ - the angle in radians to rotate about the z axisangleY - the angle in radians to rotate about the y axisangleX - the angle in radians to rotate about the x axisdest - will hold the resultQuaterniond rotateYXZ(double angleY, double angleX, double angleZ, Quaterniond dest)
this quaternion rotating the given radians about the cartesian base unit axes,
called the euler angles, using the rotation sequence YXZ and store the result in dest.
This method is equivalent to calling: rotateY(angleY, dest).rotateX(angleX).rotateZ(angleZ)
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angleY - the angle in radians to rotate about the y axisangleX - the angle in radians to rotate about the x axisangleZ - the angle in radians to rotate about the z axisdest - will hold the resultVector3d getEulerAnglesXYZ(Vector3d eulerAngles)
XYZ of this quaternion and store them in the
provided parameter eulerAngles.eulerAngles - will hold the euler angles in radiansQuaterniond rotateAxis(double angle, double axisX, double axisY, double axisZ, Quaterniond dest)
this quaternion rotating the given radians about the specified axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angle - the angle in radians to rotate about the specified axisaxisX - the x coordinate of the rotation axisaxisY - the y coordinate of the rotation axisaxisZ - the z coordinate of the rotation axisdest - will hold the resultQuaterniond rotateAxis(double angle, Vector3dc axis, Quaterniond dest)
this quaternion rotating the given radians about the specified axis
and store the result in dest.
If Q is this quaternion and R the quaternion representing the
specified rotation, then the new quaternion will be Q * R. So when transforming a
vector v with the new quaternion by using Q * R * v, the
rotation added by this method will be applied first!
angle - the angle in radians to rotate about the specified axisaxis - the rotation axisdest - will hold the resultrotateAxis(double, double, double, double, Quaterniond)Vector3d positiveX(Vector3d dir)
+X before the rotation transformation represented by this quaternion is applied.
This method is equivalent to the following code:
Quaterniond inv = new Quaterniond(this).invert(); inv.transform(dir.set(1, 0, 0));
dir - will hold the direction of +XVector3d normalizedPositiveX(Vector3d dir)
+X before the rotation transformation represented by this normalized quaternion is applied.
The quaternion must be normalized for this method to work.
This method is equivalent to the following code:
Quaterniond inv = new Quaterniond(this).conjugate(); inv.transform(dir.set(1, 0, 0));
dir - will hold the direction of +XVector3d positiveY(Vector3d dir)
+Y before the rotation transformation represented by this quaternion is applied.
This method is equivalent to the following code:
Quaterniond inv = new Quaterniond(this).invert(); inv.transform(dir.set(0, 1, 0));
dir - will hold the direction of +YVector3d normalizedPositiveY(Vector3d dir)
+Y before the rotation transformation represented by this normalized quaternion is applied.
The quaternion must be normalized for this method to work.
This method is equivalent to the following code:
Quaterniond inv = new Quaterniond(this).conjugate(); inv.transform(dir.set(0, 1, 0));
dir - will hold the direction of +YVector3d positiveZ(Vector3d dir)
+Z before the rotation transformation represented by this quaternion is applied.
This method is equivalent to the following code:
Quaterniond inv = new Quaterniond(this).invert(); inv.transform(dir.set(0, 0, 1));
dir - will hold the direction of +ZVector3d normalizedPositiveZ(Vector3d dir)
+Z before the rotation transformation represented by this normalized quaternion is applied.
The quaternion must be normalized for this method to work.
This method is equivalent to the following code:
Quaterniond inv = new Quaterniond(this).conjugate(); inv.transform(dir.set(0, 0, 1));
dir - will hold the direction of +ZCopyright © 2015–2019 JOML. All rights reserved.