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

◆ Lerp()

static Quaternion System.Numerics.Quaternion.Lerp ( Quaternion quaternion1,
Quaternion quaternion2,
float amount )
inlinestatic

Definition at line 273 of file Quaternion.cs.

274 {
275 float num = 1f - amount;
276 Quaternion result = default(Quaternion);
277 float num2 = quaternion1.X * quaternion2.X + quaternion1.Y * quaternion2.Y + quaternion1.Z * quaternion2.Z + quaternion1.W * quaternion2.W;
278 if (num2 >= 0f)
279 {
280 result.X = num * quaternion1.X + amount * quaternion2.X;
281 result.Y = num * quaternion1.Y + amount * quaternion2.Y;
282 result.Z = num * quaternion1.Z + amount * quaternion2.Z;
283 result.W = num * quaternion1.W + amount * quaternion2.W;
284 }
285 else
286 {
287 result.X = num * quaternion1.X - amount * quaternion2.X;
288 result.Y = num * quaternion1.Y - amount * quaternion2.Y;
289 result.Z = num * quaternion1.Z - amount * quaternion2.Z;
290 result.W = num * quaternion1.W - amount * quaternion2.W;
291 }
292 float x = result.X * result.X + result.Y * result.Y + result.Z * result.Z + result.W * result.W;
293 float num3 = 1f / MathF.Sqrt(x);
294 result.X *= num3;
295 result.Y *= num3;
296 result.Z *= num3;
297 result.W *= num3;
298 return result;
299 }
Quaternion(float x, float y, float z, float w)
Definition Quaternion.cs:21

References System.MathF.Sqrt(), System.Numerics.Quaternion.W, System.Numerics.Quaternion.X, System.Numerics.Quaternion.Y, and System.Numerics.Quaternion.Z.