QuaternionInvert function
True inverse: conjugate / length² (for non-unit quaternions).
Implementation
Quaternion QuaternionInvert(Quaternion q) {
final lenSq = q.x * q.x + q.y * q.y + q.z * q.z + q.w * q.w;
if (lenSq == 0) return q;
return Quaternion(-q.x / lenSq, -q.y / lenSq, -q.z / lenSq, q.w / lenSq);
}