## SITransformation

Object Hierarchy | Related C++ Class: CTransformation

### Description

This object represents a transformation which is the result of the combination of a Scaling, a Rotation and a Translation, in the S.R.T order.

### Methods

AddLocalRotation | AddLocalScaling | AddLocalTranslation | AddParentRotation
AddParentScaling | AddParentTranslation | Copy | GetMatrix4
GetRotation | GetRotationAxisAngle | GetRotationAxisAngle2 | GetRotationMatrix3
GetRotationQuaternion | GetRotationXYZAngles | GetRotationXYZAnglesValues | GetRotationXYZAnglesValues2
GetScaling | GetScalingOrientationXYZAngles | GetScalingOrientationXYZAngles2 | GetScalingValues
GetScalingValues2 | GetTranslation | GetTranslationValues | GetTranslationValues2
HasScalingOrientation | Mul | MulInPlace | SetIdentity
SetMatrix4 | SetRotation | SetRotationFromAxisAngle | SetRotationFromMatrix3
SetRotationFromQuaternion | SetRotationFromXYZAngles | SetRotationFromXYZAnglesValues | SetRotationFromXYZAxes
SetScaling | SetScalingFromValues | SetScalingOrientationFromXYZAngles | SetTranslation
SetTranslationFromValues |  |  |

### Properties

Matrix4 | PosX | PosY | PosZ
RotX | RotY | RotZ | Rotation
Scaling | SclX | SclY | SclZ
Translation |  |  |

### Examples

#### 1. JScript Example

    /*
            Example of how to use the SITransformation to read and write
            the scaling, rotation and translation of an object
    */
    var oNull = Application.ActiveSceneRoot.AddNull( "MyNull" ) ;
    // Change the position and rotation of the null
    // by providing a new transform
    oNewLocalTransform = XSIMath.CreateTransform() ;
    // Change posx, posy
    oNewLocalTransform.PosX = 5;
    oNewLocalTransform.PosX = 6;
    // Set rotx to 180 degrees
    oNewLocalTransform.RotX = 180;
    // Scale y-axis (scly)
    oNewLocalTransform.SclY = 2;
    oNull.Kinematics.Local.Transform = oNewLocalTransform ;
    PrintTransformation( oNull.Kinematics.Local.Transform ) ;
    // Show the "SRT: of a SITransformation object
    function PrintTransformation( in_oTransform )
    {
            var oVector = XSIMath.CreateVector3();
            in_oTransform.GetScaling( oVector ) ;
            PrintVector( "Scaling:", oVector ) ;
            // In Radians
            in_oTransform.GetRotationXYZAngles( oVector ) ;
            PrintVector( "Rotation:", oVector ) ;
            in_oTransform.GetTranslation( oVector ) ;
            PrintVector( "Translation:", oVector ) ;
    }
    // Print a vector.  Values are rounded to 3 decimal places
    function PrintVector( in_Prefix, in_oVec )
    {
            Application.LogMessage( in_Prefix + " " +
                            XSIRound(in_oVec.x,3) + ", " +
                            XSIRound(in_oVec.y,3) + ", " +
                            XSIRound(in_oVec.z,3) ) ;
    }
    // Output:
    //INFO : Scaling: 1, 2, 1
    //INFO : Rotation: 3.142, 0, 0
    //INFO : Translation: 5, 6, 0

#### 2. VBScript Example

    dim transfo
    set transfo = XSIMath.CreateTransform
    Application.LogMessage TypeName(transfo)

### See Also

SIVector3 SIMatrix3 SIMatrix4 SIRotation SITransformation SIQuaternion KinematicState.Transform StaticKinematicState.Transform