# Matrix4x4Matrix4x4Matrix4x4Matrix4x4 Struct

## Definition

Represents a 4x4 matrix.

``public value class Matrix4x4 : IEquatable<System::Numerics::Matrix4x4>``
``public struct Matrix4x4 : IEquatable<System.Numerics.Matrix4x4>``
``type Matrix4x4 = struct``
``````Public Structure Matrix4x4
Implements IEquatable(Of Matrix4x4)``````
Inheritance
Matrix4x4Matrix4x4Matrix4x4Matrix4x4
Implements

## Remarks

For matrix transformations, the Vector2, Vector3, and Vector4 instances are represented as rows: a vector v is transformed by a matrix M with vM multiplication.

## Constructors

 Matrix4x4(Matrix3x2) Matrix4x4(Matrix3x2) Matrix4x4(Matrix3x2) Matrix4x4(Matrix3x2) Creates a Matrix4x4 object from a specified Matrix3x2 object. Matrix4x4(Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single) Matrix4x4(Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single) Matrix4x4(Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single) Matrix4x4(Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single, Single) Creates a 4x4 matrix from the specified components.

## Fields

 M11 M11 M11 M11 The first element of the first row. M12 M12 M12 M12 The second element of the first row. M13 M13 M13 M13 The third element of the first row. M14 M14 M14 M14 The fourth element of the first row. M21 M21 M21 M21 The first element of the second row. M22 M22 M22 M22 The second element of the second row. M23 M23 M23 M23 The third element of the second row. M24 M24 M24 M24 The fourth element of the second row. M31 M31 M31 M31 The first element of the third row. M32 M32 M32 M32 The second element of the third row. M33 M33 M33 M33 The third element of the third row. M34 M34 M34 M34 The fourth element of the third row. M41 M41 M41 M41 The first element of the fourth row. M42 M42 M42 M42 The second element of the fourth row. M43 M43 M43 M43 The third element of the fourth row. M44 M44 M44 M44 The fourth element of the fourth row.

## Properties

 Identity Identity Identity Identity Gets the multiplicative identity matrix. IsIdentity IsIdentity IsIdentity IsIdentity Indicates whether the current matrix is the identity matrix. Translation Translation Translation Translation Gets or sets the translation component of this matrix.

