Table of Contents

Struct Vector2

Namespace
Alis.Core.Aspect.Math.Vector
Assembly
Alis.dll

The vector

[Serializable]
public struct Vector2 : IEquatable<Vector2>, IFormattable, ISerializable

Implements

Inherited Members

Extension Methods

Constructors

Vector2(float)

Creates a new Alis.Core.Aspect.Math.Vector.Vector2 object whose two elements have the same value.

public Vector2(float value)

Parameters

value float

The value to assign to both elements.

Vector2(float, float)

Creates a vector whose elements have the specified values.

public Vector2(float x, float y)

Parameters

x float

The value to assign to the Alis.Core.Aspect.Math.Vector.Vector2.X field.

y float

The value to assign to the Alis.Core.Aspect.Math.Vector.Vector2.Y field.

Properties

One

Gets a vector whose 2 elements are equal to one.

public static Vector2 One { get; }

Property Value

Vector2

UnitX

Gets the vector (1,0).

public static Vector2 UnitX { get; }

Property Value

Vector2

UnitY

Gets the vector (0,1).

public static Vector2 UnitY { get; }

Property Value

Vector2

X

The X component of the vector.

public float X { readonly get; set; }

Property Value

float

Y

The Y component of the vector.

public float Y { readonly get; set; }

Property Value

float

Zero

Returns a vector whose 2 elements are equal to zero.

public static Vector2 Zero { get; }

Property Value

Vector2

Methods

Abs(Vector2)

Returns a vector whose elements are the absolute values of each of the specified vector's elements.

public static Vector2 Abs(Vector2 value)

Parameters

value Vector2

A vector.

Returns

Vector2

The absolute value vector.

Add(Vector2, Vector2)

Adds two vectors together.

public static Vector2 Add(Vector2 left, Vector2 right)

Parameters

left Vector2

The first vector to add.

right Vector2

The second vector to add.

Returns

Vector2

The summed vector.

Add(ref Vector2, ref Vector2, out Vector2)

Adds the left

public static void Add(ref Vector2 left, ref Vector2 right, out Vector2 result)

Parameters

left Vector2

The left

right Vector2

The right

result Vector2

The result

Clamp(Vector2, Vector2, Vector2)

Restricts a vector between a minimum and a maximum value.

public static Vector2 Clamp(Vector2 value1, Vector2 min, Vector2 max)

Parameters

value1 Vector2

The vector to restrict.

min Vector2

The minimum value.

max Vector2

The maximum value.

Returns

Vector2

The restricted vector.

CopyTo(float[], int)

Copies the elements of the vector to a specified array starting at a specified index position.

public void CopyTo(float[] array, int index = 0)

Parameters

array float[]

The destination array.

index int

The index at which to copy the first element of the vector.

Remarks

array must have a sufficient number of elements to accommodate the two vector elements. In other words, elements index and index + 1 must already exist in array.

Exceptions

ArgumentNullException

array is null.

ArgumentException

The number of elements in the current instance is greater than in the array.

ArgumentOutOfRangeException

index is less than zero. -or- index is greater than or equal to the array length.

RankException

array is multidimensional.

Distance(Vector2, Vector2)

Computes the Euclidean distance between the two given points.

public static float Distance(Vector2 value1, Vector2 value2)

Parameters

value1 Vector2

The first point.

value2 Vector2

The second point.

Returns

float

The distance.

Distance(ref Vector2, ref Vector2, out float)

Distances the v 1

public static void Distance(ref Vector2 v1, ref Vector2 v2, out float result)

Parameters

v1 Vector2

The

v2 Vector2

The

result float

The result

DistanceSquared(Vector2, Vector2)

Returns the Euclidean distance squared between two specified points.

public static float DistanceSquared(Vector2 value1, Vector2 value2)

Parameters

value1 Vector2

The first point.

value2 Vector2

The second point.

Returns

float

The distance squared.

DistanceSquared(ref Vector2, ref Vector2, out float)

Distances the squared using the specified v 1

public static void DistanceSquared(ref Vector2 v1, ref Vector2 v2, out float result)

Parameters

v1 Vector2

The

v2 Vector2

The

result float

The result

Divide(Vector2, Vector2)

Divides the first vector by the second.

public static Vector2 Divide(Vector2 left, Vector2 right)

