@Pure
	public static Point3f computeLineLineIntersection(
			double x1, double y1, double z1, double x2, double y2, double z2,
			double x3, double y3, double z3, double x4, double y4, double z4) {
		double s = computeLineLineIntersectionFactor(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4);
		if (Double.isNaN(s)) {
			return null;
		}
		return new Point3f(
				x1 + s * (x2 - x1),
				y1 + s * (y2 - y1),
				z1 + s * (z2 - z1));
	}
@ Pure public static Point3f computeLineLineIntersection ( double x1 , double y1 , double z1 , double x2 , double y2 , double z2 , double x3 , double y3 , double z3 , double x4 , double y4 , double z4 ) { double s = computeLineLineIntersectionFactor ( x1 , y1 , z1 , x2 , y2 , z2 , x3 , y3 , z3 , x4 , y4 , z4 ) ; if ( Double . isNaN ( s ) ) { return null ; } return new Point3f ( x1 + s * ( x2 - x1 ) , y1 + s * ( y2 - y1 ) , z1 + s * ( z2 - z1 ) ) ; }
Replies the intersection point between two lines.
<p>
Let line equations for L1 and L2:<br>
<code>L1: P1 + factor1 * (P2-P1)</code><br>
<code>L2: P3 + factor2 * (P4-P3)</code><br>
If lines are intersecting, then<br>
<code>P1 + factor1 * (P2-P1) = P3 + factor2 * (P4-P3)</code>

@param x1 is the first point of the first line.
@param y1 is the first point of the first line.
@param z1 is the first point of the first line.
@param x2 is the second point of the first line.
@param y2 is the second point of the first line.
@param z2 is the second point of the first line.
@param x3 is the first point of the second line.
@param y3 is the first point of the second line.
@param z3 is the first point of the second line.
@param x4 is the second point of the second line.
@param y4 is the second point of the second line.
@param z4 is the second point of the second line.
@return the intersection point or <code>null</code> if no intersection.