1212 {
1213 float num = quaternion.X * quaternion.X;
1214 float num2 = quaternion.Y * quaternion.Y;
1215 float num3 = quaternion.Z * quaternion.Z;
1216 float num4 = quaternion.X * quaternion.Y;
1217 float num5 = quaternion.Z * quaternion.W;
1218 float num6 = quaternion.Z * quaternion.X;
1219 float num7 = quaternion.Y * quaternion.W;
1220 float num8 = quaternion.Y * quaternion.Z;
1221 float num9 = quaternion.X * quaternion.W;
1222 result.M11 = 1f - 2f * (num2 + num3);
1223 result.M12 = 2f * (num4 + num5);
1224 result.M13 = 2f * (num6 - num7);
1225 result.M14 = 0f;
1226 result.M21 = 2f * (num4 - num5);
1227 result.M22 = 1f - 2f * (num3 + num);
1228 result.M23 = 2f * (num8 + num9);
1229 result.M24 = 0f;
1230 result.M31 = 2f * (num6 + num7);
1231 result.M32 = 2f * (num8 - num9);
1232 result.M33 = 1f - 2f * (num2 + num);
1233 result.M34 = 0f;
1234 result.M41 = 0f;
1235 result.M42 = 0f;
1236 result.M43 = 0f;
1237 result.M44 = 1f;
1238 }