## 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