public bool Contains(Vector2 point)
{
var result = false;
var j = Count() - 1;
for (var i = 0; i < Count(); i++)
{
if (Points[i].Y < point.Y && Points[j].Y >= point.Y || Points[j].Y < point.Y && Points[i].Y >= point.Y)
{
if (Points[i].X +
(point.Y - Points[i].Y) / (Points[j].Y - Points[i].Y) * (Points[j].X - Points[i].X) < point.X)
{
result = !result;
}
}
j = i;
}
return result;
}