Quaternion Quaternion_fromAxisAngle(Vector axis, float angle) { Quaternion quaternion; float sinAngle; angle *= 0.5f; Vector_normalize(&axis); sinAngle = sin(angle); quaternion.x = (axis.x * sinAngle); quaternion.y = (axis.y * sinAngle); quaternion.z = (axis.z * sinAngle); quaternion.w = cos(angle); return quaternion; }
int Vector3f_unit (Vector3f *v) { CHECK_VECTOR3F(v); return Vector_normalize (v); }
int EulerAngles_unit (EulerAngles *e) { CHECK_EULERANGLES(e); return Vector_normalize (e); }