code: public Quaternion fromVectorFromNegativeZ (double tx, double ty, double tz) {
          double angle = Math.acos(-tz);
          if (angle < MathUtil.EPSILON) {
              return set(IDENTITY);
          }
          if (angle > Math.PI - MathUtil.EPSILON) {
              return set(0f, 1f, 0f, 0f); // 180 degrees about y
          }
          double len = Math.hypot(tx, ty);
          return fromAngleAxis(angle, ty/len, -tx/len, 0f);
      }
docs: Sets this quaternion to the rotation of (0, 0, -1) onto the supplied normalized vector.
  
  @return a reference to the quaternion, for chaining.