internal PointAndCrossingsList GetOrderedListBetween(Point start, Point end) { if (0 == pointCrossingMap.Count) { return(null); } if (PointComparer.Compare(start, end) > 0) { Point temp = start; start = end; end = temp; } // Start and end are inclusive. pointList.Clear(); foreach (var intersection in pointCrossingMap.Keys) { if ((PointComparer.Compare(intersection, start) >= 0) && (PointComparer.Compare(intersection, end) <= 0)) { pointList.Add(intersection); } } pointList.Sort(); var pointAndCrossingList = new PointAndCrossingsList(); var numCrossings = pointList.Count; for (int ii = 0; ii < numCrossings; ++ii) { Point intersect = pointList[ii]; pointAndCrossingList.Add(intersect, pointCrossingMap[intersect]); } return(pointAndCrossingList); }
internal PointAndCrossingsList GetOrderedListBetween(Point start, Point end) { if (0 == pointCrossingMap.Count) { return null; } if (PointComparer.Compare(start, end) > 0) { Point temp = start; start = end; end = temp; } // Start and end are inclusive. pointList.Clear(); foreach (var intersection in pointCrossingMap.Keys) { if ((PointComparer.Compare(intersection, start) >= 0) && (PointComparer.Compare(intersection, end) <= 0)) { pointList.Add(intersection); } } pointList.Sort(); var pointAndCrossingList = new PointAndCrossingsList(); var numCrossings = pointList.Count; for (int ii = 0; ii < numCrossings; ++ii) { Point intersect = pointList[ii]; pointAndCrossingList.Add(intersect, pointCrossingMap[intersect]); } return pointAndCrossingList; }