multiplyTranspose method
Multiply this with a transposed arg
.
Implementation
void multiplyTranspose(Matrix4 arg) {
final double m00 = _m4storage[0];
final double m01 = _m4storage[4];
final double m02 = _m4storage[8];
final double m03 = _m4storage[12];
final double m10 = _m4storage[1];
final double m11 = _m4storage[5];
final double m12 = _m4storage[9];
final double m13 = _m4storage[13];
final double m20 = _m4storage[2];
final double m21 = _m4storage[6];
final double m22 = _m4storage[10];
final double m23 = _m4storage[14];
final double m30 = _m4storage[3];
final double m31 = _m4storage[7];
final double m32 = _m4storage[11];
final double m33 = _m4storage[15];
final Float64List argStorage = arg._m4storage;
_m4storage[0] = (m00 * argStorage[0]) +
(m01 * argStorage[4]) +
(m02 * argStorage[8]) +
(m03 * argStorage[12]);
_m4storage[4] = (m00 * argStorage[1]) +
(m01 * argStorage[5]) +
(m02 * argStorage[9]) +
(m03 * argStorage[13]);
_m4storage[8] = (m00 * argStorage[2]) +
(m01 * argStorage[6]) +
(m02 * argStorage[10]) +
(m03 * argStorage[14]);
_m4storage[12] = (m00 * argStorage[3]) +
(m01 * argStorage[7]) +
(m02 * argStorage[11]) +
(m03 * argStorage[15]);
_m4storage[1] = (m10 * argStorage[0]) +
(m11 * argStorage[4]) +
(m12 * argStorage[8]) +
(m13 * argStorage[12]);
_m4storage[5] = (m10 * argStorage[1]) +
(m11 * argStorage[5]) +
(m12 * argStorage[9]) +
(m13 * argStorage[13]);
_m4storage[9] = (m10 * argStorage[2]) +
(m11 * argStorage[6]) +
(m12 * argStorage[10]) +
(m13 * argStorage[14]);
_m4storage[13] = (m10 * argStorage[3]) +
(m11 * argStorage[7]) +
(m12 * argStorage[11]) +
(m13 * argStorage[15]);
_m4storage[2] = (m20 * argStorage[0]) +
(m21 * argStorage[4]) +
(m22 * argStorage[8]) +
(m23 * argStorage[12]);
_m4storage[6] = (m20 * argStorage[1]) +
(m21 * argStorage[5]) +
(m22 * argStorage[9]) +
(m23 * argStorage[13]);
_m4storage[10] = (m20 * argStorage[2]) +
(m21 * argStorage[6]) +
(m22 * argStorage[10]) +
(m23 * argStorage[14]);
_m4storage[14] = (m20 * argStorage[3]) +
(m21 * argStorage[7]) +
(m22 * argStorage[11]) +
(m23 * argStorage[15]);
_m4storage[3] = (m30 * argStorage[0]) +
(m31 * argStorage[4]) +
(m32 * argStorage[8]) +
(m33 * argStorage[12]);
_m4storage[7] = (m30 * argStorage[1]) +
(m31 * argStorage[5]) +
(m32 * argStorage[9]) +
(m33 * argStorage[13]);
_m4storage[11] = (m30 * argStorage[2]) +
(m31 * argStorage[6]) +
(m32 * argStorage[10]) +
(m33 * argStorage[14]);
_m4storage[15] = (m30 * argStorage[3]) +
(m31 * argStorage[7]) +
(m32 * argStorage[11]) +
(m33 * argStorage[15]);
}