32 inline ::wykobi::point2d<T>
34 const ::wykobi::point2d<T>& point)
36 if (polygon.size() < 3)
38 return ::wykobi::degenerate_point2d<T>();
41 std::size_t j = polygon.size() - 1;
44 ::wykobi::point2d<T> closestPoint = ::wykobi::degenerate_point2d<T>();
46 for (std::size_t i = 0; i < polygon.size(); ++i)
48 ::wykobi::point2d<T> currPoint = ::wykobi::closest_point_on_segment_from_point(
49 ::wykobi::make_segment(polygon[i], polygon[j]), point);
51 const T currDist =
distance(point, currPoint);
53 if (currDist < minDist)
55 closestPoint = currPoint;