Struct Matrix3x4d
Represents a 3x4 Matrix
Implements
Inherited Members
Namespace: OpenTK
Assembly: OpenTK.dll
Syntax
[Serializable]
public struct Matrix3x4d : IEquatable<Matrix3x4d>
Constructors
Matrix3x4d(Vector4d, Vector4d, Vector4d)
Constructs a new instance.
Declaration
public Matrix3x4d(Vector4d row0, Vector4d row1, Vector4d row2)
Parameters
Type | Name | Description |
---|---|---|
Vector4d | row0 | Top row of the matrix |
Vector4d | row1 | Second row of the matrix |
Vector4d | row2 | Bottom row of the matrix |
Matrix3x4d(Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)
Constructs a new instance.
Declaration
public Matrix3x4d(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23)
Parameters
Type | Name | Description |
---|---|---|
Double | m00 | First item of the first row of the matrix. |
Double | m01 | Second item of the first row of the matrix. |
Double | m02 | Third item of the first row of the matrix. |
Double | m03 | Fourth item of the first row of the matrix. |
Double | m10 | First item of the second row of the matrix. |
Double | m11 | Second item of the second row of the matrix. |
Double | m12 | Third item of the second row of the matrix. |
Double | m13 | Fourth item of the second row of the matrix. |
Double | m20 | First item of the third row of the matrix. |
Double | m21 | Second item of the third row of the matrix. |
Double | m22 | Third item of the third row of the matrix. |
Double | m23 | First item of the third row of the matrix. |
Fields
Row0
Top row of the matrix
Declaration
public Vector4d Row0
Field Value
Type | Description |
---|---|
Vector4d |
Row1
2nd row of the matrix
Declaration
public Vector4d Row1
Field Value
Type | Description |
---|---|
Vector4d |
Row2
Bottom row of the matrix
Declaration
public Vector4d Row2
Field Value
Type | Description |
---|---|
Vector4d |
Zero
The zero matrix
Declaration
public static Matrix3x4d Zero
Field Value
Type | Description |
---|---|
Matrix3x4d |
Properties
Column0
Gets the first column of this matrix.
Declaration
public readonly Vector3d Column0 { get; }
Property Value
Type | Description |
---|---|
Vector3d |
Column1
Gets the second column of this matrix.
Declaration
public readonly Vector3d Column1 { get; }
Property Value
Type | Description |
---|---|
Vector3d |
Column2
Gets the third column of this matrix.
Declaration
public readonly Vector3d Column2 { get; }
Property Value
Type | Description |
---|---|
Vector3d |
Column3
Gets the fourth column of this matrix.
Declaration
public readonly Vector3d Column3 { get; }
Property Value
Type | Description |
---|---|
Vector3d |
Diagonal
Gets or sets the values along the main diagonal of the matrix.
Declaration
public Vector3d Diagonal { get; set; }
Property Value
Type | Description |
---|---|
Vector3d |
Item[Int32, Int32]
Gets or sets the value at a specified row and column.
Declaration
public double this[int rowIndex, int columnIndex] { get; set; }
Parameters
Type | Name | Description |
---|---|---|
Int32 | rowIndex | |
Int32 | columnIndex |
Property Value
Type | Description |
---|---|
Double |
M11
Gets or sets the value at row 1, column 1 of this instance.
Declaration
public double M11 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M12
Gets or sets the value at row 1, column 2 of this instance.
Declaration
public double M12 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M13
Gets or sets the value at row 1, column 3 of this instance.
Declaration
public double M13 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M14
Gets or sets the value at row 1, column 4 of this instance.
Declaration
public double M14 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M21
Gets or sets the value at row 2, column 1 of this instance.
Declaration
public double M21 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M22
Gets or sets the value at row 2, column 2 of this instance.
Declaration
public double M22 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M23
Gets or sets the value at row 2, column 3 of this instance.
Declaration
public double M23 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M24
Gets or sets the value at row 2, column 4 of this instance.
Declaration
public double M24 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M31
Gets or sets the value at row 3, column 1 of this instance.
Declaration
public double M31 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M32
Gets or sets the value at row 3, column 2 of this instance.
Declaration
public double M32 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M33
Gets or sets the value at row 3, column 3 of this instance.
Declaration
public double M33 { get; set; }
Property Value
Type | Description |
---|---|
Double |
M34
Gets or sets the value at row 3, column 4 of this instance.
Declaration
public double M34 { get; set; }
Property Value
Type | Description |
---|---|
Double |
Trace
Gets the trace of the matrix, the sum of the values along the diagonal.
Declaration
public readonly double Trace { get; }
Property Value
Type | Description |
---|---|
Double |
Methods
Add(Matrix3x4d, Matrix3x4d)
Adds two instances.
Declaration
public static Matrix3x4d Add(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the addition. |
Matrix3x4d | right | The right operand of the addition. |
Returns
Type | Description |
---|---|
Matrix3x4d | A new instance that is the result of the addition. |
Add(ref Matrix3x4d, ref Matrix3x4d, out Matrix3x4d)
Adds two instances.
Declaration
public static void Add(ref Matrix3x4d left, ref Matrix3x4d right, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the addition. |
Matrix3x4d | right | The right operand of the addition. |
Matrix3x4d | result | A new instance that is the result of the addition. |
CreateFromAxisAngle(Vector3d, Double)
Build a rotation matrix from the specified axis/angle rotation.
Declaration
public static Matrix3x4d CreateFromAxisAngle(Vector3d axis, double angle)
Parameters
Type | Name | Description |
---|---|---|
Vector3d | axis | The axis to rotate about. |
Double | angle | Angle in radians to rotate counter-clockwise (looking in the direction of the given axis). |
Returns
Type | Description |
---|---|
Matrix3x4d | A matrix instance. |
CreateFromAxisAngle(Vector3d, Double, out Matrix3x4d)
Build a rotation matrix from the specified axis/angle rotation.
Declaration
public static void CreateFromAxisAngle(Vector3d axis, double angle, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Vector3d | axis | The axis to rotate about. |
Double | angle | Angle in radians to rotate counter-clockwise (looking in the direction of the given axis). |
Matrix3x4d | result | A matrix instance. |
CreateFromQuaternion(Quaternion)
Builds a rotation matrix from a quaternion.
Declaration
public static Matrix3x4d CreateFromQuaternion(Quaternion q)
Parameters
Type | Name | Description |
---|---|---|
Quaternion | q | The quaternion to rotate by. |
Returns
Type | Description |
---|---|
Matrix3x4d | A matrix instance. |
CreateFromQuaternion(ref Quaternion, out Matrix3x4d)
Builds a rotation matrix from a quaternion.
Declaration
public static void CreateFromQuaternion(ref Quaternion q, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Quaternion | q | The quaternion to rotate by. |
Matrix3x4d | result | A matrix instance. |
CreateRotationX(Double)
Builds a rotation matrix for a rotation around the x-axis.
Declaration
public static Matrix3x4d CreateRotationX(double angle)
Parameters
Type | Name | Description |
---|---|---|
Double | angle | The counter-clockwise angle in radians. |
Returns
Type | Description |
---|---|
Matrix3x4d | The resulting Matrix4 instance. |
CreateRotationX(Double, out Matrix3x4d)
Builds a rotation matrix for a rotation around the x-axis.
Declaration
public static void CreateRotationX(double angle, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Double | angle | The counter-clockwise angle in radians. |
Matrix3x4d | result | The resulting Matrix4 instance. |
CreateRotationY(Double)
Builds a rotation matrix for a rotation around the y-axis.
Declaration
public static Matrix3x4d CreateRotationY(double angle)
Parameters
Type | Name | Description |
---|---|---|
Double | angle | The counter-clockwise angle in radians. |
Returns
Type | Description |
---|---|
Matrix3x4d | The resulting Matrix4 instance. |
CreateRotationY(Double, out Matrix3x4d)
Builds a rotation matrix for a rotation around the y-axis.
Declaration
public static void CreateRotationY(double angle, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Double | angle | The counter-clockwise angle in radians. |
Matrix3x4d | result | The resulting Matrix4 instance. |
CreateRotationZ(Double)
Builds a rotation matrix for a rotation around the z-axis.
Declaration
public static Matrix3x4d CreateRotationZ(double angle)
Parameters
Type | Name | Description |
---|---|---|
Double | angle | The counter-clockwise angle in radians. |
Returns
Type | Description |
---|---|
Matrix3x4d | The resulting Matrix4 instance. |
CreateRotationZ(Double, out Matrix3x4d)
Builds a rotation matrix for a rotation around the z-axis.
Declaration
public static void CreateRotationZ(double angle, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Double | angle | The counter-clockwise angle in radians. |
Matrix3x4d | result | The resulting Matrix4 instance. |
CreateScale(Vector3d)
Build a scaling matrix
Declaration
public static Matrix3x4d CreateScale(Vector3d scale)
Parameters
Type | Name | Description |
---|---|---|
Vector3d | scale | Scale factors for x,y and z axes |
Returns
Type | Description |
---|---|
Matrix3x4d | A scaling matrix |
CreateScale(Double)
Build a scaling matrix
Declaration
public static Matrix3x4d CreateScale(double scale)
Parameters
Type | Name | Description |
---|---|---|
Double | scale | Single scale factor for x,y and z axes |
Returns
Type | Description |
---|---|
Matrix3x4d | A scaling matrix |
CreateScale(Double, Double, Double)
Build a scaling matrix
Declaration
public static Matrix3x4d CreateScale(double x, double y, double z)
Parameters
Type | Name | Description |
---|---|---|
Double | x | Scale factor for x-axis |
Double | y | Scale factor for y-axis |
Double | z | Scale factor for z-axis |
Returns
Type | Description |
---|---|
Matrix3x4d | A scaling matrix |
CreateTranslation(Vector3d)
Creates a translation matrix.
Declaration
public static Matrix3x4d CreateTranslation(Vector3d vector)
Parameters
Type | Name | Description |
---|---|---|
Vector3d | vector | The translation vector. |
Returns
Type | Description |
---|---|
Matrix3x4d | The resulting Matrix4 instance. |
CreateTranslation(ref Vector3d, out Matrix3x4d)
Creates a translation matrix.
Declaration
public static void CreateTranslation(ref Vector3d vector, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Vector3d | vector | The translation vector. |
Matrix3x4d | result | The resulting Matrix4 instance. |
CreateTranslation(Double, Double, Double)
Creates a translation matrix.
Declaration
public static Matrix3x4d CreateTranslation(double x, double y, double z)
Parameters
Type | Name | Description |
---|---|---|
Double | x | X translation. |
Double | y | Y translation. |
Double | z | Z translation. |
Returns
Type | Description |
---|---|
Matrix3x4d | The resulting Matrix4 instance. |
CreateTranslation(Double, Double, Double, out Matrix3x4d)
Creates a translation matrix.
Declaration
public static void CreateTranslation(double x, double y, double z, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Double | x | X translation. |
Double | y | Y translation. |
Double | z | Z translation. |
Matrix3x4d | result | The resulting Matrix4 instance. |
Equals(Matrix3x4d)
Indicates whether the current matrix is equal to another matrix.
Declaration
public bool Equals(Matrix3x4d other)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | other | An matrix to compare with this matrix. |
Returns
Type | Description |
---|---|
Boolean | true if the current matrix is equal to the matrix parameter; otherwise, false. |
Equals(Object)
Indicates whether this instance and a specified object are equal.
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
Object | obj | The object to compare to. |
Returns
Type | Description |
---|---|
Boolean | True if the instances are equal; false otherwise. |
Overrides
GetHashCode()
Returns the hashcode for this instance.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
Int32 | A System.Int32 containing the unique hashcode for this instance. |
Overrides
Invert()
Converts this instance into its inverse.
Declaration
public void Invert()
Invert(Matrix3x4d)
Calculate the inverse of the given matrix
Declaration
public static Matrix3x4d Invert(Matrix3x4d mat)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | mat | The matrix to invert |
Returns
Type | Description |
---|---|
Matrix3x4d | The inverse of the given matrix if it has one, or the input if it is singular |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown if the Matrix4 is singular. |
Invert(ref Matrix3x4d, out Matrix3x4d)
Calculate the inverse of the given matrix
Declaration
public static void Invert(ref Matrix3x4d mat, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | mat | The matrix to invert |
Matrix3x4d | result | The inverse of the given matrix if it has one, or the input if it is singular |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown if the Matrix4 is singular. |
Mult(Matrix3x4d, Matrix3x4d)
Multiplies two instances.
Declaration
public static Matrix3x4d Mult(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the multiplication. |
Matrix3x4d | right | The right operand of the multiplication. |
Returns
Type | Description |
---|---|
Matrix3x4d | A new instance that is the result of the multiplication |
Mult(Matrix3x4d, Matrix4x3d)
Multiplies two instances.
Declaration
public static Matrix3d Mult(Matrix3x4d left, Matrix4x3d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the multiplication. |
Matrix4x3d | right | The right operand of the multiplication. |
Returns
Type | Description |
---|---|
Matrix3d | A new instance that is the result of the multiplication |
Mult(Matrix3x4d, Double)
Multiplies an instance by a scalar.
Declaration
public static Matrix3x4d Mult(Matrix3x4d left, double right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the multiplication. |
Double | right | The right operand of the multiplication. |
Returns
Type | Description |
---|---|
Matrix3x4d | A new instance that is the result of the multiplication |
Mult(ref Matrix3x4d, ref Matrix3x4d, out Matrix3x4d)
Multiplies two instances.
Declaration
public static void Mult(ref Matrix3x4d left, ref Matrix3x4d right, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the multiplication. |
Matrix3x4d | right | The right operand of the multiplication. |
Matrix3x4d | result | A new instance that is the result of the multiplication |
Mult(ref Matrix3x4d, ref Matrix4x3d, out Matrix3d)
Multiplies two instances.
Declaration
public static void Mult(ref Matrix3x4d left, ref Matrix4x3d right, out Matrix3d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the multiplication. |
Matrix4x3d | right | The right operand of the multiplication. |
Matrix3d | result | A new instance that is the result of the multiplication |
Mult(ref Matrix3x4d, Double, out Matrix3x4d)
Multiplies an instance by a scalar.
Declaration
public static void Mult(ref Matrix3x4d left, double right, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the multiplication. |
Double | right | The right operand of the multiplication. |
Matrix3x4d | result | A new instance that is the result of the multiplication |
Subtract(Matrix3x4d, Matrix3x4d)
Subtracts one instance from another.
Declaration
public static Matrix3x4d Subtract(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the subraction. |
Matrix3x4d | right | The right operand of the subraction. |
Returns
Type | Description |
---|---|
Matrix3x4d | A new instance that is the result of the subraction. |
Subtract(ref Matrix3x4d, ref Matrix3x4d, out Matrix3x4d)
Subtracts one instance from another.
Declaration
public static void Subtract(ref Matrix3x4d left, ref Matrix3x4d right, out Matrix3x4d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The left operand of the subraction. |
Matrix3x4d | right | The right operand of the subraction. |
Matrix3x4d | result | A new instance that is the result of the subraction. |
ToString()
Returns a System.String that represents the current Matrix4.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
String | The string representation of the matrix. |
Overrides
Transpose(Matrix3x4d)
Calculate the transpose of the given matrix
Declaration
public static Matrix4x3d Transpose(Matrix3x4d mat)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | mat | The matrix to transpose |
Returns
Type | Description |
---|---|
Matrix4x3d | The transpose of the given matrix |
Transpose(ref Matrix3x4d, out Matrix4x3d)
Calculate the transpose of the given matrix
Declaration
public static void Transpose(ref Matrix3x4d mat, out Matrix4x3d result)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | mat | The matrix to transpose |
Matrix4x3d | result | The result of the calculation |
Operators
Addition(Matrix3x4d, Matrix3x4d)
Matrix addition
Declaration
public static Matrix3x4d operator +(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | left-hand operand |
Matrix3x4d | right | right-hand operand |
Returns
Type | Description |
---|---|
Matrix3x4d | A new Matrix3x4d which holds the result of the addition |
Equality(Matrix3x4d, Matrix3x4d)
Compares two instances for equality.
Declaration
public static bool operator ==(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The first instance. |
Matrix3x4d | right | The second instance. |
Returns
Type | Description |
---|---|
Boolean | True, if left equals right; false otherwise. |
Inequality(Matrix3x4d, Matrix3x4d)
Compares two instances for inequality.
Declaration
public static bool operator !=(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | The first instance. |
Matrix3x4d | right | The second instance. |
Returns
Type | Description |
---|---|
Boolean | True, if left does not equal right; false otherwise. |
Multiply(Matrix3x4d, Matrix3x4d)
Matrix multiplication
Declaration
public static Matrix3x4d operator *(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | left-hand operand |
Matrix3x4d | right | right-hand operand |
Returns
Type | Description |
---|---|
Matrix3x4d | A new Matrix3x4d which holds the result of the multiplication |
Multiply(Matrix3x4d, Matrix4x3d)
Matrix multiplication
Declaration
public static Matrix3d operator *(Matrix3x4d left, Matrix4x3d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | left-hand operand |
Matrix4x3d | right | right-hand operand |
Returns
Type | Description |
---|---|
Matrix3d | A new Matrix3d which holds the result of the multiplication |
Multiply(Matrix3x4d, Double)
Matrix-scalar multiplication
Declaration
public static Matrix3x4d operator *(Matrix3x4d left, double right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | left-hand operand |
Double | right | right-hand operand |
Returns
Type | Description |
---|---|
Matrix3x4d | A new Matrix3x4d which holds the result of the multiplication |
Subtraction(Matrix3x4d, Matrix3x4d)
Matrix subtraction
Declaration
public static Matrix3x4d operator -(Matrix3x4d left, Matrix3x4d right)
Parameters
Type | Name | Description |
---|---|---|
Matrix3x4d | left | left-hand operand |
Matrix3x4d | right | right-hand operand |
Returns
Type | Description |
---|---|
Matrix3x4d | A new Matrix3x4d which holds the result of the subtraction |