Case 1 : Wholly inside the visible region, save the endpoint.
Points=[B]Case 2 : Exit visible region, save the intersection.
Points=[B, B']Case 3 : Wholly outside visible region, save nothing.
Points=[B, B']Case 4 : Enter visible region, save intersection and endpoint.
Points=[B, B', C', A]