Skip to content
This repository has been archived by the owner on Oct 22, 2024. It is now read-only.

VRageMath.MatrixD

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

IndexNamespace Index

MatrixD Struct

public struct MatrixD: IEquatable<MatrixD>

Defines a matrix.

Namespace: VRageMath
Assembly: VRage.Math.dll

Implements:

Fields

static MatrixD Identity

static MatrixD Zero

double M11

Value at row 1 column 1 of the matrix.

double M12

Value at row 1 column 2 of the matrix.

double M13

Value at row 1 column 3 of the matrix.

double M14

Value at row 1 column 4 of the matrix.

double M21

Value at row 2 column 1 of the matrix.

double M22

Value at row 2 column 2 of the matrix.

double M23

Value at row 2 column 3 of the matrix.

double M24

Value at row 2 column 4 of the matrix.

double M31

Value at row 3 column 1 of the matrix.

double M32

Value at row 3 column 2 of the matrix.

double M33

Value at row 3 column 3 of the matrix.

double M34

Value at row 3 column 4 of the matrix.

double M41

Value at row 4 column 1 of the matrix.

double M42

Value at row 4 column 2 of the matrix.

double M43

Value at row 4 column 3 of the matrix.

double M44

Value at row 4 column 4 of the matrix.

Properties

Vector3D Backward { get; set; }

Gets and sets the backward vector of the Matrix.

Vector3D Col0 { get; }

Vector3D Col1 { get; }

Vector3D Col2 { get; }

Vector3D Down { get; set; }

Gets and sets the down vector of the Matrix.

Vector3D Forward { get; set; }

Gets and sets the forward vector of the Matrix.

double Item { get; set; }

Vector3D Left { get; set; }

Gets and sets the left vector of the Matrix.

Vector3D Right { get; set; }

Gets and sets the right vector of the Matrix.

Matrix3x3 Rotation { get; }

Vector3D Scale { get; }

Vector3D Translation { get; set; }

Gets and sets the translation vector of the Matrix.

Vector3D Up { get; set; }

Gets and sets the up vector of the Matrix.

Constructors

MatrixD(double m11, double m12, double m13, double m14, double m21, double m22, double m23, double m24, double m31, double m32, double m33, double m34, double m41, double m42, double m43, double m44)

MatrixD(double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33)

MatrixD(Matrix m)

Methods

static MatrixD Add(MatrixD matrix1, MatrixD matrix2)

Adds a matrix to another matrix.

static void Add(ref MatrixD matrix1, ref MatrixD matrix2, out MatrixD result)

Adds a matrix to another matrix.

static MatrixD AlignRotationToAxes(ref MatrixD toAlign, ref MatrixD axisDefinitionMatrix)

static MatrixD CreateBillboard(Vector3D objectPosition, Vector3D cameraPosition, Vector3D cameraUpVector, Vector3D? cameraForwardVector)

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

static void CreateBillboard(ref Vector3D objectPosition, ref Vector3D cameraPosition, ref Vector3D cameraUpVector, Vector3D? cameraForwardVector, out MatrixD result)

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

static MatrixD CreateConstrainedBillboard(Vector3D objectPosition, Vector3D cameraPosition, Vector3D rotateAxis, Vector3D? cameraForwardVector, Vector3D? objectForwardVector)

Creates a cylindrical billboard that rotates around a specified axis.

static void CreateConstrainedBillboard(ref Vector3D objectPosition, ref Vector3D cameraPosition, ref Vector3D rotateAxis, Vector3D? cameraForwardVector, Vector3D? objectForwardVector, out MatrixD result)

Creates a cylindrical billboard that rotates around a specified axis.

static MatrixD CreateFromAxisAngle(Vector3D axis, double angle)

Creates a new Matrix that rotates around an arbitrary vector.

static void CreateFromAxisAngle(ref Vector3D axis, double angle, out MatrixD result)

