Click or drag to resize
SbMatrixd Structure
4x4 matrix class (double precision).

Namespace: OIV.Inventor
Assembly: OIV.Inventor.SbLinear (in OIV.Inventor.SbLinear.dll) Version: 2024.1.1.Release.7989217834dd2b99155f267b6c8c70f9feacdedd
Syntax
public struct SbMatrixd

The SbMatrixd type exposes the following members.

Constructors
Methods
  NameDescription
Public methodDet3
Returns determinant of upper-left 3x3 sub matrix.
Public methodDet3(Int32, Int32, Int32, Int32, Int32, Int32)
Returns determinant of 3x3 sub matrix composed of given row and column indices (0-3 for each).
Public methodDet4
Returns determinant of entire matrix.
Public methodEquals(Object)
Returns true if this instance is equal to a specified object.
(Overrides ValueTypeEquals(Object).)
Public methodEquals(Object, Double)
Returns true if this instance is equal to a specified object with given tolerance.
Public methodFactor
Factors a matrix m into 5 pieces: m = rsr^ ut, where r^ means transpose of r, and r and u are rotations, s is a scale, and t is a translation. Any projection information is returned in proj.
Public methodGetHashCode
Returns the hash code for the value of this instance.
(Overrides ValueTypeGetHashCode.)
Public methodGetTransform(SbVec3d, SbRotationd, SbVec3d, SbRotationd)
Return translation, rotation, scale, and scale orientation components of the matrix. .
Public methodGetTransform(SbVec3d, SbRotationd, SbVec3d, SbRotationd, SbVec3d)
Decomposes the matrix into a translation, rotation, scale, and scale orientation. Any projection information is discarded. The decomposition depends upon choice of center point for rotation and scaling, which is optional as the last parameter. Note that if the center is 0, this method is the same as Factor(SbMatrixd, SbVec3d, SbMatrixd, SbVec3d, SbMatrixd) where t is translation, u is rotation, s is scaleFactor and r is scaleOrientation.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodStatic memberIdentity
Returns an identity matrix.
Public methodInverse
Returns inverse of matrix. Results are undefined for singular matrices. Uses LU decomposition.
Public methodLUBackSubstitution
Perform back-substitution on LU-decomposed matrix. index is permutation of rows from original matrix.
Public methodLUDecomposition
Perform in-place LU decomposition of matrix. index is index of rows in matrix. d is the parity of row swaps.
Public methodMakeIdentity
Sets matrix to be identity.
Public methodMultDirMatrix(SbVec3d, SbVec3d)
Pre-multiplies matrix by given row vector, giving vector result.
Public methodMultDirMatrix(SbVec3d, SbVec3d)
Pre-multiplies matrix by given row vector, giving vector result.
Public methodMultLeft(SbMatrixd)
Pre-multiplies matrix by given matrix.
Public methodMultLeft(SbMatrixd)
Pre-multiplies matrix by given matrix.
Public methodMultLineMatrix(SbLine, SbLine)
Multiplies the given line's origin by the matrix, and the line's direction by the rotation portion of the matrix.
Public methodMultLineMatrix(SbLine, SbLine)
Multiplies the given line's origin by the matrix, and the line's direction by the rotation portion of the matrix.
Public methodMultMatrixVec(SbVec3d, SbVec3d)
Post-multiplies matrix by given column vector, giving vector result.
Public methodMultMatrixVec(SbVec3d, SbVec4f)
Post-multiplies matrix by given column vector, giving vector result in homogeneous coordinates.
Public methodMultMatrixVec(SbVec3d, SbVec3d)
Post-multiplies matrix by given column vector, giving vector result.
Public methodMultMatrixVec(SbVec3d, SbVec4f)
Post-multiplies matrix by given column vector, giving vector result in homogeneous coordinates.
Public methodMultRight(SbMatrixd)
Post-multiplies matrix by given matrix.
Public methodMultRight(SbMatrixd)
Post-multiplies matrix by given matrix.
Public methodMultVecMatrix(SbVec3d, SbVec3d)
Pre-multiplies matrix by given row vector, giving vector result.
Public methodMultVecMatrix(SbVec3d, SbVec4f)
Pre-multiplies matrix by given row vector, giving vector result in homogeneous coordinates.
Public methodMultVecMatrix(SbVec3d, SbVec3d)
Pre-multiplies matrix by given row vector, giving vector result.
Public methodMultVecMatrix(SbVec3d, SbVec4f)
Pre-multiplies matrix by given row vector, giving vector result in homogeneous coordinates.
Public methodScale
Scales this matrix by the given vector.
Public methodSetRotate(SbRotationd)
Sets matrix to rotate by given rotation.
Public methodSetRotate(SbRotationd)
Sets matrix to rotate by given rotation.
Public methodSetScale(Double)
Sets matrix to scale by given uniform factor.
Public methodSetScale(SbVec3d)
Sets matrix to scale by given vector.
Public methodSetScale(SbVec3d)
Sets matrix to scale by given vector.
Public methodSetTransform(SbVec3d, SbRotationd, SbVec3d)
Composes the matrix based on a translation, rotation, and scale. A scale orientation value of (0,0,0,1) is used. The center point for scaling and rotation is (0,0,0).
Public methodSetTransform(SbVec3d, SbRotationd, SbVec3d)
Composes the matrix based on a translation, rotation, and scale. A scale orientation value of (0,0,0,1) is used. The center point for scaling and rotation is (0,0,0).
Public methodSetTransform(SbVec3d, SbRotationd, SbVec3d, SbRotationd)
Composes the matrix based on a translation, rotation, scale, and orientation for scale. The so chooses the primary axes for the scale. The center point for scaling and rotation is (0,0,0).
Public methodSetTransform(SbVec3d, SbRotationd, SbVec3d, SbRotationd)
Composes the matrix based on a translation, rotation, scale, and orientation for scale. The so chooses the primary axes for the scale. The center point for scaling and rotation is (0,0,0).
Public methodSetTransform(SbVec3d, SbRotationd, SbVec3d, SbRotationd, SbVec3d)
Composes the matrix based on a translation, rotation, scale, orientation for scale, and center. The scaleOrientation chooses the primary axes for the scale. The center is the center point for scaling and rotation.
Public methodSetTransform(SbVec3d, SbRotationd, SbVec3d, SbRotationd, SbVec3d)
Composes the matrix based on a translation, rotation, scale, orientation for scale, and center. The scaleOrientation chooses the primary axes for the scale. The center is the center point for scaling and rotation.
Public methodSetTranslate(SbVec3d)
Sets matrix to translate by given vector.
Public methodSetTranslate(SbVec3d)
Sets matrix to translate by given vector.
Public methodSetValue(Double)
Sets value from an array of 16 single components.
Public methodSetValue(Double)
Sets value from an array of 16 single components.
Public methodSetValue(SbMatrix)
Sets value from a single precision matrix.
Public methodSetValue(SbMatrix)
Sets value from a single precision matrix.
Public methodToString
Returns the fully qualified type name of this instance.
(Inherited from ValueType.)
Public methodTranslate
Translates this matrix by the given vector.
Public methodTranspose
Returns transpose of matrix.
Top
Operators
  NameDescription
Public operatorStatic memberEquality
The equality operator.
Public operatorStatic member(SbMatrixd to SbMatrix)
Public operatorStatic memberInequality
The inequality operator.
Public operatorStatic memberMultiply
The multiplication operator (*). Operates binary multiplication of matrices.
Top
Properties
  NameDescription
Public propertyItem
Gets or sets the element at the specified index. Make it look like a usual matrix (so you can do m[i,j]).
Top
Remarks
4x4 double precision matrix class/datatype. Although most Open Inventor fields only store single precision values, for some applications it is useful and convenient to be able to store and manipulate double precision values, for example, double precision coordinate data or values that will be used for further computation.

See class SbMatrix for a discussion about using Open Inventor matrix classes.

See Also