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)); }
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); } }