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); }