## Methods

 Add(Matrix4x4, Matrix4x4) Add(Matrix4x4, Matrix4x4) Add(Matrix4x4, Matrix4x4) Add(Matrix4x4, Matrix4x4) Adds each element in one matrix with its corresponding element in a second matrix. CreateBillboard(Vector3, Vector3, Vector3, Vector3) CreateBillboard(Vector3, Vector3, Vector3, Vector3) CreateBillboard(Vector3, Vector3, Vector3, Vector3) CreateBillboard(Vector3, Vector3, Vector3, Vector3) Creates a spherical billboard that rotates around a specified object position. CreateConstrainedBillboard(Vector3, Vector3, Vector3, Vector3, Vector3) CreateConstrainedBillboard(Vector3, Vector3, Vector3, Vector3, Vector3) CreateConstrainedBillboard(Vector3, Vector3, Vector3, Vector3, Vector3) CreateConstrainedBillboard(Vector3, Vector3, Vector3, Vector3, Vector3) Creates a cylindrical billboard that rotates around a specified axis. CreateFromAxisAngle(Vector3, Single) CreateFromAxisAngle(Vector3, Single) CreateFromAxisAngle(Vector3, Single) CreateFromAxisAngle(Vector3, Single) Creates a matrix that rotates around an arbitrary vector. CreateFromQuaternion(Quaternion) CreateFromQuaternion(Quaternion) CreateFromQuaternion(Quaternion) CreateFromQuaternion(Quaternion) Creates a rotation matrix from the specified Quaternion rotation value. CreateFromYawPitchRoll(Single, Single, Single) CreateFromYawPitchRoll(Single, Single, Single) CreateFromYawPitchRoll(Single, Single, Single) CreateFromYawPitchRoll(Single, Single, Single) Creates a rotation matrix from the specified yaw, pitch, and roll. CreateLookAt(Vector3, Vector3, Vector3) CreateLookAt(Vector3, Vector3, Vector3) CreateLookAt(Vector3, Vector3, Vector3) CreateLookAt(Vector3, Vector3, Vector3) Creates a view matrix. CreateOrthographic(Single, Single, Single, Single) CreateOrthographic(Single, Single, Single, Single) CreateOrthographic(Single, Single, Single, Single) CreateOrthographic(Single, Single, Single, Single) Creates an orthographic perspective matrix from the given view volume dimensions. CreateOrthographicOffCenter(Single, Single, Single, Single, Single, Single) CreateOrthographicOffCenter(Single, Single, Single, Single, Single, Single) CreateOrthographicOffCenter(Single, Single, Single, Single, Single, Single) CreateOrthographicOffCenter(Single, Single, Single, Single, Single, Single) Creates a customized orthographic projection matrix. CreatePerspective(Single, Single, Single, Single) CreatePerspective(Single, Single, Single, Single) CreatePerspective(Single, Single, Single, Single) CreatePerspective(Single, Single, Single, Single) Creates a perspective projection matrix from the given view volume dimensions. CreatePerspectiveFieldOfView(Single, Single, Single, Single) CreatePerspectiveFieldOfView(Single, Single, Single, Single) CreatePerspectiveFieldOfView(Single, Single, Single, Single) CreatePerspectiveFieldOfView(Single, Single, Single, Single) Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances. CreatePerspectiveOffCenter(Single, Single, Single, Single, Single, Single) CreatePerspectiveOffCenter(Single, Single, Single, Single, Single, Single) CreatePerspectiveOffCenter(Single, Single, Single, Single, Single, Single) CreatePerspectiveOffCenter(Single, Single, Single, Single, Single, Single) Creates a customized perspective projection matrix. CreateReflection(Plane) CreateReflection(Plane) CreateReflection(Plane) CreateReflection(Plane) Creates a matrix that reflects the coordinate system about a specified plane. CreateRotationX(Single) CreateRotationX(Single) CreateRotationX(Single) CreateRotationX(Single) Creates a matrix for rotating points around the X axis. CreateRotationX(Single, Vector3) CreateRotationX(Single, Vector3) CreateRotationX(Single, Vector3) CreateRotationX(Single, Vector3) Creates a matrix for rotating points around the X axis from a center point. CreateRotationY(Single, Vector3) CreateRotationY(Single, Vector3) CreateRotationY(Single, Vector3) CreateRotationY(Single, Vector3) The amount, in radians, by which to rotate around the Y axis from a center point. CreateRotationY(Single) CreateRotationY(Single) CreateRotationY(Single) CreateRotationY(Single) Creates a matrix for rotating points around the Y axis. CreateRotationZ(Single) CreateRotationZ(Single) CreateRotationZ(Single) CreateRotationZ(Single) Creates a matrix for rotating points around the Z axis. CreateRotationZ(Single, Vector3) CreateRotationZ(Single, Vector3) CreateRotationZ(Single, Vector3) CreateRotationZ(Single, Vector3) Creates a matrix for rotating points around the Z axis from a center point. CreateScale(Vector3) CreateScale(Vector3) CreateScale(Vector3) CreateScale(Vector3) Creates a scaling matrix from the specified vector scale. CreateScale(Single) CreateScale(Single) CreateScale(Single) CreateScale(Single) Creates a uniform scaling matrix that scale equally on each axis. CreateScale(Vector3, Vector3) CreateScale(Vector3, Vector3) CreateScale(Vector3, Vector3) CreateScale(Vector3, Vector3) Creates a scaling matrix with a center point. CreateScale(Single, Vector3) CreateScale(Single, Vector3) CreateScale(Single, Vector3) CreateScale(Single, Vector3) Creates a uniform scaling matrix that scales equally on each axis with a center point. CreateScale(Single, Single, Single) CreateScale(Single, Single, Single) CreateScale(Single, Single, Single) CreateScale(Single, Single, Single) Creates a scaling matrix from the specified X, Y, and Z components. CreateScale(Single, Single, Single, Vector3) CreateScale(Single, Single, Single, Vector3) CreateScale(Single, Single, Single, Vector3) CreateScale(Single, Single, Single, Vector3) Creates a scaling matrix that is offset by a given center point. CreateShadow(Vector3, Plane) CreateShadow(Vector3, Plane) CreateShadow(Vector3, Plane) CreateShadow(Vector3, Plane) Creates a matrix that flattens geometry into a specified plane as if casting a shadow from a specified light source. CreateTranslation(Vector3) CreateTranslation(Vector3) CreateTranslation(Vector3) CreateTranslation(Vector3) Creates a translation matrix from the specified 3-dimensional vector. CreateTranslation(Single, Single, Single) CreateTranslation(Single, Single, Single) CreateTranslation(Single, Single, Single) CreateTranslation(Single, Single, Single) Creates a translation matrix from the specified X, Y, and Z components. CreateWorld(Vector3, Vector3, Vector3) CreateWorld(Vector3, Vector3, Vector3) CreateWorld(Vector3, Vector3, Vector3) CreateWorld(Vector3, Vector3, Vector3) Creates a world matrix with the specified parameters. Decompose(Matrix4x4, Vector3, Quaternion, Vector3) Decompose(Matrix4x4, Vector3, Quaternion, Vector3) Decompose(Matrix4x4, Vector3, Quaternion, Vector3) Decompose(Matrix4x4, Vector3, Quaternion, Vector3) Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded. Equals(Matrix4x4) Equals(Matrix4x4) Equals(Matrix4x4) Equals(Matrix4x4) Returns a value that indicates whether this instance and another 4x4 matrix are equal. Equals(Object) Equals(Object) Equals(Object) Equals(Object) Returns a value that indicates whether this instance and a specified object are equal. GetDeterminant() GetDeterminant() GetDeterminant() GetDeterminant() Calculates the determinant of the current 4x4 matrix. GetHashCode() GetHashCode() GetHashCode() GetHashCode() Returns the hash code for this instance. Invert(Matrix4x4, Matrix4x4) Invert(Matrix4x4, Matrix4x4) Invert(Matrix4x4, Matrix4x4) Invert(Matrix4x4, Matrix4x4) Inverts the specified matrix. The return value indicates whether the operation succeeded. Lerp(Matrix4x4, Matrix4x4, Single) Lerp(Matrix4x4, Matrix4x4, Single) Lerp(Matrix4x4, Matrix4x4, Single) Lerp(Matrix4x4, Matrix4x4, Single) Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix. Multiply(Matrix4x4, Matrix4x4) Multiply(Matrix4x4, Matrix4x4) Multiply(Matrix4x4, Matrix4x4) Multiply(Matrix4x4, Matrix4x4) Returns the matrix that results from multiplying two matrices together. Multiply(Matrix4x4, Single) Multiply(Matrix4x4, Single) Multiply(Matrix4x4, Single) Multiply(Matrix4x4, Single) Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. Negate(Matrix4x4) Negate(Matrix4x4) Negate(Matrix4x4) Negate(Matrix4x4) Negates the specified matrix by multiplying all its values by -1. Subtract(Matrix4x4, Matrix4x4) Subtract(Matrix4x4, Matrix4x4) Subtract(Matrix4x4, Matrix4x4) Subtract(Matrix4x4, Matrix4x4) Subtracts each element in a second matrix from its corresponding element in a first matrix. ToString() ToString() ToString() ToString() Returns a string that represents this matrix. Transform(Matrix4x4, Quaternion) Transform(Matrix4x4, Quaternion) Transform(Matrix4x4, Quaternion) Transform(Matrix4x4, Quaternion) Transforms the specified matrix by applying the specified Quaternion rotation. Transpose(Matrix4x4) Transpose(Matrix4x4) Transpose(Matrix4x4) Transpose(Matrix4x4) Transposes the rows and columns of a matrix.