Parameters

left Vector2

The first vector.

right Vector2

The second vector.

Returns

Vector2

The vector resulting from the division.

Divide(Vector2, float)

Divides the specified vector by a specified scalar value.

public static Vector2 Divide(Vector2 left, float divisor)

Parameters

left Vector2

The vector.

divisor float

The scalar value.

Returns

Vector2

The vector that results from the division.

Divide(ref Vector2, float, out Vector2)

Divides the left

public static void Divide(ref Vector2 left, float right, out Vector2 result)

Parameters

left Vector2

The left

right float

The right

result Vector2

The result

Dot(Vector2, Vector2)

Returns the dot product of two vectors.

public static float Dot(Vector2 value1, Vector2 value2)

Parameters

value1 Vector2

The first vector.

value2 Vector2

The second vector.

Returns

float

The dot product.

Dot(ref Vector2, ref Vector2, out float)

Dots the left

public static void Dot(ref Vector2 left, ref Vector2 right, out float result)

Parameters

left Vector2

The left

right Vector2

The right

result float

The result

Equals(object)

Returns a value that indicates whether this instance and a specified object are equal.

public override bool Equals(object obj)

Parameters

obj object

The object to compare with the current instance.

Returns

bool

true if the current instance and obj are equal; otherwise, false. If obj is null, the method returns false.

Remarks

The current instance and obj are equal if obj is a Alis.Core.Aspect.Math.Vector.Vector2 object and their Alis.Core.Aspect.Math.Vector.Vector2.X and Alis.Core.Aspect.Math.Vector.Vector2.Y elements are equal.

Equals(Vector2)

Returns a value that indicates whether this instance and another vector are equal.

public bool Equals(Vector2 other)

Parameters

other Vector2

The other vector.

Returns

bool

true if the two vectors are equal; otherwise, false.

Remarks

Two vectors are equal if their Alis.Core.Aspect.Math.Vector.Vector2.X and Alis.Core.Aspect.Math.Vector.Vector2.Y elements are equal.

GetHashCode()

Returns the hash code for this instance.

public override int GetHashCode()

Returns

int

The hash code.

GetObjectData(SerializationInfo, StreamingContext)

Gets the object data using the specified info

public void GetObjectData(SerializationInfo info, StreamingContext context)

Parameters

info SerializationInfo

The info

context StreamingContext

The context

Length()

Returns the length of the vector.

public float Length()

Returns

float

The vector's length.

LengthSquared()

Returns the length of the vector squared.

public float LengthSquared()

Returns

float

The vector's length squared.

Remarks

This operation offers better performance than a call to the Alis.Core.Aspect.Math.Vector.Vector2.Length method.

LerP(Vector2, Vector2, float)

Performs a linear interpolation between two vectors based on the given weighting.

public static Vector2 LerP(Vector2 value1, Vector2 value2, float amount)

Parameters

value1 Vector2

The first vector.

value2 Vector2

The second vector.

amount float

A value between 0 and 1 that indicates the weight of value2.

Returns

Vector2

The interpolated vector.

Remarks

