private void rotationMatrix(float delta,float x,float y,float z)
{
float s = (float) Math.sin(delta);
float c = (float) Math.cos(delta);
float mag = (float) Math.sqrt(x * x + y * y + z * z);
if(mag == 0.0f)
return;
float xx,yy,zz,xy,xz,yz,sz,sy,sx,one_c;
xx = x * x;
yy = y * y;
zz = z * z;
xy = x * y;
xz = x * z;
yz = y * z;
sz = s * z;
sy = s * y;
sx = s * x;
one_c = 1.0f - c;
vXAxis.setX(one_c * xx + c);
vXAxis.setY(one_c * xy + sz);
vXAxis.setZ(one_c * xz - sy);
vUp.setX(one_c * xy - sz);
vUp.setY(one_c * yy + c);
vUp.setZ(one_c * yz + sx);
vForward.setX(one_c * xy + sy);
vForward.setY(one_c * yz - sx);
vForward.setZ(one_c * zz + c);
}