protected override IEnumerable <double> GetXValues() { DataRect visible = DataSource2dContext.GetVisibleRect(this); yield return(visible.XMin); yield return(visible.XMax); }
internal IEnumerable <Point> Filter(IEnumerable <Point> points, Viewport2D viewport) { var screenRect = viewport.Output; var visibleRect = viewport.Visible; foreach (var filter in Items) { DependencyObject dependencyObject = filter as DependencyObject; if (dependencyObject != null) { DataSource2dContext.SetScreenRect(dependencyObject, screenRect); DataSource2dContext.SetVisibleRect(dependencyObject, visibleRect); } points = filter.Filter(points); } return(points); }
protected override IEnumerable <double> GetXValues() { var visible = DataSource2dContext.GetVisibleRect(this); var screen = DataSource2dContext.GetScreenRect(this); int count = (int)Math.Ceiling(screen.Width) + 1; if (count == 0) { yield break; } else { double delta = visible.Width / count; double x = (int)(visible.XMin / delta - 1) * delta; for (int i = 0; i < count; i++) { yield return(x + i * delta); } } }
public static IEnumerable <Point> GetPoints(IPointDataSource dataSource, DependencyObject context) { if (dataSource == null) { yield break; } if (context == null) { context = new DataSource2dContext(); } using (IPointEnumerator enumerator = dataSource.GetEnumerator(context)) { Point p = new Point(); while (enumerator.MoveNext()) { enumerator.GetCurrent(ref p); yield return(p); p = new Point(); } } }