normalize method
Normalise in place. Returns the original length; a zero quaternion becomes the identity.
Implementation
double normalize() {
final len = length;
if (len < 1e-12) {
setIdentity();
return len;
}
final inv = 1.0 / len;
x *= inv;
y *= inv;
z *= inv;
w *= inv;
return len;
}