Skip to content

Vector3

struct · namespace Hazel

Implements IEquatable<Vector3>

public struct Vector3 : IEquatable<Vector3>

Constructors

Vector3(Vector2)

public Vector3(Vector2 vector)

Vector3(Vector2, float)

public Vector3(Vector2 xy, float z)

Vector3(Vector4)

public Vector3(Vector4 vector)

Vector3(float)

public Vector3(float scalar)

Vector3(float, Vector2)

public Vector3(float x, Vector2 yz)

Vector3(float, float, float)

public Vector3(float x, float y, float z)

Fields

Field Description
public static Vector3 Back
public static Vector3 Down
public static Vector3 Forward
public static Vector3 Inifinity
public const float kEpsilonNormalSqrt = 1e-15F
public static Vector3 Left
public static Vector3 One
public static Vector3 Right
public static Vector3 Up
public float X
public float Y
public float Z
public static Vector3 Zero

Properties

sqrMagnitude

public float sqrMagnitude { get; }

XY

public Vector2 XY { get; set; }

XZ

public Vector2 XZ { get; set; }

YZ

public Vector2 YZ { get; set; }

Methods

Abs(Vector3)

static

public static Vector3 Abs(Vector3 vector)

Angle(Vector3, Vector3)

static

public static float Angle(Vector3 from, Vector3 to)

Apply(Func)

public void Apply(Func<float, float> func)

Allows you to pass in a delegate that takes in a double to process the vector per axis. i.e. (Mathf.Cos) or a lambda (v => v * 3)

Parameters

Name Description
func Delegate 'float' method to act as a scalar to process X, Y and Z

Clamp(Vector3, Vector3)

public void Clamp(Vector3 min, Vector3 max)

ClampLength(Vector3, float)

static

public static Vector3 ClampLength(Vector3 vector, float maxLength)

Cos(Vector3)

static

public static Vector3 Cos(Vector3 vector)

Cross(Vector3, Vector3)

static

public static Vector3 Cross(Vector3 x, Vector3 y)

DirectionFromEuler(Vector3)

static

public static Vector3 DirectionFromEuler(Vector3 rotation)

Distance(Vector3)

public float Distance(Vector3 other)

Distance(Vector3, Vector3)

static

public static float Distance(Vector3 p1, Vector3 p2)

Dot(Vector3, Vector3)

static

public static float Dot(Vector3 lhs, Vector3 rhs)

EpsilonEquals(Vector3, Vector3, float)

static

public static bool EpsilonEquals(Vector3 left, Vector3 right, float epsilon = Mathf.Epsilon)

EqualEpsilon(Vector3, float)

public bool EqualEpsilon(Vector3 other, float epsilon = Mathf.Epsilon)

Equals(Vector3)

public bool Equals(Vector3 right)

Equals(object?)

public override bool Equals(object? obj)

GetHashCode()

public override int GetHashCode()

Length()

public float Length()

Lerp(Vector3, Vector3, float)

static

public static Vector3 Lerp(Vector3 p1, Vector3 p2, float t)

New(Func)

public Vector3 New(Func<float, float> func)

Allows you to pass in a delegate that takes in and returns a new Vector processed per axis. i.e. (float.Cos) or a lambda (v => v * 3)

Parameters

Name Description
func Delegate 'float' method to act as a scalar to process X, Y and Z

Normalize()

public void Normalize()

Normalized()

public Vector3 Normalized()

SignedAngle(Vector3, Vector3, Vector3)

static

public static float SignedAngle(Vector3 from, Vector3 to, Vector3 axis)

Sin(Vector3)

static

public static Vector3 Sin(Vector3 vector)

ToString()

public override string ToString()

UnwrapEuler(Vector3, Vector3)

static

public static Vector3 UnwrapEuler(Vector3 previous, Vector3 current)

Operators

operator !=(Vector3, Vector3)

static

public static bool operator !=(Vector3 left, Vector3 right)

operator *(Vector3, Vector3)

static

public static Vector3 operator *(Vector3 left, Vector3 right)

operator *(Vector3, float)

static

public static Vector3 operator *(Vector3 left, float scalar)

operator *(float, Vector3)

static

public static Vector3 operator *(float scalar, Vector3 right)

operator +(Vector3, Vector3)

static

public static Vector3 operator +(Vector3 left, Vector3 right)

operator +(Vector3, float)

static

public static Vector3 operator +(Vector3 left, float right)

operator -(Vector3, Vector3)

static

public static Vector3 operator -(Vector3 left, Vector3 right)

operator -(Vector3, float)

static

public static Vector3 operator -(Vector3 left, float right)

operator -(Vector3)

static

public static Vector3 operator -(Vector3 vector)

operator /(Vector3, Vector3)

static

public static Vector3 operator /(Vector3 left, Vector3 right)

operator /(Vector3, float)

static

public static Vector3 operator /(Vector3 left, float scalar)

operator /(float, Vector3)

static

public static Vector3 operator /(float scalar, Vector3 right)

operator ==(Vector3, Vector3)

static

public static bool operator ==(Vector3 left, Vector3 right)

Source: Hazel/Math/Vector3.cs