716 {
717 float x = quaternion1.X;
718 float y = quaternion1.Y;
719 float z = quaternion1.Z;
720 float w = quaternion1.W;
721 float num = quaternion2.X * quaternion2.X + quaternion2.Y * quaternion2.Y + quaternion2.Z * quaternion2.Z + quaternion2.W * quaternion2.W;
722 float num2 = 1f / num;
723 float num3 = (0f - quaternion2.X) * num2;
724 float num4 = (0f - quaternion2.Y) * num2;
725 float num5 = (0f - quaternion2.Z) * num2;
726 float num6 = quaternion2.W * num2;
727 float num7 = y * num5 - z * num4;
728 float num8 = z * num3 - x * num5;
729 float num9 = x * num4 - y * num3;
730 float num10 = x * num3 + y * num4 + z * num5;
732 result.X = x * num6 + num3 * w + num7;
733 result.Y = y * num6 + num4 * w + num8;
734 result.Z = z * num6 + num5 * w + num9;
735 result.W = w * num6 - num10;
736 return result;
737 }
Quaternion(float x, float y, float z, float w)