Vec2D

Description

struct Tinman.Core.Math.Vectors.Vec2D

A two-dimensional vector with 64-bit floating-point precision.

/     \
|  X  |
|  Y  |
\     /

Public / Constants

Undefined


public static readonly attribute Undefined → (Vec2D)

A vector with undefined value.

Zero


public static readonly attribute Zero → (Vec2D)

The zero vector.

Public / Constructors

Vec2​D


public constructor Vec2D → (2)

in : float64

X-coordinate of vector.

in : float64

Y-coordinate of vector.

Creates a new instance of Vec2D.

Public / Methods

Add

2 overloads


[Pure]
public method Add1 → (1)

in : Vec2D

The vector.

returns → Vec2D

The resulting vector.

Adds this vector and the given one.


[Pure]
public method Add2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → Vec2D

The resulting vector.

Adds this vector and the given one.

Barycentric


[Pure]
public method Barycentric → (3)

in : Vec2D

First vertex of triangle.

in : Vec2D

Second vertex of triangle.

in : Vec2D

Third vertex of triangle.

returns → Vec3D

The barycentric coordinates of this vector, where Vec3D.X, Vec3D.Y and Vec3D.Z represent the weights for the triangle vertices in, in and in (in this order). This vector lies inside of the given triangle iff Vec3D.X, Vec3D.Y and Vec3D.Z are non-negative.

Computes the barycentric coordinates of this vector in the given triangle.

Ceiling


[Pure]
public method Ceiling → ()

returns → Vec2D

The resulting vector.

Computes the component-wise ceiling of this vector.

Choose


[Pure]
public method Choose → (2)

idx in : int32

The zero-based component index.

opt : float64 = 0

The value to return if idx in is out of range.

returns → float64

The resulting vector.

Chooses a component of this vector.

Cross

3 overloads


[Pure]
public method Cross1 → (1)

in : float64

Z-component of vector (X- and Y-components are zero).

returns → Vec2D

The cross product vector.

Computes the cross product between this vector and the given one: this x other.


[Pure]
public method Cross2 → (1)

in : Vec2D

The other vector.

returns → float64

The Z-component of the cross product vector (X- and Y-components are zero).

Computes the cross product between this vector and the given one: this x other.


[Pure]
public method Cross3 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → float64

The Z-component of the cross product vector (X- and Y-components are zero).

Computes the cross product between this vector and the given one: this x other.

Div


[Pure]
public method Div → (1)

in : float64

The scalar value.

returns → Vec2D

The resulting vector.

Divides this vector by the given scalar value.

Dot

2 overloads


[Pure]
public method Dot1 → (1)

in : Vec2D

The vector.

returns → float64

The resulting vector.

Computes the dot product between this vector and the given one.


[Pure]
public method Dot2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → float64

The resulting vector.

Computes the dot product between this vector and the given one.

Equals

2 overloads


[Pure]
public method Equals2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → bool

true if both vectors are equal, false if they are not.

Checks if this vector and the given one are equal.

Equals​Almost

2 overloads


[Pure]
public method EqualsAlmost1 → (1)

in : Vec2D

The vector.

returns → bool

true if both vectors are similar, false if they are not.

Checks if this vector and the given one are similar but necessarily equal.

See also

Maths.Similar2


[Pure]
public method EqualsAlmost2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → bool

true if both vectors are similar, false if they are not.

Checks if this vector and the given one are similar but necessarily equal.

See also

Maths.Similar2

Floor


[Pure]
public method Floor → ()

returns → Vec2D

The resulting vector.

Computes the component-wise floor of this vector.

Max

2 overloads


[Pure]
public method Max1 → (1)

in : Vec2D

The vector.

returns → Vec2D

The resulting vector.

Computes the component-wise maximum of this vector and the given one.


[Pure]
public method Max2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → Vec2D

The resulting vector.

Computes the component-wise maximum of this vector and the given one.

Min

2 overloads


[Pure]
public method Min1 → (1)

in : Vec2D

The vector.

returns → Vec2D

The resulting vector.

Computes the component-wise minimum of this vector and the given one.


[Pure]
public method Min2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → Vec2D

The resulting vector.

Computes the component-wise minimum of this vector and the given one.

Mul

3 overloads


[Pure]
public method Mul1 → (1)

in : Vec2D

The vector.

returns → Vec2D

The resulting vector.

Multiplies this vector with the given one.


[Pure]
public method Mul2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → Vec2D

The resulting vector.

Multiplies this vector with the given one.


[Pure]
public method Mul3 → (1)

in : float64

The scalar value.

returns → Vec2D

The resulting vector.

Multiplies this vector with the given scalar value.

Neg


[Pure]
public method Neg → ()

returns → Vec2D

The resulting vector.

Negates this vector.

Norm


[Pure]
public method Norm → ()

returns → Vec2D

The resulting vector.

Normalizes this vector to unit length.

Sub

2 overloads


[Pure]
public method Sub1 → (1)

in : Vec2D

The vector.

returns → Vec2D

The resulting vector.

Subtracts the given vector from this one.


[Pure]
public method Sub2 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → Vec2D

The resulting vector.

Subtracts the given vector from this one.

To​String

2 overloads


[Pure]
public method ToString2 → (1)

flags in : FormatFlags

The format flags to use.

returns → string

The string representation.

Returns the string representation of this vector.

See also

Format.ThisNum

Public / Attributes

Is​Undefined


public attribute IsUndefined → (get)

value : bool

true if this vector has an undefined value, false if not.

Checks if this vector has an undefined value.

A vector is undefined if at least one component is NaN (not-a-number).

Length


public attribute Length → (get)

value : float64

[>=0]
The vector length.

Returns the length of this vector.

Length​Sqr


public attribute LengthSqr → (get)

value : float64

[>=0]
The squared vector length.

Returns the squared length of this vector.

X


public readonly attribute X → (float64)

X-coordinate of vector.

Y


public readonly attribute Y → (float64)

Y-coordinate of vector.

Serialization

Serializer


public static readonly attribute Serializer → (ITypeSerializerEx<Vec2D>)

The serialization helper object for values of Vec2D.