Struct JSymmetricMatrix
- Namespace
- Jitter2.LinearMath
- Assembly
- Jitter2.dll
Represents a symmetric 3x3 matrix using six components of type float.
public struct JSymmetricMatrix : IEquatable<JSymmetricMatrix>
- Implements
- Inherited Members
Remarks
Only the upper triangle is stored. The lower-triangle properties access the same components.
Constructors
JSymmetricMatrix(float, float, float, float, float, float)
Represents a symmetric 3x3 matrix using six components of type float.
public JSymmetricMatrix(float m11, float m12, float m13, float m22, float m23, float m33)
Parameters
Remarks
Only the upper triangle is stored. The lower-triangle properties access the same components.
Fields
Identity
The identity matrix.
public static readonly JSymmetricMatrix Identity
Field Value
M11
public float M11
Field Value
M12
public float M12
Field Value
M13
public float M13
Field Value
M22
public float M22
Field Value
M23
public float M23
Field Value
M33
public float M33
Field Value
Zero
The zero matrix.
public static readonly JSymmetricMatrix Zero
Field Value
Properties
M21
The component shared with M12.
public float M21 { readonly get; set; }
Property Value
M31
The component shared with M13.
public float M31 { readonly get; set; }
Property Value
M32
The component shared with M23.
public float M32 { readonly get; set; }
Property Value
Methods
Add(in JSymmetricMatrix, in JSymmetricMatrix)
Adds two matrices component-wise.
public static JSymmetricMatrix Add(in JSymmetricMatrix matrix1, in JSymmetricMatrix matrix2)
Parameters
matrix1JSymmetricMatrixmatrix2JSymmetricMatrix
Returns
Add(in JSymmetricMatrix, in JSymmetricMatrix, out JSymmetricMatrix)
Adds two matrices component-wise.
public static void Add(in JSymmetricMatrix matrix1, in JSymmetricMatrix matrix2, out JSymmetricMatrix result)
Parameters
matrix1JSymmetricMatrixmatrix2JSymmetricMatrixresultJSymmetricMatrix
CreateScale(in JVector)
Creates a diagonal scaling matrix.
public static JSymmetricMatrix CreateScale(in JVector scale)
Parameters
scaleJVector
Returns
CreateScale(float, float, float)
Creates a diagonal scaling matrix.
public static JSymmetricMatrix CreateScale(float x, float y, float z)
Parameters
Returns
Determinant()
Calculates the determinant of the matrix.
public readonly float Determinant()
Returns
Equals(JSymmetricMatrix)
Indicates whether the current object is equal to another object of the same type.
public readonly bool Equals(JSymmetricMatrix other)
Parameters
otherJSymmetricMatrixAn object to compare with this object.
Returns
Equals(object?)
Indicates whether this instance and a specified object are equal.
public override readonly bool Equals(object? obj)
Parameters
objobjectThe object to compare with the current instance.
Returns
- bool
true if
objand this instance are the same type and represent the same value; otherwise, false.
GetHashCode()
Returns the hash code for this instance.
public override readonly int GetHashCode()
Returns
- int
A 32-bit signed integer that is the hash code for this instance.
Inverse(in JSymmetricMatrix, out JSymmetricMatrix)
Calculates the inverse of a symmetric matrix.
public static bool Inverse(in JSymmetricMatrix matrix, out JSymmetricMatrix result)
Parameters
matrixJSymmetricMatrixThe matrix to invert.
resultJSymmetricMatrixOutput: The inverse, or zero if inversion fails.
Returns
- bool
trueif a finite inverse can be computed; otherwise,false, matching Inverse(in JMatrix, out JMatrix).
Multiply(in JSymmetricMatrix, float)
Multiplies a matrix by a scalar factor.
public static JSymmetricMatrix Multiply(in JSymmetricMatrix matrix, float scaleFactor)
Parameters
matrixJSymmetricMatrixscaleFactorfloat
Returns
Multiply(in JSymmetricMatrix, float, out JSymmetricMatrix)
Multiplies a matrix by a scalar factor.
public static void Multiply(in JSymmetricMatrix matrix, float scaleFactor, out JSymmetricMatrix result)
Parameters
matrixJSymmetricMatrixscaleFactorfloatresultJSymmetricMatrix
Outer(in JVector)
Calculates the symmetric outer product vector * vectorᵀ.
public static JSymmetricMatrix Outer(in JVector vector)
Parameters
vectorJVector
Returns
Subtract(in JSymmetricMatrix, in JSymmetricMatrix)
Subtracts the second matrix from the first component-wise.
public static JSymmetricMatrix Subtract(in JSymmetricMatrix matrix1, in JSymmetricMatrix matrix2)
Parameters
matrix1JSymmetricMatrixmatrix2JSymmetricMatrix
Returns
Subtract(in JSymmetricMatrix, in JSymmetricMatrix, out JSymmetricMatrix)
Subtracts the second matrix from the first component-wise.
public static void Subtract(in JSymmetricMatrix matrix1, in JSymmetricMatrix matrix2, out JSymmetricMatrix result)
Parameters
matrix1JSymmetricMatrixmatrix2JSymmetricMatrixresultJSymmetricMatrix
ToMatrix()
Expands the matrix into a full 3x3 matrix.
public readonly JMatrix ToMatrix()
Returns
ToString()
Returns the fully qualified type name of this instance.
public override readonly string ToString()
Returns
- string
The fully qualified type name.
Trace()
Calculates the trace (sum of diagonal components).
public readonly float Trace()
Returns
Transform(in JSymmetricMatrix, in JMatrix)
Calculates transform * matrix * transformᵀ.
public static JSymmetricMatrix Transform(in JSymmetricMatrix matrix, in JMatrix transform)
Parameters
matrixJSymmetricMatrixtransformJMatrix
Returns
Remarks
Computes only the six independent components. A rotation transforms an inertia tensor into the rotated frame; general transforms are supported as well.
Transform(in JSymmetricMatrix, in JMatrix, out JSymmetricMatrix)
Calculates transform * matrix * transformᵀ.
public static void Transform(in JSymmetricMatrix matrix, in JMatrix transform, out JSymmetricMatrix result)
Parameters
matrixJSymmetricMatrixtransformJMatrixresultJSymmetricMatrix
Operators
operator +(in JSymmetricMatrix, in JSymmetricMatrix)
Adds two matrices.
public static JSymmetricMatrix operator +(in JSymmetricMatrix matrix1, in JSymmetricMatrix matrix2)
Parameters
matrix1JSymmetricMatrixmatrix2JSymmetricMatrix
Returns
operator ==(JSymmetricMatrix, JSymmetricMatrix)
public static bool operator ==(JSymmetricMatrix left, JSymmetricMatrix right)
Parameters
leftJSymmetricMatrixrightJSymmetricMatrix
Returns
explicit operator JMatrix(in JSymmetricMatrix)
Expands the symmetric matrix into a full matrix.
public static explicit operator JMatrix(in JSymmetricMatrix matrix)
Parameters
matrixJSymmetricMatrix
Returns
operator !=(JSymmetricMatrix, JSymmetricMatrix)
public static bool operator !=(JSymmetricMatrix left, JSymmetricMatrix right)
Parameters
leftJSymmetricMatrixrightJSymmetricMatrix
Returns
operator *(in JSymmetricMatrix, float)
Scales a matrix by a factor.
public static JSymmetricMatrix operator *(in JSymmetricMatrix matrix, float factor)
Parameters
matrixJSymmetricMatrixfactorfloat
Returns
operator *(float, in JSymmetricMatrix)
Scales a matrix by a factor.
public static JSymmetricMatrix operator *(float factor, in JSymmetricMatrix matrix)
Parameters
factorfloatmatrixJSymmetricMatrix
Returns
operator -(in JSymmetricMatrix, in JSymmetricMatrix)
Subtracts the second matrix from the first.
public static JSymmetricMatrix operator -(in JSymmetricMatrix matrix1, in JSymmetricMatrix matrix2)
Parameters
matrix1JSymmetricMatrixmatrix2JSymmetricMatrix