Como saber se uma linha intercepta um polígono em c #?

Eu tenho uma pergunta muito parecida com isso:

Como saber se uma linha cruza um plano em c #?

Eu estou procurando por um método (em c #) que informa se uma linha está cruzando um polígono arbitrário.

Eu acho que oalgoritmo por Chris Marasti-Georg foi muito útil, mas faltou o método mais importante, ou seja, interseção linha a linha.

Alguém sabe de um método de interseção de linha para completar o código de Chris Marasti-Georg ou ter algo parecido?

Existe um código interno para isso em c #?

Esse método é para uso com o algoritmo do Bing Maps aprimorado com um recurso de área proibida. O caminho resultante não deve passar pela área proibida (o polígono arbitrário).