Skip to content
This repository was archived by the owner on Dec 13, 2025. It is now read-only.

VRageMath.Matrix

Morten Aune Lyrstad edited this page Apr 16, 2022 · 54 revisions

IndexNamespace Index

Matrix Struct

public struct Matrix: IEquatable<VRageMath.Matrix>

Defines a matrix.

Namespace: VRageMath
Assembly: VRage.Math.dll

Implements:

Fields

Member Description
static Matrix Identity
static Matrix Zero
float M11 Value at row 1 column 1 of the matrix.
float M12 Value at row 1 column 2 of the matrix.
float M13 Value at row 1 column 3 of the matrix.
float M14 Value at row 1 column 4 of the matrix.
float M21 Value at row 2 column 1 of the matrix.
float M22 Value at row 2 column 2 of the matrix.
float M23 Value at row 2 column 3 of the matrix.
float M24 Value at row 2 column 4 of the matrix.
float M31 Value at row 3 column 1 of the matrix.
float M32 Value at row 3 column 2 of the matrix.
float M33 Value at row 3 column 3 of the matrix.
float M34 Value at row 3 column 4 of the matrix.
float M41 Value at row 4 column 1 of the matrix.
float M42 Value at row 4 column 2 of the matrix.
float M43 Value at row 4 column 3 of the matrix.
float M44 Value at row 4 column 4 of the matrix.

Properties

Member Description
Vector3 Backward { get; set; } Gets and sets the backward vector of the Matrix.
Vector3 Col0 { get; }
Vector3 Col1 { get; }
Vector3 Col2 { get; }
Vector3 Down { get; set; } Gets and sets the down vector of the Matrix.
Vector3 Forward { get; set; } Gets and sets the forward vector of the Matrix.
float Item { get; set; }
Vector3 Left { get; set; } Gets and sets the left vector of the Matrix.
Vector3 Right { get; set; } Gets and sets the right vector of the Matrix.
Vector3 Scale { get; }
Vector3 Translation { get; set; } Gets and sets the translation vector of the Matrix.
Vector3 Up { get; set; } Gets and sets the up vector of the Matrix.

Constructors

Member Description
Matrix(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)
Matrix(float, float, float, float, float, float, float, float, float)
Matrix(MatrixD)

Methods

