// C1 * A6

// C1 = s(1,1,1) r(0,0,20) t(0,0,0)
// A6 = s(1.4,0.8,1) r(0,0,30) t(6,2,0)

//INFO : "Result: s(1.4,0.8,1) r(0,0,50) t(6,2,0)"


var C1 = CreateMatrix4(1,1,1,0,0,20,0,0,0);
var A6 = CreateMatrix4(1.4,0.8,1,0,0,30,6,2,0);

MatrixMultiply(C1, A6);
/*--------------------------------
Create Matrix 4
--------------------------------*/
function CreateMatrix4( inSx, inSy, inSz, inRx, inRy, inRz, inTx, inTy, inTz ){


trans = XSIMath.CreateTransform();

inRx = XSIMath.DegreesToRadians(inRx);
inRy = XSIMath.DegreesToRadians(inRy);
inRz = XSIMath.DegreesToRadians(inRz);

trans.SetScalingFromValues (inSx, inSy, inSz);
trans.SetTranslationFromValues(inTx, inTy, inTz);
trans.SetRotationFromXYZAnglesValues(inRx, inRy, inRz);

var matrix = XSIMath.CreateMatrix4();
trans.GetMatrix4(matrix);

return matrix;
}

/*--------------------------------
Matrix Multiply
--------------------------------*/
function MatrixMultiply(inM1, inM2){

var mTrans = XSIMath.CreateTransform();
var mTrans2 = XSIMath.CreateTransform();

mTrans.SetMatrix4(inM1);
mTrans2.SetMatrix4(inM2)

var resultTrans = XSIMath.CreateTransform();
resultTrans.Mul(mTrans, mTrans2);

// now log SRT values
var scl = XSIMath.CreateVector3();
var trn = XSIMath.CreateVector3();
var rot = XSIMath.CreateVector3();

resultTrans.GetScaling(scl);
resultTrans.GetTranslation (trn);
resultTrans.GetRotationXYZAngles (rot);

rot.x = XSIMath.RadiansToDegrees(rot.x);
rot.y = XSIMath.RadiansToDegrees(rot.y);
rot.z = XSIMath.RadiansToDegrees(rot.z);

logmessage ("Result: "+"s("+scl.x+","+scl.y+","+scl.z+
") r("+rot.x+","+rot.y+","+rot.z+
") t("+trn.x+","+trn.y+","+trn.z+
")");


}
//--------------------------------