穴があるという事は2つの多角形に別けられるんだから

2つに別けてからそれぞれ内外判定すればいいんじゃないの?

もしかしてデータ構造として 輪郭ベクトルが並んでるだけか?