Creates a new Matrix that rotates around an arbitrary vector.

static MatrixD CreateFromDir(Vector3D dir)

static MatrixD CreateFromDir(Vector3D dir, Vector3D suggestedUp)

static MatrixD CreateFromQuaternion(Quaternion quaternion)

Creates a rotation Matrix from a Quaternion.

static MatrixD CreateFromQuaternion(QuaternionD quaternion)

static void CreateFromQuaternion(ref Quaternion quaternion, out MatrixD result)

Creates a rotation Matrix from a Quaternion.

static MatrixD CreateFromTransformScale(Quaternion orientation, Vector3D position, Vector3D scale)

static MatrixD CreateFromYawPitchRoll(double yaw, double pitch, double roll)

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

static void CreateFromYawPitchRoll(double yaw, double pitch, double roll, out MatrixD result)

Fills in a rotation matrix from a specified yaw, pitch, and roll.

static MatrixD CreateLookAt(Vector3D cameraPosition, Vector3D cameraTarget, Vector3 cameraUpVector)

static MatrixD CreateLookAt(Vector3D cameraPosition, Vector3D cameraTarget, Vector3D cameraUpVector)

Creates a view matrix.

static void CreateLookAt(ref Vector3D cameraPosition, ref Vector3D cameraTarget, ref Vector3D cameraUpVector, out MatrixD result)

Creates a view matrix.

static MatrixD CreateLookAtInverse(Vector3D cameraPosition, Vector3D cameraTarget, Vector3D cameraUpVector)

static MatrixD CreateOrthographic(double width, double height, double zNearPlane, double zFarPlane)

Builds an orthogonal projection matrix.

static void CreateOrthographic(double width, double height, double zNearPlane, double zFarPlane, out MatrixD result)

Builds an orthogonal projection matrix.

static MatrixD CreateOrthographicOffCenter(double left, double right, double bottom, double top, double zNearPlane, double zFarPlane)

Builds a customized, orthogonal projection matrix.

static void CreateOrthographicOffCenter(double left, double right, double bottom, double top, double zNearPlane, double zFarPlane, out MatrixD result)

Builds a customized, orthogonal projection matrix.

static MatrixD CreatePerspective(double width, double height, double nearPlaneDistance, double farPlaneDistance)

Builds a perspective projection matrix and returns the result by value.

static void CreatePerspective(double width, double height, double nearPlaneDistance, double farPlaneDistance, out MatrixD result)

Builds a perspective projection matrix and returns the result by reference.

static MatrixD CreatePerspectiveFieldOfView(double fieldOfView, double aspectRatio, double nearPlaneDistance, double farPlaneDistance)

Builds a perspective projection matrix based on a field of view and returns by value.

static void CreatePerspectiveFieldOfView(double fieldOfView, double aspectRatio, double nearPlaneDistance, double farPlaneDistance, out MatrixD result)

Builds a perspective projection matrix based on a field of view and returns by reference.

static MatrixD CreatePerspectiveOffCenter(double left, double right, double bottom, double top, double nearPlaneDistance, double farPlaneDistance)

Builds a customized, perspective projection matrix.

static void CreatePerspectiveOffCenter(double left, double right, double bottom, double top, double nearPlaneDistance, double farPlaneDistance, out MatrixD result)

Builds a customized, perspective projection matrix.

static MatrixD CreateReflection(Plane value)

Creates a Matrix that reflects the coordinate system about a specified Plane.

static void CreateReflection(ref Plane value, out MatrixD result)

Fills in an existing Matrix so that it reflects the coordinate system about a specified Plane.

static MatrixD CreateRotationX(double radians)

Returns a matrix that can be used to rotate a set of vertices around the x-axis.

static void CreateRotationX(double radians, out MatrixD result)

Populates data into a user-specified matrix that can be used to rotate a set of vertices around the x-axis.

static MatrixD CreateRotationY(double radians)

