```cs
public struct Vector3F : IPosition
{
// Returns true if <paramref name="a"/> does not equal <paramref name="b"/>
public static bool operator !=(Vector3F a, Vector3F b);
// Returns true if all components of <paramref name="a"/> are greater than or equal to those of <paramref name="b"/>
public static bool operator >=(Vector3F a, Vector3F b);
// Returns true if all components of <paramref name="a"/> are greater than those of <paramref name="b"/>
public static bool operator >(Vector3F a, Vector3F b);
// Returns the cross product of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F Cross(Vector3F a, Vector3F b);
// Returns the dot product of <paramref name="a"/> and <paramref name="b"/>
public static float Dot(Vector3F a, Vector3F b);
public override bool Equals(object obj);
// Gets or sets a component by index (0=X, 1=Y, 2=Z)
public float this[int index];
// Creates a direction vector from pitch and yaw angles in radians
public static Vector3F FromPitchYaw(float pitch, float yaw);
public override int GetHashCode();
// IPosition implementation, returns itself
public Vector3F GetPosition();
// Returns true if any component of this vector is greater than the corresponding component in the other vector
public bool GreaterAny(Vector3F v);
// Returns true if any component of this vector is greater than or equal to the corresponding component in the other vector
public bool GreaterEqualAny(Vector3F v);
// Returns true if all components of this vector equal those of <paramref name="other"/>
public bool IsEqual(Vector3F other);
// Interpolates from one vector to another
public static Vector3F Lerp(Vector3F a, Vector3F b, float c);
// Returns true if any component of this vector is less than the corresponding component in the other vector
public bool LessAny(Vector3F v);
// Returns true if any component of this vector is less than or equal to the corresponding component in the other vector
public bool LessEqualAny(Vector3F v);
// The length of this vector
public float Magnitude;
// Returns the component-wise maximum of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F Max(Vector3F a, Vector3F b);
// A vector with all components set to MaxValue
public static Vector3F MAX = new(float.MaxValue);
// Returns the component-wise minimum of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F Min(Vector3F a, Vector3F b);
// A vector with all components set to MinValue
public static Vector3F MIN = new(float.MinValue);
// Transforms a vector by a matrix, ignoring translation
public Vector3F MultiplyOnly(Matrix4F b);
// Normalizes this vector in place
public void Normalize();
// Returns a normalized copy of this vector
public Vector3F Normalized;
// A vector with all components set to one
public static Vector3F One = new(1);
// Returns true if all components of <paramref name="a"/> are less than those of <paramref name="b"/>
public static bool operator <(Vector3F a, Vector3F b);
// Returns true if all components of <paramref name="a"/> are less than or equal to those of <paramref name="b"/>
public static bool operator <=(Vector3F a, Vector3F b);
// Returns true if <paramref name="a"/> equals <paramref name="b"/>
public static bool operator ==(Vector3F a, Vector3F b);
// Converts to Vector3
public System.Numerics.Vector3 ToNumerics();
public override string ToString();
// Transforms a normal vector by a matrix, ignoring translation
public static Vector3F TransformNormal(Vector3F a, Matrix4F b);
// A unit vector pointing upward (0, 1, 0)
public static Vector3F Up = new(0, 1, 0);
// Scales <paramref name="a"/> by scalar <paramref name="b"/>
public static Vector3F operator *(float b, Vector3F a);
// Scales <paramref name="a"/> by scalar <paramref name="b"/>
public static Vector3F operator *(Vector3F a, float b);
// Transforms a vector by a matrix, including translation
public static Vector3F operator *(Vector3F a, Matrix4F b);
// Returns the component-wise product of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F operator *(Vector3F a, Vector3F b);
// Returns the component-wise sum of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F operator +(Vector3F a, Vector3F b);
// Returns the negation of <paramref name="a"/>
public static Vector3F operator -(Vector3F a);
// Returns the component-wise difference of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F operator -(Vector3F a, Vector3F b);
// Divides scalar <paramref name="b"/> by each component of <paramref name="a"/>
public static Vector3F operator /(float b, Vector3F a);
// Divides <paramref name="a"/> by scalar <paramref name="b"/>
public static Vector3F operator /(Vector3F a, float b);
// Returns the component-wise quotient of <paramref name="a"/> and <paramref name="b"/>
public static Vector3F operator /(Vector3F a, Vector3F b);
// Creates a vector with all components set to <paramref name="v"/>
public Vector3F(float v);
// Creates a vector with the specified components
public Vector3F(float x, float y, float z);
// Creates a vector from a Vector3
public Vector3F(System.Numerics.Vector3 v);
// The X component
public float X;
// The Y component
public float Y;
// The Z component
public float Z;
// A vector with all components set to zero
public static Vector3F Zero = new(0);
}
```