The behavior of this method changed in .NET 5.0. For more information, see [Behavior change for Vector2.Lerp and Vector4.Lerp](/dotnet/core/compatibility/3.1-5.0#behavior-change-for-vector2lerp-and-vector4lerp).

Max(Vector2, Vector2)

Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.

public static Vector2 Max(Vector2 value1, Vector2 value2)

Parameters

value1 Vector2

The first vector.

value2 Vector2

The second vector.

Returns

Vector2

The maximized vector.

Max(ref Vector2, ref Vector2, out Vector2)

Maxes the v 1

public static void Max(ref Vector2 v1, ref Vector2 v2, out Vector2 result)

Parameters

v1 Vector2

The

v2 Vector2

The

result Vector2

The result

Min(Vector2, Vector2)

Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.

public static Vector2 Min(Vector2 value1, Vector2 value2)

Parameters

value1 Vector2

The first vector.

value2 Vector2

The second vector.

Returns

Vector2

The minimized vector.

Min(ref Vector2, ref Vector2, out Vector2)

Mins the v 1

public static void Min(ref Vector2 v1, ref Vector2 v2, out Vector2 result)

Parameters

v1 Vector2

The

v2 Vector2

The

result Vector2

The result

Multiply(Vector2, Vector2)

Returns a new vector whose values are the product of each pair of elements in two specified vectors.

public static Vector2 Multiply(Vector2 left, Vector2 right)

Parameters

left Vector2

The first vector.

right Vector2

The second vector.

Returns

Vector2

The element-wise product vector.

Multiply(Vector2, float)

Multiplies a vector by a specified scalar.

public static Vector2 Multiply(Vector2 left, float right)

Parameters

left Vector2

The vector to multiply.

right float

The scalar value.

Returns

Vector2

The scaled vector.

Multiply(float, Vector2)

Multiplies a scalar value by a specified vector.

public static Vector2 Multiply(float left, Vector2 right)

Parameters

left float

The scaled value.

right Vector2

The vector.

Returns

Vector2

The scaled vector.

Multiply(ref Vector2, ref Vector2, out Vector2)

Multiplies the left

public static void Multiply(ref Vector2 left, ref Vector2 right, out Vector2 result)

Parameters

left Vector2

The left

right Vector2

The right

result Vector2

The result

Multiply(ref Vector2, float, out Vector2)

Multiplies the left

public static void Multiply(ref Vector2 left, float right, out Vector2 result)

Parameters

left Vector2

The left

right float

The right

result Vector2

The result

Negate(Vector2)

Negates a specified vector.

public static Vector2 Negate(Vector2 value)

Parameters

value Vector2

The vector to negate.

Returns

Vector2

The negated vector.

Normalize(Vector2)

Returns a vector with the same direction as the specified vector, but with a length of one.

public static Vector2 Normalize(Vector2 value)

Parameters

value Vector2

The vector to normalize.

Returns

Vector2

The normalized vector.

Normalize()

Normalizes this instance

public void Normalize()

Reflect(Vector2, Vector2)

Returns the reflection of a vector off a surface that has the specified normal.

public static Vector2 Reflect(Vector2 vector, Vector2 normal)

Parameters

vector Vector2

The source vector.

normal Vector2

The normal of the surface being reflected off.

Returns

Vector2

The reflected vector.

SquareRoot(Vector2)

Returns a vector whose elements are the square root of each of a specified vector's elements.

public static Vector2 SquareRoot(Vector2 value)

Parameters

value Vector2

A vector.

Returns

Vector2

The square root vector.

Subtract(Vector2, Vector2)

Subtracts the second vector from the first.

public static Vector2 Subtract(Vector2 left, Vector2 right)

Parameters

left Vector2

The first vector.

right Vector2

The second vector.

Returns

Vector2

The difference vector.

Subtract(ref Vector2, ref Vector2, out Vector2)

Subtracts the left

public static void Subtract(ref Vector2 left, ref Vector2 right, out Vector2 result)

Parameters

left Vector2

The left

right Vector2

The right

result Vector2

The result

ToString(string, IFormatProvider)

Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.

public string ToString(string format, IFormatProvider formatProvider)

Parameters

format string

A standard or custom numeric format string that defines the format of individual elements.

formatProvider IFormatProvider

A format provider that supplies culture-specific formatting information.

Returns

string

The string representation of the current instance.

Remarks

This method returns a string in which each element of the vector is formatted using format and formatProvider. The "<" and ">" characters are used to begin and end the string, and the format provider's System.Globalization.NumberFormatInfo.NumberGroupSeparator property followed by a space is used to separate each element.

ToString(string, CultureInfo)

Returns the string using the specified f 2

public string ToString(string f2, CultureInfo cultureInfo)

Parameters

f2 string

The

cultureInfo CultureInfo

The culture info

Returns

string

The string

Transform(Vector2, Matrix3X2)

Transforms a vector by a specified 3x2 matrix.

public static Vector2 Transform(Vector2 position, Matrix3X2 matrix)

Parameters

position Vector2

The vector to transform.

matrix Matrix3X2

The transformation matrix.

Returns

Vector2

The transformed vector.

Transform(Vector2, Matrix4X4)

Transforms a vector by a specified 4x4 matrix.

public static Vector2 Transform(Vector2 position, Matrix4X4 matrix)

Parameters

position Vector2

The vector to transform.

matrix Matrix4X4

The transformation matrix.

Returns

Vector2

The transformed vector.

Transform(Vector2, Quaternion)

Transforms a vector by the specified Quaternion rotation value.

public static Vector2 Transform(Vector2 value, Quaternion rotation)

Parameters

value Vector2

The vector to rotate.

rotation Quaternion

The rotation to apply.

Returns

Vector2

The transformed vector.

TransformNormal(Vector2, Matrix3X2)

Transforms a vector normal by the given 3x2 matrix.

public static Vector2 TransformNormal(Vector2 normal, Matrix3X2 matrix)

Parameters

normal Vector2

The source vector.

matrix Matrix3X2

The matrix.

Returns

Vector2

The transformed vector.

TransformNormal(Vector2, Matrix4X4)

Transforms a vector normal by the given 4x4 matrix.

public static Vector2 TransformNormal(Vector2 normal, Matrix4X4 matrix)

Parameters

normal Vector2

The source vector.

matrix Matrix4X4

The matrix.

Returns

Vector2

The transformed vector.

Operators

operator +(Vector2, Vector2)

Adds two vectors together.

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

Parameters

left Vector2

The first vector to add.

right Vector2

The second vector to add.

Returns

Vector2

The summed vector.

Remarks

The Alis.Core.Aspect.Math.Vector.Vector2.op_Addition(Alis.Core.Aspect.Math.Vector.Vector2,Alis.Core.Aspect.Math.Vector.Vector2) method defines the addition operation for Alis.Core.Aspect.Math.Vector.Vector2 objects.

operator /(Vector2, Vector2)

Divides the first vector by the second.

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

Parameters

left Vector2

The first vector.

right Vector2

The second vector.

Returns

Vector2

The vector that results from dividing left by right.

operator /(Vector2, float)

Divides the specified vector by a specified scalar value.

public static Vector2 operator /(Vector2 value1, float value2)

Parameters

value1 Vector2

The vector.

value2 float

The scalar value.

Returns

Vector2

The result of the division.

operator ==(Vector2, Vector2)

Returns a value that indicates whether each pair of elements in two specified vectors is equal.

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

Parameters

left Vector2

The first vector to compare.

right Vector2

The second vector to compare.

Returns

bool

true if left and right are equal; otherwise, false.

Remarks

Two Alis.Core.Aspect.Math.Vector.Vector2 objects are equal if each value in left is equal to the corresponding value in right.

operator !=(Vector2, Vector2)

Returns a value that indicates whether two specified vectors are not equal.

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

Parameters

left Vector2

The first vector to compare.

right Vector2

The second vector to compare.

Returns

bool

true if left and right are not equal; otherwise, false.

operator *(Vector2, Vector2)

Returns a new vector whose values are the product of each pair of elements in two specified vectors.

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

Parameters

left Vector2

The first vector.

right Vector2

The second vector.

Returns

Vector2

The element-wise product vector.

operator *(Vector2, float)

Multiplies the specified vector by the specified scalar value.

public static Vector2 operator *(Vector2 left, float right)

Parameters

left Vector2

The vector.

right float

The scalar value.

Returns

Vector2

The scaled vector.

operator *(float, Vector2)

Multiplies the scalar value by the specified vector.

public static Vector2 operator *(float left, Vector2 right)

Parameters

left float

The vector.

right Vector2

The scalar value.

Returns

Vector2

The scaled vector.

operator -(Vector2, Vector2)

Subtracts the second vector from the first.

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

Parameters

left Vector2

The first vector.

right Vector2

The second vector.

Returns

Vector2

The vector that results from subtracting right from left.

Remarks

The Alis.Core.Aspect.Math.Vector.Vector2.op_Subtraction(Alis.Core.Aspect.Math.Vector.Vector2,Alis.Core.Aspect.Math.Vector.Vector2) method defines the subtraction operation for Alis.Core.Aspect.Math.Vector.Vector2 objects.

operator -(Vector2)

Negates the specified vector.

public static Vector2 operator -(Vector2 value)

Parameters

value Vector2

The vector to negate.

Returns

Vector2

The negated vector.

Remarks

The Alis.Core.Aspect.Math.Vector.Vector2.op_UnaryNegation(Alis.Core.Aspect.Math.Vector.Vector2) method defines the unary negation operation for Alis.Core.Aspect.Math.Vector.Vector2 objects.