示例#1
0
 public static void Cross(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = a.Y * b.Z - a.Z * b.Y;
     result.Y = a.Z * b.X - a.X * b.Z;
     result.Z = a.X * b.Y - a.Y * b.X;
 }
示例#2
0
 public static void Multiply(ref Vector3Wide a, float b, out Vector3Wide result)
 {
     result.X = a.X * b;
     result.Y = a.Y * b;
     result.Z = a.Z * b;
 }
示例#3
0
 internal static unsafe void Transpose(ref Vector3Wide source, Vector3* result)
 {
     for (int i = 0; i < Vector<float>.Count; ++i)
     {
         result[i] = new Vector3(source.X[i], source.Y[i], source.Z[i]);
     }
 }
示例#4
0
 public static void Add(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = a.X + b.X;
     result.Y = a.Y + b.Y;
     result.Z = a.Z + b.Z;
 }
示例#5
0
 internal static void Dot(ref Vector3Wide a, ref Vector3Wide b, out Vector<float> result)
 {
     result = a.X * b.X + a.Y * b.Y + a.Z * b.Z;
 }
示例#6
0
 internal static void Min(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = Vector.Min(a.X, b.X);
     result.Y = Vector.Min(a.Y, b.Y);
     result.Z = Vector.Min(a.Z, b.Z);
 }
示例#7
0
 internal static void Max(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = Vector.Max(a.X, b.X);
     result.Y = Vector.Max(a.Y, b.Y);
     result.Z = Vector.Max(a.Z, b.Z);
 }
示例#8
0
 internal static void Dot(ref Vector3Wide a, ref Vector3Wide b, out Vector <float> result)
 {
     result = a.X * b.X + a.Y * b.Y + a.Z * b.Z;
 }
示例#9
0
 public static void Cross(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = a.Y * b.Z - a.Z * b.Y;
     result.Y = a.Z * b.X - a.X * b.Z;
     result.Z = a.X * b.Y - a.Y * b.X;
 }
示例#10
0
 internal static void ConditionalSelect(ref Vector <int> mask, ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = Vector.ConditionalSelect(mask, a.X, b.X);
     result.Y = Vector.ConditionalSelect(mask, a.Y, b.Y);
     result.Z = Vector.ConditionalSelect(mask, a.Z, b.Z);
 }
示例#11
0
 public static void Multiply(ref Vector3Wide a, float b, out Vector3Wide result)
 {
     result.X = a.X * b;
     result.Y = a.Y * b;
     result.Z = a.Z * b;
 }
示例#12
0
 public static void Subtract(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = a.X - b.X;
     result.Y = a.Y - b.Y;
     result.Z = a.Z - b.Z;
 }
示例#13
0
 public static void Add(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = a.X + b.X;
     result.Y = a.Y + b.Y;
     result.Z = a.Z + b.Z;
 }
示例#14
0
 public static void Negate(ref Vector3Wide v, out Vector3Wide result)
 {
     result.X = -v.X;
     result.Y = -v.Y;
     result.Z = -v.Z;
 }
示例#15
0
 internal static void ConditionalSelect(ref Vector<int> mask, ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = Vector.ConditionalSelect(mask, a.X, b.X);
     result.Y = Vector.ConditionalSelect(mask, a.Y, b.Y);
     result.Z = Vector.ConditionalSelect(mask, a.Z, b.Z);
 }
示例#16
0
 public static void Subtract(ref Vector3Wide a, ref Vector3Wide b, out Vector3Wide result)
 {
     result.X = a.X - b.X;
     result.Y = a.Y - b.Y;
     result.Z = a.Z - b.Z;
 }
示例#17
0
 public static void Negate(ref Vector3Wide v, out Vector3Wide result)
 {
     result.X = -v.X;
     result.Y = -v.Y;
     result.Z = -v.Z;
 }