void MA_BuildAxisRotation(idMat4& mat, float ang, int axis) { float sinAng = idMath::Sin(ang); float cosAng = idMath::Cos(ang); mat.Identity(); switch(axis) { case 0: //x mat[1][1] = cosAng; mat[1][2] = sinAng; mat[2][1] = -sinAng; mat[2][2] = cosAng; break; case 1: //y mat[0][0] = cosAng; mat[0][2] = -sinAng; mat[2][0] = sinAng; mat[2][2] = cosAng; break; case 2://z mat[0][0] = cosAng; mat[0][1] = sinAng; mat[1][0] = -sinAng; mat[1][1] = cosAng; break; } }
void MA_BuildScale( idMat4 &mat, float x, float y, float z ) { mat.Identity(); mat[0][0] = x; mat[1][1] = y; mat[2][2] = z; }