Mat23D

Description

struct Tinman.Core.Math.Vectors.Mat23D

A 2x3 matrix with 64-bit floating-point precision.

/                 \
|  M11  M12  M13  |
|  M21  M22  M23  |
\                 /

Public / Constants

Identity


public static readonly attribute Identity → (Mat23D)

The identity matrix.

Zero


public static readonly attribute Zero → (Mat23D)

The zero matrix.

Public / Constructors

From​Columns


[Pure]
public static method FromColumns → (3)

col1 in : Vec2D

The first column vector.

col2 in : Vec2D

The second column vector.

col3 in : Vec2D

The third column vector.

returns → Mat23D

The matrix.

Creates a new instance of Mat23D.

From​Rows


[Pure]
public static method FromRows → (2)

row1 in : Vec3D

The first row vector.

row2 in : Vec3D

The second row vector.

returns → Mat23D

The matrix.

Creates a new instance of Mat23D.

Mat23​D


public constructor Mat23D → (6)

m11 in : float64

Matrix component in first row, first column.

m12 in : float64

Matrix component in first row, second column.

m13 in : float64

Matrix component in first row, third column.

m21 in : float64

Matrix component in second row, first column.

m22 in : float64

Matrix component in second row, second column.

m23 in : float64

Matrix component in second row, third column.

Creates a new instance of Mat23D.

Rotate


[Pure]
public static method Rotate → (1)

angle in : float64

The rotation angle, in radians.

returns → Mat23D

The resulting matrix.

Returns a rotation matrix (counter-clockwise around origin).

Scale

3 overloads


[Pure]
public static method Scale1 → (1)

in : float64

The scale factor.

returns → Mat23D

The resulting matrix.

Returns a scaling matrix.


[Pure]
public static method Scale2 → (1)

in : Vec2D

The scale factors.

returns → Mat23D

The resulting matrix.

Returns a scaling matrix.


[Pure]
public static method Scale3 → (2)

fx in : float64

The scale factor along the X-axis.

fy in : float64

The scale factor along the Y-axis.

returns → Mat23D

The resulting matrix.

Returns a scaling matrix.

Translate

2 overloads


[Pure]
public static method Translate1 → (1)

in : Vec2D

The 2D translation vector.

returns → Mat23D

The resulting matrix.

Returns a homogeneous 2D translation matrix.


[Pure]
public static method Translate2 → (2)

in : float64

X-component of translation vector.

in : float64

Y-component of translation vector.

returns → Mat23D

The resulting matrix.

Returns a homogeneous 2D translation matrix.

Public / Methods

Equals​Almost


[Pure]
public method EqualsAlmost → (1)

other in : Mat23D

The other matrix.

returns → bool

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

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

See also

Maths.Similar2

Get​Column


[Pure]
public method GetColumn → (1)

index in : int32

The zero-based column index.

returns → Vec2D

The column vector.

Returns a column vector.

Get​Row


[Pure]
public method GetRow → (1)

index in : int32

The zero-based row index.

returns → Vec3D

The row vector.

Returns a row vector.

Mul

3 overloads


[Pure]
public method Mul1 → (1)

in : Mat23D

The matrix.

returns → Mat23D

The resulting matrix.

Multiplies this matrix (left-side) with the given one (right-side):
result = this * m.


[Pure]
public method Mul2 → (1)

in : Vec2D

The vector.

returns → Vec2D

The resulting vector, scaled by 1/result.W.

Multiplies this matrix (left-side) with the given homogeneous 2D vector (right-side): result = this * (v.X, v.Y, 1).


[Pure]
public method Mul3 → (2)

in : float64

X-component of vector.

in : float64

Y-component of vector.

returns → Vec2D

The resulting vector, scaled by 1/result.W.

Multiplies this matrix (left-side) with the given homogeneous 2D vector (right-side): result = this * (v.X, v.Y, 1).

To​Array


public method ToArray → (4)

values in : float64 [ ]

[not-null]
The output array.

offset opt : int32 = 0

Offset into values in to top-left matrix element.

strideRow opt : int32 = 3

Array index distance between matrix rows.

strideCol opt : int32 = 1

Array index distance between matrix columns.

Copies matrix elements to the given array.

The method uses the following indexing scheme to write values to values in:

values[offset + (row - 1) * strideRow + (col - 1) * strideCol := matrix[row, col];

where row and col depict the matrix row and column number (starting at 1).

Public / Attributes

Determinant


public attribute Determinant → (get)

value : float64

The determinant value.

Returns the determinant of this matrix.

Inverse


public attribute Inverse → (get)

value : Mat23D

The inverse matrix.

Returns the inverse of this matrix.

M11


public readonly attribute M11 → (float64)

Matrix component in first row, first column.

M12


public readonly attribute M12 → (float64)

Matrix component in first row, second column.

M13


public readonly attribute M13 → (float64)

Matrix component in first row, third column.

M21


public readonly attribute M21 → (float64)

Matrix component in second row, first column.

M22


public readonly attribute M22 → (float64)

Matrix component in second row, second column.

M23


public readonly attribute M23 → (float64)

Matrix component in second row, third column.

Serialization

Serializer


public static readonly attribute Serializer → (ITypeSerializer<Mat23D>)

The serialization helper object for values of Mat23D.