internal static double DistanceToLineSegment(this Point point, IList polyline, double delta)
        {
            double num1 = double.NaN;

            for (int index = 0; index < polyline.Count - 1; ++index)
            {
                Point  point1 = (Point)polyline[index];
                Point  point2 = (Point)polyline[index + 1];
                double num2   = PointExtensions.DistanceToLine(point, point1, point2);
                bool   flag   = Math.Abs(point1.X - point2.X) < 1E-06 ? PointExtensions.IsYBetween(point, point1, point2) : PointExtensions.IsXBetween(point, point1, point2);
                if (num2 < delta && flag || RectExtensions.AroundPoint(point1, point, delta))
                {
                    num1 = num2;
                    break;
                }
            }
            return(num1);
        }