// Transform (i.e. multiply) a vector by this matrix. void mat4::transform3 (vec4 &v) const { vec4 aux; const float *m = this->m_Matrix; aux.x = (v.x * m[0]) + (v.y * m[4]) + (v.z * m[8]) ; aux.y = (v.x * m[1]) + (v.y * m[5]) + (v.z * m[9]) ; aux.z = (v.x * m[2]) + (v.y * m[6]) + (v.z * m[10]); aux.w = v.w; v.copy(aux); return; }
// Transform (i.e. multiply) a vector by this matrix. void mat4::transform (vec4 &v) const { vec4 aux; const float *m = this->m_Matrix; aux.x = (v.x * m[0]) + (v.y * m[4]) + (v.z * m[8]) + (v.w * m[12]); aux.y = (v.x * m[1]) + (v.y * m[5]) + (v.z * m[9]) + (v.w * m[13]); aux.z = (v.x * m[2]) + (v.y * m[6]) + (v.z * m[10]) +(v.w * m[14]); aux.w = (v.x * m[3]) + (v.y * m[7]) + (v.z * m[11]) +(v.w * m[15]); aux *= (1/aux.w); v.copy(aux); return; }