Returns a matrix that can be used to rotate a set of vertices around the y-axis.

static void CreateRotationY(double radians, out MatrixD result)

Populates data into a user-specified matrix that can be used to rotate a set of vertices around the y-axis.

static MatrixD CreateRotationZ(double radians)

Returns a matrix that can be used to rotate a set of vertices around the z-axis.

static void CreateRotationZ(double radians, out MatrixD result)

Populates data into a user-specified matrix that can be used to rotate a set of vertices around the z-axis.

static MatrixD CreateScale(double xScale, double yScale, double zScale)

Creates a scaling Matrix.

static void CreateScale(double xScale, double yScale, double zScale, out MatrixD result)

Creates a scaling Matrix.

static MatrixD CreateScale(Vector3D scales)

Creates a scaling Matrix.

static void CreateScale(ref Vector3D scales, out MatrixD result)

Creates a scaling Matrix.

static MatrixD CreateScale(double scale)

Creates a scaling Matrix.

static void CreateScale(double scale, out MatrixD result)

Creates a scaling Matrix.

static MatrixD CreateShadow(Vector3D 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 Vector3D lightDirection, ref Plane plane, out MatrixD result)

Fills in a Matrix to flatten geometry into a specified Plane as if casting a shadow from a specified light source.

static MatrixD CreateTranslation(Vector3D position)

Creates a translation Matrix.

static MatrixD CreateTranslation(Vector3 position)

static void CreateTranslation(ref Vector3D position, out MatrixD result)

Creates a translation Matrix.

static MatrixD CreateTranslation(double xPosition, double yPosition, double zPosition)

Creates a translation Matrix.

static void CreateTranslation(double xPosition, double yPosition, double zPosition, out MatrixD result)

Creates a translation Matrix.

static MatrixD CreateWorld(Vector3D position, Vector3 forward, Vector3 up)

static MatrixD CreateWorld(Vector3D position)

static MatrixD CreateWorld(Vector3D position, Vector3D forward, Vector3D up)

Creates a world matrix with the specified parameters.

static void CreateWorld(ref Vector3D position, ref Vector3D forward, ref Vector3D up, out MatrixD result)

Creates a world matrix with the specified parameters.

static MatrixD Divide(MatrixD matrix1, MatrixD matrix2)

Divides the components of a matrix by the corresponding components of another matrix.

static void Divide(ref MatrixD matrix1, ref MatrixD matrix2, out MatrixD result)

Divides the components of a matrix by the corresponding components of another matrix.

static MatrixD Divide(MatrixD matrix1, double divider)

Divides the components of a matrix by a scalar.

static void Divide(ref MatrixD matrix1, double divider, out MatrixD result)

Divides the components of a matrix by a scalar.

static bool GetEulerAnglesXYZ(ref MatrixD mat, out Vector3D xyz)

static MatrixD Invert(MatrixD matrix)

Calculates the inverse of a matrix.

static MatrixD Invert(ref MatrixD matrix)

static void Invert(ref MatrixD matrix, out MatrixD result)

Calculates the inverse of a matrix.

static MatrixD Lerp(MatrixD matrix1, MatrixD matrix2, double amount)

Linearly interpolates between the corresponding values of two matrices.

static void Lerp(ref MatrixD matrix1, ref MatrixD matrix2, double amount, out MatrixD result)

Linearly interpolates between the corresponding values of two matrices.

static MatrixD Multiply(MatrixD matrix1, MatrixD matrix2)

Multiplies a matrix by another matrix.

static MatrixD Multiply(MatrixD matrix1, Matrix matrix2)

Multiplies a matrix by another matrix.

static void Multiply(ref MatrixD matrix1, ref Matrix matrix2, out MatrixD result)

Multiplies a matrix by another matrix.

static void Multiply(ref Matrix matrix1, ref MatrixD matrix2, out MatrixD result)

