code: @Pure
  	public static boolean intersectsSegmentSegmentWithoutEnds(
  			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 false;
  		}
  		double s1 = factors.getA().doubleValue();
  		double s2 = factors.getB().doubleValue();
  		return (s1 > 0. && s1 < 1. && s2 > 0. && s2 < 1.);
  	}
docs: Replies if two segments are intersecting.
  This function considers that the ends of
  the segments are not intersecting.
  To include the ends of the segments in the intersection ranges, see
  {@link #intersectsSegmentSegmentWithEnds(double, double, double, double, double, double, double, double, double, double, double, double)}
  
  @param x1 is the first point of the first segment.
  @param y1 is the first point of the first segment.
  @param z1 is the first point of the first segment.
  @param x2 is the second point of the first segment.
  @param y2 is the second point of the first segment.
  @param z2 is the second point of the first segment.
  @param x3 is the first point of the second segment.
  @param y3 is the first point of the second segment.
  @param z3 is the first point of the second segment.
  @param x4 is the second point of the second segment.
  @param y4 is the second point of the second segment.
  @param z4 is the second point of the second segment.
  @return <code>true</code> if the two shapes are intersecting; otherwise
  <code>false</code>
  @see #intersectsSegmentSegmentWithEnds(double, double, double, double, double, double, double, double, double, double, double, double)