Show / Hide Table of Contents

Class Vector2

Inheritance
System.Object
Vector2
Implements
System.IFormattable
System.IEquatable<Vector2>
Namespace: Eco.Shared.Math
Assembly: Eco.Shared.dll
Syntax
public sealed class Vector2 : ValueType, IFormattable, IEquatable<Vector2>

Constructors

Vector2(Single, Single)

Declaration
public Vector2(float x, float y)
Parameters
Type Name Description
System.Single x
System.Single y

Fields

down

Declaration
public static Vector2 down
Field Value
Type Description
Vector2

left

Declaration
public static Vector2 left
Field Value
Type Description
Vector2

one

Declaration
public static Vector2 one
Field Value
Type Description
Vector2

right

Declaration
public static Vector2 right
Field Value
Type Description
Vector2

up

Declaration
public static Vector2 up
Field Value
Type Description
Vector2

x

Declaration
public float x
Field Value
Type Description
System.Single

y

Declaration
public float y
Field Value
Type Description
System.Single

zero

Declaration
public static Vector2 zero
Field Value
Type Description
Vector2

Properties

Angle

Declaration
public float Angle { get; }
Property Value
Type Description
System.Single

Ceiling

Declaration
public Vector2i Ceiling { get; }
Property Value
Type Description
Vector2i

Floor

Declaration
public Vector2i Floor { get; }
Property Value
Type Description
Vector2i

Length

Declaration
public float Length { get; }
Property Value
Type Description
System.Single

Magnitude

Declaration
public float Magnitude { get; }
Property Value
Type Description
System.Single

MagnitudeSq

Declaration
public float MagnitudeSq { get; }
Property Value
Type Description
System.Single

Normalized

Declaration
public Vector2 Normalized { get; }
Property Value
Type Description
Vector2

Round

Uses default rounding rules (bank rounding, or round to closest even in case of tie). I.e. 0.5 -> 0, but 1.5 -> 2.

Declaration
public Vector2i Round { get; }
Property Value
Type Description
Vector2i

RoundUp

Always rounds to closes greater number. Preferred way of rounding for coordinates, because voxel coordinates always shifted down. I.e. 0.5 -> 1, 1.5 -> 2 and -1.5 -> -1.

Declaration
public Vector2i RoundUp { get; }
Property Value
Type Description
Vector2i

X

Declaration
[JsonIgnore]
public float X { get; set; }
Property Value
Type Description
System.Single

Y

Declaration
[JsonIgnore]
public float Y { get; set; }
Property Value
Type Description
System.Single

Methods

AngleBetweenRad(Vector2, Vector2)

Declaration
public static float AngleBetweenRad(Vector2 a, Vector2 b)
Parameters
Type Name Description
Vector2 a
Vector2 b
Returns
Type Description
System.Single

AngleDeg(Vector2)

Declaration
public float AngleDeg(Vector2 to)
Parameters
Type Name Description
Vector2 to
Returns
Type Description
System.Single

AngleRad(Vector2)

Returns angle between two in degs.

Declaration
public float AngleRad(Vector2 to)
Parameters
Type Name Description
Vector2 to
Returns
Type Description
System.Single

Distance(Vector2, Vector2)

Declaration
public static float Distance(Vector2 target, Vector2 currentPos)
Parameters
Type Name Description
Vector2 target
Vector2 currentPos
Returns
Type Description
System.Single

DistanceSq(Vector2, Vector2)

Declaration
public static float DistanceSq(Vector2 target, Vector2 currentPos)
Parameters
Type Name Description
Vector2 target
Vector2 currentPos
Returns
Type Description
System.Single

Dot(Vector2, Vector2)

Declaration
public static float Dot(Vector2 v1, Vector2 v2)
Parameters
Type Name Description
Vector2 v1
Vector2 v2
Returns
Type Description
System.Single

Equals(Vector2)

Declaration
public bool Equals(Vector2 other)
Parameters
Type Name Description
Vector2 other
Returns
Type Description
System.Boolean

Equals(Object)

Declaration
public override bool Equals(object other)
Parameters
Type Name Description
System.Object other
Returns
Type Description
System.Boolean

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32

Lerp(Vector2, Vector2, Single)

Declaration
public static Vector2 Lerp(Vector2 a, Vector2 b, float t)
Parameters
Type Name Description
Vector2 a
Vector2 b
System.Single t
Returns
Type Description
Vector2

NormalizeSafe(Vector2)

Same as Normalized, but for zero-length vector it returns defaultValue instead. Normalized will return System.Single.NaN vector in this case.

Declaration
public Vector2 NormalizeSafe(Vector2 defaultValue = null)
Parameters
Type Name Description
Vector2 defaultValue
Returns
Type Description
Vector2

Rotate(Single)

Declaration
public Vector2 Rotate(float angleDeg)
Parameters
Type Name Description
System.Single angleDeg
Returns
Type Description
Vector2

ToString()

Declaration
public override string ToString()
Returns
Type Description
System.String

ToString(String, IFormatProvider)

Declaration
public string ToString(string formatString, IFormatProvider formatProvider = null)
Parameters
Type Name Description
System.String formatString
System.IFormatProvider formatProvider
Returns
Type Description
System.String

Wrap(Vector2)

Declaration
public Vector2 Wrap(Vector2 wrapSize)
Parameters
Type Name Description
Vector2 wrapSize
Returns
Type Description
Vector2

WrappedDirectionalVector(in Vector2, in Vector2, in Vector2)

Returns directional difference vector wrapped in size (i.e. WrappedVoxelSize, WrappedChunkSize or WrappedPlotSize).

