// B1 * A5

// B1 = s(1,1,1) r(0,0,0) t(5,5,0)
// A5 = s(1,1,1) r(0,0,30) t(6,2,0)

//INFO : "Result: s(1,1,1) r(0,0,30) t(7.8301,8.8301,0)"

var B1 = CreateMatrix4(1,1,1,0,0,0,5,5,0);
var A5 = CreateMatrix4(1,1,1,0,0,30,6,2,0);

MatrixMultiply(B1, A5);
/*--------------------------------
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+
")");


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