quat quat_normalize(const quat *q) { float length; quat tmp = *q; length = quat_length(q); tmp.w /= length; tmp.x /= length; tmp.y /= length; tmp.z /= length; return tmp; }
void quat_normalize(struct quaternion *a) { float l; l = quat_length(a); if (l == 0.f) { a->x = 1.f; a->y = a->z = a->w = 0.f; } else { float il = 1.f/l; a->x *= il; a->y *= il; a->z *= il; a->w *= il; } }