public static void rotateM(float[] m,int mOffset,float a,float x,float y,float z){
synchronized (TEMP_MATRIX_ARRAY) {
    setRotateM(TEMP_MATRIX_ARRAY,0,a,x,y,z);
    multiplyMM(TEMP_MATRIX_ARRAY,16,m,mOffset,TEMP_MATRIX_ARRAY,0);
    System.arraycopy(TEMP_MATRIX_ARRAY,16,m,mOffset,16);
  }
}

public static void rotateM ( float [ ] m , int mOffset , float a , float x , float y , float z ) { synchronized ( TEMP_MATRIX_ARRAY ) { setRotateM ( TEMP_MATRIX_ARRAY , 0 , a , x , y , z ) ; multiplyMM ( TEMP_MATRIX_ARRAY , 16 , m , mOffset , TEMP_MATRIX_ARRAY , 0 ) ; System . arraycopy ( TEMP_MATRIX_ARRAY , 16 , m , mOffset , 16 ) ; } }
rotates matrix m in place by angle a ( in degrees ) around the axis ( x , y , z )
