TransposeInverseInP lace (SIMatrix4)

Description

Sets this matrix to the transpose of the inverse of itself (if not singular): this = Transpose(this^-1)

C# Syntax

    Int32 SIMatrix4.TransposeInverseInPlace();

Return Value

Boolean True if the matrix m has been inverted (not singular); otherwise False.

Examples

1. VBScript Example

    '
    ' This example demonstrates how to transpose and invert
    ' a 4x4 matrix, store the result of the operation in
    ' the first matrix, and then trap whether the invert
    ' and transpose operation was successful.
    '
    dim m1 : set m1 = XSIMath.CreateMatrix4(_
       2.0, 3.0, 0.0, 0.0, _
       1.0, 4.0, 0.0, 0.0, _
       0.0, 0.0, 1.0, 0.0, _
       0.0, 0.0, 0.0, 1.0)

    if m1.TransposeInverseInPlace then
       Application.LogMessage "Success :-D"
    else
       Application.LogMessage "Failure :-("
    end if

    ' Expected result:
    ' INFO : Success :-D

2. JScript Example

    /*
       Create two cubes, the first one uses Matrix4.Set function and
       the second uses the transpose inverse matrix of the first
    */
    NewScene(null, false);
    var oRoot = Application.ActiveProject.ActiveScene.Root;
    var oCube = oRoot.AddGeometry("Cube", "MeshSurface", "CubeOriginal");
       var oCube2 = oRoot.AddGeometry("Cube", "MeshSurface", "CubeTransposed");

    var oTrans = oCube.Kinematics.Local.Transform;
    var oTrans2 = oCube2.Kinematics.Local.Transform;

    // Change the cube shape
       var oMat4 = XSIMath.CreateMatrix4(
       1.0, 1.0, 0.0, 10.0,
       0.0, 1.0, 0.0, 0.0,
       0.0, 0.0, 1.0, 0.0,
       0.0, 0.0, 0.0, 1.0
    );

    // Original cube
    oTrans.SetMatrix4(oMat4);
    oCube.Kinematics.Local.Transform = oTrans;

    // Transpose inverse cube
    oMat4.TransposeInverseInPlace();
    oTrans2.SetMatrix4(oMat4);
    oCube2.Kinematics.Local.Transform = oTrans2;

See Also

SIMatrix4.TransposeInverse | SIVector3 | SIMatrix3 | SIMatrix4
SIRotation | SITransformation | SIQuaternion |

Autodesk Softimage v7.5