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

◆ Transform() [16/16]

static void Microsoft.Xna.Framework.Vector4.Transform ( Vector4[] sourceArray,
ref Quaternion rotation,
Vector4[] destinationArray )
inlinestatic

Definition at line 671 of file Vector4.cs.

672 {
673 if (sourceArray == null)
674 {
675 throw new ArgumentNullException("sourceArray");
676 }
677 if (destinationArray == null)
678 {
679 throw new ArgumentNullException("destinationArray");
680 }
681 if (destinationArray.Length < sourceArray.Length)
682 {
683 throw new ArgumentException(FrameworkResources.NotEnoughTargetSize);
684 }
685 float num = rotation.X + rotation.X;
686 float num2 = rotation.Y + rotation.Y;
687 float num3 = rotation.Z + rotation.Z;
688 float num4 = rotation.W * num;
689 float num5 = rotation.W * num2;
690 float num6 = rotation.W * num3;
691 float num7 = rotation.X * num;
692 float num8 = rotation.X * num2;
693 float num9 = rotation.X * num3;
694 float num10 = rotation.Y * num2;
695 float num11 = rotation.Y * num3;
696 float num12 = rotation.Z * num3;
697 float num13 = 1f - num10 - num12;
698 float num14 = num8 - num6;
699 float num15 = num9 + num5;
700 float num16 = num8 + num6;
701 float num17 = 1f - num7 - num12;
702 float num18 = num11 - num4;
703 float num19 = num9 - num5;
704 float num20 = num11 + num4;
705 float num21 = 1f - num7 - num10;
706 for (int i = 0; i < sourceArray.Length; i++)
707 {
708 float x = sourceArray[i].X;
709 float y = sourceArray[i].Y;
710 float z = sourceArray[i].Z;
711 destinationArray[i].X = x * num13 + y * num14 + z * num15;
712 destinationArray[i].Y = x * num16 + y * num17 + z * num18;
713 destinationArray[i].Z = x * num19 + y * num20 + z * num21;
715 }
716 }

References System.destinationArray, Microsoft.Xna.Framework.FrameworkResources.NotEnoughTargetSize, and System.sourceArray.