code: public Quaterniond rotationAxis(double angle, double axisX, double axisY, double axisZ) {
          double hangle = angle / 2.0;
          double sinAngle = Math.sin(hangle);
          double invVLength = 1.0 / Math.sqrt(axisX * axisX + axisY * axisY + axisZ * axisZ);
  
          x = axisX * invVLength * sinAngle;
          y = axisY * invVLength * sinAngle;
          z = axisZ * invVLength * sinAngle;
          w = (float) Math.cosFromSin(sinAngle, hangle);
  
          return this;
      }
docs: Set this quaternion to a rotation of the given angle in radians about the supplied axis.
  
  @param angle
  the rotation angle in radians
  @param axisX
  the x-coordinate of the rotation axis
  @param axisY
  the y-coordinate of the rotation axis
  @param axisZ
  the z-coordinate of the rotation axis
  @return this