 		if 'rectangle' in shapes
 			Bu.Rectangle::containsPoint = (point) ->
 				G.pointInRectangle point, @
+			Bu.Rectangle::intersectLine = (line) ->
+				G.isLineIntersectRect line, @
 
 		if 'fan' in shapes
 			Bu.Fan::_containsPoint = (point) ->

		else
			return new Bu.Point x, y

	# Point and Line

	twoPointsSameSideOfLine: (p1, p2, line) ->
		pA = line.points[0]

		x4 = line2.points[1].x
		y4 = line2.points[1].y


		d = (y2 - y1) * (x4 - x3) - (y4 - y3) * (x2 - x1)

		if d == 0
