Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Lerp() [2/2]

static void Microsoft.Xna.Framework.Quaternion.Lerp ( ref Quaternion quaternion1,
ref Quaternion quaternion2,
float amount,
out Quaternion result )
inlinestatic

Definition at line 407 of file Quaternion.cs.

408 {
409 float num = 1f - amount;
410 float num2 = quaternion1.X * quaternion2.X + quaternion1.Y * quaternion2.Y + quaternion1.Z * quaternion2.Z + quaternion1.W * quaternion2.W;
411 if (num2 >= 0f)
412 {
413 result.X = num * quaternion1.X + amount * quaternion2.X;
414 result.Y = num * quaternion1.Y + amount * quaternion2.Y;
415 result.Z = num * quaternion1.Z + amount * quaternion2.Z;
416 result.W = num * quaternion1.W + amount * quaternion2.W;
417 }
418 else
419 {
420 result.X = num * quaternion1.X - amount * quaternion2.X;
421 result.Y = num * quaternion1.Y - amount * quaternion2.Y;
422 result.Z = num * quaternion1.Z - amount * quaternion2.Z;
423 result.W = num * quaternion1.W - amount * quaternion2.W;
424 }
425 float num3 = result.X * result.X + result.Y * result.Y + result.Z * result.Z + result.W * result.W;
426 float num4 = 1f / (float)Math.Sqrt(num3);
427 result.X *= num4;
428 result.Y *= num4;
429 result.Z *= num4;
430 result.W *= num4;
431 }
static double Sqrt(double d)

References System.Math.Sqrt().