static void Multiply(ref MatrixD matrix1, ref MatrixD matrix2, out MatrixD result)

Multiplies a matrix by another matrix.

static MatrixD Multiply(MatrixD matrix1, double scaleFactor)

Multiplies a matrix by a scalar value.

static void Multiply(ref MatrixD matrix1, double scaleFactor, out MatrixD result)

Multiplies a matrix by a scalar value.

static MatrixD Negate(MatrixD matrix)

Negates individual elements of a matrix.

static void Negate(ref MatrixD matrix, out MatrixD result)

Negates individual elements of a matrix.

static MatrixD Normalize(MatrixD matrix)

static MatrixD Orthogonalize(MatrixD rotationMatrix)

static void Rescale(ref MatrixD matrix, double scale)

Same result as Matrix.CreateScale(scale) * matrix, but much faster

static void Rescale(ref MatrixD matrix, float scale)

Same result as Matrix.CreateScale(scale) * matrix, but much faster

static void Rescale(ref MatrixD matrix, ref Vector3D scale)

Same result as Matrix.CreateScale(scale) * matrix, but much faster

static MatrixD Rescale(MatrixD matrix, double scale)

static MatrixD Rescale(MatrixD matrix, Vector3D scale)

static void Slerp(ref MatrixD matrix1, ref MatrixD matrix2, double amount, out MatrixD result)

Performs spherical linear interpolation of position and rotation.

static MatrixD Slerp(MatrixD matrix1, MatrixD matrix2, double amount)

Performs spherical linear interpolation of position and rotation.

static void SlerpScale(ref MatrixD matrix1, ref MatrixD matrix2, double amount, out MatrixD result)

Performs spherical linear interpolation of position and rotation and scale.

static void SlerpScale(MatrixD matrix1, MatrixD matrix2, double amount, out MatrixD result)

Performs spherical linear interpolation of position and rotation and scale.

static MatrixD SlerpScale(MatrixD matrix1, MatrixD matrix2, double amount)

Performs spherical linear interpolation of position and rotation and scale.

static void Subtract(ref MatrixD matrix1, ref MatrixD matrix2, out MatrixD result)

Subtracts matrices.

static Matrix Subtract(Matrix matrix1, Matrix matrix2)

Subtracts matrices.

static MatrixD SwapYZCoordinates(MatrixD m)

static MatrixD Transform(MatrixD value, Quaternion rotation)

Transforms a Matrix by applying a Quaternion rotation.

static void Transform(ref MatrixD value, ref Quaternion rotation, out MatrixD result)

Transforms a Matrix by applying a Quaternion rotation.

static MatrixD Transpose(MatrixD matrix)

Transposes the rows and columns of a matrix.

static void Transpose(ref MatrixD matrix, out MatrixD result)

Transposes the rows and columns of a matrix.

void AssertIsValid(string message = null)

double Determinant()

Calculates the determinant of the matrix.

bool Equals(MatrixD other)

Determines whether the specified Object is equal to the Matrix.

bool Equals(object obj)

Returns a value that indicates whether the current instance is equal to a specified object.

bool EqualsFast(ref MatrixD other, double epsilon = 0.0001)

Compares just position, forward and up

Direction GetClosestDirection(Vector3D referenceVector)

Direction GetClosestDirection(ref Vector3D referenceVector)

Vector3D GetDirectionVector(Direction direction)

int GetHashCode()

Gets the hash code of this object.

MatrixD GetOrientation()

Gets the orientation.

Vector4D GetRow(int row)

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 IsOrthogonal(double epsilon)

bool IsRotation()

bool IsValid()

void Orthogonalize()

void SetDirectionVector(Direction direction, Vector3D newValue)

void SetFrom(ref Matrix m)

void SetRotationAndScale(ref Matrix m)

void SetRow(int row, Vector4 value)

string ToString()

Retrieves a string representation of the current object.

Clone this wiki locally