  # Matrix3By3 Structure

A 3-by-3 matrix. This type is often used to represent a rotation. This represents an 'alias' rotation which transforms coordinates by modifying the underlying coordinate basis rather than modifying the coordinates themselves.

Namespace:  AGI.Foundation.Coordinates
Assembly:  AGI.Foundation.Core (in AGI.Foundation.Core.dll) Version: 20.3.405.0 (20.3.405.0) Syntax
```public struct Matrix3By3 : IEquatable<Matrix3By3>,
IEquatable<Matrix3By3Symmetric>```

The Matrix3By3 type exposes the following members. Constructors
NameDescription Matrix3By3(AngleAxisRotation)
Initializes a new instance from an angle axis rotation. Matrix3By3(EigenDecomposition)
Initializes a new instance from an EigenDecomposition. Matrix3By3(ElementaryRotation)
Initializes a new instance representing an elementary rotation about one of the original axes. Matrix3By3(EulerSequence)
Initializes a new instance from the provided EulerSequence. Matrix3By3(Matrix3By3Symmetric)
Initializes a new instance from a Matrix3By3Symmetric. Matrix3By3(UnitQuaternion)
Initializes a new instance from a UnitQuaternion. Matrix3By3(YawPitchRoll)
Initializes a new instance from the provided YawPitchRoll sequence. Matrix3By3(Double, Double, Double, Double, Double, Double, Double, Double, Double)
Initializes a new instance from elements.
Top Properties
NameDescription  Identity
Gets a Matrix3By3 representing an identity transformation. IsUndefined
Gets a value indicating whether any of the matrix values are NaN. Item
Accesses the matrix elements using zero-based indexing. M11
Gets the element in the first row, first column. M12
Gets the element in the first row, second column. M13
Gets the element in the first row, third column. M21
Gets the element in the second row, first column. M22
Gets the element in the second row, second column. M23
Gets the element in the second row, third column. M31
Gets the element in the third row, first column. M32
Gets the element in the third row, second column. M33
Gets the element in the third row, third column.  Undefined
Gets a Matrix3By3 with elements of NaN.  Zero
Gets a Matrix3By3 representing the zero matrix.
Top Methods
NameDescription Add(Matrix3By3)
Adds a matrix to this matrix. Add(Matrix3By3Symmetric)
Adds a matrix to this matrix.  CrossProductEquivalentMatrix(Cartesian)
Forms a Matrix3By3 from the input vector such that the result of the cross product of the input vector with another vector is equivalent to premultiplying the other vector by the returned matrix.  CrossProductEquivalentMatrix(UnitCartesian)
Forms a Matrix3By3 from the input vector such that the result of the cross product of the input unit vector with another vector is equivalent to premultiplying the other vector by the returned matrix. Determinant
Calculates the determinant of the matrix.  DiagonalMatrix(Cartesian)
Forms a diagonal matrix from the input vector.  DiagonalMatrix(UnitCartesian)
Forms a diagonal matrix from the input unit vector.  DiagonalMatrix(Double, Double, Double)
Forms a diagonal matrix from the input elements. Equals(Object)
Indicates whether another object is exactly equal to this instance.
(Overrides ValueTypeEquals(Object).) Equals(Matrix3By3)
Indicates whether another instance of this type is exactly equal to this instance. Equals(Matrix3By3Symmetric)
Indicates whether another instance of this type is exactly equal to this instance. EqualsEpsilon
Returns true if all of the elements of this matrix are within epsilon of the same elements of the specified matrix. That is, in order for the matrices to be considered equal (and for this function to return true), the absolute value of the difference between each of their elements must be less than or equal to epsilon. FrobeniusNorm
Computes the Frobenius norm of the matrix. FrobeniusNormSquared
Computes the square of the Frobenius norm of the matrix. GetHashCode
Returns a hash code for this instance, which is suitable for use in hashing algorithms and data structures like a hash table.
(Overrides ValueTypeGetHashCode.) GetType
Gets the Type of the current instance.
(Inherited from Object.) Invert
Inverts the matrix. Multiply(Double)
Multiplies this matrix by a scalar. Multiply(Cartesian)
Forms a new Cartesian vector as the product of this 3-by-3 matrix and the provided Cartesian vector. Multiply(ElementaryRotation)
Forms a new 3-by-3 matrix as the product of this 3-by-3 matrix and the provided elementary rotation. Multiply(Matrix3By3)
Multiplies this matrix by a matrix. Multiply(Matrix3By3Symmetric)
Multiplies this matrix by a matrix. Subtract(Matrix3By3)
Subtracts a matrix from this matrix. Subtract(Matrix3By3Symmetric)
Subtracts a matrix from this matrix. ToString
Returns the fully qualified type name of this instance.
(Inherited from ValueType.) Transpose
Transposes the matrix.
Top Operators
NameDescription  Addition(Matrix3By3, Matrix3By3)
Adds a matrix to this matrix.  Addition(Matrix3By3, Matrix3By3Symmetric)
Adds a matrix to this matrix.  Equality
Returns if the two instances are exactly equal.  Inequality
Returns if the two instances are not exactly equal.  Multiply(Double, Matrix3By3)
Multiplies a scalar by a matrix.  Multiply(Matrix3By3, Cartesian)
Multiplies the 3-by-3 matrix by the Cartesian vector.  Multiply(Matrix3By3, ElementaryRotation)
Multiplies a 3-by-3 matrix by an ElementaryRotation.  Multiply(Matrix3By3, Matrix3By3)
Multiplies the left matrix by the right matrix.  Multiply(Matrix3By3, Matrix3By3Symmetric)
Multiplies the left matrix by the right matrix.  Multiply(Matrix3By3, Double)
Multiplies a matrix by a scalar.  Subtraction(Matrix3By3, Matrix3By3)
Subtracts the second matrix from the first.  Subtraction(Matrix3By3, Matrix3By3Symmetric)
Subtracts the second matrix from the first.
Top Remarks See Also