docs: @Pure
  	public static Point3f computeSegmentSegmentIntersection(
  			double x1, double y1, double z1, double x2, double y2, double z2,
  			double x3, double y3, double z3, double x4, double y4, double z4) {
  		Pair<Double, Double> factors = computeLineLineIntersectionFactors(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4);
  		if (factors == null) {
  			return null;
  		}
  		double s1 = factors.getA().doubleValue();
  		double s2 = factors.getB().doubleValue();
  		if (s1 < 0. || s1 > 1. || s2 < 0. || s2 > 1.) {
  			return null;
  		}
  		return new Point3f(
  				x1 + s1 * (x2 - x1),
  				y1 + s1 * (y2 - y1),
  				z1 + s1 * (z2 - z1));
  	}