Quaternion.fromEuler constructor
Constructs a quaternion from an euler rotation.
Implementation
factory Quaternion.fromEuler(num phi, num theta, num psi) {
final halfPhi = phi * 0.5;
final halfTheta = theta * 0.5;
final halfPsi = psi * 0.5;
final cosPhi = halfPhi.cos();
final cosTheta = halfTheta.cos();
final cosPsi = halfPsi.cos();
final sinPhi = halfPhi.sin();
final sinTheta = halfTheta.sin();
final sinPsi = halfPsi.sin();
return Quaternion(
cosTheta * cosPsi * cosPhi - sinTheta * sinPsi * sinPhi,
sinTheta * cosPsi * cosPhi - cosTheta * sinPsi * sinPhi,
cosTheta * sinPsi * cosPhi + sinTheta * cosPsi * sinPhi,
cosTheta * cosPsi * sinPhi + sinTheta * sinPsi * cosPhi,
);
}