예제 #1
0
        protected override IEnumerable <double> GetXValues()
        {
            DataRect visible = DataSource2dContext.GetVisibleRect(this);

            yield return(visible.XMin);

            yield return(visible.XMax);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
                }
            }
        }
예제 #4
0
        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();
                }
            }
        }