
Matrix4f Array naive
By: a guest on
Jul 24th, 2011 | syntax:
Java 5 | size: 2.06 KB | hits: 83 | expires: Never
public void mul4f(Matrix4fArray leftM, Matrix4fArray rightM) {
final float[] left = leftM.buffer;
final float[] right = rightM.buffer;
float m00 = left[0] * right[0] + left[1] * right[4] + left[2] * right[8] + left[3] * right[12];
float m10 = left[0] * right[1] + left[1] * right[5] + left[2] * right[9] + left[3] * right[13];
float m20 = left[0] * right[2] + left[1] * right[6] + left[2] * right[10] + left[3] * right[14];
float m30 = left[0] * right[3] + left[1] * right[7] + left[2] * right[11] + left[3] * right[15];
float m01 = left[4] * right[0] + left[5] * right[4] + left[6] * right[8] + left[7] * right[12];
float m11 = left[4] * right[1] + left[5] * right[5] + left[6] * right[9] + left[7] * right[13];
float m21 = left[4] * right[2] + left[5] * right[6] + left[6] * right[10] + left[7] * right[14];
float m31 = left[4] * right[3] + left[5] * right[7] + left[6] * right[11] + left[7] * right[15];
float m02 = left[8] * right[0] + left[9] * right[4] + left[10] * right[8] + left[11] * right[12];
float m12 = left[8] * right[1] + left[9] * right[5] + left[10] * right[9] + left[11] * right[13];
float m22 = left[8] * right[2] + left[9] * right[6] + left[10] * right[10] + left[11] * right[14];
float m32 = left[8] * right[3] + left[9] * right[7] + left[10] * right[11] + left[11] * right[15];
float m03 = left[12] * right[0] + left[13] * right[4] + left[14] * right[8] + left[15] * right[12];
float m13 = left[12] * right[1] + left[13] * right[5] + left[14] * right[9] + left[15] * right[13];
float m23 = left[12] * right[2] + left[13] * right[6] + left[14] * right[10] + left[15] * right[14];
float m33 = left[12] * right[3] + left[13] * right[7] + left[14] * right[11] + left[15] * right[15];
final float[] buffer = this.buffer;
buffer[0] = m00;
buffer[1] = m10;
buffer[2] = m20;
buffer[3] = m30;
buffer[4] = m01;
buffer[5] = m11;
buffer[6] = m21;
buffer[7] = m31;
buffer[8] = m02;
buffer[9] = m12;
buffer[10] = m22;
buffer[11] = m32;
buffer[12] = m03;
buffer[13] = m13;
buffer[14] = m23;
buffer[15] = m33;
}