Member Description
static Matrix Add(Matrix, Matrix) Adds a matrix to another matrix.
static void Add(ref Matrix, ref Matrix, out Matrix) Adds a matrix to another matrix.
static Matrix AlignRotationToAxes(ref Matrix, ref Matrix)
static Matrix CreateBillboard(Vector3, Vector3, Vector3, Vector3?) Creates a spherical billboard that rotates around a specified object position.
static void CreateBillboard(ref Vector3, ref Vector3, ref Vector3, Vector3?, out Matrix) Creates a spherical billboard that rotates around a specified object position.
static Matrix CreateConstrainedBillboard(Vector3, Vector3, Vector3, Vector3?, Vector3?) Creates a cylindrical billboard that rotates around a specified axis.
static void CreateConstrainedBillboard(ref Vector3, ref Vector3, ref Vector3, Vector3?, Vector3?, out Matrix) Creates a cylindrical billboard that rotates around a specified axis.
static Matrix CreateFromAxisAngle(Vector3, float) Creates a new Matrix that rotates around an arbitrary vector.
static void CreateFromAxisAngle(ref Vector3, float, out Matrix) Creates a new Matrix that rotates around an arbitrary vector.
static Matrix CreateFromDir(Vector3)
static Matrix CreateFromDir(Vector3, Vector3)
static Matrix CreateFromPerspectiveFieldOfView(ref Matrix, float, float)
static Matrix CreateFromQuaternion(Quaternion) Creates a rotation Matrix from a Quaternion.
static void CreateFromQuaternion(ref Quaternion, out Matrix) Creates a rotation Matrix from a Quaternion.
static Matrix CreateFromTransformScale(Quaternion, Vector3, Vector3)
static Matrix CreateFromYawPitchRoll(float, float, float) Creates a new rotation matrix from a specified yaw, pitch, and roll.
static void CreateFromYawPitchRoll(float, float, float, out Matrix) Fills in a rotation matrix from a specified yaw, pitch, and roll.
static Matrix CreateLookAt(Vector3, Vector3, Vector3) Creates a view matrix.
static void CreateLookAt(ref Vector3, ref Vector3, ref Vector3, out Matrix) Creates a view matrix.
static Matrix CreateLookAtInverse(Vector3, Vector3, Vector3)
static Matrix CreateOrthographic(float, float, float, float) Builds an orthogonal projection matrix.
static void CreateOrthographic(float, float, float, float, out Matrix) Builds an orthogonal projection matrix.
static Matrix CreateOrthographicOffCenter(float, float, float, float, float, float) Builds a customized, orthogonal projection matrix.
static void CreateOrthographicOffCenter(float, float, float, float, float, float, out Matrix) Builds a customized, orthogonal projection matrix.
static Matrix CreatePerspective(float, float, float, float) Builds a perspective projection matrix and returns the result by value.
static void CreatePerspective(float, float, float, float, out Matrix) Builds a perspective projection matrix and returns the result by reference.
static Matrix CreatePerspectiveFieldOfView(float, float, float, float) Builds a perspective projection matrix based on a field of view and returns by value.
static void CreatePerspectiveFieldOfView(float, float, float, float, out Matrix) Builds a perspective projection matrix based on a field of view and returns by reference.
static Matrix CreatePerspectiveFovRhComplementary(float, float, float, float)
static Matrix CreatePerspectiveFovRhInfinite(float, float, float)
static Matrix CreatePerspectiveFovRhInfiniteComplementary(float, float, float)
static Matrix CreatePerspectiveFovRhInfiniteComplementaryInverse(float, float, float)
static Matrix CreatePerspectiveFovRhInfiniteInverse(float, float, float)
static Matrix CreatePerspectiveFovRhInverse(float, float, float, float)
static Matrix CreatePerspectiveOffCenter(float, float, float, float, float, float) Builds a customized, perspective projection matrix.
static void CreatePerspectiveOffCenter(float, float, float, float, float, float, out Matrix) Builds a customized, perspective projection matrix.
static Matrix CreateReflection(Plane) Creates a Matrix that reflects the coordinate system about a specified Plane.
static void CreateReflection(ref Plane, out Matrix) Fills in an existing Matrix so that it reflects the coordinate system about a specified Plane.
static void CreateRotationFromTwoVectors(ref Vector3, ref Vector3, out Matrix)
static Matrix CreateRotationX(float) Returns a matrix that can be used to rotate a set of vertices around the x-axis.
static void CreateRotationX(float, out Matrix) Populates data into a user-specified matrix that can be used to rotate a set of vertices around the x-axis.
static Matrix CreateRotationY(float) Returns a matrix that can be used to rotate a set of vertices around the y-axis.
static void CreateRotationY(float, out Matrix) Populates data into a user-specified matrix that can be used to rotate a set of vertices around the y-axis.
static Matrix CreateRotationZ(float) Returns a matrix that can be used to rotate a set of vertices around the z-axis.
static void CreateRotationZ(float, out Matrix) Populates data into a user-specified matrix that can be used to rotate a set of vertices around the z-axis.
static Matrix CreateScale(float, float, float) Creates a scaling Matrix.
static void CreateScale(float, float, float, out Matrix) Creates a scaling Matrix.
static Matrix CreateScale(Vector3) Creates a scaling Matrix.
static void CreateScale(ref Vector3, out Matrix) Creates a scaling Matrix.
static Matrix CreateScale(float) Creates a scaling Matrix.
static void CreateScale(float, out Matrix) Creates a scaling Matrix.
static Matrix CreateShadow(Vector3, Plane) Creates a Matrix that flattens geometry into a specified Plane as if casting a shadow from a specified light source.
static void CreateShadow(ref Vector3, ref Plane, out Matrix) Fills in a Matrix to flatten geometry into a specified Plane as if casting a shadow from a specified light source.
static Matrix CreateTranslation(Vector3) Creates a translation Matrix.
static void CreateTranslation(ref Vector3, out Matrix) Creates a translation Matrix.
static Matrix CreateTranslation(float, float, float) Creates a translation Matrix.
static void CreateTranslation(float, float, float, out Matrix) Creates a translation Matrix.
static Matrix CreateWorld(Vector3)
static Matrix CreateWorld(Vector3, Vector3, Vector3) Creates a world matrix with the specified parameters.
static void CreateWorld(ref Vector3, ref Vector3, ref Vector3, out Matrix) Creates a world matrix with the specified parameters.
static Matrix Divide(Matrix, Matrix) Divides the components of a matrix by the corresponding components of another matrix.
static void Divide(ref Matrix, ref Matrix, out Matrix) Divides the components of a matrix by the corresponding components of another matrix.
static Matrix Divide(Matrix, float) Divides the components of a matrix by a scalar.
static void Divide(ref Matrix, float, out Matrix) Divides the components of a matrix by a scalar.
static bool GetEulerAnglesXYZ(ref Matrix, out Vector3)
static Matrix Invert(Matrix) Calculates the inverse of a matrix.
static Matrix Invert(ref Matrix)
static void Invert(ref Matrix, out Matrix) Calculates the inverse of a matrix.
static Matrix Lerp(Matrix, Matrix, float) Linearly interpolates between the corresponding values of two matrices.
static void Lerp(ref Matrix, ref Matrix, float, out Matrix) Linearly interpolates between the corresponding values of two matrices.
static Matrix Multiply(Matrix, Matrix) Multiplies a matrix by another matrix.
static void Multiply(ref Matrix, ref Matrix, out Matrix) Multiplies a matrix by another matrix.
static Matrix Multiply(Matrix, float) Multiplies a matrix by a scalar value.
static void Multiply(ref Matrix, float, out Matrix) Multiplies a matrix by a scalar value.
static void MultiplyRotation(ref Matrix, ref Matrix, out Matrix) Multiplies a matrix by another matrix, only rotation parts.
static Matrix Negate(Matrix) Negates individual elements of a matrix.
static void Negate(ref Matrix, out Matrix) Negates individual elements of a matrix.
static Matrix Normalize(Matrix)
static Matrix Orthogonalize(Matrix)
static void Rescale(ref Matrix, float) Same result as Matrix.CreateScale(scale) * matrix, but much faster
static void Rescale(ref Matrix, ref Vector3) Same result as Matrix.CreateScale(scale) * matrix, but much faster
static Matrix Rescale(Matrix, float)
static Matrix Rescale(Matrix, Vector3)
static Matrix Round(ref Matrix)
static void Slerp(ref Matrix, ref Matrix, float, out Matrix) Performs spherical linear interpolation of position and rotation.
static void Slerp(Matrix, Matrix, float, out Matrix) Performs spherical linear interpolation of position and rotation.
static Matrix Slerp(Matrix, Matrix, float) Performs spherical linear interpolation of position and rotation.
static void SlerpScale(ref Matrix, ref Matrix, float, out Matrix) Performs spherical linear interpolation of position and rotation and scale.
static void SlerpScale(Matrix, Matrix, float, out Matrix) Performs spherical linear interpolation of position and rotation and scale.
static Matrix SlerpScale(Matrix, Matrix, float) Performs spherical linear interpolation of position and rotation and scale.
static void Subtract(ref Matrix, ref Matrix, out Matrix) Subtracts matrices.
static Matrix Subtract(Matrix, Matrix) Subtracts matrices.
static Matrix SwapYZCoordinates(Matrix)
static Matrix Transform(Matrix, Quaternion) Transforms a Matrix by applying a Quaternion rotation.
static void Transform(ref Matrix, ref Quaternion, out Matrix) Transforms a Matrix by applying a Quaternion rotation.
static Matrix Transpose(Matrix) Transposes the rows and columns of a matrix.
static void Transpose(ref Matrix, out Matrix) Transposes the rows and columns of a matrix.
void AssertIsValid()
float Determinant() Calculates the determinant of the matrix.
bool Equals(Matrix) Determines whether the specified Object is equal to the Matrix.
bool Equals(object) Returns a value that indicates whether the current instance is equal to a specified object.
bool EqualsFast(ref Matrix, [float]) Compares just position, forward and up
Direction GetClosestDirection(Vector3)
Direction GetClosestDirection(ref Vector3)
Vector3 GetDirectionVector(Direction)
int GetHashCode() Gets the hash code of this object.
Matrix GetOrientation() Gets the orientation.
Vector4 GetRow(int)
bool HasNoTranslationOrPerspective() Returns true if this matrix represents invertible (you can call Invert on it) linear (it does not contain translation or perspective transformation) transformation. Such matrix consist solely of rotations, shearing, mirroring and scaling. It can be orthogonalized to create an orthogonal rotation matrix.
bool IsMirrored()
bool IsNan()
bool IsOrthogonal()
bool IsRotation()
bool IsValid()
void SetDirectionVector(Direction, Vector3)
void SetFrom(ref MatrixD) Set this ma
void SetRotationAndScale(ref MatrixD)
void SetRow(int, Vector4)
string ToString() Retrieves a string representation of the current object.
void TransposeRotationInPlace() Transposes the rows and columns of a matrix that is assumed to be rotation only in place.

Clone this wiki locally