Vec2L

Description

`struct` `Tinman.Core.Math.Vectors.Vec2L`

A two-dimensional vector with 64-bit integer precision.

```/     \
|  X  |
|  Y  |
\     /```

Public / Constants

Zero

`public` `static` `readonly` `attribute` `Zero` → `(Vec2L)`

The zero vector.

Public / Constructors

Vec2​L

`public` `constructor` `Vec2L` → `(2)`

in : int64

X-coordinate of vector.

in : int64

Y-coordinate of vector.

Creates a new instance of Vec2L.

Public / Methods

`[Pure]`
`public` `method` `Add1` → `(1)`

in : Vec2L

The vector.

returns → Vec2L

The resulting vector.

Adds this vector and the given one.

`[Pure]`
`public` `method` `Add2` → `(2)`

in : int64

X-component of vector.

in : int64

Y-component of vector.

returns → Vec2L

The resulting vector.

Adds this vector and the given one.

Choose

`[Pure]`
`public` `method` `Choose` → `(2)`

idx in : int32

The zero-based component index.

opt : int64 = 0

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

returns → int64

The resulting vector.

Chooses a component of this vector.

Cross

`[Pure]`
`public` `method` `Cross1` → `(1)`

in : int64

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

returns → Vec2L

The cross product vector.

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

`[Pure]`
`public` `method` `Cross2` → `(1)`

in : Vec2L

The other vector.

returns → int64

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 : int64

X-component of vector.

in : int64

Y-component of vector.

returns → int64

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`.

Dot

`[Pure]`
`public` `method` `Dot1` → `(1)`

in : Vec2L

The vector.

returns → int64

The resulting vector.

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

`[Pure]`
`public` `method` `Dot2` → `(2)`

in : int64

X-component of vector.

in : int64

Y-component of vector.

returns → int64

The resulting vector.

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

Equals

`[Pure]`
`public` `method` `Equals2` → `(2)`

in : int64

X-component of vector.

in : int64

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.

Max

`[Pure]`
`public` `method` `Max1` → `(1)`

in : Vec2L

The vector.

returns → Vec2L

The resulting vector.

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

`[Pure]`
`public` `method` `Max2` → `(2)`

in : int64

X-component of vector.

in : int64

Y-component of vector.

returns → Vec2L

The resulting vector.

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

Min

`[Pure]`
`public` `method` `Min1` → `(1)`

in : Vec2L

The vector.

returns → Vec2L

The resulting vector.

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

`[Pure]`
`public` `method` `Min2` → `(2)`

in : int64

X-component of vector.

in : int64

Y-component of vector.

returns → Vec2L

The resulting vector.

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

Mul

`[Pure]`
`public` `method` `Mul1` → `(1)`

in : Vec2L

The vector.

returns → Vec2L

The resulting vector.

Multiplies this vector with the given one.

`[Pure]`
`public` `method` `Mul2` → `(2)`

in : int64

X-component of vector.

in : int64

Y-component of vector.

returns → Vec2L

The resulting vector.

Multiplies this vector with the given one.

`[Pure]`
`public` `method` `Mul3` → `(1)`

in : int64

The scalar value.

returns → Vec2L

The resulting vector.

Multiplies this vector with the given scalar value.

Neg

`[Pure]`
`public` `method` `Neg` → `()`

returns → Vec2L

The resulting vector.

Negates this vector.

Shift​Left

`[Pure]`
`public` `method` `ShiftLeft` → `(1)`

in : int32

The shift amount.

returns → Vec2L

The resulting vector.

Performs a left bit shift on each component of this vector.

Shift​Right

`[Pure]`
`public` `method` `ShiftRight` → `(1)`

in : int32

The shift amount.

returns → Vec2L

The resulting vector.

Performs a right bit shift on each component of this vector.

Sub

`[Pure]`
`public` `method` `Sub1` → `(1)`

in : Vec2L

The vector.

returns → Vec2L

The resulting vector.

Subtracts the given vector from this one.

`[Pure]`
`public` `method` `Sub2` → `(2)`

in : int64

X-component of vector.

in : int64

Y-component of vector.

returns → Vec2L

The resulting vector.

Subtracts the given vector from this one.

To​String

`[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.

Format.ThisInt

Public / Attributes

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` → `(int64)`

X-coordinate of vector.

Y

`public` `readonly` `attribute` `Y` → `(int64)`

Y-coordinate of vector.

Serialization

Serializer

`public` `static` `readonly` `attribute` `Serializer` → `(ITypeSerializerEx<Vec2L>)`

The serialization helper object for values of Vec2L.