Class Quaternionf
- java.lang.Object
-
- org.joml.Quaternionf
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable,java.lang.Cloneable,Quaternionfc
public class Quaternionf extends java.lang.Object implements java.io.Externalizable, java.lang.Cloneable, Quaternionfc
Quaternion of 4 single-precision floats which can represent rotation and uniform scaling.- Author:
- Richard Greenlees, Kai Burjack
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Quaternionf()Create a newQuaternionfand initialize it with(x=0, y=0, z=0, w=1), where(x, y, z)is the vector part of the quaternion andwis the real/scalar part.Quaternionf(double x, double y, double z, double w)Create a newQuaternionfand initialize its components to the given values.Quaternionf(float x, float y, float z, float w)Create a newQuaternionfand initialize its components to the given values.Quaternionf(AxisAngle4d axisAngle)Create a newQuaterniondwhich represents the rotation of the givenAxisAngle4d.Quaternionf(AxisAngle4f axisAngle)Create a newQuaternionfwhich represents the rotation of the givenAxisAngle4f.Quaternionf(Quaterniondc source)Create a newQuaternionfand initialize its components to the same values as the givenQuaterniondc.Quaternionf(Quaternionfc source)Create a newQuaternionfand initialize its components to the same values as the givenQuaternionfc.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Quaternionfadd(float x, float y, float z, float w)Add the quaternion(x, y, z, w)to this quaternion.Quaternionfadd(float x, float y, float z, float w, Quaternionf dest)Add the quaternion(x, y, z, w)to this quaternion and store the result indest.Quaternionfadd(Quaternionfc q2)Addq2to this quaternion.Quaternionfadd(Quaternionfc q2, Quaternionf dest)Addq2to this quaternion and store the result indest.floatangle()Return the angle in radians represented by this normalized quaternion rotation.java.lang.Objectclone()Quaternionfconjugate()Conjugate this quaternion.Quaternionfconjugate(Quaternionf dest)Conjugate this quaternion and store the result indest.QuaternionfconjugateBy(Quaternionfc q)Conjugatethisby the given quaternionqby computingq * this * q^-1.QuaternionfconjugateBy(Quaternionfc q, Quaternionf dest)Conjugatethisby the given quaternionqby computingq * this * q^-1and store the result intodest.Quaternionfdifference(Quaternionf other)Compute the difference betweenthisand theotherquaternion and store the result inthis.Quaternionfdifference(Quaternionfc other, Quaternionf dest)Compute the difference betweenthisand theotherquaternion and store the result indest.Quaternionfdiv(Quaternionfc b)Dividethisquaternion byb.Quaternionfdiv(Quaternionfc b, Quaternionf dest)Dividethisquaternion byband store the result indest.floatdot(Quaternionf otherQuat)Return the dot of this quaternion andotherQuat.booleanequals(float x, float y, float z, float w)booleanequals(java.lang.Object obj)booleanequals(Quaternionfc q, float delta)Compare the quaternion components ofthisquaternion with the given quaternion using the givendeltaand return whether all of them are equal within a maximum difference ofdelta.QuaternionffromAxisAngleDeg(float axisX, float axisY, float axisZ, float angle)Set this quaternion to be a representation of the supplied axis and angle (in degrees).QuaternionffromAxisAngleDeg(Vector3fc axis, float angle)Set this quaternion to be a representation of the supplied axis and angle (in degrees).QuaternionffromAxisAngleRad(float axisX, float axisY, float axisZ, float angle)Set this quaternion to be a representation of the supplied axis and angle (in radians).QuaternionffromAxisAngleRad(Vector3fc axis, float angle)Set this quaternion to be a representation of the supplied axis and angle (in radians).AxisAngle4dget(AxisAngle4d dest)Set the givenAxisAngle4dto represent the rotation ofthisquaternion.AxisAngle4fget(AxisAngle4f dest)Set the givenAxisAngle4fto represent the rotation ofthisquaternion.Matrix3dget(Matrix3d dest)Set the given destination matrix to the rotation represented bythis.Matrix3fget(Matrix3f dest)Set the given destination matrix to the rotation represented bythis.Matrix4dget(Matrix4d dest)Set the given destination matrix to the rotation represented bythis.Matrix4fget(Matrix4f dest)Set the given destination matrix to the rotation represented bythis.Matrix4x3dget(Matrix4x3d dest)Set the given destination matrix to the rotation represented bythis.Matrix4x3fget(Matrix4x3f dest)Set the given destination matrix to the rotation represented bythis.Quaterniondget(Quaterniond dest)Set the givenQuaterniondto the values ofthis.Quaternionfget(Quaternionf dest)Set the givenQuaternionfto the values ofthis.java.nio.ByteBuffergetAsMatrix3f(java.nio.ByteBuffer dest)Store the 3x3 float matrix representation ofthisquaternion in column-major order into the givenByteBuffer.java.nio.FloatBuffergetAsMatrix3f(java.nio.FloatBuffer dest)Store the 3x3 float matrix representation ofthisquaternion in column-major order into the givenFloatBuffer.java.nio.ByteBuffergetAsMatrix4f(java.nio.ByteBuffer dest)Store the 4x4 float matrix representation ofthisquaternion in column-major order into the givenByteBuffer.java.nio.FloatBuffergetAsMatrix4f(java.nio.FloatBuffer dest)Store the 4x4 float matrix representation ofthisquaternion in column-major order into the givenFloatBuffer.java.nio.ByteBuffergetAsMatrix4x3f(java.nio.ByteBuffer dest)Store the 4x3 float matrix representation ofthisquaternion in column-major order into the givenByteBuffer.java.nio.FloatBuffergetAsMatrix4x3f(java.nio.FloatBuffer dest)Store the 4x3 float matrix representation ofthisquaternion in column-major order into the givenFloatBuffer.Vector3fgetEulerAnglesXYZ(Vector3f eulerAngles)Get the euler angles in radians in rotation sequenceXYZof this quaternion and store them in the provided parametereulerAngles.Vector3fgetEulerAnglesYXZ(Vector3f eulerAngles)Get the euler angles in radians in rotation sequenceYXZof this quaternion and store them in the provided parametereulerAngles.Vector3fgetEulerAnglesZXY(Vector3f eulerAngles)Get the euler angles in radians in rotation sequenceZXYof this quaternion and store them in the provided parametereulerAngles.Vector3fgetEulerAnglesZYX(Vector3f eulerAngles)Get the euler angles in radians in rotation sequenceZYXof this quaternion and store them in the provided parametereulerAngles.inthashCode()Quaternionfidentity()Set this quaternion to the identity.Quaternionfintegrate(float dt, float vx, float vy, float vz)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 deltadtand add the differentiate rotation to the rotation represented by this quaternion.Quaternionfintegrate(float dt, float vx, float vy, float vz, Quaternionf 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 deltadtand add the differentiate rotation to the rotation represented by this quaternion and store the result intodest.Quaternionfinvert()Invert this quaternion andnormalizeit.Quaternionfinvert(Quaternionf dest)Invert this quaternion and store thenormalizedresult indest.booleanisFinite()Determine whether all components are finite floating-point values, that is, they are notNaNand notinfinity.floatlengthSquared()Return the square of the length of this quaternion.QuaternionflookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ)Apply a rotation to this quaternion that maps the given direction to the positive Z axis.QuaternionflookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Quaternionf dest)Apply a rotation to this quaternion that maps the given direction to the positive Z axis, and store the result indest.QuaternionflookAlong(Vector3fc dir, Vector3fc up)Apply a rotation to this quaternion that maps the given direction to the positive Z axis.QuaternionflookAlong(Vector3fc dir, Vector3fc up, Quaternionf dest)Apply a rotation to this quaternion that maps the given direction to the positive Z axis, and store the result indest.Quaternionfmul(float f)Multiply this quaternion by the given scalar.Quaternionfmul(float qx, float qy, float qz, float qw)Multiply this quaternion by the quaternion represented via(qx, qy, qz, qw).Quaternionfmul(float qx, float qy, float qz, float qw, Quaternionf dest)Multiply this quaternion by the quaternion represented via(qx, qy, qz, qw)and store the result indest.Quaternionfmul(float f, Quaternionf dest)Multiply this quaternion by the given scalar and store the result indest.Quaternionfmul(Quaternionfc q)Multiply this quaternion byq.Quaternionfmul(Quaternionfc q, Quaternionf dest)Multiply this quaternion byqand store the result indest.static Quaternionfcnlerp(Quaternionfc[] qs, float[] weights, Quaternionf dest)Interpolate between all of the quaternions given inqsvia non-spherical linear interpolation using the specified interpolation factorsweights, and store the result indest.Quaternionfnlerp(Quaternionfc q, float factor)Compute a linear (non-spherical) interpolation ofthisand the given quaternionqand store the result inthis.Quaternionfnlerp(Quaternionfc q, float factor, Quaternionf dest)Compute a linear (non-spherical) interpolation ofthisand the given quaternionqand store the result indest.static QuaternionfcnlerpIterative(Quaternionf[] qs, float[] weights, float dotThreshold, Quaternionf dest)Interpolate between all of the quaternions given inqsvia iterative non-spherical linear interpolation using the specified interpolation factorsweights, and store the result indest.QuaternionfnlerpIterative(Quaternionfc q, float alpha, float dotThreshold)Compute linear (non-spherical) interpolations ofthisand the given quaternionqiteratively and store the result inthis.QuaternionfnlerpIterative(Quaternionfc q, float alpha, float dotThreshold, Quaternionf dest)Compute linear (non-spherical) interpolations ofthisand the given quaternionqiteratively and store the result indest.Quaternionfnormalize()Normalize this quaternion.Quaternionfnormalize(Quaternionf dest)Normalize this quaternion and store the result indest.Vector3fnormalizedPositiveX(Vector3f dir)Obtain the direction of+Xbefore the rotation transformation represented bythisnormalized quaternion is applied.Vector3fnormalizedPositiveY(Vector3f dir)Obtain the direction of+Ybefore the rotation transformation represented bythisnormalized quaternion is applied.Vector3fnormalizedPositiveZ(Vector3f dir)Obtain the direction of+Zbefore the rotation transformation represented bythisnormalized quaternion is applied.Vector3fpositiveX(Vector3f dir)Obtain the direction of+Xbefore the rotation transformation represented bythisquaternion is applied.Vector3fpositiveY(Vector3f dir)Obtain the direction of+Ybefore the rotation transformation represented bythisquaternion is applied.Vector3fpositiveZ(Vector3f dir)Obtain the direction of+Zbefore the rotation transformation represented bythisquaternion is applied.Quaternionfpremul(float qx, float qy, float qz, float qw)Pre-multiply this quaternion by the quaternion represented via(qx, qy, qz, qw).Quaternionfpremul(float qx, float qy, float qz, float qw, Quaternionf dest)Pre-multiply this quaternion by the quaternion represented via(qx, qy, qz, qw)and store the result indest.Quaternionfpremul(Quaternionfc q)Pre-multiply this quaternion byq.Quaternionfpremul(Quaternionfc q, Quaternionf dest)Pre-multiply this quaternion byqand store the result indest.voidreadExternal(java.io.ObjectInput in)QuaternionfrotateAxis(float angle, float axisX, float axisY, float axisZ)Apply a rotation tothisquaternion rotating the given radians about the specified axis.QuaternionfrotateAxis(float angle, float axisX, float axisY, float axisZ, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the specified axis and store the result indest.QuaternionfrotateAxis(float angle, Vector3fc axis)Apply a rotation tothisquaternion rotating the given radians about the specified axis.QuaternionfrotateAxis(float angle, Vector3fc axis, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the specified axis and store the result indest.QuaternionfrotateLocalX(float angle)Apply a rotation tothisquaternion rotating the given radians about the local x axis.QuaternionfrotateLocalX(float angle, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the local x axis and store the result indest.QuaternionfrotateLocalY(float angle)Apply a rotation tothisquaternion rotating the given radians about the local y axis.QuaternionfrotateLocalY(float angle, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the local y axis and store the result indest.QuaternionfrotateLocalZ(float angle)Apply a rotation tothisquaternion rotating the given radians about the local z axis.QuaternionfrotateLocalZ(float angle, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the local z axis and store the result indest.QuaternionfrotateTo(float fromDirX, float fromDirY, float fromDirZ, float toDirX, float toDirY, float toDirZ)Apply a rotation tothisthat rotates thefromDirvector to point alongtoDir.QuaternionfrotateTo(float fromDirX, float fromDirY, float fromDirZ, float toDirX, float toDirY, float toDirZ, Quaternionf dest)Apply a rotation tothisthat rotates thefromDirvector to point alongtoDirand store the result indest.QuaternionfrotateTo(Vector3fc fromDir, Vector3fc toDir)Apply a rotation tothisthat rotates thefromDirvector to point alongtoDir.QuaternionfrotateTo(Vector3fc fromDir, Vector3fc toDir, Quaternionf dest)Apply a rotation tothisthat rotates thefromDirvector to point alongtoDirand store the result indest.QuaternionfrotateX(float angle)Apply a rotation tothisquaternion rotating the given radians about the x axis.QuaternionfrotateX(float angle, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the x axis and store the result indest.QuaternionfrotateXYZ(float angleX, float angleY, float angleZ)Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles using rotation sequenceXYZ.QuaternionfrotateXYZ(float angleX, float angleY, float angleZ, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles using rotation sequenceXYZand store the result indest.QuaternionfrotateY(float angle)Apply a rotation tothisquaternion rotating the given radians about the y axis.QuaternionfrotateY(float angle, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the y axis and store the result indest.QuaternionfrotateYXZ(float angleY, float angleX, float angleZ)Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceYXZ.QuaternionfrotateYXZ(float angleY, float angleX, float angleZ, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceYXZand store the result indest.QuaternionfrotateZ(float angle)Apply a rotation tothisquaternion rotating the given radians about the z axis.QuaternionfrotateZ(float angle, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the z axis and store the result indest.QuaternionfrotateZYX(float angleZ, float angleY, float angleX)Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceZYX.QuaternionfrotateZYX(float angleZ, float angleY, float angleX, Quaternionf dest)Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceZYXand store the result indest.QuaternionfrotationAxis(float angle, float axisX, float axisY, float axisZ)Set this quaternion to a rotation of the given angle in radians about the supplied axis.QuaternionfrotationAxis(float angle, Vector3fc axis)Set this quaternion to a rotation of the given angle in radians about the supplied axis.QuaternionfrotationAxis(AxisAngle4f axisAngle)Set thisQuaternionfto a rotation of the given angle in radians about the supplied axis, all of which are specified via theAxisAngle4f.QuaternionfrotationTo(float fromDirX, float fromDirY, float fromDirZ, float toDirX, float toDirY, float toDirZ)Setthisquaternion to a rotation that rotates thefromDirvector to point alongtoDir.QuaternionfrotationTo(Vector3fc fromDir, Vector3fc toDir)Setthisquaternion to a rotation that rotates thefromDirvector to point alongtoDir.QuaternionfrotationX(float angle)Set this quaternion to represent a rotation of the given radians about the x axis.QuaternionfrotationXYZ(float angleX, float angleY, float angleZ)Set this quaternion from the supplied euler angles (in radians) with rotation order XYZ.QuaternionfrotationY(float angle)Set this quaternion to represent a rotation of the given radians about the y axis.QuaternionfrotationYXZ(float angleY, float angleX, float angleZ)Set this quaternion from the supplied euler angles (in radians) with rotation order YXZ.QuaternionfrotationZ(float angle)Set this quaternion to represent a rotation of the given radians about the z axis.QuaternionfrotationZYX(float angleZ, float angleY, float angleX)Set this quaternion from the supplied euler angles (in radians) with rotation order ZYX.Quaternionfscale(float factor)Apply scaling to this quaternion, which results in any vector transformed by this quaternion to change its length by the givenfactor.Quaternionfscale(float factor, Quaternionf dest)Apply scaling to this quaternion, which results in any vector transformed by the quaternion to change its length by the givenfactor, and store the result indest.Quaternionfscaling(float factor)Set this quaternion to represent scaling, which results in a transformed vector to change its length by the givenfactor.Quaternionfset(float x, float y, float z, float w)Set this quaternion to the given values.Quaternionfset(AxisAngle4d axisAngle)Set this quaternion to a rotation equivalent to the givenAxisAngle4d.Quaternionfset(AxisAngle4f axisAngle)Set this quaternion to a rotation equivalent to the givenAxisAngle4f.Quaternionfset(Quaterniondc q)Set this quaternion to be a copy ofq.Quaternionfset(Quaternionfc q)Set this quaternion to be a copy ofq.QuaternionfsetAngleAxis(double angle, double x, double y, double z)Set this quaternion to a rotation equivalent to the supplied axis and angle (in radians).QuaternionfsetAngleAxis(float angle, float x, float y, float z)Set this quaternion to a rotation equivalent to the supplied axis and angle (in radians).QuaternionfsetFromNormalized(Matrix3dc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromNormalized(Matrix3fc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromNormalized(Matrix4dc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromNormalized(Matrix4fc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromNormalized(Matrix4x3dc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromNormalized(Matrix4x3fc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromUnnormalized(Matrix3dc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromUnnormalized(Matrix3fc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromUnnormalized(Matrix4dc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromUnnormalized(Matrix4fc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromUnnormalized(Matrix4x3dc mat)Set this quaternion to be a representation of the rotational component of the given matrix.QuaternionfsetFromUnnormalized(Matrix4x3fc mat)Set this quaternion to be a representation of the rotational component of the given matrix.static Quaternionfcslerp(Quaternionf[] qs, float[] weights, Quaternionf dest)Interpolate between all of the quaternions given inqsvia spherical linear interpolation using the specified interpolation factorsweights, and store the result indest.Quaternionfslerp(Quaternionfc target, float alpha)Quaternionfslerp(Quaternionfc target, float alpha, Quaternionf dest)java.lang.StringtoString()Return a string representation of this quaternion.java.lang.StringtoString(java.text.NumberFormat formatter)Return a string representation of this quaternion by formatting the components with the givenNumberFormat.Vector3dtransform(double x, double y, double z, Vector3d dest)Transform the given vector(x, y, z)by this quaternion and store the result indest.Vector4dtransform(double x, double y, double z, Vector4d dest)Transform the given vector(x, y, z)by this quaternion and store the result indest.Vector3dtransform(float x, float y, float z, Vector3d dest)Transform the given vector(x, y, z)by this quaternion and store the result indest.Vector3ftransform(float x, float y, float z, Vector3f dest)Transform the given vector(x, y, z)by this quaternion and store the result indest.Vector4ftransform(float x, float y, float z, Vector4f dest)Transform the given vector(x, y, z)by this quaternion and store the result indest.Vector3dtransform(Vector3d vec)Transform the given vector by this quaternion.Vector3dtransform(Vector3dc vec, Vector3d dest)Transform the given vector by this quaternion and store the result indest.Vector3ftransform(Vector3f vec)Transform the given vector by this quaternion.Vector3ftransform(Vector3fc vec, Vector3f dest)Transform the given vector by this quaternion and store the result indest.Vector4dtransform(Vector4d vec)Transform the given vector by this quaternion.Vector4dtransform(Vector4dc vec, Vector4d dest)Transform the given vector by this quaternion and store the result indest.Vector4ftransform(Vector4f vec)Transform the given vector by this quaternion.Vector4ftransform(Vector4fc vec, Vector4f dest)Transform the given vector by this quaternion and store the result indest.Vector3dtransformInverse(double x, double y, double z, Vector3d dest)Transform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.Vector4dtransformInverse(double x, double y, double z, Vector4d dest)Transform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.Vector3dtransformInverse(float x, float y, float z, Vector3d dest)Transform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.Vector3ftransformInverse(float x, float y, float z, Vector3f dest)Transform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.Vector4ftransformInverse(float x, float y, float z, Vector4f dest)Transform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.Vector3dtransformInverse(Vector3d vec)Transform the given vector by the inverse of this quaternion.Vector3dtransformInverse(Vector3dc vec, Vector3d dest)Transform the given vector by the inverse of this quaternion and store the result indest.Vector3ftransformInverse(Vector3f vec)Transform the given vector by the inverse of this quaternion.Vector3ftransformInverse(Vector3fc vec, Vector3f dest)Transform the given vector by the inverse of quaternion and store the result indest.Vector4dtransformInverse(Vector4d vec)Transform the given vector by the inverse of this quaternion.Vector4dtransformInverse(Vector4dc vec, Vector4d dest)Transform the given vector by the inverse of this quaternion and store the result indest.Vector4ftransformInverse(Vector4f vec)Transform the given vector by the inverse of this quaternion.Vector4ftransformInverse(Vector4fc vec, Vector4f dest)Transform the given vector by the inverse of this quaternion and store the result indest.Vector3dtransformInverseUnit(double x, double y, double z, Vector3d dest)Transform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.Vector4dtransformInverseUnit(double x, double y, double z, Vector4d dest)Transform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.Vector3dtransformInverseUnit(float x, float y, float z, Vector3d dest)Transform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.Vector3ftransformInverseUnit(float x, float y, float z, Vector3f dest)Transform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.Vector4ftransformInverseUnit(float x, float y, float z, Vector4f dest)Transform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.Vector3dtransformInverseUnit(Vector3dc vec, Vector3d dest)Transform the given vector by the inverse of this unit quaternion and store the result indest.Vector3ftransformInverseUnit(Vector3f vec)Transform the given vector by the inverse of this unit quaternion.Vector3ftransformInverseUnit(Vector3fc vec, Vector3f dest)Transform the given vector by the inverse of this unit quaternion and store the result indest.Vector4dtransformInverseUnit(Vector4d vec)Transform the given vector by the inverse of this unit quaternion.Vector4dtransformInverseUnit(Vector4dc vec, Vector4d dest)Transform the given vector by the inverse of this unit quaternion and store the result indest.Vector4ftransformInverseUnit(Vector4f vec)Transform the given vector by the inverse of this unit quaternion.Vector4ftransformInverseUnit(Vector4fc vec, Vector4f dest)Transform the given vector by the inverse of this unit quaternion and store the result indest.Vector3dtransformPositiveX(Vector3d dest)Transform the vector(1, 0, 0)by this quaternion.Vector3ftransformPositiveX(Vector3f dest)Transform the vector(1, 0, 0)by this quaternion.Vector4dtransformPositiveX(Vector4d dest)Transform the vector(1, 0, 0)by this quaternion.Vector4ftransformPositiveX(Vector4f dest)Transform the vector(1, 0, 0)by this quaternion.Vector3dtransformPositiveY(Vector3d dest)Transform the vector(0, 1, 0)by this quaternion.Vector3ftransformPositiveY(Vector3f dest)Transform the vector(0, 1, 0)by this quaternion.Vector4dtransformPositiveY(Vector4d dest)Transform the vector(0, 1, 0)by this quaternion.Vector4ftransformPositiveY(Vector4f dest)Transform the vector(0, 1, 0)by this quaternion.Vector3dtransformPositiveZ(Vector3d dest)Transform the vector(0, 0, 1)by this quaternion.Vector3ftransformPositiveZ(Vector3f dest)Transform the vector(0, 0, 1)by this quaternion.Vector4dtransformPositiveZ(Vector4d dest)Transform the vector(0, 0, 1)by this quaternion.Vector4ftransformPositiveZ(Vector4f dest)Transform the vector(0, 0, 1)by this quaternion.Vector3dtransformUnit(double x, double y, double z, Vector3d dest)Transform the given vector(x, y, z)by this unit quaternion and store the result indest.Vector4dtransformUnit(double x, double y, double z, Vector4d dest)Transform the given vector(x, y, z)by this unit quaternion and store the result indest.Vector3dtransformUnit(float x, float y, float z, Vector3d dest)Transform the given vector(x, y, z)by this unit quaternion and store the result indest.Vector3ftransformUnit(float x, float y, float z, Vector3f dest)Transform the given vector(x, y, z)by this unit quaternion and store the result indest.Vector4ftransformUnit(float x, float y, float z, Vector4f dest)Transform the given vector(x, y, z)by this unit quaternion and store the result indest.Vector3dtransformUnit(Vector3dc vec, Vector3d dest)Transform the given vector by this unit quaternion and store the result indest.Vector3ftransformUnit(Vector3f vec)Transform the given vector by this unit quaternion.Vector3ftransformUnit(Vector3fc vec, Vector3f dest)Transform the given vector by this unit quaternion and store the result indest.Vector4dtransformUnit(Vector4d vec)Transform the given vector by this unit quaternion.Vector4dtransformUnit(Vector4dc vec, Vector4d dest)Transform the given vector by this unit quaternion and store the result indest.Vector4ftransformUnit(Vector4f vec)Transform the given vector by this unit quaternion.Vector4ftransformUnit(Vector4fc vec, Vector4f dest)Transform the given vector by this unit quaternion and store the result indest.Vector3dtransformUnitPositiveX(Vector3d dest)Transform the vector(1, 0, 0)by this unit quaternion.Vector3ftransformUnitPositiveX(Vector3f dest)Transform the vector(1, 0, 0)by this unit quaternion.Vector4dtransformUnitPositiveX(Vector4d dest)Transform the vector(1, 0, 0)by this unit quaternion.Vector4ftransformUnitPositiveX(Vector4f dest)Transform the vector(1, 0, 0)by this unit quaternion.Vector3dtransformUnitPositiveY(Vector3d dest)Transform the vector(0, 1, 0)by this unit quaternion.Vector3ftransformUnitPositiveY(Vector3f dest)Transform the vector(0, 1, 0)by this unit quaternion.Vector4dtransformUnitPositiveY(Vector4d dest)Transform the vector(0, 1, 0)by this unit quaternion.Vector4ftransformUnitPositiveY(Vector4f dest)Transform the vector(0, 1, 0)by this unit quaternion.Vector3dtransformUnitPositiveZ(Vector3d dest)Transform the vector(0, 0, 1)by this unit quaternion.Vector3ftransformUnitPositiveZ(Vector3f dest)Transform the vector(0, 0, 1)by this unit quaternion.Vector4dtransformUnitPositiveZ(Vector4d dest)Transform the vector(0, 0, 1)by this unit quaternion.Vector4ftransformUnitPositiveZ(Vector4f dest)Transform the vector(0, 0, 1)by this unit quaternion.floatw()voidwriteExternal(java.io.ObjectOutput out)floatx()floaty()floatz()
-
-
-
Constructor Detail
-
Quaternionf
public Quaternionf()
Create a newQuaternionfand initialize it with(x=0, y=0, z=0, w=1), where(x, y, z)is the vector part of the quaternion andwis the real/scalar part.
-
Quaternionf
public Quaternionf(double x, double y, double z, double w)Create a newQuaternionfand initialize its components to the given values.- Parameters:
x- the first component of the imaginary party- the second component of the imaginary partz- the third component of the imaginary partw- the real part
-
Quaternionf
public Quaternionf(float x, float y, float z, float w)Create a newQuaternionfand initialize its components to the given values.- Parameters:
x- the first component of the imaginary party- the second component of the imaginary partz- the third component of the imaginary partw- the real part
-
Quaternionf
public Quaternionf(Quaternionfc source)
Create a newQuaternionfand initialize its components to the same values as the givenQuaternionfc.- Parameters:
source- theQuaternionfcto take the component values from
-
Quaternionf
public Quaternionf(Quaterniondc source)
Create a newQuaternionfand initialize its components to the same values as the givenQuaterniondc.- Parameters:
source- theQuaterniondcto take the component values from
-
Quaternionf
public Quaternionf(AxisAngle4f axisAngle)
Create a newQuaternionfwhich represents the rotation of the givenAxisAngle4f.- Parameters:
axisAngle- theAxisAngle4f
-
Quaternionf
public Quaternionf(AxisAngle4d axisAngle)
Create a newQuaterniondwhich represents the rotation of the givenAxisAngle4d.- Parameters:
axisAngle- theAxisAngle4d
-
-
Method Detail
-
x
public float x()
- Specified by:
xin interfaceQuaternionfc- Returns:
- the first component of the vector part
-
y
public float y()
- Specified by:
yin interfaceQuaternionfc- Returns:
- the second component of the vector part
-
z
public float z()
- Specified by:
zin interfaceQuaternionfc- Returns:
- the third component of the vector part
-
w
public float w()
- Specified by:
win interfaceQuaternionfc- Returns:
- the real/scalar part of the quaternion
-
normalize
public Quaternionf normalize()
Normalize this quaternion.- Returns:
- this
-
normalize
public Quaternionf normalize(Quaternionf dest)
Description copied from interface:QuaternionfcNormalize this quaternion and store the result indest.- Specified by:
normalizein interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
add
public Quaternionf add(float x, float y, float z, float w)
Add the quaternion(x, y, z, w)to this quaternion.- Parameters:
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 component- Returns:
- this
-
add
public Quaternionf add(float x, float y, float z, float w, Quaternionf dest)
Description copied from interface:QuaternionfcAdd the quaternion(x, y, z, w)to this quaternion and store the result indest.- Specified by:
addin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
add
public Quaternionf add(Quaternionfc q2)
Addq2to this quaternion.- Parameters:
q2- the quaternion to add to this- Returns:
- this
-
add
public Quaternionf add(Quaternionfc q2, Quaternionf dest)
Description copied from interface:QuaternionfcAddq2to this quaternion and store the result indest.- Specified by:
addin interfaceQuaternionfc- Parameters:
q2- the quaternion to add to thisdest- will hold the result- Returns:
- dest
-
dot
public float dot(Quaternionf otherQuat)
Return the dot of this quaternion andotherQuat.- Parameters:
otherQuat- the other quaternion- Returns:
- the dot product
-
angle
public float angle()
Description copied from interface:QuaternionfcReturn the angle in radians represented by this normalized quaternion rotation.This quaternion must be
normalized.- Specified by:
anglein interfaceQuaternionfc- Returns:
- the angle in radians
-
get
public Matrix3f get(Matrix3f dest)
Description copied from interface:QuaternionfcSet the given destination matrix to the rotation represented bythis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- the matrix to write the rotation into- Returns:
- the passed in destination
- See Also:
Matrix3f.set(Quaternionfc)
-
get
public Matrix3d get(Matrix3d dest)
Description copied from interface:QuaternionfcSet the given destination matrix to the rotation represented bythis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- the matrix to write the rotation into- Returns:
- the passed in destination
- See Also:
Matrix3d.set(Quaternionfc)
-
get
public Matrix4f get(Matrix4f dest)
Description copied from interface:QuaternionfcSet the given destination matrix to the rotation represented bythis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- the matrix to write the rotation into- Returns:
- the passed in destination
- See Also:
Matrix4f.set(Quaternionfc)
-
get
public Matrix4d get(Matrix4d dest)
Description copied from interface:QuaternionfcSet the given destination matrix to the rotation represented bythis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- the matrix to write the rotation into- Returns:
- the passed in destination
- See Also:
Matrix4d.set(Quaternionfc)
-
get
public Matrix4x3f get(Matrix4x3f dest)
Description copied from interface:QuaternionfcSet the given destination matrix to the rotation represented bythis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- the matrix to write the rotation into- Returns:
- the passed in destination
- See Also:
Matrix4x3f.set(Quaternionfc)
-
get
public Matrix4x3d get(Matrix4x3d dest)
Description copied from interface:QuaternionfcSet the given destination matrix to the rotation represented bythis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- the matrix to write the rotation into- Returns:
- the passed in destination
- See Also:
Matrix4x3d.set(Quaternionfc)
-
get
public AxisAngle4f get(AxisAngle4f dest)
Description copied from interface:QuaternionfcSet the givenAxisAngle4fto represent the rotation ofthisquaternion.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- theAxisAngle4fto set- Returns:
- the passed in destination
-
get
public AxisAngle4d get(AxisAngle4d dest)
Description copied from interface:QuaternionfcSet the givenAxisAngle4dto represent the rotation ofthisquaternion.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- theAxisAngle4dto set- Returns:
- the passed in destination
-
get
public Quaterniond get(Quaterniond dest)
Description copied from interface:QuaternionfcSet the givenQuaterniondto the values ofthis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- theQuaterniondto set- Returns:
- the passed in destination
- See Also:
Quaterniond.set(Quaternionfc)
-
get
public Quaternionf get(Quaternionf dest)
Set the givenQuaternionfto the values ofthis.- Specified by:
getin interfaceQuaternionfc- Parameters:
dest- theQuaternionfto set- Returns:
- the passed in destination
- See Also:
set(Quaternionfc)
-
getAsMatrix3f
public java.nio.ByteBuffer getAsMatrix3f(java.nio.ByteBuffer dest)
Description copied from interface:QuaternionfcStore the 3x3 float matrix representation ofthisquaternion in column-major order into the givenByteBuffer.This is equivalent to calling:
this.get(new Matrix3f()).get(dest)- Specified by:
getAsMatrix3fin interfaceQuaternionfc- Parameters:
dest- the destination buffer- Returns:
- dest
-
getAsMatrix3f
public java.nio.FloatBuffer getAsMatrix3f(java.nio.FloatBuffer dest)
Description copied from interface:QuaternionfcStore the 3x3 float matrix representation ofthisquaternion in column-major order into the givenFloatBuffer.This is equivalent to calling:
this.get(new Matrix3f()).get(dest)- Specified by:
getAsMatrix3fin interfaceQuaternionfc- Parameters:
dest- the destination buffer- Returns:
- dest
-
getAsMatrix4f
public java.nio.ByteBuffer getAsMatrix4f(java.nio.ByteBuffer dest)
Description copied from interface:QuaternionfcStore the 4x4 float matrix representation ofthisquaternion in column-major order into the givenByteBuffer.This is equivalent to calling:
this.get(new Matrix4f()).get(dest)- Specified by:
getAsMatrix4fin interfaceQuaternionfc- Parameters:
dest- the destination buffer- Returns:
- dest
-
getAsMatrix4f
public java.nio.FloatBuffer getAsMatrix4f(java.nio.FloatBuffer dest)
Description copied from interface:QuaternionfcStore the 4x4 float matrix representation ofthisquaternion in column-major order into the givenFloatBuffer.This is equivalent to calling:
this.get(new Matrix4f()).get(dest)- Specified by:
getAsMatrix4fin interfaceQuaternionfc- Parameters:
dest- the destination buffer- Returns:
- dest
-
getAsMatrix4x3f
public java.nio.ByteBuffer getAsMatrix4x3f(java.nio.ByteBuffer dest)
Description copied from interface:QuaternionfcStore the 4x3 float matrix representation ofthisquaternion in column-major order into the givenByteBuffer.This is equivalent to calling:
this.get(new Matrix4x3f()).get(dest)- Specified by:
getAsMatrix4x3fin interfaceQuaternionfc- Parameters:
dest- the destination buffer- Returns:
- dest
-
getAsMatrix4x3f
public java.nio.FloatBuffer getAsMatrix4x3f(java.nio.FloatBuffer dest)
Description copied from interface:QuaternionfcStore the 4x3 float matrix representation ofthisquaternion in column-major order into the givenFloatBuffer.This is equivalent to calling:
this.get(new Matrix4x3f()).get(dest)- Specified by:
getAsMatrix4x3fin interfaceQuaternionfc- Parameters:
dest- the destination buffer- Returns:
- dest
-
set
public Quaternionf set(float x, float y, float z, float w)
Set this quaternion to the given values.- Parameters:
x- the new value of xy- the new value of yz- the new value of zw- the new value of w- Returns:
- this
-
set
public Quaternionf set(Quaternionfc q)
Set this quaternion to be a copy ofq.- Parameters:
q- theQuaternionfcto copy- Returns:
- this
-
set
public Quaternionf set(Quaterniondc q)
Set this quaternion to be a copy ofq.- Parameters:
q- theQuaterniondcto copy- Returns:
- this
-
set
public Quaternionf set(AxisAngle4f axisAngle)
Set this quaternion to a rotation equivalent to the givenAxisAngle4f.- Parameters:
axisAngle- theAxisAngle4f- Returns:
- this
-
set
public Quaternionf set(AxisAngle4d axisAngle)
Set this quaternion to a rotation equivalent to the givenAxisAngle4d.- Parameters:
axisAngle- theAxisAngle4d- Returns:
- this
-
setAngleAxis
public Quaternionf setAngleAxis(float angle, float x, float y, float z)
Set this quaternion to a rotation equivalent to the supplied axis and angle (in radians).This method assumes that the given rotation axis
(x, y, z)is already normalized- Parameters:
angle- the angle in radiansx- the x-component of the normalized rotation axisy- the y-component of the normalized rotation axisz- the z-component of the normalized rotation axis- Returns:
- this
-
setAngleAxis
public Quaternionf setAngleAxis(double angle, double x, double y, double z)
Set this quaternion to a rotation equivalent to the supplied axis and angle (in radians).This method assumes that the given rotation axis
(x, y, z)is already normalized- Parameters:
angle- the angle in radiansx- the x-component of the normalized rotation axisy- the y-component of the normalized rotation axisz- the z-component of the normalized rotation axis- Returns:
- this
-
rotationAxis
public Quaternionf rotationAxis(AxisAngle4f axisAngle)
Set thisQuaternionfto a rotation of the given angle in radians about the supplied axis, all of which are specified via theAxisAngle4f.- Parameters:
axisAngle- theAxisAngle4fgiving the rotation angle in radians and the axis to rotate about- Returns:
- this
- See Also:
rotationAxis(float, float, float, float)
-
rotationAxis
public Quaternionf rotationAxis(float angle, float axisX, float axisY, float axisZ)
Set this quaternion to a rotation of the given angle in radians about the supplied axis.- Parameters:
angle- the rotation angle in radiansaxisX- the x-coordinate of the rotation axisaxisY- the y-coordinate of the rotation axisaxisZ- the z-coordinate of the rotation axis- Returns:
- this
-
rotationAxis
public Quaternionf rotationAxis(float angle, Vector3fc axis)
Set this quaternion to a rotation of the given angle in radians about the supplied axis.- Parameters:
angle- the rotation angle in radiansaxis- the axis to rotate about- Returns:
- this
- See Also:
rotationAxis(float, float, float, float)
-
rotationX
public Quaternionf rotationX(float angle)
Set this quaternion to represent a rotation of the given radians about the x axis.- Parameters:
angle- the angle in radians to rotate about the x axis- Returns:
- this
-
rotationY
public Quaternionf rotationY(float angle)
Set this quaternion to represent a rotation of the given radians about the y axis.- Parameters:
angle- the angle in radians to rotate about the y axis- Returns:
- this
-
rotationZ
public Quaternionf rotationZ(float angle)
Set this quaternion to represent a rotation of the given radians about the z axis.- Parameters:
angle- the angle in radians to rotate about the z axis- Returns:
- this
-
setFromUnnormalized
public Quaternionf setFromUnnormalized(Matrix4fc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are no unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromUnnormalized
public Quaternionf setFromUnnormalized(Matrix4x3fc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are no unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromUnnormalized
public Quaternionf setFromUnnormalized(Matrix4x3dc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are no unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromNormalized
public Quaternionf setFromNormalized(Matrix4fc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromNormalized
public Quaternionf setFromNormalized(Matrix4x3fc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromNormalized
public Quaternionf setFromNormalized(Matrix4x3dc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromUnnormalized
public Quaternionf setFromUnnormalized(Matrix4dc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are no unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromNormalized
public Quaternionf setFromNormalized(Matrix4dc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromUnnormalized
public Quaternionf setFromUnnormalized(Matrix3fc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are no unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromNormalized
public Quaternionf setFromNormalized(Matrix3fc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromUnnormalized
public Quaternionf setFromUnnormalized(Matrix3dc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.This method assumes that the first three columns of the upper left 3x3 submatrix are no unit vectors.
- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
setFromNormalized
public Quaternionf setFromNormalized(Matrix3dc mat)
Set this quaternion to be a representation of the rotational component of the given matrix.- Parameters:
mat- the matrix whose rotational component is used to set this quaternion- Returns:
- this
-
fromAxisAngleRad
public Quaternionf fromAxisAngleRad(Vector3fc axis, float angle)
Set this quaternion to be a representation of the supplied axis and angle (in radians).- Parameters:
axis- the rotation axisangle- the angle in radians- Returns:
- this
-
fromAxisAngleRad
public Quaternionf fromAxisAngleRad(float axisX, float axisY, float axisZ, float angle)
Set this quaternion to be a representation of the supplied axis and angle (in radians).- Parameters:
axisX- the x component of the rotation axisaxisY- the y component of the rotation axisaxisZ- the z component of the rotation axisangle- the angle in radians- Returns:
- this
-
fromAxisAngleDeg
public Quaternionf fromAxisAngleDeg(Vector3fc axis, float angle)
Set this quaternion to be a representation of the supplied axis and angle (in degrees).- Parameters:
axis- the rotation axisangle- the angle in degrees- Returns:
- this
-
fromAxisAngleDeg
public Quaternionf fromAxisAngleDeg(float axisX, float axisY, float axisZ, float angle)
Set this quaternion to be a representation of the supplied axis and angle (in degrees).- Parameters:
axisX- the x component of the rotation axisaxisY- the y component of the rotation axisaxisZ- the z component of the rotation axisangle- the angle in radians- Returns:
- this
-
mul
public Quaternionf mul(Quaternionfc q)
Multiply this quaternion byq.If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = T * QSo, this method uses post-multiplication like the matrix classes, resulting in a vector to be transformed by
Qfirst, and then byT.- Parameters:
q- the quaternion to multiplythisby- Returns:
- this
-
mul
public Quaternionf mul(Quaternionfc q, Quaternionf dest)
Description copied from interface:QuaternionfcMultiply this quaternion byqand store the result indest.If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = T * QSo, this method uses post-multiplication like the matrix classes, resulting in a vector to be transformed by
Qfirst, and then byT.- Specified by:
mulin interfaceQuaternionfc- Parameters:
q- the quaternion to multiplythisbydest- will hold the result- Returns:
- dest
-
mul
public Quaternionf mul(float qx, float qy, float qz, float qw)
Multiply this quaternion by the quaternion represented via(qx, qy, qz, qw).If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = T * QSo, this method uses post-multiplication like the matrix classes, resulting in a vector to be transformed by
Qfirst, and then byT.- Parameters:
qx- the x component of the quaternion to multiplythisbyqy- the y component of the quaternion to multiplythisbyqz- the z component of the quaternion to multiplythisbyqw- the w component of the quaternion to multiplythisby- Returns:
- this
-
mul
public Quaternionf mul(float qx, float qy, float qz, float qw, Quaternionf dest)
Description copied from interface:QuaternionfcMultiply this quaternion by the quaternion represented via(qx, qy, qz, qw)and store the result indest.If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = T * QSo, this method uses post-multiplication like the matrix classes, resulting in a vector to be transformed by
Qfirst, and then byT.- Specified by:
mulin interfaceQuaternionfc- Parameters:
qx- the x component of the quaternion to multiplythisbyqy- the y component of the quaternion to multiplythisbyqz- the z component of the quaternion to multiplythisbyqw- the w component of the quaternion to multiplythisbydest- will hold the result- Returns:
- dest
-
mul
public Quaternionf mul(float f)
Multiply this quaternion by the given scalar.This method multiplies all of the four components by the specified scalar.
- Parameters:
f- the factor to multiply all components by- Returns:
- this
-
mul
public Quaternionf mul(float f, Quaternionf dest)
Description copied from interface:QuaternionfcMultiply this quaternion by the given scalar and store the result indest.This method multiplies all of the four components by the specified scalar.
- Specified by:
mulin interfaceQuaternionfc- Parameters:
f- the factor to multiply all components bydest- will hold the result- Returns:
- dest
-
premul
public Quaternionf premul(Quaternionfc q)
Pre-multiply this quaternion byq.If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = Q * TSo, this method uses pre-multiplication, resulting in a vector to be transformed by
Tfirst, and then byQ.- Parameters:
q- the quaternion to pre-multiplythisby- Returns:
- this
-
premul
public Quaternionf premul(Quaternionfc q, Quaternionf dest)
Description copied from interface:QuaternionfcPre-multiply this quaternion byqand store the result indest.If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = Q * TSo, this method uses pre-multiplication, resulting in a vector to be transformed by
Tfirst, and then byQ.- Specified by:
premulin interfaceQuaternionfc- Parameters:
q- the quaternion to pre-multiplythisbydest- will hold the result- Returns:
- dest
-
premul
public Quaternionf premul(float qx, float qy, float qz, float qw)
Pre-multiply this quaternion by the quaternion represented via(qx, qy, qz, qw).If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = Q * TSo, this method uses pre-multiplication, resulting in a vector to be transformed by
Tfirst, and then byQ.- Parameters:
qx- the x component of the quaternion to multiplythisbyqy- the y component of the quaternion to multiplythisbyqz- the z component of the quaternion to multiplythisbyqw- the w component of the quaternion to multiplythisby- Returns:
- this
-
premul
public Quaternionf premul(float qx, float qy, float qz, float qw, Quaternionf dest)
Description copied from interface:QuaternionfcPre-multiply this quaternion by the quaternion represented via(qx, qy, qz, qw)and store the result indest.If
TisthisandQis the given quaternion, then the resulting quaternionRis:R = Q * TSo, this method uses pre-multiplication, resulting in a vector to be transformed by
Tfirst, and then byQ.- Specified by:
premulin interfaceQuaternionfc- Parameters:
qx- the x component of the quaternion to multiplythisbyqy- the y component of the quaternion to multiplythisbyqz- the z component of the quaternion to multiplythisbyqw- the w component of the quaternion to multiplythisbydest- will hold the result- Returns:
- dest
-
transform
public Vector3f transform(Vector3f vec)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverse
public Vector3f transformInverse(Vector3f vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformPositiveX
public Vector3f transformPositiveX(Vector3f dest)
Description copied from interface:QuaternionfcTransform the vector(1, 0, 0)by this quaternion.- Specified by:
transformPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveX
public Vector4f transformPositiveX(Vector4f dest)
Description copied from interface:QuaternionfcTransform the vector(1, 0, 0)by this quaternion.Only the first three components of the given 4D vector are modified.
- Specified by:
transformPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveX
public Vector3f transformUnitPositiveX(Vector3f dest)
Description copied from interface:QuaternionfcTransform the vector(1, 0, 0)by this unit quaternion.This method is only applicable when
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveX
public Vector4f transformUnitPositiveX(Vector4f dest)
Description copied from interface:QuaternionfcTransform the vector(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
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveY
public Vector3f transformPositiveY(Vector3f dest)
Description copied from interface:QuaternionfcTransform the vector(0, 1, 0)by this quaternion.- Specified by:
transformPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveY
public Vector4f transformPositiveY(Vector4f dest)
Description copied from interface:QuaternionfcTransform the vector(0, 1, 0)by this quaternion.Only the first three components of the given 4D vector are modified.
- Specified by:
transformPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveY
public Vector4f transformUnitPositiveY(Vector4f dest)
Description copied from interface:QuaternionfcTransform the vector(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
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveY
public Vector3f transformUnitPositiveY(Vector3f dest)
Description copied from interface:QuaternionfcTransform the vector(0, 1, 0)by this unit quaternion.This method is only applicable when
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveZ
public Vector3f transformPositiveZ(Vector3f dest)
Description copied from interface:QuaternionfcTransform the vector(0, 0, 1)by this quaternion.- Specified by:
transformPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveZ
public Vector4f transformPositiveZ(Vector4f dest)
Description copied from interface:QuaternionfcTransform the vector(0, 0, 1)by this quaternion.Only the first three components of the given 4D vector are modified.
- Specified by:
transformPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveZ
public Vector4f transformUnitPositiveZ(Vector4f dest)
Description copied from interface:QuaternionfcTransform the vector(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
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveZ
public Vector3f transformUnitPositiveZ(Vector3f dest)
Description copied from interface:QuaternionfcTransform the vector(0, 0, 1)by this unit quaternion.This method is only applicable when
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transform
public Vector4f transform(Vector4f vec)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion.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 modified.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverse
public Vector4f transformInverse(Vector4f vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion.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 modified.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transform
public Vector3f transform(Vector3fc vec, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverse
public Vector3f transformInverse(Vector3fc vec, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transform
public Vector3f transform(float x, float y, float z, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverse
public Vector3f transformInverse(float x, float y, float z, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformUnit
public Vector3f transformUnit(Vector3f vec)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverseUnit
public Vector3f transformInverseUnit(Vector3f vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformUnit
public Vector3f transformUnit(Vector3fc vec, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverseUnit
public Vector3f transformInverseUnit(Vector3fc vec, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformUnit
public Vector3f transformUnit(float x, float y, float z, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverseUnit
public Vector3f transformInverseUnit(float x, float y, float z, Vector3f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transform
public Vector4f transform(Vector4fc vec, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion and store the result indest.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.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverse
public Vector4f transformInverse(Vector4fc vec, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion and store the result indest.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.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transform
public Vector4f transform(float x, float y, float z, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverse
public Vector4f transformInverse(float x, float y, float z, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transform
public Vector3d transform(Vector3d vec)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverse
public Vector3d transformInverse(Vector3d vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformUnit
public Vector4f transformUnit(Vector4f vec)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion.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.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverseUnit
public Vector4f transformInverseUnit(Vector4f vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion.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.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformUnit
public Vector4f transformUnit(Vector4fc vec, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion and store the result indest.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.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverseUnit
public Vector4f transformInverseUnit(Vector4fc vec, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion and store the result indest.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.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformUnit
public Vector4f transformUnit(float x, float y, float z, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverseUnit
public Vector4f transformInverseUnit(float x, float y, float z, Vector4f dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformPositiveX
public Vector3d transformPositiveX(Vector3d dest)
Description copied from interface:QuaternionfcTransform the vector(1, 0, 0)by this quaternion.- Specified by:
transformPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveX
public Vector4d transformPositiveX(Vector4d dest)
Description copied from interface:QuaternionfcTransform the vector(1, 0, 0)by this quaternion.Only the first three components of the given 4D vector are modified.
- Specified by:
transformPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveX
public Vector3d transformUnitPositiveX(Vector3d dest)
Description copied from interface:QuaternionfcTransform the vector(1, 0, 0)by this unit quaternion.This method is only applicable when
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveX
public Vector4d transformUnitPositiveX(Vector4d dest)
Description copied from interface:QuaternionfcTransform the vector(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
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveXin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveY
public Vector3d transformPositiveY(Vector3d dest)
Description copied from interface:QuaternionfcTransform the vector(0, 1, 0)by this quaternion.- Specified by:
transformPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveY
public Vector4d transformPositiveY(Vector4d dest)
Description copied from interface:QuaternionfcTransform the vector(0, 1, 0)by this quaternion.Only the first three components of the given 4D vector are modified.
- Specified by:
transformPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveY
public Vector4d transformUnitPositiveY(Vector4d dest)
Description copied from interface:QuaternionfcTransform the vector(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
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveY
public Vector3d transformUnitPositiveY(Vector3d dest)
Description copied from interface:QuaternionfcTransform the vector(0, 1, 0)by this unit quaternion.This method is only applicable when
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveYin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveZ
public Vector3d transformPositiveZ(Vector3d dest)
Description copied from interface:QuaternionfcTransform the vector(0, 0, 1)by this quaternion.- Specified by:
transformPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformPositiveZ
public Vector4d transformPositiveZ(Vector4d dest)
Description copied from interface:QuaternionfcTransform the vector(0, 0, 1)by this quaternion.Only the first three components of the given 4D vector are modified.
- Specified by:
transformPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveZ
public Vector4d transformUnitPositiveZ(Vector4d dest)
Description copied from interface:QuaternionfcTransform the vector(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
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transformUnitPositiveZ
public Vector3d transformUnitPositiveZ(Vector3d dest)
Description copied from interface:QuaternionfcTransform the vector(0, 0, 1)by this unit quaternion.This method is only applicable when
thisis a unit quaternion.Reference: https://de.mathworks.com/
- Specified by:
transformUnitPositiveZin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
transform
public Vector4d transform(Vector4d vec)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion.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 modified.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverse
public Vector4d transformInverse(Vector4d vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion.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 modified.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transform
public Vector3d transform(Vector3dc vec, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverse
public Vector3d transformInverse(Vector3dc vec, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transform
public Vector3d transform(float x, float y, float z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverse
public Vector3d transformInverse(float x, float y, float z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transform
public Vector3d transform(double x, double y, double z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverse
public Vector3d transformInverse(double x, double y, double z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transform
public Vector4d transform(Vector4dc vec, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector by this quaternion and store the result indest.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.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverse
public Vector4d transformInverse(Vector4dc vec, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this quaternion and store the result indest.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.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transform
public Vector4d transform(double x, double y, double z, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverse
public Vector4d transformInverse(double x, double y, double z, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
- Specified by:
transformInversein interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformUnit
public Vector4d transformUnit(Vector4d vec)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion.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 modified.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformInverseUnit
public Vector4d transformInverseUnit(Vector4d vec)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion.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 modified.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transform- Returns:
- vec
-
transformUnit
public Vector3d transformUnit(Vector3dc vec, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverseUnit
public Vector3d transformInverseUnit(Vector3dc vec, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformUnit
public Vector3d transformUnit(float x, float y, float z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverseUnit
public Vector3d transformInverseUnit(float x, float y, float z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformUnit
public Vector3d transformUnit(double x, double y, double z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverseUnit
public Vector3d transformInverseUnit(double x, double y, double z, Vector3d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformUnit
public Vector4d transformUnit(Vector4dc vec, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector by this unit quaternion and store the result indest.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.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformInverseUnit
public Vector4d transformInverseUnit(Vector4dc vec, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector by the inverse of this unit quaternion and store the result indest.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.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
vec- the vector to transformdest- will hold the result- Returns:
- dest
-
transformUnit
public Vector4d transformUnit(double x, double y, double z, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
transformInverseUnit
public Vector4d transformInverseUnit(double x, double y, double z, Vector4d dest)
Description copied from interface:QuaternionfcTransform the given vector(x, y, z)by the inverse of this unit quaternion and store the result indest.This will apply the rotation described by this quaternion to the given vector.
This method is only applicable when
thisis a unit quaternion.- Specified by:
transformInverseUnitin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
invert
public Quaternionf invert(Quaternionf dest)
Description copied from interface:QuaternionfcInvert this quaternion and store thenormalizedresult indest.If this quaternion is already normalized, then
Quaternionfc.conjugate(Quaternionf)should be used instead.- Specified by:
invertin interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
- See Also:
Quaternionfc.conjugate(Quaternionf)
-
invert
public Quaternionf invert()
Invert this quaternion andnormalizeit.If this quaternion is already normalized, then
conjugate()should be used instead.- Returns:
- this
- See Also:
conjugate()
-
div
public Quaternionf div(Quaternionfc b, Quaternionf dest)
Description copied from interface:QuaternionfcDividethisquaternion byband store the result indest.The division expressed using the inverse is performed in the following way:
dest = this * b^-1, whereb^-1is the inverse ofb.- Specified by:
divin interfaceQuaternionfc- Parameters:
b- theQuaternionfcto divide this bydest- will hold the result- Returns:
- dest
-
div
public Quaternionf div(Quaternionfc b)
Dividethisquaternion byb.The division expressed using the inverse is performed in the following way:
this = this * b^-1, whereb^-1is the inverse ofb.- Parameters:
b- theQuaternionfto divide this by- Returns:
- this
-
conjugate
public Quaternionf conjugate()
Conjugate this quaternion.- Returns:
- this
-
conjugate
public Quaternionf conjugate(Quaternionf dest)
Description copied from interface:QuaternionfcConjugate this quaternion and store the result indest.- Specified by:
conjugatein interfaceQuaternionfc- Parameters:
dest- will hold the result- Returns:
- dest
-
identity
public Quaternionf identity()
Set this quaternion to the identity.- Returns:
- this
-
rotateXYZ
public Quaternionf rotateXYZ(float angleX, float angleY, float angleZ)
Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles using rotation sequenceXYZ.This method is equivalent to calling:
rotateX(angleX).rotateY(angleY).rotateZ(angleZ)If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
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 axis- Returns:
- this
-
rotateXYZ
public Quaternionf rotateXYZ(float angleX, float angleY, float angleZ, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles using rotation sequenceXYZand store the result indest.This method is equivalent to calling:
rotateX(angleX, dest).rotateY(angleY).rotateZ(angleZ)If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateXYZin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
rotateZYX
public Quaternionf rotateZYX(float angleZ, float angleY, float angleX)
Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceZYX.This method is equivalent to calling:
rotateZ(angleZ).rotateY(angleY).rotateX(angleX)If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
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 axis- Returns:
- this
-
rotateZYX
public Quaternionf rotateZYX(float angleZ, float angleY, float angleX, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceZYXand store the result indest.This method is equivalent to calling:
rotateZ(angleZ, dest).rotateY(angleY).rotateX(angleX)If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateZYXin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
rotateYXZ
public Quaternionf rotateYXZ(float angleY, float angleX, float angleZ)
Apply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceYXZ.This method is equivalent to calling:
rotateY(angleY).rotateX(angleX).rotateZ(angleZ)If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
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 axis- Returns:
- this
-
rotateYXZ
public Quaternionf rotateYXZ(float angleY, float angleX, float angleZ, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the cartesian base unit axes, called the euler angles, using the rotation sequenceYXZand store the result indest.This method is equivalent to calling:
rotateY(angleY, dest).rotateX(angleX).rotateZ(angleZ)If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateYXZin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
getEulerAnglesXYZ
public Vector3f getEulerAnglesXYZ(Vector3f eulerAngles)
Description copied from interface:QuaternionfcGet the euler angles in radians in rotation sequenceXYZof this quaternion and store them in the provided parametereulerAngles.The Euler angles are always returned as the angle around X in the
Vector3f.xfield, the angle around Y in theVector3f.yfield and the angle around Z in theVector3f.zfield of the suppliedVector3finstance.- Specified by:
getEulerAnglesXYZin interfaceQuaternionfc- Parameters:
eulerAngles- will hold the euler angles in radians- Returns:
- the passed in vector
-
getEulerAnglesZYX
public Vector3f getEulerAnglesZYX(Vector3f eulerAngles)
Description copied from interface:QuaternionfcGet the euler angles in radians in rotation sequenceZYXof this quaternion and store them in the provided parametereulerAngles.The Euler angles are always returned as the angle around X in the
Vector3f.xfield, the angle around Y in theVector3f.yfield and the angle around Z in theVector3f.zfield of the suppliedVector3finstance.- Specified by:
getEulerAnglesZYXin interfaceQuaternionfc- Parameters:
eulerAngles- will hold the euler angles in radians- Returns:
- the passed in vector
-
getEulerAnglesZXY
public Vector3f getEulerAnglesZXY(Vector3f eulerAngles)
Description copied from interface:QuaternionfcGet the euler angles in radians in rotation sequenceZXYof this quaternion and store them in the provided parametereulerAngles.The Euler angles are always returned as the angle around X in the
Vector3f.xfield, the angle around Y in theVector3f.yfield and the angle around Z in theVector3f.zfield of the suppliedVector3finstance.- Specified by:
getEulerAnglesZXYin interfaceQuaternionfc- Parameters:
eulerAngles- will hold the euler angles in radians- Returns:
- the passed in vector
-
getEulerAnglesYXZ
public Vector3f getEulerAnglesYXZ(Vector3f eulerAngles)
Description copied from interface:QuaternionfcGet the euler angles in radians in rotation sequenceYXZof this quaternion and store them in the provided parametereulerAngles.The Euler angles are always returned as the angle around X in the
Vector3f.xfield, the angle around Y in theVector3f.yfield and the angle around Z in theVector3f.zfield of the suppliedVector3finstance.- Specified by:
getEulerAnglesYXZin interfaceQuaternionfc- Parameters:
eulerAngles- will hold the euler angles in radians- Returns:
- the passed in vector
-
lengthSquared
public float lengthSquared()
Description copied from interface:QuaternionfcReturn the square of the length of this quaternion.- Specified by:
lengthSquaredin interfaceQuaternionfc- Returns:
- the length
-
rotationXYZ
public Quaternionf rotationXYZ(float angleX, float angleY, float angleZ)
Set this quaternion from the supplied euler angles (in radians) with rotation order XYZ.This method is equivalent to calling:
rotationX(angleX).rotateY(angleY).rotateZ(angleZ)Reference: this stackexchange answer
- Parameters:
angleX- the angle in radians to rotate about xangleY- the angle in radians to rotate about yangleZ- the angle in radians to rotate about z- Returns:
- this
-
rotationZYX
public Quaternionf rotationZYX(float angleZ, float angleY, float angleX)
Set this quaternion from the supplied euler angles (in radians) with rotation order ZYX.This method is equivalent to calling:
rotationZ(angleZ).rotateY(angleY).rotateX(angleX)Reference: this stackexchange answer
- Parameters:
angleX- the angle in radians to rotate about xangleY- the angle in radians to rotate about yangleZ- the angle in radians to rotate about z- Returns:
- this
-
rotationYXZ
public Quaternionf rotationYXZ(float angleY, float angleX, float angleZ)
Set this quaternion from the supplied euler angles (in radians) with rotation order YXZ.This method is equivalent to calling:
rotationY(angleY).rotateX(angleX).rotateZ(angleZ)Reference: https://en.wikipedia.org
- Parameters:
angleY- the angle in radians to rotate about yangleX- the angle in radians to rotate about xangleZ- the angle in radians to rotate about z- Returns:
- this
-
slerp
public Quaternionf slerp(Quaternionfc target, float alpha)
Interpolate betweenthisunitquaternion and the specifiedtargetunitquaternion using spherical linear interpolation using the specified interpolation factoralpha.This method resorts to non-spherical linear interpolation when the absolute dot product of
thisandtargetis below1E-6f.- Parameters:
target- the target of the interpolation, which should be reached withalpha = 1.0alpha- the interpolation factor, within[0..1]- Returns:
- this
-
slerp
public Quaternionf slerp(Quaternionfc target, float alpha, Quaternionf dest)
Description copied from interface:QuaternionfcInterpolate betweenthisunitquaternion and the specifiedtargetunitquaternion using spherical linear interpolation using the specified interpolation factoralpha, and store the result indest.This method resorts to non-spherical linear interpolation when the absolute dot product of
thisandtargetis below1E-6f.Reference: http://fabiensanglard.net
- Specified by:
slerpin interfaceQuaternionfc- Parameters:
target- the target of the interpolation, which should be reached withalpha = 1.0alpha- the interpolation factor, within[0..1]dest- will hold the result- Returns:
- dest
-
slerp
public static Quaternionfc slerp(Quaternionf[] qs, float[] weights, Quaternionf dest)
Interpolate between all of the quaternions given inqsvia spherical linear interpolation using the specified interpolation factorsweights, and store the result indest.This method will interpolate between each two successive quaternions via
slerp(Quaternionfc, float)using their relative interpolation weights.This method resorts to non-spherical linear interpolation when the absolute dot product of any two interpolated quaternions is below
1E-6f.Reference: http://gamedev.stackexchange.com/
- Parameters:
qs- the quaternions to interpolate overweights- the weights of each individual quaternion inqsdest- will hold the result- Returns:
- dest
-
scale
public Quaternionf scale(float factor)
Apply scaling to this quaternion, which results in any vector transformed by this quaternion to change its length by the givenfactor.- Parameters:
factor- the scaling factor- Returns:
- this
-
scale
public Quaternionf scale(float factor, Quaternionf dest)
Description copied from interface:QuaternionfcApply scaling to this quaternion, which results in any vector transformed by the quaternion to change its length by the givenfactor, and store the result indest.- Specified by:
scalein interfaceQuaternionfc- Parameters:
factor- the scaling factordest- will hold the result- Returns:
- dest
-
scaling
public Quaternionf scaling(float factor)
Set this quaternion to represent scaling, which results in a transformed vector to change its length by the givenfactor.- Parameters:
factor- the scaling factor- Returns:
- this
-
integrate
public Quaternionf integrate(float dt, float vx, float vy, float vz)
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 deltadtand add the differentiate rotation to the rotation represented by this quaternion.This method pre-multiplies the rotation given by
dtand(vx, vy, vz)bythis, so the angular velocities are always relative to the local coordinate system of the rotation represented bythisquaternion.This method is equivalent to calling:
rotateLocal(dt * vx, dt * vy, dt * vz)Reference: http://physicsforgames.blogspot.de/
- Parameters:
dt- the delta timevx- the angular velocity around the x axisvy- the angular velocity around the y axisvz- the angular velocity around the z axis- Returns:
- this
-
integrate
public Quaternionf integrate(float dt, float vx, float vy, float vz, Quaternionf dest)
Description copied from interface:QuaternionfcIntegrate 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 deltadtand add the differentiate rotation to the rotation represented by this quaternion and store the result intodest.This method pre-multiplies the rotation given by
dtand(vx, vy, vz)bythis, so the angular velocities are always relative to the local coordinate system of the rotation represented bythisquaternion.This method is equivalent to calling:
rotateLocal(dt * vx, dt * vy, dt * vz, dest)Reference: http://physicsforgames.blogspot.de/
- Specified by:
integratein interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
nlerp
public Quaternionf nlerp(Quaternionfc q, float factor)
Compute a linear (non-spherical) interpolation ofthisand the given quaternionqand store the result inthis.- Parameters:
q- the other quaternionfactor- the interpolation factor. It is between 0.0 and 1.0- Returns:
- this
-
nlerp
public Quaternionf nlerp(Quaternionfc q, float factor, Quaternionf dest)
Description copied from interface:QuaternionfcCompute a linear (non-spherical) interpolation ofthisand the given quaternionqand store the result indest.Reference: http://fabiensanglard.net
- Specified by:
nlerpin interfaceQuaternionfc- Parameters:
q- the other quaternionfactor- the interpolation factor. It is between 0.0 and 1.0dest- will hold the result- Returns:
- dest
-
nlerp
public static Quaternionfc nlerp(Quaternionfc[] qs, float[] weights, Quaternionf dest)
Interpolate between all of the quaternions given inqsvia non-spherical linear interpolation using the specified interpolation factorsweights, and store the result indest.This method will interpolate between each two successive quaternions via
nlerp(Quaternionfc, float)using their relative interpolation weights.Reference: http://gamedev.stackexchange.com/
- Parameters:
qs- the quaternions to interpolate overweights- the weights of each individual quaternion inqsdest- will hold the result- Returns:
- dest
-
nlerpIterative
public Quaternionf nlerpIterative(Quaternionfc q, float alpha, float dotThreshold, Quaternionf dest)
Description copied from interface:QuaternionfcCompute linear (non-spherical) interpolations ofthisand the given quaternionqiteratively and store the result indest.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 betweenthisandqvia non-spherical linear interpolations as long as the absolute dot product ofthisandqis greater than the givendotThresholdparameter.Thanks to
@theagentdat http://www.java-gaming.org/ for providing the code.- Specified by:
nlerpIterativein interfaceQuaternionfc- Parameters:
q- the other quaternionalpha- the interpolation factor, between 0.0 and 1.0dotThreshold- the threshold for the dot product ofthisandqabove which this method performs another iteration of a small-step linear interpolationdest- will hold the result- Returns:
- dest
-
nlerpIterative
public Quaternionf nlerpIterative(Quaternionfc q, float alpha, float dotThreshold)
Compute linear (non-spherical) interpolations ofthisand the given quaternionqiteratively and store the result inthis.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 betweenthisandqvia non-spherical linear interpolations as long as the absolute dot product ofthisandqis greater than the givendotThresholdparameter.Thanks to
@theagentdat http://www.java-gaming.org/ for providing the code.- Parameters:
q- the other quaternionalpha- the interpolation factor, between 0.0 and 1.0dotThreshold- the threshold for the dot product ofthisandqabove which this method performs another iteration of a small-step linear interpolation- Returns:
- this
-
nlerpIterative
public static Quaternionfc nlerpIterative(Quaternionf[] qs, float[] weights, float dotThreshold, Quaternionf dest)
Interpolate between all of the quaternions given inqsvia iterative non-spherical linear interpolation using the specified interpolation factorsweights, and store the result indest.This method will interpolate between each two successive quaternions via
nlerpIterative(Quaternionfc, float, float)using their relative interpolation weights.Reference: http://gamedev.stackexchange.com/
- Parameters:
qs- the quaternions to interpolate overweights- the weights of each individual quaternion inqsdotThreshold- the threshold for the dot product of each two interpolated quaternions above whichnlerpIterative(Quaternionfc, float, float)performs another iteration of a small-step linear interpolationdest- will hold the result- Returns:
- dest
-
lookAlong
public Quaternionf lookAlong(Vector3fc dir, Vector3fc up)
Apply a rotation to this quaternion that maps the given direction to the positive Z axis.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
upanddirvectors.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!Reference: http://answers.unity3d.com
- Parameters:
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 givendirandup- Returns:
- this
- See Also:
lookAlong(float, float, float, float, float, float, Quaternionf)
-
lookAlong
public Quaternionf lookAlong(Vector3fc dir, Vector3fc up, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation to this quaternion that maps the given direction to the positive Z axis, and store the result indest.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
upanddirvectors.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!Reference: http://answers.unity3d.com
- Specified by:
lookAlongin interfaceQuaternionfc- Parameters:
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 givendirandupdest- will hold the result- Returns:
- dest
- See Also:
Quaternionfc.lookAlong(float, float, float, float, float, float, Quaternionf)
-
lookAlong
public Quaternionf lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ)
Apply a rotation to this quaternion that maps the given direction to the positive Z axis.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
upanddirvectors.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!Reference: http://answers.unity3d.com
- Parameters:
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 vector- Returns:
- this
- See Also:
lookAlong(float, float, float, float, float, float, Quaternionf)
-
lookAlong
public Quaternionf lookAlong(float dirX, float dirY, float dirZ, float upX, float upY, float upZ, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation to this quaternion that maps the given direction to the positive Z axis, and store the result indest.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
upanddirvectors.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!Reference: http://answers.unity3d.com
- Specified by:
lookAlongin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
rotationTo
public Quaternionf rotationTo(float fromDirX, float fromDirY, float fromDirZ, float toDirX, float toDirY, float toDirZ)
Setthisquaternion to a rotation that rotates thefromDirvector to point alongtoDir.Since there can be multiple possible rotations, this method chooses the one with the shortest arc.
Reference: stackoverflow.com
- Parameters:
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 to- Returns:
- this
-
rotationTo
public Quaternionf rotationTo(Vector3fc fromDir, Vector3fc toDir)
Setthisquaternion to a rotation that rotates thefromDirvector to point alongtoDir.Because there can be multiple possible rotations, this method chooses the one with the shortest arc.
- Parameters:
fromDir- the starting directiontoDir- the destination direction- Returns:
- this
- See Also:
rotationTo(float, float, float, float, float, float)
-
rotateTo
public Quaternionf rotateTo(float fromDirX, float fromDirY, float fromDirZ, float toDirX, float toDirY, float toDirZ, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisthat rotates thefromDirvector to point alongtoDirand store the result indest.Since there can be multiple possible rotations, this method chooses the one with the shortest arc.
If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!Reference: stackoverflow.com
- Specified by:
rotateToin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
rotateTo
public Quaternionf rotateTo(float fromDirX, float fromDirY, float fromDirZ, float toDirX, float toDirY, float toDirZ)
Apply a rotation tothisthat rotates thefromDirvector to point alongtoDir.Since there can be multiple possible rotations, this method chooses the one with the shortest arc.
If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
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 to- Returns:
- this
- See Also:
rotateTo(float, float, float, float, float, float, Quaternionf)
-
rotateTo
public Quaternionf rotateTo(Vector3fc fromDir, Vector3fc toDir, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisthat rotates thefromDirvector to point alongtoDirand store the result indest.Because there can be multiple possible rotations, this method chooses the one with the shortest arc.
If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateToin interfaceQuaternionfc- Parameters:
fromDir- the starting directiontoDir- the destination directiondest- will hold the result- Returns:
- dest
- See Also:
Quaternionfc.rotateTo(float, float, float, float, float, float, Quaternionf)
-
rotateTo
public Quaternionf rotateTo(Vector3fc fromDir, Vector3fc toDir)
Apply a rotation tothisthat rotates thefromDirvector to point alongtoDir.Because there can be multiple possible rotations, this method chooses the one with the shortest arc.
If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
fromDir- the starting directiontoDir- the destination direction- Returns:
- this
- See Also:
rotateTo(float, float, float, float, float, float, Quaternionf)
-
rotateX
public Quaternionf rotateX(float angle)
Apply a rotation tothisquaternion rotating the given radians about the x axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
angle- the angle in radians to rotate about the x axis- Returns:
- this
-
rotateX
public Quaternionf rotateX(float angle, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the x axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateXin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the x axisdest- will hold the result- Returns:
- dest
-
rotateY
public Quaternionf rotateY(float angle)
Apply a rotation tothisquaternion rotating the given radians about the y axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
angle- the angle in radians to rotate about the y axis- Returns:
- this
-
rotateY
public Quaternionf rotateY(float angle, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the y axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateYin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the y axisdest- will hold the result- Returns:
- dest
-
rotateZ
public Quaternionf rotateZ(float angle)
Apply a rotation tothisquaternion rotating the given radians about the z axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
angle- the angle in radians to rotate about the z axis- Returns:
- this
-
rotateZ
public Quaternionf rotateZ(float angle, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the z axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateZin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the z axisdest- will hold the result- Returns:
- dest
-
rotateLocalX
public Quaternionf rotateLocalX(float angle)
Apply a rotation tothisquaternion rotating the given radians about the local x axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beR * Q. So when transforming a vectorvwith the new quaternion by usingR * Q * v, the rotation represented bythiswill be applied first!- Parameters:
angle- the angle in radians to rotate about the local x axis- Returns:
- this
-
rotateLocalX
public Quaternionf rotateLocalX(float angle, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the local x axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beR * Q. So when transforming a vectorvwith the new quaternion by usingR * Q * v, the rotation represented bythiswill be applied first!- Specified by:
rotateLocalXin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the local x axisdest- will hold the result- Returns:
- dest
-
rotateLocalY
public Quaternionf rotateLocalY(float angle)
Apply a rotation tothisquaternion rotating the given radians about the local y axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beR * Q. So when transforming a vectorvwith the new quaternion by usingR * Q * v, the rotation represented bythiswill be applied first!- Parameters:
angle- the angle in radians to rotate about the local y axis- Returns:
- this
-
rotateLocalY
public Quaternionf rotateLocalY(float angle, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the local y axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beR * Q. So when transforming a vectorvwith the new quaternion by usingR * Q * v, the rotation represented bythiswill be applied first!- Specified by:
rotateLocalYin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the local y axisdest- will hold the result- Returns:
- dest
-
rotateLocalZ
public Quaternionf rotateLocalZ(float angle)
Apply a rotation tothisquaternion rotating the given radians about the local z axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beR * Q. So when transforming a vectorvwith the new quaternion by usingR * Q * v, the rotation represented bythiswill be applied first!- Parameters:
angle- the angle in radians to rotate about the local z axis- Returns:
- this
-
rotateLocalZ
public Quaternionf rotateLocalZ(float angle, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the local z axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beR * Q. So when transforming a vectorvwith the new quaternion by usingR * Q * v, the rotation represented bythiswill be applied first!- Specified by:
rotateLocalZin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the local z axisdest- will hold the result- Returns:
- dest
-
rotateAxis
public Quaternionf rotateAxis(float angle, float axisX, float axisY, float axisZ, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the specified axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateAxisin interfaceQuaternionfc- Parameters:
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 result- Returns:
- dest
-
rotateAxis
public Quaternionf rotateAxis(float angle, Vector3fc axis, Quaternionf dest)
Description copied from interface:QuaternionfcApply a rotation tothisquaternion rotating the given radians about the specified axis and store the result indest.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Specified by:
rotateAxisin interfaceQuaternionfc- Parameters:
angle- the angle in radians to rotate about the specified axisaxis- the rotation axisdest- will hold the result- Returns:
- dest
- See Also:
Quaternionfc.rotateAxis(float, float, float, float, Quaternionf)
-
rotateAxis
public Quaternionf rotateAxis(float angle, Vector3fc axis)
Apply a rotation tothisquaternion rotating the given radians about the specified axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
angle- the angle in radians to rotate about the specified axisaxis- the rotation axis- Returns:
- this
- See Also:
rotateAxis(float, float, float, float, Quaternionf)
-
rotateAxis
public Quaternionf rotateAxis(float angle, float axisX, float axisY, float axisZ)
Apply a rotation tothisquaternion rotating the given radians about the specified axis.If
Qisthisquaternion andRthe quaternion representing the specified rotation, then the new quaternion will beQ * R. So when transforming a vectorvwith the new quaternion by usingQ * R * v, the rotation added by this method will be applied first!- Parameters:
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 axis- Returns:
- this
- See Also:
rotateAxis(float, float, float, float, Quaternionf)
-
toString
public java.lang.String toString()
Return a string representation of this quaternion.This method creates a new
DecimalFormaton every invocation with the format string "0.000E0;-".- Overrides:
toStringin classjava.lang.Object- Returns:
- the string representation
-
toString
public java.lang.String toString(java.text.NumberFormat formatter)
Return a string representation of this quaternion by formatting the components with the givenNumberFormat.- Parameters:
formatter- theNumberFormatused to format the quaternion components with- Returns:
- the string representation
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException- Specified by:
writeExternalin interfacejava.io.Externalizable- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException- Specified by:
readExternalin interfacejava.io.Externalizable- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
difference
public Quaternionf difference(Quaternionf other)
Compute the difference betweenthisand theotherquaternion and store the result inthis.The difference is the rotation that has to be applied to get from
thisrotation toother. IfTisthis,QisotherandDis the computed difference, then the following equation holds:T * D = QIt is defined as:
D = T^-1 * Q, whereT^-1denotes theinverseofT.- Parameters:
other- the other quaternion- Returns:
- this
-
difference
public Quaternionf difference(Quaternionfc other, Quaternionf dest)
Description copied from interface:QuaternionfcCompute the difference betweenthisand theotherquaternion and store the result indest.The difference is the rotation that has to be applied to get from
thisrotation toother. IfTisthis,QisotherandDis the computed difference, then the following equation holds:T * D = QIt is defined as:
D = T^-1 * Q, whereT^-1denotes theinverseofT.- Specified by:
differencein interfaceQuaternionfc- Parameters:
other- the other quaterniondest- will hold the result- Returns:
- dest
-
positiveX
public Vector3f positiveX(Vector3f dir)
Description copied from interface:QuaternionfcObtain the direction of+Xbefore the rotation transformation represented bythisquaternion is applied.This method is equivalent to the following code:
Quaternionf inv = new Quaternionf(this).invert(); inv.transform(dir.set(1, 0, 0));
- Specified by:
positiveXin interfaceQuaternionfc- Parameters:
dir- will hold the direction of+X- Returns:
- dir
-
normalizedPositiveX
public Vector3f normalizedPositiveX(Vector3f dir)
Description copied from interface:QuaternionfcObtain the direction of+Xbefore the rotation transformation represented bythisnormalized quaternion is applied. The quaternion must benormalizedfor this method to work.This method is equivalent to the following code:
Quaternionf inv = new Quaternionf(this).conjugate(); inv.transform(dir.set(1, 0, 0));
- Specified by:
normalizedPositiveXin interfaceQuaternionfc- Parameters:
dir- will hold the direction of+X- Returns:
- dir
-
positiveY
public Vector3f positiveY(Vector3f dir)
Description copied from interface:QuaternionfcObtain the direction of+Ybefore the rotation transformation represented bythisquaternion is applied.This method is equivalent to the following code:
Quaternionf inv = new Quaternionf(this).invert(); inv.transform(dir.set(0, 1, 0));
- Specified by:
positiveYin interfaceQuaternionfc- Parameters:
dir- will hold the direction of+Y- Returns:
- dir
-
normalizedPositiveY
public Vector3f normalizedPositiveY(Vector3f dir)
Description copied from interface:QuaternionfcObtain the direction of+Ybefore the rotation transformation represented bythisnormalized quaternion is applied. The quaternion must benormalizedfor this method to work.This method is equivalent to the following code:
Quaternionf inv = new Quaternionf(this).conjugate(); inv.transform(dir.set(0, 1, 0));
- Specified by:
normalizedPositiveYin interfaceQuaternionfc- Parameters:
dir- will hold the direction of+Y- Returns:
- dir
-
positiveZ
public Vector3f positiveZ(Vector3f dir)
Description copied from interface:QuaternionfcObtain the direction of+Zbefore the rotation transformation represented bythisquaternion is applied.This method is equivalent to the following code:
Quaternionf inv = new Quaternionf(this).invert(); inv.transform(dir.set(0, 0, 1));
- Specified by:
positiveZin interfaceQuaternionfc- Parameters:
dir- will hold the direction of+Z- Returns:
- dir
-
normalizedPositiveZ
public Vector3f normalizedPositiveZ(Vector3f dir)
Description copied from interface:QuaternionfcObtain the direction of+Zbefore the rotation transformation represented bythisnormalized quaternion is applied. The quaternion must benormalizedfor this method to work.This method is equivalent to the following code:
Quaternionf inv = new Quaternionf(this).conjugate(); inv.transform(dir.set(0, 0, 1));
- Specified by:
normalizedPositiveZin interfaceQuaternionfc- Parameters:
dir- will hold the direction of+Z- Returns:
- dir
-
conjugateBy
public Quaternionf conjugateBy(Quaternionfc q)
Conjugatethisby the given quaternionqby computingq * this * q^-1.- Parameters:
q- theQuaternionfcto conjugatethisby- Returns:
- this
-
conjugateBy
public Quaternionf conjugateBy(Quaternionfc q, Quaternionf dest)
Conjugatethisby the given quaternionqby computingq * this * q^-1and store the result intodest.- Specified by:
conjugateByin interfaceQuaternionfc- Parameters:
q- theQuaternionfcto conjugatethisbydest- will hold the result- Returns:
- dest
-
isFinite
public boolean isFinite()
Description copied from interface:QuaternionfcDetermine whether all components are finite floating-point values, that is, they are notNaNand notinfinity.- Specified by:
isFinitein interfaceQuaternionfc- Returns:
trueif all components are finite floating-point values;falseotherwise
-
equals
public boolean equals(Quaternionfc q, float delta)
Description copied from interface:QuaternionfcCompare the quaternion components ofthisquaternion with the given quaternion using the givendeltaand return whether all of them are equal within a maximum difference ofdelta.Please note that this method is not used by any data structure such as
ArrayListHashSetorHashMapand their operations, such asArrayList.contains(Object)orHashSet.remove(Object), since those data structures only use theObject.equals(Object)andObject.hashCode()methods.- Specified by:
equalsin interfaceQuaternionfc- Parameters:
q- the other quaterniondelta- the allowed maximum difference- Returns:
truewhether all of the quaternion components are equal;falseotherwise
-
equals
public boolean equals(float x, float y, float z, float w)- Specified by:
equalsin interfaceQuaternionfc- Parameters:
x- the x component to compare toy- the y component to compare toz- the z component to compare tow- the w component to compare to- Returns:
trueif all the quaternion components are equal
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException- Overrides:
clonein classjava.lang.Object- Throws:
java.lang.CloneNotSupportedException
-
-