internal static float DotProduct(ref Vector3F vector1, ref Vector3F vector2) { return(vector1.X * vector2.X + vector1.Y * vector2.Y + vector1.Z * vector2.Z); }
public bool Equals(Vector3F value) { return(Equals(this, value)); }
public static Vector3F Multiply(float scalar, Vector3F vector) { return(new Vector3F(vector.X * scalar, vector.Y * scalar, vector.Z * scalar)); }
public static float DotProduct(Vector3F vector1, Vector3F vector2) { return(DotProduct(ref vector1, ref vector2)); }
public static Point3F Subtract(Vector3F vector, Point3F point) { return(new Point3F(vector.X - point.X, vector.Y - point.Y, vector.Z - point.Z)); }
public static Point3F Add(Vector3F vector, Point3F point) { return(new Point3F(vector.X + point.X, vector.Y + point.Y, vector.Z + point.Z)); }
public static Vector3F Subtract(Vector3F vector1, Vector3F vector2) { return(new Vector3F(vector1.X - vector2.X, vector1.Y - vector2.Y, vector1.Z - vector2.Z)); }
public static Vector3F Add(Vector3F vector1, Vector3F vector2) { return(new Vector3F(vector1.X + vector2.X, vector1.Y + vector2.Y, vector1.Z + vector2.Z)); }
public static float AngleBetween(Vector3F vector1, Vector3F vector2) { vector1.Normalize(); vector2.Normalize(); return(RadiansToDegrees(DotProduct(vector1, vector2) >= 0.0f ? 2.0f * ( float )Math.Asin((vector1 - vector2).Length / 2.0f) : ( float )Math.PI - 2.0f * ( float )Math.Asin((-vector1 - vector2).Length / 2.0f))); }