Beispiel #1
0
        private void visualise(Drawable d, FlowContainer container)
        {
            if (d == this)
            {
                return;
            }

            var drawables = container.Children.Cast <VisualisedDrawable>();

            drawables.ForEach(dd => dd.CheckExpiry());

            VisualisedDrawable vd = drawables.FirstOrDefault(dd => dd.Target == d);

            if (vd == null)
            {
                vd = new VisualisedDrawable(d);
                container.Add(vd);
            }

            d.Children.ForEach(c => visualise(c, vd.Flow));
        }
Beispiel #2
0
        private void visualise(Drawable d, VisualisedDrawable vis)
        {
            if (d == this)
            {
                return;
            }

            vis.CheckExpiry();

            var drawables = vis.Flow.Children.Cast <VisualisedDrawable>();

            foreach (var dd in drawables)
            {
                if (!dd.CheckExpiry())
                {
                    visualise(dd.Target, dd);
                }
            }

            Container dContainer = d as Container;

            if (dContainer == null)
            {
                return;
            }

            foreach (var c in dContainer.Children)
            {
                var dr = drawables.FirstOrDefault(x => x.Target == c);

                if (dr == null)
                {
                    dr = new VisualisedDrawable(c);
                    vis.Flow.Add(dr);
                }

                visualise(c, dr);
            }
        }