private static LineSegment2D?ClosestTo(Point pt, ConvexPolygon poly) { FixedPoint? closest = null; LineSegment2D edge = default; for (var i = 0; i < poly.NumLineSegments; i++) { var seg = poly.GetLineSegment(i); var dist = CollisionDetector.DetermineClosestPoint(seg, pt); if (dist == null) { continue; } if (closest == null || dist.Value.Distance < closest) { closest = dist.Value.Distance; edge = seg; } } if (closest == null) { return(null); } return(edge); }