Source
void copyFromAndConcat2D(Matrix3D copyMatrix, Matrix concatMatrix) {
var m00 = copyMatrix.m00;
var m10 = copyMatrix.m10;
var m20 = copyMatrix.m20;
var m30 = copyMatrix.m30;
var m01 = copyMatrix.m01;
var m11 = copyMatrix.m11;
var m21 = copyMatrix.m21;
var m31 = copyMatrix.m31;
var m02 = copyMatrix.m02;
var m12 = copyMatrix.m12;
var m22 = copyMatrix.m22;
var m32 = copyMatrix.m32;
var m03 = copyMatrix.m03;
var m13 = copyMatrix.m13;
var m23 = copyMatrix.m23;
var m33 = copyMatrix.m33;
var n00 = concatMatrix.a;
var n10 = concatMatrix.c;
var n30 = concatMatrix.tx;
var n01 = concatMatrix.b;
var n11 = concatMatrix.d;
var n31 = concatMatrix.ty;
_data[00] = m00 * n00 + m01 * n10 + m03 * n30;
_data[01] = m10 * n00 + m11 * n10 + m13 * n30;
_data[02] = m20 * n00 + m21 * n10 + m23 * n30;
_data[03] = m30 * n00 + m31 * n10 + m33 * n30;
_data[04] = m00 * n01 + m01 * n11 + m03 * n31;
_data[05] = m10 * n01 + m11 * n11 + m13 * n31;
_data[06] = m20 * n01 + m21 * n11 + m23 * n31;
_data[07] = m30 * n01 + m31 * n11 + m33 * n31;
_data[08] = m02;
_data[09] = m12;
_data[10] = m22;
_data[11] = m32;
_data[12] = m03;
_data[13] = m13;
_data[14] = m23;
_data[15] = m33;
}