Class Quaternion
- java.lang.Object
-
- WildMagic.LibFoundation.Mathematics.Quaternion
-
- All Implemented Interfaces:
java.io.Serializable
public class Quaternion extends java.lang.Object implements java.io.SerializableA quaternion is q = w + x*i + y*j + z*k where (w,x,y,z) is not necessarily a unit length vector in 4D.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static QuaternionIDENTITYprivate float[]m_afTupleprivate static int[]ms_iNextsupport for FromRotationMatrixprivate static longserialVersionUIDstatic QuaternionZERO
-
Constructor Summary
Constructors Constructor Description Quaternion()construction: uninitializedQuaternion(float fW, float fX, float fY, float fZ)Quaternion(Matrix3f rkRot)quaternion for the input rotation matrixQuaternion(Quaternion rkQ)Quaternion(Vector3f[] akRotColumn)quaternion for the rotation matrix with specified columnsQuaternion(Vector3f rkAxis, float fAngle)quaternion for the rotation of the axis-angle pair
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description QuaternionAdd(Quaternion rkQ)voidAlign(Vector3f rkV1, Vector3f rkV2)Compute a quaternion that rotates unit-length vector V1 to unit-length vector V2.floatDot(Quaternion rkQ)voidFromAxisAngle(Vector3f rkAxis, float fAngle)voidFromRotationMatrix(Matrix3f rkRot)voidFromRotationMatrix(Vector3f[] akRotColumn)QuaternionNeg()private floatNorm()Caculate the square lengthvoidNormalize()Normalizes the value of this quaternion in place.QuaternionScale(float fScalar)QuaternionSub(Quaternion rkQ)floatToAxisAngle(Vector3f rkAxis)voidToRotationMatrix(Matrix3f rkRot)voidToRotationMatrix(Vector3f[] akRotColumn)floatW()Get the W-component.floatX()Get the X-componentfloatY()Get the Y-componentfloatZ()Get the Z-component
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
IDENTITY
public static final Quaternion IDENTITY
-
ZERO
public static final Quaternion ZERO
-
ms_iNext
private static int[] ms_iNext
support for FromRotationMatrix
-
m_afTuple
private float[] m_afTuple
-
-
Constructor Detail
-
Quaternion
public Quaternion()
construction: uninitialized
-
Quaternion
public Quaternion(float fW, float fX, float fY, float fZ)
-
Quaternion
public Quaternion(Matrix3f rkRot)
quaternion for the input rotation matrix
-
Quaternion
public Quaternion(Quaternion rkQ)
-
Quaternion
public Quaternion(Vector3f rkAxis, float fAngle)
quaternion for the rotation of the axis-angle pair
-
Quaternion
public Quaternion(Vector3f[] akRotColumn)
quaternion for the rotation matrix with specified columns
-
-
Method Detail
-
Add
public final Quaternion Add(Quaternion rkQ)
-
Align
public void Align(Vector3f rkV1, Vector3f rkV2)
Compute a quaternion that rotates unit-length vector V1 to unit-length vector V2. The rotation is about the axis perpendicular to both V1 and V2, with angle of that between V1 and V2. If V1 and V2 are parallel, any axis of rotation will do, such as the permutation (z2,x2,y2), where V2 = (x2,y2,z2).
-
Dot
public final float Dot(Quaternion rkQ)
-
FromAxisAngle
public void FromAxisAngle(Vector3f rkAxis, float fAngle)
-
FromRotationMatrix
public void FromRotationMatrix(Matrix3f rkRot)
-
FromRotationMatrix
public void FromRotationMatrix(Vector3f[] akRotColumn)
-
Neg
public final Quaternion Neg()
-
Normalize
public final void Normalize()
Normalizes the value of this quaternion in place.
-
Scale
public final Quaternion Scale(float fScalar)
-
Sub
public final Quaternion Sub(Quaternion rkQ)
-
ToAxisAngle
public float ToAxisAngle(Vector3f rkAxis)
-
ToRotationMatrix
public void ToRotationMatrix(Matrix3f rkRot)
-
ToRotationMatrix
public void ToRotationMatrix(Vector3f[] akRotColumn)
-
W
public float W()
Get the W-component.- Returns:
- m_afTuple[0]
-
X
public float X()
Get the X-component- Returns:
- m_afTuple[1]
-
Y
public float Y()
Get the Y-component- Returns:
- m_afTuple[2]
-
Z
public float Z()
Get the Z-component- Returns:
- m_afTuple[3]
-
Norm
private final float Norm()
Caculate the square length- Returns:
- square length of the quaternion
-
-