[]
        
(Showing Draft Content)

C1.Util.DX.Matrix4x4

Matrix4x4 Struct

Represents a 4x4 mathematical matrix.

Namespace: C1.Util.DX
Assembly: C1.Win.C1DX.4.8.dll
Syntax
[TypeConverter(typeof(Matrix4x4Converter))]
public struct Matrix4x4 : IEquatable<Matrix4x4>, IFormattable

Constructors

Name Description
Matrix4x4(float)

Initializes a new instance of the Matrix4x4 struct.

Matrix4x4(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)

Initializes a new instance of the Matrix4x4 struct.

Matrix4x4(float[])

Initializes a new instance of the Matrix4x4 struct.

Fields

Name Description
Identity

The identity Matrix4x4.

M11

Value at row 1 column 1 of the matrix.

M12

Value at row 1 column 2 of the matrix.

M13

Value at row 1 column 3 of the matrix.

M14

Value at row 1 column 4 of the matrix.

M21

Value at row 2 column 1 of the matrix.

M22

Value at row 2 column 2 of the matrix.

M23

Value at row 2 column 3 of the matrix.

M24

Value at row 2 column 4 of the matrix.

M31

Value at row 3 column 1 of the matrix.

M32

Value at row 3 column 2 of the matrix.

M33

Value at row 3 column 3 of the matrix.

M34

Value at row 3 column 4 of the matrix.

M41

Value at row 4 column 1 of the matrix.

M42

Value at row 4 column 2 of the matrix.

M43

Value at row 4 column 3 of the matrix.

M44

Value at row 4 column 4 of the matrix.

SizeInBytes

The size of the Matrix4x4 type, in bytes.

Zero

A Matrix4x4 with all of its components set to zero.

Properties

Name Description
Column1

Gets or sets the first column in the matrix; that is M11, M21, M31, and M41.

Column2

Gets or sets the second column in the matrix; that is M12, M22, M32, and M42.

Column3

Gets or sets the third column in the matrix; that is M13, M23, M33, and M43.

Column4

Gets or sets the fourth column in the matrix; that is M14, M24, M34, and M44.

Determinant

Calculates the determinant of the matrix.

IsIdentity

Gets a value indicating whether this instance is an identity matrix.

this[int]

Gets or sets the component at the specified index.

this[int, int]

Gets or sets the component at the specified index.

Row1

Gets or sets the first row in the matrix; that is M11, M12, M13, and M14.

Row2

Gets or sets the second row in the matrix; that is M21, M22, M23, and M24.

Row3

Gets or sets the third row in the matrix; that is M31, M32, M33, and M34.

Row4

Gets or sets the fourth row in the matrix; that is M41, M42, M43, and M44.

ScaleVector

Gets or sets the scale of the matrix; that is M11, M22, and M33.

TranslationVector

Gets or sets the translation of the matrix; that is M41, M42, and M43.

Methods

Name Description
Add(Matrix4x4, Matrix4x4)

Determines the sum of two matrices.

AddRef(out Matrix4x4, ref Matrix4x4, ref Matrix4x4)

Determines the sum of two matrices.

Billboard(Vector3, Vector3, Vector3, Vector3)

Creates a spherical billboard that rotates around a specified object position.

BillboardRef(out Matrix4x4, ref Vector3, ref Vector3, ref Vector3, ref Vector3)

Creates a spherical billboard that rotates around a specified object position.

ConstrainedBillboard(Vector3, Vector3, Vector3, Vector3, Vector3)

Creates a cylindrical billboard that rotates around a specified axis.

ConstrainedBillboardRef(out Matrix4x4, ref Vector3, ref Vector3, ref Vector3, ref Vector3, ref Vector3)

Creates a cylindrical billboard that rotates around a specified axis.

Divide(Matrix4x4, float)

Divides a matrix by the given value.

DivideRef(out Matrix4x4, ref Matrix4x4, float)

Divides a matrix by the given value.

Equals(Matrix4x4)

Determines whether the specified Matrix4x4 is equal to this instance.

Equals(object)

Determines whether the specified object is equal to this instance.

EqualsRef(ref Matrix4x4)

Determines whether the specified Matrix4x4 is equal to this instance.

ExchangeColumns(int, int)

Exchanges two columns in the matrix.

ExchangeRows(int, int)

Exchanges two rows in the matrix.

GetHashCode()

Returns a hash code for this instance.

HadamardDivide(Matrix4x4, Matrix4x4)

Element-wise division of two matrices.

HadamardDivideRef(out Matrix4x4, ref Matrix4x4, ref Matrix4x4)

Element-wise division of two matrices.

HadamardProduct(Matrix4x4, Matrix4x4)

Determines the Hadamard (element-wise) product of two matrices.

HadamardProductRef(out Matrix4x4, ref Matrix4x4, ref Matrix4x4)

Determines the Hadamard (element-wise) product of two matrices.

Invert(Matrix4x4)

Calculates the inverse of the specified matrix.

InvertRef(ref Matrix4x4)

Inverts the matrix.

InvertRef(out Matrix4x4, ref Matrix4x4)

Calculates the inverse of the specified matrix.

Lerp(Matrix4x4, Matrix4x4, float)

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

LerpRef(out Matrix4x4, ref Matrix4x4, ref Matrix4x4, float)

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

LookAt(Vector3, Vector3, Vector3)

Creates a view matrix.

LookAtRef(out Matrix4x4, ref Vector3, ref Vector3, ref Vector3)

Creates a view matrix.

MatrixProduct(Matrix4x4, Matrix4x4)

Determines the product of two matrices.

MatrixProductRef(out Matrix4x4, ref Matrix4x4, ref Matrix4x4)

Determines the product of two matrices.

Multiply(Matrix4x4, float)

