// Token: 0x0600039E RID: 926 RVA: 0x0000CD04 File Offset: 0x0000AF04 public static Quaternion Slerp(Quaternion start, Quaternion end, float percentage) { float num = Quaternion.CalculateDotProduct(start, end); if (num < 0f) { num = -num; end = -end; } if (1f - num > 1.401298E-45f) { float num2 = (float)System.Math.Acos((double)num); Vector3D vector3D = new Vector3D((float)System.Math.Sin((double)(num2 * (1f - percentage))), (float)System.Math.Sin((double)(num2 * percentage)), (float)System.Math.Sin((double)num2)); return(new Quaternion((start.x * vector3D.X + end.x * vector3D.Y) / vector3D.Z, (start.y * vector3D.X + end.y * vector3D.Y) / vector3D.Z, (start.z * vector3D.X + end.z * vector3D.Y) / vector3D.Z, (start.w * vector3D.X + end.w * vector3D.Y) / vector3D.Z)); } return(Quaternion.Lerp(start, end, percentage)); }