TransposeInverseInPlace (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
|
|
Autodesk Softimage v7.5