Declaration
public static Vector2 WrappedDirectionalVector(in Vector2 from, in Vector2 to, in Vector2 size)
Parameters
Type Name Description
Vector2 from
Vector2 to
Vector2 size
Returns
Type Description
Vector2

WrappedDistance(Vector2)

Declaration
public float WrappedDistance(Vector2 other)
Parameters
Type Name Description
Vector2 other
Returns
Type Description
System.Single

WrappedDistance(Vector2, Vector2)

Declaration
public static float WrappedDistance(Vector2 a, Vector2 b)
Parameters
Type Name Description
Vector2 a
Vector2 b
Returns
Type Description
System.Single

WrappedDistance(Vector2, Vector2, in Vector2)

Calculates distance for wrapped axes distances for size (i.e. size may be voxel size, chunk size or plot size).

Declaration
public static float WrappedDistance(Vector2 a, Vector2 b, in Vector2 size)
Parameters
Type Name Description
Vector2 a
Vector2 b
Vector2 size
Returns
Type Description
System.Single

WrappedDistanceSq(in Vector2, in Vector2)

Calculates squared distance for wrapped axes distances for voxel world size.

Declaration
public static float WrappedDistanceSq(in Vector2 a, in Vector2 b)
Parameters
Type Name Description
Vector2 a
Vector2 b
Returns
Type Description
System.Single

WrappedDistanceSq(in Vector2, in Vector2, in Vector2)

Calculates squared distance for wrapped axes distances for size (i.e. size may be voxel size, chunk size or plot size).

Declaration
public static float WrappedDistanceSq(in Vector2 a, in Vector2 b, in Vector2 size)
Parameters
Type Name Description
Vector2 a
Vector2 b
Vector2 size
Returns
Type Description
System.Single

X_Z(Single)

Declaration
public Vector3 X_Z(float y = 0F)
Parameters
Type Name Description
System.Single y
Returns
Type Description
System.Numerics.Vector3

Operators

Addition(Vector2, Vector2)

Declaration
public static Vector2 operator +(Vector2 v1, Vector2 v2)
Parameters
Type Name Description
Vector2 v1
Vector2 v2
Returns
Type Description
Vector2

Addition(Vector2, Single)

Declaration
public static Vector2 operator +(Vector2 v1, float f)
Parameters
Type Name Description
Vector2 v1
System.Single f
Returns
Type Description
Vector2

Division(Vector2, Vector2)

Declaration
public static Vector2 operator /(Vector2 v1, Vector2 v2)
Parameters
Type Name Description
Vector2 v1
Vector2 v2
Returns
Type Description
Vector2

Division(Vector2, Single)

Declaration
public static Vector2 operator /(Vector2 v1, float f)
Parameters
Type Name Description
Vector2 v1
System.Single f
Returns
Type Description
Vector2

Equality(Vector2, Vector2)

Declaration
public static bool operator ==(Vector2 a, Vector2 b)
Parameters
Type Name Description
Vector2 a
Vector2 b
Returns
Type Description
System.Boolean

Explicit(Vector2 to Vector2i)

Declaration
public static explicit operator Vector2i(Vector2 value)
Parameters
Type Name Description
Vector2 value
Returns
Type Description
Vector2i

Inequality(Vector2, Vector2)

Declaration
public static bool operator !=(Vector2 a, Vector2 b)
Parameters
Type Name Description
Vector2 a
Vector2 b
Returns
Type Description
System.Boolean

Multiply(Vector2, Single)

Declaration
public static Vector2 operator *(Vector2 v, float f)
Parameters
Type Name Description
Vector2 v
System.Single f
Returns
Type Description
Vector2

Subtraction(Vector2, Vector2)

Declaration
public static Vector2 operator -(Vector2 v1, Vector2 v2)
Parameters
Type Name Description
Vector2 v1
Vector2 v2
Returns
Type Description
Vector2

Subtraction(Vector2, Single)

Declaration
public static Vector2 operator -(Vector2 v1, float f)
Parameters
Type Name Description
Vector2 v1
System.Single f
Returns
Type Description
Vector2

Implements

System.IFormattable
System.IEquatable<>

Extension Methods

DirectionExtensions.CardinalDirTo(Vector2, Vector2)
DirectionExtensions.CardinalDir(Vector2)
DirectionExtensions.HorizontalDir(Vector2)
CommandLine.FeedFromCommandLine(Object)
CommandLine.ToCommandLineArgs(Object, Func<Object, Boolean>)
ListUtil.DepthFirstTraversal<T>(T, Func<T, IEnumerable<T>>)
EnumerableExtensions.SingleItemAsEnumerable<T>(T)
EventUtils.RaiseEvent<TEventArgs>(Object, String, TEventArgs)
MathUtil.IsReal(Vector2)
PredicateUtils.MatchesAll<TEnumerable, T>(T, TEnumerable)
PredicateUtils.MatchesAll<T>(T, Func<T, Boolean>[])
PredicateUtils.MatchesAny<TEnumerable, T>(T, TEnumerable)
ReflectionUtils.PropertyValue<T>(Object, PropertyInfo)
ReflectionUtils.TryGetPropertyValueByName<T>(Object, String, out T)
ReflectionUtils.GetPropertyValueByName<T>(Object, String)
ReflectionUtils.SetPropertyByName(Object, String, Object)
ReflectionUtils.GetStructPropertyByName<T>(Object, String)
ReflectionUtils.GetStringPropertyByName(Object, String)
ReflectionUtils.ZipByProperty<T>(Object, Object, Object, Func<T, T, T>)
WorldExtensions.DescribeDistance(Vector2, Vector2, Boolean)
WorldExtensions.DescribeDistance(Vector2, Single, Boolean)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