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

VRageMath.Matrix

Malware edited this page Dec 21, 2018 · 54 revisions

Index

Matrix Struct

Namespace: VRageMath
Assembly: VRage.Math.dll

Summary

Defines a matrix.

Fields

Member Description
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.
static Matrix Identity
static Matrix Zero

Properties

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

Methods

Member Description
static void Subtract(ref Matrix matrix1, ref Matrix matrix2, ref Matrix result) Subtracts matrices.
static Matrix Multiply(Matrix matrix1, Matrix matrix2) Multiplies a matrix by another matrix.
static void Multiply(ref Matrix matrix1, ref Matrix matrix2, ref Matrix result) Multiplies a matrix by another matrix.
static void MultiplyRotation(ref Matrix matrix1, ref Matrix matrix2, ref Matrix result) Multiplies a matrix by another matrix, only rotation parts.
static Matrix Multiply(Matrix matrix1, float scaleFactor) Multiplies a matrix by a scalar value.
static void Multiply(ref Matrix matrix1, float scaleFactor, ref Matrix result) Multiplies a matrix by a scalar value.
static Matrix Divide(Matrix matrix1, Matrix matrix2) Divides the components of a matrix by the corresponding components of another matrix.
static void Divide(ref Matrix matrix1, ref Matrix matrix2, ref Matrix result) Divides the components of a matrix by the corresponding components of another matrix.
static Matrix Divide(Matrix matrix1, float divider) Divides the components of a matrix by a scalar.
static void Divide(ref Matrix matrix1, float divider, ref Matrix result) Divides the components of a matrix by a scalar.
Matrix GetOrientation() Gets the orientation.
void AssertIsValid()
bool IsValid()
bool IsNan()
bool IsRotation()
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.
static Matrix CreateFromDir(Vector3 dir)
static Matrix CreateFromDir(Vector3 dir, Vector3 suggestedUp)
static Matrix Normalize(Matrix matrix)
static Matrix Orthogonalize(Matrix rotationMatrix)
static Matrix Round(ref Matrix matrix)
static Matrix AlignRotationToAxes(ref Matrix toAlign, ref Matrix axisDefinitionMatrix)
static bool GetEulerAnglesXYZ(ref Matrix mat, ref Vector3 xyz)
static Matrix SwapYZCoordinates(Matrix m)
bool IsMirrored()
bool IsOrthogonal()
Vector3 GetDirectionVector(Direction direction)
void SetDirectionVector(Direction direction, Vector3 newValue)
Direction GetClosestDirection(Vector3 referenceVector)
Direction GetClosestDirection(ref Vector3 referenceVector)
static void Rescale(ref Matrix matrix, float scale) Same result as Matrix.CreateScale(scale) * matrix, but much faster
static void Rescale(ref Matrix matrix, ref Vector3 scale) Same result as Matrix.CreateScale(scale) * matrix, but much faster
static Matrix Rescale(Matrix matrix, float scale)
static Matrix Rescale(Matrix matrix, Vector3 scale)
static Matrix CreateBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Nullable<Vector3> cameraForwardVector) Creates a spherical billboard that rotates around a specified object position.
static void CreateBillboard(ref Vector3 objectPosition, ref Vector3 cameraPosition, ref Vector3 cameraUpVector, Nullable<Vector3> cameraForwardVector, ref Matrix result) Creates a spherical billboard that rotates around a specified object position.
static Matrix CreateConstrainedBillboard(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Nullable<Vector3> cameraForwardVector, Nullable<Vector3> objectForwardVector) Creates a cylindrical billboard that rotates around a specified axis.
static void CreateConstrainedBillboard(ref Vector3 objectPosition, ref Vector3 cameraPosition, ref Vector3 rotateAxis, Nullable<Vector3> cameraForwardVector, Nullable<Vector3> objectForwardVector, ref Matrix result) Creates a cylindrical billboard that rotates around a specified axis.
static Matrix CreateTranslation(Vector3 position) Creates a translation Matrix.
static void CreateTranslation(ref Vector3 position, ref Matrix result) Creates a translation Matrix.
static Matrix CreateTranslation(float xPosition, float yPosition, float zPosition) Creates a translation Matrix.
static void CreateTranslation(float xPosition, float yPosition, float zPosition, ref Matrix result) Creates a translation Matrix.
static Matrix CreateScale(float xScale, float yScale, float zScale) Creates a scaling Matrix.
static void CreateScale(float xScale, float yScale, float zScale, ref Matrix result) Creates a scaling Matrix.
static Matrix CreateScale(Vector3 scales) Creates a scaling Matrix.
static void CreateScale(ref Vector3 scales, ref Matrix result) Creates a scaling Matrix.
static Matrix CreateScale(float scale) Creates a scaling Matrix.
static void CreateScale(float scale, ref Matrix result) Creates a scaling Matrix.
static Matrix CreateRotationX(float radians) Returns a matrix that can be used to rotate a set of vertices around the x-axis.
static void CreateRotationX(float radians, ref Matrix result) 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 radians) Returns a matrix that can be used to rotate a set of vertices around the y-axis.
static void CreateRotationY(float radians, ref Matrix result) 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 radians) Returns a matrix that can be used to rotate a set of vertices around the z-axis.
static void CreateRotationZ(float radians, ref Matrix result) Populates data into a user-specified matrix that can be used to rotate a set of vertices around the z-axis.
static Matrix CreateFromAxisAngle(Vector3 axis, float angle) Creates a new Matrix that rotates around an arbitrary vector.
static void CreateFromAxisAngle(ref Vector3 axis, float angle, ref Matrix result) Creates a new Matrix that rotates around an arbitrary vector.
static void CreateRotationFromTwoVectors(ref Vector3 fromVector, ref Vector3 toVector, ref Matrix resultMatrix)
static Matrix CreatePerspectiveFieldOfView(float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance) Builds a perspective projection matrix based on a field of view and returns by value.
static Matrix CreatePerspectiveFovRhComplementary(float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance)
static Matrix CreatePerspectiveFovRhInfinite(float fieldOfView, float aspectRatio, float nearPlaneDistance)
static Matrix CreatePerspectiveFovRhInfiniteComplementary(float fieldOfView, float aspectRatio, float nearPlaneDistance)
static Matrix CreatePerspectiveFovRhInverse(float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance)
static Matrix CreatePerspectiveFovRhInfiniteInverse(float fieldOfView, float aspectRatio, float nearPlaneDistance)
static Matrix CreatePerspectiveFovRhInfiniteComplementaryInverse(float fieldOfView, float aspectRatio, float nearPlaneDistance)
static Matrix CreateFromPerspectiveFieldOfView(ref Matrix proj, float nearPlaneDistance, float farPlaneDistance)
static void CreatePerspectiveFieldOfView(float fieldOfView, float aspectRatio, float nearPlaneDistance, float farPlaneDistance, ref Matrix result) Builds a perspective projection matrix based on a field of view and returns by reference.
static Matrix CreatePerspective(float width, float height, float nearPlaneDistance, float farPlaneDistance) Builds a perspective projection matrix and returns the result by value.
static void CreatePerspective(float width, float height, float nearPlaneDistance, float farPlaneDistance, ref Matrix result) Builds a perspective projection matrix and returns the result by reference.
static Matrix CreatePerspectiveOffCenter(float left, float right, float bottom, float top, float nearPlaneDistance, float farPlaneDistance) Builds a customized, perspective projection matrix.
static void CreatePerspectiveOffCenter(float left, float right, float bottom, float top, float nearPlaneDistance, float farPlaneDistance, ref Matrix result) Builds a customized, perspective projection matrix.
static Matrix CreateOrthographic(float width, float height, float zNearPlane, float zFarPlane) Builds an orthogonal projection matrix.
static void CreateOrthographic(float width, float height, float zNearPlane, float zFarPlane, ref Matrix result) Builds an orthogonal projection matrix.
static Matrix CreateOrthographicOffCenter(float left, float right, float bottom, float top, float zNearPlane, float zFarPlane) Builds a customized, orthogonal projection matrix.
static void CreateOrthographicOffCenter(float left, float right, float bottom, float top, float zNearPlane, float zFarPlane, ref Matrix result) Builds a customized, orthogonal projection matrix.
static Matrix CreateLookAt(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector) Creates a view matrix.
static Matrix CreateLookAtInverse(Vector3 cameraPosition, Vector3 cameraTarget, Vector3 cameraUpVector)
static void CreateLookAt(ref Vector3 cameraPosition, ref Vector3 cameraTarget, ref Vector3 cameraUpVector, ref Matrix result) Creates a view matrix.
static Matrix CreateWorld(Vector3 position)
static Matrix CreateWorld(Vector3 position, Vector3 forward, Vector3 up) Creates a world matrix with the specified parameters.
static void CreateWorld(ref Vector3 position, ref Vector3 forward, ref Vector3 up, ref Matrix result) Creates a world matrix with the specified parameters.
static Matrix CreateFromQuaternion(Quaternion quaternion) Creates a rotation Matrix from a Quaternion.
static void CreateFromQuaternion(ref Quaternion quaternion, ref Matrix result) Creates a rotation Matrix from a Quaternion.
static Matrix CreateFromYawPitchRoll(float yaw, float pitch, float roll) Creates a new rotation matrix from a specified yaw, pitch, and roll.
static void CreateFromYawPitchRoll(float yaw, float pitch, float roll, ref Matrix result) Fills in a rotation matrix from a specified yaw, pitch, and roll.
static Matrix CreateFromTransformScale(Quaternion orientation, Vector3 position, Vector3 scale)
static Matrix CreateShadow(Vector3 lightDirection, Plane 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 lightDirection, ref Plane plane, ref Matrix result) Fills in a Matrix to flatten geometry into a specified Plane as if casting a shadow from a specified light source.
static Matrix CreateReflection(Plane value) Creates a Matrix that reflects the coordinate system about a specified Plane.
static void CreateReflection(ref Plane value, ref Matrix result) Fills in an existing Matrix so that it reflects the coordinate system about a specified Plane.
static Matrix Transform(Matrix value, Quaternion rotation) Transforms a Matrix by applying a Quaternion rotation.
static void Transform(ref Matrix value, ref Quaternion rotation, ref Matrix result) Transforms a Matrix by applying a Quaternion rotation.
Vector4 GetRow(int row)
void SetRow(int row, Vector4 value)
string ToString() Retrieves a string representation of the current object.
bool Equals(Matrix other) Determines whether the specified Object is equal to the Matrix.
bool EqualsFast(ref Matrix other, float epsilon) Compares just position, forward and up
bool Equals(Object obj) Returns a value that indicates whether the current instance is equal to a specified object.
int GetHashCode() Gets the hash code of this object.
static Matrix Transpose(Matrix matrix) Transposes the rows and columns of a matrix.
static void Transpose(ref Matrix matrix, ref Matrix result) Transposes the rows and columns of a matrix.
void TransposeRotationInPlace() Transposes the rows and columns of a matrix that is assumed to be rotation only in place.
float Determinant() Calculates the determinant of the matrix.
static Matrix Invert(Matrix matrix) Calculates the inverse of a matrix.
static Matrix Invert(ref Matrix matrix)
static void Invert(ref Matrix matrix, ref Matrix result) Calculates the inverse of a matrix.
static Matrix Lerp(Matrix matrix1, Matrix matrix2, float amount) Linearly interpolates between the corresponding values of two matrices.
static void Lerp(ref Matrix matrix1, ref Matrix matrix2, float amount, ref Matrix result) Linearly interpolates between the corresponding values of two matrices.
static void Slerp(ref Matrix matrix1, ref Matrix matrix2, float amount, ref Matrix result) Performs spherical linear interpolation of position and rotation.
static void SlerpScale(ref Matrix matrix1, ref Matrix matrix2, float amount, ref Matrix result) Performs spherical linear interpolation of position and rotation and scale.
static void Slerp(Matrix matrix1, Matrix matrix2, float amount, ref Matrix result) Performs spherical linear interpolation of position and rotation.
static Matrix Slerp(Matrix matrix1, Matrix matrix2, float amount) Performs spherical linear interpolation of position and rotation.
static void SlerpScale(Matrix matrix1, Matrix matrix2, float amount, ref Matrix result) Performs spherical linear interpolation of position and rotation and scale.
static Matrix SlerpScale(Matrix matrix1, Matrix matrix2, float amount) Performs spherical linear interpolation of position and rotation and scale.
static Matrix Negate(Matrix matrix) Negates individual elements of a matrix.
static void Negate(ref Matrix matrix, ref Matrix result) Negates individual elements of a matrix.
static Matrix Add(Matrix matrix1, Matrix matrix2) Adds a matrix to another matrix.
static void Add(ref Matrix matrix1, ref Matrix matrix2, ref Matrix result) Adds a matrix to another matrix.
static Matrix Subtract(Matrix matrix1, Matrix matrix2) Subtracts matrices.

Clone this wiki locally