/// <summary> /// Gets a series from the specified point. /// </summary> /// <param name="point">The point.</param> /// <param name="limit">The limit.</param> /// <returns>The nearest series.</returns> public Series.Series GetSeriesFromPoint(ScreenPoint point, double limit = 100) { double mindist = double.MaxValue; Series.Series nearestSeries = null; foreach (var series in this.Series.Reverse().Where(s => s.IsVisible)) { var thr = series.GetNearestPoint(point, true) ?? series.GetNearestPoint(point, false); if (thr == null) { continue; } // find distance to this point on the screen double dist = point.DistanceTo(thr.Position); if (dist < mindist) { nearestSeries = series; mindist = dist; } } if (mindist < limit) { return(nearestSeries); } return(null); }
/// <summary> /// Gets a series from the specified point. /// </summary> /// <param name="point"> /// The point. /// </param> /// <param name="limit"> /// The limit. /// </param> /// <returns> /// The nearest series. /// </returns> public Series.Series GetSeriesFromPoint(ScreenPoint point, double limit) { double mindist = double.MaxValue; Series.Series closest = null; foreach (var s in this.VisibleSeries.Reverse()) { var ts = s as ITrackableSeries; if (ts == null) { continue; } var thr = ts.GetNearestPoint(point, true) ?? ts.GetNearestPoint(point, false); if (thr == null) { continue; } // find distance to this point on the screen double dist = point.DistanceTo(thr.Position); if (dist < mindist) { closest = s; mindist = dist; } } if (mindist < limit) { return(closest); } return(null); }
/// <summary> /// Gets a series from the specified point. /// </summary> /// <param name="point">The point.</param> /// <param name="limit">The limit.</param> /// <returns>The nearest series.</returns> public Series.Series GetSeriesFromPoint(ScreenPoint point, double limit = 100) { double mindist = double.MaxValue; Series.Series nearestSeries = null; foreach (var series in this.Series.Reverse().Where(s => s.IsVisible)) { var thr = series.GetNearestPoint(point, true) ?? series.GetNearestPoint(point, false); if (thr == null) { continue; } // find distance to this point on the screen double dist = point.DistanceTo(thr.Position); if (dist < mindist) { nearestSeries = series; mindist = dist; } } if (mindist < limit) { return nearestSeries; } return null; }
/// <summary> /// Gets a series from the specified point. /// </summary> /// <param name="point"> /// The point. /// </param> /// <param name="limit"> /// The limit. /// </param> /// <returns> /// The nearest series. /// </returns> public Series.Series GetSeriesFromPoint(ScreenPoint point, double limit) { double mindist = double.MaxValue; Series.Series closest = null; foreach (var s in this.VisibleSeries.Reverse()) { var ts = s as ITrackableSeries; if (ts == null) { continue; } var thr = ts.GetNearestPoint(point, true) ?? ts.GetNearestPoint(point, false); if (thr == null) { continue; } // find distance to this point on the screen double dist = point.DistanceTo(thr.Position); if (dist < mindist) { closest = s; mindist = dist; } } if (mindist < limit) { return closest; } return null; }