static void TrySplitVerticalPoint(LinkedPoint linkedPoint, Point point)
 {
     Debug.Assert(ApproximateComparer.Close(linkedPoint.X, linkedPoint.Next.X));
     if (Low(linkedPoint) + ApproximateComparer.DistanceEpsilon < point.Y && point.Y + ApproximateComparer.DistanceEpsilon < High(linkedPoint))
     {
         linkedPoint.SetNewNext(point);
     }
 }
 static LinkedPoint TrySplitHorizontalPoint(LinkedPoint horizontalPoint, Point point, bool xAligned)
 {
     Debug.Assert(ApproximateComparer.Close(horizontalPoint.Y, horizontalPoint.Next.Y));
     if (xAligned && horizontalPoint.X + ApproximateComparer.DistanceEpsilon < point.X &&
         point.X + ApproximateComparer.DistanceEpsilon < horizontalPoint.Next.X ||
         !xAligned && horizontalPoint.Next.X + ApproximateComparer.DistanceEpsilon < point.X &&
         point.X + ApproximateComparer.DistanceEpsilon < horizontalPoint.X)
     {
         horizontalPoint.SetNewNext(point);
         return(horizontalPoint.Next);
     }
     return(horizontalPoint);
 }