Quaternion
classin packageklyn.math
public class Quaternion<FLOAT_TYPE extends AbstractFloat = Double>
Quaternion

Hamilton quaternion, with scalar component first. Components need not form a unit quaternion; use geometry.Rotation3d for rotations.

Example

q = Quaternion<Double>(1.0, 0.0, 0.0, 0.0)

Properties
Modifier and Type Member Description
public property w
w as FLOAT_TYPE
Scalar component.
public property x
x as FLOAT_TYPE
First imaginary component.
public propert y
y y as FLOAT_TYPE
Second imaginary component.
public property z
z as FLOAT_TYPE
Third imaginary component.
Constructors
Modifier and Type Member Description
public Quaternion
Quaternion(w as FLOAT_TYPE = FLOAT_TYPE(0), x as FLOAT_TYPE = FLOAT_TYPE(0), y as FLOAT_TYPE = FLOAT_TYPE(0), z as FLOAT_TYPE = FLOAT_TYPE(0))
Creates a quaternion (w, x, y, z).
Methods
Modifier and Type Member Description
public conjugate
conjugate() as Quaternion<FLOAT_TYPE>
Returns the conjugate.
public inverse
inverse() as Quaternion<FLOAT_TYPE>
Returns the multiplicative inverse.
public norm
norm() as Double
Scaled Euclidean norm, avoiding intermediate overflow.
public normalized
normalized() as Quaternion<Double>
Returns a unit quaternion.
Operators
Modifier and Type Member Description
public static operator*(a as Quaternion<FLOAT_TYPE>, b as Quaternion<FLOAT_TYPE>) as Quaternion<FLOAT_TYPE> Hamilton product; multiplication is not commutative.
public static operator*(q as Quaternion<FLOAT_TYPE>, scale as FLOAT_TYPE) as Quaternion<FLOAT_TYPE> Scalar product.
public static operator+(a as Quaternion<FLOAT_TYPE>, b as Quaternion<FLOAT_TYPE>) as Quaternion<FLOAT_TYPE> Component sum.
public static operator-(a as Quaternion<FLOAT_TYPE>, b as Quaternion<FLOAT_TYPE>) as Quaternion<FLOAT_TYPE> Component difference.