Scales a matrix by the given value.

Multiply(ref Matrix4x4, ref Matrix4x4)

Determines the product of two matrices (same as MatrixProduct).

MultiplyRef(out Matrix4x4, ref Matrix4x4, float)

Scales a matrix by the given value.

Negate(Matrix4x4)

Negates a matrix.

NegateRef(ref Matrix4x4)

Negates a matrix.

NegateRef(out Matrix4x4, ref Matrix4x4)

Negates a matrix.

Orthographic(float, float, float, float)

Creates an orthographic perspective matrix from the given view volume dimensions.

OrthographicOffCenter(float, float, float, float, float, float)

Creates a customized orthographic projection matrix.

Perspective(float, float, float, float)

Creates a perspective projection matrix from the given view volume dimensions.

PerspectiveFieldOfView(float, float, float, float)

Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.

PerspectiveOffCenter(float, float, float, float, float, float)

Creates a customized perspective projection matrix.

Reflection(Vector3, float)

Creates a matrix that reflects the coordinate system about a specified plane.

ReflectionRef(out Matrix4x4, ref Vector3, float)

Creates a matrix that reflects the coordinate system about a specified plane.

RotationAxis(Vector3, float)

Creates a matrix that rotates around an arbitary axis.

RotationAxisRef(out Matrix4x4, ref Vector3, float)

Creates a matrix that rotates around an arbitary axis.

RotationX(float)

Creates a matrix that rotates around the x-axis.

RotationX(float, Vector3)

Creates a matrix for rotating points around the X axis from a center point.

RotationXRef(out Matrix4x4, float)

Creates a matrix that rotates around the x-axis.

RotationXRef(out Matrix4x4, float, ref Vector3)

Creates a matrix for rotating points around the X axis from a center point.

RotationY(float)

Creates a matrix that rotates around the y-axis.

RotationY(float, Vector3)

Creates a matrix that rotates around the y-axis.

RotationYRef(out Matrix4x4, float)

Creates a matrix that rotates around the y-axis.

RotationYRef(out Matrix4x4, float, ref Vector3)

Creates a matrix for rotating points around the Y axis from a center point.

RotationZ(float)

Creates a matrix that rotates around the z-axis.

RotationZ(float, Vector3)

Creates a matrix that rotates around the z-axis.

RotationZRef(out Matrix4x4, float)

Creates a matrix that rotates around the z-axis.

RotationZRef(out Matrix4x4, float, ref Vector3)

Creates a matrix for rotating points around the Z axis from a center point.

Scale(Vector3)

Creates a matrix that scales along the x-axis, y-axis, and y-axis.

Scale(float)

Creates a matrix that uniformally scales along all three axis.

Scale(float, float, float)

Creates a matrix that scales along the x-axis, y-axis, and y-axis.

ScaleRef(out Matrix4x4, ref Vector3)

Creates a matrix that scales along the x-axis, y-axis, and y-axis.

ScaleRef(out Matrix4x4, float)

Creates a matrix that uniformally scales along all three axis.

ScaleRef(out Matrix4x4, float, float, float)

Creates a matrix that scales along the x-axis, y-axis, and y-axis.

Shadow(Vector3, Vector3, float)

Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.

ShadowRef(out Matrix4x4, ref Vector3, ref Vector3, float)

Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source.

Skew(Vector3, Vector3, float)

Creates a skew/shear matrix by means of a translation vector, a rotation vector, and a rotation angle.

SkewRef(out Matrix4x4, ref Vector3, ref Vector3, float)

Creates a skew/shear matrix by means of a translation vector, a rotation vector, and a rotation angle.

Subtract(Matrix4x4, Matrix4x4)

Determines the difference between two matrices.

SubtractRef(out Matrix4x4, ref Matrix4x4, ref Matrix4x4)

Determines the difference between two matrices.

ToArray()

Creates an array containing the elements of the matrix.

ToString()

Returns a string that represents the current object.

ToString(IFormatProvider)

Returns a string that represents this instance.

ToString(string)

Returns a string that represents this instance.

ToString(string, IFormatProvider)

Returns a string that represents this instance.

Translation(Vector3)

Creates a translation matrix using the specified offsets.

Translation(float, float, float)

Creates a translation matrix using the specified offsets.

TranslationRef(out Matrix4x4, ref Vector3)

Creates a translation matrix from the specified 3-dimensional vector.

TranslationRef(out Matrix4x4, float, float, float)

Creates a translation matrix using the specified offsets.

Transpose(Matrix4x4)

Calculates the transpose of the specified matrix.

TransposeRef(ref Matrix4x4)

Transposes the matrix.

TransposeRef(out Matrix4x4, ref Matrix4x4)

Calculates the transpose of the specified matrix.

World(Vector3, Vector3, Vector3)

Creates a world matrix with the specified parameters.

WorldRef(out Matrix4x4, ref Vector3, ref Vector3, ref Vector3)

Creates a world matrix with the specified parameters.

YawPitchRoll(float, float, float)

Creates a rotation matrix from the specified yaw, pitch, and roll.

Operators

Name Description
operator +(Matrix4x4, Matrix4x4)

Adds two matricies.

operator /(Matrix4x4, float)

Scales a matrix by a given value.

operator ==(Matrix4x4, Matrix4x4)

Tests for equality between two objects.

operator !=(Matrix4x4, Matrix4x4)

Tests for inequality between two objects.

operator *(Matrix4x4, Matrix4x4)

Multiplies two matricies.

operator *(Matrix4x4, float)

Scales a matrix by a given value.

operator *(float, Matrix4x4)

Scales a matrix by a given value.

operator -(Matrix4x4, Matrix4x4)

Subtracts two matricies.

operator -(Matrix4x4)

Negates a matrix.