docs: function (x0, y0, x1, y1, x2, y2, x3, y3)
  	{
  		var denom = ((y3 - y2) * (x1 - x0)) - ((x3 - x2) * (y1 - y0));
  		var nume_a = ((x3 - x2) * (y0 - y2)) - ((y3 - y2) * (x0 - x2));
  		var nume_b = ((x1 - x0) * (y0 - y2)) - ((y1 - y0) * (x0 - x2));
  
  		var ua = nume_a / denom;
  		var ub = nume_b / denom;
  		
  		if(ua >= 0.0 && ua <= 1.0 && ub >= 0.0 && ub <= 1.0)
  		{
  			// Get the intersection point
  			var x = x0 + ua * (x1 - x0);
  			var y = y0 + ua * (y1 - y0);
  			
  			return new mxPoint(x, y);
  		}
  		
  		// No intersection
  		return null;
  	}