## Operators

 Addition(Matrix4x4, Matrix4x4) Addition(Matrix4x4, Matrix4x4) Addition(Matrix4x4, Matrix4x4) Addition(Matrix4x4, Matrix4x4) Adds each element in one matrix with its corresponding element in a second matrix. Equality(Matrix4x4, Matrix4x4) Equality(Matrix4x4, Matrix4x4) Equality(Matrix4x4, Matrix4x4) Equality(Matrix4x4, Matrix4x4) Returns a value that indicates whether the specified matrices are equal. Inequality(Matrix4x4, Matrix4x4) Inequality(Matrix4x4, Matrix4x4) Inequality(Matrix4x4, Matrix4x4) Inequality(Matrix4x4, Matrix4x4) Returns a value that indicates whether the specified matrices are not equal. Multiply(Matrix4x4, Single) Multiply(Matrix4x4, Single) Multiply(Matrix4x4, Single) Multiply(Matrix4x4, Single) Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor. Multiply(Matrix4x4, Matrix4x4) Multiply(Matrix4x4, Matrix4x4) Multiply(Matrix4x4, Matrix4x4) Multiply(Matrix4x4, Matrix4x4) Returns the matrix that results from multiplying two matrices together. Subtraction(Matrix4x4, Matrix4x4) Subtraction(Matrix4x4, Matrix4x4) Subtraction(Matrix4x4, Matrix4x4) Subtraction(Matrix4x4, Matrix4x4) Subtracts each element in a second matrix from its corresponding element in a first matrix. UnaryNegation(Matrix4x4) UnaryNegation(Matrix4x4) UnaryNegation(Matrix4x4) UnaryNegation(Matrix4x4) Negates the specified matrix by multiplying all its values by -1.