Maven module :un.api : api-math :
Class : un.impl.math.Quaternion
Extends/Implements : un.impl.math.DefaultTuple
Subclasses : -

Quaternion object.
Definition : http://en.wikipedia.org/wiki/Quaternion
author  Johann Sorel


Variables : -
Functions : Quaternion, Quaternion, Quaternion, Quaternion, Quaternion, normalize, localNormalize, norm, conjugate, add, multiply, localMultiply, inverse, copy, rotate, lerp, slerp, toMatrix3, toMatrix4, toEuler, toAxisAngle, fromMatrix, fromAngle, fromEuler, createFromEuler, createFromAxis




Default quaternion with values [0,0,0,1] .
public void Quaternion ()


Quaternion from 4 values.
param  x quaternion first value
param  y quaternion second value
param  z quaternion third value
param  w quaternion fourth value
public void Quaternion (double x, double y, double z, double w)


Expected an array of size 4.
Warning : no copy of the array is made.
param  values no copy of the array is made.
public void Quaternion (double[] values)


Expect an array of size 4.
Warning : a copy of the array is made.
param  values a copy of the array is made.
public void Quaternion (float[] values)


Expect an tuple of size 4.
param  v quaternion values to copy from
public void Quaternion (Tuple v)


Store the normalized values of this queternion in given buffer.
param  buffer, can be null
return  buffer quaternion
public Quaternion normalize (Quaternion buffer)


Normalize this quaternion.
return  this quaternion
public Quaternion localNormalize ()


Calculate quaternion norm.
return  norm
public double norm ()


Calculate quaternion conjugate.
return  Quaternion
public Quaternion conjugate ()


Add two quaternions.
param  other
return  Quaternion
public Quaternion add (Quaternion other)


Multiply two quaternions.
param  other
return  Quaternion
public Quaternion multiply (Quaternion other)


Multiply two quaternions. store result in this quaternion.
param  other
return  Quaternion
public Quaternion localMultiply (Quaternion other)


Calculate inverse quaternion.
return  Quaternion, never null
public Quaternion inverse ()


Create a copy of this quaternion.
return  Quaternion, never null
public Quaternion copy ()


Rotate the given vector, store the result in buffer.
param  v vector to rotate
param  buffer can be null
return  rotated vector
public Vector rotate (Vector v, Vector buffer)


Create an linear interpolated quaternion.
A ratio of 0 while return the same values as this quaternion
A ratio of 1 while return the same values as other quaternion
param  other not null
param  ratio range [0...1]
param  buffer can be null
return  interpolated quaternion
public Quaternion lerp (Quaternion other, double ratio, Quaternion buffer)


Create a spherical interpolated quaternion.
A ratio of 0 while return the same values as this quaternion
A ratio of 1 while return the same values as other quaternion
param  other not null
param  ratio range [0...1]
param  buffer can be null
return  interpolated quaternion
public Quaternion slerp (Quaternion other, double ratio, Quaternion buffer)


Transform quaternion in a rotation matrix 3x3.
Source : http://jeux.developpez.com/faq/math/?page=quaternions#Q54
return  Matrix3
public Matrix3 toMatrix3 ()


Transform quaternion in a rotation matrix 4x4.
return  Matrix4
public Matrix4 toMatrix4 ()


Convert to euler angles.
return  euler angle in radians (heading/yaw , elevation/pitch , bank/roll)
public Vector toEuler ()


Convert quaternion to axis angle.
param  axisBuffer
return  angle in radians
public double toAxisAngle (Tuple axisBuffer)


Extract rotation from matrix.
http://jeux.developpez.com/faq/math/?page=quaternions#Q55
param  matrix
return  Quaternion
public Quaternion fromMatrix (Matrix matrix)


Set quaternion values from rotation axis and angle.
param  axis rotation axis, not null
param  angle rotation angle, in radians
return  this quaternion
public Quaternion fromAngle (Tuple axis, double angle)


Set quaternion values from euler angles.
param  euler angles in radians (heading/yaw , elevation/pitch , bank/roll)
return  this quaternion
public Quaternion fromEuler (Vector euler)


Create a new quaternion from given euler angles.
param  euler angles in radians (heading/yaw , elevation/pitch , bank/roll)
return  Quaternion, never null
public Quaternion createFromEuler (Vector euler)


Create a new quaternion from given axis and angle.
param  axis
param  angle
return  Quaternion, never null
public Quaternion createFromAxis (Vector axis, double angle)