-
Notifications
You must be signed in to change notification settings - Fork 123
VRageMath.MatrixD
← Index ← Namespace Index
public struct MatrixD: IEquatable<MatrixD>
Defines a matrix.
Namespace: VRageMath
Assembly: VRage.Math.dll
Implements:
Value at row 1 column 1 of the matrix.
Value at row 1 column 2 of the matrix.
Value at row 1 column 3 of the matrix.
Value at row 1 column 4 of the matrix.
Value at row 2 column 1 of the matrix.
Value at row 2 column 2 of the matrix.
Value at row 2 column 3 of the matrix.
Value at row 2 column 4 of the matrix.
Value at row 3 column 1 of the matrix.
Value at row 3 column 2 of the matrix.
Value at row 3 column 3 of the matrix.
Value at row 3 column 4 of the matrix.
Value at row 4 column 1 of the matrix.
Value at row 4 column 2 of the matrix.
Value at row 4 column 3 of the matrix.
Value at row 4 column 4 of the matrix.
Vector3D Backward { get; set; }
Gets and sets the backward vector of the Matrix.
Gets and sets the down vector of the Matrix.
Vector3D Forward { get; set; }
Gets and sets the forward vector of the Matrix.
Gets and sets the left vector of the Matrix.
Gets and sets the right vector of the Matrix.
Vector3D Translation { get; set; }
Gets and sets the translation vector of the Matrix.
Gets and sets the up vector of the Matrix.
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)
Creates a spherical billboard that rotates around a specified object position.
Creates a spherical billboard that rotates around a specified object position.
Creates a cylindrical billboard that rotates around a specified axis.
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.
Creates a view matrix.
static MatrixD CreateOrthographic(double width, double height, double zNearPlane, double zFarPlane)
Builds an orthogonal projection matrix.
Builds an orthogonal projection matrix.
Builds a customized, orthogonal projection matrix.
Builds a customized, orthogonal projection matrix.
Builds a perspective projection matrix and returns the result by value.
Builds a perspective projection matrix and returns the result by reference.
Builds a perspective projection matrix based on a field of view and returns by value.
Builds a perspective projection matrix based on a field of view and returns by reference.
Builds a customized, perspective projection matrix.
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.
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.
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)
Calculates the determinant of the matrix.
Determines whether the specified Object is equal to the Matrix.
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)
Gets the hash code of this object.
Gets the orientation.
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 IsOrthogonal(double epsilon)
void SetDirectionVector(Direction direction, Vector3D newValue)
void SetRotationAndScale(ref Matrix m)
void SetRow(int row, Vector4 value)
Retrieves a string representation of the current object.
Do you have questions, comments, suggestions for improvements? Is there something I can do better? Did I make a mistake? Please add an issue here, and prefix your issue title with Wiki. Thank you, your help will be very appreciated!