code: public Matrix4x3d rotation(double angle, double x, double y, double z) {
          double sin = Math.sin(angle);
          double cos = Math.cosFromSin(sin, angle);
          double C = 1.0 - cos;
          double xy = x * y, xz = x * z, yz = y * z;
          m00 = cos + x * x * C;
          m01 = xy * C + z * sin;
          m02 = xz * C - y * sin;
          m10 = xy * C - z * sin;
          m11 = cos + y * y * C;
          m12 = yz * C + x * sin;
          m20 = xz * C + y * sin;
          m21 = yz * C - x * sin;
          m22 = cos + z * z * C;
          m30 = 0.0;
          m31 = 0.0;
          m32 = 0.0;
          properties = PROPERTY_ORTHONORMAL;
          return this;
      }
docs: Set this matrix to a rotation matrix which rotates the given radians about a given axis.
  <p>
  When used with a right-handed coordinate system, the produced rotation will rotate a vector
  counter-clockwise around the rotation axis, when viewing along the negative axis direction towards the origin.
  When used with a left-handed coordinate system, the rotation is clockwise.
  <p>
  From <a href="http://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle">Wikipedia</a>
  
  @param angle
  the angle in radians
  @param x
  the x-coordinate of the axis to rotate about
  @param y
  the y-coordinate of the axis to rotate about
  @param z
  the z-coordinate of the axis to rotate about
  @return this